import { b as attr_class, f as stringify, a as attr, e as ensure_array_like, c as escape_html, y as bind_props, z as clsx, g as derived } from './dev-BNpEUZI3.js';

//#region src/lib/ui/Badge.svelte
function Badge($$renderer, $$props) {
	/**
	* Props for {@link Badge}.
	*/
	/** Semantic tone. Defaults to `neutral`. */
	/** Size. Only `sm | md` supported. Defaults to `md`. */
	/**
	* When true, remove the tinted background and render label only.
	* Useful for dense list rows where a full pill would be noisy.
	*/
	/**
	* When true, round fully (pill-shape). Defaults to `false` (rounded
	* square). Set to `true` for count badges.
	*/
	/** Icon / glyph slot shown before the label. */
	/** Default slot — the badge text. */
	/** Extra class names. */
	/** Optional accessible label override (for icon-only badges). */
	let { tone = "neutral", size = "md", subtle = false, pill = false, icon, children, class: extraClass = "", "aria-label": ariaLabel } = $$props;
	$$renderer.push(`<span${attr_class(`badge t-${stringify(tone)} s-${stringify(size)} ${stringify(extraClass)}`, "svelte-eex7hx", {
		"subtle": subtle,
		"pill": pill
	})} role="status"${attr("aria-label", ariaLabel)}>`);
	if (icon) {
		$$renderer.push("<!--[0-->");
		$$renderer.push(`<span class="badge-icon svelte-eex7hx" aria-hidden="true">`);
		icon($$renderer);
		$$renderer.push(`<!----></span>`);
	} else $$renderer.push("<!--[-1-->");
	$$renderer.push(`<!--]--> `);
	if (children) {
		$$renderer.push("<!--[0-->");
		$$renderer.push(`<span class="badge-label">`);
		children($$renderer);
		$$renderer.push(`<!----></span>`);
	} else $$renderer.push("<!--[-1-->");
	$$renderer.push(`<!--]--></span>`);
}
//#endregion
//#region src/lib/ui/Breadcrumb.svelte
function Breadcrumb($$renderer, $$props) {
	$$renderer.component(($$renderer) => {
		/**
		* Props for {@link Breadcrumb}.
		*/
		/** Ordered list of crumbs from root → current page. */
		/** Extra class names. */
		let { items, class: extraClass = "" } = $$props;
		$$renderer.push(`<nav${attr_class(`crumbs ${stringify(extraClass)}`, "svelte-d31km5")} aria-label="Breadcrumb"><ol class="svelte-d31km5"><!--[-->`);
		const each_array = ensure_array_like(items);
		for (let idx = 0, $$length = each_array.length; idx < $$length; idx++) {
			let item = each_array[idx];
			const isLast = idx === items.length - 1;
			$$renderer.push(`<li class="svelte-d31km5">`);
			if (isLast || !item.href) {
				$$renderer.push("<!--[0-->");
				$$renderer.push(`<span class="crumb current svelte-d31km5"${attr("aria-current", isLast ? "page" : void 0)}>${escape_html(item.label)}</span>`);
			} else {
				$$renderer.push("<!--[-1-->");
				$$renderer.push(`<a class="crumb link svelte-d31km5"${attr("href", item.href)}>${escape_html(item.label)}</a>`);
			}
			$$renderer.push(`<!--]--> `);
			if (!isLast) {
				$$renderer.push("<!--[0-->");
				$$renderer.push(`<span class="sep svelte-d31km5" aria-hidden="true">›</span>`);
			} else $$renderer.push("<!--[-1-->");
			$$renderer.push(`<!--]--></li>`);
		}
		$$renderer.push(`<!--]--></ol></nav>`);
	});
}
//#endregion
//#region src/lib/ui/Card.svelte
function Card($$renderer, $$props) {
	/**
	* Props for {@link Card}.
	*/
	/** Padding density. Defaults to `cozy` (16px). */
	/**
	* When true, the card shows a hover lift + shadow. Does NOT make
	* the root focusable — place a link/button inside instead.
	*/
	/**
	* Visual elevation:
	*   0 — flat (bg only)
	*   1 — default (bg-elev-1, border)
	*   2 — raised (bg-elev-2, border-strong, shadow-md)
	*/
	/** Extra class names forwarded to the root. */
	/** Optional header slot. */
	/** Default content slot. */
	/** Optional footer slot. */
	let { padding = "cozy", interactive = false, elevation = 1, class: extraClass = "", header, children, footer } = $$props;
	$$renderer.push(`<article${attr_class(`card p-${stringify(padding)} e-${stringify(elevation)} ${stringify(extraClass)}`, "svelte-14efj7c", { "interactive": interactive })}>`);
	if (header) {
		$$renderer.push("<!--[0-->");
		$$renderer.push(`<header class="card-header svelte-14efj7c">`);
		header($$renderer);
		$$renderer.push(`<!----></header>`);
	} else $$renderer.push("<!--[-1-->");
	$$renderer.push(`<!--]--> <div class="card-body svelte-14efj7c">`);
	if (children) {
		$$renderer.push("<!--[0-->");
		children($$renderer);
		$$renderer.push(`<!---->`);
	} else $$renderer.push("<!--[-1-->");
	$$renderer.push(`<!--]--></div> `);
	if (footer) {
		$$renderer.push("<!--[0-->");
		$$renderer.push(`<footer class="card-footer svelte-14efj7c">`);
		footer($$renderer);
		$$renderer.push(`<!----></footer>`);
	} else $$renderer.push("<!--[-1-->");
	$$renderer.push(`<!--]--></article>`);
}
//#endregion
//#region src/lib/ui/IconButton.svelte
function IconButton($$renderer, $$props) {
	$$renderer.component(($$renderer) => {
		/**
		* Props for {@link IconButton}.
		*/
		/** REQUIRED accessible label for screen readers. */
		/** Visual variant. Defaults to `ghost`. */
		/** Size scale. Defaults to `md`. */
		/** Disabled state. */
		/** Loading state — shows a spinner instead of the icon. */
		/** Click handler. */
		/** Tooltip-style native title, shown on hover. Defaults to `aria-label`. */
		/** Extra class names. */
		/** Default slot — the icon (SVG, glyph, emoji). */
		let { "aria-label": ariaLabel, variant = "ghost", size = "md", disabled = false, loading = false, title, class: extraClass = "", children } = $$props;
		const rootClass = derived(() => `icon-btn v-${variant} s-${size} ${loading ? "is-loading" : ""} ${extraClass}`.trim());
		$$renderer.push(`<button type="button"${attr_class(clsx(rootClass()), "svelte-13o797d")}${attr("aria-label", ariaLabel)}${attr("aria-busy", loading ? "true" : void 0)}${attr("title", title ?? ariaLabel)}${attr("disabled", disabled, true)}>`);
		if (children) {
			$$renderer.push("<!--[0-->");
			children($$renderer);
			$$renderer.push(`<!---->`);
		} else $$renderer.push("<!--[-1-->");
		$$renderer.push(`<!--]--></button>`);
	});
}
//#endregion
//#region src/lib/ui/Tabs.svelte
function Tabs($$renderer, $$props) {
	$$renderer.component(($$renderer) => {
		/**
		* Props for {@link Tabs}.
		*/
		/** Tab definitions. */
		/** Bindable active tab value. */
		/** Accessible label for the tablist. */
		/** Extra class names on the tablist bar. */
		/** Panel slot — typically holds {@link TabPanel} children. */
		/** Fires on activation with the new value. */
		let { items, value = items[0]?.value ?? "", label = "Tabs", class: extraClass = "", children, onchange } = $$props;
		$$renderer.push(`<div${attr_class(`tabs-root ${stringify(extraClass)}`, "svelte-1fwbyla")}><div class="tablist svelte-1fwbyla" role="tablist"${attr("aria-label", label)}><!--[-->`);
		const each_array = ensure_array_like(items);
		for (let idx = 0, $$length = each_array.length; idx < $$length; idx++) {
			let item = each_array[idx];
			const selected = item.value === value;
			$$renderer.push(`<button type="button"${attr_class("tab svelte-1fwbyla", void 0, { "selected": selected })} role="tab"${attr("aria-selected", selected)}${attr("aria-controls", `panel-${item.value}`)}${attr("id", `tab-${item.value}`)}${attr("tabindex", selected ? 0 : -1)}${attr("disabled", item.disabled, true)}><span class="tab-label">${escape_html(item.label)}</span> `);
			if (typeof item.count === "number") {
				$$renderer.push("<!--[0-->");
				$$renderer.push(`<span class="tab-count svelte-1fwbyla">${escape_html(item.count)}</span>`);
			} else $$renderer.push("<!--[-1-->");
			$$renderer.push(`<!--]--></button>`);
		}
		$$renderer.push(`<!--]--></div> <div class="panel-region svelte-1fwbyla">`);
		if (children) {
			$$renderer.push("<!--[0-->");
			children($$renderer);
			$$renderer.push(`<!---->`);
		} else $$renderer.push("<!--[-1-->");
		$$renderer.push(`<!--]--></div></div>`);
		bind_props($$props, { value });
	});
}

export { Badge as B, Card as C, IconButton as I, Tabs as T, Breadcrumb as a };
//# sourceMappingURL=Tabs-DzG6Bn9a.js.map
