@marwes-ui/vue 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/provider/marwes-context.ts","../src/provider/runtime-theme.ts","../src/provider/theme-mode-runtime.ts","../src/provider/marwes-provider.ts","../src/provider/use-theme.ts","../src/provider/use-theme-mode.ts","../src/internal/render-utils.ts","../src/components/icon/icon.ts","../src/components/spinner/spinner.ts","../src/components/spinner/variants.ts","../src/components/button/button.ts","../src/components/button/variants.ts","../src/hooks/use-renderkit-debug.ts","../src/components/input/input.ts","../src/components/input/select-arrow-icon.ts","../src/components/input/select.ts","../src/components/input/textarea.ts","../src/components/input/rich-text.ts","../src/internal/id.ts","../src/components/paragraph/paragraph.ts","../src/components/input/input-field.ts","../src/components/input/input-otp.ts","../src/components/input/select-field.ts","../src/components/input/textarea-field.ts","../src/components/input/rich-text-field.ts","../src/components/input/field-variants.ts","../src/components/avatar/avatar.ts","../src/components/avatar/avatar-badge.ts","../src/components/avatar/avatar-group.ts","../src/components/avatar/variants.ts","../src/components/checkbox/checkbox.ts","../src/components/checkbox/checkbox-field.ts","../src/components/checkbox/checkbox-group-field.ts","../src/components/divider/divider.ts","../src/components/skeleton/skeleton.ts","../src/components/spacing/spacing.ts","../src/components/heading/create-heading.ts","../src/components/heading/heading-variants.ts","../src/components/stat-tile/stat-tile.ts","../src/components/date-picker/date-picker.ts","../src/components/card/card.ts","../src/components/card/variants.ts","../src/components/toast/toast.ts","../src/components/toast/variants.ts","../src/components/toast/toast-container.ts","../src/components/toast/toast-manager-types.ts","../src/components/toast/toast-provider.ts","../src/components/tooltip/tooltip.ts","../src/components/tooltip/tooltip-group.ts","../src/components/accordion/accordion.ts","../src/components/accordion/accordion-field.ts","../src/components/accordion/variants.ts","../src/components/radio/radio.ts","../src/components/radio/radio-group-field.ts","../src/components/radio/variants.ts","../src/components/badge/badge.ts","../src/components/badge/badge-group.ts","../src/components/badge/variants.ts","../src/components/switch/switch.ts","../src/components/switch/switch-field.ts","../src/components/switch/variants.ts","../src/components/slider/slider.ts","../src/components/slider/slider-field.ts","../src/components/slider/variants.ts","../src/components/tab/tab.ts","../src/components/tab/tab-group.ts","../src/components/tab/variants.ts","../src/components/dialog/dialog.ts","../src/components/dialog/dialog-modal.ts","../src/components/dialog/variants.ts"],"names":["MwThemeMode","inject","computed","ThemeMode","defineComponent","h","useAttrs","spinnerPropKeys","buttonPropKeys","watch","ref","onMounted","hasTextContent","buildInputFieldA11yIds","getInitialSelectValue","resolveSelectMode","onBeforeUnmount","IconName","createAvatarRecipe","avatarPropKeys","avatarBadgePropKeys","avatarGroupPropKeys","createPurposeSemanticAttributes","cardPropKeys","toastPropKeys","provide","toChildren","accordionFieldPropKeys","radioGroupFieldPropKeys","badgePropKeys","switchFieldPropKeys","sliderFieldPropKeys","tabGroupPropKeys","hasContent"],"mappings":"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","file":"index.js","sourcesContent":["import type { ResolvedTheme, ThemeMode, ThemePreference } from \"@marwes-ui/core\"\nimport type { ComputedRef, InjectionKey } from \"vue\"\n\nexport type MarwesContextValue = {\n theme: ComputedRef<ResolvedTheme>\n mode: ComputedRef<ThemeMode>\n preference: ComputedRef<ThemePreference>\n systemMode: ComputedRef<ThemeMode>\n setMode: (mode: ThemeMode) => void\n setPreference: (preference: ThemePreference) => void\n toggleMode: () => void\n}\n\nexport const marwesContextKey: InjectionKey<MarwesContextValue> = Symbol(\"MarwesContext\")\n","import type { FontLoadingConfig, ResolvedTheme } from \"@marwes-ui/core\"\nimport {\n buildGoogleFontsUrl,\n extractFontFamilyName,\n extractUsedWeights,\n shouldLoadGoogleFont,\n themeToCSSVars,\n} from \"@marwes-ui/core\"\n\nconst loadedFonts = new Set<string>()\nlet preconnected = false\n\nexport function themeToRootStyle(theme: ResolvedTheme): Record<string, string> {\n return {\n ...themeToCSSVars(theme),\n backgroundColor: theme.color.background,\n color: theme.color.text,\n }\n}\n\nexport function applyThemeToElement(element: HTMLElement, theme: ResolvedTheme): void {\n element.setAttribute(\"data-marwes-theme\", \"true\")\n element.setAttribute(\"data-marwes-mode\", theme.mode)\n\n for (const [property, value] of Object.entries(themeToRootStyle(theme))) {\n if (property === \"backgroundColor\") {\n element.style.backgroundColor = value\n continue\n }\n\n element.style.setProperty(property, value)\n }\n}\n\nfunction ensureFontPreconnect(): void {\n if (preconnected || typeof document === \"undefined\") return\n\n preconnected = true\n\n for (const href of [\"https://fonts.googleapis.com\", \"https://fonts.gstatic.com\"]) {\n const linkElement = document.createElement(\"link\")\n linkElement.rel = \"preconnect\"\n linkElement.href = href\n\n if (href.includes(\"gstatic\")) {\n linkElement.crossOrigin = \"anonymous\"\n }\n\n document.head.appendChild(linkElement)\n }\n}\n\nfunction loadGoogleFontToDocument(family: string, weights: number[]): void {\n if (typeof document === \"undefined\") return\n\n const cacheKey = `${family}:${weights.join(\",\")}`\n if (loadedFonts.has(cacheKey)) return\n\n loadedFonts.add(cacheKey)\n ensureFontPreconnect()\n\n const linkElement = document.createElement(\"link\")\n linkElement.rel = \"stylesheet\"\n linkElement.href = buildGoogleFontsUrl(family, weights)\n linkElement.dataset.marwesFont = family\n document.head.appendChild(linkElement)\n}\n\nexport function loadThemeFonts(theme: ResolvedTheme, config: FontLoadingConfig = \"auto\"): void {\n const weights = extractUsedWeights(theme.typography)\n const fontStacks = [theme.font.primary, theme.font.secondary]\n\n for (const fontStack of fontStacks) {\n const familyName = extractFontFamilyName(fontStack)\n\n if (familyName && shouldLoadGoogleFont(familyName, config)) {\n loadGoogleFontToDocument(familyName, weights)\n }\n }\n}\n\nexport function resetThemeRuntimeState(): void {\n loadedFonts.clear()\n preconnected = false\n}\n","import { ThemeMode, isThemePreference } from \"@marwes-ui/core\"\nimport type { ThemePreference } from \"@marwes-ui/core\"\n\nconst mediaQuery = \"(prefers-color-scheme: dark)\"\n\nexport type ThemeTarget = \"provider\" | \"html\" | \"body\"\nexport type ThemeAttribute = \"class\" | \"data-theme\" | \"data-mode\"\n\nexport function getSystemThemeMode(): ThemeMode {\n if (typeof window === \"undefined\") return ThemeMode.light\n return window.matchMedia?.(mediaQuery).matches ? ThemeMode.dark : ThemeMode.light\n}\n\nexport function subscribeToSystemThemeMode(onChange: (mode: ThemeMode) => void): () => void {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {}\n\n const media = window.matchMedia(mediaQuery)\n const listener = (event: MediaQueryListEvent) => {\n onChange(event.matches ? ThemeMode.dark : ThemeMode.light)\n }\n\n if (media.addEventListener) {\n media.addEventListener(\"change\", listener)\n } else {\n media.addListener?.(listener)\n }\n\n return () => {\n if (media.removeEventListener) {\n media.removeEventListener(\"change\", listener)\n } else {\n media.removeListener?.(listener)\n }\n }\n}\n\nexport function readStoredThemePreference(storageKey: string | false): ThemePreference | undefined {\n if (!storageKey || typeof window === \"undefined\") return undefined\n\n try {\n const value = window.localStorage.getItem(storageKey)\n return isThemePreference(value) ? value : undefined\n } catch {\n return undefined\n }\n}\n\nexport function writeStoredThemePreference(\n storageKey: string | false,\n preference: ThemePreference,\n): void {\n if (!storageKey || typeof window === \"undefined\") return\n\n try {\n window.localStorage.setItem(storageKey, preference)\n } catch {\n // Ignore unavailable storage.\n }\n}\n\nexport function applyModeAttribute({\n target,\n providerElement,\n mode,\n attribute,\n}: {\n target: ThemeTarget\n providerElement: HTMLElement | null\n mode: ThemeMode\n attribute: ThemeAttribute\n}): void {\n const element = getTargetElement(target, providerElement)\n if (!element) return\n\n if (attribute === \"class\") {\n const oppositeMode = mode === ThemeMode.dark ? ThemeMode.light : ThemeMode.dark\n element.classList.remove(oppositeMode)\n element.classList.add(mode)\n return\n }\n\n element.setAttribute(attribute, mode)\n}\n\nexport function withoutModeTransitions(callback: () => void): void {\n if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n callback()\n return\n }\n\n const style = document.createElement(\"style\")\n style.dataset.marwesDisableTransitions = \"true\"\n style.textContent = \"* { transition: none !important; }\"\n document.head.appendChild(style)\n\n callback()\n window.getComputedStyle(document.body)\n window.requestAnimationFrame(() => {\n style.remove()\n })\n}\n\nfunction getTargetElement(\n target: ThemeTarget,\n providerElement: HTMLElement | null,\n): HTMLElement | null {\n if (target === \"provider\") return providerElement\n if (typeof document === \"undefined\") return null\n return target === \"html\" ? document.documentElement : document.body\n}\n","import type {\n FontLoadingConfig,\n ResolvedTheme,\n ThemeInput,\n ThemeMode,\n ThemePreference,\n ThemeVariableStrategy,\n} from \"@marwes-ui/core\"\nimport {\n ThemeMode as MwThemeMode,\n nextThemeMode,\n resolveThemeInput,\n resolveThemePreference,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onMounted, onUnmounted, provide, ref, watch } from \"vue\"\nimport { marwesContextKey } from \"./marwes-context\"\nimport { applyThemeToElement, loadThemeFonts, themeToRootStyle } from \"./runtime-theme\"\nimport {\n applyModeAttribute,\n getSystemThemeMode,\n readStoredThemePreference,\n subscribeToSystemThemeMode,\n withoutModeTransitions,\n writeStoredThemePreference,\n} from \"./theme-mode-runtime\"\nimport type { ThemeAttribute, ThemeTarget } from \"./theme-mode-runtime\"\n\nexport type MarwesProviderProps = {\n theme?: ThemeInput\n defaultPreference?: ThemePreference\n preference?: ThemePreference\n defaultMode?: ThemeMode\n mode?: ThemeMode\n fontLoading?: FontLoadingConfig\n onPreferenceChange?: (preference: ThemePreference) => void\n onModeChange?: (mode: ThemeMode) => void\n storageKey?: string | false\n enableSystem?: boolean\n target?: ThemeTarget\n attribute?: ThemeAttribute\n disableTransitionOnChange?: boolean\n variableStrategy?: ThemeVariableStrategy\n}\n\nexport const MarwesProvider = defineComponent({\n name: \"MarwesProvider\",\n props: [\n \"theme\",\n \"defaultPreference\",\n \"preference\",\n \"defaultMode\",\n \"mode\",\n \"fontLoading\",\n \"onPreferenceChange\",\n \"onModeChange\",\n \"storageKey\",\n \"enableSystem\",\n \"target\",\n \"attribute\",\n \"disableTransitionOnChange\",\n \"variableStrategy\",\n ],\n setup(rawProps, { slots }) {\n const props = rawProps as unknown as MarwesProviderProps\n\n const internalPreference = ref<ThemePreference>(\n props.defaultPreference ?? props.defaultMode ?? MwThemeMode.light,\n )\n const systemMode = ref<ThemeMode>(\n props.enableSystem === false ? MwThemeMode.light : getSystemThemeMode(),\n )\n const enableSystem = computed(() => props.enableSystem !== false)\n const storageKey = computed(() => props.storageKey ?? false)\n const target = computed<ThemeTarget>(() => props.target ?? \"provider\")\n const attribute = computed<ThemeAttribute>(() => props.attribute ?? \"class\")\n const disableTransitionOnChange = computed(() => props.disableTransitionOnChange === true)\n const variableStrategy = computed<ThemeVariableStrategy>(\n () => props.variableStrategy ?? \"inline\",\n )\n const isPreferenceControlled = computed(\n () =>\n props.preference !== undefined ||\n props.mode !== undefined ||\n props.theme?.mode !== undefined,\n )\n const activePreference = computed<ThemePreference>(\n () => props.preference ?? props.mode ?? props.theme?.mode ?? internalPreference.value,\n )\n const activeMode = computed<ThemeMode>(() =>\n resolveThemePreference(activePreference.value, systemMode.value),\n )\n const resolved = computed<ResolvedTheme>(() =>\n resolveThemeInput({ ...(props.theme ?? {}), mode: activeMode.value }),\n )\n\n const rootRef = ref<HTMLElement | null>(null)\n\n function setPreference(nextPreference: ThemePreference) {\n if (!isPreferenceControlled.value) {\n internalPreference.value = nextPreference\n }\n\n writeStoredThemePreference(storageKey.value, nextPreference)\n props.onPreferenceChange?.(nextPreference)\n }\n\n function setMode(nextMode: ThemeMode) {\n setPreference(nextMode)\n props.onModeChange?.(nextMode)\n }\n\n function toggleMode() {\n setMode(nextThemeMode(activeMode.value))\n }\n\n function syncThemeToRuntime() {\n if (rootRef.value && variableStrategy.value === \"inline\") {\n applyThemeToElement(rootRef.value, resolved.value)\n }\n\n loadThemeFonts(resolved.value, props.fontLoading ?? \"auto\")\n }\n\n function syncTargetModeAttribute() {\n if (target.value === \"provider\") return\n\n const apply = () => {\n applyModeAttribute({\n target: target.value,\n providerElement: rootRef.value,\n mode: activeMode.value,\n attribute: attribute.value,\n })\n }\n\n if (disableTransitionOnChange.value) {\n withoutModeTransitions(apply)\n return\n }\n\n apply()\n }\n\n let unsubscribeSystemThemeMode: (() => void) | undefined\n\n function syncSystemThemeSubscription() {\n unsubscribeSystemThemeMode?.()\n unsubscribeSystemThemeMode = undefined\n\n if (!enableSystem.value) {\n systemMode.value = MwThemeMode.light\n return\n }\n\n systemMode.value = getSystemThemeMode()\n\n if (activePreference.value === \"system\") {\n unsubscribeSystemThemeMode = subscribeToSystemThemeMode((nextMode) => {\n systemMode.value = nextMode\n })\n }\n }\n\n onMounted(() => {\n const storedPreference = readStoredThemePreference(storageKey.value)\n if (storedPreference !== undefined && !isPreferenceControlled.value) {\n internalPreference.value = storedPreference\n }\n\n syncSystemThemeSubscription()\n syncThemeToRuntime()\n syncTargetModeAttribute()\n })\n onUnmounted(() => {\n unsubscribeSystemThemeMode?.()\n })\n watch([resolved, variableStrategy], syncThemeToRuntime)\n watch([activeMode, target, attribute, disableTransitionOnChange], syncTargetModeAttribute)\n watch([activePreference, enableSystem], syncSystemThemeSubscription)\n\n provide(marwesContextKey, {\n theme: resolved,\n mode: activeMode,\n preference: activePreference,\n systemMode: computed(() => systemMode.value),\n setMode,\n setPreference,\n toggleMode,\n })\n\n return () =>\n h(\n \"div\",\n {\n ref: rootRef,\n class: `mw-theme--${resolved.value.mode}`,\n \"data-marwes-theme\": \"true\",\n \"data-marwes-mode\": resolved.value.mode,\n style: variableStrategy.value === \"inline\" ? themeToRootStyle(resolved.value) : undefined,\n },\n slots.default?.(),\n )\n },\n})\n","import type { ResolvedTheme } from \"@marwes-ui/core\"\nimport { inject } from \"vue\"\nimport { marwesContextKey } from \"./marwes-context\"\n\nexport function useTheme(): ResolvedTheme {\n const context = inject(marwesContextKey, null)\n\n if (!context) {\n throw new Error(\"MarwesProvider is missing. Wrap your app in <MarwesProvider />.\")\n }\n\n return context.theme.value\n}\n","import { ThemeMode } from \"@marwes-ui/core\"\nimport type { ThemePreference } from \"@marwes-ui/core\"\nimport type { ComputedRef } from \"vue\"\nimport { computed, inject } from \"vue\"\nimport { marwesContextKey } from \"./marwes-context\"\n\nexport type ThemeModeContextValue = {\n mode: ComputedRef<ThemeMode>\n preference: ComputedRef<ThemePreference>\n systemMode: ComputedRef<ThemeMode>\n setMode: (mode: ThemeMode) => void\n setPreference: (preference: ThemePreference) => void\n toggleMode: () => void\n isDark: ComputedRef<boolean>\n isLight: ComputedRef<boolean>\n isSystem: ComputedRef<boolean>\n}\n\nexport function useThemeMode(): ThemeModeContextValue {\n const context = inject(marwesContextKey, null)\n\n if (!context) {\n throw new Error(\"MarwesProvider is missing. Wrap your app in <MarwesProvider />.\")\n }\n\n return {\n mode: context.mode,\n preference: context.preference,\n systemMode: context.systemMode,\n setMode: context.setMode,\n setPreference: context.setPreference,\n toggleMode: context.toggleMode,\n isDark: computed(() => context.mode.value === ThemeMode.dark),\n isLight: computed(() => context.mode.value === ThemeMode.light),\n isSystem: computed(() => context.preference.value === \"system\"),\n }\n}\n","import type { CSSProperties, VNodeChild } from \"vue\"\n\nexport type StyleWithVars = CSSProperties & Record<`--mw-${string}`, string>\n\nexport function mergeClassNames(...parts: Array<unknown>): string {\n return parts.filter(Boolean).join(\" \")\n}\n\nexport function mergeStyles(...stylesInput: Array<unknown>): CSSProperties | undefined {\n const styles = stylesInput.filter(Boolean)\n if (styles.length === 0) {\n return undefined\n }\n\n return Object.assign({}, ...styles) as CSSProperties\n}\n\nexport function omitAttrs(\n attrs: Record<string, unknown>,\n omittedKeys: readonly string[],\n): Record<string, unknown> {\n const nextAttrs: Record<string, unknown> = {}\n\n for (const [attrName, attrValue] of Object.entries(attrs)) {\n if (omittedKeys.includes(attrName)) {\n continue\n }\n nextAttrs[attrName] = attrValue\n }\n\n return nextAttrs\n}\n\nexport function getDefaultSlotChildren(slots: { default?: () => VNodeChild[] }):\n | VNodeChild[]\n | undefined {\n return slots.default?.()\n}\n","import {\n type IconSize,\n type IconStrokeWidth,\n iconRegistry,\n resolveIconA11y,\n resolveIconSize,\n resolveIconStrokeWidth,\n} from \"@marwes-ui/core\"\nimport { defineComponent, h, useAttrs } from \"vue\"\n\ntype IconName = keyof typeof iconRegistry\n\nexport type IconProps = {\n name: IconName\n size?: IconSize | number\n strokeWidth?: IconStrokeWidth | number\n className?: string\n ariaLabel?: string\n decorative?: boolean\n}\n\nconst iconPropKeys = [\n \"name\",\n \"size\",\n \"strokeWidth\",\n \"className\",\n \"ariaLabel\",\n \"decorative\",\n] as const\n\nexport const Icon = defineComponent(\n (props: IconProps) => {\n const attrs = useAttrs()\n\n return () => {\n const px = resolveIconSize(props.size ?? \"sm\")\n const strokeWidth = resolveIconStrokeWidth(props.strokeWidth ?? \"md\")\n const iconDefinition = iconRegistry[props.name]\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n const ariaLabel = props.ariaLabel ?? ariaLabelFromAttrs\n const a11y = resolveIconA11y({\n ...(ariaLabel !== undefined ? { ariaLabel } : {}),\n ...(props.decorative !== undefined ? { decorative: props.decorative } : {}),\n })\n\n return h(\n \"svg\",\n {\n ...attrs,\n width: px,\n height: px,\n viewBox: iconDefinition.viewBox,\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": strokeWidth,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n class: [props.className, attrs.class],\n \"aria-hidden\": a11y.ariaHidden ? \"true\" : undefined,\n \"aria-label\": a11y.ariaLabel,\n role: a11y.role,\n focusable: \"false\",\n },\n iconDefinition.nodes.map((iconNode) => h(iconNode.tag, iconNode.attrs)),\n )\n }\n },\n {\n name: \"MarwesIcon\",\n inheritAttrs: false,\n props: [...iconPropKeys],\n },\n)\n","import { type SpinnerOptions, type SpinnerSvgNode, createSpinnerRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SpinnerProps = SpinnerOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst spinnerPropKeys = [\n \"variant\",\n \"size\",\n \"decorative\",\n \"ariaLabel\",\n \"id\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nfunction renderSpinnerSvgNode(spinnerSvgNode: SpinnerSvgNode, nodeIndex: number) {\n return h(spinnerSvgNode.tag, {\n key: `${spinnerSvgNode.tag}-${nodeIndex}`,\n ...spinnerSvgNode.attrs,\n })\n}\n\nexport const Spinner = defineComponent(\n (props: SpinnerProps) => {\n const attrs = useAttrs()\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const renderKit = computed(() =>\n createSpinnerRecipe({\n ...(props.variant !== undefined ? { variant: props.variant } : {}),\n ...(props.size !== undefined ? { size: props.size } : {}),\n ...(props.decorative !== undefined ? { decorative: props.decorative } : {}),\n ...(props.id !== undefined ? { id: props.id } : {}),\n ...(props.ariaLabel !== undefined\n ? { ariaLabel: props.ariaLabel }\n : ariaLabelFromAttrs !== undefined\n ? { ariaLabel: ariaLabelFromAttrs }\n : {}),\n }),\n )\n\n return () => {\n const spinnerRenderKit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\n \"class\",\n \"style\",\n \"aria-label\",\n ])\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...spinnerRenderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n class: mergeClassNames(spinnerRenderKit.className, props.className, attrs.class),\n style: mergeStyles(spinnerRenderKit.vars, attrs.style),\n role: spinnerRenderKit.a11y.role,\n id: spinnerRenderKit.a11y.id,\n \"aria-hidden\": spinnerRenderKit.a11y.ariaHidden ? \"true\" : undefined,\n \"aria-label\": spinnerRenderKit.a11y.ariaLabel,\n \"aria-live\": spinnerRenderKit.a11y.ariaLive,\n },\n [\n h(\n \"svg\",\n {\n class: \"mw-spinner__svg\",\n viewBox: spinnerRenderKit.svg.viewBox,\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n },\n spinnerRenderKit.svg.nodes.map(renderSpinnerSvgNode),\n ),\n ],\n )\n }\n },\n {\n name: \"MarwesSpinner\",\n inheritAttrs: false,\n props: [...spinnerPropKeys],\n },\n)\n","import type { CssVars } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { mergeStyles } from \"../../internal/render-utils\"\nimport { Spinner, type SpinnerProps } from \"./spinner\"\n\nconst spinnerPropKeys = [\n \"variant\",\n \"size\",\n \"decorative\",\n \"ariaLabel\",\n \"id\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport type ButtonSpinnerProps = SpinnerProps & {\n inverted?: boolean\n}\n\nexport const ButtonSpinner = defineComponent({\n name: \"MarwesButtonSpinner\",\n inheritAttrs: false,\n props: [...spinnerPropKeys, \"inverted\"],\n setup(rawProps, { attrs }) {\n return () => {\n const props = rawProps as unknown as ButtonSpinnerProps\n const spinnerStyle = mergeStyles(\n {\n \"--mw-spinner-track-color\": props.inverted\n ? \"color-mix(in srgb, currentColor 80%, transparent)\"\n : \"color-mix(in srgb, currentColor 35%, transparent)\",\n \"--mw-spinner-indicator-color\": \"currentColor\",\n } as CssVars,\n attrs.style,\n )\n\n return h(Spinner, {\n ...attrs,\n ...props,\n variant: props.variant ?? \"classic\",\n size: props.size ?? \"xs\",\n decorative: props.decorative ?? true,\n style: spinnerStyle,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"button-loading\",\n \"data-context\": \"button-loading\",\n },\n })\n }\n },\n})\n\nexport type EmptyStateSpinnerProps = SpinnerProps\n\nexport const EmptyStateSpinner = defineComponent({\n name: \"MarwesEmptyStateSpinner\",\n inheritAttrs: false,\n props: [...spinnerPropKeys],\n setup(rawProps, { attrs }) {\n return () => {\n const props = rawProps as unknown as EmptyStateSpinnerProps\n\n return h(Spinner, {\n ...attrs,\n ...props,\n variant: props.variant ?? \"dots-round\",\n size: props.size ?? \"lg\",\n decorative: props.decorative ?? true,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"empty-state\",\n \"data-context\": \"empty-state\",\n },\n })\n }\n },\n})\n","import type { ButtonOptions, ButtonVariant, CssVars } from \"@marwes-ui/core\"\nimport { createButtonRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport {\n getDefaultSlotChildren,\n mergeClassNames,\n mergeStyles,\n omitAttrs,\n} from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { ButtonSpinner } from \"../spinner\"\n\nfunction isFilledButtonVariant(variant: ButtonVariant): boolean {\n return variant === \"primary\" || variant === \"success\"\n}\n\nexport type ButtonProps = ButtonOptions & {\n onClick?: (event: MouseEvent) => void\n className?: string\n}\n\nconst buttonPropKeys = [\n \"as\",\n \"href\",\n \"size\",\n \"variant\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"action\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nexport const Button = defineComponent(\n (props: ButtonProps, { slots, emit }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => createButtonRecipe(props))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n const slotChildren = getDefaultSlotChildren(slots)\n const content = []\n const resolvedVariant = (props.variant ?? \"primary\") as ButtonVariant\n const resolvedLoading = renderKit.loading\n\n if (resolvedLoading.isLoading) {\n content.push(\n h(ButtonSpinner, {\n variant: resolvedLoading.spinnerVariant,\n inverted: isFilledButtonVariant(resolvedVariant),\n }),\n )\n } else if (props.iconLeft) {\n content.push(\n h(Icon, { name: props.iconLeft, size: \"xs\", strokeWidth: \"sm\", decorative: true }),\n )\n }\n\n if (resolvedLoading.isLoading && resolvedLoading.loadingLabel !== undefined) {\n content.push(resolvedLoading.loadingLabel)\n } else if (slotChildren) {\n content.push(...slotChildren)\n }\n\n if (!resolvedLoading.isLoading && props.iconRight) {\n content.push(\n h(Icon, { name: props.iconRight, size: \"xs\", strokeWidth: \"sm\", decorative: true }),\n )\n }\n\n if (renderKit.tag === \"button\") {\n return h(\n \"button\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n type: renderKit.a11y.type,\n disabled: renderKit.a11y.disabled,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-busy\": renderKit.a11y.ariaBusy,\n \"aria-disabled\": renderKit.a11y.ariaDisabled,\n \"aria-pressed\": renderKit.a11y.ariaPressed,\n \"aria-expanded\": renderKit.a11y.ariaExpanded,\n \"aria-controls\": renderKit.a11y.ariaControls,\n title: renderKit.a11y.title,\n class: className,\n style,\n onClick: (event: MouseEvent) => {\n emit(\"click\", event)\n },\n },\n content,\n )\n }\n\n return h(\n \"a\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n href: renderKit.a11y.href,\n role: renderKit.a11y.role,\n tabindex: renderKit.a11y.tabIndex,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-busy\": renderKit.a11y.ariaBusy,\n \"aria-disabled\": renderKit.a11y.ariaDisabled,\n \"aria-pressed\": renderKit.a11y.ariaPressed,\n \"aria-expanded\": renderKit.a11y.ariaExpanded,\n \"aria-controls\": renderKit.a11y.ariaControls,\n title: renderKit.a11y.title,\n class: className,\n style,\n onClick: (event: MouseEvent) => {\n if (renderKit.blockClick) {\n event.preventDefault()\n return\n }\n emit(\"click\", event)\n },\n },\n content,\n )\n }\n },\n {\n name: \"MarwesButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n emits: [\"click\"],\n },\n)\n","import {\n ButtonAction,\n ButtonVariant,\n IconName,\n createPurposeSemanticAttributes,\n} from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { omitAttrs } from \"../../internal/render-utils\"\nimport { Button, type ButtonProps } from \"./button\"\n\ntype PurposeButtonForbiddenProp = \"variant\" | \"action\" | \"as\"\n\nconst buttonPropKeys = [\n \"as\",\n \"href\",\n \"size\",\n \"variant\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"action\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nconst purposeButtonPropKeys = [\n \"as\",\n \"href\",\n \"size\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nconst fixedModePurposeButtonPropKeys = [\n \"size\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nconst anchorPurposeButtonPropKeys = [\"href\", ...fixedModePurposeButtonPropKeys] as const\n\nfunction isDevelopmentEnvironment(): boolean {\n const nodeProcess = (\n globalThis as unknown as {\n process?: { env?: Record<string, string | undefined> }\n }\n ).process\n\n const nodeEnv = nodeProcess?.env?.NODE_ENV\n if (nodeEnv) {\n return nodeEnv !== \"production\"\n }\n\n const meta = import.meta as unknown as {\n env?: { MODE?: string; PROD?: boolean }\n }\n\n if (typeof meta.env?.PROD === \"boolean\") {\n return !meta.env.PROD\n }\n\n if (meta.env?.MODE) {\n return meta.env.MODE !== \"production\"\n }\n\n return true\n}\n\nfunction warnForForbiddenPurposeProps(\n componentName: string,\n rawProps: Record<string, unknown>,\n attrs: Record<string, unknown>,\n forbiddenProps: readonly PurposeButtonForbiddenProp[],\n): void {\n if (!isDevelopmentEnvironment()) {\n return\n }\n\n const warningByProp: Record<PurposeButtonForbiddenProp, string> = {\n variant: \"Use Button if you need a custom visual treatment.\",\n action: \"Use Button if you need a custom semantic action.\",\n as: \"Use Button if you need a custom element mode.\",\n }\n\n for (const forbiddenProp of forbiddenProps) {\n const wasProvidedViaProps = Object.prototype.hasOwnProperty.call(rawProps, forbiddenProp)\n const wasProvidedViaAttrs = Object.prototype.hasOwnProperty.call(attrs, forbiddenProp)\n\n if (!wasProvidedViaProps && !wasProvidedViaAttrs) {\n continue\n }\n\n console.warn(\n `[marwes] ${componentName} does not support \\`${forbiddenProp}\\`. ${warningByProp[forbiddenProp]}`,\n )\n }\n}\n\nfunction filterForwardedAttrs(\n attrs: Record<string, unknown>,\n omittedKeys: readonly string[],\n): Record<string, unknown> {\n return omitAttrs(attrs, omittedKeys)\n}\n\nfunction createPurposeButtonDataAttributes(\n purpose: Parameters<typeof createPurposeSemanticAttributes>[0],\n existingDataAttributes: ButtonProps[\"dataAttributes\"],\n localDataAttributes: ButtonProps[\"dataAttributes\"] = {},\n): Record<string, string | boolean | undefined> {\n return {\n ...existingDataAttributes,\n ...createPurposeSemanticAttributes(purpose),\n ...localDataAttributes,\n }\n}\n\n// DESTRUCTIVE BUTTON - Destructive Actions\n\nexport type DestructiveButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\"> & {\n confirmation?: boolean\n}\n\nexport const DestructiveButton = defineComponent({\n name: \"MarwesDestructiveButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as DestructiveButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"DestructiveButton\", rawProps, rawAttrs, [\n \"variant\",\n \"action\",\n \"as\",\n ])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n as: \"button\",\n variant: ButtonVariant.primary,\n action: ButtonAction.delete,\n error: true,\n confirmation: props.confirmation ?? true,\n dataAttributes: createPurposeButtonDataAttributes(\"destructive\", props.dataAttributes, {\n \"data-confirmation-required\": props.confirmation === false ? \"false\" : \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type CreateButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CreateButton = defineComponent({\n name: \"MarwesCreateButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CreateButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CreateButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.create,\n variant: ButtonVariant.primary,\n dataAttributes: createPurposeButtonDataAttributes(\"create\", props.dataAttributes, {\n \"data-creative\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SubmitButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\">\n\nexport const SubmitButton = defineComponent({\n name: \"MarwesSubmitButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SubmitButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SubmitButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n as: \"button\",\n action: ButtonAction.submit,\n variant: ButtonVariant.primary,\n dataAttributes: createPurposeButtonDataAttributes(\"submit\", props.dataAttributes),\n },\n slots,\n )\n }\n },\n})\n\nexport type CancelButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CancelButton = defineComponent({\n name: \"MarwesCancelButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CancelButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CancelButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.cancel,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"cancel\", props.dataAttributes, {\n \"data-cancel\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type LinkButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\"> & {\n href: string\n}\n\nexport const LinkButton = defineComponent({\n name: \"MarwesLinkButton\",\n inheritAttrs: false,\n props: [...anchorPurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as LinkButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"LinkButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\"]),\n ...props,\n as: \"a\",\n action: ButtonAction.navigate,\n variant: ButtonVariant.text,\n dataAttributes: createPurposeButtonDataAttributes(\"navigation\", props.dataAttributes, {\n \"data-navigation\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SaveButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const SaveButton = defineComponent({\n name: \"MarwesSaveButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SaveButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SaveButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.submit,\n variant: ButtonVariant.primary,\n dataAttributes: createPurposeButtonDataAttributes(\"save\", props.dataAttributes, {\n \"data-persist\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type ConfirmButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\">\n\nexport const ConfirmButton = defineComponent({\n name: \"MarwesConfirmButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as ConfirmButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"ConfirmButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n variant: ButtonVariant.success,\n as: \"button\",\n action: ButtonAction.button,\n dataAttributes: createPurposeButtonDataAttributes(\"confirm\", props.dataAttributes),\n },\n slots,\n )\n }\n },\n})\n\nexport type VerifyButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\">\n\nexport const VerifyButton = defineComponent({\n name: \"MarwesVerifyButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as VerifyButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"VerifyButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n variant: ButtonVariant.secondary,\n as: \"button\",\n action: ButtonAction.button,\n iconRight: props.iconRight ?? IconName.CheckCircle,\n dataAttributes: createPurposeButtonDataAttributes(\"verify\", props.dataAttributes, {\n \"data-verification\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type EditButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const EditButton = defineComponent({\n name: \"MarwesEditButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as EditButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"EditButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.edit,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.Edit,\n dataAttributes: createPurposeButtonDataAttributes(\"edit\", props.dataAttributes, {\n \"data-edit\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type CloseButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CloseButton = defineComponent({\n name: \"MarwesCloseButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CloseButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CloseButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.cancel,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"close\", props.dataAttributes, {\n \"data-close\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type RefreshButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const RefreshButton = defineComponent({\n name: \"MarwesRefreshButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as RefreshButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"RefreshButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n iconRight: props.iconRight ?? IconName.RefreshCw,\n dataAttributes: createPurposeButtonDataAttributes(\"refresh\", props.dataAttributes, {\n \"data-refresh\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type UploadButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const UploadButton = defineComponent({\n name: \"MarwesUploadButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as UploadButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"UploadButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.Upload,\n dataAttributes: createPurposeButtonDataAttributes(\"upload\", props.dataAttributes, {\n \"data-transfer\": \"upload\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type DownloadButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const DownloadButton = defineComponent({\n name: \"MarwesDownloadButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as DownloadButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"DownloadButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.Download,\n dataAttributes: createPurposeButtonDataAttributes(\"download\", props.dataAttributes, {\n \"data-transfer\": \"download\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type CopyButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CopyButton = defineComponent({\n name: \"MarwesCopyButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CopyButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CopyButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"copy\", props.dataAttributes, {\n \"data-copy\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SearchButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const SearchButton = defineComponent({\n name: \"MarwesSearchButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SearchButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SearchButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.primary,\n iconRight: props.iconRight ?? IconName.Search,\n dataAttributes: createPurposeButtonDataAttributes(\"search\", props.dataAttributes, {\n \"data-search\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type FilterButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const FilterButton = defineComponent({\n name: \"MarwesFilterButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as FilterButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"FilterButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"filter\", props.dataAttributes, {\n \"data-filter\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SortButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const SortButton = defineComponent({\n name: \"MarwesSortButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SortButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SortButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"sort\", props.dataAttributes, {\n \"data-sort\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type DropdownButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const DropdownButton = defineComponent({\n name: \"MarwesDropdownButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as DropdownButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"DropdownButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.ChevronDown,\n dataAttributes: createPurposeButtonDataAttributes(\"dropdown\", props.dataAttributes, {\n \"data-dropdown\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type PrimaryButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const PrimaryButton = defineComponent({\n name: \"MarwesPrimaryButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as PrimaryButtonProps\n return h(Button, { ...attrs, ...props, variant: \"primary\", as: \"button\" }, slots)\n }\n },\n})\n\nexport type SecondaryButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const SecondaryButton = defineComponent({\n name: \"MarwesSecondaryButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SecondaryButtonProps\n return h(Button, { ...attrs, ...props, variant: \"secondary\", as: \"button\" }, slots)\n }\n },\n})\n\nexport type TextButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const TextButton = defineComponent({\n name: \"MarwesTextButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as TextButtonProps\n return h(Button, { ...attrs, ...props, variant: \"text\", as: \"button\" }, slots)\n }\n },\n})\n\nexport type SuccessButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const SuccessButton = defineComponent({\n name: \"MarwesSuccessButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SuccessButtonProps\n return h(\n Button,\n {\n ...attrs,\n ...props,\n variant: \"success\",\n as: \"button\",\n dataAttributes: createPurposeButtonDataAttributes(\"success\", props.dataAttributes),\n },\n slots,\n )\n }\n },\n})\n","import type { Ref } from \"vue\"\nimport { watch } from \"vue\"\n\nconst RENDERKIT_EVENT = \"marwes/renderkit/renderkit-update\"\nconst RENDERKIT_DEBUG_FLAG = \"__MARWES_RENDERKIT_DEBUG__\"\n\nfunction isRenderKitDebugEnabled(): boolean {\n if (typeof window === \"undefined\") {\n return false\n }\n\n const renderKitDebugWindow = window as Window & {\n [RENDERKIT_DEBUG_FLAG]?: boolean\n }\n\n return renderKitDebugWindow[RENDERKIT_DEBUG_FLAG] === true\n}\n\nexport function useRenderKitDebug(renderKitRef: Ref<unknown>, componentName: string) {\n watch(\n renderKitRef,\n (renderKit) => {\n if (!isRenderKitDebugEnabled()) {\n return\n }\n\n const event = new CustomEvent(RENDERKIT_EVENT, {\n detail: {\n ...(renderKit as Record<string, unknown>),\n _meta: { component: componentName },\n },\n })\n\n window.dispatchEvent(event)\n },\n { deep: true, immediate: true },\n )\n}\n","import type { CssVars, InputOptions } from \"@marwes-ui/core\"\nimport { createInputRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type InputProps = InputOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst inputPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"placeholder\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"inputMode\",\n \"type\",\n \"autoComplete\",\n \"tone\",\n \"invalid\",\n \"describedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nexport const Input = defineComponent(\n (props: InputProps, { emit }) => {\n const attrs = useAttrs()\n const kit = computed(() => createInputRecipe(props))\n\n useRenderKitDebug(kit, \"Input\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n const controlledValue = props.modelValue ?? props.value\n const inputValue = controlledValue ?? props.defaultValue\n\n return h(\"input\", {\n ...passthroughAttrs,\n class: className,\n style,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n type: renderKit.a11y.type,\n inputMode: renderKit.a11y.inputMode,\n autoComplete: renderKit.a11y.autoComplete,\n placeholder: renderKit.a11y.placeholder,\n disabled: renderKit.a11y.disabled,\n readOnly: renderKit.a11y.readOnly,\n required: renderKit.a11y.required,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n value: inputValue,\n onInput: (event: Event) => {\n const target = event.target as HTMLInputElement\n const nextValue = target.value\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n onChange: (event: Event) => emit(\"change\", event),\n })\n }\n },\n {\n name: \"MarwesInput\",\n inheritAttrs: false,\n props: [...inputPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\n\nexport const SelectArrowIcon = defineComponent({\n name: \"MarwesSelectArrowIcon\",\n props: {\n className: {\n type: String,\n required: false,\n },\n },\n setup(props) {\n return () =>\n h(\n \"svg\",\n {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: props.className,\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n },\n [\n h(\"path\", {\n d: \"M11.5288 5.52876C11.7891 5.26841 12.2111 5.26841 12.4715 5.52876C12.7318 5.78911 12.7318 6.21114 12.4715 6.47147L8.47148 10.4715C8.21115 10.7318 7.78912 10.7318 7.52877 10.4715L3.52876 6.47147C3.26841 6.21112 3.26841 5.78911 3.52876 5.52876C3.78911 5.26841 4.21112 5.26841 4.47147 5.52876L6.58591 7.6432C7.36696 8.42425 8.63329 8.42425 9.41434 7.6432L11.5288 5.52876Z\",\n fill: \"currentColor\",\n }),\n ],\n )\n },\n})\n","import type {\n SelectAppearance as CoreSelectAppearance,\n SelectOption as CoreSelectOption,\n CssVars,\n SelectOptions,\n} from \"@marwes-ui/core\"\nimport { createSelectRecipe, resolveSelectMode } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref, useAttrs } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\nimport { SelectArrowIcon } from \"./select-arrow-icon\"\n\nexport type SelectAppearance = CoreSelectAppearance\nexport type SelectOption = CoreSelectOption\n\nexport type SelectProps = SelectOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nfunction getInitialSelectValue(props: SelectProps): string {\n if (props.modelValue !== undefined) {\n return props.modelValue\n }\n\n if (props.value !== undefined) {\n return props.value\n }\n\n if (props.defaultValue !== undefined) {\n return props.defaultValue\n }\n\n if (props.placeholder !== undefined) {\n return \"\"\n }\n\n return props.options[0]?.value ?? \"\"\n}\n\nconst selectPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"options\",\n \"placeholder\",\n \"disabled\",\n \"required\",\n \"native\",\n \"tone\",\n \"appearance\",\n \"invalid\",\n \"describedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nexport const Select = defineComponent(\n (props: SelectProps, { emit }) => {\n const attrs = useAttrs()\n const kit = computed(() => createSelectRecipe(props))\n const mode = computed(() => resolveSelectMode(props))\n const uncontrolledValue = ref(getInitialSelectValue(props))\n const currentValue = computed(() => props.modelValue ?? props.value ?? uncontrolledValue.value)\n const placeholderSelected = computed(\n () => props.placeholder !== undefined && currentValue.value === \"\",\n )\n\n useRenderKitDebug(kit, \"Select\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n const selectElement = h(\n \"select\",\n {\n ...passthroughAttrs,\n class: className,\n style,\n \"data-placeholder-selected\": placeholderSelected.value ? \"true\" : undefined,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n disabled: renderKit.a11y.disabled,\n required: renderKit.a11y.required,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n value: currentValue.value,\n onChange: (event: Event) => {\n const target = event.target as HTMLSelectElement\n const nextValue = target.value\n\n if (props.modelValue === undefined && props.value === undefined) {\n uncontrolledValue.value = nextValue\n }\n\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n emit(\"change\", event)\n },\n },\n [\n ...(props.placeholder\n ? [\n h(\n \"option\",\n { value: \"\", disabled: props.required ? true : undefined },\n props.placeholder,\n ),\n ]\n : []),\n ...props.options.map((option) =>\n h(\n \"option\",\n { key: option.value, value: option.value, disabled: option.disabled },\n option.label,\n ),\n ),\n ],\n )\n\n if (mode.value === \"native\") {\n return selectElement\n }\n\n return h(\"span\", { class: \"mw-select__control\" }, [\n selectElement,\n h(SelectArrowIcon, { className: \"mw-select__control-icon\" }),\n ])\n }\n },\n {\n name: \"MarwesSelect\",\n inheritAttrs: false,\n props: [...selectPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import type { CssVars, TextareaOptions } from \"@marwes-ui/core\"\nimport { createTextareaRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type TextareaProps = TextareaOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst textareaPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"placeholder\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"inputMode\",\n \"autoComplete\",\n \"rows\",\n \"cols\",\n \"resize\",\n \"tone\",\n \"invalid\",\n \"describedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nexport const Textarea = defineComponent(\n (props: TextareaProps, { emit }) => {\n const attrs = useAttrs()\n const kit = computed(() => createTextareaRecipe(props))\n\n useRenderKitDebug(kit, \"Textarea\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n const controlledValue = props.modelValue ?? props.value\n const textareaValue = controlledValue ?? props.defaultValue\n\n return h(\"textarea\", {\n ...passthroughAttrs,\n class: className,\n style,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n inputMode: renderKit.a11y.inputMode,\n autoComplete: renderKit.a11y.autoComplete,\n placeholder: renderKit.a11y.placeholder,\n disabled: renderKit.a11y.disabled,\n readOnly: renderKit.a11y.readOnly,\n required: renderKit.a11y.required,\n rows: renderKit.a11y.rows,\n cols: renderKit.a11y.cols,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n value: textareaValue,\n onInput: (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n const nextValue = target.value\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n onChange: (event: Event) => emit(\"change\", event),\n })\n }\n },\n {\n name: \"MarwesTextarea\",\n inheritAttrs: false,\n props: [...textareaPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import {\n createRichTextRecipe,\n isRichTextHtmlEmpty,\n normalizeRichTextHtml,\n resolveRichTextAllowedFormats,\n richTextCommandByFormat,\n} from \"@marwes-ui/core\"\nimport type { CssVars, RichTextFormat, RichTextOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, ref, useAttrs, watch } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\n\nexport type RichTextProps = RichTextOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst richTextPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"placeholder\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"tone\",\n \"invalid\",\n \"describedBy\",\n \"labelledBy\",\n \"ariaLabel\",\n \"allowedFormats\",\n \"onValueChange\",\n \"className\",\n] as const\n\nconst formatLabels: Record<RichTextFormat, string> = {\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n}\n\ntype RichTextCommandDocument = Document & {\n execCommand?: (commandId: string) => boolean\n queryCommandState?: (commandId: string) => boolean\n}\n\nfunction getRichTextCommandDocument(): RichTextCommandDocument {\n return document as unknown as RichTextCommandDocument\n}\n\nfunction isNodeWithinEditor(node: Node | null, editorElement: HTMLDivElement | null): boolean {\n if (!node || !editorElement) {\n return false\n }\n\n return editorElement.contains(node.nodeType === Node.TEXT_NODE ? node.parentNode : node)\n}\n\nfunction getActiveFormatsFromSelection(editorElement: HTMLDivElement | null): RichTextFormat[] {\n if (!editorElement || typeof window === \"undefined\" || typeof document === \"undefined\") {\n return []\n }\n\n const commandDocument = getRichTextCommandDocument()\n const selection = window.getSelection()\n const anchorNode = selection?.anchorNode ?? null\n\n if (!anchorNode || !isNodeWithinEditor(anchorNode, editorElement)) {\n return []\n }\n\n const activeFormats = new Set<RichTextFormat>()\n\n if (typeof commandDocument.queryCommandState === \"function\") {\n for (const format of Object.keys(richTextCommandByFormat) as RichTextFormat[]) {\n try {\n if (commandDocument.queryCommandState(richTextCommandByFormat[format])) {\n activeFormats.add(format)\n }\n } catch {\n // Ignore queryCommandState failures and fall back to DOM inspection below.\n }\n }\n }\n\n if (activeFormats.size > 0) {\n return Array.from(activeFormats)\n }\n\n let currentNode: Node | null =\n anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentNode : anchorNode\n\n while (currentNode && currentNode !== editorElement) {\n if (!(currentNode instanceof HTMLElement)) {\n currentNode = currentNode.parentNode\n continue\n }\n\n const tagName = currentNode.tagName.toLowerCase()\n\n if (tagName === \"strong\" || tagName === \"b\") activeFormats.add(\"bold\")\n if (tagName === \"em\" || tagName === \"i\") activeFormats.add(\"italic\")\n if (tagName === \"u\") activeFormats.add(\"underline\")\n\n currentNode = currentNode.parentNode\n }\n\n return Array.from(activeFormats)\n}\n\nfunction ensureEditorSelection(editorElement: HTMLDivElement): void {\n if (typeof window === \"undefined\") {\n return\n }\n\n editorElement.focus()\n\n const selection = window.getSelection()\n const anchorNode = selection?.anchorNode ?? null\n\n if (anchorNode && isNodeWithinEditor(anchorNode, editorElement)) {\n return\n }\n\n const range = document.createRange()\n range.selectNodeContents(editorElement)\n range.collapse(false)\n selection?.removeAllRanges()\n selection?.addRange(range)\n}\n\nfunction getFormatTagNames(format: RichTextFormat): string[] {\n if (format === \"bold\") return [\"strong\", \"b\"]\n if (format === \"italic\") return [\"em\", \"i\"]\n return [\"u\"]\n}\n\nfunction findNearestFormatElement(\n node: Node | null,\n editorElement: HTMLDivElement,\n format: RichTextFormat,\n): HTMLElement | null {\n const tagNames = getFormatTagNames(format)\n let currentNode: Node | null = node?.nodeType === Node.TEXT_NODE ? node.parentNode : node\n\n while (currentNode && currentNode !== editorElement) {\n if (\n currentNode instanceof HTMLElement &&\n tagNames.includes(currentNode.tagName.toLowerCase())\n ) {\n return currentNode\n }\n\n currentNode = currentNode.parentNode\n }\n\n return null\n}\n\nfunction exitActiveFormatAtCaret(editorElement: HTMLDivElement, format: RichTextFormat): boolean {\n if (typeof window === \"undefined\") {\n return false\n }\n\n const selection = window.getSelection()\n\n if (!selection || selection.rangeCount === 0) {\n return false\n }\n\n const range = selection.getRangeAt(0)\n const anchorNode = selection.anchorNode\n\n if (!range.collapsed || !anchorNode || !isNodeWithinEditor(anchorNode, editorElement)) {\n return false\n }\n\n const formatElement = findNearestFormatElement(anchorNode, editorElement, format)\n\n if (!formatElement || !formatElement.parentNode) {\n return false\n }\n\n const trailingRange = document.createRange()\n trailingRange.setStart(range.startContainer, range.startOffset)\n trailingRange.setEndAfter(formatElement)\n\n const trailingFragment = trailingRange.extractContents()\n const caretTextNode = document.createTextNode(\"\\u200B\")\n const parentNode = formatElement.parentNode\n parentNode.insertBefore(caretTextNode, formatElement.nextSibling)\n parentNode.insertBefore(trailingFragment, caretTextNode.nextSibling)\n\n if (formatElement.textContent?.replaceAll(\"\\u200B\", \"\").trim().length === 0) {\n formatElement.remove()\n }\n\n const nextRange = document.createRange()\n nextRange.setStart(caretTextNode, 1)\n nextRange.collapse(true)\n selection.removeAllRanges()\n selection.addRange(nextRange)\n\n return true\n}\n\nexport const RichText = defineComponent(\n (props: RichTextProps, { emit, expose }) => {\n const attrs = useAttrs()\n const kit = computed(() => createRichTextRecipe(props))\n const allowedFormats = computed(() => resolveRichTextAllowedFormats(props.allowedFormats))\n const normalizedControlledValue = computed(() =>\n normalizeRichTextHtml(props.modelValue ?? props.value),\n )\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n const internalHtml = ref(normalizeRichTextHtml(props.defaultValue))\n const isEditorEmpty = ref(\n isRichTextHtmlEmpty(\n isControlled.value ? normalizedControlledValue.value : internalHtml.value,\n ),\n )\n const activeFormats = ref<RichTextFormat[]>([])\n const editorElement = ref<HTMLDivElement | null>(null)\n\n useRenderKitDebug(kit, \"RichText\")\n\n const editorHtml = computed(() =>\n isControlled.value ? normalizedControlledValue.value : internalHtml.value,\n )\n const showToolbar = computed(() => !props.readOnly)\n\n function syncEditorState(nextHtml: string): string {\n const normalizedHtml = normalizeRichTextHtml(nextHtml)\n isEditorEmpty.value = isRichTextHtmlEmpty(normalizedHtml)\n\n if (!isControlled.value) {\n internalHtml.value = normalizedHtml\n }\n\n props.onValueChange?.(normalizedHtml)\n emit(\"update:modelValue\", normalizedHtml)\n emit(\"value-change\", normalizedHtml)\n\n return normalizedHtml\n }\n\n function refreshActiveFormats(): void {\n activeFormats.value = getActiveFormatsFromSelection(editorElement.value)\n }\n\n function toggleFormat(format: RichTextFormat): void {\n if (props.disabled || props.readOnly || typeof document === \"undefined\") {\n return\n }\n\n const commandDocument = getRichTextCommandDocument()\n\n if (!editorElement.value) {\n return\n }\n\n ensureEditorSelection(editorElement.value)\n const activeFormatsBeforeToggle = getActiveFormatsFromSelection(editorElement.value)\n\n if (exitActiveFormatAtCaret(editorElement.value, format)) {\n if (\n typeof commandDocument.queryCommandState === \"function\" &&\n commandDocument.queryCommandState(richTextCommandByFormat[format]) &&\n typeof commandDocument.execCommand === \"function\"\n ) {\n commandDocument.execCommand(richTextCommandByFormat[format])\n }\n\n if (\n typeof commandDocument.queryCommandState === \"function\" &&\n typeof commandDocument.execCommand === \"function\"\n ) {\n for (const activeFormat of activeFormatsBeforeToggle) {\n if (activeFormat === format) {\n continue\n }\n\n if (!commandDocument.queryCommandState(richTextCommandByFormat[activeFormat])) {\n commandDocument.execCommand(richTextCommandByFormat[activeFormat])\n }\n }\n }\n\n syncEditorState(editorElement.value.innerHTML)\n refreshActiveFormats()\n return\n }\n\n if (typeof commandDocument.execCommand === \"function\") {\n commandDocument.execCommand(richTextCommandByFormat[format])\n }\n\n syncEditorState(editorElement.value?.innerHTML ?? \"\")\n refreshActiveFormats()\n }\n\n function handleSelectionChange(): void {\n refreshActiveFormats()\n }\n\n onMounted(() => {\n if (editorElement.value) {\n editorElement.value.innerHTML = editorHtml.value\n isEditorEmpty.value = isRichTextHtmlEmpty(editorHtml.value)\n }\n\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"selectionchange\", handleSelectionChange)\n }\n })\n\n onBeforeUnmount(() => {\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\"selectionchange\", handleSelectionChange)\n }\n })\n\n watch(\n editorHtml,\n (nextHtml) => {\n const currentElement = editorElement.value\n\n if (!currentElement) {\n return\n }\n\n const normalizedDomHtml = normalizeRichTextHtml(currentElement.innerHTML)\n\n if (normalizedDomHtml !== nextHtml) {\n currentElement.innerHTML = nextHtml\n }\n\n isEditorEmpty.value = isRichTextHtmlEmpty(nextHtml)\n },\n { immediate: true },\n )\n\n expose({\n focus: () => editorElement.value?.focus(),\n element: editorElement,\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"div\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n class: className,\n style,\n },\n [\n showToolbar.value\n ? h(\n \"div\",\n { class: \"mw-rich-text__toolbar\", \"data-rich-text-toolbar\": \"true\" },\n allowedFormats.value.map((format) => {\n const isActive = activeFormats.value.includes(format)\n const iconName =\n format === \"bold\" ? \"bold\" : format === \"italic\" ? \"italic\" : \"underline\"\n\n return h(\n \"button\",\n {\n key: format,\n type: \"button\",\n class: \"mw-rich-text__toolbar-button\",\n \"data-format\": format,\n \"data-active\": isActive ? \"true\" : undefined,\n \"aria-label\": formatLabels[format],\n \"aria-pressed\": isActive,\n disabled: props.disabled,\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n },\n onClick: () => {\n toggleFormat(format)\n },\n },\n [h(Icon, { name: iconName, size: \"xs\", decorative: true })],\n )\n }),\n )\n : null,\n\n h(\"div\", {\n ref: editorElement,\n class: \"mw-rich-text__editor\",\n \"data-rich-text-editor\": \"true\",\n \"data-empty\": isEditorEmpty.value ? \"true\" : undefined,\n \"data-placeholder\": props.placeholder,\n id: renderKit.a11y.id,\n role: renderKit.a11y.role,\n tabindex: renderKit.a11y.tabIndex,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-labelledby\": renderKit.a11y.ariaLabelledBy,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-disabled\": renderKit.a11y.ariaDisabled,\n \"aria-readonly\": renderKit.a11y.ariaReadOnly,\n \"aria-required\": renderKit.a11y.ariaRequired,\n \"aria-multiline\": renderKit.a11y.ariaMultiline,\n contenteditable: !props.disabled && !props.readOnly,\n onInput: () => {\n syncEditorState(editorElement.value?.innerHTML ?? \"\")\n refreshActiveFormats()\n },\n onKeydown: (event: KeyboardEvent) => {\n if (!(event.metaKey || event.ctrlKey) || event.altKey) {\n return\n }\n\n const formatByKey: Partial<Record<string, RichTextFormat>> = {\n b: \"bold\",\n i: \"italic\",\n u: \"underline\",\n }\n const requestedFormat = formatByKey[event.key.toLowerCase()]\n\n if (!requestedFormat || !allowedFormats.value.includes(requestedFormat)) {\n return\n }\n\n event.preventDefault()\n toggleFormat(requestedFormat)\n },\n onFocus: refreshActiveFormats,\n onBlur: () => {\n syncEditorState(editorElement.value?.innerHTML ?? \"\")\n activeFormats.value = []\n },\n }),\n\n props.name\n ? h(\"input\", {\n type: \"hidden\",\n name: props.name,\n value: editorHtml.value,\n disabled: props.disabled,\n })\n : null,\n ],\n )\n }\n },\n {\n name: \"MarwesRichText\",\n inheritAttrs: false,\n props: [...richTextPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","let generatedIdCounter = 0\n\nexport function createLocalId(prefix: string): string {\n generatedIdCounter += 1\n return `${prefix}-${generatedIdCounter}`\n}\n","import { paragraphRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, ParagraphOptions, ParagraphSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport {\n getDefaultSlotChildren,\n mergeClassNames,\n mergeStyles,\n omitAttrs,\n} from \"../../internal/render-utils\"\nimport { useTheme } from \"../../provider/use-theme\"\n\nexport type ParagraphProps = ParagraphOptions & {\n size?: ParagraphSize\n className?: string\n}\n\nconst paragraphPropKeys = [\"size\", \"id\", \"className\"] as const\n\nexport const Paragraph = defineComponent(\n (props: ParagraphProps, { slots }) => {\n const attrs = useAttrs()\n const theme = useTheme()\n const kit = computed(() => paragraphRecipe(props, theme))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"p\",\n {\n ...passthroughAttrs,\n id: renderKit.a11y.id,\n class: className,\n style,\n },\n getDefaultSlotChildren(slots),\n )\n }\n },\n {\n name: \"MarwesParagraph\",\n inheritAttrs: false,\n props: [...paragraphPropKeys],\n },\n)\n","import { buildInputFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { Paragraph } from \"../paragraph\"\nimport { Input, type InputProps } from \"./input\"\n\nexport type InputFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n input?: InputProps\n ariaDescribedBy?: string\n modelValue?: string\n /** Optional leading text symbol displayed inside the input on the left (e.g. \"$\", \"€\", \"kr\"). */\n leadingSymbol?: string\n}\n\nconst inputFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"input\",\n \"ariaDescribedBy\",\n \"modelValue\",\n \"leadingSymbol\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const InputField = defineComponent(\n (props: InputFieldProps, { slots, emit }) => {\n const localInputId = createLocalId(\"mw-input\")\n const id = computed(() => props.id ?? localInputId)\n const sourceInput = computed<InputProps>(() => props.input ?? {})\n\n const showPassword = ref(false)\n const searchValue = ref(\n String(\n sourceInput.value.modelValue ??\n sourceInput.value.value ??\n sourceInput.value.defaultValue ??\n \"\",\n ),\n )\n\n const isPasswordField = computed(() => sourceInput.value.type === \"password\")\n const isSearchField = computed(() => sourceInput.value.type === \"search\")\n\n const externalValue = computed(\n () => props.modelValue ?? sourceInput.value.modelValue ?? sourceInput.value.value,\n )\n const hasSearchValue = computed(() => {\n if (!isSearchField.value) {\n return false\n }\n\n if (externalValue.value !== undefined) {\n return String(externalValue.value).length > 0\n }\n\n return String(searchValue.value).length > 0\n })\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceInput.value.disabled || false)\n const readOnly = computed(() => sourceInput.value.readOnly || false)\n const invalid = computed(() => hasError.value || sourceInput.value.invalid || false)\n const showSearchClearButton = computed(\n () => hasSearchValue.value && !disabled.value && !readOnly.value,\n )\n const showSearchIcon = computed(() => isSearchField.value && !showSearchClearButton.value)\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n disabled.value && \"mw-input-field--disabled\",\n invalid.value && \"mw-input-field--invalid\",\n readOnly.value && \"mw-input-field--readonly\",\n ),\n )\n\n const mergedInputProps = computed<InputProps>(() => {\n const nextInputProps: InputProps = {\n ...sourceInput.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (externalValue.value !== undefined) {\n nextInputProps.modelValue = externalValue.value\n }\n\n if (isPasswordField.value && showPassword.value) {\n nextInputProps.type = \"text\"\n }\n\n if (isSearchField.value) {\n if (externalValue.value === undefined) {\n nextInputProps.modelValue = searchValue.value\n }\n }\n\n if (a11yIds.value.describedBy) {\n nextInputProps.describedBy = a11yIds.value.describedBy\n }\n\n const originalOnValueChange = sourceInput.value.onValueChange\n nextInputProps.onValueChange = (nextValue: string) => {\n if (isSearchField.value) {\n searchValue.value = nextValue\n }\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return nextInputProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"label\", { class: \"mw-input-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n props.leadingSymbol\n ? h(\"span\", { class: \"mw-input-field__leading-symbol\", \"aria-hidden\": \"true\" }, [\n props.leadingSymbol,\n ])\n : null,\n h(Input, mergedInputProps.value),\n\n isPasswordField.value && !disabled.value\n ? h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-input-field__toggle-password\",\n onClick: () => {\n showPassword.value = !showPassword.value\n },\n \"aria-label\": showPassword.value ? \"Hide password\" : \"Show password\",\n tabIndex: 0,\n },\n [\n h(Icon, {\n name: showPassword.value ? \"eyeOff\" : \"eye\",\n size: \"xs\",\n decorative: true,\n }),\n ],\n )\n : null,\n\n showSearchIcon.value\n ? h(\"span\", { class: \"mw-input-field__search-icon\", \"aria-hidden\": \"true\" }, [\n h(Icon, { name: \"search\", size: \"xs\", decorative: true }),\n ])\n : null,\n\n showSearchClearButton.value\n ? h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-input-field__clear-search\",\n onClick: () => {\n searchValue.value = \"\"\n sourceInput.value.onValueChange?.(\"\")\n emit(\"update:modelValue\", \"\")\n emit(\"value-change\", \"\")\n },\n \"aria-label\": \"Clear search\",\n tabIndex: 0,\n },\n [h(Icon, { name: \"x\", size: \"xs\", decorative: true })],\n )\n : null,\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesInputField\",\n props: [...inputFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import {\n type InputOtpOptions,\n buildInputFieldA11yIds,\n createInputOtpRecipe,\n sanitizeInputOtpValue,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\n\nexport type InputOtpProps = Omit<InputOtpOptions, \"describedBy\"> & {\n label: string\n helperText?: string\n error?: string\n ariaDescribedBy?: string\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst inputOtpPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"label\",\n \"helperText\",\n \"error\",\n \"length\",\n \"placeholderCharacter\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"invalid\",\n \"ariaDescribedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const InputOtp = defineComponent(\n (props: InputOtpProps, { emit }) => {\n const localInputId = createLocalId(\"mw-input-otp\")\n const id = computed(() => props.id ?? localInputId)\n const otpLength = computed(() => Math.max(1, props.length ?? 6))\n const uncontrolledValue = ref(sanitizeInputOtpValue(props.defaultValue, otpLength.value))\n const externalValue = computed(() => props.modelValue ?? props.value)\n const currentValue = computed(() => {\n const sourceValue = externalValue.value ?? uncontrolledValue.value\n return sanitizeInputOtpValue(sourceValue, otpLength.value)\n })\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n const invalid = computed(() => hasError.value || props.invalid === true)\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const kit = computed(() => {\n const recipeOptions: InputOtpOptions = {\n id: id.value,\n value: currentValue.value,\n length: otpLength.value,\n invalid: invalid.value,\n }\n\n if (props.name) {\n recipeOptions.name = props.name\n }\n\n if (props.placeholderCharacter) {\n recipeOptions.placeholderCharacter = props.placeholderCharacter\n }\n\n if (props.disabled) {\n recipeOptions.disabled = true\n }\n\n if (props.readOnly) {\n recipeOptions.readOnly = true\n }\n\n if (props.required) {\n recipeOptions.required = true\n }\n\n if (a11yIds.value.describedBy) {\n recipeOptions.describedBy = a11yIds.value.describedBy\n }\n\n if (props.ariaLabel) {\n recipeOptions.ariaLabel = props.ariaLabel\n }\n\n return createInputOtpRecipe(recipeOptions)\n })\n\n const wrapperClass = computed(() => mergeClassNames(kit.value.className, props.className))\n\n const handleInput = (event: Event) => {\n const inputElement = event.target as HTMLInputElement\n const nextValue = sanitizeInputOtpValue(inputElement.value, otpLength.value)\n\n if (externalValue.value === undefined) {\n uncontrolledValue.value = nextValue\n }\n\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n style: kit.value.vars,\n \"data-component\": \"input-otp\",\n \"data-invalid\": invalid.value ? \"true\" : undefined,\n \"data-disabled\": props.disabled ? \"true\" : undefined,\n },\n [\n h(\"label\", { class: \"mw-input-otp__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: () => [props.label] }),\n ]),\n\n h(\"div\", { class: \"mw-input-otp__cells\" }, [\n ...kit.value.displayCells.map((displayCell) =>\n h(\n \"span\",\n {\n key: displayCell.key,\n class: mergeClassNames(\n \"mw-input-otp__cell\",\n displayCell.filled && \"mw-input-otp__cell--filled\",\n ),\n \"aria-hidden\": \"true\",\n },\n displayCell.character,\n ),\n ),\n h(\"input\", {\n id: kit.value.a11y.id,\n class: \"mw-input-otp__input\",\n type: \"text\",\n name: kit.value.a11y.name,\n inputMode: kit.value.a11y.inputMode,\n autoComplete: kit.value.a11y.autoComplete,\n maxLength: kit.value.a11y.maxLength,\n pattern: kit.value.a11y.pattern,\n disabled: kit.value.a11y.disabled,\n readOnly: kit.value.a11y.readOnly,\n required: kit.value.a11y.required,\n \"aria-label\": kit.value.a11y.ariaLabel,\n \"aria-invalid\": kit.value.a11y.ariaInvalid,\n \"aria-describedby\": kit.value.a11y.ariaDescribedBy,\n value: kit.value.displayValue,\n onInput: handleInput,\n onChange: (event: Event) => emit(\"change\", event),\n }),\n ]),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-otp__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: () => [props.error ?? \"\"] })],\n )\n : hasHelperText.value\n ? h(\"div\", { class: \"mw-input-otp__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: () => [props.helperText ?? \"\"] }),\n ])\n : null,\n ],\n )\n },\n {\n name: \"MarwesInputOtp\",\n props: [...inputOtpPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import { IconName, buildInputFieldA11yIds, resolveSelectMode } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onBeforeUnmount, ref, watch } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { Paragraph } from \"../paragraph\"\nimport { Select, type SelectProps } from \"./select\"\nimport { SelectArrowIcon } from \"./select-arrow-icon\"\n\nexport type SelectFieldVariant = \"default\" | \"date\"\n\nexport type SelectFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n select: SelectProps\n ariaDescribedBy?: string\n modelValue?: string\n variant?: SelectFieldVariant\n}\n\nconst selectFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"select\",\n \"ariaDescribedBy\",\n \"modelValue\",\n \"variant\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nfunction getInitialSelectValue(props: SelectProps): string {\n if (props.modelValue !== undefined) {\n return props.modelValue\n }\n\n if (props.value !== undefined) {\n return props.value\n }\n\n if (props.defaultValue !== undefined) {\n return props.defaultValue\n }\n\n if (props.placeholder !== undefined) {\n return \"\"\n }\n\n return props.options[0]?.value ?? \"\"\n}\n\nfunction getFirstEnabledOptionIndex(options: SelectProps[\"options\"]): number {\n return options.findIndex((option) => !option.disabled)\n}\n\nfunction getLastEnabledOptionIndex(options: SelectProps[\"options\"]): number {\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) {\n return index\n }\n }\n\n return -1\n}\n\nfunction getSelectedOptionIndex(options: SelectProps[\"options\"], value: string): number {\n return options.findIndex((option) => option.value === value && !option.disabled)\n}\n\nfunction getInitialActiveOptionIndex(options: SelectProps[\"options\"], value: string): number {\n const selectedIndex = getSelectedOptionIndex(options, value)\n\n if (selectedIndex !== -1) {\n return selectedIndex\n }\n\n return getFirstEnabledOptionIndex(options)\n}\n\nfunction getNextEnabledOptionIndex(\n options: SelectProps[\"options\"],\n currentIndex: number,\n direction: 1 | -1,\n): number {\n if (options.length === 0) {\n return -1\n }\n\n let nextIndex = currentIndex\n\n for (let attempts = 0; attempts < options.length; attempts += 1) {\n nextIndex = (nextIndex + direction + options.length) % options.length\n\n if (!options[nextIndex]?.disabled) {\n return nextIndex\n }\n }\n\n return currentIndex\n}\n\nexport const SelectField = defineComponent(\n (props: SelectFieldProps, { slots, emit }) => {\n const localSelectId = createLocalId(\"mw-select\")\n const id = computed(() => props.id ?? localSelectId)\n const sourceSelect = computed<SelectProps>(() => props.select)\n const mode = computed(() => resolveSelectMode(sourceSelect.value))\n const externalValue = computed(\n () => props.modelValue ?? sourceSelect.value.modelValue ?? sourceSelect.value.value,\n )\n const isControlled = computed(\n () =>\n props.modelValue !== undefined ||\n sourceSelect.value.modelValue !== undefined ||\n sourceSelect.value.value !== undefined,\n )\n const internalValue = ref(getInitialSelectValue(sourceSelect.value))\n const open = ref(false)\n const activeIndex = ref(\n getInitialActiveOptionIndex(\n sourceSelect.value.options,\n externalValue.value ?? internalValue.value,\n ),\n )\n const controlRef = ref<HTMLElement | null>(null)\n const buttonRef = ref<HTMLElement | null>(null)\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceSelect.value.disabled || false)\n const invalid = computed(() => hasError.value || sourceSelect.value.invalid || false)\n const currentValue = computed(() => externalValue.value ?? internalValue.value)\n const selectedOption = computed(\n () =>\n sourceSelect.value.options.find((option) => option.value === currentValue.value) ??\n (sourceSelect.value.placeholder === undefined ? sourceSelect.value.options[0] : undefined),\n )\n const placeholderSelected = computed(\n () => sourceSelect.value.placeholder !== undefined && currentValue.value === \"\",\n )\n const displayText = computed(() =>\n placeholderSelected.value\n ? (sourceSelect.value.placeholder ?? \"\")\n : (selectedOption.value?.label ?? \"\"),\n )\n const accessibleName = computed(\n () =>\n sourceSelect.value.ariaLabel ??\n (hasTextContent(props.label) ? props.label : undefined) ??\n (hasTextContent(displayText.value) ? displayText.value : undefined),\n )\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n \"mw-input-field--select\",\n mode.value === \"marwes\" && \"mw-input-field--select-marwes\",\n props.variant === \"date\" && \"mw-input-field--select-date\",\n disabled.value && \"mw-input-field--disabled\",\n invalid.value && \"mw-input-field--invalid\",\n ),\n )\n\n const mergedSelectProps = computed<SelectProps>(() => {\n const nextSelectProps: SelectProps = {\n ...sourceSelect.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (externalValue.value !== undefined) {\n nextSelectProps.modelValue = externalValue.value\n }\n\n if (a11yIds.value.describedBy) {\n nextSelectProps.describedBy = a11yIds.value.describedBy\n }\n\n const originalOnValueChange = sourceSelect.value.onValueChange\n nextSelectProps.onValueChange = (nextValue: string) => {\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return nextSelectProps\n })\n\n watch(\n [open, currentValue, () => sourceSelect.value.options],\n ([isOpen]) => {\n if (!isOpen) {\n return\n }\n\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n },\n { deep: true },\n )\n\n watch(disabled, (isDisabled) => {\n if (isDisabled) {\n open.value = false\n }\n })\n\n const handlePointerDown = (event: PointerEvent) => {\n if (controlRef.value?.contains(event.target as Node)) {\n return\n }\n\n open.value = false\n }\n\n watch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener(\"pointerdown\", handlePointerDown)\n return\n }\n\n document.removeEventListener(\"pointerdown\", handlePointerDown)\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener(\"pointerdown\", handlePointerDown)\n })\n\n const commitValue = (nextValue: string) => {\n if (!isControlled.value) {\n internalValue.value = nextValue\n }\n\n sourceSelect.value.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n const selectOptionAtIndex = (index: number) => {\n const option = sourceSelect.value.options[index]\n\n if (!option || option.disabled) {\n return\n }\n\n commitValue(option.value)\n open.value = false\n buttonRef.value?.focus()\n }\n\n const handleTriggerKeydown = (event: KeyboardEvent) => {\n if (disabled.value) {\n return\n }\n\n switch (event.key) {\n case \"ArrowDown\": {\n event.preventDefault()\n\n if (!open.value) {\n open.value = true\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n return\n }\n\n activeIndex.value = getNextEnabledOptionIndex(\n sourceSelect.value.options,\n activeIndex.value,\n 1,\n )\n return\n }\n case \"ArrowUp\": {\n event.preventDefault()\n\n if (!open.value) {\n open.value = true\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n return\n }\n\n activeIndex.value = getNextEnabledOptionIndex(\n sourceSelect.value.options,\n activeIndex.value,\n -1,\n )\n return\n }\n case \"Home\": {\n if (!open.value) {\n return\n }\n\n event.preventDefault()\n activeIndex.value = getFirstEnabledOptionIndex(sourceSelect.value.options)\n return\n }\n case \"End\": {\n if (!open.value) {\n return\n }\n\n event.preventDefault()\n activeIndex.value = getLastEnabledOptionIndex(sourceSelect.value.options)\n return\n }\n case \"Enter\":\n case \" \": {\n event.preventDefault()\n\n if (!open.value) {\n open.value = true\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n return\n }\n\n if (activeIndex.value !== -1) {\n selectOptionAtIndex(activeIndex.value)\n }\n return\n }\n case \"Escape\": {\n if (!open.value) {\n return\n }\n\n event.preventDefault()\n open.value = false\n return\n }\n case \"Tab\": {\n open.value = false\n return\n }\n default:\n return\n }\n }\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"label\", { class: \"mw-input-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n mode.value === \"native\"\n ? h(Select, { ...mergedSelectProps.value, native: true })\n : h(\n \"div\",\n {\n ref: controlRef,\n class: mergeClassNames(\n \"mw-select-field__control\",\n open.value && \"mw-select-field__control--open\",\n ),\n },\n [\n h(\n \"button\",\n {\n ref: buttonRef,\n id: id.value,\n type: \"button\",\n class: mergeClassNames(\n \"mw-select-field__trigger\",\n placeholderSelected.value && \"mw-select-field__trigger--placeholder\",\n invalid.value && \"is-invalid\",\n open.value && \"mw-select-field__trigger--open\",\n ),\n role: \"combobox\",\n \"aria-controls\": `${id.value}-listbox`,\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": accessibleName.value,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": invalid.value ? \"true\" : undefined,\n \"aria-required\": sourceSelect.value.required ? \"true\" : undefined,\n \"aria-activedescendant\":\n open.value && activeIndex.value !== -1\n ? `${id.value}-option-${activeIndex.value}`\n : undefined,\n disabled: disabled.value,\n \"data-placeholder-selected\": placeholderSelected.value ? \"true\" : undefined,\n onClick: () => {\n if (disabled.value) {\n return\n }\n\n open.value = !open.value\n },\n onKeydown: handleTriggerKeydown,\n },\n [\n h(\"span\", { class: \"mw-select-field__trigger-text\" }, displayText.value),\n h(SelectArrowIcon, {\n className: \"mw-select-field__trigger-icon\",\n }),\n ],\n ),\n sourceSelect.value.name\n ? h(\"input\", {\n \"aria-hidden\": \"true\",\n class: \"mw-select-field__proxy-input\",\n name: sourceSelect.value.name,\n type: \"hidden\",\n value: currentValue.value,\n readonly: true,\n })\n : null,\n open.value\n ? h(\n \"div\",\n {\n class: \"mw-select-field__list\",\n id: `${id.value}-listbox`,\n role: \"listbox\",\n },\n sourceSelect.value.options.map((option, optionIndex) => {\n const selected = option.value === currentValue.value\n const active = optionIndex === activeIndex.value\n\n return h(\n \"div\",\n {\n id: `${id.value}-option-${optionIndex}`,\n key: option.value,\n class: mergeClassNames(\n \"mw-select-field__option\",\n active && \"mw-select-field__option--active\",\n selected && \"mw-select-field__option--selected\",\n option.disabled && \"mw-select-field__option--disabled\",\n ),\n role: \"option\",\n \"aria-selected\": selected ? \"true\" : \"false\",\n \"aria-disabled\": option.disabled ? \"true\" : undefined,\n onClick: () => selectOptionAtIndex(optionIndex),\n onMousedown: (event: MouseEvent) => event.preventDefault(),\n onMouseenter: () => {\n if (!option.disabled) {\n activeIndex.value = optionIndex\n }\n },\n },\n [\n h(\"span\", { class: \"mw-select-field__option-label\" }, option.label),\n selected\n ? h(Icon, {\n className: \"mw-select-field__option-check\",\n name: IconName.Check,\n size: \"xs\",\n decorative: true,\n })\n : null,\n ],\n )\n }),\n )\n : null,\n ],\n ),\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesSelectField\",\n props: [...selectFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { buildInputFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Textarea, type TextareaProps } from \"./textarea\"\n\nexport type TextareaFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n textarea: TextareaProps\n ariaDescribedBy?: string\n modelValue?: string\n}\n\nconst textareaFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"textarea\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const TextareaField = defineComponent(\n (props: TextareaFieldProps, { slots, emit }) => {\n const localTextareaId = createLocalId(\"mw-textarea\")\n const id = computed(() => props.id ?? localTextareaId)\n const sourceTextarea = computed<TextareaProps>(() => props.textarea)\n\n const externalValue = computed(\n () => props.modelValue ?? sourceTextarea.value.modelValue ?? sourceTextarea.value.value,\n )\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceTextarea.value.disabled || false)\n const readOnly = computed(() => sourceTextarea.value.readOnly || false)\n const invalid = computed(() => hasError.value || sourceTextarea.value.invalid || false)\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n \"mw-input-field--textarea\",\n disabled.value && \"mw-input-field--disabled\",\n invalid.value && \"mw-input-field--invalid\",\n readOnly.value && \"mw-input-field--readonly\",\n ),\n )\n\n const mergedTextareaProps = computed<TextareaProps>(() => {\n const nextTextareaProps: TextareaProps = {\n ...sourceTextarea.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (externalValue.value !== undefined) {\n nextTextareaProps.modelValue = externalValue.value\n }\n\n if (a11yIds.value.describedBy) {\n nextTextareaProps.describedBy = a11yIds.value.describedBy\n }\n\n const originalOnValueChange = sourceTextarea.value.onValueChange\n nextTextareaProps.onValueChange = (nextValue: string) => {\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return nextTextareaProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"label\", { class: \"mw-input-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n h(Textarea, mergedTextareaProps.value),\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesTextareaField\",\n props: [...textareaFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { buildRichTextFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { RichText, type RichTextProps } from \"./rich-text\"\n\nexport type RichTextFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n editor: RichTextProps\n ariaDescribedBy?: string\n modelValue?: string\n}\n\nconst richTextFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"editor\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const RichTextField = defineComponent(\n (props: RichTextFieldProps, { emit, slots }) => {\n const localEditorId = createLocalId(\"mw-rich-text\")\n const id = computed(() => props.id ?? localEditorId)\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildRichTextFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const editorProps = computed<RichTextProps>(() => {\n const invalid = hasError.value || props.editor.invalid || false\n const nextEditorProps: RichTextProps = {\n ...props.editor,\n id: id.value,\n invalid,\n labelledBy: a11yIds.value.labelId,\n }\n\n if (props.modelValue !== undefined) {\n nextEditorProps.modelValue = props.modelValue\n }\n\n if (a11yIds.value.describedBy) {\n nextEditorProps.describedBy = a11yIds.value.describedBy\n }\n\n return nextEditorProps\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n \"mw-input-field--rich-text\",\n props.editor.disabled && \"mw-input-field--disabled\",\n (hasError.value || props.editor.invalid) && \"mw-input-field--invalid\",\n props.editor.readOnly && \"mw-input-field--readonly\",\n ),\n )\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-input-field__label\",\n id: a11yIds.value.labelId,\n onClick: () => {\n const editorElement = document.getElementById(id.value) as HTMLDivElement | null\n editorElement?.focus()\n },\n },\n [h(Paragraph, { size: \"md\" }, { default: labelContent })],\n ),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n h(RichText, {\n ...editorProps.value,\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n }),\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesRichTextField\",\n props: [...richTextFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { buildCurrencyHelperText, getCurrencySymbol, sanitizeCurrencyValue } from \"@marwes-ui/core\"\nimport type { CurrencyCode } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport type { InputProps } from \"./input\"\nimport { InputField, type InputFieldProps } from \"./input-field\"\nimport type { SelectProps } from \"./select\"\nimport { SelectField, type SelectFieldProps } from \"./select-field\"\n\n// Shared field prop keys (from InputFieldProps)\nconst fieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"input\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nconst dropdownFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"select\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nexport type DropdownFieldProps = Omit<SelectFieldProps, \"select\"> & {\n select: Omit<SelectProps, \"appearance\"> & {\n native?: boolean\n }\n}\n\nexport const DropdownField = defineComponent({\n name: \"MarwesDropdownField\",\n inheritAttrs: false,\n props: [...dropdownFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as DropdownFieldProps\n return h(\"div\", { \"data-purpose\": \"dropdown\" }, [\n h(\n SelectField,\n {\n ...props,\n select: {\n ...(props.select ?? {}),\n native: props.select?.native ?? false,\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type SearchFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\">\n}\n\nexport const SearchField = defineComponent({\n name: \"MarwesSearchField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as SearchFieldProps\n return h(\"div\", { \"data-purpose\": \"search\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"search\",\n inputMode: \"search\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type PasswordFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\">\n autoComplete?: \"current-password\" | \"new-password\"\n}\n\nconst passwordFieldPropKeys = [...fieldPropKeys, \"autoComplete\"] as const\n\nexport const PasswordField = defineComponent({\n name: \"MarwesPasswordField\",\n inheritAttrs: false,\n props: [...passwordFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as PasswordFieldProps\n const autoComplete = props.autoComplete ?? \"current-password\"\n return h(\"div\", { \"data-purpose\": \"password\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"password\",\n autoComplete,\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type EmailFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const EmailField = defineComponent({\n name: \"MarwesEmailField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as EmailFieldProps\n return h(\"div\", { \"data-purpose\": \"email\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"email\",\n inputMode: \"email\",\n autoComplete: \"email\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type DateOfBirthFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const DateOfBirthField = defineComponent({\n name: \"MarwesDateOfBirthField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as DateOfBirthFieldProps\n return h(\"div\", { \"data-purpose\": \"date-of-birth\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"date\",\n autoComplete: \"bday\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type ZipCodeFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const ZipCodeField = defineComponent({\n name: \"MarwesZipCodeField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as ZipCodeFieldProps\n return h(\"div\", { \"data-purpose\": \"zip-code\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"text\",\n inputMode: \"numeric\",\n autoComplete: \"postal-code\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type PhoneFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const PhoneField = defineComponent({\n name: \"MarwesPhoneField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as PhoneFieldProps\n return h(\"div\", { \"data-purpose\": \"phone\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"tel\",\n inputMode: \"tel\",\n autoComplete: \"tel\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type URLFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const URLField = defineComponent({\n name: \"MarwesURLField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as URLFieldProps\n return h(\"div\", { \"data-purpose\": \"url\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"url\",\n inputMode: \"url\",\n autoComplete: \"url\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type CurrencyFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\">\n currency?: CurrencyCode | string\n}\n\nconst currencyFieldPropKeys = [...fieldPropKeys, \"currency\"] as const\n\nexport const CurrencyField = defineComponent({\n name: \"MarwesCurrencyField\",\n inheritAttrs: false,\n props: [...currencyFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(componentProps, { attrs, slots, emit }) {\n return () => {\n const fieldProps = componentProps as unknown as CurrencyFieldProps\n const currency = fieldProps.currency\n const inputProps = fieldProps.input\n const helperText = buildCurrencyHelperText(fieldProps.helperText, currency)\n const leadingSymbol = getCurrencySymbol(currency)\n const originalOnValueChange = inputProps?.onValueChange\n\n return h(\"div\", { \"data-purpose\": \"currency\", \"data-currency\": currency }, [\n h(\n InputField,\n {\n ...attrs,\n ...fieldProps,\n ...(helperText ? { helperText } : {}),\n ...(leadingSymbol ? { leadingSymbol } : {}),\n input: {\n ...inputProps,\n type: \"text\",\n inputMode: \"decimal\",\n onValueChange: (rawValue: string) => {\n const sanitizedValue = sanitizeCurrencyValue(rawValue)\n originalOnValueChange?.(sanitizedValue)\n },\n },\n \"onValue-change\": (value: string) => {\n emit(\"value-change\", sanitizeCurrencyValue(value))\n },\n \"onUpdate:modelValue\": (value: string) => {\n emit(\"update:modelValue\", sanitizeCurrencyValue(value))\n },\n },\n slots,\n ),\n ])\n }\n },\n})\n","import {\n type AvatarOptions,\n type AvatarRenderContent,\n type CssVars,\n createAvatarRecipe,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\n\nexport type AvatarProps = AvatarOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst avatarPropKeys = [\n \"size\",\n \"type\",\n \"initials\",\n \"src\",\n \"alt\",\n \"iconName\",\n \"decorative\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nfunction renderAvatarContent(\n content: AvatarRenderContent,\n isOuterShellAccessible: boolean,\n isDecorative: boolean,\n) {\n if (content.type === \"image\") {\n return h(\"img\", {\n class: \"mw-avatar__image\",\n src: content.src,\n alt: isDecorative ? \"\" : (content.alt ?? \"\"),\n })\n }\n\n if (content.type === \"initials\") {\n return h(\n \"span\",\n {\n class: \"mw-avatar__initials\",\n \"aria-hidden\": isOuterShellAccessible ? \"true\" : undefined,\n },\n content.initials,\n )\n }\n\n return h(Icon, {\n name: content.iconName ?? \"user\",\n className: \"mw-avatar__icon\",\n decorative: true,\n })\n}\n\nexport const Avatar = defineComponent(\n (props: AvatarProps) => {\n const attrs = useAttrs()\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const kit = computed(() => {\n const avatarOptions: AvatarOptions = {}\n if (props.size !== undefined) avatarOptions.size = props.size\n if (props.type !== undefined) avatarOptions.type = props.type\n if (props.initials !== undefined) avatarOptions.initials = props.initials\n if (props.src !== undefined) avatarOptions.src = props.src\n if (props.alt !== undefined) avatarOptions.alt = props.alt\n if (props.iconName !== undefined) avatarOptions.iconName = props.iconName\n if (props.decorative !== undefined) avatarOptions.decorative = props.decorative\n\n const resolvedAriaLabel = props.ariaLabel ?? ariaLabelFromAttrs\n if (resolvedAriaLabel !== undefined) {\n avatarOptions.ariaLabel = resolvedAriaLabel\n }\n\n return createAvatarRecipe(avatarOptions)\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\n \"class\",\n \"style\",\n \"aria-label\",\n ])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n const isOuterShellAccessible = renderKit.a11y.role === \"img\"\n const isDecorative = renderKit.a11y.ariaHidden === true\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n class: className,\n style,\n role: renderKit.a11y.role,\n \"aria-hidden\": isDecorative ? \"true\" : undefined,\n \"aria-label\": renderKit.a11y.ariaLabel,\n },\n renderAvatarContent(renderKit.content, isOuterShellAccessible, isDecorative),\n )\n }\n },\n {\n name: \"MarwesAvatar\",\n inheritAttrs: false,\n props: [...avatarPropKeys],\n },\n)\n","import { type AvatarOptions, createAvatarRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Avatar, type AvatarProps } from \"./avatar\"\n\nexport type AvatarBadgeProps = AvatarProps & {\n statusLabel?: string\n}\n\nconst avatarBadgePropKeys = [\n \"size\",\n \"type\",\n \"initials\",\n \"src\",\n \"alt\",\n \"iconName\",\n \"decorative\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n \"statusLabel\",\n] as const\n\nfunction buildAvatarOptions(props: AvatarBadgeProps, nativeAriaLabel?: string): AvatarOptions {\n const avatarOptions: AvatarOptions = {}\n if (props.size !== undefined) avatarOptions.size = props.size\n if (props.type !== undefined) avatarOptions.type = props.type\n if (props.initials !== undefined) avatarOptions.initials = props.initials\n if (props.src !== undefined) avatarOptions.src = props.src\n if (props.alt !== undefined) avatarOptions.alt = props.alt\n if (props.iconName !== undefined) avatarOptions.iconName = props.iconName\n if (props.decorative !== undefined) avatarOptions.decorative = props.decorative\n\n const resolvedAriaLabel = props.ariaLabel ?? nativeAriaLabel\n if (resolvedAriaLabel !== undefined) {\n avatarOptions.ariaLabel = resolvedAriaLabel\n }\n\n return avatarOptions\n}\n\nfunction resolveAvatarBadgeLabel(\n avatarOptions: AvatarOptions,\n statusLabel: string,\n): string | undefined {\n const avatarKit = createAvatarRecipe(avatarOptions)\n\n if (avatarKit.a11y.ariaHidden) {\n return undefined\n }\n\n if (avatarKit.content.type === \"image\") {\n return avatarKit.content.alt ? `${avatarKit.content.alt}, ${statusLabel}` : statusLabel\n }\n\n return avatarKit.a11y.ariaLabel ? `${avatarKit.a11y.ariaLabel}, ${statusLabel}` : statusLabel\n}\n\nexport const AvatarBadge = defineComponent(\n (props: AvatarBadgeProps) => {\n const attrs = useAttrs()\n const nativeAriaLabel =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const avatarOptions = computed(() => buildAvatarOptions(props, nativeAriaLabel))\n const avatarKit = computed(() => createAvatarRecipe(avatarOptions.value))\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-avatar-badge\",\n `mw-avatar-badge--${avatarKit.value.dataAttributes[\"data-size\"]}`,\n props.className,\n attrs.class,\n ),\n )\n\n return () => {\n const resolvedStatusLabel = props.statusLabel ?? \"Online\"\n const accessibleLabel = resolveAvatarBadgeLabel(avatarOptions.value, resolvedStatusLabel)\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"aria-label\"])\n\n const innerAvatarProps: AvatarProps = {\n decorative: true,\n }\n if (props.size !== undefined) innerAvatarProps.size = props.size\n if (props.type !== undefined) innerAvatarProps.type = props.type\n if (props.initials !== undefined) innerAvatarProps.initials = props.initials\n if (props.src !== undefined) innerAvatarProps.src = props.src\n if (props.alt !== undefined) innerAvatarProps.alt = props.alt\n if (props.iconName !== undefined) innerAvatarProps.iconName = props.iconName\n const resolvedInnerAriaLabel = props.ariaLabel ?? nativeAriaLabel\n if (resolvedInnerAriaLabel !== undefined) {\n innerAvatarProps.ariaLabel = resolvedInnerAriaLabel\n }\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...(props.dataAttributes ?? {}),\n class: wrapperClass.value,\n style: attrs.style,\n \"data-component\": \"avatar-badge\",\n \"data-size\": avatarKit.value.dataAttributes[\"data-size\"],\n \"data-status\": \"online\",\n role: props.decorative ? undefined : \"img\",\n \"aria-hidden\": props.decorative ? \"true\" : undefined,\n \"aria-label\": props.decorative ? undefined : accessibleLabel,\n },\n [\n h(Avatar, innerAvatarProps),\n h(\"span\", {\n class: \"mw-avatar-badge__indicator\",\n \"aria-hidden\": \"true\",\n }),\n ],\n )\n }\n },\n {\n name: \"MarwesAvatarBadge\",\n inheritAttrs: false,\n props: [...avatarBadgePropKeys],\n },\n)\n","import { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Avatar, type AvatarProps } from \"./avatar\"\n\nexport interface AvatarGroupItem extends Omit<AvatarProps, \"size\" | \"className\" | \"style\"> {\n id?: string\n}\n\nexport type AvatarGroupProps = {\n items: AvatarGroupItem[]\n overflowCount?: number\n overflowLabel?: string\n ariaLabel?: string\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst avatarGroupPropKeys = [\n \"items\",\n \"overflowCount\",\n \"overflowLabel\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport const AvatarGroup = defineComponent(\n (props: AvatarGroupProps) => {\n const attrs = useAttrs()\n const nativeAriaLabel =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n const groupLabel = computed(() => props.ariaLabel ?? nativeAriaLabel ?? \"Avatar group\")\n const wrapperClass = computed(() =>\n mergeClassNames(\"mw-avatar-group\", props.className, attrs.class),\n )\n const shouldRenderOverflowCounter = computed(\n () => props.overflowCount !== undefined && props.overflowCount > 0,\n )\n const resolvedOverflowLabel = computed(\n () => props.overflowLabel ?? `${props.overflowCount} more people`,\n )\n\n return () => {\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"aria-label\"])\n\n return h(\n \"fieldset\",\n {\n ...passthroughAttrs,\n ...(props.dataAttributes ?? {}),\n class: wrapperClass.value,\n \"data-component\": \"avatar-group\",\n \"aria-label\": groupLabel.value,\n },\n [\n ...props.items.map((item, itemIndex) =>\n h(\n \"span\",\n {\n class: \"mw-avatar-group__item\",\n key: item.id ?? `${itemIndex}-${item.initials ?? item.alt ?? \"avatar\"}`,\n },\n [\n h(Avatar, {\n ...item,\n size: \"medium\",\n }),\n ],\n ),\n ),\n shouldRenderOverflowCounter.value\n ? h(\n \"span\",\n {\n class: \"mw-avatar-group__counter\",\n role: \"img\",\n \"aria-label\": resolvedOverflowLabel.value,\n },\n `+${props.overflowCount}`,\n )\n : null,\n ],\n )\n }\n },\n {\n name: \"MarwesAvatarGroup\",\n inheritAttrs: false,\n props: [...avatarGroupPropKeys],\n },\n)\n","import { createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { Avatar, type AvatarProps } from \"./avatar\"\nimport { AvatarBadge, type AvatarBadgeProps } from \"./avatar-badge\"\nimport { AvatarGroup, type AvatarGroupProps } from \"./avatar-group\"\n\nconst avatarPropKeys = [\n \"size\",\n \"type\",\n \"initials\",\n \"src\",\n \"alt\",\n \"iconName\",\n \"decorative\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nconst avatarBadgePropKeys = [...avatarPropKeys, \"statusLabel\"] as const\n\nconst avatarGroupPropKeys = [\n \"items\",\n \"overflowCount\",\n \"overflowLabel\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport type ProfileAvatarProps = AvatarProps\n\nexport const ProfileAvatar = defineComponent({\n name: \"MarwesProfileAvatar\",\n inheritAttrs: false,\n props: [...avatarPropKeys],\n setup(rawProps, { attrs }) {\n const props = rawProps as unknown as ProfileAvatarProps\n\n return () =>\n h(Avatar, {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"profile\"),\n },\n })\n },\n})\n\nexport type PresenceAvatarProps = AvatarBadgeProps\n\nexport const PresenceAvatar = defineComponent({\n name: \"MarwesPresenceAvatar\",\n inheritAttrs: false,\n props: [...avatarBadgePropKeys],\n setup(rawProps, { attrs }) {\n const props = rawProps as unknown as PresenceAvatarProps\n\n return () =>\n h(AvatarBadge, {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"presence\"),\n },\n })\n },\n})\n\nexport type TeamAvatarGroupProps = AvatarGroupProps\n\nexport const TeamAvatarGroup = defineComponent({\n name: \"MarwesTeamAvatarGroup\",\n inheritAttrs: false,\n props: [...avatarGroupPropKeys],\n setup(rawProps, { attrs }) {\n const props = rawProps as unknown as TeamAvatarGroupProps\n\n return () =>\n h(AvatarGroup, {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"team\"),\n },\n })\n },\n})\n","import { checkboxRecipe } from \"@marwes-ui/core\"\nimport type { CheckboxProps as CoreCheckboxProps, CssVars } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onMounted, ref, useAttrs, watch } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type CheckboxProps = CoreCheckboxProps & {\n modelValue?: boolean\n onCheckedChange?: (checked: boolean) => void\n onChange?: (event: Event) => void\n className?: string\n}\n\nconst checkboxPropKeys = [\n \"size\",\n \"checked\",\n \"modelValue\",\n \"defaultChecked\",\n \"indeterminate\",\n \"disabled\",\n \"required\",\n \"invalid\",\n \"id\",\n \"name\",\n \"value\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"onCheckedChange\",\n \"onChange\",\n \"className\",\n] as const\n\nexport const Checkbox = defineComponent(\n (props: CheckboxProps, { emit }) => {\n const attrs = useAttrs()\n const inputRef = ref<HTMLInputElement | null>(null)\n\n const recipeInput = computed<CoreCheckboxProps>(() => {\n const nextRecipeInput: CoreCheckboxProps = { ...props }\n const checked = props.modelValue ?? props.checked\n\n if (checked !== undefined) {\n nextRecipeInput.checked = checked\n } else {\n // biome-ignore lint/performance/noDelete: Required for exactOptionalPropertyTypes compatibility\n delete nextRecipeInput.checked\n }\n\n return nextRecipeInput\n })\n\n const kit = computed(() => checkboxRecipe({ ...recipeInput.value }))\n\n const syncIndeterminate = () => {\n if (!inputRef.value) {\n return\n }\n inputRef.value.indeterminate = kit.value.indeterminate\n }\n\n onMounted(syncIndeterminate)\n watch(() => kit.value.indeterminate, syncIndeterminate, { immediate: true })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\"input\", {\n ...passthroughAttrs,\n ref: inputRef,\n type: \"checkbox\",\n class: className,\n style,\n id: a11y.id,\n name: a11y.name,\n value: a11y.value,\n disabled: a11y.disabled === true,\n required: a11y.required === true,\n \"aria-label\": a11y.ariaLabel,\n \"aria-labelledby\": a11y.ariaLabelledBy,\n \"aria-describedby\": a11y.ariaDescribedBy,\n \"aria-checked\": a11y.ariaChecked,\n \"aria-invalid\": a11y.ariaInvalid === true ? true : undefined,\n checked: renderKit.checked ?? renderKit.defaultChecked,\n onChange: (event: Event) => {\n props.onChange?.(event)\n const target = event.target as HTMLInputElement\n props.onCheckedChange?.(target.checked)\n emit(\"update:modelValue\", target.checked)\n emit(\"checked-change\", target.checked)\n emit(\"change\", event)\n },\n })\n }\n },\n {\n name: \"MarwesCheckbox\",\n inheritAttrs: false,\n props: [...checkboxPropKeys],\n emits: [\"update:modelValue\", \"checked-change\", \"change\"],\n },\n)\n","import { buildCheckboxFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Checkbox, type CheckboxProps } from \"./checkbox\"\n\nexport type CheckboxFieldProps = {\n id?: string\n label: string\n description?: string\n error?: string\n checkbox?: CheckboxProps\n ariaDescribedBy?: string\n modelValue?: boolean\n}\n\nconst checkboxFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"checkbox\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const CheckboxField = defineComponent(\n (props: CheckboxFieldProps, { slots, emit }) => {\n const localCheckboxId = createLocalId(\"mw-checkbox\")\n const id = computed(() => props.id ?? localCheckboxId)\n const sourceCheckbox = computed<CheckboxProps>(() => props.checkbox ?? {})\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n const ids = computed(() =>\n buildCheckboxFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceCheckbox.value.disabled || false)\n const invalid = computed(() => hasError.value || sourceCheckbox.value.invalid || false)\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-checkbox-field\",\n disabled.value && \"mw-checkbox-field--disabled\",\n invalid.value && \"mw-checkbox-field--invalid\",\n ),\n )\n\n const mergedCheckboxProps = computed<CheckboxProps>(() => {\n const nextCheckboxProps: CheckboxProps = {\n ...sourceCheckbox.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (props.modelValue !== undefined) {\n nextCheckboxProps.modelValue = props.modelValue\n }\n\n if (ids.value.describedBy) {\n nextCheckboxProps.ariaDescribedBy = ids.value.describedBy\n }\n\n const originalOnCheckedChange = sourceCheckbox.value.onCheckedChange\n nextCheckboxProps.onCheckedChange = (nextChecked: boolean) => {\n originalOnCheckedChange?.(nextChecked)\n emit(\"update:modelValue\", nextChecked)\n emit(\"checked-change\", nextChecked)\n }\n\n return nextCheckboxProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"div\", { class: \"mw-checkbox-field__row\" }, [\n h(Checkbox, mergedCheckboxProps.value),\n h(\"label\", { class: \"mw-checkbox-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n ]),\n\n hasDescription.value\n ? h(\"div\", { class: \"mw-checkbox-field__description\", id: ids.value.descriptionId }, [\n h(Paragraph, { size: \"sm\" }, { default: descriptionContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-checkbox-field__error\",\n id: ids.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesCheckboxField\",\n props: [...checkboxFieldPropKeys],\n emits: [\"update:modelValue\", \"checked-change\"],\n },\n)\n","import { buildCheckboxGroupFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Checkbox, type CheckboxProps } from \"./checkbox\"\n\nexport interface CheckboxGroupFieldOption {\n value: string\n label: string\n disabled?: boolean\n indeterminate?: boolean\n}\n\nexport type CheckboxGroupFieldCheckboxProps = Omit<\n CheckboxProps,\n | \"ariaDescribedBy\"\n | \"ariaLabel\"\n | \"ariaLabelledBy\"\n | \"checked\"\n | \"className\"\n | \"defaultChecked\"\n | \"disabled\"\n | \"id\"\n | \"indeterminate\"\n | \"invalid\"\n | \"modelValue\"\n | \"name\"\n | \"onChange\"\n | \"onCheckedChange\"\n | \"required\"\n | \"value\"\n>\n\nexport interface CheckboxGroupFieldProps {\n label: string\n options: CheckboxGroupFieldOption[]\n description?: string\n error?: string\n value?: string[]\n defaultValue?: string[]\n checkbox?: CheckboxGroupFieldCheckboxProps\n disabled?: boolean\n required?: boolean\n name?: string\n id?: string\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: string[]\n}\n\nconst checkboxGroupFieldPropKeys = [\n \"label\",\n \"options\",\n \"description\",\n \"error\",\n \"value\",\n \"defaultValue\",\n \"checkbox\",\n \"disabled\",\n \"required\",\n \"name\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nfunction orderSelectedValues(values: string[], options: CheckboxGroupFieldOption[]): string[] {\n const optionValues = new Set(options.map((option) => option.value))\n const selectedValues = new Set(values)\n const knownValues = options\n .map((option) => option.value)\n .filter((value) => selectedValues.has(value))\n const unknownValues = values.filter((value) => !optionValues.has(value))\n return [...knownValues, ...unknownValues]\n}\n\nexport const CheckboxGroupField = defineComponent(\n (props: CheckboxGroupFieldProps, { slots, emit }) => {\n const localId = createLocalId(\"mw-checkbox-group\")\n const id = computed(() => props.id ?? localId)\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildCheckboxGroupFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n const internalValue = ref<string[]>(\n orderSelectedValues(props.defaultValue ?? [], props.options),\n )\n const selectedValues = computed(() => {\n if (props.modelValue !== undefined) {\n return orderSelectedValues(props.modelValue, props.options)\n }\n\n if (props.value !== undefined) {\n return orderSelectedValues(props.value, props.options)\n }\n\n return orderSelectedValues(internalValue.value, props.options)\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-checkbox-group-field\",\n props.disabled && \"mw-checkbox-group-field--disabled\",\n hasError.value && \"mw-checkbox-group-field--invalid\",\n ),\n )\n\n function handleToggle(nextValue: string): void {\n const selectedValueSet = new Set(selectedValues.value)\n const rawNextValue = selectedValueSet.has(nextValue)\n ? selectedValues.value.filter((value) => value !== nextValue)\n : [...selectedValues.value, nextValue]\n const orderedNextValue = orderSelectedValues(rawNextValue, props.options)\n\n if (!isControlled.value) {\n internalValue.value = orderedNextValue\n }\n\n emit(\"update:modelValue\", orderedNextValue)\n emit(\"change\", orderedNextValue)\n }\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\n \"fieldset\",\n {\n class: wrapperClass.value,\n \"aria-labelledby\": a11yIds.value.labelId,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": hasError.value ? true : undefined,\n \"aria-required\": props.required ? true : undefined,\n disabled: props.disabled ? true : undefined,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"legend\", { class: \"mw-checkbox-group-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n hasDescription.value\n ? h(\n \"div\",\n { class: \"mw-checkbox-group-field__description\", id: a11yIds.value.descriptionId },\n [h(Paragraph, { size: \"sm\" }, { default: descriptionContent })],\n )\n : null,\n\n h(\n \"div\",\n { class: \"mw-checkbox-group-field__options\" },\n props.options.map((option, index) => {\n const optionId = `${id.value}-option-${index}`\n const isOptionDisabled = props.disabled || option.disabled || false\n const isChecked = selectedValues.value.includes(option.value)\n const checkboxProps: Record<string, unknown> = {\n ...(props.checkbox ?? {}),\n id: optionId,\n value: option.value,\n checked: isChecked,\n disabled: isOptionDisabled,\n invalid: hasError.value,\n \"onUpdate:modelValue\": (nextChecked: boolean) => {\n if (nextChecked !== isChecked) {\n handleToggle(option.value)\n }\n },\n }\n\n if (props.name !== undefined) {\n checkboxProps.name = props.name\n }\n\n if (option.indeterminate !== undefined) {\n checkboxProps.indeterminate = option.indeterminate\n }\n\n return h(\n \"label\",\n {\n class: \"mw-checkbox-group-field__option\",\n for: optionId,\n key: option.value,\n },\n [\n h(Checkbox, checkboxProps),\n h(Paragraph, { size: \"md\" }, { default: () => [option.label] }),\n ],\n )\n }),\n ),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-checkbox-group-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesCheckboxGroupField\",\n props: [...checkboxGroupFieldPropKeys],\n emits: [\"update:modelValue\", \"change\"],\n },\n)\n","import { createDividerRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, DividerOptions, DividerOrientation, DividerSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type DividerProps = DividerOptions & {\n size?: DividerSize\n orientation?: DividerOrientation\n className?: string\n}\n\nconst dividerPropKeys = [\"size\", \"orientation\", \"id\", \"className\"] as const\n\nexport const Divider = defineComponent(\n (props: DividerProps) => {\n const attrs = useAttrs()\n const kit = computed(() => createDividerRecipe(props))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\"hr\", {\n ...passthroughAttrs,\n ...renderKit.a11y,\n ...renderKit.dataAttributes,\n class: className,\n style,\n })\n }\n },\n {\n name: \"MarwesDivider\",\n inheritAttrs: false,\n props: [...dividerPropKeys],\n },\n)\n","import { type CssVars, type SkeletonOptions, createSkeletonRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SkeletonProps = SkeletonOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst skeletonPropKeys = [\n \"variant\",\n \"width\",\n \"height\",\n \"radius\",\n \"animation\",\n \"decorative\",\n \"ariaLabel\",\n \"id\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport const Skeleton = defineComponent(\n (props: SkeletonProps) => {\n const attrs = useAttrs()\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const renderKit = computed(() =>\n createSkeletonRecipe({\n ...(props.variant !== undefined ? { variant: props.variant } : {}),\n ...(props.width !== undefined ? { width: props.width } : {}),\n ...(props.height !== undefined ? { height: props.height } : {}),\n ...(props.radius !== undefined ? { radius: props.radius } : {}),\n ...(props.animation !== undefined ? { animation: props.animation } : {}),\n ...(props.decorative !== undefined ? { decorative: props.decorative } : {}),\n ...(props.id !== undefined ? { id: props.id } : {}),\n ...(props.ariaLabel !== undefined\n ? { ariaLabel: props.ariaLabel }\n : ariaLabelFromAttrs !== undefined\n ? { ariaLabel: ariaLabelFromAttrs }\n : {}),\n }),\n )\n\n return () => {\n const skeletonRenderKit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\n \"class\",\n \"style\",\n \"aria-label\",\n ])\n\n return h(\"span\", {\n ...passthroughAttrs,\n ...skeletonRenderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n class: mergeClassNames(skeletonRenderKit.className, props.className, attrs.class),\n style: mergeStyles(skeletonRenderKit.vars as CssVars, attrs.style),\n role: skeletonRenderKit.a11y.role,\n id: skeletonRenderKit.a11y.id,\n \"aria-hidden\": skeletonRenderKit.a11y.ariaHidden ? \"true\" : undefined,\n \"aria-label\": skeletonRenderKit.a11y.ariaLabel,\n \"aria-live\": skeletonRenderKit.a11y.ariaLive,\n })\n }\n },\n {\n name: \"MarwesSkeleton\",\n inheritAttrs: false,\n props: [...skeletonPropKeys],\n },\n)\n","import { createSpacingRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, SpacingOptions, SpacingSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SpacingProps = SpacingOptions & {\n size?: SpacingSize\n spacing?: SpacingSize\n className?: string\n}\n\nexport type SpacerProps = SpacingProps\n\nconst spacingPropKeys = [\"size\", \"spacing\", \"scale\", \"className\"] as const\n\nexport const Spacing = defineComponent(\n (props: SpacingProps) => {\n const attrs = useAttrs()\n const kit = computed(() => {\n const resolvedSize = props.spacing ?? props.size\n\n return createSpacingRecipe({\n ...(resolvedSize !== undefined ? { size: resolvedSize } : {}),\n ...(props.scale !== undefined ? { scale: props.scale } : {}),\n })\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\"div\", {\n ...passthroughAttrs,\n ...renderKit.a11y,\n ...renderKit.dataAttributes,\n class: className,\n style,\n })\n }\n },\n {\n name: \"MarwesSpacing\",\n inheritAttrs: false,\n props: [...spacingPropKeys],\n },\n)\n\nexport const Spacer = Spacing\n","import { headingRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, HeadingOptions, HeadingSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport {\n getDefaultSlotChildren,\n mergeClassNames,\n mergeStyles,\n omitAttrs,\n} from \"../../internal/render-utils\"\nimport { useTheme } from \"../../provider/use-theme\"\n\ntype HeadingBaseProps = Omit<HeadingOptions, \"level\"> & {\n size?: HeadingSize\n className?: string\n}\n\nexport type HeadingLevel = 1 | 2 | 3\ntype HeadingTag = `h${HeadingLevel}`\n\nconst headingPropKeys = [\"size\", \"id\", \"ariaLabel\", \"className\"] as const\n\nexport function createHeadingComponent<L extends HeadingLevel>(level: L) {\n const tagName = `h${level}` as HeadingTag\n return defineComponent(\n (props: HeadingBaseProps, { slots }) => {\n const attrs = useAttrs()\n const theme = useTheme()\n const kit = computed(() => headingRecipe({ ...props, level }, theme))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n tagName,\n {\n ...passthroughAttrs,\n id: renderKit.a11y.id,\n \"aria-label\": renderKit.a11y.ariaLabel,\n class: className,\n style,\n },\n getDefaultSlotChildren(slots),\n )\n }\n },\n {\n name: `Marwes${tagName.toUpperCase()}`,\n inheritAttrs: false,\n props: [...headingPropKeys],\n },\n )\n}\n\nexport type { HeadingBaseProps }\nexport type HeadingProps = HeadingBaseProps\n","import { createHeadingComponent } from \"./create-heading\"\n\nexport const H1 = createHeadingComponent(1)\nexport const H2 = createHeadingComponent(2)\nexport const H3 = createHeadingComponent(3)\n","import {\n type StatTileOptions,\n type StatTileTone,\n type StatTileTrendDirection,\n createStatTileRecipe,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface StatTileProps extends Pick<StatTileOptions, \"dataAttributes\"> {\n className?: string\n label: string\n value: string\n subtitle?: string\n trendValue?: string\n trendDirection?: StatTileTrendDirection\n tone?: StatTileTone\n}\n\nconst statTilePropKeys = [\n \"className\",\n \"label\",\n \"value\",\n \"subtitle\",\n \"trendValue\",\n \"trendDirection\",\n \"tone\",\n \"dataAttributes\",\n] as const\n\nexport const StatTile = defineComponent(\n (props: StatTileProps) => {\n const attrs = useAttrs()\n const renderKit = computed(() =>\n createStatTileRecipe({\n ...(props.tone !== undefined ? { tone: props.tone } : {}),\n ...(props.trendDirection !== undefined ? { trendDirection: props.trendDirection } : {}),\n ...(props.trendValue !== undefined ? { trendValue: props.trendValue } : {}),\n ...(props.dataAttributes !== undefined ? { dataAttributes: props.dataAttributes } : {}),\n }),\n )\n\n return () => {\n const kit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n\n return h(\n \"article\",\n {\n ...passthroughAttrs,\n ...kit.dataAttributes,\n class: mergeClassNames(kit.className, props.className, attrs.class),\n },\n [\n h(\n \"div\",\n { class: kit.slots.headerClassName },\n [\n h(\"span\", { class: kit.slots.labelClassName }, props.label),\n props.trendValue\n ? h(\n \"span\",\n {\n ...kit.trendDataAttributes,\n class: kit.slots.trendClassName,\n \"aria-label\": kit.a11y.trendAriaLabel,\n },\n [\n kit.trendIcon\n ? h(\n \"span\",\n { class: kit.slots.trendIconClassName, \"aria-hidden\": \"true\" },\n kit.trendIcon,\n )\n : null,\n h(\"span\", { class: kit.slots.trendValueClassName }, props.trendValue),\n ].filter(Boolean),\n )\n : null,\n ].filter(Boolean),\n ),\n h(\"div\", { class: kit.slots.valueClassName }, props.value),\n props.subtitle ? h(\"div\", { class: kit.slots.subtitleClassName }, props.subtitle) : null,\n ].filter(Boolean),\n )\n }\n },\n {\n name: \"MarwesStatTile\",\n inheritAttrs: false,\n props: [...statTilePropKeys],\n },\n)\n","import {\n type DatePickerDay,\n type DatePickerDevice,\n type DatePickerOptions,\n createDatePickerRecipe,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface DatePickerProps\n extends Pick<\n DatePickerOptions,\n | \"monthLabel\"\n | \"weekdayLabels\"\n | \"weeks\"\n | \"previousYearLabel\"\n | \"previousMonthLabel\"\n | \"nextMonthLabel\"\n | \"nextYearLabel\"\n | \"cancelLabel\"\n | \"applyLabel\"\n | \"calendarLabel\"\n | \"dataAttributes\"\n > {\n className?: string\n device?: DatePickerDevice\n}\n\nconst datePickerPropKeys = [\n \"className\",\n \"monthLabel\",\n \"weekdayLabels\",\n \"weeks\",\n \"device\",\n \"previousYearLabel\",\n \"previousMonthLabel\",\n \"nextMonthLabel\",\n \"nextYearLabel\",\n \"cancelLabel\",\n \"applyLabel\",\n \"calendarLabel\",\n \"dataAttributes\",\n] as const\n\nexport const DatePicker = defineComponent(\n (props: DatePickerProps, { emit }) => {\n const attrs = useAttrs()\n const renderKit = computed(() =>\n createDatePickerRecipe({\n ...(props.monthLabel !== undefined ? { monthLabel: props.monthLabel } : {}),\n ...(props.weekdayLabels !== undefined ? { weekdayLabels: props.weekdayLabels } : {}),\n ...(props.weeks !== undefined ? { weeks: props.weeks } : {}),\n ...(props.device !== undefined ? { device: props.device } : {}),\n ...(props.previousYearLabel !== undefined\n ? { previousYearLabel: props.previousYearLabel }\n : {}),\n ...(props.previousMonthLabel !== undefined\n ? { previousMonthLabel: props.previousMonthLabel }\n : {}),\n ...(props.nextMonthLabel !== undefined ? { nextMonthLabel: props.nextMonthLabel } : {}),\n ...(props.nextYearLabel !== undefined ? { nextYearLabel: props.nextYearLabel } : {}),\n ...(props.cancelLabel !== undefined ? { cancelLabel: props.cancelLabel } : {}),\n ...(props.applyLabel !== undefined ? { applyLabel: props.applyLabel } : {}),\n ...(props.calendarLabel !== undefined ? { calendarLabel: props.calendarLabel } : {}),\n ...(props.dataAttributes !== undefined ? { dataAttributes: props.dataAttributes } : {}),\n }),\n )\n\n return () => {\n const kit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n\n return h(\n \"section\",\n {\n ...passthroughAttrs,\n ...kit.dataAttributes,\n class: mergeClassNames(kit.className, props.className, attrs.class),\n \"aria-label\": kit.labels.calendar,\n },\n [\n h(\"header\", { class: kit.slots.headerClassName }, [\n h(\"div\", { class: kit.slots.navGroupClassName }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.previousYear,\n onClick: () => emit(\"previousYear\"),\n },\n \"«\",\n ),\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.previousMonth,\n onClick: () => emit(\"previousMonth\"),\n },\n \"‹\",\n ),\n ]),\n h(\"div\", { class: kit.slots.monthLabelClassName }, kit.monthLabel),\n h(\"div\", { class: kit.slots.navGroupClassName }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.nextMonth,\n onClick: () => emit(\"nextMonth\"),\n },\n \"›\",\n ),\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.nextYear,\n onClick: () => emit(\"nextYear\"),\n },\n \"»\",\n ),\n ]),\n ]),\n h(\"table\", { class: kit.slots.gridClassName, \"aria-label\": kit.monthLabel }, [\n h(\"thead\", [\n h(\n \"tr\",\n { class: \"mw-date-picker__weekdays\" },\n kit.weekdayLabels.map((weekday) =>\n h(\n \"th\",\n { key: weekday, class: kit.slots.weekdayClassName, scope: \"col\" },\n weekday,\n ),\n ),\n ),\n ]),\n h(\n \"tbody\",\n kit.weeks.map((week, weekIndex) =>\n h(\n \"tr\",\n {\n key: week.map((day) => day.date ?? day.label).join(\"-\"),\n class: kit.slots.weekClassName,\n },\n week.map((day: DatePickerDay, dayIndex: number) => {\n const dayKit = kit.dayKits[weekIndex]?.[dayIndex]\n if (!dayKit) return null\n return h(\n \"td\",\n {\n key: day.date ?? `${weekIndex}-${dayIndex}`,\n class: kit.slots.cellClassName,\n },\n [\n h(\n \"button\",\n {\n type: \"button\",\n ...dayKit.dataAttributes,\n class: dayKit.className,\n \"aria-label\": dayKit.ariaLabel,\n \"aria-pressed\": dayKit.selected ? \"true\" : undefined,\n disabled: dayKit.disabled,\n onClick: () => emit(\"daySelect\", day),\n },\n day.label,\n ),\n ],\n )\n }),\n ),\n ),\n ),\n ]),\n h(\"footer\", { class: kit.slots.footerClassName }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.footerButtonClassName,\n onClick: () => emit(\"cancel\"),\n },\n kit.labels.cancel,\n ),\n kit.labels.apply\n ? h(\n \"button\",\n {\n type: \"button\",\n class: mergeClassNames(\n kit.slots.footerButtonClassName,\n \"mw-date-picker__footer-button--primary\",\n ),\n onClick: () => emit(\"apply\"),\n },\n kit.labels.apply,\n )\n : null,\n ]),\n ],\n )\n }\n },\n {\n name: \"MarwesDatePicker\",\n inheritAttrs: false,\n props: [...datePickerPropKeys],\n emits: [\n \"previousYear\",\n \"previousMonth\",\n \"nextMonth\",\n \"nextYear\",\n \"daySelect\",\n \"cancel\",\n \"apply\",\n ],\n },\n)\n","import { createCardRecipe } from \"@marwes-ui/core\"\nimport { defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface CardProps {\n className?: string\n id?: string\n /** Data attributes for AI-friendly metadata (used by purpose variants). */\n dataAttributes?: Record<string, string>\n}\n\nconst cardPropKeys = [\"className\", \"id\", \"dataAttributes\"] as const\n\nexport const Card = defineComponent(\n (props: CardProps, { slots }) => {\n const attrs = useAttrs()\n\n return () => {\n const kit = createCardRecipe(\n props.dataAttributes ? { dataAttributes: props.dataAttributes } : {},\n )\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(kit.className, props.className, attrs.class)\n\n return h(\n \"div\",\n { ...passthroughAttrs, ...kit.dataAttributes, id: props.id, class: className },\n [\n slots.title\n ? h(\"div\", { class: \"mw-card__header\" }, [\n h(\"span\", { class: \"mw-card__title\" }, slots.title()),\n ])\n : null,\n h(\"div\", { class: \"mw-card__body\" }, slots.default?.()),\n ].filter(Boolean),\n )\n }\n },\n {\n name: \"MarwesCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { Card, type CardProps } from \"./card\"\n\nconst cardPropKeys = [\"className\", \"id\", \"dataAttributes\"] as const\n\nexport type ProductCardProps = CardProps\n\nexport const ProductCard = defineComponent({\n name: \"MarwesProductCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ProductCardProps\n\n return () =>\n h(\n Card,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"product-card\",\n },\n },\n slots,\n )\n },\n})\n\nexport type ProfileCardProps = CardProps\n\nexport const ProfileCard = defineComponent({\n name: \"MarwesProfileCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ProfileCardProps\n\n return () =>\n h(\n Card,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"profile-card\",\n },\n },\n slots,\n )\n },\n})\n\nexport type StatCardProps = CardProps\n\nexport const StatCard = defineComponent({\n name: \"MarwesStatCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as StatCardProps\n\n return () =>\n h(\n Card,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"stat-card\",\n },\n },\n slots,\n )\n },\n})\n","import { createToastRecipe } from \"@marwes-ui/core\"\nimport type { ToastOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface ToastProps extends ToastOptions {\n onDismiss?: () => void\n className?: string\n id?: string\n dataAttributes?: Record<string, string>\n}\n\nconst toastPropKeys = [\n \"variant\",\n \"ariaLive\",\n \"onDismiss\",\n \"className\",\n \"id\",\n \"dataAttributes\",\n] as const\n\nexport const Toast = defineComponent(\n (props: ToastProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: ToastOptions = {}\n if (props.variant !== undefined) opts.variant = props.variant\n if (props.ariaLive !== undefined) opts.ariaLive = props.ariaLive\n return createToastRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n\n const children = [\n slots.icon\n ? h(\"span\", { class: \"mw-toast__icon\", \"aria-hidden\": \"true\" }, slots.icon())\n : null,\n h(\"div\", { class: \"mw-toast__body\" }, [\n h(\"span\", { class: \"mw-toast__text\" }, slots.default?.()),\n slots.action ? h(\"span\", { class: \"mw-toast__action\" }, slots.action()) : null,\n ]),\n props.onDismiss\n ? h(\"button\", {\n type: \"button\",\n class: \"mw-toast__dismiss\",\n \"aria-label\": \"Dismiss\",\n onClick: () => props.onDismiss?.(),\n })\n : null,\n ].filter(Boolean)\n\n return h(\n \"div\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n id: props.id,\n class: className,\n role: a11y.role,\n \"aria-live\": a11y.ariaLive,\n \"aria-atomic\": \"true\",\n },\n children,\n )\n }\n },\n {\n name: \"MarwesToast\",\n inheritAttrs: false,\n props: [...toastPropKeys],\n emits: [\"dismiss\"],\n },\n)\n","import { IconName, createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { Icon } from \"../icon\"\nimport { Toast, type ToastProps } from \"./toast\"\n\nconst toastPropKeys = [\n \"variant\",\n \"ariaLive\",\n \"onDismiss\",\n \"className\",\n \"id\",\n \"dataAttributes\",\n] as const\n\nfunction createPurposeToast(args: {\n name: string\n dataPurpose: \"success-toast\" | \"error-toast\" | \"warning-toast\" | \"info-toast\"\n iconName: IconName\n defaultVariant: ToastProps[\"variant\"]\n defaultAriaLive: NonNullable<ToastProps[\"ariaLive\"]>\n}) {\n return defineComponent({\n name: args.name,\n inheritAttrs: false,\n props: [...toastPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ToastProps\n\n return () => {\n const toastProps: Record<string, unknown> = {\n ...attrs,\n variant: props.variant ?? args.defaultVariant,\n ariaLive: props.ariaLive ?? args.defaultAriaLive,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(args.dataPurpose),\n },\n }\n\n if (props.onDismiss !== undefined) {\n toastProps.onDismiss = props.onDismiss\n }\n\n if (props.className !== undefined) {\n toastProps.className = props.className\n }\n\n if (props.id !== undefined) {\n toastProps.id = props.id\n }\n\n return h(Toast as never, toastProps, {\n ...slots,\n icon: slots.icon ?? (() => [h(Icon, { name: args.iconName, decorative: true })]),\n })\n }\n },\n })\n}\n\nexport type SuccessToastProps = ToastProps\nexport const SuccessToast = createPurposeToast({\n name: \"MarwesSuccessToast\",\n dataPurpose: \"success-toast\",\n iconName: IconName.Check,\n defaultVariant: \"outline\",\n defaultAriaLive: \"polite\",\n})\n\nexport type ErrorToastProps = ToastProps\nexport const ErrorToast = createPurposeToast({\n name: \"MarwesErrorToast\",\n dataPurpose: \"error-toast\",\n iconName: IconName.XCircle,\n defaultVariant: \"outline\",\n defaultAriaLive: \"assertive\",\n})\n\nexport type WarningToastProps = ToastProps\nexport const WarningToast = createPurposeToast({\n name: \"MarwesWarningToast\",\n dataPurpose: \"warning-toast\",\n iconName: IconName.AlertTriangle,\n defaultVariant: \"outline\",\n defaultAriaLive: \"polite\",\n})\n\nexport type InfoToastProps = ToastProps\nexport const InfoToast = createPurposeToast({\n name: \"MarwesInfoToast\",\n dataPurpose: \"info-toast\",\n iconName: IconName.Info,\n defaultVariant: \"outline\",\n defaultAriaLive: \"polite\",\n})\n","import { computed, defineComponent, h, onBeforeUnmount, onMounted, watch } from \"vue\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Toast } from \"./toast\"\nimport type { ManagedToast, ToastContainerProps } from \"./toast-manager-types\"\nimport { ErrorToast, InfoToast, SuccessToast, WarningToast } from \"./variants\"\n\nfunction normalizeChildren(value: ManagedToast[\"children\"]): unknown[] {\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return Array.isArray(value) ? value : [value]\n}\n\nfunction renderToastByIntent(toast: ManagedToast, onDismiss?: (id: string) => void) {\n const component =\n toast.intent === \"success\"\n ? SuccessToast\n : toast.intent === \"error\"\n ? ErrorToast\n : toast.intent === \"warning\"\n ? WarningToast\n : toast.intent === \"info\"\n ? InfoToast\n : Toast\n\n const toastProps: Record<string, unknown> = {\n id: toast.id,\n }\n\n if (toast.className !== undefined) {\n toastProps.className = toast.className\n }\n\n if (toast.variant !== undefined) {\n toastProps.variant = toast.variant\n }\n\n if (toast.ariaLive !== undefined) {\n toastProps.ariaLive = toast.ariaLive\n }\n\n if (onDismiss) {\n toastProps.onDismiss = () => onDismiss(toast.id)\n }\n\n if (toast.dataAttributes !== undefined || toast.intent !== undefined) {\n toastProps.dataAttributes = {\n ...(toast.dataAttributes ?? {}),\n ...(toast.intent !== undefined ? { \"data-intent\": toast.intent } : {}),\n }\n }\n\n return h(component as never, toastProps, {\n default: () => normalizeChildren(toast.children),\n ...(toast.icon !== undefined ? { icon: () => normalizeChildren(toast.icon) } : {}),\n ...(toast.action !== undefined ? { action: () => normalizeChildren(toast.action) } : {}),\n })\n}\n\nconst ToastViewportItem = defineComponent({\n name: \"MarwesToastViewportItem\",\n props: [\"toast\", \"onDismiss\"],\n setup(rawProps) {\n const props = rawProps as {\n toast: ManagedToast\n onDismiss?: (id: string) => void\n }\n\n let timeoutHandle: ReturnType<typeof setTimeout> | undefined\n let timerStartedAt: number | null = null\n let remainingDuration: number | null = null\n let pointerInside = false\n let focusInside = false\n\n function clearTimer() {\n if (timeoutHandle !== undefined) {\n clearTimeout(timeoutHandle)\n timeoutHandle = undefined\n }\n\n timerStartedAt = null\n }\n\n function scheduleTimer(delay: number) {\n if (\n !props.onDismiss ||\n delay <= 0 ||\n pointerInside ||\n focusInside ||\n timeoutHandle !== undefined\n ) {\n return\n }\n\n timerStartedAt = Date.now()\n timeoutHandle = setTimeout(() => {\n timeoutHandle = undefined\n timerStartedAt = null\n remainingDuration = 0\n props.onDismiss?.(props.toast.id)\n }, delay)\n }\n\n function pauseTimer() {\n if (timeoutHandle === undefined || timerStartedAt === null) {\n return\n }\n\n const elapsed = Date.now() - timerStartedAt\n const nextRemainingDuration = remainingDuration ?? 0\n\n remainingDuration = Math.max(nextRemainingDuration - elapsed, 0)\n clearTimer()\n }\n\n function resumeTimer() {\n if (pointerInside || focusInside || remainingDuration === null || remainingDuration <= 0) {\n return\n }\n\n scheduleTimer(remainingDuration)\n }\n\n function syncTimer() {\n clearTimer()\n pointerInside = false\n focusInside = false\n\n if (!props.onDismiss || props.toast.duration === undefined || props.toast.duration === null) {\n remainingDuration = null\n return\n }\n\n if (props.toast.duration <= 0) {\n remainingDuration = 0\n return\n }\n\n remainingDuration = props.toast.duration\n scheduleTimer(props.toast.duration)\n }\n\n onMounted(syncTimer)\n watch(() => [props.toast.id, props.toast.duration, props.onDismiss], syncTimer)\n onBeforeUnmount(clearTimer)\n\n return () =>\n h(\n \"div\",\n {\n class: \"mw-toast-container__item\",\n onMouseenter: () => {\n pointerInside = true\n pauseTimer()\n },\n onMouseleave: () => {\n pointerInside = false\n resumeTimer()\n },\n onFocusin: () => {\n focusInside = true\n pauseTimer()\n },\n onFocusout: (event: FocusEvent) => {\n const nextTarget = event.relatedTarget as Node | null\n\n if (\n event.currentTarget instanceof HTMLElement &&\n event.currentTarget.contains(nextTarget)\n ) {\n return\n }\n\n focusInside = false\n resumeTimer()\n },\n },\n [renderToastByIntent(props.toast, props.onDismiss)],\n )\n },\n})\n\nexport const ToastContainer = defineComponent({\n name: \"MarwesToastContainer\",\n props: [\"toasts\", \"placement\", \"maxVisible\", \"className\", \"onDismiss\"],\n setup(rawProps) {\n const props = rawProps as ToastContainerProps\n\n const visibleToasts = computed(() => {\n if (!props.maxVisible || props.maxVisible <= 0) {\n return props.toasts\n }\n\n return props.toasts.slice(-props.maxVisible)\n })\n\n return () =>\n h(\n \"div\",\n {\n class: mergeClassNames(\n \"mw-toast-container\",\n `mw-toast-container--${props.placement ?? \"top-right\"}`,\n props.className,\n ),\n },\n visibleToasts.value.map((toast) =>\n h(ToastViewportItem, {\n key: toast.id,\n toast,\n ...(props.onDismiss ? { onDismiss: props.onDismiss } : {}),\n }),\n ),\n )\n },\n})\n","import type { ToastIntent, ToastPlacement, ToastVariant } from \"@marwes-ui/core\"\nimport type { InjectionKey, VNodeChild } from \"vue\"\n\nexport interface ManagedToast {\n id: string\n children?: VNodeChild\n icon?: VNodeChild\n action?: VNodeChild\n onDismiss?: () => void\n className?: string\n variant?: ToastVariant\n ariaLive?: \"polite\" | \"assertive\"\n intent?: ToastIntent\n duration?: number | null\n dataAttributes?: Record<string, string>\n}\n\nexport type ShowToastOptions = Omit<ManagedToast, \"id\">\n\nexport interface ToastContainerProps {\n toasts: ManagedToast[]\n placement?: ToastPlacement\n maxVisible?: number\n className?: string\n onDismiss?: (id: string) => void\n}\n\nexport interface ToastProviderProps {\n placement?: ToastPlacement\n maxVisible?: number\n defaultDuration?: number | null\n}\n\nexport interface ToastController {\n show: (toast: ShowToastOptions) => string\n dismiss: (id: string) => void\n clear: () => void\n}\n\nexport const toastContextKey: InjectionKey<ToastController> = Symbol(\"MarwesToastContext\")\n","import { Fragment, defineComponent, h, inject, provide, shallowRef } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { ToastContainer } from \"./toast-container\"\nimport type {\n ManagedToast,\n ShowToastOptions,\n ToastController,\n ToastProviderProps,\n} from \"./toast-manager-types\"\nimport { toastContextKey } from \"./toast-manager-types\"\n\nexport const ToastProvider = defineComponent({\n name: \"MarwesToastProvider\",\n props: [\"placement\", \"maxVisible\", \"defaultDuration\"],\n setup(rawProps, { slots }) {\n const props = rawProps as unknown as ToastProviderProps\n const toasts = shallowRef<ManagedToast[]>([])\n\n function dismiss(id: string) {\n const toast = toasts.value.find((item) => item.id === id)\n toast?.onDismiss?.()\n toasts.value = toasts.value.filter((item) => item.id !== id)\n }\n\n function clear() {\n for (const toast of toasts.value) {\n toast.onDismiss?.()\n }\n\n toasts.value = []\n }\n\n function show(toast: ShowToastOptions): string {\n const id = createLocalId(\"mw-toast\")\n toasts.value = [\n ...toasts.value,\n {\n ...toast,\n id,\n duration:\n toast.duration === undefined\n ? props.defaultDuration === undefined\n ? 4000\n : props.defaultDuration\n : toast.duration,\n },\n ]\n return id\n }\n\n const controller: ToastController = {\n show,\n dismiss,\n clear,\n }\n\n provide(toastContextKey, controller)\n\n return () =>\n h(Fragment, null, [\n ...(slots.default?.() ?? []),\n h(ToastContainer as never, {\n toasts: toasts.value,\n onDismiss: dismiss,\n ...(props.placement ? { placement: props.placement } : {}),\n ...(props.maxVisible !== undefined ? { maxVisible: props.maxVisible } : {}),\n }),\n ])\n },\n})\n\nexport function useToast(): ToastController {\n const controller = inject(toastContextKey, null)\n\n if (!controller) {\n throw new Error(\"ToastProvider is missing. Wrap your app in <ToastProvider />.\")\n }\n\n return controller\n}\n","import { type CssVars, type TooltipOptions, createTooltipRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type TooltipProps = TooltipOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst tooltipPropKeys = [\"id\", \"className\", \"dataAttributes\"] as const\n\nexport const Tooltip = defineComponent(\n (props: TooltipProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const tooltipOptions: TooltipOptions = {}\n\n if (props.id !== undefined) {\n tooltipOptions.id = props.id\n }\n\n return createTooltipRecipe(tooltipOptions)\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n id: renderKit.a11y.id,\n class: className,\n style,\n role: renderKit.a11y.role,\n },\n slots.default?.(),\n )\n }\n },\n {\n name: \"MarwesTooltip\",\n inheritAttrs: false,\n props: [...tooltipPropKeys],\n },\n)\n","import { IconName, type IconNameType } from \"@marwes-ui/core\"\nimport type { VNodeChild } from \"vue\"\nimport { computed, defineComponent, h, ref, useAttrs, watch } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { Tooltip } from \"./tooltip\"\n\nconst TOOLTIP_EXIT_DURATION_MS = 160\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nexport type TooltipGroupProps = {\n id?: string\n content?: VNodeChild\n icon?: IconNameType\n triggerLabel?: string\n open?: boolean\n defaultOpen?: boolean\n tooltipId?: string\n className?: string\n tooltipClassName?: string\n triggerClassName?: string\n dataAttributes?: Record<string, string>\n onOpenChange?: (open: boolean) => void\n}\n\nconst tooltipGroupPropKeys = [\n \"id\",\n \"content\",\n \"icon\",\n \"triggerLabel\",\n \"open\",\n \"defaultOpen\",\n \"tooltipId\",\n \"className\",\n \"tooltipClassName\",\n \"triggerClassName\",\n \"dataAttributes\",\n \"onOpenChange\",\n] as const\n\nexport const TooltipGroup = defineComponent(\n (props: TooltipGroupProps, { attrs, slots, emit }) => {\n const localId = createLocalId(\"mw-tooltip-group\")\n const internalOpen = ref(props.defaultOpen ?? false)\n const isControlled = computed(() => props.open !== undefined)\n const resolvedOpen = computed(\n () => (isControlled.value ? props.open : internalOpen.value) ?? false,\n )\n const isTooltipMounted = ref(resolvedOpen.value)\n const resolvedId = computed(() => props.id ?? localId)\n const resolvedTooltipId = computed(() => props.tooltipId ?? `${resolvedId.value}-tooltip`)\n const content = computed<VNodeChild | undefined>(() => slots.default?.() ?? props.content)\n\n const updateOpen = (nextOpen: boolean): void => {\n if (resolvedOpen.value === nextOpen) {\n return\n }\n\n if (!isControlled.value) {\n internalOpen.value = nextOpen\n }\n\n props.onOpenChange?.(nextOpen)\n emit(\"update:open\", nextOpen)\n emit(\"open-change\", nextOpen)\n }\n\n watch(resolvedOpen, (nextOpen, _previousOpen, onCleanup) => {\n if (nextOpen) {\n isTooltipMounted.value = true\n return\n }\n\n const timeoutId = window.setTimeout(() => {\n isTooltipMounted.value = false\n }, TOOLTIP_EXIT_DURATION_MS)\n\n onCleanup(() => {\n window.clearTimeout(timeoutId)\n })\n })\n\n return () => {\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(\"mw-tooltip-group\", props.className, attrs.class)\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...(props.dataAttributes ?? {}),\n id: props.id,\n class: className,\n style: attrs.style,\n \"data-component\": \"tooltip-group\",\n \"data-open\": resolvedOpen.value ? \"true\" : undefined,\n onMouseenter: () => updateOpen(true),\n onMouseleave: () => updateOpen(false),\n onFocusin: () => updateOpen(true),\n onFocusout: (event: FocusEvent) => {\n const nextFocusedElement = event.relatedTarget\n const currentTarget = event.currentTarget\n\n if (\n nextFocusedElement instanceof Node &&\n currentTarget instanceof HTMLElement &&\n currentTarget.contains(nextFocusedElement)\n ) {\n return\n }\n\n updateOpen(false)\n },\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n updateOpen(false)\n }\n },\n },\n [\n isTooltipMounted.value\n ? h(\n Tooltip,\n {\n id: resolvedTooltipId.value,\n ...(props.tooltipClassName ? { className: props.tooltipClassName } : {}),\n \"data-state\": resolvedOpen.value ? \"open\" : \"closed\",\n \"aria-hidden\": resolvedOpen.value ? undefined : \"true\",\n },\n {\n default: () => toChildren(content.value),\n },\n )\n : null,\n h(\n \"button\",\n {\n type: \"button\",\n class: mergeClassNames(\"mw-tooltip-group__trigger\", props.triggerClassName),\n \"aria-label\": props.triggerLabel ?? \"Show tooltip\",\n \"aria-describedby\": resolvedOpen.value ? resolvedTooltipId.value : undefined,\n },\n [h(Icon, { name: props.icon ?? IconName.HelpCircle, decorative: true })],\n ),\n ],\n )\n }\n },\n {\n name: \"MarwesTooltipGroup\",\n inheritAttrs: false,\n props: [...tooltipGroupPropKeys],\n emits: [\"update:open\", \"open-change\"],\n },\n)\n","import { createAccordionRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface AccordionProps {\n id?: string\n open?: boolean\n disabled?: boolean\n className?: string\n}\n\nconst accordionPropKeys = [\"id\", \"open\", \"disabled\", \"className\"] as const\n\nexport const Accordion = defineComponent(\n (props: AccordionProps, { slots, emit }) => {\n const attrs = useAttrs()\n const localId = createLocalId(\"mw-accordion\")\n const resolvedId = computed(() => props.id ?? localId)\n\n const kit = computed(() => {\n const opts: import(\"@marwes-ui/core\").AccordionOptions = { id: resolvedId.value }\n if (props.open !== undefined) opts.open = props.open\n if (props.disabled !== undefined) opts.disabled = props.disabled\n return createAccordionRecipe(opts)\n })\n\n function handleTriggerClick(): void {\n if (props.disabled) return\n emit(\"toggle\")\n }\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n\n return h(\"div\", { ...passthroughAttrs, class: className }, [\n h(\n \"button\",\n {\n id: a11y.triggerId,\n type: \"button\",\n class: \"mw-accordion__trigger\",\n \"aria-expanded\": a11y.ariaExpanded,\n \"aria-controls\": a11y.panelId,\n \"aria-disabled\": a11y.ariaDisabled,\n disabled: props.disabled,\n onClick: handleTriggerClick,\n },\n [\n h(\"span\", { class: \"mw-accordion__title\" }, slots.title?.()),\n h(\"span\", { class: \"mw-accordion__icon\", \"aria-hidden\": \"true\" }),\n ],\n ),\n h(\n \"div\",\n {\n id: a11y.panelId,\n role: \"region\",\n \"aria-labelledby\": a11y.triggerId,\n class: \"mw-accordion__panel\",\n hidden: !props.open,\n },\n [h(\"div\", { class: \"mw-accordion__content\" }, slots.default?.())],\n ),\n ])\n }\n },\n {\n name: \"MarwesAccordion\",\n inheritAttrs: false,\n props: [...accordionPropKeys],\n emits: [\"toggle\"],\n },\n)\n","import { buildAccordionFieldA11yIds } from \"@marwes-ui/core\"\nimport { type VNodeChild, computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Accordion } from \"./accordion\"\n\nexport interface AccordionFieldItem {\n value: string\n title: VNodeChild\n content: VNodeChild\n disabled?: boolean\n}\n\nexport interface AccordionFieldProps {\n label: string\n description?: string\n error?: string\n items: AccordionFieldItem[]\n multiple?: boolean\n openItems?: string[]\n onOpenItemsChange?: (openItems: string[]) => void\n defaultOpenItems?: string[]\n disabled?: boolean\n id?: string\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: string[]\n}\n\nconst accordionFieldPropKeys = [\n \"label\",\n \"description\",\n \"error\",\n \"items\",\n \"multiple\",\n \"openItems\",\n \"onOpenItemsChange\",\n \"defaultOpenItems\",\n \"disabled\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nexport const AccordionField = defineComponent(\n (props: AccordionFieldProps, { emit }) => {\n const localId = createLocalId(\"mw-accordion-field\")\n const id = computed(() => props.id ?? localId)\n const multipleAllowed = computed(() => props.multiple ?? true)\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildAccordionFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const isControlled = computed(\n () => props.modelValue !== undefined || props.openItems !== undefined,\n )\n const internalOpenItems = ref<string[]>(props.defaultOpenItems ?? [])\n const currentOpenItems = computed(() => {\n if (props.modelValue !== undefined) return props.modelValue\n if (props.openItems !== undefined) return props.openItems\n return internalOpenItems.value\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-accordion-field\",\n props.disabled && \"mw-accordion-field--disabled\",\n hasError.value && \"mw-accordion-field--invalid\",\n ),\n )\n\n function handleToggle(itemValue: string): void {\n const isCurrentlyOpen = currentOpenItems.value.includes(itemValue)\n let nextOpenItems: string[]\n\n if (isCurrentlyOpen) {\n nextOpenItems = currentOpenItems.value.filter((v) => v !== itemValue)\n } else if (multipleAllowed.value) {\n nextOpenItems = [...currentOpenItems.value, itemValue]\n } else {\n nextOpenItems = [itemValue]\n }\n\n if (!isControlled.value) {\n internalOpenItems.value = nextOpenItems\n }\n props.onOpenItemsChange?.(nextOpenItems)\n emit(\"update:modelValue\", nextOpenItems)\n emit(\"change\", nextOpenItems)\n }\n\n return () =>\n h(\n \"fieldset\",\n {\n class: wrapperClass.value,\n \"aria-labelledby\": a11yIds.value.labelId,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": hasError.value ? true : undefined,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"legend\", { class: \"mw-accordion-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: () => [props.label] }),\n ]),\n\n h(\n \"div\",\n { class: \"mw-accordion-field__items\" },\n props.items.map((item) => {\n const isDisabled = props.disabled || item.disabled || false\n const isOpen = currentOpenItems.value.includes(item.value)\n\n return h(\n Accordion as unknown as string,\n {\n key: item.value,\n id: `${id.value}-item-${item.value}`,\n open: isOpen,\n disabled: isDisabled,\n onToggle: () => handleToggle(item.value),\n },\n {\n title: () => toChildren(item.title),\n default: () => toChildren(item.content),\n },\n )\n }),\n ),\n\n hasDescription.value\n ? h(\n \"div\",\n { class: \"mw-accordion-field__description\", id: a11yIds.value.descriptionId },\n [h(Paragraph, { size: \"sm\" }, { default: () => [props.description] })],\n )\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-accordion-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: () => [props.error] })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesAccordionField\",\n props: [...accordionFieldPropKeys],\n emits: [\"update:modelValue\", \"change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { AccordionField, type AccordionFieldProps } from \"./accordion-field\"\n\nconst accordionFieldPropKeys = [\n \"label\",\n \"description\",\n \"error\",\n \"items\",\n \"multiple\",\n \"openItems\",\n \"onOpenItemsChange\",\n \"defaultOpenItems\",\n \"disabled\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type FAQAccordionProps = Omit<AccordionFieldProps, \"multiple\">\n\nexport const FAQAccordion = defineComponent({\n name: \"MarwesFAQAccordion\",\n inheritAttrs: false,\n props: [...accordionFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as FAQAccordionProps\n\n return () =>\n h(\n AccordionField,\n {\n ...attrs,\n ...props,\n multiple: false,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"faq\",\n },\n },\n slots,\n )\n },\n})\n\nexport type SettingsAccordionProps = Omit<AccordionFieldProps, \"multiple\">\n\nexport const SettingsAccordion = defineComponent({\n name: \"MarwesSettingsAccordion\",\n inheritAttrs: false,\n props: [...accordionFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as SettingsAccordionProps\n\n return () =>\n h(\n AccordionField,\n {\n ...attrs,\n ...props,\n multiple: true,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"settings\",\n },\n },\n slots,\n )\n },\n})\n\nexport type SectionsAccordionProps = AccordionFieldProps\n\nexport const SectionsAccordion = defineComponent({\n name: \"MarwesSectionsAccordion\",\n inheritAttrs: false,\n props: [...accordionFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as SectionsAccordionProps\n\n return () =>\n h(\n AccordionField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"sections\",\n },\n },\n slots,\n )\n },\n})\n","import { radioRecipe } from \"@marwes-ui/core\"\nimport type { RadioOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport type RadioProps = RadioOptions & {\n modelValue?: boolean\n onCheckedChange?: (checked: boolean) => void\n onChange?: (event: Event) => void\n className?: string\n}\n\nconst radioPropKeys = [\n \"checked\",\n \"modelValue\",\n \"defaultChecked\",\n \"disabled\",\n \"required\",\n \"invalid\",\n \"id\",\n \"name\",\n \"value\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"onCheckedChange\",\n \"onChange\",\n \"className\",\n] as const\n\nexport const Radio = defineComponent(\n (props: RadioProps, { emit }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: RadioOptions = {}\n const checked = props.modelValue ?? props.checked\n if (checked !== undefined) opts.checked = checked\n if (props.defaultChecked !== undefined) opts.defaultChecked = props.defaultChecked\n if (props.disabled !== undefined) opts.disabled = props.disabled\n if (props.required !== undefined) opts.required = props.required\n if (props.invalid !== undefined) opts.invalid = props.invalid\n if (props.id !== undefined) opts.id = props.id\n if (props.name !== undefined) opts.name = props.name\n if (props.value !== undefined) opts.value = props.value\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n if (props.ariaLabelledBy !== undefined) opts.ariaLabelledBy = props.ariaLabelledBy\n if (props.ariaDescribedBy !== undefined) opts.ariaDescribedBy = props.ariaDescribedBy\n return radioRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n\n return h(\"input\", {\n ...passthroughAttrs,\n type: \"radio\",\n class: className,\n id: a11y.id,\n name: a11y.name,\n value: a11y.value,\n disabled: a11y.disabled === true,\n required: a11y.required === true,\n \"aria-label\": a11y.ariaLabel,\n \"aria-labelledby\": a11y.ariaLabelledBy,\n \"aria-describedby\": a11y.ariaDescribedBy,\n \"aria-invalid\": a11y.ariaInvalid === true ? true : undefined,\n checked: renderKit.checked ?? renderKit.defaultChecked,\n onChange: (event: Event) => {\n props.onChange?.(event)\n const target = event.target as HTMLInputElement\n props.onCheckedChange?.(target.checked)\n emit(\"update:modelValue\", target.checked)\n emit(\"checked-change\", target.checked)\n emit(\"change\", event)\n },\n })\n }\n },\n {\n name: \"MarwesRadio\",\n inheritAttrs: false,\n props: [...radioPropKeys],\n emits: [\"update:modelValue\", \"checked-change\", \"change\"],\n },\n)\n","import { buildRadioGroupFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Radio } from \"./radio\"\n\nexport interface RadioGroupFieldOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface RadioGroupFieldProps {\n name: string\n label: string\n description?: string\n error?: string\n value?: string\n onChange?: (value: string) => void\n defaultValue?: string\n options: RadioGroupFieldOption[]\n disabled?: boolean\n required?: boolean\n id?: string\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: string\n}\n\nconst radioGroupFieldPropKeys = [\n \"name\",\n \"label\",\n \"description\",\n \"error\",\n \"value\",\n \"onChange\",\n \"defaultValue\",\n \"options\",\n \"disabled\",\n \"required\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const RadioGroupField = defineComponent(\n (props: RadioGroupFieldProps, { slots, emit }) => {\n const localGroupId = createLocalId(\"mw-radio-group\")\n const id = computed(() => props.id ?? localGroupId)\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildRadioGroupFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n const internalValue = ref(props.defaultValue)\n const selectedValue = computed(() => {\n if (props.modelValue !== undefined) return props.modelValue\n if (props.value !== undefined) return props.value\n return internalValue.value\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-radio-group-field\",\n props.disabled && \"mw-radio-group-field--disabled\",\n hasError.value && \"mw-radio-group-field--invalid\",\n ),\n )\n\n function handleSelect(nextValue: string): void {\n if (!isControlled.value) {\n internalValue.value = nextValue\n }\n\n props.onChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"change\", nextValue)\n }\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"div\", { class: \"mw-radio-group-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n hasDescription.value\n ? h(\n \"div\",\n { class: \"mw-radio-group-field__description\", id: a11yIds.value.descriptionId },\n [h(Paragraph, { size: \"sm\" }, { default: descriptionContent })],\n )\n : null,\n\n h(\n \"div\",\n {\n role: \"radiogroup\",\n \"aria-labelledby\": a11yIds.value.labelId,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": hasError.value ? true : undefined,\n \"aria-required\": props.required ? true : undefined,\n class: \"mw-radio-group-field__options\",\n },\n props.options.map((option) => {\n const optionId = `${id.value}-option-${option.value}`\n const isOptionDisabled = props.disabled || option.disabled || false\n\n return h(\n \"label\",\n {\n class: \"mw-radio-group-field__option\",\n for: optionId,\n key: option.value,\n },\n [\n h(Radio, {\n id: optionId,\n name: props.name,\n value: option.value,\n checked: selectedValue.value === option.value,\n disabled: isOptionDisabled,\n invalid: hasError.value,\n ...(props.required ? { required: true } : {}),\n onCheckedChange: (checked: boolean) => {\n if (checked) {\n handleSelect(option.value)\n }\n },\n }),\n h(Paragraph, { size: \"sm\" }, { default: () => [option.label] }),\n ],\n )\n }),\n ),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-radio-group-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesRadioGroupField\",\n props: [...radioGroupFieldPropKeys],\n emits: [\"update:modelValue\", \"change\"],\n },\n)\n","import { computed, defineComponent, h } from \"vue\"\nimport { RadioGroupField, type RadioGroupFieldProps } from \"./radio-group-field\"\n\nconst radioGroupFieldPropKeys = [\n \"name\",\n \"label\",\n \"description\",\n \"error\",\n \"value\",\n \"onChange\",\n \"defaultValue\",\n \"options\",\n \"disabled\",\n \"required\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type YesNoRadioGroupProps = Omit<RadioGroupFieldProps, \"options\"> & {\n yesLabel?: string\n noLabel?: string\n}\n\nexport const YesNoRadioGroup = defineComponent({\n name: \"MarwesYesNoRadioGroup\",\n inheritAttrs: false,\n props: [...radioGroupFieldPropKeys, \"yesLabel\", \"noLabel\"],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as YesNoRadioGroupProps\n\n const options = computed(() => [\n { value: \"yes\", label: props.yesLabel ?? \"Yes\" },\n { value: \"no\", label: props.noLabel ?? \"No\" },\n ])\n\n return () =>\n h(\n RadioGroupField,\n {\n ...attrs,\n ...props,\n options: options.value,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"binary-choice\",\n },\n },\n slots,\n )\n },\n})\n\nexport type RatingRadioGroupProps = Omit<RadioGroupFieldProps, \"options\"> & {\n min?: number\n max?: number\n labelFn?: (value: number) => string\n}\n\nexport const RatingRadioGroup = defineComponent({\n name: \"MarwesRatingRadioGroup\",\n inheritAttrs: false,\n props: [...radioGroupFieldPropKeys, \"min\", \"max\", \"labelFn\"],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as RatingRadioGroupProps\n\n const options = computed(() => {\n const min = props.min ?? 1\n const max = props.max ?? 5\n const labelFn = props.labelFn ?? String\n\n return Array.from({ length: max - min + 1 }, (_, index) => {\n const value = min + index\n return { value: String(value), label: labelFn(value) }\n })\n })\n\n return () =>\n h(\n RadioGroupField,\n {\n ...attrs,\n ...props,\n options: options.value,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"rating\",\n },\n },\n slots,\n )\n },\n})\n\nexport type OptionRadioGroupProps = RadioGroupFieldProps\n\nexport const OptionRadioGroup = defineComponent({\n name: \"MarwesOptionRadioGroup\",\n inheritAttrs: false,\n props: [...radioGroupFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as OptionRadioGroupProps\n\n return () =>\n h(\n RadioGroupField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"selection\",\n },\n },\n slots,\n )\n },\n})\n","import { createBadgeRecipe } from \"@marwes-ui/core\"\nimport type { BadgeOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type BadgeProps = BadgeOptions & {\n className?: string\n id?: string\n /** Data attributes for AI-friendly metadata (used by context variants). */\n dataAttributes?: Record<string, string>\n}\n\nconst badgePropKeys = [\"variant\", \"ariaLabel\", \"className\", \"id\", \"dataAttributes\"] as const\n\nexport const Badge = defineComponent(\n (props: BadgeProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: BadgeOptions = {}\n if (props.variant !== undefined) opts.variant = props.variant\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n return createBadgeRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars, attrs.style)\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n id: props.id,\n class: className,\n style,\n \"aria-label\": a11y.ariaLabel,\n },\n slots.default?.(),\n )\n }\n },\n {\n name: \"MarwesBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n },\n)\n","import { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\n\nexport interface BadgeGroupProps {\n /** Visible label for the badge group. */\n label: string\n\n /** Additional CSS class names. */\n className?: string\n\n /** Explicit ID. If omitted, generated via createLocalId(). */\n id?: string\n\n /** Data attributes for AI-friendly metadata (used by context variants). */\n dataAttributes?: Record<string, string>\n}\n\nconst badgeGroupPropKeys = [\"label\", \"className\", \"id\", \"dataAttributes\"] as const\n\nexport const BadgeGroup = defineComponent(\n (props: BadgeGroupProps, { slots }) => {\n const localId = createLocalId(\"mw-badge-group\")\n const id = computed(() => props.id ?? localId)\n const labelId = computed(() => `${id.value}-label`)\n\n const wrapperClass = computed(() => mergeClassNames(\"mw-badge-group\", props.className))\n\n return () =>\n h(\n \"fieldset\",\n {\n class: wrapperClass.value,\n \"aria-labelledby\": labelId.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"legend\", { class: \"mw-badge-group__label\", id: labelId.value }, [\n h(Paragraph, { size: \"sm\" }, { default: () => [props.label] }),\n ]),\n h(\"div\", { class: \"mw-badge-group__items\" }, slots.default?.()),\n ],\n )\n },\n {\n name: \"MarwesBadgeGroup\",\n inheritAttrs: false,\n props: [...badgeGroupPropKeys],\n },\n)\n","import { createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { Badge, type BadgeProps } from \"./badge\"\n\nconst badgePropKeys = [\"variant\", \"ariaLabel\", \"className\", \"id\", \"dataAttributes\"] as const\n\n// ============================================================================\n// STATUS BADGE - Operational/lifecycle status\n// ============================================================================\n\nexport type StatusBadgeProps = BadgeProps\n\nexport const StatusBadge = defineComponent({\n name: \"MarwesStatusBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as StatusBadgeProps\n\n return () =>\n h(\n Badge,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"status\"),\n },\n },\n slots,\n )\n },\n})\n\n// ============================================================================\n// PRIORITY BADGE - Urgency or importance levels\n// ============================================================================\n\nexport type PriorityBadgeProps = BadgeProps\n\nexport const PriorityBadge = defineComponent({\n name: \"MarwesPriorityBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as PriorityBadgeProps\n\n return () =>\n h(\n Badge,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"priority\"),\n },\n },\n slots,\n )\n },\n})\n\n// ============================================================================\n// NOTIFICATION BADGE - Counts and alerts\n// ============================================================================\n\nexport type NotificationBadgeProps = BadgeProps\n\nexport const NotificationBadge = defineComponent({\n name: \"MarwesNotificationBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as NotificationBadgeProps\n\n return () =>\n h(\n Badge,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"notification\"),\n },\n },\n slots,\n )\n },\n})\n","import { createSwitchRecipe } from \"@marwes-ui/core\"\nimport type { SwitchOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SwitchProps = SwitchOptions & {\n className?: string\n modelValue?: boolean\n onCheckedChange?: (checked: boolean) => void\n onClick?: (event: MouseEvent) => void\n id?: string\n}\n\nconst switchPropKeys = [\n \"size\",\n \"checked\",\n \"modelValue\",\n \"disabled\",\n \"ariaLabel\",\n \"ariaLabelledby\",\n \"ariaDescribedBy\",\n \"className\",\n \"onCheckedChange\",\n \"onClick\",\n \"id\",\n] as const\n\nexport const Switch = defineComponent(\n (props: SwitchProps, { slots, emit }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: SwitchOptions = {}\n if (props.size !== undefined) opts.size = props.size\n const checked = props.modelValue ?? props.checked\n if (checked !== undefined) opts.checked = checked\n if (props.disabled !== undefined) opts.disabled = props.disabled\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n if (props.ariaLabelledby !== undefined) opts.ariaLabelledby = props.ariaLabelledby\n if (props.ariaDescribedBy !== undefined) opts.ariaDescribedBy = props.ariaDescribedBy\n return createSwitchRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const isDisabled = a11y.ariaDisabled === true\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars, attrs.style)\n\n return h(\n \"button\",\n {\n ...passthroughAttrs,\n id: props.id,\n type: \"button\",\n class: className,\n style,\n disabled: isDisabled,\n role: a11y.role,\n \"aria-checked\": a11y.ariaChecked,\n \"aria-disabled\": a11y.ariaDisabled,\n \"aria-label\": a11y.ariaLabel,\n \"aria-labelledby\": a11y.ariaLabelledby,\n \"aria-describedby\": a11y.ariaDescribedBy,\n onClick: (event: MouseEvent) => {\n props.onClick?.(event)\n\n if (isDisabled || event.defaultPrevented) {\n return\n }\n\n const nextChecked = !a11y.ariaChecked\n props.onCheckedChange?.(nextChecked)\n emit(\"update:modelValue\", nextChecked)\n emit(\"checked-change\", nextChecked)\n },\n },\n [\n h(\"span\", { class: \"mw-switch__track\" }, [h(\"span\", { class: \"mw-switch__thumb\" })]),\n slots.default?.(),\n ],\n )\n }\n },\n {\n name: \"MarwesSwitch\",\n inheritAttrs: false,\n props: [...switchPropKeys],\n emits: [\"update:modelValue\", \"checked-change\"],\n },\n)\n","import { buildSwitchFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Switch, type SwitchProps } from \"./switch\"\n\nexport type SwitchFieldProps = {\n id?: string\n label: string\n description?: string\n error?: string\n switch?: SwitchProps\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: boolean\n}\n\nconst switchFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"switch\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const SwitchField = defineComponent(\n (props: SwitchFieldProps, { slots, emit }) => {\n const localSwitchId = createLocalId(\"mw-switch\")\n const id = computed(() => props.id ?? localSwitchId)\n const sourceSwitch = computed<SwitchProps>(() => props.switch ?? {})\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n const a11yIds = computed(() =>\n buildSwitchFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceSwitch.value.disabled || false)\n const invalid = computed(() => hasError.value)\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-switch-field\",\n disabled.value && \"mw-switch-field--disabled\",\n invalid.value && \"mw-switch-field--invalid\",\n ),\n )\n\n const mergedSwitchProps = computed<SwitchProps>(() => {\n const {\n ariaLabel: _ignoredAriaLabel,\n ariaLabelledby: _ignoredAriaLabelledby,\n ariaDescribedBy: _ignoredAriaDescribedBy,\n onCheckedChange: originalOnCheckedChange,\n ...restSwitchProps\n } = sourceSwitch.value\n const nextSwitchProps: SwitchProps = {\n ...restSwitchProps,\n id: id.value,\n ariaLabelledby: a11yIds.value.labelId,\n }\n\n if (props.modelValue !== undefined) {\n nextSwitchProps.modelValue = props.modelValue\n }\n\n if (a11yIds.value.describedBy) {\n nextSwitchProps.ariaDescribedBy = a11yIds.value.describedBy\n }\n\n nextSwitchProps.onCheckedChange = (nextChecked: boolean) => {\n originalOnCheckedChange?.(nextChecked)\n emit(\"update:modelValue\", nextChecked)\n emit(\"checked-change\", nextChecked)\n }\n\n return nextSwitchProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"div\", { class: \"mw-switch-field__row\" }, [\n h(Switch, mergedSwitchProps.value),\n h(\"span\", { class: \"mw-switch-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n ]),\n\n hasDescription.value\n ? h(\"div\", { class: \"mw-switch-field__description\", id: a11yIds.value.descriptionId }, [\n h(Paragraph, { size: \"sm\" }, { default: descriptionContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-switch-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesSwitchField\",\n props: [...switchFieldPropKeys],\n emits: [\"update:modelValue\", \"checked-change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { SwitchField, type SwitchFieldProps } from \"./switch-field\"\n\nconst switchFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"switch\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type FeatureToggleProps = SwitchFieldProps\n\nexport const FeatureToggle = defineComponent({\n name: \"MarwesFeatureToggle\",\n inheritAttrs: false,\n props: [...switchFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as FeatureToggleProps\n\n return () =>\n h(\n SwitchField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"feature-toggle\",\n },\n },\n slots,\n )\n },\n})\n\nexport type PreferenceSwitchProps = SwitchFieldProps\n\nexport const PreferenceSwitch = defineComponent({\n name: \"MarwesPreferenceSwitch\",\n inheritAttrs: false,\n props: [...switchFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as PreferenceSwitchProps\n\n return () =>\n h(\n SwitchField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"preference\",\n },\n },\n slots,\n )\n },\n})\n\nexport type PermissionSwitchProps = SwitchFieldProps\n\nexport const PermissionSwitch = defineComponent({\n name: \"MarwesPermissionSwitch\",\n inheritAttrs: false,\n props: [...switchFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as PermissionSwitchProps\n\n return () =>\n h(\n SwitchField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"permission\",\n },\n },\n slots,\n )\n },\n})\n","import type { CssVars, SliderOptions } from \"@marwes-ui/core\"\nimport { createSliderRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref, useAttrs, watch } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SliderProps = SliderOptions & {\n modelValue?: number\n onValueChange?: (value: number) => void\n onChange?: (event: Event) => void\n className?: string\n}\n\ntype SliderOptionDraft = {\n [Key in keyof SliderOptions]?: SliderOptions[Key] | undefined\n}\n\nconst sliderPropKeys = [\n \"id\",\n \"name\",\n \"min\",\n \"max\",\n \"step\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"disabled\",\n \"required\",\n \"showTooltip\",\n \"showTouchArea\",\n \"orientation\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"ariaValueText\",\n \"onValueChange\",\n \"onChange\",\n \"className\",\n] as const\n\nfunction buildSliderOptions(options: SliderOptionDraft): SliderOptions {\n const sliderOptions: SliderOptions = {}\n\n if (options.id !== undefined) sliderOptions.id = options.id\n if (options.name !== undefined) sliderOptions.name = options.name\n if (options.min !== undefined) sliderOptions.min = options.min\n if (options.max !== undefined) sliderOptions.max = options.max\n if (options.step !== undefined) sliderOptions.step = options.step\n if (options.value !== undefined) sliderOptions.value = options.value\n if (options.defaultValue !== undefined) sliderOptions.defaultValue = options.defaultValue\n if (options.disabled !== undefined) sliderOptions.disabled = options.disabled\n if (options.required !== undefined) sliderOptions.required = options.required\n if (options.showTooltip !== undefined) sliderOptions.showTooltip = options.showTooltip\n if (options.showTouchArea !== undefined) sliderOptions.showTouchArea = options.showTouchArea\n if (options.orientation !== undefined) sliderOptions.orientation = options.orientation\n if (options.ariaLabel !== undefined) sliderOptions.ariaLabel = options.ariaLabel\n if (options.ariaLabelledBy !== undefined) sliderOptions.ariaLabelledBy = options.ariaLabelledBy\n if (options.ariaDescribedBy !== undefined) sliderOptions.ariaDescribedBy = options.ariaDescribedBy\n if (options.ariaValueText !== undefined) sliderOptions.ariaValueText = options.ariaValueText\n\n return sliderOptions\n}\n\nfunction resolveSliderValue(options: SliderOptionDraft): number {\n return createSliderRecipe(buildSliderOptions(options)).value\n}\n\nexport const Slider = defineComponent(\n (props: SliderProps, { emit }) => {\n const attrs = useAttrs()\n const uncontrolledValue = ref(\n resolveSliderValue({\n min: props.min,\n max: props.max,\n step: props.step,\n value: props.modelValue ?? props.value,\n defaultValue: props.defaultValue,\n }),\n )\n\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n\n watch(\n () => [props.modelValue, props.value, props.defaultValue, props.min, props.max, props.step],\n () => {\n if (!isControlled.value) {\n uncontrolledValue.value = resolveSliderValue({\n min: props.min,\n max: props.max,\n step: props.step,\n defaultValue: props.defaultValue,\n })\n }\n },\n )\n\n const currentValue = computed(() => {\n if (isControlled.value) {\n return resolveSliderValue({\n min: props.min,\n max: props.max,\n step: props.step,\n value: props.modelValue ?? props.value,\n })\n }\n\n return uncontrolledValue.value\n })\n\n const kit = computed(() =>\n createSliderRecipe(\n buildSliderOptions({\n id: props.id,\n name: props.name,\n min: props.min,\n max: props.max,\n step: props.step,\n value: currentValue.value,\n disabled: props.disabled,\n required: props.required,\n showTooltip: props.showTooltip,\n showTouchArea: props.showTouchArea,\n orientation: props.orientation,\n ariaLabel: props.ariaLabel,\n ariaLabelledBy: props.ariaLabelledBy,\n ariaDescribedBy: props.ariaDescribedBy,\n ariaValueText: props.ariaValueText,\n }),\n ),\n )\n\n useRenderKitDebug(kit, \"Slider\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"div\",\n {\n class: className,\n style,\n ...renderKit.dataAttributes,\n },\n [\n h(\"div\", { class: \"mw-slider__control\" }, [\n h(\"input\", {\n ...passthroughAttrs,\n type: renderKit.a11y.type,\n class: renderKit.inputClassName,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n min: renderKit.a11y.min,\n max: renderKit.a11y.max,\n step: renderKit.a11y.step,\n disabled: renderKit.a11y.disabled === true,\n required: renderKit.a11y.required === true,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-labelledby\": renderKit.a11y.ariaLabelledBy,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n \"aria-valuetext\": renderKit.a11y.ariaValueText,\n \"aria-orientation\": renderKit.a11y.ariaOrientation,\n value: currentValue.value,\n onInput: (event: Event) => {\n const target = event.target as HTMLInputElement\n const nextValue = Number(target.value)\n\n if (!isControlled.value) {\n uncontrolledValue.value = nextValue\n }\n\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n onChange: (event: Event) => {\n props.onChange?.(event)\n emit(\"change\", event)\n },\n }),\n h(\"div\", { class: \"mw-slider__visual\", \"aria-hidden\": \"true\" }, [\n h(\"span\", { class: \"mw-slider__track\" }),\n h(\"span\", { class: \"mw-slider__fill\" }),\n h(\"span\", { class: \"mw-slider__touch-area\" }),\n h(\"span\", { class: \"mw-slider__thumb\" }),\n ]),\n renderKit.showTooltip\n ? h(\n \"span\",\n {\n class: \"mw-slider__tooltip\",\n \"aria-hidden\": \"true\",\n },\n String(currentValue.value),\n )\n : null,\n ]),\n ],\n )\n }\n },\n {\n name: \"MarwesSlider\",\n inheritAttrs: false,\n props: [...sliderPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import { buildSliderFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Slider, type SliderProps } from \"./slider\"\n\nexport type SliderFieldLabelPosition = \"top\" | \"inline\"\n\nexport type SliderFieldProps = {\n id?: string\n label: string\n description?: string\n error?: string\n slider?: SliderProps\n ariaDescribedBy?: string\n minValueLabel?: string\n maxValueLabel?: string\n labelPosition?: SliderFieldLabelPosition\n showEdgeValues?: boolean\n dataAttributes?: Record<string, string>\n modelValue?: number\n}\n\nconst sliderFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"slider\",\n \"ariaDescribedBy\",\n \"minValueLabel\",\n \"maxValueLabel\",\n \"labelPosition\",\n \"showEdgeValues\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const SliderField = defineComponent(\n (props: SliderFieldProps, { slots, emit }) => {\n const localSliderId = createLocalId(\"mw-slider\")\n const id = computed(() => props.id ?? localSliderId)\n const sourceSlider = computed<SliderProps>(() => props.slider ?? {})\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n const labelPosition = computed<SliderFieldLabelPosition>(() => props.labelPosition ?? \"top\")\n const showEdgeValues = computed(() => props.showEdgeValues !== false)\n const a11yIds = computed(() =>\n buildSliderFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceSlider.value.disabled || false)\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-slider-field\",\n labelPosition.value === \"top\" && \"mw-slider-field--label-top\",\n labelPosition.value === \"inline\" && \"mw-slider-field--label-inline\",\n disabled.value && \"mw-slider-field--disabled\",\n hasError.value && \"mw-slider-field--invalid\",\n ),\n )\n\n const minValueLabel = computed(() => props.minValueLabel ?? `${sourceSlider.value.min ?? 0}`)\n const maxValueLabel = computed(() => props.maxValueLabel ?? `${sourceSlider.value.max ?? 100}`)\n\n const mergedSliderProps = computed<SliderProps>(() => {\n const {\n ariaLabel: _ignoredAriaLabel,\n ariaLabelledBy: _ignoredAriaLabelledBy,\n ariaDescribedBy: _ignoredAriaDescribedBy,\n onValueChange: originalOnValueChange,\n ...restSliderProps\n } = sourceSlider.value\n\n const nextSliderProps: SliderProps = {\n ...restSliderProps,\n id: id.value,\n ariaLabelledBy: a11yIds.value.labelId,\n onValueChange: (nextValue: number) => {\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n }\n\n if (props.modelValue !== undefined) {\n nextSliderProps.modelValue = props.modelValue\n }\n\n if (a11yIds.value.describedBy) {\n nextSliderProps.ariaDescribedBy = a11yIds.value.describedBy\n }\n\n return nextSliderProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n function renderEdgeValue(position: \"min\" | \"max\", value: string) {\n return h(\n \"span\",\n { class: `mw-slider-field__edge-value mw-slider-field__edge-value--${position}` },\n [h(Paragraph, { size: \"sm\" }, { default: () => [value] })],\n )\n }\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n \"data-label-position\": labelPosition.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"div\", { class: \"mw-slider-field__header\" }, [\n h(\"div\", { class: \"mw-slider-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n ]),\n\n hasDescription.value\n ? h(\"div\", { class: \"mw-slider-field__description\", id: a11yIds.value.descriptionId }, [\n h(Paragraph, { size: \"sm\" }, { default: descriptionContent }),\n ])\n : null,\n\n labelPosition.value === \"top\" && showEdgeValues.value\n ? h(\"div\", { class: \"mw-slider-field__values-row\" }, [\n renderEdgeValue(\"min\", minValueLabel.value),\n renderEdgeValue(\"max\", maxValueLabel.value),\n ])\n : null,\n\n h(\"div\", { class: \"mw-slider-field__control-row\" }, [\n labelPosition.value === \"inline\" && showEdgeValues.value\n ? renderEdgeValue(\"min\", minValueLabel.value)\n : null,\n h(\"div\", { class: \"mw-slider-field__slider\" }, [\n h(Slider, {\n ...mergedSliderProps.value,\n \"aria-invalid\": hasError.value ? true : undefined,\n }),\n ]),\n labelPosition.value === \"inline\" && showEdgeValues.value\n ? renderEdgeValue(\"max\", maxValueLabel.value)\n : null,\n ]),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-slider-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesSliderField\",\n props: [...sliderFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport type { SliderProps } from \"./slider\"\nimport { SliderField, type SliderFieldProps } from \"./slider-field\"\n\ntype SliderFieldPurposeProps = Omit<\n SliderFieldProps,\n \"label\" | \"slider\" | \"minValueLabel\" | \"maxValueLabel\"\n> & {\n label?: string\n slider?: SliderProps\n orientation?: SliderProps[\"orientation\"]\n minValueLabel?: string\n maxValueLabel?: string\n}\n\nconst sliderFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"slider\",\n \"ariaDescribedBy\",\n \"minValueLabel\",\n \"maxValueLabel\",\n \"orientation\",\n \"showEdgeValues\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type VolumeSliderProps = SliderFieldPurposeProps\n\nexport const VolumeSlider = defineComponent({\n name: \"MarwesVolumeSlider\",\n inheritAttrs: false,\n props: [...sliderFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as VolumeSliderProps\n\n return () =>\n h(\n SliderField,\n {\n ...attrs,\n ...props,\n label: props.label ?? \"Volume\",\n minValueLabel: props.minValueLabel ?? \"0\",\n maxValueLabel: props.maxValueLabel ?? \"100\",\n slider: {\n min: 0,\n max: 100,\n step: 1,\n showTooltip: true,\n ...(props.orientation !== undefined ? { orientation: props.orientation } : {}),\n ...props.slider,\n },\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"volume\",\n },\n },\n slots,\n )\n },\n})\n\nexport type BrightnessSliderProps = SliderFieldPurposeProps\n\nexport const BrightnessSlider = defineComponent({\n name: \"MarwesBrightnessSlider\",\n inheritAttrs: false,\n props: [...sliderFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as BrightnessSliderProps\n\n return () =>\n h(\n SliderField,\n {\n ...attrs,\n ...props,\n label: props.label ?? \"Brightness\",\n minValueLabel: props.minValueLabel ?? \"0\",\n maxValueLabel: props.maxValueLabel ?? \"100\",\n slider: {\n min: 0,\n max: 100,\n step: 1,\n showTooltip: true,\n ...(props.orientation !== undefined ? { orientation: props.orientation } : {}),\n ...props.slider,\n },\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"brightness\",\n },\n },\n slots,\n )\n },\n})\n\nexport type RadiusSliderProps = SliderFieldPurposeProps\n\nexport const RadiusSlider = defineComponent({\n name: \"MarwesRadiusSlider\",\n inheritAttrs: false,\n props: [...sliderFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as RadiusSliderProps\n\n return () =>\n h(\n SliderField,\n {\n ...attrs,\n ...props,\n label: props.label ?? \"Radius\",\n minValueLabel: props.minValueLabel ?? \"0px\",\n maxValueLabel: props.maxValueLabel ?? \"48px\",\n slider: {\n min: 0,\n max: 48,\n step: 2,\n showTooltip: true,\n ...(props.orientation !== undefined ? { orientation: props.orientation } : {}),\n ...props.slider,\n },\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"radius\",\n },\n },\n slots,\n )\n },\n})\n","import { createTabRecipe } from \"@marwes-ui/core\"\nimport type { TabOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type TabProps = TabOptions & {\n className?: string\n onClick?: (event: MouseEvent) => void\n id?: string\n}\n\nconst tabPropKeys = [\n \"selected\",\n \"disabled\",\n \"ariaLabel\",\n \"ariaControls\",\n \"className\",\n \"onClick\",\n \"id\",\n] as const\n\nexport const Tab = defineComponent(\n (props: TabProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: TabOptions = {}\n if (props.selected !== undefined) opts.selected = props.selected\n if (props.disabled !== undefined) opts.disabled = props.disabled\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n if (props.ariaControls !== undefined) opts.ariaControls = props.ariaControls\n return createTabRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars, attrs.style)\n\n return h(\n \"button\",\n {\n ...passthroughAttrs,\n id: props.id,\n type: \"button\",\n class: className,\n style,\n role: a11y.role,\n \"aria-selected\": a11y.ariaSelected,\n \"aria-disabled\": a11y.ariaDisabled,\n \"aria-label\": a11y.ariaLabel,\n \"aria-controls\": a11y.ariaControls,\n tabindex: a11y.tabIndex,\n disabled: props.disabled ? true : undefined,\n onClick: (event: MouseEvent) => {\n props.onClick?.(event)\n },\n },\n slots.default?.(),\n )\n }\n },\n {\n name: \"MarwesTab\",\n inheritAttrs: false,\n props: [...tabPropKeys],\n emits: [\"click\"],\n },\n)\n","import {\n type TabGroupItemState,\n buildTabGroupA11yIds,\n moveTabSelection,\n resolveTabValue,\n} from \"@marwes-ui/core\"\nimport { type VNodeChild, computed, defineComponent, h, ref, watch } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Tab } from \"./tab\"\n\nexport type TabGroupItem = {\n value: string\n label: VNodeChild\n panel: VNodeChild\n disabled?: boolean\n ariaLabel?: string\n}\n\nexport type TabGroupProps = {\n id?: string\n label?: VNodeChild\n ariaLabel?: string\n tabs: TabGroupItem[]\n activeTab?: string\n defaultActiveTab?: string\n dataAttributes?: Record<string, string>\n className?: string\n}\n\nexport type TabPanelProps = {\n id: string\n tabId: string\n hidden?: boolean\n className?: string\n}\n\nconst tabGroupPropKeys = [\n \"id\",\n \"label\",\n \"ariaLabel\",\n \"tabs\",\n \"activeTab\",\n \"defaultActiveTab\",\n \"dataAttributes\",\n \"className\",\n] as const\n\nconst tabPanelPropKeys = [\"id\", \"tabId\", \"hidden\", \"className\"] as const\n\nfunction hasContent(value: VNodeChild | undefined): boolean {\n if (value === undefined || value === null || value === false) {\n return false\n }\n\n if (typeof value === \"string\") {\n return value.trim().length > 0\n }\n\n return true\n}\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nfunction focusTab(tabId: string): void {\n if (typeof document === \"undefined\") {\n return\n }\n\n const tab = document.getElementById(tabId)\n if (tab instanceof HTMLButtonElement) {\n tab.focus()\n }\n}\n\nfunction toItemState(tab: TabGroupItem): TabGroupItemState {\n const itemState: TabGroupItemState = { value: tab.value }\n\n if (tab.disabled) {\n itemState.disabled = true\n }\n\n return itemState\n}\n\nfunction renderPanelValue(value: VNodeChild | undefined): VNodeChild[] {\n if (typeof value === \"string\" || typeof value === \"number\") {\n return [\n h(\n Paragraph,\n { size: \"md\" },\n {\n default: () => [value],\n },\n ),\n ]\n }\n\n return toChildren(value)\n}\n\nexport const TabPanel = defineComponent(\n (props: TabPanelProps, { attrs, slots }) => {\n return () =>\n h(\n \"div\",\n {\n ...attrs,\n id: props.id,\n role: \"tabpanel\",\n \"aria-labelledby\": props.tabId,\n class: mergeClassNames(\"mw-tab-group__panel\", props.className, attrs.class),\n hidden: props.hidden,\n tabindex: props.hidden ? undefined : 0,\n },\n slots.default?.(),\n )\n },\n {\n name: \"MarwesTabPanel\",\n inheritAttrs: false,\n props: [...tabPanelPropKeys],\n },\n)\n\nexport const TabGroup = defineComponent(\n (props: TabGroupProps, { attrs, emit }) => {\n const localId = createLocalId(\"mw-tab-group\")\n const id = computed(() => props.id ?? localId)\n const hasLabel = computed(() => hasContent(props.label))\n const isControlled = computed(() => props.activeTab !== undefined)\n const itemStates = computed<TabGroupItemState[]>(() =>\n props.tabs.map((tab) => toItemState(tab)),\n )\n const internalActiveTab = ref<string | undefined>(\n resolveTabValue(itemStates.value, props.defaultActiveTab),\n )\n\n watch(\n itemStates,\n (nextStates) => {\n if (!isControlled.value) {\n internalActiveTab.value = resolveTabValue(\n nextStates,\n internalActiveTab.value ?? props.defaultActiveTab,\n )\n }\n },\n { immediate: true },\n )\n\n const resolvedActiveTab = computed(() =>\n resolveTabValue(\n itemStates.value,\n isControlled.value ? props.activeTab : internalActiveTab.value,\n ),\n )\n\n const a11yIds = computed(() =>\n buildTabGroupA11yIds({\n id: id.value,\n itemValues: props.tabs.map((tab) => tab.value),\n hasLabel: hasLabel.value,\n }),\n )\n\n const selectTab = (nextValue: string | undefined): void => {\n const resolvedValue = resolveTabValue(itemStates.value, nextValue)\n const currentValue = resolvedActiveTab.value\n\n if (!resolvedValue) {\n return\n }\n\n if (!isControlled.value) {\n internalActiveTab.value = resolvedValue\n }\n\n if (resolvedValue !== currentValue) {\n emit(\"update:activeTab\", resolvedValue)\n emit(\"tab-change\", resolvedValue)\n }\n }\n\n const handleKeydown = (event: KeyboardEvent): void => {\n let direction: \"next\" | \"previous\" | \"start\" | \"end\" | undefined\n\n switch (event.key) {\n case \"ArrowRight\":\n direction = \"next\"\n break\n case \"ArrowLeft\":\n direction = \"previous\"\n break\n case \"Home\":\n direction = \"start\"\n break\n case \"End\":\n direction = \"end\"\n break\n default:\n return\n }\n\n event.preventDefault()\n\n const nextValue = moveTabSelection(itemStates.value, resolvedActiveTab.value, direction)\n if (!nextValue) {\n return\n }\n\n selectTab(nextValue)\n const nextTabId = a11yIds.value.tabIds[nextValue]\n if (nextTabId) {\n focusTab(nextTabId)\n }\n }\n\n return () =>\n h(\n \"section\",\n {\n ...attrs,\n class: mergeClassNames(\"mw-tab-group\", props.className, attrs.class),\n ...(props.dataAttributes ?? {}),\n },\n [\n hasLabel.value\n ? (() => {\n const paragraphProps: Record<string, unknown> = { size: \"md\" }\n const labelId = a11yIds.value.labelId ?? `${id.value}-label`\n\n if (labelId) {\n paragraphProps.id = labelId\n }\n\n return h(\"div\", { class: \"mw-tab-group__header\" }, [\n h(Paragraph, paragraphProps, {\n default: () => toChildren(props.label),\n }),\n ])\n })()\n : null,\n\n h(\n \"div\",\n {\n id: a11yIds.value.tabListId,\n class: \"mw-tab-group__list\",\n role: \"tablist\",\n \"aria-label\": hasLabel.value ? undefined : (props.ariaLabel ?? \"Tabs\"),\n \"aria-labelledby\": hasLabel.value ? a11yIds.value.labelId : undefined,\n onKeydown: handleKeydown,\n },\n props.tabs.map((tab) =>\n (() => {\n const tabId = a11yIds.value.tabIds[tab.value] ?? `${id.value}-tab-${tab.value}`\n const panelId =\n a11yIds.value.panelIds[tab.value] ?? `${id.value}-panel-${tab.value}`\n const tabProps: Record<string, unknown> = {\n key: tab.value,\n id: tabId,\n selected: tab.value === resolvedActiveTab.value,\n ariaControls: panelId,\n onClick: () => selectTab(tab.value),\n }\n\n if (tab.disabled) {\n tabProps.disabled = true\n }\n\n if (tab.ariaLabel) {\n tabProps.ariaLabel = tab.ariaLabel\n }\n\n return h(Tab, tabProps, { default: () => toChildren(tab.label) })\n })(),\n ),\n ),\n\n h(\n \"div\",\n { class: \"mw-tab-group__panels\" },\n props.tabs.map((tab) =>\n (() => {\n const panelId =\n a11yIds.value.panelIds[tab.value] ?? `${id.value}-panel-${tab.value}`\n const tabId = a11yIds.value.tabIds[tab.value] ?? `${id.value}-tab-${tab.value}`\n\n return h(\n TabPanel,\n {\n key: tab.value,\n id: panelId,\n tabId,\n hidden: tab.value !== resolvedActiveTab.value,\n },\n {\n default: () => renderPanelValue(tab.panel),\n },\n )\n })(),\n ),\n ),\n ],\n )\n },\n {\n name: \"MarwesTabGroup\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n emits: [\"update:activeTab\", \"tab-change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { TabGroup, type TabGroupProps } from \"./tab-group\"\n\nconst tabGroupPropKeys = [\n \"id\",\n \"label\",\n \"ariaLabel\",\n \"tabs\",\n \"activeTab\",\n \"defaultActiveTab\",\n \"dataAttributes\",\n \"className\",\n] as const\n\nexport type NavigationTabsProps = TabGroupProps\n\nexport const NavigationTabs = defineComponent({\n name: \"MarwesNavigationTabs\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as NavigationTabsProps\n\n return () =>\n h(\n TabGroup,\n {\n ...attrs,\n ...props,\n ariaLabel: props.ariaLabel ?? \"Navigation tabs\",\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"navigation-tabs\",\n },\n },\n slots,\n )\n },\n})\n\nexport type ContentTabsProps = TabGroupProps\n\nexport const ContentTabs = defineComponent({\n name: \"MarwesContentTabs\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ContentTabsProps\n\n return () =>\n h(\n TabGroup,\n {\n ...attrs,\n ...props,\n ariaLabel: props.ariaLabel ?? \"Content tabs\",\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"content-tabs\",\n },\n },\n slots,\n )\n },\n})\n\nexport type SettingsTabsProps = TabGroupProps\n\nexport const SettingsTabs = defineComponent({\n name: \"MarwesSettingsTabs\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as SettingsTabsProps\n\n return () =>\n h(\n TabGroup,\n {\n ...attrs,\n ...props,\n ariaLabel: props.ariaLabel ?? \"Settings tabs\",\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"settings-tabs\",\n },\n },\n slots,\n )\n },\n})\n","import { type DialogOptions, IconName, createDialogRecipe } from \"@marwes-ui/core\"\nimport type { VNodeChild } from \"vue\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\n\nfunction hasContent(value: VNodeChild | undefined): boolean {\n if (value === undefined || value === null || value === false) {\n return false\n }\n\n if (typeof value === \"string\") {\n return value.trim().length > 0\n }\n\n return true\n}\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nexport type DialogProps = DialogOptions & {\n id?: string\n title?: VNodeChild\n description?: VNodeChild\n footer?: VNodeChild\n onClose?: () => void\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst dialogPropKeys = [\n \"id\",\n \"title\",\n \"description\",\n \"footer\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"modal\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"onClose\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport const Dialog = defineComponent(\n (props: DialogProps, { attrs, slots }) => {\n const localId = createLocalId(\"mw-dialog\")\n const id = computed(() => props.id ?? localId)\n const titleId = computed(() => `${id.value}-title`)\n const descriptionId = computed(() => `${id.value}-description`)\n const titleContent = computed<VNodeChild | undefined>(() => slots.title?.() ?? props.title)\n const descriptionContent = computed<VNodeChild | undefined>(\n () => slots.description?.() ?? props.description,\n )\n const footerContent = computed<VNodeChild | undefined>(() => slots.footer?.() ?? props.footer)\n const hasTitle = computed(() => hasContent(titleContent.value))\n const hasDescription = computed(() => hasContent(descriptionContent.value))\n const hasFooter = computed(() => hasContent(footerContent.value) && (props.showFooter ?? true))\n const dismissible = computed(() => (props.dismissible ?? true) && props.onClose !== undefined)\n const attrsWithoutClass = computed(() =>\n omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"]),\n )\n const kit = computed(() => {\n const dialogOptions: DialogOptions = {\n showFooter: hasFooter.value,\n dismissible: dismissible.value,\n ...(props.modal !== undefined ? { modal: props.modal } : {}),\n }\n\n if (props.dataAttributes) {\n dialogOptions.dataAttributes = props.dataAttributes\n }\n\n if (props.size) {\n dialogOptions.size = props.size\n }\n\n if (props.ariaLabel) {\n dialogOptions.ariaLabel = props.ariaLabel\n }\n\n if (props.ariaLabelledBy) {\n dialogOptions.ariaLabelledBy = props.ariaLabelledBy\n } else if (props.ariaLabel === undefined && hasTitle.value) {\n dialogOptions.ariaLabelledBy = titleId.value\n }\n\n if (props.ariaDescribedBy) {\n dialogOptions.ariaDescribedBy = props.ariaDescribedBy\n } else if (hasDescription.value) {\n dialogOptions.ariaDescribedBy = descriptionId.value\n }\n\n return createDialogRecipe(dialogOptions)\n })\n\n return () =>\n h(\n \"section\",\n {\n ...attrsWithoutClass.value,\n ...kit.value.dataAttributes,\n id: id.value,\n class: mergeClassNames(kit.value.className, props.className, attrs.class),\n role: kit.value.a11y.role,\n \"aria-modal\": kit.value.a11y.ariaModal ? \"true\" : undefined,\n \"aria-label\": kit.value.a11y.ariaLabel,\n \"aria-labelledby\": kit.value.a11y.ariaLabelledBy,\n \"aria-describedby\": kit.value.a11y.ariaDescribedBy,\n tabindex: -1,\n },\n [\n hasTitle.value || kit.value.showCloseButton\n ? [\n h(\"header\", { class: \"mw-dialog__header\" }, [\n hasTitle.value\n ? h(\"div\", { class: \"mw-dialog__heading-group\" }, [\n h(\n \"h2\",\n { class: \"mw-dialog__title\", id: titleId.value },\n toChildren(titleContent.value),\n ),\n ])\n : h(\"span\", { class: \"mw-dialog__spacer\", \"aria-hidden\": \"true\" }),\n kit.value.showCloseButton && props.onClose\n ? h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-dialog__close\",\n \"aria-label\": \"Close dialog\",\n onClick: () => props.onClose?.(),\n },\n [h(Icon, { name: IconName.X, decorative: true })],\n )\n : null,\n ]),\n h(\"div\", { class: \"mw-dialog__header-divider\", \"aria-hidden\": \"true\" }),\n ]\n : null,\n h(\"div\", { class: \"mw-dialog__content\" }, [\n hasDescription.value\n ? h(\n \"p\",\n { class: \"mw-dialog__description\", id: descriptionId.value },\n toChildren(descriptionContent.value),\n )\n : null,\n ...(slots.default?.() ?? []),\n ]),\n hasFooter.value\n ? [\n h(\"div\", { class: \"mw-dialog__footer-divider\", \"aria-hidden\": \"true\" }),\n h(\"footer\", { class: \"mw-dialog__footer\" }, toChildren(footerContent.value)),\n ]\n : null,\n ],\n )\n },\n {\n name: \"MarwesDialog\",\n inheritAttrs: false,\n props: [...dialogPropKeys],\n },\n)\n","import type { VNodeChild } from \"vue\"\nimport { Teleport, computed, defineComponent, h, nextTick, ref, watch } from \"vue\"\nimport { Dialog, type DialogProps } from \"./dialog\"\n\nfunction getFocusableElements(container: HTMLElement | null): HTMLElement[] {\n if (!container) {\n return []\n }\n\n return Array.from(\n container.querySelectorAll<HTMLElement>(\n [\n \"button:not([disabled])\",\n \"[href]\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n ].join(\",\"),\n ),\n ).filter(\n (element) => !element.hasAttribute(\"hidden\") && element.getAttribute(\"aria-hidden\") !== \"true\",\n )\n}\n\nfunction focusFirstElement(container: HTMLElement | null): void {\n const focusableElements = getFocusableElements(container)\n const firstFocusable = focusableElements[0]\n\n if (firstFocusable) {\n firstFocusable.focus()\n return\n }\n\n container?.focus()\n}\n\nexport type DialogFooterControls = {\n close: () => void\n}\n\nexport type DialogModalProps = Omit<DialogProps, \"footer\" | \"onClose\"> & {\n open?: boolean\n defaultOpen?: boolean\n closeOnEscape?: boolean\n closeOnScrimClick?: boolean\n restoreFocus?: boolean\n portalTarget?: HTMLElement | string | null\n overlayClassName?: string\n footer?: VNodeChild | ((controls: DialogFooterControls) => VNodeChild)\n}\n\nconst dialogModalPropKeys = [\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n \"footer\",\n] as const\n\nexport const DialogModal = defineComponent(\n (props: DialogModalProps, { slots, emit }) => {\n const internalOpen = ref(props.defaultOpen ?? false)\n const overlayRef = ref<HTMLDivElement | null>(null)\n const lastFocusedElementRef = ref<HTMLElement | null>(null)\n const isControlled = computed(() => props.open !== undefined)\n const resolvedOpen = computed(\n () => (isControlled.value ? props.open : internalOpen.value) ?? false,\n )\n const closeOnEscape = computed(() => props.closeOnEscape ?? true)\n const closeOnScrimClick = computed(() => props.closeOnScrimClick ?? true)\n const restoreFocus = computed(() => props.restoreFocus ?? true)\n\n const close = (): void => {\n if (!resolvedOpen.value) {\n return\n }\n\n if (!isControlled.value) {\n internalOpen.value = false\n }\n\n emit(\"update:open\", false)\n emit(\"open-change\", false)\n }\n\n watch(\n resolvedOpen,\n async (nextOpen, _previousOpen, onCleanup) => {\n if (!nextOpen || typeof document === \"undefined\") {\n return\n }\n\n const previousOverflow = document.body.style.overflow\n lastFocusedElementRef.value =\n document.activeElement instanceof HTMLElement ? document.activeElement : null\n document.body.style.overflow = \"hidden\"\n const handleDocumentKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && closeOnEscape.value) {\n event.preventDefault()\n close()\n }\n }\n\n document.addEventListener(\"keydown\", handleDocumentKeydown)\n\n await nextTick()\n const dialogElement = overlayRef.value?.querySelector<HTMLElement>(\".mw-dialog\") ?? null\n focusFirstElement(dialogElement)\n\n onCleanup(() => {\n document.removeEventListener(\"keydown\", handleDocumentKeydown)\n document.body.style.overflow = previousOverflow\n\n if (restoreFocus.value) {\n lastFocusedElementRef.value?.focus()\n }\n })\n },\n { immediate: true },\n )\n\n const footerContent = computed<VNodeChild | undefined>(() => {\n if (slots.footer) {\n return slots.footer({ close })\n }\n\n if (typeof props.footer === \"function\") {\n return props.footer({ close })\n }\n\n return props.footer\n })\n\n const handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\" && closeOnEscape.value) {\n event.preventDefault()\n event.stopPropagation()\n close()\n return\n }\n\n if (event.key !== \"Tab\") {\n return\n }\n\n const dialogElement = overlayRef.value?.querySelector<HTMLElement>(\".mw-dialog\") ?? null\n const focusableElements = getFocusableElements(dialogElement)\n\n if (focusableElements.length === 0) {\n event.preventDefault()\n dialogElement?.focus()\n return\n }\n\n const firstFocusable = focusableElements[0]\n const lastFocusable = focusableElements[focusableElements.length - 1]\n const activeElement = document.activeElement\n\n if (event.shiftKey && activeElement === firstFocusable) {\n event.preventDefault()\n lastFocusable?.focus()\n } else if (!event.shiftKey && activeElement === lastFocusable) {\n event.preventDefault()\n firstFocusable?.focus()\n }\n }\n\n return () => {\n if (!resolvedOpen.value) {\n return null\n }\n\n const modalMarkup = h(\n \"div\",\n {\n ref: overlayRef,\n class: [\"mw-dialog-modal\", props.overlayClassName].filter(Boolean).join(\" \"),\n onClick: (event: MouseEvent) => {\n if (event.target === event.currentTarget && closeOnScrimClick.value) {\n close()\n }\n },\n onKeydown: handleKeydown,\n },\n [\n h(\"div\", {\n class: \"mw-dialog-modal__scrim\",\n \"aria-hidden\": \"true\",\n onClick: () => {\n if (closeOnScrimClick.value) {\n close()\n }\n },\n }),\n h(\"div\", { class: \"mw-dialog-modal__surface\" }, [\n h(\n Dialog as unknown as string,\n {\n ...props,\n footer: footerContent.value,\n modal: true,\n onClose: close,\n },\n slots.default ? { default: slots.default } : undefined,\n ),\n ]),\n ],\n )\n\n if (props.portalTarget === null) {\n return modalMarkup\n }\n\n return h(\n Teleport,\n { to: props.portalTarget ?? \"body\" },\n {\n default: () => modalMarkup,\n },\n )\n }\n },\n {\n name: \"MarwesDialogModal\",\n props: [...dialogModalPropKeys],\n emits: [\"update:open\", \"open-change\"],\n },\n)\n","import { createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport type { VNodeChild } from \"vue\"\nimport { defineComponent, h } from \"vue\"\nimport { CancelButton, ConfirmButton, DestructiveButton } from \"../button\"\nimport { DialogModal, type DialogModalProps } from \"./dialog-modal\"\n\nexport type ConfirmDialogProps = Omit<DialogModalProps, \"footer\"> & {\n confirmLabel?: VNodeChild\n cancelLabel?: VNodeChild\n onConfirm?: () => void\n onCancel?: () => void\n}\n\nexport const ConfirmDialog = defineComponent({\n name: \"MarwesConfirmDialog\",\n inheritAttrs: false,\n props: [\n \"confirmLabel\",\n \"cancelLabel\",\n \"onConfirm\",\n \"onCancel\",\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n ],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as ConfirmDialogProps\n\n return () => {\n const { confirmLabel, cancelLabel, onConfirm, onCancel, ...dialogModalProps } = props\n\n return h(\n DialogModal,\n {\n ...attrs,\n ...dialogModalProps,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"confirm-dialog\"),\n },\n footer: ({ close }: { close: () => void }) => [\n h(\n CancelButton,\n {\n onClick: () => {\n onCancel?.()\n close()\n },\n },\n { default: () => (cancelLabel !== undefined ? [cancelLabel] : [\"Cancel\"]) },\n ),\n h(\n ConfirmButton,\n {\n onClick: () => {\n onConfirm?.()\n close()\n },\n },\n { default: () => (confirmLabel !== undefined ? [confirmLabel] : [\"Confirm\"]) },\n ),\n ],\n },\n slots.default ? { default: slots.default } : undefined,\n )\n }\n },\n})\n\nexport type DestructiveDialogProps = Omit<DialogModalProps, \"footer\"> & {\n confirmLabel?: VNodeChild\n cancelLabel?: VNodeChild\n onConfirm?: () => void\n onCancel?: () => void\n}\n\nexport const DestructiveDialog = defineComponent({\n name: \"MarwesDestructiveDialog\",\n inheritAttrs: false,\n props: [\n \"confirmLabel\",\n \"cancelLabel\",\n \"onConfirm\",\n \"onCancel\",\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n ],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as DestructiveDialogProps\n\n return () => {\n const { confirmLabel, cancelLabel, onConfirm, onCancel, ...dialogModalProps } = props\n\n return h(\n DialogModal,\n {\n ...attrs,\n ...dialogModalProps,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"destructive-dialog\"),\n },\n footer: ({ close }: { close: () => void }) => [\n h(\n CancelButton,\n {\n onClick: () => {\n onCancel?.()\n close()\n },\n },\n { default: () => (cancelLabel !== undefined ? [cancelLabel] : [\"Cancel\"]) },\n ),\n h(\n DestructiveButton,\n {\n onClick: () => {\n onConfirm?.()\n close()\n },\n },\n { default: () => (confirmLabel !== undefined ? [confirmLabel] : [\"Delete\"]) },\n ),\n ],\n },\n slots.default ? { default: slots.default } : undefined,\n )\n }\n },\n})\n\nexport type InfoDialogProps = Omit<DialogModalProps, \"footer\"> & {\n acknowledgeLabel?: VNodeChild\n onAcknowledge?: () => void\n}\n\nexport const InfoDialog = defineComponent({\n name: \"MarwesInfoDialog\",\n inheritAttrs: false,\n props: [\n \"acknowledgeLabel\",\n \"onAcknowledge\",\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n ],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as InfoDialogProps\n\n return () => {\n const { acknowledgeLabel, onAcknowledge, ...dialogModalProps } = props\n\n return h(\n DialogModal,\n {\n ...attrs,\n ...dialogModalProps,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"info-dialog\"),\n },\n footer: ({ close }: { close: () => void }) =>\n h(\n ConfirmButton,\n {\n onClick: () => {\n onAcknowledge?.()\n close()\n },\n },\n { default: () => (acknowledgeLabel !== undefined ? [acknowledgeLabel] : [\"Okay\"]) },\n ),\n },\n slots.default ? { default: slots.default } : undefined,\n )\n }\n },\n})\n"]}
1
+ {"version":3,"sources":["../src/provider/marwes-context.ts","../src/provider/runtime-theme.ts","../src/provider/theme-mode-runtime.ts","../src/provider/marwes-provider.ts","../src/provider/use-theme.ts","../src/provider/use-theme-mode.ts","../src/internal/render-utils.ts","../src/components/icon/icon.ts","../src/components/spinner/spinner.ts","../src/components/spinner/variants.ts","../src/components/button/button.ts","../src/components/button/variants.ts","../src/hooks/use-renderkit-debug.ts","../src/components/input/input.ts","../src/components/input/select-arrow-icon.ts","../src/components/input/select.ts","../src/components/input/textarea.ts","../src/components/input/rich-text.ts","../src/internal/id.ts","../src/components/paragraph/paragraph.ts","../src/components/input/input-field.ts","../src/components/input/input-otp.ts","../src/components/input/select-field.ts","../src/components/input/textarea-field.ts","../src/components/input/rich-text-field.ts","../src/components/input/field-variants.ts","../src/components/avatar/avatar.ts","../src/components/avatar/avatar-badge.ts","../src/components/avatar/avatar-group.ts","../src/components/avatar/variants.ts","../src/components/checkbox/checkbox.ts","../src/components/checkbox/checkbox-field.ts","../src/components/checkbox/checkbox-group-field.ts","../src/components/divider/divider.ts","../src/components/skeleton/skeleton.ts","../src/components/spacing/spacing.ts","../src/components/heading/create-heading.ts","../src/components/heading/heading-variants.ts","../src/components/stat-tile/stat-tile.ts","../src/components/date-picker/date-picker.ts","../src/components/card/card.ts","../src/components/card/variants.ts","../src/components/toast/toast.ts","../src/components/toast/variants.ts","../src/components/toast/toast-container.ts","../src/components/toast/toast-manager-types.ts","../src/components/toast/toast-provider.ts","../src/components/tooltip/tooltip.ts","../src/components/tooltip/tooltip-group.ts","../src/components/accordion/accordion.ts","../src/components/accordion/accordion-field.ts","../src/components/accordion/variants.ts","../src/components/radio/radio.ts","../src/components/radio/radio-group-field.ts","../src/components/radio/variants.ts","../src/components/badge/badge.ts","../src/components/badge/badge-group.ts","../src/components/badge/variants.ts","../src/components/switch/switch.ts","../src/components/switch/switch-field.ts","../src/components/switch/variants.ts","../src/components/slider/slider.ts","../src/components/slider/slider-field.ts","../src/components/slider/variants.ts","../src/components/tab/tab.ts","../src/components/tab/tab-group.ts","../src/components/tab/variants.ts","../src/components/dialog/dialog.ts","../src/components/dialog/dialog-modal.ts","../src/components/dialog/variants.ts"],"names":["MwThemeMode","inject","computed","ThemeMode","defineComponent","h","useAttrs","spinnerPropKeys","buttonPropKeys","watch","ref","onMounted","hasTextContent","buildInputFieldA11yIds","getInitialSelectValue","resolveSelectMode","onBeforeUnmount","IconName","createAvatarRecipe","avatarPropKeys","avatarBadgePropKeys","avatarGroupPropKeys","createPurposeSemanticAttributes","cardPropKeys","toastPropKeys","provide","toChildren","accordionFieldPropKeys","radioGroupFieldPropKeys","badgePropKeys","switchFieldPropKeys","sliderFieldPropKeys","tabGroupPropKeys","hasContent"],"mappings":"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","file":"index.js","sourcesContent":["import type { ResolvedTheme, ThemeMode, ThemePreference } from \"@marwes-ui/core\"\nimport type { ComputedRef, InjectionKey } from \"vue\"\n\nexport type MarwesContextValue = {\n theme: ComputedRef<ResolvedTheme>\n mode: ComputedRef<ThemeMode>\n preference: ComputedRef<ThemePreference>\n systemMode: ComputedRef<ThemeMode>\n setMode: (mode: ThemeMode) => void\n setPreference: (preference: ThemePreference) => void\n toggleMode: () => void\n}\n\nexport const marwesContextKey: InjectionKey<MarwesContextValue> = Symbol(\"MarwesContext\")\n","import type { FontLoadingConfig, ResolvedTheme } from \"@marwes-ui/core\"\nimport {\n buildGoogleFontsUrl,\n extractFontFamilyName,\n extractUsedWeights,\n shouldLoadGoogleFont,\n themeToCSSVars,\n} from \"@marwes-ui/core\"\n\nconst loadedFonts = new Set<string>()\nlet preconnected = false\n\nexport function themeToRootStyle(theme: ResolvedTheme): Record<string, string> {\n return {\n ...themeToCSSVars(theme),\n backgroundColor: theme.color.background,\n color: theme.color.text,\n }\n}\n\nexport function applyThemeToElement(element: HTMLElement, theme: ResolvedTheme): void {\n element.setAttribute(\"data-marwes-theme\", \"true\")\n element.setAttribute(\"data-marwes-mode\", theme.mode)\n\n for (const [property, value] of Object.entries(themeToRootStyle(theme))) {\n if (property === \"backgroundColor\") {\n element.style.backgroundColor = value\n continue\n }\n\n element.style.setProperty(property, value)\n }\n}\n\nfunction ensureFontPreconnect(): void {\n if (preconnected || typeof document === \"undefined\") return\n\n preconnected = true\n\n for (const href of [\"https://fonts.googleapis.com\", \"https://fonts.gstatic.com\"]) {\n const linkElement = document.createElement(\"link\")\n linkElement.rel = \"preconnect\"\n linkElement.href = href\n\n if (href.includes(\"gstatic\")) {\n linkElement.crossOrigin = \"anonymous\"\n }\n\n document.head.appendChild(linkElement)\n }\n}\n\nfunction loadGoogleFontToDocument(family: string, weights: number[]): void {\n if (typeof document === \"undefined\") return\n\n const cacheKey = `${family}:${weights.join(\",\")}`\n if (loadedFonts.has(cacheKey)) return\n\n loadedFonts.add(cacheKey)\n ensureFontPreconnect()\n\n const linkElement = document.createElement(\"link\")\n linkElement.rel = \"stylesheet\"\n linkElement.href = buildGoogleFontsUrl(family, weights)\n linkElement.dataset.marwesFont = family\n document.head.appendChild(linkElement)\n}\n\nexport function loadThemeFonts(theme: ResolvedTheme, config: FontLoadingConfig = \"auto\"): void {\n const weights = extractUsedWeights(theme.typography)\n const fontStacks = [theme.font.primary, theme.font.secondary]\n\n for (const fontStack of fontStacks) {\n const familyName = extractFontFamilyName(fontStack)\n\n if (familyName && shouldLoadGoogleFont(familyName, config)) {\n loadGoogleFontToDocument(familyName, weights)\n }\n }\n}\n\nexport function resetThemeRuntimeState(): void {\n loadedFonts.clear()\n preconnected = false\n}\n","import { ThemeMode, isThemePreference } from \"@marwes-ui/core\"\nimport type { ThemePreference } from \"@marwes-ui/core\"\n\nconst mediaQuery = \"(prefers-color-scheme: dark)\"\n\nexport type ThemeTarget = \"provider\" | \"html\" | \"body\"\nexport type ThemeAttribute = \"class\" | \"data-theme\" | \"data-mode\"\n\nexport function getSystemThemeMode(): ThemeMode {\n if (typeof window === \"undefined\") return ThemeMode.light\n return window.matchMedia?.(mediaQuery).matches ? ThemeMode.dark : ThemeMode.light\n}\n\nexport function subscribeToSystemThemeMode(onChange: (mode: ThemeMode) => void): () => void {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {}\n\n const media = window.matchMedia(mediaQuery)\n const listener = (event: MediaQueryListEvent) => {\n onChange(event.matches ? ThemeMode.dark : ThemeMode.light)\n }\n\n if (media.addEventListener) {\n media.addEventListener(\"change\", listener)\n } else {\n media.addListener?.(listener)\n }\n\n return () => {\n if (media.removeEventListener) {\n media.removeEventListener(\"change\", listener)\n } else {\n media.removeListener?.(listener)\n }\n }\n}\n\nexport function readStoredThemePreference(storageKey: string | false): ThemePreference | undefined {\n if (!storageKey || typeof window === \"undefined\") return undefined\n\n try {\n const value = window.localStorage.getItem(storageKey)\n return isThemePreference(value) ? value : undefined\n } catch {\n return undefined\n }\n}\n\nexport function writeStoredThemePreference(\n storageKey: string | false,\n preference: ThemePreference,\n): void {\n if (!storageKey || typeof window === \"undefined\") return\n\n try {\n window.localStorage.setItem(storageKey, preference)\n } catch {\n // Ignore unavailable storage.\n }\n}\n\nexport function applyModeAttribute({\n target,\n providerElement,\n mode,\n attribute,\n}: {\n target: ThemeTarget\n providerElement: HTMLElement | null\n mode: ThemeMode\n attribute: ThemeAttribute\n}): void {\n const element = getTargetElement(target, providerElement)\n if (!element) return\n\n if (attribute === \"class\") {\n const oppositeMode = mode === ThemeMode.dark ? ThemeMode.light : ThemeMode.dark\n element.classList.remove(oppositeMode)\n element.classList.add(mode)\n return\n }\n\n element.setAttribute(attribute, mode)\n}\n\nexport function withoutModeTransitions(callback: () => void): void {\n if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n callback()\n return\n }\n\n const style = document.createElement(\"style\")\n style.dataset.marwesDisableTransitions = \"true\"\n style.textContent = \"* { transition: none !important; }\"\n document.head.appendChild(style)\n\n callback()\n window.getComputedStyle(document.body)\n window.requestAnimationFrame(() => {\n style.remove()\n })\n}\n\nfunction getTargetElement(\n target: ThemeTarget,\n providerElement: HTMLElement | null,\n): HTMLElement | null {\n if (target === \"provider\") return providerElement\n if (typeof document === \"undefined\") return null\n return target === \"html\" ? document.documentElement : document.body\n}\n","import type {\n FontLoadingConfig,\n ResolvedTheme,\n ThemeInput,\n ThemeMode,\n ThemePreference,\n ThemeVariableStrategy,\n} from \"@marwes-ui/core\"\nimport {\n ThemeMode as MwThemeMode,\n nextThemeMode,\n resolveThemeInput,\n resolveThemePreference,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onMounted, onUnmounted, provide, ref, watch } from \"vue\"\nimport { marwesContextKey } from \"./marwes-context\"\nimport { applyThemeToElement, loadThemeFonts, themeToRootStyle } from \"./runtime-theme\"\nimport {\n applyModeAttribute,\n getSystemThemeMode,\n readStoredThemePreference,\n subscribeToSystemThemeMode,\n withoutModeTransitions,\n writeStoredThemePreference,\n} from \"./theme-mode-runtime\"\nimport type { ThemeAttribute, ThemeTarget } from \"./theme-mode-runtime\"\n\nexport type MarwesProviderProps = {\n theme?: ThemeInput\n defaultPreference?: ThemePreference\n preference?: ThemePreference\n defaultMode?: ThemeMode\n mode?: ThemeMode\n fontLoading?: FontLoadingConfig\n onPreferenceChange?: (preference: ThemePreference) => void\n onModeChange?: (mode: ThemeMode) => void\n storageKey?: string | false\n enableSystem?: boolean\n target?: ThemeTarget\n attribute?: ThemeAttribute\n disableTransitionOnChange?: boolean\n variableStrategy?: ThemeVariableStrategy\n}\n\nexport const MarwesProvider = defineComponent({\n name: \"MarwesProvider\",\n props: [\n \"theme\",\n \"defaultPreference\",\n \"preference\",\n \"defaultMode\",\n \"mode\",\n \"fontLoading\",\n \"onPreferenceChange\",\n \"onModeChange\",\n \"storageKey\",\n \"enableSystem\",\n \"target\",\n \"attribute\",\n \"disableTransitionOnChange\",\n \"variableStrategy\",\n ],\n setup(rawProps, { slots }) {\n const props = rawProps as unknown as MarwesProviderProps\n\n const internalPreference = ref<ThemePreference>(\n props.defaultPreference ?? props.defaultMode ?? MwThemeMode.light,\n )\n const systemMode = ref<ThemeMode>(\n props.enableSystem === false ? MwThemeMode.light : getSystemThemeMode(),\n )\n const enableSystem = computed(() => props.enableSystem !== false)\n const storageKey = computed(() => props.storageKey ?? false)\n const target = computed<ThemeTarget>(() => props.target ?? \"provider\")\n const attribute = computed<ThemeAttribute>(() => props.attribute ?? \"class\")\n const disableTransitionOnChange = computed(() => props.disableTransitionOnChange === true)\n const variableStrategy = computed<ThemeVariableStrategy>(\n () => props.variableStrategy ?? \"inline\",\n )\n const isPreferenceControlled = computed(\n () =>\n props.preference !== undefined ||\n props.mode !== undefined ||\n props.theme?.mode !== undefined,\n )\n const activePreference = computed<ThemePreference>(\n () => props.preference ?? props.mode ?? props.theme?.mode ?? internalPreference.value,\n )\n const activeMode = computed<ThemeMode>(() =>\n resolveThemePreference(activePreference.value, systemMode.value),\n )\n const resolved = computed<ResolvedTheme>(() =>\n resolveThemeInput({ ...(props.theme ?? {}), mode: activeMode.value }),\n )\n\n const rootRef = ref<HTMLElement | null>(null)\n\n function setPreference(nextPreference: ThemePreference) {\n if (!isPreferenceControlled.value) {\n internalPreference.value = nextPreference\n }\n\n writeStoredThemePreference(storageKey.value, nextPreference)\n props.onPreferenceChange?.(nextPreference)\n }\n\n function setMode(nextMode: ThemeMode) {\n setPreference(nextMode)\n props.onModeChange?.(nextMode)\n }\n\n function toggleMode() {\n setMode(nextThemeMode(activeMode.value))\n }\n\n function syncThemeToRuntime() {\n if (rootRef.value && variableStrategy.value === \"inline\") {\n applyThemeToElement(rootRef.value, resolved.value)\n }\n\n loadThemeFonts(resolved.value, props.fontLoading ?? \"auto\")\n }\n\n function syncTargetModeAttribute() {\n if (target.value === \"provider\") return\n\n const apply = () => {\n applyModeAttribute({\n target: target.value,\n providerElement: rootRef.value,\n mode: activeMode.value,\n attribute: attribute.value,\n })\n }\n\n if (disableTransitionOnChange.value) {\n withoutModeTransitions(apply)\n return\n }\n\n apply()\n }\n\n let unsubscribeSystemThemeMode: (() => void) | undefined\n\n function syncSystemThemeSubscription() {\n unsubscribeSystemThemeMode?.()\n unsubscribeSystemThemeMode = undefined\n\n if (!enableSystem.value) {\n systemMode.value = MwThemeMode.light\n return\n }\n\n systemMode.value = getSystemThemeMode()\n\n if (activePreference.value === \"system\") {\n unsubscribeSystemThemeMode = subscribeToSystemThemeMode((nextMode) => {\n systemMode.value = nextMode\n })\n }\n }\n\n onMounted(() => {\n const storedPreference = readStoredThemePreference(storageKey.value)\n if (storedPreference !== undefined && !isPreferenceControlled.value) {\n internalPreference.value = storedPreference\n }\n\n syncSystemThemeSubscription()\n syncThemeToRuntime()\n syncTargetModeAttribute()\n })\n onUnmounted(() => {\n unsubscribeSystemThemeMode?.()\n })\n watch([resolved, variableStrategy], syncThemeToRuntime)\n watch([activeMode, target, attribute, disableTransitionOnChange], syncTargetModeAttribute)\n watch([activePreference, enableSystem], syncSystemThemeSubscription)\n\n provide(marwesContextKey, {\n theme: resolved,\n mode: activeMode,\n preference: activePreference,\n systemMode: computed(() => systemMode.value),\n setMode,\n setPreference,\n toggleMode,\n })\n\n return () =>\n h(\n \"div\",\n {\n ref: rootRef,\n class: `mw-theme--${resolved.value.mode}`,\n \"data-marwes-theme\": \"true\",\n \"data-marwes-mode\": resolved.value.mode,\n style: variableStrategy.value === \"inline\" ? themeToRootStyle(resolved.value) : undefined,\n },\n slots.default?.(),\n )\n },\n})\n","import type { ResolvedTheme } from \"@marwes-ui/core\"\nimport { inject } from \"vue\"\nimport { marwesContextKey } from \"./marwes-context\"\n\nexport function useTheme(): ResolvedTheme {\n const context = inject(marwesContextKey, null)\n\n if (!context) {\n throw new Error(\"MarwesProvider is missing. Wrap your app in <MarwesProvider />.\")\n }\n\n return context.theme.value\n}\n","import { ThemeMode } from \"@marwes-ui/core\"\nimport type { ThemePreference } from \"@marwes-ui/core\"\nimport type { ComputedRef } from \"vue\"\nimport { computed, inject } from \"vue\"\nimport { marwesContextKey } from \"./marwes-context\"\n\nexport type ThemeModeContextValue = {\n mode: ComputedRef<ThemeMode>\n preference: ComputedRef<ThemePreference>\n systemMode: ComputedRef<ThemeMode>\n setMode: (mode: ThemeMode) => void\n setPreference: (preference: ThemePreference) => void\n toggleMode: () => void\n isDark: ComputedRef<boolean>\n isLight: ComputedRef<boolean>\n isSystem: ComputedRef<boolean>\n}\n\nexport function useThemeMode(): ThemeModeContextValue {\n const context = inject(marwesContextKey, null)\n\n if (!context) {\n throw new Error(\"MarwesProvider is missing. Wrap your app in <MarwesProvider />.\")\n }\n\n return {\n mode: context.mode,\n preference: context.preference,\n systemMode: context.systemMode,\n setMode: context.setMode,\n setPreference: context.setPreference,\n toggleMode: context.toggleMode,\n isDark: computed(() => context.mode.value === ThemeMode.dark),\n isLight: computed(() => context.mode.value === ThemeMode.light),\n isSystem: computed(() => context.preference.value === \"system\"),\n }\n}\n","import type { CSSProperties, VNodeChild } from \"vue\"\n\nexport type StyleWithVars = CSSProperties & Record<`--mw-${string}`, string>\n\nexport function mergeClassNames(...parts: Array<unknown>): string {\n return parts.filter(Boolean).join(\" \")\n}\n\nexport function mergeStyles(...stylesInput: Array<unknown>): CSSProperties | undefined {\n const styles = stylesInput.filter(Boolean)\n if (styles.length === 0) {\n return undefined\n }\n\n return Object.assign({}, ...styles) as CSSProperties\n}\n\nexport function omitAttrs(\n attrs: Record<string, unknown>,\n omittedKeys: readonly string[],\n): Record<string, unknown> {\n const nextAttrs: Record<string, unknown> = {}\n\n for (const [attrName, attrValue] of Object.entries(attrs)) {\n if (omittedKeys.includes(attrName)) {\n continue\n }\n nextAttrs[attrName] = attrValue\n }\n\n return nextAttrs\n}\n\nexport function getDefaultSlotChildren(slots: { default?: () => VNodeChild[] }):\n | VNodeChild[]\n | undefined {\n return slots.default?.()\n}\n","import {\n type IconSize,\n type IconStrokeWidth,\n iconRegistry,\n resolveIconA11y,\n resolveIconSize,\n resolveIconStrokeWidth,\n} from \"@marwes-ui/core\"\nimport { defineComponent, h, useAttrs } from \"vue\"\n\ntype IconName = keyof typeof iconRegistry\n\nexport type IconProps = {\n name: IconName\n size?: IconSize | number\n strokeWidth?: IconStrokeWidth | number\n className?: string\n ariaLabel?: string\n decorative?: boolean\n}\n\nconst iconPropKeys = [\n \"name\",\n \"size\",\n \"strokeWidth\",\n \"className\",\n \"ariaLabel\",\n \"decorative\",\n] as const\n\nexport const Icon = defineComponent(\n (props: IconProps) => {\n const attrs = useAttrs()\n\n return () => {\n const px = resolveIconSize(props.size ?? \"sm\")\n const strokeWidth = resolveIconStrokeWidth(props.strokeWidth ?? \"md\")\n const iconDefinition = iconRegistry[props.name]\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n const ariaLabel = props.ariaLabel ?? ariaLabelFromAttrs\n const a11y = resolveIconA11y({\n ...(ariaLabel !== undefined ? { ariaLabel } : {}),\n ...(props.decorative !== undefined ? { decorative: props.decorative } : {}),\n })\n\n return h(\n \"svg\",\n {\n ...attrs,\n width: px,\n height: px,\n viewBox: iconDefinition.viewBox,\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": strokeWidth,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n class: [props.className, attrs.class],\n \"aria-hidden\": a11y.ariaHidden ? \"true\" : undefined,\n \"aria-label\": a11y.ariaLabel,\n role: a11y.role,\n focusable: \"false\",\n },\n iconDefinition.nodes.map((iconNode) => h(iconNode.tag, iconNode.attrs)),\n )\n }\n },\n {\n name: \"MarwesIcon\",\n inheritAttrs: false,\n props: [...iconPropKeys],\n },\n)\n","import { type SpinnerOptions, type SpinnerSvgNode, createSpinnerRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SpinnerProps = SpinnerOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst spinnerPropKeys = [\n \"variant\",\n \"size\",\n \"decorative\",\n \"ariaLabel\",\n \"id\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nfunction renderSpinnerSvgNode(spinnerSvgNode: SpinnerSvgNode, nodeIndex: number) {\n return h(spinnerSvgNode.tag, {\n key: `${spinnerSvgNode.tag}-${nodeIndex}`,\n ...spinnerSvgNode.attrs,\n })\n}\n\nexport const Spinner = defineComponent(\n (props: SpinnerProps) => {\n const attrs = useAttrs()\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const renderKit = computed(() =>\n createSpinnerRecipe({\n ...(props.variant !== undefined ? { variant: props.variant } : {}),\n ...(props.size !== undefined ? { size: props.size } : {}),\n ...(props.decorative !== undefined ? { decorative: props.decorative } : {}),\n ...(props.id !== undefined ? { id: props.id } : {}),\n ...(props.ariaLabel !== undefined\n ? { ariaLabel: props.ariaLabel }\n : ariaLabelFromAttrs !== undefined\n ? { ariaLabel: ariaLabelFromAttrs }\n : {}),\n }),\n )\n\n return () => {\n const spinnerRenderKit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\n \"class\",\n \"style\",\n \"aria-label\",\n ])\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...spinnerRenderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n class: mergeClassNames(spinnerRenderKit.className, props.className, attrs.class),\n style: mergeStyles(spinnerRenderKit.vars, attrs.style),\n role: spinnerRenderKit.a11y.role,\n id: spinnerRenderKit.a11y.id,\n \"aria-hidden\": spinnerRenderKit.a11y.ariaHidden ? \"true\" : undefined,\n \"aria-label\": spinnerRenderKit.a11y.ariaLabel,\n \"aria-live\": spinnerRenderKit.a11y.ariaLive,\n },\n [\n h(\n \"svg\",\n {\n class: \"mw-spinner__svg\",\n viewBox: spinnerRenderKit.svg.viewBox,\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n },\n spinnerRenderKit.svg.nodes.map(renderSpinnerSvgNode),\n ),\n ],\n )\n }\n },\n {\n name: \"MarwesSpinner\",\n inheritAttrs: false,\n props: [...spinnerPropKeys],\n },\n)\n","import type { CssVars } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { mergeStyles } from \"../../internal/render-utils\"\nimport { Spinner, type SpinnerProps } from \"./spinner\"\n\nconst spinnerPropKeys = [\n \"variant\",\n \"size\",\n \"decorative\",\n \"ariaLabel\",\n \"id\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport type ButtonSpinnerProps = SpinnerProps & {\n inverted?: boolean\n}\n\nexport const ButtonSpinner = defineComponent({\n name: \"MarwesButtonSpinner\",\n inheritAttrs: false,\n props: [...spinnerPropKeys, \"inverted\"],\n setup(rawProps, { attrs }) {\n return () => {\n const props = rawProps as unknown as ButtonSpinnerProps\n const spinnerStyle = mergeStyles(\n {\n \"--mw-spinner-track-color\": props.inverted\n ? \"color-mix(in srgb, currentColor 80%, transparent)\"\n : \"color-mix(in srgb, currentColor 35%, transparent)\",\n \"--mw-spinner-indicator-color\": \"currentColor\",\n } as CssVars,\n attrs.style,\n )\n\n return h(Spinner, {\n ...attrs,\n ...props,\n variant: props.variant ?? \"classic\",\n size: props.size ?? \"xs\",\n decorative: props.decorative ?? true,\n style: spinnerStyle,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"button-loading\",\n \"data-context\": \"button-loading\",\n },\n })\n }\n },\n})\n\nexport type EmptyStateSpinnerProps = SpinnerProps\n\nexport const EmptyStateSpinner = defineComponent({\n name: \"MarwesEmptyStateSpinner\",\n inheritAttrs: false,\n props: [...spinnerPropKeys],\n setup(rawProps, { attrs }) {\n return () => {\n const props = rawProps as unknown as EmptyStateSpinnerProps\n\n return h(Spinner, {\n ...attrs,\n ...props,\n variant: props.variant ?? \"dots-round\",\n size: props.size ?? \"lg\",\n decorative: props.decorative ?? true,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"empty-state\",\n \"data-context\": \"empty-state\",\n },\n })\n }\n },\n})\n","import type { ButtonOptions, ButtonVariant, CssVars } from \"@marwes-ui/core\"\nimport { createButtonRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport {\n getDefaultSlotChildren,\n mergeClassNames,\n mergeStyles,\n omitAttrs,\n} from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { ButtonSpinner } from \"../spinner\"\n\nfunction isFilledButtonVariant(variant: ButtonVariant): boolean {\n return variant === \"primary\" || variant === \"success\"\n}\n\nexport type ButtonProps = ButtonOptions & {\n onClick?: (event: MouseEvent) => void\n className?: string\n}\n\nconst buttonPropKeys = [\n \"as\",\n \"href\",\n \"size\",\n \"variant\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"action\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nexport const Button = defineComponent(\n (props: ButtonProps, { slots, emit }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => createButtonRecipe(props))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n const slotChildren = getDefaultSlotChildren(slots)\n const content = []\n const resolvedVariant = (props.variant ?? \"primary\") as ButtonVariant\n const resolvedLoading = renderKit.loading\n\n if (resolvedLoading.isLoading) {\n content.push(\n h(ButtonSpinner, {\n variant: resolvedLoading.spinnerVariant,\n inverted: isFilledButtonVariant(resolvedVariant),\n }),\n )\n } else if (props.iconLeft) {\n content.push(\n h(Icon, { name: props.iconLeft, size: \"xs\", strokeWidth: \"sm\", decorative: true }),\n )\n }\n\n if (resolvedLoading.isLoading && resolvedLoading.loadingLabel !== undefined) {\n content.push(resolvedLoading.loadingLabel)\n } else if (slotChildren) {\n content.push(...slotChildren)\n }\n\n if (!resolvedLoading.isLoading && props.iconRight) {\n content.push(\n h(Icon, { name: props.iconRight, size: \"xs\", strokeWidth: \"sm\", decorative: true }),\n )\n }\n\n if (renderKit.tag === \"button\") {\n return h(\n \"button\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n type: renderKit.a11y.type,\n disabled: renderKit.a11y.disabled,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-busy\": renderKit.a11y.ariaBusy,\n \"aria-disabled\": renderKit.a11y.ariaDisabled,\n \"aria-pressed\": renderKit.a11y.ariaPressed,\n \"aria-expanded\": renderKit.a11y.ariaExpanded,\n \"aria-controls\": renderKit.a11y.ariaControls,\n title: renderKit.a11y.title,\n class: className,\n style,\n onClick: (event: MouseEvent) => {\n emit(\"click\", event)\n },\n },\n content,\n )\n }\n\n return h(\n \"a\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n href: renderKit.a11y.href,\n role: renderKit.a11y.role,\n tabindex: renderKit.a11y.tabIndex,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-busy\": renderKit.a11y.ariaBusy,\n \"aria-disabled\": renderKit.a11y.ariaDisabled,\n \"aria-pressed\": renderKit.a11y.ariaPressed,\n \"aria-expanded\": renderKit.a11y.ariaExpanded,\n \"aria-controls\": renderKit.a11y.ariaControls,\n title: renderKit.a11y.title,\n class: className,\n style,\n onClick: (event: MouseEvent) => {\n if (renderKit.blockClick) {\n event.preventDefault()\n return\n }\n emit(\"click\", event)\n },\n },\n content,\n )\n }\n },\n {\n name: \"MarwesButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n emits: [\"click\"],\n },\n)\n","import {\n ButtonAction,\n ButtonVariant,\n IconName,\n createPurposeSemanticAttributes,\n} from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { omitAttrs } from \"../../internal/render-utils\"\nimport { Button, type ButtonProps } from \"./button\"\n\ntype PurposeButtonForbiddenProp = \"variant\" | \"action\" | \"as\"\n\nconst buttonPropKeys = [\n \"as\",\n \"href\",\n \"size\",\n \"variant\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"action\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nconst purposeButtonPropKeys = [\n \"as\",\n \"href\",\n \"size\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nconst fixedModePurposeButtonPropKeys = [\n \"size\",\n \"disabled\",\n \"loading\",\n \"error\",\n \"toggle\",\n \"pressed\",\n \"ariaLabel\",\n \"hasVisibleText\",\n \"ariaExpanded\",\n \"ariaControls\",\n \"iconLeft\",\n \"iconRight\",\n \"iconOnly\",\n \"tooltip\",\n \"confirmation\",\n \"dataAttributes\",\n \"onClick\",\n \"className\",\n] as const\n\nconst anchorPurposeButtonPropKeys = [\"href\", ...fixedModePurposeButtonPropKeys] as const\n\nfunction isDevelopmentEnvironment(): boolean {\n const nodeProcess = (\n globalThis as unknown as {\n process?: { env?: Record<string, string | undefined> }\n }\n ).process\n\n const nodeEnv = nodeProcess?.env?.NODE_ENV\n if (nodeEnv) {\n return nodeEnv !== \"production\"\n }\n\n const meta = import.meta as unknown as {\n env?: { MODE?: string; PROD?: boolean }\n }\n\n if (typeof meta.env?.PROD === \"boolean\") {\n return !meta.env.PROD\n }\n\n if (meta.env?.MODE) {\n return meta.env.MODE !== \"production\"\n }\n\n return true\n}\n\nfunction warnForForbiddenPurposeProps(\n componentName: string,\n rawProps: Record<string, unknown>,\n attrs: Record<string, unknown>,\n forbiddenProps: readonly PurposeButtonForbiddenProp[],\n): void {\n if (!isDevelopmentEnvironment()) {\n return\n }\n\n const warningByProp: Record<PurposeButtonForbiddenProp, string> = {\n variant: \"Use Button if you need a custom visual treatment.\",\n action: \"Use Button if you need a custom semantic action.\",\n as: \"Use Button if you need a custom element mode.\",\n }\n\n for (const forbiddenProp of forbiddenProps) {\n const wasProvidedViaProps = Object.prototype.hasOwnProperty.call(rawProps, forbiddenProp)\n const wasProvidedViaAttrs = Object.prototype.hasOwnProperty.call(attrs, forbiddenProp)\n\n if (!wasProvidedViaProps && !wasProvidedViaAttrs) {\n continue\n }\n\n console.warn(\n `[marwes] ${componentName} does not support \\`${forbiddenProp}\\`. ${warningByProp[forbiddenProp]}`,\n )\n }\n}\n\nfunction filterForwardedAttrs(\n attrs: Record<string, unknown>,\n omittedKeys: readonly string[],\n): Record<string, unknown> {\n return omitAttrs(attrs, omittedKeys)\n}\n\nfunction createPurposeButtonDataAttributes(\n purpose: Parameters<typeof createPurposeSemanticAttributes>[0],\n existingDataAttributes: ButtonProps[\"dataAttributes\"],\n localDataAttributes: ButtonProps[\"dataAttributes\"] = {},\n): Record<string, string | boolean | undefined> {\n return {\n ...existingDataAttributes,\n ...createPurposeSemanticAttributes(purpose),\n ...localDataAttributes,\n }\n}\n\n// DESTRUCTIVE BUTTON - Destructive Actions\n\nexport type DestructiveButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\"> & {\n confirmation?: boolean\n}\n\nexport const DestructiveButton = defineComponent({\n name: \"MarwesDestructiveButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as DestructiveButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"DestructiveButton\", rawProps, rawAttrs, [\n \"variant\",\n \"action\",\n \"as\",\n ])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n as: \"button\",\n variant: ButtonVariant.primary,\n action: ButtonAction.delete,\n error: true,\n confirmation: props.confirmation ?? true,\n dataAttributes: createPurposeButtonDataAttributes(\"destructive\", props.dataAttributes, {\n \"data-confirmation-required\": props.confirmation === false ? \"false\" : \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type CreateButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CreateButton = defineComponent({\n name: \"MarwesCreateButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CreateButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CreateButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.create,\n variant: ButtonVariant.primary,\n dataAttributes: createPurposeButtonDataAttributes(\"create\", props.dataAttributes, {\n \"data-creative\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SubmitButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\">\n\nexport const SubmitButton = defineComponent({\n name: \"MarwesSubmitButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SubmitButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SubmitButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n as: \"button\",\n action: ButtonAction.submit,\n variant: ButtonVariant.primary,\n dataAttributes: createPurposeButtonDataAttributes(\"submit\", props.dataAttributes),\n },\n slots,\n )\n }\n },\n})\n\nexport type CancelButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CancelButton = defineComponent({\n name: \"MarwesCancelButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CancelButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CancelButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.cancel,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"cancel\", props.dataAttributes, {\n \"data-cancel\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type LinkButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\"> & {\n href: string\n}\n\nexport const LinkButton = defineComponent({\n name: \"MarwesLinkButton\",\n inheritAttrs: false,\n props: [...anchorPurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as LinkButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"LinkButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\"]),\n ...props,\n as: \"a\",\n action: ButtonAction.navigate,\n variant: ButtonVariant.text,\n dataAttributes: createPurposeButtonDataAttributes(\"navigation\", props.dataAttributes, {\n \"data-navigation\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SaveButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const SaveButton = defineComponent({\n name: \"MarwesSaveButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SaveButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SaveButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.submit,\n variant: ButtonVariant.primary,\n dataAttributes: createPurposeButtonDataAttributes(\"save\", props.dataAttributes, {\n \"data-persist\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type ConfirmButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\">\n\nexport const ConfirmButton = defineComponent({\n name: \"MarwesConfirmButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as ConfirmButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"ConfirmButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n variant: ButtonVariant.success,\n as: \"button\",\n action: ButtonAction.button,\n dataAttributes: createPurposeButtonDataAttributes(\"confirm\", props.dataAttributes),\n },\n slots,\n )\n }\n },\n})\n\nexport type VerifyButtonProps = Omit<ButtonProps, \"variant\" | \"action\" | \"as\" | \"href\">\n\nexport const VerifyButton = defineComponent({\n name: \"MarwesVerifyButton\",\n inheritAttrs: false,\n props: [...fixedModePurposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as VerifyButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"VerifyButton\", rawProps, rawAttrs, [\"variant\", \"action\", \"as\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\", \"as\", \"href\"]),\n ...props,\n variant: ButtonVariant.secondary,\n as: \"button\",\n action: ButtonAction.button,\n iconRight: props.iconRight ?? IconName.CheckCircle,\n dataAttributes: createPurposeButtonDataAttributes(\"verify\", props.dataAttributes, {\n \"data-verification\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type EditButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const EditButton = defineComponent({\n name: \"MarwesEditButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as EditButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"EditButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.edit,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.Edit,\n dataAttributes: createPurposeButtonDataAttributes(\"edit\", props.dataAttributes, {\n \"data-edit\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type CloseButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CloseButton = defineComponent({\n name: \"MarwesCloseButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CloseButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CloseButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.cancel,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"close\", props.dataAttributes, {\n \"data-close\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type RefreshButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const RefreshButton = defineComponent({\n name: \"MarwesRefreshButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as RefreshButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"RefreshButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n iconRight: props.iconRight ?? IconName.RefreshCw,\n dataAttributes: createPurposeButtonDataAttributes(\"refresh\", props.dataAttributes, {\n \"data-refresh\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type UploadButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const UploadButton = defineComponent({\n name: \"MarwesUploadButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as UploadButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"UploadButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.Upload,\n dataAttributes: createPurposeButtonDataAttributes(\"upload\", props.dataAttributes, {\n \"data-transfer\": \"upload\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type DownloadButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const DownloadButton = defineComponent({\n name: \"MarwesDownloadButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as DownloadButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"DownloadButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.Download,\n dataAttributes: createPurposeButtonDataAttributes(\"download\", props.dataAttributes, {\n \"data-transfer\": \"download\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type CopyButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const CopyButton = defineComponent({\n name: \"MarwesCopyButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as CopyButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"CopyButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"copy\", props.dataAttributes, {\n \"data-copy\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SearchButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const SearchButton = defineComponent({\n name: \"MarwesSearchButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SearchButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SearchButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.primary,\n iconRight: props.iconRight ?? IconName.Search,\n dataAttributes: createPurposeButtonDataAttributes(\"search\", props.dataAttributes, {\n \"data-search\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type FilterButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const FilterButton = defineComponent({\n name: \"MarwesFilterButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as FilterButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"FilterButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"filter\", props.dataAttributes, {\n \"data-filter\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type SortButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const SortButton = defineComponent({\n name: \"MarwesSortButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SortButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"SortButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.neutral,\n dataAttributes: createPurposeButtonDataAttributes(\"sort\", props.dataAttributes, {\n \"data-sort\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type DropdownButtonProps = Omit<ButtonProps, \"variant\" | \"action\">\n\nexport const DropdownButton = defineComponent({\n name: \"MarwesDropdownButton\",\n inheritAttrs: false,\n props: [...purposeButtonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as DropdownButtonProps\n const rawAttrs = attrs as Record<string, unknown>\n\n warnForForbiddenPurposeProps(\"DropdownButton\", rawProps, rawAttrs, [\"variant\", \"action\"])\n\n return h(\n Button,\n {\n ...filterForwardedAttrs(rawAttrs, [\"variant\", \"action\"]),\n ...props,\n action: ButtonAction.button,\n variant: ButtonVariant.secondary,\n iconRight: props.iconRight ?? IconName.ChevronDown,\n dataAttributes: createPurposeButtonDataAttributes(\"dropdown\", props.dataAttributes, {\n \"data-dropdown\": \"true\",\n }),\n },\n slots,\n )\n }\n },\n})\n\nexport type PrimaryButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const PrimaryButton = defineComponent({\n name: \"MarwesPrimaryButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as PrimaryButtonProps\n return h(Button, { ...attrs, ...props, variant: \"primary\", as: \"button\" }, slots)\n }\n },\n})\n\nexport type SecondaryButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const SecondaryButton = defineComponent({\n name: \"MarwesSecondaryButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SecondaryButtonProps\n return h(Button, { ...attrs, ...props, variant: \"secondary\", as: \"button\" }, slots)\n }\n },\n})\n\nexport type TextButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const TextButton = defineComponent({\n name: \"MarwesTextButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as TextButtonProps\n return h(Button, { ...attrs, ...props, variant: \"text\", as: \"button\" }, slots)\n }\n },\n})\n\nexport type SuccessButtonProps = Omit<ButtonProps, \"variant\" | \"as\">\n\nexport const SuccessButton = defineComponent({\n name: \"MarwesSuccessButton\",\n inheritAttrs: false,\n props: [...buttonPropKeys],\n setup(rawProps, { attrs, slots }) {\n return () => {\n const props = rawProps as unknown as SuccessButtonProps\n return h(\n Button,\n {\n ...attrs,\n ...props,\n variant: \"success\",\n as: \"button\",\n dataAttributes: createPurposeButtonDataAttributes(\"success\", props.dataAttributes),\n },\n slots,\n )\n }\n },\n})\n","import type { Ref } from \"vue\"\nimport { watch } from \"vue\"\n\nconst RENDERKIT_EVENT = \"marwes/renderkit/renderkit-update\"\nconst RENDERKIT_DEBUG_FLAG = \"__MARWES_RENDERKIT_DEBUG__\"\n\nfunction isRenderKitDebugEnabled(): boolean {\n if (typeof window === \"undefined\") {\n return false\n }\n\n const renderKitDebugWindow = window as Window & {\n [RENDERKIT_DEBUG_FLAG]?: boolean\n }\n\n return renderKitDebugWindow[RENDERKIT_DEBUG_FLAG] === true\n}\n\nexport function useRenderKitDebug(renderKitRef: Ref<unknown>, componentName: string) {\n watch(\n renderKitRef,\n (renderKit) => {\n if (!isRenderKitDebugEnabled()) {\n return\n }\n\n const event = new CustomEvent(RENDERKIT_EVENT, {\n detail: {\n ...(renderKit as Record<string, unknown>),\n _meta: { component: componentName },\n },\n })\n\n window.dispatchEvent(event)\n },\n { deep: true, immediate: true },\n )\n}\n","import type { CssVars, InputOptions } from \"@marwes-ui/core\"\nimport { createInputRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type InputProps = InputOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst inputPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"placeholder\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"inputMode\",\n \"type\",\n \"autoComplete\",\n \"tone\",\n \"invalid\",\n \"describedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nexport const Input = defineComponent(\n (props: InputProps, { emit }) => {\n const attrs = useAttrs()\n const kit = computed(() => createInputRecipe(props))\n\n useRenderKitDebug(kit, \"Input\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n const controlledValue = props.modelValue ?? props.value\n const inputValue = controlledValue ?? props.defaultValue\n\n return h(\"input\", {\n ...passthroughAttrs,\n class: className,\n style,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n type: renderKit.a11y.type,\n inputMode: renderKit.a11y.inputMode,\n autoComplete: renderKit.a11y.autoComplete,\n placeholder: renderKit.a11y.placeholder,\n disabled: renderKit.a11y.disabled,\n readOnly: renderKit.a11y.readOnly,\n required: renderKit.a11y.required,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n value: inputValue,\n onInput: (event: Event) => {\n const target = event.target as HTMLInputElement\n const nextValue = target.value\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n onChange: (event: Event) => emit(\"change\", event),\n })\n }\n },\n {\n name: \"MarwesInput\",\n inheritAttrs: false,\n props: [...inputPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\n\nexport const SelectArrowIcon = defineComponent({\n name: \"MarwesSelectArrowIcon\",\n props: {\n className: {\n type: String,\n required: false,\n },\n },\n setup(props) {\n return () =>\n h(\n \"svg\",\n {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: props.className,\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n },\n [\n h(\"path\", {\n d: \"M11.5288 5.52876C11.7891 5.26841 12.2111 5.26841 12.4715 5.52876C12.7318 5.78911 12.7318 6.21114 12.4715 6.47147L8.47148 10.4715C8.21115 10.7318 7.78912 10.7318 7.52877 10.4715L3.52876 6.47147C3.26841 6.21112 3.26841 5.78911 3.52876 5.52876C3.78911 5.26841 4.21112 5.26841 4.47147 5.52876L6.58591 7.6432C7.36696 8.42425 8.63329 8.42425 9.41434 7.6432L11.5288 5.52876Z\",\n fill: \"currentColor\",\n }),\n ],\n )\n },\n})\n","import type {\n SelectAppearance as CoreSelectAppearance,\n SelectOption as CoreSelectOption,\n CssVars,\n SelectOptions,\n} from \"@marwes-ui/core\"\nimport { createSelectRecipe, resolveSelectMode } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref, useAttrs } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\nimport { SelectArrowIcon } from \"./select-arrow-icon\"\n\nexport type SelectAppearance = CoreSelectAppearance\nexport type SelectOption = CoreSelectOption\n\nexport type SelectProps = SelectOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nfunction getInitialSelectValue(props: SelectProps): string {\n if (props.modelValue !== undefined) {\n return props.modelValue\n }\n\n if (props.value !== undefined) {\n return props.value\n }\n\n if (props.defaultValue !== undefined) {\n return props.defaultValue\n }\n\n if (props.placeholder !== undefined) {\n return \"\"\n }\n\n return props.options[0]?.value ?? \"\"\n}\n\nconst selectPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"options\",\n \"placeholder\",\n \"disabled\",\n \"required\",\n \"native\",\n \"tone\",\n \"appearance\",\n \"invalid\",\n \"describedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nexport const Select = defineComponent(\n (props: SelectProps, { emit }) => {\n const attrs = useAttrs()\n const kit = computed(() => createSelectRecipe(props))\n const mode = computed(() => resolveSelectMode(props))\n const uncontrolledValue = ref(getInitialSelectValue(props))\n const currentValue = computed(() => props.modelValue ?? props.value ?? uncontrolledValue.value)\n const placeholderSelected = computed(\n () => props.placeholder !== undefined && currentValue.value === \"\",\n )\n\n useRenderKitDebug(kit, \"Select\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n const selectElement = h(\n \"select\",\n {\n ...passthroughAttrs,\n class: className,\n style,\n \"data-placeholder-selected\": placeholderSelected.value ? \"true\" : undefined,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n disabled: renderKit.a11y.disabled,\n required: renderKit.a11y.required,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n value: currentValue.value,\n onChange: (event: Event) => {\n const target = event.target as HTMLSelectElement\n const nextValue = target.value\n\n if (props.modelValue === undefined && props.value === undefined) {\n uncontrolledValue.value = nextValue\n }\n\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n emit(\"change\", event)\n },\n },\n [\n ...(props.placeholder\n ? [\n h(\n \"option\",\n { value: \"\", disabled: props.required ? true : undefined },\n props.placeholder,\n ),\n ]\n : []),\n ...props.options.map((option) =>\n h(\n \"option\",\n { key: option.value, value: option.value, disabled: option.disabled },\n option.label,\n ),\n ),\n ],\n )\n\n if (mode.value === \"native\") {\n return selectElement\n }\n\n return h(\"span\", { class: \"mw-select__control\" }, [\n selectElement,\n h(SelectArrowIcon, { className: \"mw-select__control-icon\" }),\n ])\n }\n },\n {\n name: \"MarwesSelect\",\n inheritAttrs: false,\n props: [...selectPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import type { CssVars, TextareaOptions } from \"@marwes-ui/core\"\nimport { createTextareaRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type TextareaProps = TextareaOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst textareaPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"placeholder\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"inputMode\",\n \"autoComplete\",\n \"rows\",\n \"cols\",\n \"resize\",\n \"tone\",\n \"invalid\",\n \"describedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nexport const Textarea = defineComponent(\n (props: TextareaProps, { emit }) => {\n const attrs = useAttrs()\n const kit = computed(() => createTextareaRecipe(props))\n\n useRenderKitDebug(kit, \"Textarea\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n const controlledValue = props.modelValue ?? props.value\n const textareaValue = controlledValue ?? props.defaultValue\n\n return h(\"textarea\", {\n ...passthroughAttrs,\n class: className,\n style,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n inputMode: renderKit.a11y.inputMode,\n autoComplete: renderKit.a11y.autoComplete,\n placeholder: renderKit.a11y.placeholder,\n disabled: renderKit.a11y.disabled,\n readOnly: renderKit.a11y.readOnly,\n required: renderKit.a11y.required,\n rows: renderKit.a11y.rows,\n cols: renderKit.a11y.cols,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n value: textareaValue,\n onInput: (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n const nextValue = target.value\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n onChange: (event: Event) => emit(\"change\", event),\n })\n }\n },\n {\n name: \"MarwesTextarea\",\n inheritAttrs: false,\n props: [...textareaPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import {\n createRichTextRecipe,\n isRichTextHtmlEmpty,\n normalizeRichTextHtml,\n resolveRichTextAllowedFormats,\n richTextCommandByFormat,\n} from \"@marwes-ui/core\"\nimport type { CssVars, RichTextFormat, RichTextOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, ref, useAttrs, watch } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\n\nexport type RichTextProps = RichTextOptions & {\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst richTextPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"placeholder\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"tone\",\n \"invalid\",\n \"describedBy\",\n \"labelledBy\",\n \"ariaLabel\",\n \"allowedFormats\",\n \"onValueChange\",\n \"className\",\n] as const\n\nconst formatLabels: Record<RichTextFormat, string> = {\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n}\n\ntype RichTextCommandDocument = Document & {\n execCommand?: (commandId: string) => boolean\n queryCommandState?: (commandId: string) => boolean\n}\n\nfunction getRichTextCommandDocument(): RichTextCommandDocument {\n return document as unknown as RichTextCommandDocument\n}\n\nfunction isNodeWithinEditor(node: Node | null, editorElement: HTMLDivElement | null): boolean {\n if (!node || !editorElement) {\n return false\n }\n\n return editorElement.contains(node.nodeType === Node.TEXT_NODE ? node.parentNode : node)\n}\n\nfunction getActiveFormatsFromSelection(editorElement: HTMLDivElement | null): RichTextFormat[] {\n if (!editorElement || typeof window === \"undefined\" || typeof document === \"undefined\") {\n return []\n }\n\n const commandDocument = getRichTextCommandDocument()\n const selection = window.getSelection()\n const anchorNode = selection?.anchorNode ?? null\n\n if (!anchorNode || !isNodeWithinEditor(anchorNode, editorElement)) {\n return []\n }\n\n const activeFormats = new Set<RichTextFormat>()\n\n if (typeof commandDocument.queryCommandState === \"function\") {\n for (const format of Object.keys(richTextCommandByFormat) as RichTextFormat[]) {\n try {\n if (commandDocument.queryCommandState(richTextCommandByFormat[format])) {\n activeFormats.add(format)\n }\n } catch {\n // Ignore queryCommandState failures and fall back to DOM inspection below.\n }\n }\n }\n\n if (activeFormats.size > 0) {\n return Array.from(activeFormats)\n }\n\n let currentNode: Node | null =\n anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentNode : anchorNode\n\n while (currentNode && currentNode !== editorElement) {\n if (!(currentNode instanceof HTMLElement)) {\n currentNode = currentNode.parentNode\n continue\n }\n\n const tagName = currentNode.tagName.toLowerCase()\n\n if (tagName === \"strong\" || tagName === \"b\") activeFormats.add(\"bold\")\n if (tagName === \"em\" || tagName === \"i\") activeFormats.add(\"italic\")\n if (tagName === \"u\") activeFormats.add(\"underline\")\n\n currentNode = currentNode.parentNode\n }\n\n return Array.from(activeFormats)\n}\n\nfunction ensureEditorSelection(editorElement: HTMLDivElement): void {\n if (typeof window === \"undefined\") {\n return\n }\n\n editorElement.focus()\n\n const selection = window.getSelection()\n const anchorNode = selection?.anchorNode ?? null\n\n if (anchorNode && isNodeWithinEditor(anchorNode, editorElement)) {\n return\n }\n\n const range = document.createRange()\n range.selectNodeContents(editorElement)\n range.collapse(false)\n selection?.removeAllRanges()\n selection?.addRange(range)\n}\n\nfunction getFormatTagNames(format: RichTextFormat): string[] {\n if (format === \"bold\") return [\"strong\", \"b\"]\n if (format === \"italic\") return [\"em\", \"i\"]\n return [\"u\"]\n}\n\nfunction findNearestFormatElement(\n node: Node | null,\n editorElement: HTMLDivElement,\n format: RichTextFormat,\n): HTMLElement | null {\n const tagNames = getFormatTagNames(format)\n let currentNode: Node | null = node?.nodeType === Node.TEXT_NODE ? node.parentNode : node\n\n while (currentNode && currentNode !== editorElement) {\n if (\n currentNode instanceof HTMLElement &&\n tagNames.includes(currentNode.tagName.toLowerCase())\n ) {\n return currentNode\n }\n\n currentNode = currentNode.parentNode\n }\n\n return null\n}\n\nfunction exitActiveFormatAtCaret(editorElement: HTMLDivElement, format: RichTextFormat): boolean {\n if (typeof window === \"undefined\") {\n return false\n }\n\n const selection = window.getSelection()\n\n if (!selection || selection.rangeCount === 0) {\n return false\n }\n\n const range = selection.getRangeAt(0)\n const anchorNode = selection.anchorNode\n\n if (!range.collapsed || !anchorNode || !isNodeWithinEditor(anchorNode, editorElement)) {\n return false\n }\n\n const formatElement = findNearestFormatElement(anchorNode, editorElement, format)\n\n if (!formatElement || !formatElement.parentNode) {\n return false\n }\n\n const trailingRange = document.createRange()\n trailingRange.setStart(range.startContainer, range.startOffset)\n trailingRange.setEndAfter(formatElement)\n\n const trailingFragment = trailingRange.extractContents()\n const caretTextNode = document.createTextNode(\"\\u200B\")\n const parentNode = formatElement.parentNode\n parentNode.insertBefore(caretTextNode, formatElement.nextSibling)\n parentNode.insertBefore(trailingFragment, caretTextNode.nextSibling)\n\n if (formatElement.textContent?.replaceAll(\"\\u200B\", \"\").trim().length === 0) {\n formatElement.remove()\n }\n\n const nextRange = document.createRange()\n nextRange.setStart(caretTextNode, 1)\n nextRange.collapse(true)\n selection.removeAllRanges()\n selection.addRange(nextRange)\n\n return true\n}\n\nexport const RichText = defineComponent(\n (props: RichTextProps, { emit, expose }) => {\n const attrs = useAttrs()\n const kit = computed(() => createRichTextRecipe(props))\n const allowedFormats = computed(() => resolveRichTextAllowedFormats(props.allowedFormats))\n const normalizedControlledValue = computed(() =>\n normalizeRichTextHtml(props.modelValue ?? props.value),\n )\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n const internalHtml = ref(normalizeRichTextHtml(props.defaultValue))\n const isEditorEmpty = ref(\n isRichTextHtmlEmpty(\n isControlled.value ? normalizedControlledValue.value : internalHtml.value,\n ),\n )\n const activeFormats = ref<RichTextFormat[]>([])\n const editorElement = ref<HTMLDivElement | null>(null)\n\n useRenderKitDebug(kit, \"RichText\")\n\n const editorHtml = computed(() =>\n isControlled.value ? normalizedControlledValue.value : internalHtml.value,\n )\n const showToolbar = computed(() => !props.readOnly)\n\n function syncEditorState(nextHtml: string): string {\n const normalizedHtml = normalizeRichTextHtml(nextHtml)\n isEditorEmpty.value = isRichTextHtmlEmpty(normalizedHtml)\n\n if (!isControlled.value) {\n internalHtml.value = normalizedHtml\n }\n\n props.onValueChange?.(normalizedHtml)\n emit(\"update:modelValue\", normalizedHtml)\n emit(\"value-change\", normalizedHtml)\n\n return normalizedHtml\n }\n\n function refreshActiveFormats(): void {\n activeFormats.value = getActiveFormatsFromSelection(editorElement.value)\n }\n\n function toggleFormat(format: RichTextFormat): void {\n if (props.disabled || props.readOnly || typeof document === \"undefined\") {\n return\n }\n\n const commandDocument = getRichTextCommandDocument()\n\n if (!editorElement.value) {\n return\n }\n\n ensureEditorSelection(editorElement.value)\n const activeFormatsBeforeToggle = getActiveFormatsFromSelection(editorElement.value)\n\n if (exitActiveFormatAtCaret(editorElement.value, format)) {\n if (\n typeof commandDocument.queryCommandState === \"function\" &&\n commandDocument.queryCommandState(richTextCommandByFormat[format]) &&\n typeof commandDocument.execCommand === \"function\"\n ) {\n commandDocument.execCommand(richTextCommandByFormat[format])\n }\n\n if (\n typeof commandDocument.queryCommandState === \"function\" &&\n typeof commandDocument.execCommand === \"function\"\n ) {\n for (const activeFormat of activeFormatsBeforeToggle) {\n if (activeFormat === format) {\n continue\n }\n\n if (!commandDocument.queryCommandState(richTextCommandByFormat[activeFormat])) {\n commandDocument.execCommand(richTextCommandByFormat[activeFormat])\n }\n }\n }\n\n syncEditorState(editorElement.value.innerHTML)\n refreshActiveFormats()\n return\n }\n\n if (typeof commandDocument.execCommand === \"function\") {\n commandDocument.execCommand(richTextCommandByFormat[format])\n }\n\n syncEditorState(editorElement.value?.innerHTML ?? \"\")\n refreshActiveFormats()\n }\n\n function handleSelectionChange(): void {\n refreshActiveFormats()\n }\n\n onMounted(() => {\n if (editorElement.value) {\n editorElement.value.innerHTML = editorHtml.value\n isEditorEmpty.value = isRichTextHtmlEmpty(editorHtml.value)\n }\n\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"selectionchange\", handleSelectionChange)\n }\n })\n\n onBeforeUnmount(() => {\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\"selectionchange\", handleSelectionChange)\n }\n })\n\n watch(\n editorHtml,\n (nextHtml) => {\n const currentElement = editorElement.value\n\n if (!currentElement) {\n return\n }\n\n const normalizedDomHtml = normalizeRichTextHtml(currentElement.innerHTML)\n\n if (normalizedDomHtml !== nextHtml) {\n currentElement.innerHTML = nextHtml\n }\n\n isEditorEmpty.value = isRichTextHtmlEmpty(nextHtml)\n },\n { immediate: true },\n )\n\n expose({\n focus: () => editorElement.value?.focus(),\n element: editorElement,\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"div\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n class: className,\n style,\n },\n [\n showToolbar.value\n ? h(\n \"div\",\n { class: \"mw-rich-text__toolbar\", \"data-rich-text-toolbar\": \"true\" },\n allowedFormats.value.map((format) => {\n const isActive = activeFormats.value.includes(format)\n const iconName =\n format === \"bold\" ? \"bold\" : format === \"italic\" ? \"italic\" : \"underline\"\n\n return h(\n \"button\",\n {\n key: format,\n type: \"button\",\n class: \"mw-rich-text__toolbar-button\",\n \"data-format\": format,\n \"data-active\": isActive ? \"true\" : undefined,\n \"aria-label\": formatLabels[format],\n \"aria-pressed\": isActive,\n disabled: props.disabled,\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n },\n onClick: () => {\n toggleFormat(format)\n },\n },\n [h(Icon, { name: iconName, size: \"xs\", decorative: true })],\n )\n }),\n )\n : null,\n\n h(\"div\", {\n ref: editorElement,\n class: \"mw-rich-text__editor\",\n \"data-rich-text-editor\": \"true\",\n \"data-empty\": isEditorEmpty.value ? \"true\" : undefined,\n \"data-placeholder\": props.placeholder,\n id: renderKit.a11y.id,\n role: renderKit.a11y.role,\n tabindex: renderKit.a11y.tabIndex,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-labelledby\": renderKit.a11y.ariaLabelledBy,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n \"aria-invalid\": renderKit.a11y.ariaInvalid,\n \"aria-disabled\": renderKit.a11y.ariaDisabled,\n \"aria-readonly\": renderKit.a11y.ariaReadOnly,\n \"aria-required\": renderKit.a11y.ariaRequired,\n \"aria-multiline\": renderKit.a11y.ariaMultiline,\n contenteditable: !props.disabled && !props.readOnly,\n onInput: () => {\n syncEditorState(editorElement.value?.innerHTML ?? \"\")\n refreshActiveFormats()\n },\n onKeydown: (event: KeyboardEvent) => {\n if (!(event.metaKey || event.ctrlKey) || event.altKey) {\n return\n }\n\n const formatByKey: Partial<Record<string, RichTextFormat>> = {\n b: \"bold\",\n i: \"italic\",\n u: \"underline\",\n }\n const requestedFormat = formatByKey[event.key.toLowerCase()]\n\n if (!requestedFormat || !allowedFormats.value.includes(requestedFormat)) {\n return\n }\n\n event.preventDefault()\n toggleFormat(requestedFormat)\n },\n onFocus: refreshActiveFormats,\n onBlur: () => {\n syncEditorState(editorElement.value?.innerHTML ?? \"\")\n activeFormats.value = []\n },\n }),\n\n props.name\n ? h(\"input\", {\n type: \"hidden\",\n name: props.name,\n value: editorHtml.value,\n disabled: props.disabled,\n })\n : null,\n ],\n )\n }\n },\n {\n name: \"MarwesRichText\",\n inheritAttrs: false,\n props: [...richTextPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","let generatedIdCounter = 0\n\nexport function createLocalId(prefix: string): string {\n generatedIdCounter += 1\n return `${prefix}-${generatedIdCounter}`\n}\n","import { paragraphRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, ParagraphOptions, ParagraphSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport {\n getDefaultSlotChildren,\n mergeClassNames,\n mergeStyles,\n omitAttrs,\n} from \"../../internal/render-utils\"\nimport { useTheme } from \"../../provider/use-theme\"\n\nexport type ParagraphProps = ParagraphOptions & {\n size?: ParagraphSize\n className?: string\n}\n\nconst paragraphPropKeys = [\"size\", \"id\", \"className\"] as const\n\nexport const Paragraph = defineComponent(\n (props: ParagraphProps, { slots }) => {\n const attrs = useAttrs()\n const theme = useTheme()\n const kit = computed(() => paragraphRecipe(props, theme))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"p\",\n {\n ...passthroughAttrs,\n id: renderKit.a11y.id,\n class: className,\n style,\n },\n getDefaultSlotChildren(slots),\n )\n }\n },\n {\n name: \"MarwesParagraph\",\n inheritAttrs: false,\n props: [...paragraphPropKeys],\n },\n)\n","import { buildInputFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { Paragraph } from \"../paragraph\"\nimport { Input, type InputProps } from \"./input\"\n\nexport type InputFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n input?: InputProps\n ariaDescribedBy?: string\n modelValue?: string\n /** Optional leading text symbol displayed inside the input on the left (e.g. \"$\", \"€\", \"kr\"). */\n leadingSymbol?: string\n}\n\nconst inputFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"input\",\n \"ariaDescribedBy\",\n \"modelValue\",\n \"leadingSymbol\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const InputField = defineComponent(\n (props: InputFieldProps, { slots, emit }) => {\n const localInputId = createLocalId(\"mw-input\")\n const id = computed(() => props.id ?? localInputId)\n const sourceInput = computed<InputProps>(() => props.input ?? {})\n\n const showPassword = ref(false)\n const searchValue = ref(\n String(\n sourceInput.value.modelValue ??\n sourceInput.value.value ??\n sourceInput.value.defaultValue ??\n \"\",\n ),\n )\n\n const isPasswordField = computed(() => sourceInput.value.type === \"password\")\n const isSearchField = computed(() => sourceInput.value.type === \"search\")\n\n const externalValue = computed(\n () => props.modelValue ?? sourceInput.value.modelValue ?? sourceInput.value.value,\n )\n const hasSearchValue = computed(() => {\n if (!isSearchField.value) {\n return false\n }\n\n if (externalValue.value !== undefined) {\n return String(externalValue.value).length > 0\n }\n\n return String(searchValue.value).length > 0\n })\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceInput.value.disabled || false)\n const readOnly = computed(() => sourceInput.value.readOnly || false)\n const invalid = computed(() => hasError.value || sourceInput.value.invalid || false)\n const showSearchClearButton = computed(\n () => hasSearchValue.value && !disabled.value && !readOnly.value,\n )\n const showSearchIcon = computed(() => isSearchField.value && !showSearchClearButton.value)\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n disabled.value && \"mw-input-field--disabled\",\n invalid.value && \"mw-input-field--invalid\",\n readOnly.value && \"mw-input-field--readonly\",\n ),\n )\n\n const mergedInputProps = computed<InputProps>(() => {\n const nextInputProps: InputProps = {\n ...sourceInput.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (externalValue.value !== undefined) {\n nextInputProps.modelValue = externalValue.value\n }\n\n if (isPasswordField.value && showPassword.value) {\n nextInputProps.type = \"text\"\n }\n\n if (isSearchField.value) {\n if (externalValue.value === undefined) {\n nextInputProps.modelValue = searchValue.value\n }\n }\n\n if (a11yIds.value.describedBy) {\n nextInputProps.describedBy = a11yIds.value.describedBy\n }\n\n const originalOnValueChange = sourceInput.value.onValueChange\n nextInputProps.onValueChange = (nextValue: string) => {\n if (isSearchField.value) {\n searchValue.value = nextValue\n }\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return nextInputProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"label\", { class: \"mw-input-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n props.leadingSymbol\n ? h(\"span\", { class: \"mw-input-field__leading-symbol\", \"aria-hidden\": \"true\" }, [\n props.leadingSymbol,\n ])\n : null,\n h(Input, mergedInputProps.value),\n\n isPasswordField.value && !disabled.value\n ? h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-input-field__toggle-password\",\n onClick: () => {\n showPassword.value = !showPassword.value\n },\n \"aria-label\": showPassword.value ? \"Hide password\" : \"Show password\",\n tabIndex: 0,\n },\n [\n h(Icon, {\n name: showPassword.value ? \"eyeOff\" : \"eye\",\n size: \"xs\",\n decorative: true,\n }),\n ],\n )\n : null,\n\n showSearchIcon.value\n ? h(\"span\", { class: \"mw-input-field__search-icon\", \"aria-hidden\": \"true\" }, [\n h(Icon, { name: \"search\", size: \"xs\", decorative: true }),\n ])\n : null,\n\n showSearchClearButton.value\n ? h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-input-field__clear-search\",\n onClick: () => {\n searchValue.value = \"\"\n sourceInput.value.onValueChange?.(\"\")\n emit(\"update:modelValue\", \"\")\n emit(\"value-change\", \"\")\n },\n \"aria-label\": \"Clear search\",\n tabIndex: 0,\n },\n [h(Icon, { name: \"x\", size: \"xs\", decorative: true })],\n )\n : null,\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesInputField\",\n props: [...inputFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import {\n type InputOtpOptions,\n buildInputFieldA11yIds,\n createInputOtpRecipe,\n sanitizeInputOtpValue,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\n\nexport type InputOtpProps = Omit<InputOtpOptions, \"describedBy\"> & {\n label: string\n helperText?: string\n error?: string\n ariaDescribedBy?: string\n modelValue?: string\n onValueChange?: (value: string) => void\n className?: string\n}\n\nconst inputOtpPropKeys = [\n \"id\",\n \"name\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"label\",\n \"helperText\",\n \"error\",\n \"length\",\n \"placeholderCharacter\",\n \"disabled\",\n \"readOnly\",\n \"required\",\n \"invalid\",\n \"ariaDescribedBy\",\n \"ariaLabel\",\n \"onValueChange\",\n \"className\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const InputOtp = defineComponent(\n (props: InputOtpProps, { emit }) => {\n const localInputId = createLocalId(\"mw-input-otp\")\n const id = computed(() => props.id ?? localInputId)\n const otpLength = computed(() => Math.max(1, props.length ?? 6))\n const uncontrolledValue = ref(sanitizeInputOtpValue(props.defaultValue, otpLength.value))\n const externalValue = computed(() => props.modelValue ?? props.value)\n const currentValue = computed(() => {\n const sourceValue = externalValue.value ?? uncontrolledValue.value\n return sanitizeInputOtpValue(sourceValue, otpLength.value)\n })\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n const invalid = computed(() => hasError.value || props.invalid === true)\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const kit = computed(() => {\n const recipeOptions: InputOtpOptions = {\n id: id.value,\n value: currentValue.value,\n length: otpLength.value,\n invalid: invalid.value,\n }\n\n if (props.name) {\n recipeOptions.name = props.name\n }\n\n if (props.placeholderCharacter) {\n recipeOptions.placeholderCharacter = props.placeholderCharacter\n }\n\n if (props.disabled) {\n recipeOptions.disabled = true\n }\n\n if (props.readOnly) {\n recipeOptions.readOnly = true\n }\n\n if (props.required) {\n recipeOptions.required = true\n }\n\n if (a11yIds.value.describedBy) {\n recipeOptions.describedBy = a11yIds.value.describedBy\n }\n\n if (props.ariaLabel) {\n recipeOptions.ariaLabel = props.ariaLabel\n }\n\n return createInputOtpRecipe(recipeOptions)\n })\n\n const wrapperClass = computed(() => mergeClassNames(kit.value.className, props.className))\n\n const handleInput = (event: Event) => {\n const inputElement = event.target as HTMLInputElement\n const nextValue = sanitizeInputOtpValue(inputElement.value, otpLength.value)\n\n if (externalValue.value === undefined) {\n uncontrolledValue.value = nextValue\n }\n\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n style: kit.value.vars,\n \"data-component\": \"input-otp\",\n \"data-invalid\": invalid.value ? \"true\" : undefined,\n \"data-disabled\": props.disabled ? \"true\" : undefined,\n },\n [\n h(\"label\", { class: \"mw-input-otp__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: () => [props.label] }),\n ]),\n\n h(\"div\", { class: \"mw-input-otp__cells\" }, [\n ...kit.value.displayCells.map((displayCell) =>\n h(\n \"span\",\n {\n key: displayCell.key,\n class: mergeClassNames(\n \"mw-input-otp__cell\",\n displayCell.filled && \"mw-input-otp__cell--filled\",\n ),\n \"aria-hidden\": \"true\",\n },\n displayCell.character,\n ),\n ),\n h(\"input\", {\n id: kit.value.a11y.id,\n class: \"mw-input-otp__input\",\n type: \"text\",\n name: kit.value.a11y.name,\n inputMode: kit.value.a11y.inputMode,\n autoComplete: kit.value.a11y.autoComplete,\n maxLength: kit.value.a11y.maxLength,\n pattern: kit.value.a11y.pattern,\n disabled: kit.value.a11y.disabled,\n readOnly: kit.value.a11y.readOnly,\n required: kit.value.a11y.required,\n \"aria-label\": kit.value.a11y.ariaLabel,\n \"aria-invalid\": kit.value.a11y.ariaInvalid,\n \"aria-describedby\": kit.value.a11y.ariaDescribedBy,\n value: kit.value.displayValue,\n onInput: handleInput,\n onChange: (event: Event) => emit(\"change\", event),\n }),\n ]),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-otp__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: () => [props.error ?? \"\"] })],\n )\n : hasHelperText.value\n ? h(\"div\", { class: \"mw-input-otp__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: () => [props.helperText ?? \"\"] }),\n ])\n : null,\n ],\n )\n },\n {\n name: \"MarwesInputOtp\",\n props: [...inputOtpPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import { IconName, buildInputFieldA11yIds, resolveSelectMode } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onBeforeUnmount, ref, watch } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { Paragraph } from \"../paragraph\"\nimport { Select, type SelectProps } from \"./select\"\nimport { SelectArrowIcon } from \"./select-arrow-icon\"\n\nexport type SelectFieldVariant = \"default\" | \"date\"\n\nexport type SelectFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n select: SelectProps\n ariaDescribedBy?: string\n modelValue?: string\n variant?: SelectFieldVariant\n}\n\nconst selectFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"select\",\n \"ariaDescribedBy\",\n \"modelValue\",\n \"variant\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nfunction getInitialSelectValue(props: SelectProps): string {\n if (props.modelValue !== undefined) {\n return props.modelValue\n }\n\n if (props.value !== undefined) {\n return props.value\n }\n\n if (props.defaultValue !== undefined) {\n return props.defaultValue\n }\n\n if (props.placeholder !== undefined) {\n return \"\"\n }\n\n return props.options[0]?.value ?? \"\"\n}\n\nfunction getFirstEnabledOptionIndex(options: SelectProps[\"options\"]): number {\n return options.findIndex((option) => !option.disabled)\n}\n\nfunction getLastEnabledOptionIndex(options: SelectProps[\"options\"]): number {\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) {\n return index\n }\n }\n\n return -1\n}\n\nfunction getSelectedOptionIndex(options: SelectProps[\"options\"], value: string): number {\n return options.findIndex((option) => option.value === value && !option.disabled)\n}\n\nfunction getInitialActiveOptionIndex(options: SelectProps[\"options\"], value: string): number {\n const selectedIndex = getSelectedOptionIndex(options, value)\n\n if (selectedIndex !== -1) {\n return selectedIndex\n }\n\n return getFirstEnabledOptionIndex(options)\n}\n\nfunction getNextEnabledOptionIndex(\n options: SelectProps[\"options\"],\n currentIndex: number,\n direction: 1 | -1,\n): number {\n if (options.length === 0) {\n return -1\n }\n\n let nextIndex = currentIndex\n\n for (let attempts = 0; attempts < options.length; attempts += 1) {\n nextIndex = (nextIndex + direction + options.length) % options.length\n\n if (!options[nextIndex]?.disabled) {\n return nextIndex\n }\n }\n\n return currentIndex\n}\n\nexport const SelectField = defineComponent(\n (props: SelectFieldProps, { slots, emit }) => {\n const localSelectId = createLocalId(\"mw-select\")\n const id = computed(() => props.id ?? localSelectId)\n const sourceSelect = computed<SelectProps>(() => props.select)\n const mode = computed(() => resolveSelectMode(sourceSelect.value))\n const externalValue = computed(\n () => props.modelValue ?? sourceSelect.value.modelValue ?? sourceSelect.value.value,\n )\n const isControlled = computed(\n () =>\n props.modelValue !== undefined ||\n sourceSelect.value.modelValue !== undefined ||\n sourceSelect.value.value !== undefined,\n )\n const internalValue = ref(getInitialSelectValue(sourceSelect.value))\n const open = ref(false)\n const activeIndex = ref(\n getInitialActiveOptionIndex(\n sourceSelect.value.options,\n externalValue.value ?? internalValue.value,\n ),\n )\n const controlRef = ref<HTMLElement | null>(null)\n const buttonRef = ref<HTMLElement | null>(null)\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceSelect.value.disabled || false)\n const invalid = computed(() => hasError.value || sourceSelect.value.invalid || false)\n const currentValue = computed(() => externalValue.value ?? internalValue.value)\n const selectedOption = computed(\n () =>\n sourceSelect.value.options.find((option) => option.value === currentValue.value) ??\n (sourceSelect.value.placeholder === undefined ? sourceSelect.value.options[0] : undefined),\n )\n const placeholderSelected = computed(\n () => sourceSelect.value.placeholder !== undefined && currentValue.value === \"\",\n )\n const displayText = computed(() =>\n placeholderSelected.value\n ? (sourceSelect.value.placeholder ?? \"\")\n : (selectedOption.value?.label ?? \"\"),\n )\n const accessibleName = computed(\n () =>\n sourceSelect.value.ariaLabel ??\n (hasTextContent(props.label) ? props.label : undefined) ??\n (hasTextContent(displayText.value) ? displayText.value : undefined),\n )\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n \"mw-input-field--select\",\n mode.value === \"marwes\" && \"mw-input-field--select-marwes\",\n props.variant === \"date\" && \"mw-input-field--select-date\",\n disabled.value && \"mw-input-field--disabled\",\n invalid.value && \"mw-input-field--invalid\",\n ),\n )\n\n const mergedSelectProps = computed<SelectProps>(() => {\n const nextSelectProps: SelectProps = {\n ...sourceSelect.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (externalValue.value !== undefined) {\n nextSelectProps.modelValue = externalValue.value\n }\n\n if (a11yIds.value.describedBy) {\n nextSelectProps.describedBy = a11yIds.value.describedBy\n }\n\n const originalOnValueChange = sourceSelect.value.onValueChange\n nextSelectProps.onValueChange = (nextValue: string) => {\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return nextSelectProps\n })\n\n watch(\n [open, currentValue, () => sourceSelect.value.options],\n ([isOpen]) => {\n if (!isOpen) {\n return\n }\n\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n },\n { deep: true },\n )\n\n watch(disabled, (isDisabled) => {\n if (isDisabled) {\n open.value = false\n }\n })\n\n const handlePointerDown = (event: PointerEvent) => {\n if (controlRef.value?.contains(event.target as Node)) {\n return\n }\n\n open.value = false\n }\n\n watch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener(\"pointerdown\", handlePointerDown)\n return\n }\n\n document.removeEventListener(\"pointerdown\", handlePointerDown)\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener(\"pointerdown\", handlePointerDown)\n })\n\n const commitValue = (nextValue: string) => {\n if (!isControlled.value) {\n internalValue.value = nextValue\n }\n\n sourceSelect.value.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n const selectOptionAtIndex = (index: number) => {\n const option = sourceSelect.value.options[index]\n\n if (!option || option.disabled) {\n return\n }\n\n commitValue(option.value)\n open.value = false\n buttonRef.value?.focus()\n }\n\n const handleTriggerKeydown = (event: KeyboardEvent) => {\n if (disabled.value) {\n return\n }\n\n switch (event.key) {\n case \"ArrowDown\": {\n event.preventDefault()\n\n if (!open.value) {\n open.value = true\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n return\n }\n\n activeIndex.value = getNextEnabledOptionIndex(\n sourceSelect.value.options,\n activeIndex.value,\n 1,\n )\n return\n }\n case \"ArrowUp\": {\n event.preventDefault()\n\n if (!open.value) {\n open.value = true\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n return\n }\n\n activeIndex.value = getNextEnabledOptionIndex(\n sourceSelect.value.options,\n activeIndex.value,\n -1,\n )\n return\n }\n case \"Home\": {\n if (!open.value) {\n return\n }\n\n event.preventDefault()\n activeIndex.value = getFirstEnabledOptionIndex(sourceSelect.value.options)\n return\n }\n case \"End\": {\n if (!open.value) {\n return\n }\n\n event.preventDefault()\n activeIndex.value = getLastEnabledOptionIndex(sourceSelect.value.options)\n return\n }\n case \"Enter\":\n case \" \": {\n event.preventDefault()\n\n if (!open.value) {\n open.value = true\n activeIndex.value = getInitialActiveOptionIndex(\n sourceSelect.value.options,\n currentValue.value,\n )\n return\n }\n\n if (activeIndex.value !== -1) {\n selectOptionAtIndex(activeIndex.value)\n }\n return\n }\n case \"Escape\": {\n if (!open.value) {\n return\n }\n\n event.preventDefault()\n open.value = false\n return\n }\n case \"Tab\": {\n open.value = false\n return\n }\n default:\n return\n }\n }\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"label\", { class: \"mw-input-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n mode.value === \"native\"\n ? h(Select, { ...mergedSelectProps.value, native: true })\n : h(\n \"div\",\n {\n ref: controlRef,\n class: mergeClassNames(\n \"mw-select-field__control\",\n open.value && \"mw-select-field__control--open\",\n ),\n },\n [\n h(\n \"button\",\n {\n ref: buttonRef,\n id: id.value,\n type: \"button\",\n class: mergeClassNames(\n \"mw-select-field__trigger\",\n placeholderSelected.value && \"mw-select-field__trigger--placeholder\",\n invalid.value && \"is-invalid\",\n open.value && \"mw-select-field__trigger--open\",\n ),\n role: \"combobox\",\n \"aria-controls\": `${id.value}-listbox`,\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": accessibleName.value,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": invalid.value ? \"true\" : undefined,\n \"aria-required\": sourceSelect.value.required ? \"true\" : undefined,\n \"aria-activedescendant\":\n open.value && activeIndex.value !== -1\n ? `${id.value}-option-${activeIndex.value}`\n : undefined,\n disabled: disabled.value,\n \"data-placeholder-selected\": placeholderSelected.value ? \"true\" : undefined,\n onClick: () => {\n if (disabled.value) {\n return\n }\n\n open.value = !open.value\n },\n onKeydown: handleTriggerKeydown,\n },\n [\n h(\"span\", { class: \"mw-select-field__trigger-text\" }, displayText.value),\n h(SelectArrowIcon, {\n className: \"mw-select-field__trigger-icon\",\n }),\n ],\n ),\n sourceSelect.value.name\n ? h(\"input\", {\n \"aria-hidden\": \"true\",\n class: \"mw-select-field__proxy-input\",\n name: sourceSelect.value.name,\n type: \"hidden\",\n value: currentValue.value,\n readonly: true,\n })\n : null,\n open.value\n ? h(\n \"div\",\n {\n class: \"mw-select-field__list\",\n id: `${id.value}-listbox`,\n role: \"listbox\",\n },\n sourceSelect.value.options.map((option, optionIndex) => {\n const selected = option.value === currentValue.value\n const active = optionIndex === activeIndex.value\n\n return h(\n \"div\",\n {\n id: `${id.value}-option-${optionIndex}`,\n key: option.value,\n class: mergeClassNames(\n \"mw-select-field__option\",\n active && \"mw-select-field__option--active\",\n selected && \"mw-select-field__option--selected\",\n option.disabled && \"mw-select-field__option--disabled\",\n ),\n role: \"option\",\n \"aria-selected\": selected ? \"true\" : \"false\",\n \"aria-disabled\": option.disabled ? \"true\" : undefined,\n onClick: () => selectOptionAtIndex(optionIndex),\n onMousedown: (event: MouseEvent) => event.preventDefault(),\n onMouseenter: () => {\n if (!option.disabled) {\n activeIndex.value = optionIndex\n }\n },\n },\n [\n h(\"span\", { class: \"mw-select-field__option-label\" }, option.label),\n selected\n ? h(Icon, {\n className: \"mw-select-field__option-check\",\n name: IconName.Check,\n size: \"xs\",\n decorative: true,\n })\n : null,\n ],\n )\n }),\n )\n : null,\n ],\n ),\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesSelectField\",\n props: [...selectFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { buildInputFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Textarea, type TextareaProps } from \"./textarea\"\n\nexport type TextareaFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n textarea: TextareaProps\n ariaDescribedBy?: string\n modelValue?: string\n}\n\nconst textareaFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"textarea\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const TextareaField = defineComponent(\n (props: TextareaFieldProps, { slots, emit }) => {\n const localTextareaId = createLocalId(\"mw-textarea\")\n const id = computed(() => props.id ?? localTextareaId)\n const sourceTextarea = computed<TextareaProps>(() => props.textarea)\n\n const externalValue = computed(\n () => props.modelValue ?? sourceTextarea.value.modelValue ?? sourceTextarea.value.value,\n )\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildInputFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceTextarea.value.disabled || false)\n const readOnly = computed(() => sourceTextarea.value.readOnly || false)\n const invalid = computed(() => hasError.value || sourceTextarea.value.invalid || false)\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n \"mw-input-field--textarea\",\n disabled.value && \"mw-input-field--disabled\",\n invalid.value && \"mw-input-field--invalid\",\n readOnly.value && \"mw-input-field--readonly\",\n ),\n )\n\n const mergedTextareaProps = computed<TextareaProps>(() => {\n const nextTextareaProps: TextareaProps = {\n ...sourceTextarea.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (externalValue.value !== undefined) {\n nextTextareaProps.modelValue = externalValue.value\n }\n\n if (a11yIds.value.describedBy) {\n nextTextareaProps.describedBy = a11yIds.value.describedBy\n }\n\n const originalOnValueChange = sourceTextarea.value.onValueChange\n nextTextareaProps.onValueChange = (nextValue: string) => {\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n }\n\n return nextTextareaProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"label\", { class: \"mw-input-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n h(Textarea, mergedTextareaProps.value),\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesTextareaField\",\n props: [...textareaFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { buildRichTextFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { RichText, type RichTextProps } from \"./rich-text\"\n\nexport type RichTextFieldProps = {\n id?: string\n label: string\n helperText?: string\n error?: string\n editor: RichTextProps\n ariaDescribedBy?: string\n modelValue?: string\n}\n\nconst richTextFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"editor\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const RichTextField = defineComponent(\n (props: RichTextFieldProps, { emit, slots }) => {\n const localEditorId = createLocalId(\"mw-rich-text\")\n const id = computed(() => props.id ?? localEditorId)\n\n const hasHelperText = computed(() => hasTextContent(props.helperText))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildRichTextFieldA11yIds({\n id: id.value,\n hasHelperText: hasHelperText.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const editorProps = computed<RichTextProps>(() => {\n const invalid = hasError.value || props.editor.invalid || false\n const nextEditorProps: RichTextProps = {\n ...props.editor,\n id: id.value,\n invalid,\n labelledBy: a11yIds.value.labelId,\n }\n\n if (props.modelValue !== undefined) {\n nextEditorProps.modelValue = props.modelValue\n }\n\n if (a11yIds.value.describedBy) {\n nextEditorProps.describedBy = a11yIds.value.describedBy\n }\n\n return nextEditorProps\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-input-field\",\n \"mw-input-field--rich-text\",\n props.editor.disabled && \"mw-input-field--disabled\",\n (hasError.value || props.editor.invalid) && \"mw-input-field--invalid\",\n props.editor.readOnly && \"mw-input-field--readonly\",\n ),\n )\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const helperContent = () => slots.helper?.() ?? (props.helperText ? [props.helperText] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-input-field__label\",\n id: a11yIds.value.labelId,\n onClick: () => {\n const editorElement = document.getElementById(id.value) as HTMLDivElement | null\n editorElement?.focus()\n },\n },\n [h(Paragraph, { size: \"md\" }, { default: labelContent })],\n ),\n\n h(\"div\", { class: \"mw-input-field__input-wrapper\" }, [\n h(RichText, {\n ...editorProps.value,\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n }),\n ]),\n\n hasHelperText.value && !hasError.value\n ? h(\"div\", { class: \"mw-input-field__helper\", id: a11yIds.value.helperTextId }, [\n h(Paragraph, { size: \"sm\" }, { default: helperContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-input-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesRichTextField\",\n props: [...richTextFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { buildCurrencyHelperText, getCurrencySymbol, sanitizeCurrencyValue } from \"@marwes-ui/core\"\nimport type { CurrencyCode } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport type { InputProps } from \"./input\"\nimport { InputField, type InputFieldProps } from \"./input-field\"\nimport type { SelectProps } from \"./select\"\nimport { SelectField, type SelectFieldProps } from \"./select-field\"\n\n// Shared field prop keys (from InputFieldProps)\nconst fieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"input\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nconst dropdownFieldPropKeys = [\n \"id\",\n \"label\",\n \"helperText\",\n \"error\",\n \"select\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nexport type DropdownFieldProps = Omit<SelectFieldProps, \"select\"> & {\n select: Omit<SelectProps, \"appearance\"> & {\n native?: boolean\n }\n}\n\nexport const DropdownField = defineComponent({\n name: \"MarwesDropdownField\",\n inheritAttrs: false,\n props: [...dropdownFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as DropdownFieldProps\n return h(\"div\", { \"data-purpose\": \"dropdown\" }, [\n h(\n SelectField,\n {\n ...props,\n select: {\n ...(props.select ?? {}),\n native: props.select?.native ?? false,\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type SearchFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\">\n}\n\nexport const SearchField = defineComponent({\n name: \"MarwesSearchField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as SearchFieldProps\n return h(\"div\", { \"data-purpose\": \"search\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"search\",\n inputMode: \"search\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type PasswordFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\">\n autoComplete?: \"current-password\" | \"new-password\"\n}\n\nconst passwordFieldPropKeys = [...fieldPropKeys, \"autoComplete\"] as const\n\nexport const PasswordField = defineComponent({\n name: \"MarwesPasswordField\",\n inheritAttrs: false,\n props: [...passwordFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as PasswordFieldProps\n const autoComplete = props.autoComplete ?? \"current-password\"\n return h(\"div\", { \"data-purpose\": \"password\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"password\",\n autoComplete,\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type EmailFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const EmailField = defineComponent({\n name: \"MarwesEmailField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as EmailFieldProps\n return h(\"div\", { \"data-purpose\": \"email\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"email\",\n inputMode: \"email\",\n autoComplete: \"email\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type DateOfBirthFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const DateOfBirthField = defineComponent({\n name: \"MarwesDateOfBirthField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as DateOfBirthFieldProps\n return h(\"div\", { \"data-purpose\": \"date-of-birth\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"date\",\n autoComplete: \"bday\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type ZipCodeFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const ZipCodeField = defineComponent({\n name: \"MarwesZipCodeField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as ZipCodeFieldProps\n return h(\"div\", { \"data-purpose\": \"zip-code\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"text\",\n inputMode: \"numeric\",\n autoComplete: \"postal-code\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type PhoneFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const PhoneField = defineComponent({\n name: \"MarwesPhoneField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as PhoneFieldProps\n return h(\"div\", { \"data-purpose\": \"phone\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"tel\",\n inputMode: \"tel\",\n autoComplete: \"tel\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type URLFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\" | \"autoComplete\">\n}\n\nexport const URLField = defineComponent({\n name: \"MarwesURLField\",\n inheritAttrs: false,\n props: [...fieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(rawProps, { slots, emit }) {\n return () => {\n const props = rawProps as unknown as URLFieldProps\n return h(\"div\", { \"data-purpose\": \"url\" }, [\n h(\n InputField,\n {\n ...props,\n input: {\n ...props.input,\n type: \"url\",\n inputMode: \"url\",\n autoComplete: \"url\",\n },\n \"onValue-change\": (value: string) => emit(\"value-change\", value),\n \"onUpdate:modelValue\": (value: string) => emit(\"update:modelValue\", value),\n },\n slots,\n ),\n ])\n }\n },\n})\n\nexport type CurrencyFieldProps = Omit<InputFieldProps, \"input\"> & {\n input?: Omit<InputProps, \"type\" | \"inputMode\">\n currency?: CurrencyCode | string\n}\n\nconst currencyFieldPropKeys = [...fieldPropKeys, \"currency\"] as const\n\nexport const CurrencyField = defineComponent({\n name: \"MarwesCurrencyField\",\n inheritAttrs: false,\n props: [...currencyFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n setup(componentProps, { attrs, slots, emit }) {\n return () => {\n const fieldProps = componentProps as unknown as CurrencyFieldProps\n const currency = fieldProps.currency\n const inputProps = fieldProps.input\n const helperText = buildCurrencyHelperText(fieldProps.helperText, currency)\n const leadingSymbol = getCurrencySymbol(currency)\n const originalOnValueChange = inputProps?.onValueChange\n\n return h(\"div\", { \"data-purpose\": \"currency\", \"data-currency\": currency }, [\n h(\n InputField,\n {\n ...attrs,\n ...fieldProps,\n ...(helperText ? { helperText } : {}),\n ...(leadingSymbol ? { leadingSymbol } : {}),\n input: {\n ...inputProps,\n type: \"text\",\n inputMode: \"decimal\",\n onValueChange: (rawValue: string) => {\n const sanitizedValue = sanitizeCurrencyValue(rawValue)\n originalOnValueChange?.(sanitizedValue)\n },\n },\n \"onValue-change\": (value: string) => {\n emit(\"value-change\", sanitizeCurrencyValue(value))\n },\n \"onUpdate:modelValue\": (value: string) => {\n emit(\"update:modelValue\", sanitizeCurrencyValue(value))\n },\n },\n slots,\n ),\n ])\n }\n },\n})\n","import {\n type AvatarOptions,\n type AvatarRenderContent,\n type CssVars,\n createAvatarRecipe,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\n\nexport type AvatarProps = AvatarOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst avatarPropKeys = [\n \"size\",\n \"type\",\n \"initials\",\n \"src\",\n \"alt\",\n \"iconName\",\n \"decorative\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nfunction renderAvatarContent(\n content: AvatarRenderContent,\n isOuterShellAccessible: boolean,\n isDecorative: boolean,\n) {\n if (content.type === \"image\") {\n return h(\"img\", {\n class: \"mw-avatar__image\",\n src: content.src,\n alt: isDecorative ? \"\" : (content.alt ?? \"\"),\n })\n }\n\n if (content.type === \"initials\") {\n return h(\n \"span\",\n {\n class: \"mw-avatar__initials\",\n \"aria-hidden\": isOuterShellAccessible ? \"true\" : undefined,\n },\n content.initials,\n )\n }\n\n return h(Icon, {\n name: content.iconName ?? \"user\",\n className: \"mw-avatar__icon\",\n decorative: true,\n })\n}\n\nexport const Avatar = defineComponent(\n (props: AvatarProps) => {\n const attrs = useAttrs()\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const kit = computed(() => {\n const avatarOptions: AvatarOptions = {}\n if (props.size !== undefined) avatarOptions.size = props.size\n if (props.type !== undefined) avatarOptions.type = props.type\n if (props.initials !== undefined) avatarOptions.initials = props.initials\n if (props.src !== undefined) avatarOptions.src = props.src\n if (props.alt !== undefined) avatarOptions.alt = props.alt\n if (props.iconName !== undefined) avatarOptions.iconName = props.iconName\n if (props.decorative !== undefined) avatarOptions.decorative = props.decorative\n\n const resolvedAriaLabel = props.ariaLabel ?? ariaLabelFromAttrs\n if (resolvedAriaLabel !== undefined) {\n avatarOptions.ariaLabel = resolvedAriaLabel\n }\n\n return createAvatarRecipe(avatarOptions)\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\n \"class\",\n \"style\",\n \"aria-label\",\n ])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n const isOuterShellAccessible = renderKit.a11y.role === \"img\"\n const isDecorative = renderKit.a11y.ariaHidden === true\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n class: className,\n style,\n role: renderKit.a11y.role,\n \"aria-hidden\": isDecorative ? \"true\" : undefined,\n \"aria-label\": renderKit.a11y.ariaLabel,\n },\n renderAvatarContent(renderKit.content, isOuterShellAccessible, isDecorative),\n )\n }\n },\n {\n name: \"MarwesAvatar\",\n inheritAttrs: false,\n props: [...avatarPropKeys],\n },\n)\n","import { type AvatarOptions, createAvatarRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Avatar, type AvatarProps } from \"./avatar\"\n\nexport type AvatarBadgeProps = AvatarProps & {\n statusLabel?: string\n}\n\nconst avatarBadgePropKeys = [\n \"size\",\n \"type\",\n \"initials\",\n \"src\",\n \"alt\",\n \"iconName\",\n \"decorative\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n \"statusLabel\",\n] as const\n\nfunction buildAvatarOptions(props: AvatarBadgeProps, nativeAriaLabel?: string): AvatarOptions {\n const avatarOptions: AvatarOptions = {}\n if (props.size !== undefined) avatarOptions.size = props.size\n if (props.type !== undefined) avatarOptions.type = props.type\n if (props.initials !== undefined) avatarOptions.initials = props.initials\n if (props.src !== undefined) avatarOptions.src = props.src\n if (props.alt !== undefined) avatarOptions.alt = props.alt\n if (props.iconName !== undefined) avatarOptions.iconName = props.iconName\n if (props.decorative !== undefined) avatarOptions.decorative = props.decorative\n\n const resolvedAriaLabel = props.ariaLabel ?? nativeAriaLabel\n if (resolvedAriaLabel !== undefined) {\n avatarOptions.ariaLabel = resolvedAriaLabel\n }\n\n return avatarOptions\n}\n\nfunction resolveAvatarBadgeLabel(\n avatarOptions: AvatarOptions,\n statusLabel: string,\n): string | undefined {\n const avatarKit = createAvatarRecipe(avatarOptions)\n\n if (avatarKit.a11y.ariaHidden) {\n return undefined\n }\n\n if (avatarKit.content.type === \"image\") {\n return avatarKit.content.alt ? `${avatarKit.content.alt}, ${statusLabel}` : statusLabel\n }\n\n return avatarKit.a11y.ariaLabel ? `${avatarKit.a11y.ariaLabel}, ${statusLabel}` : statusLabel\n}\n\nexport const AvatarBadge = defineComponent(\n (props: AvatarBadgeProps) => {\n const attrs = useAttrs()\n const nativeAriaLabel =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const avatarOptions = computed(() => buildAvatarOptions(props, nativeAriaLabel))\n const avatarKit = computed(() => createAvatarRecipe(avatarOptions.value))\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-avatar-badge\",\n `mw-avatar-badge--${avatarKit.value.dataAttributes[\"data-size\"]}`,\n props.className,\n attrs.class,\n ),\n )\n\n return () => {\n const resolvedStatusLabel = props.statusLabel ?? \"Online\"\n const accessibleLabel = resolveAvatarBadgeLabel(avatarOptions.value, resolvedStatusLabel)\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"aria-label\"])\n\n const innerAvatarProps: AvatarProps = {\n decorative: true,\n }\n if (props.size !== undefined) innerAvatarProps.size = props.size\n if (props.type !== undefined) innerAvatarProps.type = props.type\n if (props.initials !== undefined) innerAvatarProps.initials = props.initials\n if (props.src !== undefined) innerAvatarProps.src = props.src\n if (props.alt !== undefined) innerAvatarProps.alt = props.alt\n if (props.iconName !== undefined) innerAvatarProps.iconName = props.iconName\n const resolvedInnerAriaLabel = props.ariaLabel ?? nativeAriaLabel\n if (resolvedInnerAriaLabel !== undefined) {\n innerAvatarProps.ariaLabel = resolvedInnerAriaLabel\n }\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...(props.dataAttributes ?? {}),\n class: wrapperClass.value,\n style: attrs.style,\n \"data-component\": \"avatar-badge\",\n \"data-size\": avatarKit.value.dataAttributes[\"data-size\"],\n \"data-status\": \"online\",\n role: props.decorative ? undefined : \"img\",\n \"aria-hidden\": props.decorative ? \"true\" : undefined,\n \"aria-label\": props.decorative ? undefined : accessibleLabel,\n },\n [\n h(Avatar, innerAvatarProps),\n h(\"span\", {\n class: \"mw-avatar-badge__indicator\",\n \"aria-hidden\": \"true\",\n }),\n ],\n )\n }\n },\n {\n name: \"MarwesAvatarBadge\",\n inheritAttrs: false,\n props: [...avatarBadgePropKeys],\n },\n)\n","import { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Avatar, type AvatarProps } from \"./avatar\"\n\nexport interface AvatarGroupItem extends Omit<AvatarProps, \"size\" | \"className\" | \"style\"> {\n id?: string\n}\n\nexport type AvatarGroupProps = {\n items: AvatarGroupItem[]\n overflowCount?: number\n overflowLabel?: string\n ariaLabel?: string\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst avatarGroupPropKeys = [\n \"items\",\n \"overflowCount\",\n \"overflowLabel\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport const AvatarGroup = defineComponent(\n (props: AvatarGroupProps) => {\n const attrs = useAttrs()\n const nativeAriaLabel =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n const groupLabel = computed(() => props.ariaLabel ?? nativeAriaLabel ?? \"Avatar group\")\n const wrapperClass = computed(() =>\n mergeClassNames(\"mw-avatar-group\", props.className, attrs.class),\n )\n const shouldRenderOverflowCounter = computed(\n () => props.overflowCount !== undefined && props.overflowCount > 0,\n )\n const resolvedOverflowLabel = computed(\n () => props.overflowLabel ?? `${props.overflowCount} more people`,\n )\n\n return () => {\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"aria-label\"])\n\n return h(\n \"fieldset\",\n {\n ...passthroughAttrs,\n ...(props.dataAttributes ?? {}),\n class: wrapperClass.value,\n \"data-component\": \"avatar-group\",\n \"aria-label\": groupLabel.value,\n },\n [\n ...props.items.map((item, itemIndex) =>\n h(\n \"span\",\n {\n class: \"mw-avatar-group__item\",\n key: item.id ?? `${itemIndex}-${item.initials ?? item.alt ?? \"avatar\"}`,\n },\n [\n h(Avatar, {\n ...item,\n size: \"medium\",\n }),\n ],\n ),\n ),\n shouldRenderOverflowCounter.value\n ? h(\n \"span\",\n {\n class: \"mw-avatar-group__counter\",\n role: \"img\",\n \"aria-label\": resolvedOverflowLabel.value,\n },\n `+${props.overflowCount}`,\n )\n : null,\n ],\n )\n }\n },\n {\n name: \"MarwesAvatarGroup\",\n inheritAttrs: false,\n props: [...avatarGroupPropKeys],\n },\n)\n","import { createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { Avatar, type AvatarProps } from \"./avatar\"\nimport { AvatarBadge, type AvatarBadgeProps } from \"./avatar-badge\"\nimport { AvatarGroup, type AvatarGroupProps } from \"./avatar-group\"\n\nconst avatarPropKeys = [\n \"size\",\n \"type\",\n \"initials\",\n \"src\",\n \"alt\",\n \"iconName\",\n \"decorative\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nconst avatarBadgePropKeys = [...avatarPropKeys, \"statusLabel\"] as const\n\nconst avatarGroupPropKeys = [\n \"items\",\n \"overflowCount\",\n \"overflowLabel\",\n \"ariaLabel\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport type ProfileAvatarProps = AvatarProps\n\nexport const ProfileAvatar = defineComponent({\n name: \"MarwesProfileAvatar\",\n inheritAttrs: false,\n props: [...avatarPropKeys],\n setup(rawProps, { attrs }) {\n const props = rawProps as unknown as ProfileAvatarProps\n\n return () =>\n h(Avatar, {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"profile\"),\n },\n })\n },\n})\n\nexport type PresenceAvatarProps = AvatarBadgeProps\n\nexport const PresenceAvatar = defineComponent({\n name: \"MarwesPresenceAvatar\",\n inheritAttrs: false,\n props: [...avatarBadgePropKeys],\n setup(rawProps, { attrs }) {\n const props = rawProps as unknown as PresenceAvatarProps\n\n return () =>\n h(AvatarBadge, {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"presence\"),\n },\n })\n },\n})\n\nexport type TeamAvatarGroupProps = AvatarGroupProps\n\nexport const TeamAvatarGroup = defineComponent({\n name: \"MarwesTeamAvatarGroup\",\n inheritAttrs: false,\n props: [...avatarGroupPropKeys],\n setup(rawProps, { attrs }) {\n const props = rawProps as unknown as TeamAvatarGroupProps\n\n return () =>\n h(AvatarGroup, {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"team\"),\n },\n })\n },\n})\n","import { checkboxRecipe } from \"@marwes-ui/core\"\nimport type { CheckboxProps as CoreCheckboxProps, CssVars } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, onMounted, ref, useAttrs, watch } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type CheckboxProps = CoreCheckboxProps & {\n modelValue?: boolean\n onCheckedChange?: (checked: boolean) => void\n onChange?: (event: Event) => void\n className?: string\n}\n\nconst checkboxPropKeys = [\n \"size\",\n \"checked\",\n \"modelValue\",\n \"defaultChecked\",\n \"indeterminate\",\n \"disabled\",\n \"required\",\n \"invalid\",\n \"id\",\n \"name\",\n \"value\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"onCheckedChange\",\n \"onChange\",\n \"className\",\n] as const\n\nexport const Checkbox = defineComponent(\n (props: CheckboxProps, { emit }) => {\n const attrs = useAttrs()\n const inputRef = ref<HTMLInputElement | null>(null)\n\n const recipeInput = computed<CoreCheckboxProps>(() => {\n const nextRecipeInput: CoreCheckboxProps = { ...props }\n const checked = props.modelValue ?? props.checked\n\n if (checked !== undefined) {\n nextRecipeInput.checked = checked\n } else {\n // biome-ignore lint/performance/noDelete: Required for exactOptionalPropertyTypes compatibility\n delete nextRecipeInput.checked\n }\n\n return nextRecipeInput\n })\n\n const kit = computed(() => checkboxRecipe({ ...recipeInput.value }))\n\n const syncIndeterminate = () => {\n if (!inputRef.value) {\n return\n }\n inputRef.value.indeterminate = kit.value.indeterminate\n }\n\n onMounted(syncIndeterminate)\n watch(() => kit.value.indeterminate, syncIndeterminate, { immediate: true })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\"input\", {\n ...passthroughAttrs,\n ref: inputRef,\n type: \"checkbox\",\n class: className,\n style,\n id: a11y.id,\n name: a11y.name,\n value: a11y.value,\n disabled: a11y.disabled === true,\n required: a11y.required === true,\n \"aria-label\": a11y.ariaLabel,\n \"aria-labelledby\": a11y.ariaLabelledBy,\n \"aria-describedby\": a11y.ariaDescribedBy,\n \"aria-checked\": a11y.ariaChecked,\n \"aria-invalid\": a11y.ariaInvalid === true ? true : undefined,\n checked: renderKit.checked ?? renderKit.defaultChecked,\n onChange: (event: Event) => {\n props.onChange?.(event)\n const target = event.target as HTMLInputElement\n props.onCheckedChange?.(target.checked)\n emit(\"update:modelValue\", target.checked)\n emit(\"checked-change\", target.checked)\n emit(\"change\", event)\n },\n })\n }\n },\n {\n name: \"MarwesCheckbox\",\n inheritAttrs: false,\n props: [...checkboxPropKeys],\n emits: [\"update:modelValue\", \"checked-change\", \"change\"],\n },\n)\n","import { buildCheckboxFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Checkbox, type CheckboxProps } from \"./checkbox\"\n\nexport type CheckboxFieldProps = {\n id?: string\n label: string\n description?: string\n error?: string\n checkbox?: CheckboxProps\n ariaDescribedBy?: string\n modelValue?: boolean\n}\n\nconst checkboxFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"checkbox\",\n \"ariaDescribedBy\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const CheckboxField = defineComponent(\n (props: CheckboxFieldProps, { slots, emit }) => {\n const localCheckboxId = createLocalId(\"mw-checkbox\")\n const id = computed(() => props.id ?? localCheckboxId)\n const sourceCheckbox = computed<CheckboxProps>(() => props.checkbox ?? {})\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n const ids = computed(() =>\n buildCheckboxFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceCheckbox.value.disabled || false)\n const invalid = computed(() => hasError.value || sourceCheckbox.value.invalid || false)\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-checkbox-field\",\n disabled.value && \"mw-checkbox-field--disabled\",\n invalid.value && \"mw-checkbox-field--invalid\",\n ),\n )\n\n const mergedCheckboxProps = computed<CheckboxProps>(() => {\n const nextCheckboxProps: CheckboxProps = {\n ...sourceCheckbox.value,\n id: id.value,\n invalid: invalid.value,\n }\n\n if (props.modelValue !== undefined) {\n nextCheckboxProps.modelValue = props.modelValue\n }\n\n if (ids.value.describedBy) {\n nextCheckboxProps.ariaDescribedBy = ids.value.describedBy\n }\n\n const originalOnCheckedChange = sourceCheckbox.value.onCheckedChange\n nextCheckboxProps.onCheckedChange = (nextChecked: boolean) => {\n originalOnCheckedChange?.(nextChecked)\n emit(\"update:modelValue\", nextChecked)\n emit(\"checked-change\", nextChecked)\n }\n\n return nextCheckboxProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\"div\", { class: wrapperClass.value }, [\n h(\"div\", { class: \"mw-checkbox-field__row\" }, [\n h(Checkbox, mergedCheckboxProps.value),\n h(\"label\", { class: \"mw-checkbox-field__label\", for: id.value }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n ]),\n\n hasDescription.value\n ? h(\"div\", { class: \"mw-checkbox-field__description\", id: ids.value.descriptionId }, [\n h(Paragraph, { size: \"sm\" }, { default: descriptionContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-checkbox-field__error\",\n id: ids.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ])\n },\n {\n name: \"MarwesCheckboxField\",\n props: [...checkboxFieldPropKeys],\n emits: [\"update:modelValue\", \"checked-change\"],\n },\n)\n","import { buildCheckboxGroupFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Checkbox, type CheckboxProps } from \"./checkbox\"\n\nexport interface CheckboxGroupFieldOption {\n value: string\n label: string\n disabled?: boolean\n indeterminate?: boolean\n}\n\nexport type CheckboxGroupFieldCheckboxProps = Omit<\n CheckboxProps,\n | \"ariaDescribedBy\"\n | \"ariaLabel\"\n | \"ariaLabelledBy\"\n | \"checked\"\n | \"className\"\n | \"defaultChecked\"\n | \"disabled\"\n | \"id\"\n | \"indeterminate\"\n | \"invalid\"\n | \"modelValue\"\n | \"name\"\n | \"onChange\"\n | \"onCheckedChange\"\n | \"required\"\n | \"value\"\n>\n\nexport interface CheckboxGroupFieldProps {\n label: string\n options: CheckboxGroupFieldOption[]\n description?: string\n error?: string\n value?: string[]\n defaultValue?: string[]\n checkbox?: CheckboxGroupFieldCheckboxProps\n disabled?: boolean\n required?: boolean\n name?: string\n id?: string\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: string[]\n}\n\nconst checkboxGroupFieldPropKeys = [\n \"label\",\n \"options\",\n \"description\",\n \"error\",\n \"value\",\n \"defaultValue\",\n \"checkbox\",\n \"disabled\",\n \"required\",\n \"name\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nfunction orderSelectedValues(values: string[], options: CheckboxGroupFieldOption[]): string[] {\n const optionValues = new Set(options.map((option) => option.value))\n const selectedValues = new Set(values)\n const knownValues = options\n .map((option) => option.value)\n .filter((value) => selectedValues.has(value))\n const unknownValues = values.filter((value) => !optionValues.has(value))\n return [...knownValues, ...unknownValues]\n}\n\nexport const CheckboxGroupField = defineComponent(\n (props: CheckboxGroupFieldProps, { slots, emit }) => {\n const localId = createLocalId(\"mw-checkbox-group\")\n const id = computed(() => props.id ?? localId)\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildCheckboxGroupFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n const internalValue = ref<string[]>(\n orderSelectedValues(props.defaultValue ?? [], props.options),\n )\n const selectedValues = computed(() => {\n if (props.modelValue !== undefined) {\n return orderSelectedValues(props.modelValue, props.options)\n }\n\n if (props.value !== undefined) {\n return orderSelectedValues(props.value, props.options)\n }\n\n return orderSelectedValues(internalValue.value, props.options)\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-checkbox-group-field\",\n props.disabled && \"mw-checkbox-group-field--disabled\",\n hasError.value && \"mw-checkbox-group-field--invalid\",\n ),\n )\n\n function handleToggle(nextValue: string): void {\n const selectedValueSet = new Set(selectedValues.value)\n const rawNextValue = selectedValueSet.has(nextValue)\n ? selectedValues.value.filter((value) => value !== nextValue)\n : [...selectedValues.value, nextValue]\n const orderedNextValue = orderSelectedValues(rawNextValue, props.options)\n\n if (!isControlled.value) {\n internalValue.value = orderedNextValue\n }\n\n emit(\"update:modelValue\", orderedNextValue)\n emit(\"change\", orderedNextValue)\n }\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\n \"fieldset\",\n {\n class: wrapperClass.value,\n \"aria-labelledby\": a11yIds.value.labelId,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": hasError.value ? true : undefined,\n \"aria-required\": props.required ? true : undefined,\n disabled: props.disabled ? true : undefined,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"legend\", { class: \"mw-checkbox-group-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n\n hasDescription.value\n ? h(\n \"div\",\n { class: \"mw-checkbox-group-field__description\", id: a11yIds.value.descriptionId },\n [h(Paragraph, { size: \"sm\" }, { default: descriptionContent })],\n )\n : null,\n\n h(\n \"div\",\n { class: \"mw-checkbox-group-field__options\" },\n props.options.map((option, index) => {\n const optionId = `${id.value}-option-${index}`\n const isOptionDisabled = props.disabled || option.disabled || false\n const isChecked = selectedValues.value.includes(option.value)\n const checkboxProps: Record<string, unknown> = {\n ...(props.checkbox ?? {}),\n id: optionId,\n value: option.value,\n checked: isChecked,\n disabled: isOptionDisabled,\n invalid: hasError.value,\n \"onUpdate:modelValue\": (nextChecked: boolean) => {\n if (nextChecked !== isChecked) {\n handleToggle(option.value)\n }\n },\n }\n\n if (props.name !== undefined) {\n checkboxProps.name = props.name\n }\n\n if (option.indeterminate !== undefined) {\n checkboxProps.indeterminate = option.indeterminate\n }\n\n return h(\n \"label\",\n {\n class: \"mw-checkbox-group-field__option\",\n for: optionId,\n key: option.value,\n },\n [\n h(Checkbox, checkboxProps),\n h(Paragraph, { size: \"md\" }, { default: () => [option.label] }),\n ],\n )\n }),\n ),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-checkbox-group-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesCheckboxGroupField\",\n props: [...checkboxGroupFieldPropKeys],\n emits: [\"update:modelValue\", \"change\"],\n },\n)\n","import { createDividerRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, DividerOptions, DividerOrientation, DividerSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type DividerProps = DividerOptions & {\n size?: DividerSize\n orientation?: DividerOrientation\n className?: string\n}\n\nconst dividerPropKeys = [\"size\", \"orientation\", \"id\", \"className\"] as const\n\nexport const Divider = defineComponent(\n (props: DividerProps) => {\n const attrs = useAttrs()\n const kit = computed(() => createDividerRecipe(props))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\"hr\", {\n ...passthroughAttrs,\n ...renderKit.a11y,\n ...renderKit.dataAttributes,\n class: className,\n style,\n })\n }\n },\n {\n name: \"MarwesDivider\",\n inheritAttrs: false,\n props: [...dividerPropKeys],\n },\n)\n","import { type CssVars, type SkeletonOptions, createSkeletonRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SkeletonProps = SkeletonOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst skeletonPropKeys = [\n \"variant\",\n \"width\",\n \"height\",\n \"radius\",\n \"animation\",\n \"decorative\",\n \"ariaLabel\",\n \"id\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport const Skeleton = defineComponent(\n (props: SkeletonProps) => {\n const attrs = useAttrs()\n const ariaLabelFromAttrs =\n typeof attrs[\"aria-label\"] === \"string\" ? (attrs[\"aria-label\"] as string) : undefined\n\n const renderKit = computed(() =>\n createSkeletonRecipe({\n ...(props.variant !== undefined ? { variant: props.variant } : {}),\n ...(props.width !== undefined ? { width: props.width } : {}),\n ...(props.height !== undefined ? { height: props.height } : {}),\n ...(props.radius !== undefined ? { radius: props.radius } : {}),\n ...(props.animation !== undefined ? { animation: props.animation } : {}),\n ...(props.decorative !== undefined ? { decorative: props.decorative } : {}),\n ...(props.id !== undefined ? { id: props.id } : {}),\n ...(props.ariaLabel !== undefined\n ? { ariaLabel: props.ariaLabel }\n : ariaLabelFromAttrs !== undefined\n ? { ariaLabel: ariaLabelFromAttrs }\n : {}),\n }),\n )\n\n return () => {\n const skeletonRenderKit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\n \"class\",\n \"style\",\n \"aria-label\",\n ])\n\n return h(\"span\", {\n ...passthroughAttrs,\n ...skeletonRenderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n class: mergeClassNames(skeletonRenderKit.className, props.className, attrs.class),\n style: mergeStyles(skeletonRenderKit.vars as CssVars, attrs.style),\n role: skeletonRenderKit.a11y.role,\n id: skeletonRenderKit.a11y.id,\n \"aria-hidden\": skeletonRenderKit.a11y.ariaHidden ? \"true\" : undefined,\n \"aria-label\": skeletonRenderKit.a11y.ariaLabel,\n \"aria-live\": skeletonRenderKit.a11y.ariaLive,\n })\n }\n },\n {\n name: \"MarwesSkeleton\",\n inheritAttrs: false,\n props: [...skeletonPropKeys],\n },\n)\n","import { createSpacingRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, SpacingOptions, SpacingSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SpacingProps = SpacingOptions & {\n size?: SpacingSize\n spacing?: SpacingSize\n className?: string\n}\n\nexport type SpacerProps = SpacingProps\n\nconst spacingPropKeys = [\"size\", \"spacing\", \"scale\", \"className\"] as const\n\nexport const Spacing = defineComponent(\n (props: SpacingProps) => {\n const attrs = useAttrs()\n const kit = computed(() => {\n const resolvedSize = props.spacing ?? props.size\n\n return createSpacingRecipe({\n ...(resolvedSize !== undefined ? { size: resolvedSize } : {}),\n ...(props.scale !== undefined ? { scale: props.scale } : {}),\n })\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\"div\", {\n ...passthroughAttrs,\n ...renderKit.a11y,\n ...renderKit.dataAttributes,\n class: className,\n style,\n })\n }\n },\n {\n name: \"MarwesSpacing\",\n inheritAttrs: false,\n props: [...spacingPropKeys],\n },\n)\n\nexport const Spacer = Spacing\n","import { headingRecipe } from \"@marwes-ui/core\"\nimport type { CssVars, HeadingOptions, HeadingSize } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport {\n getDefaultSlotChildren,\n mergeClassNames,\n mergeStyles,\n omitAttrs,\n} from \"../../internal/render-utils\"\nimport { useTheme } from \"../../provider/use-theme\"\n\ntype HeadingBaseProps = Omit<HeadingOptions, \"level\"> & {\n size?: HeadingSize\n className?: string\n}\n\nexport type HeadingLevel = 1 | 2 | 3\ntype HeadingTag = `h${HeadingLevel}`\n\nconst headingPropKeys = [\"size\", \"id\", \"ariaLabel\", \"className\"] as const\n\nexport function createHeadingComponent<L extends HeadingLevel>(level: L) {\n const tagName = `h${level}` as HeadingTag\n return defineComponent(\n (props: HeadingBaseProps, { slots }) => {\n const attrs = useAttrs()\n const theme = useTheme()\n const kit = computed(() => headingRecipe({ ...props, level }, theme))\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n tagName,\n {\n ...passthroughAttrs,\n id: renderKit.a11y.id,\n \"aria-label\": renderKit.a11y.ariaLabel,\n class: className,\n style,\n },\n getDefaultSlotChildren(slots),\n )\n }\n },\n {\n name: `Marwes${tagName.toUpperCase()}`,\n inheritAttrs: false,\n props: [...headingPropKeys],\n },\n )\n}\n\nexport type { HeadingBaseProps }\nexport type HeadingProps = HeadingBaseProps\n","import { createHeadingComponent } from \"./create-heading\"\n\nexport const H1 = createHeadingComponent(1)\nexport const H2 = createHeadingComponent(2)\nexport const H3 = createHeadingComponent(3)\n","import {\n type StatTileOptions,\n type StatTileTone,\n type StatTileTrendDirection,\n createStatTileRecipe,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface StatTileProps extends Pick<StatTileOptions, \"dataAttributes\"> {\n className?: string\n label: string\n value: string\n subtitle?: string\n trendValue?: string\n trendDirection?: StatTileTrendDirection\n tone?: StatTileTone\n}\n\nconst statTilePropKeys = [\n \"className\",\n \"label\",\n \"value\",\n \"subtitle\",\n \"trendValue\",\n \"trendDirection\",\n \"tone\",\n \"dataAttributes\",\n] as const\n\nexport const StatTile = defineComponent(\n (props: StatTileProps) => {\n const attrs = useAttrs()\n const renderKit = computed(() =>\n createStatTileRecipe({\n ...(props.tone !== undefined ? { tone: props.tone } : {}),\n ...(props.trendDirection !== undefined ? { trendDirection: props.trendDirection } : {}),\n ...(props.trendValue !== undefined ? { trendValue: props.trendValue } : {}),\n ...(props.dataAttributes !== undefined ? { dataAttributes: props.dataAttributes } : {}),\n }),\n )\n\n return () => {\n const kit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n\n return h(\n \"article\",\n {\n ...passthroughAttrs,\n ...kit.dataAttributes,\n class: mergeClassNames(kit.className, props.className, attrs.class),\n },\n [\n h(\n \"div\",\n { class: kit.slots.headerClassName },\n [\n h(\"span\", { class: kit.slots.labelClassName }, props.label),\n props.trendValue\n ? h(\n \"span\",\n {\n ...kit.trendDataAttributes,\n class: kit.slots.trendClassName,\n \"aria-label\": kit.a11y.trendAriaLabel,\n },\n [\n kit.trendIcon\n ? h(\n \"span\",\n { class: kit.slots.trendIconClassName, \"aria-hidden\": \"true\" },\n kit.trendIcon,\n )\n : null,\n h(\"span\", { class: kit.slots.trendValueClassName }, props.trendValue),\n ].filter(Boolean),\n )\n : null,\n ].filter(Boolean),\n ),\n h(\"div\", { class: kit.slots.valueClassName }, props.value),\n props.subtitle ? h(\"div\", { class: kit.slots.subtitleClassName }, props.subtitle) : null,\n ].filter(Boolean),\n )\n }\n },\n {\n name: \"MarwesStatTile\",\n inheritAttrs: false,\n props: [...statTilePropKeys],\n },\n)\n","import {\n type DatePickerDay,\n type DatePickerDevice,\n type DatePickerOptions,\n createDatePickerRecipe,\n} from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface DatePickerProps\n extends Pick<\n DatePickerOptions,\n | \"monthLabel\"\n | \"weekdayLabels\"\n | \"weeks\"\n | \"previousYearLabel\"\n | \"previousMonthLabel\"\n | \"nextMonthLabel\"\n | \"nextYearLabel\"\n | \"cancelLabel\"\n | \"applyLabel\"\n | \"calendarLabel\"\n | \"dataAttributes\"\n > {\n className?: string\n device?: DatePickerDevice\n}\n\nconst datePickerPropKeys = [\n \"className\",\n \"monthLabel\",\n \"weekdayLabels\",\n \"weeks\",\n \"device\",\n \"previousYearLabel\",\n \"previousMonthLabel\",\n \"nextMonthLabel\",\n \"nextYearLabel\",\n \"cancelLabel\",\n \"applyLabel\",\n \"calendarLabel\",\n \"dataAttributes\",\n] as const\n\nexport const DatePicker = defineComponent(\n (props: DatePickerProps, { emit }) => {\n const attrs = useAttrs()\n const renderKit = computed(() =>\n createDatePickerRecipe({\n ...(props.monthLabel !== undefined ? { monthLabel: props.monthLabel } : {}),\n ...(props.weekdayLabels !== undefined ? { weekdayLabels: props.weekdayLabels } : {}),\n ...(props.weeks !== undefined ? { weeks: props.weeks } : {}),\n ...(props.device !== undefined ? { device: props.device } : {}),\n ...(props.previousYearLabel !== undefined\n ? { previousYearLabel: props.previousYearLabel }\n : {}),\n ...(props.previousMonthLabel !== undefined\n ? { previousMonthLabel: props.previousMonthLabel }\n : {}),\n ...(props.nextMonthLabel !== undefined ? { nextMonthLabel: props.nextMonthLabel } : {}),\n ...(props.nextYearLabel !== undefined ? { nextYearLabel: props.nextYearLabel } : {}),\n ...(props.cancelLabel !== undefined ? { cancelLabel: props.cancelLabel } : {}),\n ...(props.applyLabel !== undefined ? { applyLabel: props.applyLabel } : {}),\n ...(props.calendarLabel !== undefined ? { calendarLabel: props.calendarLabel } : {}),\n ...(props.dataAttributes !== undefined ? { dataAttributes: props.dataAttributes } : {}),\n }),\n )\n\n return () => {\n const kit = renderKit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n\n return h(\n \"section\",\n {\n ...passthroughAttrs,\n ...kit.dataAttributes,\n class: mergeClassNames(kit.className, props.className, attrs.class),\n \"aria-label\": kit.labels.calendar,\n },\n [\n h(\"header\", { class: kit.slots.headerClassName }, [\n h(\"div\", { class: kit.slots.navGroupClassName }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.previousYear,\n onClick: () => emit(\"previousYear\"),\n },\n \"«\",\n ),\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.previousMonth,\n onClick: () => emit(\"previousMonth\"),\n },\n \"‹\",\n ),\n ]),\n h(\"div\", { class: kit.slots.monthLabelClassName }, kit.monthLabel),\n h(\"div\", { class: kit.slots.navGroupClassName }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.nextMonth,\n onClick: () => emit(\"nextMonth\"),\n },\n \"›\",\n ),\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.navButtonClassName,\n \"aria-label\": kit.labels.nextYear,\n onClick: () => emit(\"nextYear\"),\n },\n \"»\",\n ),\n ]),\n ]),\n h(\"table\", { class: kit.slots.gridClassName, \"aria-label\": kit.monthLabel }, [\n h(\"thead\", [\n h(\n \"tr\",\n { class: \"mw-date-picker__weekdays\" },\n kit.weekdayLabels.map((weekday) =>\n h(\n \"th\",\n { key: weekday, class: kit.slots.weekdayClassName, scope: \"col\" },\n weekday,\n ),\n ),\n ),\n ]),\n h(\n \"tbody\",\n kit.weeks.map((week, weekIndex) =>\n h(\n \"tr\",\n {\n key: week.map((day) => day.date ?? day.label).join(\"-\"),\n class: kit.slots.weekClassName,\n },\n week.map((day: DatePickerDay, dayIndex: number) => {\n const dayKit = kit.dayKits[weekIndex]?.[dayIndex]\n if (!dayKit) return null\n return h(\n \"td\",\n {\n key: day.date ?? `${weekIndex}-${dayIndex}`,\n class: kit.slots.cellClassName,\n },\n [\n h(\n \"button\",\n {\n type: \"button\",\n ...dayKit.dataAttributes,\n class: dayKit.className,\n \"aria-label\": dayKit.ariaLabel,\n \"aria-pressed\": dayKit.selected ? \"true\" : undefined,\n disabled: dayKit.disabled,\n onClick: () => emit(\"daySelect\", day),\n },\n day.label,\n ),\n ],\n )\n }),\n ),\n ),\n ),\n ]),\n h(\"footer\", { class: kit.slots.footerClassName }, [\n h(\n \"button\",\n {\n type: \"button\",\n class: kit.slots.footerButtonClassName,\n onClick: () => emit(\"cancel\"),\n },\n kit.labels.cancel,\n ),\n kit.labels.apply\n ? h(\n \"button\",\n {\n type: \"button\",\n class: mergeClassNames(\n kit.slots.footerButtonClassName,\n \"mw-date-picker__footer-button--primary\",\n ),\n onClick: () => emit(\"apply\"),\n },\n kit.labels.apply,\n )\n : null,\n ]),\n ],\n )\n }\n },\n {\n name: \"MarwesDatePicker\",\n inheritAttrs: false,\n props: [...datePickerPropKeys],\n emits: [\n \"previousYear\",\n \"previousMonth\",\n \"nextMonth\",\n \"nextYear\",\n \"daySelect\",\n \"cancel\",\n \"apply\",\n ],\n },\n)\n","import { createCardRecipe } from \"@marwes-ui/core\"\nimport { defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface CardProps {\n className?: string\n id?: string\n /** Data attributes for AI-friendly metadata (used by purpose variants). */\n dataAttributes?: Record<string, string>\n}\n\nconst cardPropKeys = [\"className\", \"id\", \"dataAttributes\"] as const\n\nexport const Card = defineComponent(\n (props: CardProps, { slots }) => {\n const attrs = useAttrs()\n\n return () => {\n const kit = createCardRecipe(\n props.dataAttributes ? { dataAttributes: props.dataAttributes } : {},\n )\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(kit.className, props.className, attrs.class)\n\n return h(\n \"div\",\n { ...passthroughAttrs, ...kit.dataAttributes, id: props.id, class: className },\n [\n slots.title\n ? h(\"div\", { class: \"mw-card__header\" }, [\n h(\"span\", { class: \"mw-card__title\" }, slots.title()),\n ])\n : null,\n h(\"div\", { class: \"mw-card__body\" }, slots.default?.()),\n ].filter(Boolean),\n )\n }\n },\n {\n name: \"MarwesCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { Card, type CardProps } from \"./card\"\n\nconst cardPropKeys = [\"className\", \"id\", \"dataAttributes\"] as const\n\nexport type ProductCardProps = CardProps\n\nexport const ProductCard = defineComponent({\n name: \"MarwesProductCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ProductCardProps\n\n return () =>\n h(\n Card,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"product-card\",\n },\n },\n slots,\n )\n },\n})\n\nexport type ProfileCardProps = CardProps\n\nexport const ProfileCard = defineComponent({\n name: \"MarwesProfileCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ProfileCardProps\n\n return () =>\n h(\n Card,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"profile-card\",\n },\n },\n slots,\n )\n },\n})\n\nexport type StatCardProps = CardProps\n\nexport const StatCard = defineComponent({\n name: \"MarwesStatCard\",\n inheritAttrs: false,\n props: [...cardPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as StatCardProps\n\n return () =>\n h(\n Card,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"stat-card\",\n },\n },\n slots,\n )\n },\n})\n","import { createToastRecipe } from \"@marwes-ui/core\"\nimport type { ToastOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface ToastProps extends ToastOptions {\n onDismiss?: () => void\n className?: string\n id?: string\n dataAttributes?: Record<string, string>\n}\n\nconst toastPropKeys = [\n \"variant\",\n \"ariaLive\",\n \"onDismiss\",\n \"className\",\n \"id\",\n \"dataAttributes\",\n] as const\n\nexport const Toast = defineComponent(\n (props: ToastProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: ToastOptions = {}\n if (props.variant !== undefined) opts.variant = props.variant\n if (props.ariaLive !== undefined) opts.ariaLive = props.ariaLive\n return createToastRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n\n const children = [\n slots.icon\n ? h(\"span\", { class: \"mw-toast__icon\", \"aria-hidden\": \"true\" }, slots.icon())\n : null,\n h(\"div\", { class: \"mw-toast__body\" }, [\n h(\"span\", { class: \"mw-toast__text\" }, slots.default?.()),\n slots.action ? h(\"span\", { class: \"mw-toast__action\" }, slots.action()) : null,\n ]),\n props.onDismiss\n ? h(\"button\", {\n type: \"button\",\n class: \"mw-toast__dismiss\",\n \"aria-label\": \"Dismiss\",\n onClick: () => props.onDismiss?.(),\n })\n : null,\n ].filter(Boolean)\n\n return h(\n \"div\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n id: props.id,\n class: className,\n role: a11y.role,\n \"aria-live\": a11y.ariaLive,\n \"aria-atomic\": \"true\",\n },\n children,\n )\n }\n },\n {\n name: \"MarwesToast\",\n inheritAttrs: false,\n props: [...toastPropKeys],\n emits: [\"dismiss\"],\n },\n)\n","import { IconName, createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { Icon } from \"../icon\"\nimport { Toast, type ToastProps } from \"./toast\"\n\nconst toastPropKeys = [\n \"variant\",\n \"ariaLive\",\n \"onDismiss\",\n \"className\",\n \"id\",\n \"dataAttributes\",\n] as const\n\nfunction createPurposeToast(args: {\n name: string\n dataPurpose: \"success-toast\" | \"error-toast\" | \"warning-toast\" | \"info-toast\"\n iconName: IconName\n defaultVariant: ToastProps[\"variant\"]\n defaultAriaLive: NonNullable<ToastProps[\"ariaLive\"]>\n}) {\n return defineComponent({\n name: args.name,\n inheritAttrs: false,\n props: [...toastPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ToastProps\n\n return () => {\n const toastProps: Record<string, unknown> = {\n ...attrs,\n variant: props.variant ?? args.defaultVariant,\n ariaLive: props.ariaLive ?? args.defaultAriaLive,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(args.dataPurpose),\n },\n }\n\n if (props.onDismiss !== undefined) {\n toastProps.onDismiss = props.onDismiss\n }\n\n if (props.className !== undefined) {\n toastProps.className = props.className\n }\n\n if (props.id !== undefined) {\n toastProps.id = props.id\n }\n\n return h(Toast as never, toastProps, {\n ...slots,\n icon: slots.icon ?? (() => [h(Icon, { name: args.iconName, decorative: true })]),\n })\n }\n },\n })\n}\n\nexport type SuccessToastProps = ToastProps\nexport const SuccessToast = createPurposeToast({\n name: \"MarwesSuccessToast\",\n dataPurpose: \"success-toast\",\n iconName: IconName.Check,\n defaultVariant: \"outline\",\n defaultAriaLive: \"polite\",\n})\n\nexport type ErrorToastProps = ToastProps\nexport const ErrorToast = createPurposeToast({\n name: \"MarwesErrorToast\",\n dataPurpose: \"error-toast\",\n iconName: IconName.XCircle,\n defaultVariant: \"outline\",\n defaultAriaLive: \"assertive\",\n})\n\nexport type WarningToastProps = ToastProps\nexport const WarningToast = createPurposeToast({\n name: \"MarwesWarningToast\",\n dataPurpose: \"warning-toast\",\n iconName: IconName.AlertTriangle,\n defaultVariant: \"outline\",\n defaultAriaLive: \"polite\",\n})\n\nexport type InfoToastProps = ToastProps\nexport const InfoToast = createPurposeToast({\n name: \"MarwesInfoToast\",\n dataPurpose: \"info-toast\",\n iconName: IconName.Info,\n defaultVariant: \"outline\",\n defaultAriaLive: \"polite\",\n})\n","import { computed, defineComponent, h, onBeforeUnmount, onMounted, watch } from \"vue\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Toast } from \"./toast\"\nimport type { ManagedToast, ToastContainerProps } from \"./toast-manager-types\"\nimport { ErrorToast, InfoToast, SuccessToast, WarningToast } from \"./variants\"\n\nfunction normalizeChildren(value: ManagedToast[\"children\"]): unknown[] {\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return Array.isArray(value) ? value : [value]\n}\n\nfunction renderToastByIntent(toast: ManagedToast, onDismiss?: (id: string) => void) {\n const component =\n toast.intent === \"success\"\n ? SuccessToast\n : toast.intent === \"error\"\n ? ErrorToast\n : toast.intent === \"warning\"\n ? WarningToast\n : toast.intent === \"info\"\n ? InfoToast\n : Toast\n\n const toastProps: Record<string, unknown> = {\n id: toast.id,\n }\n\n if (toast.className !== undefined) {\n toastProps.className = toast.className\n }\n\n if (toast.variant !== undefined) {\n toastProps.variant = toast.variant\n }\n\n if (toast.ariaLive !== undefined) {\n toastProps.ariaLive = toast.ariaLive\n }\n\n if (onDismiss) {\n toastProps.onDismiss = () => onDismiss(toast.id)\n }\n\n if (toast.dataAttributes !== undefined || toast.intent !== undefined) {\n toastProps.dataAttributes = {\n ...(toast.dataAttributes ?? {}),\n ...(toast.intent !== undefined ? { \"data-intent\": toast.intent } : {}),\n }\n }\n\n return h(component as never, toastProps, {\n default: () => normalizeChildren(toast.children),\n ...(toast.icon !== undefined ? { icon: () => normalizeChildren(toast.icon) } : {}),\n ...(toast.action !== undefined ? { action: () => normalizeChildren(toast.action) } : {}),\n })\n}\n\nconst ToastViewportItem = defineComponent({\n name: \"MarwesToastViewportItem\",\n props: [\"toast\", \"onDismiss\"],\n setup(rawProps) {\n const props = rawProps as {\n toast: ManagedToast\n onDismiss?: (id: string) => void\n }\n\n let timeoutHandle: ReturnType<typeof setTimeout> | undefined\n let timerStartedAt: number | null = null\n let remainingDuration: number | null = null\n let pointerInside = false\n let focusInside = false\n\n function clearTimer() {\n if (timeoutHandle !== undefined) {\n clearTimeout(timeoutHandle)\n timeoutHandle = undefined\n }\n\n timerStartedAt = null\n }\n\n function scheduleTimer(delay: number) {\n if (\n !props.onDismiss ||\n delay <= 0 ||\n pointerInside ||\n focusInside ||\n timeoutHandle !== undefined\n ) {\n return\n }\n\n timerStartedAt = Date.now()\n timeoutHandle = setTimeout(() => {\n timeoutHandle = undefined\n timerStartedAt = null\n remainingDuration = 0\n props.onDismiss?.(props.toast.id)\n }, delay)\n }\n\n function pauseTimer() {\n if (timeoutHandle === undefined || timerStartedAt === null) {\n return\n }\n\n const elapsed = Date.now() - timerStartedAt\n const nextRemainingDuration = remainingDuration ?? 0\n\n remainingDuration = Math.max(nextRemainingDuration - elapsed, 0)\n clearTimer()\n }\n\n function resumeTimer() {\n if (pointerInside || focusInside || remainingDuration === null || remainingDuration <= 0) {\n return\n }\n\n scheduleTimer(remainingDuration)\n }\n\n function syncTimer() {\n clearTimer()\n pointerInside = false\n focusInside = false\n\n if (!props.onDismiss || props.toast.duration === undefined || props.toast.duration === null) {\n remainingDuration = null\n return\n }\n\n if (props.toast.duration <= 0) {\n remainingDuration = 0\n return\n }\n\n remainingDuration = props.toast.duration\n scheduleTimer(props.toast.duration)\n }\n\n onMounted(syncTimer)\n watch(() => [props.toast.id, props.toast.duration, props.onDismiss], syncTimer)\n onBeforeUnmount(clearTimer)\n\n return () =>\n h(\n \"div\",\n {\n class: \"mw-toast-container__item\",\n onMouseenter: () => {\n pointerInside = true\n pauseTimer()\n },\n onMouseleave: () => {\n pointerInside = false\n resumeTimer()\n },\n onFocusin: () => {\n focusInside = true\n pauseTimer()\n },\n onFocusout: (event: FocusEvent) => {\n const nextTarget = event.relatedTarget as Node | null\n\n if (\n event.currentTarget instanceof HTMLElement &&\n event.currentTarget.contains(nextTarget)\n ) {\n return\n }\n\n focusInside = false\n resumeTimer()\n },\n },\n [renderToastByIntent(props.toast, props.onDismiss)],\n )\n },\n})\n\nexport const ToastContainer = defineComponent({\n name: \"MarwesToastContainer\",\n props: [\"toasts\", \"placement\", \"maxVisible\", \"className\", \"onDismiss\"],\n setup(rawProps) {\n const props = rawProps as ToastContainerProps\n\n const visibleToasts = computed(() => {\n if (!props.maxVisible || props.maxVisible <= 0) {\n return props.toasts\n }\n\n return props.toasts.slice(-props.maxVisible)\n })\n\n return () =>\n h(\n \"div\",\n {\n class: mergeClassNames(\n \"mw-toast-container\",\n `mw-toast-container--${props.placement ?? \"top-right\"}`,\n props.className,\n ),\n },\n visibleToasts.value.map((toast) =>\n h(ToastViewportItem, {\n key: toast.id,\n toast,\n ...(props.onDismiss ? { onDismiss: props.onDismiss } : {}),\n }),\n ),\n )\n },\n})\n","import type { ToastIntent, ToastPlacement, ToastVariant } from \"@marwes-ui/core\"\nimport type { InjectionKey, VNodeChild } from \"vue\"\n\nexport interface ManagedToast {\n id: string\n children?: VNodeChild\n icon?: VNodeChild\n action?: VNodeChild\n onDismiss?: () => void\n className?: string\n variant?: ToastVariant\n ariaLive?: \"polite\" | \"assertive\"\n intent?: ToastIntent\n duration?: number | null\n dataAttributes?: Record<string, string>\n}\n\nexport type ShowToastOptions = Omit<ManagedToast, \"id\">\n\nexport interface ToastContainerProps {\n toasts: ManagedToast[]\n placement?: ToastPlacement\n maxVisible?: number\n className?: string\n onDismiss?: (id: string) => void\n}\n\nexport interface ToastProviderProps {\n placement?: ToastPlacement\n maxVisible?: number\n defaultDuration?: number | null\n}\n\nexport interface ToastController {\n show: (toast: ShowToastOptions) => string\n dismiss: (id: string) => void\n clear: () => void\n}\n\nexport const toastContextKey: InjectionKey<ToastController> = Symbol(\"MarwesToastContext\")\n","import { Fragment, defineComponent, h, inject, provide, shallowRef } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { ToastContainer } from \"./toast-container\"\nimport type {\n ManagedToast,\n ShowToastOptions,\n ToastController,\n ToastProviderProps,\n} from \"./toast-manager-types\"\nimport { toastContextKey } from \"./toast-manager-types\"\n\nexport const ToastProvider = defineComponent({\n name: \"MarwesToastProvider\",\n props: [\"placement\", \"maxVisible\", \"defaultDuration\"],\n setup(rawProps, { slots }) {\n const props = rawProps as unknown as ToastProviderProps\n const toasts = shallowRef<ManagedToast[]>([])\n\n function dismiss(id: string) {\n const toast = toasts.value.find((item) => item.id === id)\n toast?.onDismiss?.()\n toasts.value = toasts.value.filter((item) => item.id !== id)\n }\n\n function clear() {\n for (const toast of toasts.value) {\n toast.onDismiss?.()\n }\n\n toasts.value = []\n }\n\n function show(toast: ShowToastOptions): string {\n const id = createLocalId(\"mw-toast\")\n toasts.value = [\n ...toasts.value,\n {\n ...toast,\n id,\n duration:\n toast.duration === undefined\n ? props.defaultDuration === undefined\n ? 4000\n : props.defaultDuration\n : toast.duration,\n },\n ]\n return id\n }\n\n const controller: ToastController = {\n show,\n dismiss,\n clear,\n }\n\n provide(toastContextKey, controller)\n\n return () =>\n h(Fragment, null, [\n ...(slots.default?.() ?? []),\n h(ToastContainer as never, {\n toasts: toasts.value,\n onDismiss: dismiss,\n ...(props.placement ? { placement: props.placement } : {}),\n ...(props.maxVisible !== undefined ? { maxVisible: props.maxVisible } : {}),\n }),\n ])\n },\n})\n\nexport function useToast(): ToastController {\n const controller = inject(toastContextKey, null)\n\n if (!controller) {\n throw new Error(\"ToastProvider is missing. Wrap your app in <ToastProvider />.\")\n }\n\n return controller\n}\n","import { type CssVars, type TooltipOptions, createTooltipRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type TooltipProps = TooltipOptions & {\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst tooltipPropKeys = [\"id\", \"className\", \"dataAttributes\"] as const\n\nexport const Tooltip = defineComponent(\n (props: TooltipProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const tooltipOptions: TooltipOptions = {}\n\n if (props.id !== undefined) {\n tooltipOptions.id = props.id\n }\n\n return createTooltipRecipe(tooltipOptions)\n })\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n id: renderKit.a11y.id,\n class: className,\n style,\n role: renderKit.a11y.role,\n },\n slots.default?.(),\n )\n }\n },\n {\n name: \"MarwesTooltip\",\n inheritAttrs: false,\n props: [...tooltipPropKeys],\n },\n)\n","import { IconName, type IconNameType } from \"@marwes-ui/core\"\nimport type { VNodeChild } from \"vue\"\nimport { computed, defineComponent, h, ref, useAttrs, watch } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\nimport { Tooltip } from \"./tooltip\"\n\nconst TOOLTIP_EXIT_DURATION_MS = 160\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nexport type TooltipGroupProps = {\n id?: string\n content?: VNodeChild\n icon?: IconNameType\n triggerLabel?: string\n open?: boolean\n defaultOpen?: boolean\n tooltipId?: string\n className?: string\n tooltipClassName?: string\n triggerClassName?: string\n dataAttributes?: Record<string, string>\n onOpenChange?: (open: boolean) => void\n}\n\nconst tooltipGroupPropKeys = [\n \"id\",\n \"content\",\n \"icon\",\n \"triggerLabel\",\n \"open\",\n \"defaultOpen\",\n \"tooltipId\",\n \"className\",\n \"tooltipClassName\",\n \"triggerClassName\",\n \"dataAttributes\",\n \"onOpenChange\",\n] as const\n\nexport const TooltipGroup = defineComponent(\n (props: TooltipGroupProps, { attrs, slots, emit }) => {\n const localId = createLocalId(\"mw-tooltip-group\")\n const internalOpen = ref(props.defaultOpen ?? false)\n const isControlled = computed(() => props.open !== undefined)\n const resolvedOpen = computed(\n () => (isControlled.value ? props.open : internalOpen.value) ?? false,\n )\n const isTooltipMounted = ref(resolvedOpen.value)\n const resolvedId = computed(() => props.id ?? localId)\n const resolvedTooltipId = computed(() => props.tooltipId ?? `${resolvedId.value}-tooltip`)\n const content = computed<VNodeChild | undefined>(() => slots.default?.() ?? props.content)\n\n const updateOpen = (nextOpen: boolean): void => {\n if (resolvedOpen.value === nextOpen) {\n return\n }\n\n if (!isControlled.value) {\n internalOpen.value = nextOpen\n }\n\n props.onOpenChange?.(nextOpen)\n emit(\"update:open\", nextOpen)\n emit(\"open-change\", nextOpen)\n }\n\n watch(resolvedOpen, (nextOpen, _previousOpen, onCleanup) => {\n if (nextOpen) {\n isTooltipMounted.value = true\n return\n }\n\n const timeoutId = window.setTimeout(() => {\n isTooltipMounted.value = false\n }, TOOLTIP_EXIT_DURATION_MS)\n\n onCleanup(() => {\n window.clearTimeout(timeoutId)\n })\n })\n\n return () => {\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(\"mw-tooltip-group\", props.className, attrs.class)\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...(props.dataAttributes ?? {}),\n id: props.id,\n class: className,\n style: attrs.style,\n \"data-component\": \"tooltip-group\",\n \"data-open\": resolvedOpen.value ? \"true\" : undefined,\n onMouseenter: () => updateOpen(true),\n onMouseleave: () => updateOpen(false),\n onFocusin: () => updateOpen(true),\n onFocusout: (event: FocusEvent) => {\n const nextFocusedElement = event.relatedTarget\n const currentTarget = event.currentTarget\n\n if (\n nextFocusedElement instanceof Node &&\n currentTarget instanceof HTMLElement &&\n currentTarget.contains(nextFocusedElement)\n ) {\n return\n }\n\n updateOpen(false)\n },\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n updateOpen(false)\n }\n },\n },\n [\n isTooltipMounted.value\n ? h(\n Tooltip,\n {\n id: resolvedTooltipId.value,\n ...(props.tooltipClassName ? { className: props.tooltipClassName } : {}),\n \"data-state\": resolvedOpen.value ? \"open\" : \"closed\",\n \"aria-hidden\": resolvedOpen.value ? undefined : \"true\",\n },\n {\n default: () => toChildren(content.value),\n },\n )\n : null,\n h(\n \"button\",\n {\n type: \"button\",\n class: mergeClassNames(\"mw-tooltip-group__trigger\", props.triggerClassName),\n \"aria-label\": props.triggerLabel ?? \"Show tooltip\",\n \"aria-describedby\": resolvedOpen.value ? resolvedTooltipId.value : undefined,\n },\n [h(Icon, { name: props.icon ?? IconName.HelpCircle, decorative: true })],\n ),\n ],\n )\n }\n },\n {\n name: \"MarwesTooltipGroup\",\n inheritAttrs: false,\n props: [...tooltipGroupPropKeys],\n emits: [\"update:open\", \"open-change\"],\n },\n)\n","import { createAccordionRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport interface AccordionProps {\n id?: string\n open?: boolean\n disabled?: boolean\n className?: string\n}\n\nconst accordionPropKeys = [\"id\", \"open\", \"disabled\", \"className\"] as const\n\nexport const Accordion = defineComponent(\n (props: AccordionProps, { slots, emit }) => {\n const attrs = useAttrs()\n const localId = createLocalId(\"mw-accordion\")\n const resolvedId = computed(() => props.id ?? localId)\n\n const kit = computed(() => {\n const opts: import(\"@marwes-ui/core\").AccordionOptions = { id: resolvedId.value }\n if (props.open !== undefined) opts.open = props.open\n if (props.disabled !== undefined) opts.disabled = props.disabled\n return createAccordionRecipe(opts)\n })\n\n function handleTriggerClick(): void {\n if (props.disabled) return\n emit(\"toggle\")\n }\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n\n return h(\"div\", { ...passthroughAttrs, class: className }, [\n h(\n \"button\",\n {\n id: a11y.triggerId,\n type: \"button\",\n class: \"mw-accordion__trigger\",\n \"aria-expanded\": a11y.ariaExpanded,\n \"aria-controls\": a11y.panelId,\n \"aria-disabled\": a11y.ariaDisabled,\n disabled: props.disabled,\n onClick: handleTriggerClick,\n },\n [\n h(\"span\", { class: \"mw-accordion__title\" }, slots.title?.()),\n h(\"span\", { class: \"mw-accordion__icon\", \"aria-hidden\": \"true\" }),\n ],\n ),\n h(\n \"div\",\n {\n id: a11y.panelId,\n role: \"region\",\n \"aria-labelledby\": a11y.triggerId,\n class: \"mw-accordion__panel\",\n hidden: !props.open,\n },\n [h(\"div\", { class: \"mw-accordion__content\" }, slots.default?.())],\n ),\n ])\n }\n },\n {\n name: \"MarwesAccordion\",\n inheritAttrs: false,\n props: [...accordionPropKeys],\n emits: [\"toggle\"],\n },\n)\n","import { buildAccordionFieldA11yIds } from \"@marwes-ui/core\"\nimport { type VNodeChild, computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Accordion } from \"./accordion\"\n\nexport interface AccordionFieldItem {\n value: string\n title: VNodeChild\n content: VNodeChild\n disabled?: boolean\n}\n\nexport interface AccordionFieldProps {\n label: string\n description?: string\n error?: string\n items: AccordionFieldItem[]\n multiple?: boolean\n openItems?: string[]\n onOpenItemsChange?: (openItems: string[]) => void\n defaultOpenItems?: string[]\n disabled?: boolean\n id?: string\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: string[]\n}\n\nconst accordionFieldPropKeys = [\n \"label\",\n \"description\",\n \"error\",\n \"items\",\n \"multiple\",\n \"openItems\",\n \"onOpenItemsChange\",\n \"defaultOpenItems\",\n \"disabled\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nexport const AccordionField = defineComponent(\n (props: AccordionFieldProps, { emit }) => {\n const localId = createLocalId(\"mw-accordion-field\")\n const id = computed(() => props.id ?? localId)\n const multipleAllowed = computed(() => props.multiple ?? true)\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildAccordionFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const isControlled = computed(\n () => props.modelValue !== undefined || props.openItems !== undefined,\n )\n const internalOpenItems = ref<string[]>(props.defaultOpenItems ?? [])\n const currentOpenItems = computed(() => {\n if (props.modelValue !== undefined) return props.modelValue\n if (props.openItems !== undefined) return props.openItems\n return internalOpenItems.value\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-accordion-field\",\n props.disabled && \"mw-accordion-field--disabled\",\n hasError.value && \"mw-accordion-field--invalid\",\n ),\n )\n\n function handleToggle(itemValue: string): void {\n const isCurrentlyOpen = currentOpenItems.value.includes(itemValue)\n let nextOpenItems: string[]\n\n if (isCurrentlyOpen) {\n nextOpenItems = currentOpenItems.value.filter((v) => v !== itemValue)\n } else if (multipleAllowed.value) {\n nextOpenItems = [...currentOpenItems.value, itemValue]\n } else {\n nextOpenItems = [itemValue]\n }\n\n if (!isControlled.value) {\n internalOpenItems.value = nextOpenItems\n }\n props.onOpenItemsChange?.(nextOpenItems)\n emit(\"update:modelValue\", nextOpenItems)\n emit(\"change\", nextOpenItems)\n }\n\n return () =>\n h(\n \"fieldset\",\n {\n class: wrapperClass.value,\n \"aria-labelledby\": a11yIds.value.labelId,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": hasError.value ? true : undefined,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"legend\", { class: \"mw-accordion-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: () => [props.label] }),\n ]),\n\n h(\n \"div\",\n { class: \"mw-accordion-field__items\" },\n props.items.map((item) => {\n const isDisabled = props.disabled || item.disabled || false\n const isOpen = currentOpenItems.value.includes(item.value)\n\n return h(\n Accordion as unknown as string,\n {\n key: item.value,\n id: `${id.value}-item-${item.value}`,\n open: isOpen,\n disabled: isDisabled,\n onToggle: () => handleToggle(item.value),\n },\n {\n title: () => toChildren(item.title),\n default: () => toChildren(item.content),\n },\n )\n }),\n ),\n\n hasDescription.value\n ? h(\n \"div\",\n { class: \"mw-accordion-field__description\", id: a11yIds.value.descriptionId },\n [h(Paragraph, { size: \"sm\" }, { default: () => [props.description] })],\n )\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-accordion-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: () => [props.error] })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesAccordionField\",\n props: [...accordionFieldPropKeys],\n emits: [\"update:modelValue\", \"change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { AccordionField, type AccordionFieldProps } from \"./accordion-field\"\n\nconst accordionFieldPropKeys = [\n \"label\",\n \"description\",\n \"error\",\n \"items\",\n \"multiple\",\n \"openItems\",\n \"onOpenItemsChange\",\n \"defaultOpenItems\",\n \"disabled\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type FAQAccordionProps = Omit<AccordionFieldProps, \"multiple\">\n\nexport const FAQAccordion = defineComponent({\n name: \"MarwesFAQAccordion\",\n inheritAttrs: false,\n props: [...accordionFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as FAQAccordionProps\n\n return () =>\n h(\n AccordionField,\n {\n ...attrs,\n ...props,\n multiple: false,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"faq\",\n },\n },\n slots,\n )\n },\n})\n\nexport type SettingsAccordionProps = Omit<AccordionFieldProps, \"multiple\">\n\nexport const SettingsAccordion = defineComponent({\n name: \"MarwesSettingsAccordion\",\n inheritAttrs: false,\n props: [...accordionFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as SettingsAccordionProps\n\n return () =>\n h(\n AccordionField,\n {\n ...attrs,\n ...props,\n multiple: true,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"settings\",\n },\n },\n slots,\n )\n },\n})\n\nexport type SectionsAccordionProps = AccordionFieldProps\n\nexport const SectionsAccordion = defineComponent({\n name: \"MarwesSectionsAccordion\",\n inheritAttrs: false,\n props: [...accordionFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as SectionsAccordionProps\n\n return () =>\n h(\n AccordionField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"sections\",\n },\n },\n slots,\n )\n },\n})\n","import { radioRecipe } from \"@marwes-ui/core\"\nimport type { RadioOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\n\nexport type RadioProps = RadioOptions & {\n modelValue?: boolean\n onCheckedChange?: (checked: boolean) => void\n onChange?: (event: Event) => void\n className?: string\n}\n\nconst radioPropKeys = [\n \"checked\",\n \"modelValue\",\n \"defaultChecked\",\n \"disabled\",\n \"required\",\n \"invalid\",\n \"id\",\n \"name\",\n \"value\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"onCheckedChange\",\n \"onChange\",\n \"className\",\n] as const\n\nexport const Radio = defineComponent(\n (props: RadioProps, { emit }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: RadioOptions = {}\n const checked = props.modelValue ?? props.checked\n if (checked !== undefined) opts.checked = checked\n if (props.defaultChecked !== undefined) opts.defaultChecked = props.defaultChecked\n if (props.disabled !== undefined) opts.disabled = props.disabled\n if (props.required !== undefined) opts.required = props.required\n if (props.invalid !== undefined) opts.invalid = props.invalid\n if (props.id !== undefined) opts.id = props.id\n if (props.name !== undefined) opts.name = props.name\n if (props.value !== undefined) opts.value = props.value\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n if (props.ariaLabelledBy !== undefined) opts.ariaLabelledBy = props.ariaLabelledBy\n if (props.ariaDescribedBy !== undefined) opts.ariaDescribedBy = props.ariaDescribedBy\n return radioRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n\n return h(\"input\", {\n ...passthroughAttrs,\n type: \"radio\",\n class: className,\n id: a11y.id,\n name: a11y.name,\n value: a11y.value,\n disabled: a11y.disabled === true,\n required: a11y.required === true,\n \"aria-label\": a11y.ariaLabel,\n \"aria-labelledby\": a11y.ariaLabelledBy,\n \"aria-describedby\": a11y.ariaDescribedBy,\n \"aria-invalid\": a11y.ariaInvalid === true ? true : undefined,\n checked: renderKit.checked ?? renderKit.defaultChecked,\n onChange: (event: Event) => {\n props.onChange?.(event)\n const target = event.target as HTMLInputElement\n props.onCheckedChange?.(target.checked)\n emit(\"update:modelValue\", target.checked)\n emit(\"checked-change\", target.checked)\n emit(\"change\", event)\n },\n })\n }\n },\n {\n name: \"MarwesRadio\",\n inheritAttrs: false,\n props: [...radioPropKeys],\n emits: [\"update:modelValue\", \"checked-change\", \"change\"],\n },\n)\n","import { buildRadioGroupFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Radio } from \"./radio\"\n\nexport interface RadioGroupFieldOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface RadioGroupFieldProps {\n name: string\n label: string\n description?: string\n error?: string\n value?: string\n onChange?: (value: string) => void\n defaultValue?: string\n options: RadioGroupFieldOption[]\n disabled?: boolean\n required?: boolean\n id?: string\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: string\n}\n\nconst radioGroupFieldPropKeys = [\n \"name\",\n \"label\",\n \"description\",\n \"error\",\n \"value\",\n \"onChange\",\n \"defaultValue\",\n \"options\",\n \"disabled\",\n \"required\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const RadioGroupField = defineComponent(\n (props: RadioGroupFieldProps, { slots, emit }) => {\n const localGroupId = createLocalId(\"mw-radio-group\")\n const id = computed(() => props.id ?? localGroupId)\n\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n\n const a11yIds = computed(() =>\n buildRadioGroupFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n const internalValue = ref(props.defaultValue)\n const selectedValue = computed(() => {\n if (props.modelValue !== undefined) return props.modelValue\n if (props.value !== undefined) return props.value\n return internalValue.value\n })\n\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-radio-group-field\",\n props.disabled && \"mw-radio-group-field--disabled\",\n hasError.value && \"mw-radio-group-field--invalid\",\n ),\n )\n\n function handleSelect(nextValue: string): void {\n if (!isControlled.value) {\n internalValue.value = nextValue\n }\n\n props.onChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"change\", nextValue)\n }\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"div\", { class: \"mw-radio-group-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"sm\" }, { default: labelContent }),\n ]),\n\n hasDescription.value\n ? h(\n \"div\",\n { class: \"mw-radio-group-field__description\", id: a11yIds.value.descriptionId },\n [h(Paragraph, { size: \"sm\" }, { default: descriptionContent })],\n )\n : null,\n\n h(\n \"div\",\n {\n role: \"radiogroup\",\n \"aria-labelledby\": a11yIds.value.labelId,\n \"aria-describedby\": a11yIds.value.describedBy,\n \"aria-invalid\": hasError.value ? true : undefined,\n \"aria-required\": props.required ? true : undefined,\n class: \"mw-radio-group-field__options\",\n },\n props.options.map((option) => {\n const optionId = `${id.value}-option-${option.value}`\n const isOptionDisabled = props.disabled || option.disabled || false\n\n return h(\n \"label\",\n {\n class: \"mw-radio-group-field__option\",\n for: optionId,\n key: option.value,\n },\n [\n h(Radio, {\n id: optionId,\n name: props.name,\n value: option.value,\n checked: selectedValue.value === option.value,\n disabled: isOptionDisabled,\n invalid: hasError.value,\n ...(props.required ? { required: true } : {}),\n onCheckedChange: (checked: boolean) => {\n if (checked) {\n handleSelect(option.value)\n }\n },\n }),\n h(Paragraph, { size: \"sm\" }, { default: () => [option.label] }),\n ],\n )\n }),\n ),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-radio-group-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesRadioGroupField\",\n props: [...radioGroupFieldPropKeys],\n emits: [\"update:modelValue\", \"change\"],\n },\n)\n","import { computed, defineComponent, h } from \"vue\"\nimport { RadioGroupField, type RadioGroupFieldProps } from \"./radio-group-field\"\n\nconst radioGroupFieldPropKeys = [\n \"name\",\n \"label\",\n \"description\",\n \"error\",\n \"value\",\n \"onChange\",\n \"defaultValue\",\n \"options\",\n \"disabled\",\n \"required\",\n \"id\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type YesNoRadioGroupProps = Omit<RadioGroupFieldProps, \"options\"> & {\n yesLabel?: string\n noLabel?: string\n}\n\nexport const YesNoRadioGroup = defineComponent({\n name: \"MarwesYesNoRadioGroup\",\n inheritAttrs: false,\n props: [...radioGroupFieldPropKeys, \"yesLabel\", \"noLabel\"],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as YesNoRadioGroupProps\n\n const options = computed(() => [\n { value: \"yes\", label: props.yesLabel ?? \"Yes\" },\n { value: \"no\", label: props.noLabel ?? \"No\" },\n ])\n\n return () =>\n h(\n RadioGroupField,\n {\n ...attrs,\n ...props,\n options: options.value,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"binary-choice\",\n },\n },\n slots,\n )\n },\n})\n\nexport type RatingRadioGroupProps = Omit<RadioGroupFieldProps, \"options\"> & {\n min?: number\n max?: number\n labelFn?: (value: number) => string\n}\n\nexport const RatingRadioGroup = defineComponent({\n name: \"MarwesRatingRadioGroup\",\n inheritAttrs: false,\n props: [...radioGroupFieldPropKeys, \"min\", \"max\", \"labelFn\"],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as RatingRadioGroupProps\n\n const options = computed(() => {\n const min = props.min ?? 1\n const max = props.max ?? 5\n const labelFn = props.labelFn ?? String\n\n return Array.from({ length: max - min + 1 }, (_, index) => {\n const value = min + index\n return { value: String(value), label: labelFn(value) }\n })\n })\n\n return () =>\n h(\n RadioGroupField,\n {\n ...attrs,\n ...props,\n options: options.value,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"rating\",\n },\n },\n slots,\n )\n },\n})\n\nexport type OptionRadioGroupProps = RadioGroupFieldProps\n\nexport const OptionRadioGroup = defineComponent({\n name: \"MarwesOptionRadioGroup\",\n inheritAttrs: false,\n props: [...radioGroupFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as OptionRadioGroupProps\n\n return () =>\n h(\n RadioGroupField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"selection\",\n },\n },\n slots,\n )\n },\n})\n","import { createBadgeRecipe } from \"@marwes-ui/core\"\nimport type { BadgeOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type BadgeProps = BadgeOptions & {\n className?: string\n id?: string\n /** Data attributes for AI-friendly metadata (used by context variants). */\n dataAttributes?: Record<string, string>\n}\n\nconst badgePropKeys = [\"variant\", \"ariaLabel\", \"className\", \"id\", \"dataAttributes\"] as const\n\nexport const Badge = defineComponent(\n (props: BadgeProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: BadgeOptions = {}\n if (props.variant !== undefined) opts.variant = props.variant\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n return createBadgeRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars, attrs.style)\n\n return h(\n \"span\",\n {\n ...passthroughAttrs,\n ...renderKit.dataAttributes,\n ...(props.dataAttributes ?? {}),\n id: props.id,\n class: className,\n style,\n \"aria-label\": a11y.ariaLabel,\n },\n slots.default?.(),\n )\n }\n },\n {\n name: \"MarwesBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n },\n)\n","import { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\n\nexport interface BadgeGroupProps {\n /** Visible label for the badge group. */\n label: string\n\n /** Additional CSS class names. */\n className?: string\n\n /** Explicit ID. If omitted, generated via createLocalId(). */\n id?: string\n\n /** Data attributes for AI-friendly metadata (used by context variants). */\n dataAttributes?: Record<string, string>\n}\n\nconst badgeGroupPropKeys = [\"label\", \"className\", \"id\", \"dataAttributes\"] as const\n\nexport const BadgeGroup = defineComponent(\n (props: BadgeGroupProps, { slots }) => {\n const localId = createLocalId(\"mw-badge-group\")\n const id = computed(() => props.id ?? localId)\n const labelId = computed(() => `${id.value}-label`)\n\n const wrapperClass = computed(() => mergeClassNames(\"mw-badge-group\", props.className))\n\n return () =>\n h(\n \"fieldset\",\n {\n class: wrapperClass.value,\n \"aria-labelledby\": labelId.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"legend\", { class: \"mw-badge-group__label\", id: labelId.value }, [\n h(Paragraph, { size: \"sm\" }, { default: () => [props.label] }),\n ]),\n h(\"div\", { class: \"mw-badge-group__items\" }, slots.default?.()),\n ],\n )\n },\n {\n name: \"MarwesBadgeGroup\",\n inheritAttrs: false,\n props: [...badgeGroupPropKeys],\n },\n)\n","import { createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport { defineComponent, h } from \"vue\"\nimport { Badge, type BadgeProps } from \"./badge\"\n\nconst badgePropKeys = [\"variant\", \"ariaLabel\", \"className\", \"id\", \"dataAttributes\"] as const\n\n// ============================================================================\n// STATUS BADGE - Operational/lifecycle status\n// ============================================================================\n\nexport type StatusBadgeProps = BadgeProps\n\nexport const StatusBadge = defineComponent({\n name: \"MarwesStatusBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as StatusBadgeProps\n\n return () =>\n h(\n Badge,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"status\"),\n },\n },\n slots,\n )\n },\n})\n\n// ============================================================================\n// PRIORITY BADGE - Urgency or importance levels\n// ============================================================================\n\nexport type PriorityBadgeProps = BadgeProps\n\nexport const PriorityBadge = defineComponent({\n name: \"MarwesPriorityBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as PriorityBadgeProps\n\n return () =>\n h(\n Badge,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"priority\"),\n },\n },\n slots,\n )\n },\n})\n\n// ============================================================================\n// NOTIFICATION BADGE - Counts and alerts\n// ============================================================================\n\nexport type NotificationBadgeProps = BadgeProps\n\nexport const NotificationBadge = defineComponent({\n name: \"MarwesNotificationBadge\",\n inheritAttrs: false,\n props: [...badgePropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as NotificationBadgeProps\n\n return () =>\n h(\n Badge,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"notification\"),\n },\n },\n slots,\n )\n },\n})\n","import { createSwitchRecipe } from \"@marwes-ui/core\"\nimport type { SwitchOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SwitchProps = SwitchOptions & {\n className?: string\n modelValue?: boolean\n onCheckedChange?: (checked: boolean) => void\n onClick?: (event: MouseEvent) => void\n id?: string\n}\n\nconst switchPropKeys = [\n \"size\",\n \"checked\",\n \"modelValue\",\n \"disabled\",\n \"ariaLabel\",\n \"ariaLabelledby\",\n \"ariaDescribedBy\",\n \"className\",\n \"onCheckedChange\",\n \"onClick\",\n \"id\",\n] as const\n\nexport const Switch = defineComponent(\n (props: SwitchProps, { slots, emit }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: SwitchOptions = {}\n if (props.size !== undefined) opts.size = props.size\n const checked = props.modelValue ?? props.checked\n if (checked !== undefined) opts.checked = checked\n if (props.disabled !== undefined) opts.disabled = props.disabled\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n if (props.ariaLabelledby !== undefined) opts.ariaLabelledby = props.ariaLabelledby\n if (props.ariaDescribedBy !== undefined) opts.ariaDescribedBy = props.ariaDescribedBy\n return createSwitchRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const isDisabled = a11y.ariaDisabled === true\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars, attrs.style)\n\n return h(\n \"button\",\n {\n ...passthroughAttrs,\n id: props.id,\n type: \"button\",\n class: className,\n style,\n disabled: isDisabled,\n role: a11y.role,\n \"aria-checked\": a11y.ariaChecked,\n \"aria-disabled\": a11y.ariaDisabled,\n \"aria-label\": a11y.ariaLabel,\n \"aria-labelledby\": a11y.ariaLabelledby,\n \"aria-describedby\": a11y.ariaDescribedBy,\n onClick: (event: MouseEvent) => {\n props.onClick?.(event)\n\n if (isDisabled || event.defaultPrevented) {\n return\n }\n\n const nextChecked = !a11y.ariaChecked\n props.onCheckedChange?.(nextChecked)\n emit(\"update:modelValue\", nextChecked)\n emit(\"checked-change\", nextChecked)\n },\n },\n [\n h(\"span\", { class: \"mw-switch__track\" }, [h(\"span\", { class: \"mw-switch__thumb\" })]),\n slots.default?.(),\n ],\n )\n }\n },\n {\n name: \"MarwesSwitch\",\n inheritAttrs: false,\n props: [...switchPropKeys],\n emits: [\"update:modelValue\", \"checked-change\"],\n },\n)\n","import { buildSwitchFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Switch, type SwitchProps } from \"./switch\"\n\nexport type SwitchFieldProps = {\n id?: string\n label: string\n description?: string\n error?: string\n switch?: SwitchProps\n ariaDescribedBy?: string\n dataAttributes?: Record<string, string>\n modelValue?: boolean\n}\n\nconst switchFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"switch\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const SwitchField = defineComponent(\n (props: SwitchFieldProps, { slots, emit }) => {\n const localSwitchId = createLocalId(\"mw-switch\")\n const id = computed(() => props.id ?? localSwitchId)\n const sourceSwitch = computed<SwitchProps>(() => props.switch ?? {})\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n const a11yIds = computed(() =>\n buildSwitchFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceSwitch.value.disabled || false)\n const invalid = computed(() => hasError.value)\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-switch-field\",\n disabled.value && \"mw-switch-field--disabled\",\n invalid.value && \"mw-switch-field--invalid\",\n ),\n )\n\n const mergedSwitchProps = computed<SwitchProps>(() => {\n const {\n ariaLabel: _ignoredAriaLabel,\n ariaLabelledby: _ignoredAriaLabelledby,\n ariaDescribedBy: _ignoredAriaDescribedBy,\n onCheckedChange: originalOnCheckedChange,\n ...restSwitchProps\n } = sourceSwitch.value\n const nextSwitchProps: SwitchProps = {\n ...restSwitchProps,\n id: id.value,\n ariaLabelledby: a11yIds.value.labelId,\n }\n\n if (props.modelValue !== undefined) {\n nextSwitchProps.modelValue = props.modelValue\n }\n\n if (a11yIds.value.describedBy) {\n nextSwitchProps.ariaDescribedBy = a11yIds.value.describedBy\n }\n\n nextSwitchProps.onCheckedChange = (nextChecked: boolean) => {\n originalOnCheckedChange?.(nextChecked)\n emit(\"update:modelValue\", nextChecked)\n emit(\"checked-change\", nextChecked)\n }\n\n return nextSwitchProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"div\", { class: \"mw-switch-field__row\" }, [\n h(Switch, mergedSwitchProps.value),\n h(\"span\", { class: \"mw-switch-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n ]),\n\n hasDescription.value\n ? h(\"div\", { class: \"mw-switch-field__description\", id: a11yIds.value.descriptionId }, [\n h(Paragraph, { size: \"sm\" }, { default: descriptionContent }),\n ])\n : null,\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-switch-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesSwitchField\",\n props: [...switchFieldPropKeys],\n emits: [\"update:modelValue\", \"checked-change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { SwitchField, type SwitchFieldProps } from \"./switch-field\"\n\nconst switchFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"switch\",\n \"ariaDescribedBy\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type FeatureToggleProps = SwitchFieldProps\n\nexport const FeatureToggle = defineComponent({\n name: \"MarwesFeatureToggle\",\n inheritAttrs: false,\n props: [...switchFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as FeatureToggleProps\n\n return () =>\n h(\n SwitchField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"feature-toggle\",\n },\n },\n slots,\n )\n },\n})\n\nexport type PreferenceSwitchProps = SwitchFieldProps\n\nexport const PreferenceSwitch = defineComponent({\n name: \"MarwesPreferenceSwitch\",\n inheritAttrs: false,\n props: [...switchFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as PreferenceSwitchProps\n\n return () =>\n h(\n SwitchField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"preference\",\n },\n },\n slots,\n )\n },\n})\n\nexport type PermissionSwitchProps = SwitchFieldProps\n\nexport const PermissionSwitch = defineComponent({\n name: \"MarwesPermissionSwitch\",\n inheritAttrs: false,\n props: [...switchFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as PermissionSwitchProps\n\n return () =>\n h(\n SwitchField,\n {\n ...attrs,\n ...props,\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"permission\",\n },\n },\n slots,\n )\n },\n})\n","import type { CssVars, SliderOptions } from \"@marwes-ui/core\"\nimport { createSliderRecipe } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, ref, useAttrs, watch } from \"vue\"\nimport { useRenderKitDebug } from \"../../hooks/use-renderkit-debug\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type SliderProps = SliderOptions & {\n modelValue?: number\n onValueChange?: (value: number) => void\n onChange?: (event: Event) => void\n className?: string\n}\n\ntype SliderOptionDraft = {\n [Key in keyof SliderOptions]?: SliderOptions[Key] | undefined\n}\n\nconst sliderPropKeys = [\n \"id\",\n \"name\",\n \"min\",\n \"max\",\n \"step\",\n \"value\",\n \"modelValue\",\n \"defaultValue\",\n \"disabled\",\n \"required\",\n \"showTooltip\",\n \"showTouchArea\",\n \"orientation\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"ariaValueText\",\n \"onValueChange\",\n \"onChange\",\n \"className\",\n] as const\n\nfunction buildSliderOptions(options: SliderOptionDraft): SliderOptions {\n const sliderOptions: SliderOptions = {}\n\n if (options.id !== undefined) sliderOptions.id = options.id\n if (options.name !== undefined) sliderOptions.name = options.name\n if (options.min !== undefined) sliderOptions.min = options.min\n if (options.max !== undefined) sliderOptions.max = options.max\n if (options.step !== undefined) sliderOptions.step = options.step\n if (options.value !== undefined) sliderOptions.value = options.value\n if (options.defaultValue !== undefined) sliderOptions.defaultValue = options.defaultValue\n if (options.disabled !== undefined) sliderOptions.disabled = options.disabled\n if (options.required !== undefined) sliderOptions.required = options.required\n if (options.showTooltip !== undefined) sliderOptions.showTooltip = options.showTooltip\n if (options.showTouchArea !== undefined) sliderOptions.showTouchArea = options.showTouchArea\n if (options.orientation !== undefined) sliderOptions.orientation = options.orientation\n if (options.ariaLabel !== undefined) sliderOptions.ariaLabel = options.ariaLabel\n if (options.ariaLabelledBy !== undefined) sliderOptions.ariaLabelledBy = options.ariaLabelledBy\n if (options.ariaDescribedBy !== undefined) sliderOptions.ariaDescribedBy = options.ariaDescribedBy\n if (options.ariaValueText !== undefined) sliderOptions.ariaValueText = options.ariaValueText\n\n return sliderOptions\n}\n\nfunction resolveSliderValue(options: SliderOptionDraft): number {\n return createSliderRecipe(buildSliderOptions(options)).value\n}\n\nexport const Slider = defineComponent(\n (props: SliderProps, { emit }) => {\n const attrs = useAttrs()\n const uncontrolledValue = ref(\n resolveSliderValue({\n min: props.min,\n max: props.max,\n step: props.step,\n value: props.modelValue ?? props.value,\n defaultValue: props.defaultValue,\n }),\n )\n\n const isControlled = computed(() => props.modelValue !== undefined || props.value !== undefined)\n\n watch(\n () => [props.modelValue, props.value, props.defaultValue, props.min, props.max, props.step],\n () => {\n if (!isControlled.value) {\n uncontrolledValue.value = resolveSliderValue({\n min: props.min,\n max: props.max,\n step: props.step,\n defaultValue: props.defaultValue,\n })\n }\n },\n )\n\n const currentValue = computed(() => {\n if (isControlled.value) {\n return resolveSliderValue({\n min: props.min,\n max: props.max,\n step: props.step,\n value: props.modelValue ?? props.value,\n })\n }\n\n return uncontrolledValue.value\n })\n\n const kit = computed(() =>\n createSliderRecipe(\n buildSliderOptions({\n id: props.id,\n name: props.name,\n min: props.min,\n max: props.max,\n step: props.step,\n value: currentValue.value,\n disabled: props.disabled,\n required: props.required,\n showTooltip: props.showTooltip,\n showTouchArea: props.showTouchArea,\n orientation: props.orientation,\n ariaLabel: props.ariaLabel,\n ariaLabelledBy: props.ariaLabelledBy,\n ariaDescribedBy: props.ariaDescribedBy,\n ariaValueText: props.ariaValueText,\n }),\n ),\n )\n\n useRenderKitDebug(kit, \"Slider\")\n\n return () => {\n const renderKit = kit.value\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars as CssVars, attrs.style)\n\n return h(\n \"div\",\n {\n class: className,\n style,\n ...renderKit.dataAttributes,\n },\n [\n h(\"div\", { class: \"mw-slider__control\" }, [\n h(\"input\", {\n ...passthroughAttrs,\n type: renderKit.a11y.type,\n class: renderKit.inputClassName,\n id: renderKit.a11y.id,\n name: renderKit.a11y.name,\n min: renderKit.a11y.min,\n max: renderKit.a11y.max,\n step: renderKit.a11y.step,\n disabled: renderKit.a11y.disabled === true,\n required: renderKit.a11y.required === true,\n \"aria-label\": renderKit.a11y.ariaLabel,\n \"aria-labelledby\": renderKit.a11y.ariaLabelledBy,\n \"aria-describedby\": renderKit.a11y.ariaDescribedBy,\n \"aria-valuetext\": renderKit.a11y.ariaValueText,\n \"aria-orientation\": renderKit.a11y.ariaOrientation,\n value: currentValue.value,\n onInput: (event: Event) => {\n const target = event.target as HTMLInputElement\n const nextValue = Number(target.value)\n\n if (!isControlled.value) {\n uncontrolledValue.value = nextValue\n }\n\n props.onValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n onChange: (event: Event) => {\n props.onChange?.(event)\n emit(\"change\", event)\n },\n }),\n h(\"div\", { class: \"mw-slider__visual\", \"aria-hidden\": \"true\" }, [\n h(\"span\", { class: \"mw-slider__track\" }),\n h(\"span\", { class: \"mw-slider__fill\" }),\n h(\"span\", { class: \"mw-slider__touch-area\" }),\n h(\"span\", { class: \"mw-slider__thumb\" }),\n ]),\n renderKit.showTooltip\n ? h(\n \"span\",\n {\n class: \"mw-slider__tooltip\",\n \"aria-hidden\": \"true\",\n },\n String(currentValue.value),\n )\n : null,\n ]),\n ],\n )\n }\n },\n {\n name: \"MarwesSlider\",\n inheritAttrs: false,\n props: [...sliderPropKeys],\n emits: [\"update:modelValue\", \"value-change\", \"change\"],\n },\n)\n","import { buildSliderFieldA11yIds } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Slider, type SliderProps } from \"./slider\"\n\nexport type SliderFieldLabelPosition = \"top\" | \"inline\"\n\nexport type SliderFieldProps = {\n id?: string\n label: string\n description?: string\n error?: string\n slider?: SliderProps\n ariaDescribedBy?: string\n minValueLabel?: string\n maxValueLabel?: string\n labelPosition?: SliderFieldLabelPosition\n showEdgeValues?: boolean\n dataAttributes?: Record<string, string>\n modelValue?: number\n}\n\nconst sliderFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"slider\",\n \"ariaDescribedBy\",\n \"minValueLabel\",\n \"maxValueLabel\",\n \"labelPosition\",\n \"showEdgeValues\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nfunction hasTextContent(value: string | undefined): boolean {\n return value !== undefined && value.trim().length > 0\n}\n\nexport const SliderField = defineComponent(\n (props: SliderFieldProps, { slots, emit }) => {\n const localSliderId = createLocalId(\"mw-slider\")\n const id = computed(() => props.id ?? localSliderId)\n const sourceSlider = computed<SliderProps>(() => props.slider ?? {})\n const hasDescription = computed(() => hasTextContent(props.description))\n const hasError = computed(() => hasTextContent(props.error))\n const labelPosition = computed<SliderFieldLabelPosition>(() => props.labelPosition ?? \"top\")\n const showEdgeValues = computed(() => props.showEdgeValues !== false)\n const a11yIds = computed(() =>\n buildSliderFieldA11yIds({\n id: id.value,\n hasDescription: hasDescription.value,\n hasError: hasError.value,\n externalDescribedBy: props.ariaDescribedBy,\n }),\n )\n\n const disabled = computed(() => sourceSlider.value.disabled || false)\n const wrapperClass = computed(() =>\n mergeClassNames(\n \"mw-slider-field\",\n labelPosition.value === \"top\" && \"mw-slider-field--label-top\",\n labelPosition.value === \"inline\" && \"mw-slider-field--label-inline\",\n disabled.value && \"mw-slider-field--disabled\",\n hasError.value && \"mw-slider-field--invalid\",\n ),\n )\n\n const minValueLabel = computed(() => props.minValueLabel ?? `${sourceSlider.value.min ?? 0}`)\n const maxValueLabel = computed(() => props.maxValueLabel ?? `${sourceSlider.value.max ?? 100}`)\n\n const mergedSliderProps = computed<SliderProps>(() => {\n const {\n ariaLabel: _ignoredAriaLabel,\n ariaLabelledBy: _ignoredAriaLabelledBy,\n ariaDescribedBy: _ignoredAriaDescribedBy,\n onValueChange: originalOnValueChange,\n ...restSliderProps\n } = sourceSlider.value\n\n const nextSliderProps: SliderProps = {\n ...restSliderProps,\n id: id.value,\n ariaLabelledBy: a11yIds.value.labelId,\n onValueChange: (nextValue: number) => {\n originalOnValueChange?.(nextValue)\n emit(\"update:modelValue\", nextValue)\n emit(\"value-change\", nextValue)\n },\n }\n\n if (props.modelValue !== undefined) {\n nextSliderProps.modelValue = props.modelValue\n }\n\n if (a11yIds.value.describedBy) {\n nextSliderProps.ariaDescribedBy = a11yIds.value.describedBy\n }\n\n return nextSliderProps\n })\n\n const labelContent = () => slots.label?.() ?? [props.label]\n const descriptionContent = () =>\n slots.description?.() ?? (props.description ? [props.description] : [])\n const errorContent = () => slots.error?.() ?? (props.error ? [props.error] : [])\n\n function renderEdgeValue(position: \"min\" | \"max\", value: string) {\n return h(\n \"span\",\n { class: `mw-slider-field__edge-value mw-slider-field__edge-value--${position}` },\n [h(Paragraph, { size: \"sm\" }, { default: () => [value] })],\n )\n }\n\n return () =>\n h(\n \"div\",\n {\n class: wrapperClass.value,\n \"data-label-position\": labelPosition.value,\n ...(props.dataAttributes ?? {}),\n },\n [\n h(\"div\", { class: \"mw-slider-field__header\" }, [\n h(\"div\", { class: \"mw-slider-field__label\", id: a11yIds.value.labelId }, [\n h(Paragraph, { size: \"md\" }, { default: labelContent }),\n ]),\n ]),\n\n hasDescription.value\n ? h(\"div\", { class: \"mw-slider-field__description\", id: a11yIds.value.descriptionId }, [\n h(Paragraph, { size: \"sm\" }, { default: descriptionContent }),\n ])\n : null,\n\n labelPosition.value === \"top\" && showEdgeValues.value\n ? h(\"div\", { class: \"mw-slider-field__values-row\" }, [\n renderEdgeValue(\"min\", minValueLabel.value),\n renderEdgeValue(\"max\", maxValueLabel.value),\n ])\n : null,\n\n h(\"div\", { class: \"mw-slider-field__control-row\" }, [\n labelPosition.value === \"inline\" && showEdgeValues.value\n ? renderEdgeValue(\"min\", minValueLabel.value)\n : null,\n h(\"div\", { class: \"mw-slider-field__slider\" }, [\n h(Slider, {\n ...mergedSliderProps.value,\n \"aria-invalid\": hasError.value ? true : undefined,\n }),\n ]),\n labelPosition.value === \"inline\" && showEdgeValues.value\n ? renderEdgeValue(\"max\", maxValueLabel.value)\n : null,\n ]),\n\n hasError.value\n ? h(\n \"div\",\n {\n class: \"mw-slider-field__error\",\n id: a11yIds.value.errorId,\n \"aria-live\": \"polite\",\n },\n [h(Paragraph, { size: \"sm\" }, { default: errorContent })],\n )\n : null,\n ],\n )\n },\n {\n name: \"MarwesSliderField\",\n props: [...sliderFieldPropKeys],\n emits: [\"update:modelValue\", \"value-change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport type { SliderProps } from \"./slider\"\nimport { SliderField, type SliderFieldProps } from \"./slider-field\"\n\ntype SliderFieldPurposeProps = Omit<\n SliderFieldProps,\n \"label\" | \"slider\" | \"minValueLabel\" | \"maxValueLabel\"\n> & {\n label?: string\n slider?: SliderProps\n orientation?: SliderProps[\"orientation\"]\n minValueLabel?: string\n maxValueLabel?: string\n}\n\nconst sliderFieldPropKeys = [\n \"id\",\n \"label\",\n \"description\",\n \"error\",\n \"slider\",\n \"ariaDescribedBy\",\n \"minValueLabel\",\n \"maxValueLabel\",\n \"orientation\",\n \"showEdgeValues\",\n \"dataAttributes\",\n \"modelValue\",\n] as const\n\nexport type VolumeSliderProps = SliderFieldPurposeProps\n\nexport const VolumeSlider = defineComponent({\n name: \"MarwesVolumeSlider\",\n inheritAttrs: false,\n props: [...sliderFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as VolumeSliderProps\n\n return () =>\n h(\n SliderField,\n {\n ...attrs,\n ...props,\n label: props.label ?? \"Volume\",\n minValueLabel: props.minValueLabel ?? \"0\",\n maxValueLabel: props.maxValueLabel ?? \"100\",\n slider: {\n min: 0,\n max: 100,\n step: 1,\n showTooltip: true,\n ...(props.orientation !== undefined ? { orientation: props.orientation } : {}),\n ...props.slider,\n },\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"volume\",\n },\n },\n slots,\n )\n },\n})\n\nexport type BrightnessSliderProps = SliderFieldPurposeProps\n\nexport const BrightnessSlider = defineComponent({\n name: \"MarwesBrightnessSlider\",\n inheritAttrs: false,\n props: [...sliderFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as BrightnessSliderProps\n\n return () =>\n h(\n SliderField,\n {\n ...attrs,\n ...props,\n label: props.label ?? \"Brightness\",\n minValueLabel: props.minValueLabel ?? \"0\",\n maxValueLabel: props.maxValueLabel ?? \"100\",\n slider: {\n min: 0,\n max: 100,\n step: 1,\n showTooltip: true,\n ...(props.orientation !== undefined ? { orientation: props.orientation } : {}),\n ...props.slider,\n },\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"brightness\",\n },\n },\n slots,\n )\n },\n})\n\nexport type RadiusSliderProps = SliderFieldPurposeProps\n\nexport const RadiusSlider = defineComponent({\n name: \"MarwesRadiusSlider\",\n inheritAttrs: false,\n props: [...sliderFieldPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as RadiusSliderProps\n\n return () =>\n h(\n SliderField,\n {\n ...attrs,\n ...props,\n label: props.label ?? \"Radius\",\n minValueLabel: props.minValueLabel ?? \"0px\",\n maxValueLabel: props.maxValueLabel ?? \"48px\",\n slider: {\n min: 0,\n max: 48,\n step: 2,\n showTooltip: true,\n ...(props.orientation !== undefined ? { orientation: props.orientation } : {}),\n ...props.slider,\n },\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"radius\",\n },\n },\n slots,\n )\n },\n})\n","import { createTabRecipe } from \"@marwes-ui/core\"\nimport type { TabOptions } from \"@marwes-ui/core\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { mergeClassNames, mergeStyles, omitAttrs } from \"../../internal/render-utils\"\n\nexport type TabProps = TabOptions & {\n className?: string\n onClick?: (event: MouseEvent) => void\n id?: string\n}\n\nconst tabPropKeys = [\n \"selected\",\n \"disabled\",\n \"ariaLabel\",\n \"ariaControls\",\n \"className\",\n \"onClick\",\n \"id\",\n] as const\n\nexport const Tab = defineComponent(\n (props: TabProps, { slots }) => {\n const attrs = useAttrs()\n\n const kit = computed(() => {\n const opts: TabOptions = {}\n if (props.selected !== undefined) opts.selected = props.selected\n if (props.disabled !== undefined) opts.disabled = props.disabled\n if (props.ariaLabel !== undefined) opts.ariaLabel = props.ariaLabel\n if (props.ariaControls !== undefined) opts.ariaControls = props.ariaControls\n return createTabRecipe(opts)\n })\n\n return () => {\n const renderKit = kit.value\n const a11y = renderKit.a11y\n const passthroughAttrs = omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"])\n const className = mergeClassNames(renderKit.className, props.className, attrs.class)\n const style = mergeStyles(renderKit.vars, attrs.style)\n\n return h(\n \"button\",\n {\n ...passthroughAttrs,\n id: props.id,\n type: \"button\",\n class: className,\n style,\n role: a11y.role,\n \"aria-selected\": a11y.ariaSelected,\n \"aria-disabled\": a11y.ariaDisabled,\n \"aria-label\": a11y.ariaLabel,\n \"aria-controls\": a11y.ariaControls,\n tabindex: a11y.tabIndex,\n disabled: props.disabled ? true : undefined,\n onClick: (event: MouseEvent) => {\n props.onClick?.(event)\n },\n },\n slots.default?.(),\n )\n }\n },\n {\n name: \"MarwesTab\",\n inheritAttrs: false,\n props: [...tabPropKeys],\n emits: [\"click\"],\n },\n)\n","import {\n type TabGroupItemState,\n buildTabGroupA11yIds,\n moveTabSelection,\n resolveTabValue,\n} from \"@marwes-ui/core\"\nimport { type VNodeChild, computed, defineComponent, h, ref, watch } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames } from \"../../internal/render-utils\"\nimport { Paragraph } from \"../paragraph\"\nimport { Tab } from \"./tab\"\n\nexport type TabGroupItem = {\n value: string\n label: VNodeChild\n panel: VNodeChild\n disabled?: boolean\n ariaLabel?: string\n}\n\nexport type TabGroupProps = {\n id?: string\n label?: VNodeChild\n ariaLabel?: string\n tabs: TabGroupItem[]\n activeTab?: string\n defaultActiveTab?: string\n dataAttributes?: Record<string, string>\n className?: string\n}\n\nexport type TabPanelProps = {\n id: string\n tabId: string\n hidden?: boolean\n className?: string\n}\n\nconst tabGroupPropKeys = [\n \"id\",\n \"label\",\n \"ariaLabel\",\n \"tabs\",\n \"activeTab\",\n \"defaultActiveTab\",\n \"dataAttributes\",\n \"className\",\n] as const\n\nconst tabPanelPropKeys = [\"id\", \"tabId\", \"hidden\", \"className\"] as const\n\nfunction hasContent(value: VNodeChild | undefined): boolean {\n if (value === undefined || value === null || value === false) {\n return false\n }\n\n if (typeof value === \"string\") {\n return value.trim().length > 0\n }\n\n return true\n}\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nfunction focusTab(tabId: string): void {\n if (typeof document === \"undefined\") {\n return\n }\n\n const tab = document.getElementById(tabId)\n if (tab instanceof HTMLButtonElement) {\n tab.focus()\n }\n}\n\nfunction toItemState(tab: TabGroupItem): TabGroupItemState {\n const itemState: TabGroupItemState = { value: tab.value }\n\n if (tab.disabled) {\n itemState.disabled = true\n }\n\n return itemState\n}\n\nfunction renderPanelValue(value: VNodeChild | undefined): VNodeChild[] {\n if (typeof value === \"string\" || typeof value === \"number\") {\n return [\n h(\n Paragraph,\n { size: \"md\" },\n {\n default: () => [value],\n },\n ),\n ]\n }\n\n return toChildren(value)\n}\n\nexport const TabPanel = defineComponent(\n (props: TabPanelProps, { attrs, slots }) => {\n return () =>\n h(\n \"div\",\n {\n ...attrs,\n id: props.id,\n role: \"tabpanel\",\n \"aria-labelledby\": props.tabId,\n class: mergeClassNames(\"mw-tab-group__panel\", props.className, attrs.class),\n hidden: props.hidden,\n tabindex: props.hidden ? undefined : 0,\n },\n slots.default?.(),\n )\n },\n {\n name: \"MarwesTabPanel\",\n inheritAttrs: false,\n props: [...tabPanelPropKeys],\n },\n)\n\nexport const TabGroup = defineComponent(\n (props: TabGroupProps, { attrs, emit }) => {\n const localId = createLocalId(\"mw-tab-group\")\n const id = computed(() => props.id ?? localId)\n const hasLabel = computed(() => hasContent(props.label))\n const isControlled = computed(() => props.activeTab !== undefined)\n const itemStates = computed<TabGroupItemState[]>(() =>\n props.tabs.map((tab) => toItemState(tab)),\n )\n const internalActiveTab = ref<string | undefined>(\n resolveTabValue(itemStates.value, props.defaultActiveTab),\n )\n\n watch(\n itemStates,\n (nextStates) => {\n if (!isControlled.value) {\n internalActiveTab.value = resolveTabValue(\n nextStates,\n internalActiveTab.value ?? props.defaultActiveTab,\n )\n }\n },\n { immediate: true },\n )\n\n const resolvedActiveTab = computed(() =>\n resolveTabValue(\n itemStates.value,\n isControlled.value ? props.activeTab : internalActiveTab.value,\n ),\n )\n\n const a11yIds = computed(() =>\n buildTabGroupA11yIds({\n id: id.value,\n itemValues: props.tabs.map((tab) => tab.value),\n hasLabel: hasLabel.value,\n }),\n )\n\n const selectTab = (nextValue: string | undefined): void => {\n const resolvedValue = resolveTabValue(itemStates.value, nextValue)\n const currentValue = resolvedActiveTab.value\n\n if (!resolvedValue) {\n return\n }\n\n if (!isControlled.value) {\n internalActiveTab.value = resolvedValue\n }\n\n if (resolvedValue !== currentValue) {\n emit(\"update:activeTab\", resolvedValue)\n emit(\"tab-change\", resolvedValue)\n }\n }\n\n const handleKeydown = (event: KeyboardEvent): void => {\n let direction: \"next\" | \"previous\" | \"start\" | \"end\" | undefined\n\n switch (event.key) {\n case \"ArrowRight\":\n direction = \"next\"\n break\n case \"ArrowLeft\":\n direction = \"previous\"\n break\n case \"Home\":\n direction = \"start\"\n break\n case \"End\":\n direction = \"end\"\n break\n default:\n return\n }\n\n event.preventDefault()\n\n const nextValue = moveTabSelection(itemStates.value, resolvedActiveTab.value, direction)\n if (!nextValue) {\n return\n }\n\n selectTab(nextValue)\n const nextTabId = a11yIds.value.tabIds[nextValue]\n if (nextTabId) {\n focusTab(nextTabId)\n }\n }\n\n return () =>\n h(\n \"section\",\n {\n ...attrs,\n class: mergeClassNames(\"mw-tab-group\", props.className, attrs.class),\n ...(props.dataAttributes ?? {}),\n },\n [\n hasLabel.value\n ? (() => {\n const paragraphProps: Record<string, unknown> = { size: \"md\" }\n const labelId = a11yIds.value.labelId ?? `${id.value}-label`\n\n if (labelId) {\n paragraphProps.id = labelId\n }\n\n return h(\"div\", { class: \"mw-tab-group__header\" }, [\n h(Paragraph, paragraphProps, {\n default: () => toChildren(props.label),\n }),\n ])\n })()\n : null,\n\n h(\n \"div\",\n {\n id: a11yIds.value.tabListId,\n class: \"mw-tab-group__list\",\n role: \"tablist\",\n \"aria-label\": hasLabel.value ? undefined : (props.ariaLabel ?? \"Tabs\"),\n \"aria-labelledby\": hasLabel.value ? a11yIds.value.labelId : undefined,\n onKeydown: handleKeydown,\n },\n props.tabs.map((tab) =>\n (() => {\n const tabId = a11yIds.value.tabIds[tab.value] ?? `${id.value}-tab-${tab.value}`\n const panelId =\n a11yIds.value.panelIds[tab.value] ?? `${id.value}-panel-${tab.value}`\n const tabProps: Record<string, unknown> = {\n key: tab.value,\n id: tabId,\n selected: tab.value === resolvedActiveTab.value,\n ariaControls: panelId,\n onClick: () => selectTab(tab.value),\n }\n\n if (tab.disabled) {\n tabProps.disabled = true\n }\n\n if (tab.ariaLabel) {\n tabProps.ariaLabel = tab.ariaLabel\n }\n\n return h(Tab, tabProps, { default: () => toChildren(tab.label) })\n })(),\n ),\n ),\n\n h(\n \"div\",\n { class: \"mw-tab-group__panels\" },\n props.tabs.map((tab) =>\n (() => {\n const panelId =\n a11yIds.value.panelIds[tab.value] ?? `${id.value}-panel-${tab.value}`\n const tabId = a11yIds.value.tabIds[tab.value] ?? `${id.value}-tab-${tab.value}`\n\n return h(\n TabPanel,\n {\n key: tab.value,\n id: panelId,\n tabId,\n hidden: tab.value !== resolvedActiveTab.value,\n },\n {\n default: () => renderPanelValue(tab.panel),\n },\n )\n })(),\n ),\n ),\n ],\n )\n },\n {\n name: \"MarwesTabGroup\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n emits: [\"update:activeTab\", \"tab-change\"],\n },\n)\n","import { defineComponent, h } from \"vue\"\nimport { TabGroup, type TabGroupProps } from \"./tab-group\"\n\nconst tabGroupPropKeys = [\n \"id\",\n \"label\",\n \"ariaLabel\",\n \"tabs\",\n \"activeTab\",\n \"defaultActiveTab\",\n \"dataAttributes\",\n \"className\",\n] as const\n\nexport type NavigationTabsProps = TabGroupProps\n\nexport const NavigationTabs = defineComponent({\n name: \"MarwesNavigationTabs\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as NavigationTabsProps\n\n return () =>\n h(\n TabGroup,\n {\n ...attrs,\n ...props,\n ariaLabel: props.ariaLabel ?? \"Navigation tabs\",\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"navigation-tabs\",\n },\n },\n slots,\n )\n },\n})\n\nexport type ContentTabsProps = TabGroupProps\n\nexport const ContentTabs = defineComponent({\n name: \"MarwesContentTabs\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as ContentTabsProps\n\n return () =>\n h(\n TabGroup,\n {\n ...attrs,\n ...props,\n ariaLabel: props.ariaLabel ?? \"Content tabs\",\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"content-tabs\",\n },\n },\n slots,\n )\n },\n})\n\nexport type SettingsTabsProps = TabGroupProps\n\nexport const SettingsTabs = defineComponent({\n name: \"MarwesSettingsTabs\",\n inheritAttrs: false,\n props: [...tabGroupPropKeys],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as unknown as SettingsTabsProps\n\n return () =>\n h(\n TabGroup,\n {\n ...attrs,\n ...props,\n ariaLabel: props.ariaLabel ?? \"Settings tabs\",\n dataAttributes: {\n ...props.dataAttributes,\n \"data-purpose\": \"settings-tabs\",\n },\n },\n slots,\n )\n },\n})\n","import { type DialogOptions, IconName, createDialogRecipe } from \"@marwes-ui/core\"\nimport type { VNodeChild } from \"vue\"\nimport { computed, defineComponent, h, useAttrs } from \"vue\"\nimport { createLocalId } from \"../../internal/id\"\nimport { mergeClassNames, omitAttrs } from \"../../internal/render-utils\"\nimport { Icon } from \"../icon\"\n\nfunction hasContent(value: VNodeChild | undefined): boolean {\n if (value === undefined || value === null || value === false) {\n return false\n }\n\n if (typeof value === \"string\") {\n return value.trim().length > 0\n }\n\n return true\n}\n\nfunction toChildren(value: VNodeChild | undefined): VNodeChild[] {\n if (Array.isArray(value)) {\n return value\n }\n\n if (value === undefined || value === null || value === false) {\n return []\n }\n\n return [value]\n}\n\nexport type DialogProps = DialogOptions & {\n id?: string\n title?: VNodeChild\n description?: VNodeChild\n footer?: VNodeChild\n onClose?: () => void\n className?: string\n dataAttributes?: Record<string, string>\n}\n\nconst dialogPropKeys = [\n \"id\",\n \"title\",\n \"description\",\n \"footer\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"modal\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"onClose\",\n \"className\",\n \"dataAttributes\",\n] as const\n\nexport const Dialog = defineComponent(\n (props: DialogProps, { attrs, slots }) => {\n const localId = createLocalId(\"mw-dialog\")\n const id = computed(() => props.id ?? localId)\n const titleId = computed(() => `${id.value}-title`)\n const descriptionId = computed(() => `${id.value}-description`)\n const titleContent = computed<VNodeChild | undefined>(() => slots.title?.() ?? props.title)\n const descriptionContent = computed<VNodeChild | undefined>(\n () => slots.description?.() ?? props.description,\n )\n const footerContent = computed<VNodeChild | undefined>(() => slots.footer?.() ?? props.footer)\n const hasTitle = computed(() => hasContent(titleContent.value))\n const hasDescription = computed(() => hasContent(descriptionContent.value))\n const hasFooter = computed(() => hasContent(footerContent.value) && (props.showFooter ?? true))\n const dismissible = computed(() => (props.dismissible ?? true) && props.onClose !== undefined)\n const attrsWithoutClass = computed(() =>\n omitAttrs(attrs as Record<string, unknown>, [\"class\", \"style\"]),\n )\n const kit = computed(() => {\n const dialogOptions: DialogOptions = {\n showFooter: hasFooter.value,\n dismissible: dismissible.value,\n ...(props.modal !== undefined ? { modal: props.modal } : {}),\n }\n\n if (props.dataAttributes) {\n dialogOptions.dataAttributes = props.dataAttributes\n }\n\n if (props.size) {\n dialogOptions.size = props.size\n }\n\n if (props.ariaLabel) {\n dialogOptions.ariaLabel = props.ariaLabel\n }\n\n if (props.ariaLabelledBy) {\n dialogOptions.ariaLabelledBy = props.ariaLabelledBy\n } else if (props.ariaLabel === undefined && hasTitle.value) {\n dialogOptions.ariaLabelledBy = titleId.value\n }\n\n if (props.ariaDescribedBy) {\n dialogOptions.ariaDescribedBy = props.ariaDescribedBy\n } else if (hasDescription.value) {\n dialogOptions.ariaDescribedBy = descriptionId.value\n }\n\n return createDialogRecipe(dialogOptions)\n })\n\n return () =>\n h(\n \"section\",\n {\n ...attrsWithoutClass.value,\n ...kit.value.dataAttributes,\n id: id.value,\n class: mergeClassNames(kit.value.className, props.className, attrs.class),\n role: kit.value.a11y.role,\n \"aria-modal\": kit.value.a11y.ariaModal ? \"true\" : undefined,\n \"aria-label\": kit.value.a11y.ariaLabel,\n \"aria-labelledby\": kit.value.a11y.ariaLabelledBy,\n \"aria-describedby\": kit.value.a11y.ariaDescribedBy,\n tabindex: -1,\n },\n [\n hasTitle.value || kit.value.showCloseButton\n ? [\n h(\"header\", { class: \"mw-dialog__header\" }, [\n hasTitle.value\n ? h(\"div\", { class: \"mw-dialog__heading-group\" }, [\n h(\n \"h2\",\n { class: \"mw-dialog__title\", id: titleId.value },\n toChildren(titleContent.value),\n ),\n ])\n : h(\"span\", { class: \"mw-dialog__spacer\", \"aria-hidden\": \"true\" }),\n kit.value.showCloseButton && props.onClose\n ? h(\n \"button\",\n {\n type: \"button\",\n class: \"mw-dialog__close\",\n \"aria-label\": \"Close dialog\",\n onClick: () => props.onClose?.(),\n },\n [h(Icon, { name: IconName.X, decorative: true })],\n )\n : null,\n ]),\n h(\"div\", { class: \"mw-dialog__header-divider\", \"aria-hidden\": \"true\" }),\n ]\n : null,\n h(\"div\", { class: \"mw-dialog__content\" }, [\n hasDescription.value\n ? h(\n \"p\",\n { class: \"mw-dialog__description\", id: descriptionId.value },\n toChildren(descriptionContent.value),\n )\n : null,\n ...(slots.default?.() ?? []),\n ]),\n hasFooter.value\n ? [\n h(\"div\", { class: \"mw-dialog__footer-divider\", \"aria-hidden\": \"true\" }),\n h(\"footer\", { class: \"mw-dialog__footer\" }, toChildren(footerContent.value)),\n ]\n : null,\n ],\n )\n },\n {\n name: \"MarwesDialog\",\n inheritAttrs: false,\n props: [...dialogPropKeys],\n },\n)\n","import type { VNodeChild } from \"vue\"\nimport { Teleport, computed, defineComponent, h, nextTick, ref, watch } from \"vue\"\nimport { Dialog, type DialogProps } from \"./dialog\"\n\nfunction getFocusableElements(container: HTMLElement | null): HTMLElement[] {\n if (!container) {\n return []\n }\n\n return Array.from(\n container.querySelectorAll<HTMLElement>(\n [\n \"button:not([disabled])\",\n \"[href]\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n ].join(\",\"),\n ),\n ).filter(\n (element) => !element.hasAttribute(\"hidden\") && element.getAttribute(\"aria-hidden\") !== \"true\",\n )\n}\n\nfunction focusFirstElement(container: HTMLElement | null): void {\n const focusableElements = getFocusableElements(container)\n const firstFocusable = focusableElements[0]\n\n if (firstFocusable) {\n firstFocusable.focus()\n return\n }\n\n container?.focus()\n}\n\nexport type DialogFooterControls = {\n close: () => void\n}\n\nexport type DialogModalProps = Omit<DialogProps, \"footer\" | \"onClose\"> & {\n open?: boolean\n defaultOpen?: boolean\n closeOnEscape?: boolean\n closeOnScrimClick?: boolean\n restoreFocus?: boolean\n portalTarget?: HTMLElement | string | null\n overlayClassName?: string\n footer?: VNodeChild | ((controls: DialogFooterControls) => VNodeChild)\n}\n\nconst dialogModalPropKeys = [\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n \"footer\",\n] as const\n\nexport const DialogModal = defineComponent(\n (props: DialogModalProps, { slots, emit }) => {\n const internalOpen = ref(props.defaultOpen ?? false)\n const overlayRef = ref<HTMLDivElement | null>(null)\n const lastFocusedElementRef = ref<HTMLElement | null>(null)\n const isControlled = computed(() => props.open !== undefined)\n const resolvedOpen = computed(\n () => (isControlled.value ? props.open : internalOpen.value) ?? false,\n )\n const closeOnEscape = computed(() => props.closeOnEscape ?? true)\n const closeOnScrimClick = computed(() => props.closeOnScrimClick ?? true)\n const restoreFocus = computed(() => props.restoreFocus ?? true)\n\n const close = (): void => {\n if (!resolvedOpen.value) {\n return\n }\n\n if (!isControlled.value) {\n internalOpen.value = false\n }\n\n emit(\"update:open\", false)\n emit(\"open-change\", false)\n }\n\n watch(\n resolvedOpen,\n async (nextOpen, _previousOpen, onCleanup) => {\n if (!nextOpen || typeof document === \"undefined\") {\n return\n }\n\n const previousOverflow = document.body.style.overflow\n lastFocusedElementRef.value =\n document.activeElement instanceof HTMLElement ? document.activeElement : null\n document.body.style.overflow = \"hidden\"\n const handleDocumentKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && closeOnEscape.value) {\n event.preventDefault()\n close()\n }\n }\n\n document.addEventListener(\"keydown\", handleDocumentKeydown)\n\n await nextTick()\n const dialogElement = overlayRef.value?.querySelector<HTMLElement>(\".mw-dialog\") ?? null\n focusFirstElement(dialogElement)\n\n onCleanup(() => {\n document.removeEventListener(\"keydown\", handleDocumentKeydown)\n document.body.style.overflow = previousOverflow\n\n if (restoreFocus.value) {\n lastFocusedElementRef.value?.focus()\n }\n })\n },\n { immediate: true },\n )\n\n const footerContent = computed<VNodeChild | undefined>(() => {\n if (slots.footer) {\n return slots.footer({ close })\n }\n\n if (typeof props.footer === \"function\") {\n return props.footer({ close })\n }\n\n return props.footer\n })\n\n const handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\" && closeOnEscape.value) {\n event.preventDefault()\n event.stopPropagation()\n close()\n return\n }\n\n if (event.key !== \"Tab\") {\n return\n }\n\n const dialogElement = overlayRef.value?.querySelector<HTMLElement>(\".mw-dialog\") ?? null\n const focusableElements = getFocusableElements(dialogElement)\n\n if (focusableElements.length === 0) {\n event.preventDefault()\n dialogElement?.focus()\n return\n }\n\n const firstFocusable = focusableElements[0]\n const lastFocusable = focusableElements[focusableElements.length - 1]\n const activeElement = document.activeElement\n\n if (event.shiftKey && activeElement === firstFocusable) {\n event.preventDefault()\n lastFocusable?.focus()\n } else if (!event.shiftKey && activeElement === lastFocusable) {\n event.preventDefault()\n firstFocusable?.focus()\n }\n }\n\n return () => {\n if (!resolvedOpen.value) {\n return null\n }\n\n const modalMarkup = h(\n \"div\",\n {\n ref: overlayRef,\n class: [\"mw-dialog-modal\", props.overlayClassName].filter(Boolean).join(\" \"),\n onClick: (event: MouseEvent) => {\n if (event.target === event.currentTarget && closeOnScrimClick.value) {\n close()\n }\n },\n onKeydown: handleKeydown,\n },\n [\n h(\"div\", {\n class: \"mw-dialog-modal__scrim\",\n \"aria-hidden\": \"true\",\n onClick: () => {\n if (closeOnScrimClick.value) {\n close()\n }\n },\n }),\n h(\"div\", { class: \"mw-dialog-modal__surface\" }, [\n h(\n Dialog as unknown as string,\n {\n ...props,\n footer: footerContent.value,\n modal: true,\n onClose: close,\n },\n slots.default ? { default: slots.default } : undefined,\n ),\n ]),\n ],\n )\n\n if (props.portalTarget === null) {\n return modalMarkup\n }\n\n return h(\n Teleport,\n { to: props.portalTarget ?? \"body\" },\n {\n default: () => modalMarkup,\n },\n )\n }\n },\n {\n name: \"MarwesDialogModal\",\n props: [...dialogModalPropKeys],\n emits: [\"update:open\", \"open-change\"],\n },\n)\n","import { createPurposeSemanticAttributes } from \"@marwes-ui/core\"\nimport type { VNodeChild } from \"vue\"\nimport { defineComponent, h } from \"vue\"\nimport { CancelButton, ConfirmButton, DestructiveButton } from \"../button\"\nimport { DialogModal, type DialogModalProps } from \"./dialog-modal\"\n\nexport type ConfirmDialogProps = Omit<DialogModalProps, \"footer\"> & {\n confirmLabel?: VNodeChild\n cancelLabel?: VNodeChild\n onConfirm?: () => void\n onCancel?: () => void\n}\n\nexport const ConfirmDialog = defineComponent({\n name: \"MarwesConfirmDialog\",\n inheritAttrs: false,\n props: [\n \"confirmLabel\",\n \"cancelLabel\",\n \"onConfirm\",\n \"onCancel\",\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n ],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as ConfirmDialogProps\n\n return () => {\n const { confirmLabel, cancelLabel, onConfirm, onCancel, ...dialogModalProps } = props\n\n return h(\n DialogModal,\n {\n ...attrs,\n ...dialogModalProps,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"confirm-dialog\"),\n },\n footer: ({ close }: { close: () => void }) => [\n h(\n CancelButton,\n {\n onClick: () => {\n onCancel?.()\n close()\n },\n },\n { default: () => (cancelLabel !== undefined ? [cancelLabel] : [\"Cancel\"]) },\n ),\n h(\n ConfirmButton,\n {\n onClick: () => {\n onConfirm?.()\n close()\n },\n },\n { default: () => (confirmLabel !== undefined ? [confirmLabel] : [\"Confirm\"]) },\n ),\n ],\n },\n slots.default ? { default: slots.default } : undefined,\n )\n }\n },\n})\n\nexport type DestructiveDialogProps = Omit<DialogModalProps, \"footer\"> & {\n confirmLabel?: VNodeChild\n cancelLabel?: VNodeChild\n onConfirm?: () => void\n onCancel?: () => void\n}\n\nexport const DestructiveDialog = defineComponent({\n name: \"MarwesDestructiveDialog\",\n inheritAttrs: false,\n props: [\n \"confirmLabel\",\n \"cancelLabel\",\n \"onConfirm\",\n \"onCancel\",\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n ],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as DestructiveDialogProps\n\n return () => {\n const { confirmLabel, cancelLabel, onConfirm, onCancel, ...dialogModalProps } = props\n\n return h(\n DialogModal,\n {\n ...attrs,\n ...dialogModalProps,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"destructive-dialog\"),\n },\n footer: ({ close }: { close: () => void }) => [\n h(\n CancelButton,\n {\n onClick: () => {\n onCancel?.()\n close()\n },\n },\n { default: () => (cancelLabel !== undefined ? [cancelLabel] : [\"Cancel\"]) },\n ),\n h(\n DestructiveButton,\n {\n onClick: () => {\n onConfirm?.()\n close()\n },\n },\n { default: () => (confirmLabel !== undefined ? [confirmLabel] : [\"Delete\"]) },\n ),\n ],\n },\n slots.default ? { default: slots.default } : undefined,\n )\n }\n },\n})\n\nexport type InfoDialogProps = Omit<DialogModalProps, \"footer\"> & {\n acknowledgeLabel?: VNodeChild\n onAcknowledge?: () => void\n}\n\nexport const InfoDialog = defineComponent({\n name: \"MarwesInfoDialog\",\n inheritAttrs: false,\n props: [\n \"acknowledgeLabel\",\n \"onAcknowledge\",\n \"id\",\n \"title\",\n \"description\",\n \"size\",\n \"showFooter\",\n \"dismissible\",\n \"ariaLabel\",\n \"ariaLabelledBy\",\n \"ariaDescribedBy\",\n \"className\",\n \"dataAttributes\",\n \"open\",\n \"defaultOpen\",\n \"closeOnEscape\",\n \"closeOnScrimClick\",\n \"restoreFocus\",\n \"portalTarget\",\n \"overlayClassName\",\n ],\n setup(rawProps, { attrs, slots }) {\n const props = rawProps as InfoDialogProps\n\n return () => {\n const { acknowledgeLabel, onAcknowledge, ...dialogModalProps } = props\n\n return h(\n DialogModal,\n {\n ...attrs,\n ...dialogModalProps,\n dataAttributes: {\n ...props.dataAttributes,\n ...createPurposeSemanticAttributes(\"info-dialog\"),\n },\n footer: ({ close }: { close: () => void }) =>\n h(\n ConfirmButton,\n {\n onClick: () => {\n onAcknowledge?.()\n close()\n },\n },\n { default: () => (acknowledgeLabel !== undefined ? [acknowledgeLabel] : [\"Okay\"]) },\n ),\n },\n slots.default ? { default: slots.default } : undefined,\n )\n }\n },\n})\n"]}