@auronui/vue 1.0.18 → 1.0.20

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.js","names":[],"sources":["../../../src/components/avatar/AvatarGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, ref, h, Fragment, type VNode } from 'vue'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useAvatarGroupProvide } from './avatar-group.context'\nimport Avatar from './Avatar.vue'\n\n\ntype AvatarShorthandItem = {\n src?: string\n alt?: string\n name?: string\n color?: string\n variant?: string\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n}\n\nconst props = withDefaults(defineProps<{\n size?: 'sm' | 'md' | 'lg'\n isBordered?: boolean\n isDisabled?: boolean\n isGrid?: boolean\n max?: number\n total?: number\n renderCount?: (count: number) => string\n class?: string\n /** Shorthand API: render avatars from an array instead of the compound slot API */\n avatars?: AvatarShorthandItem[]\n}>(), {\n size: 'md',\n\n isBordered: false,\n isDisabled: false,\n isGrid: false,\n})\n\nconst slots = defineSlots<{\n default?(): VNode[];\n}>()\n\n// Provide context using toRef() for reactivity (canonical pattern from ButtonGroup)\nuseAvatarGroupProvide({\n size: toRef(props, 'size'),\n isBordered: toRef(props, 'isBordered'),\n isDisabled: toRef(props, 'isDisabled'),\n isGrid: toRef(props, 'isGrid'),\n isInGroup: ref(true),\n})\n\nconst containerClass = computed(() =>\n composeClassName('flex items-center flex-row', props.class)\n)\n\nconst visibleAvatars = computed(() => {\n if (!props.avatars) return []\n return props.max !== undefined ? props.avatars.slice(0, props.max) : props.avatars\n})\nconst avatarOverflowCount = computed(() => {\n if (!props.avatars || props.max === undefined) return 0\n const total = props.total ?? props.avatars.length\n return total - props.max\n})\nconst avatarOverflowLabel = computed(() => {\n if (avatarOverflowCount.value <= 0) return ''\n return props.renderCount ? props.renderCount(avatarOverflowCount.value) : `+${avatarOverflowCount.value}`\n})\n\n// Flatten slot vnodes (handles Fragments from v-for etc.)\nfunction flattenVNodes(vnodes: VNode[]): VNode[] {\n const result: VNode[] = []\n for (const vnode of vnodes) {\n if (vnode.type === Fragment && Array.isArray(vnode.children)) {\n result.push(...flattenVNodes(vnode.children as VNode[]))\n } else {\n result.push(vnode)\n }\n }\n return result\n}\n\n// Determine which vnodes to render when max is set\nfunction getSlicedNodes(): VNode[] {\n const defaultSlot = slots.default?.()\n if (!defaultSlot) return []\n\n const allNodes = flattenVNodes(defaultSlot)\n\n if (props.max === undefined) {\n return allNodes\n }\n\n const visibleNodes = allNodes.slice(0, props.max)\n const totalCount = props.total ?? allNodes.length\n const overflowCount = totalCount - props.max\n\n if (overflowCount <= 0) {\n return visibleNodes\n }\n\n const counterLabel = props.renderCount\n ? props.renderCount(overflowCount)\n : `+${overflowCount}`\n\n // Render counter avatar with a fallback slot so the full label string is shown\n const counterNode = h(Avatar, {}, {\n fallback: () => h('span', { class: 'avatar__name text-xs font-medium leading-none' }, counterLabel),\n })\n\n return [...visibleNodes, counterNode]\n}\n</script>\n\n<template>\n <div\n role=\"group\"\n :class=\"containerClass\"\n >\n <template v-if=\"props.avatars\">\n <Avatar\n v-for=\"(avatar, idx) in visibleAvatars\"\n :key=\"idx\"\n v-bind=\"avatar\"\n />\n <Avatar v-if=\"avatarOverflowCount > 0\">\n <template #fallback>\n <span class=\"avatar__name text-xs font-medium leading-none\">{{ avatarOverflowLabel }}</span>\n </template>\n </Avatar>\n </template>\n <template v-else-if=\"props.max !== undefined\">\n <!-- Use render function output for sliced vnodes -->\n <template\n v-for=\"(node, _i) in getSlicedNodes()\"\n :key=\"_i\"\n >\n <component :is=\"node\" />\n </template>\n </template>\n <template v-else>\n <slot />\n </template>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"AvatarGroup.js","names":[],"sources":["../../../src/components/avatar/AvatarGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, ref, h, Fragment, type VNode } from 'vue'\nimport { type AvatarVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useAvatarGroupProvide } from './avatar-group.context'\nimport Avatar from './Avatar.vue'\n\ntype AvatarShorthandItem = {\n src?: string\n alt?: string\n name?: string\n color?: AvatarVariants['color']\n variant?: AvatarVariants['variant']\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n}\n\nconst props = withDefaults(defineProps<{\n size?: 'sm' | 'md' | 'lg'\n isBordered?: boolean\n isDisabled?: boolean\n isGrid?: boolean\n max?: number\n total?: number\n renderCount?: (count: number) => string\n class?: string\n /** Shorthand API: render avatars from an array instead of the compound slot API */\n avatars?: AvatarShorthandItem[]\n}>(), {\n size: 'md',\n\n isBordered: false,\n isDisabled: false,\n isGrid: false,\n})\n\nconst slots = defineSlots<{\n default?(): VNode[];\n}>()\n\n// Provide context using toRef() for reactivity (canonical pattern from ButtonGroup)\nuseAvatarGroupProvide({\n size: toRef(props, 'size'),\n isBordered: toRef(props, 'isBordered'),\n isDisabled: toRef(props, 'isDisabled'),\n isGrid: toRef(props, 'isGrid'),\n isInGroup: ref(true),\n})\n\nconst containerClass = computed(() =>\n composeClassName('flex items-center flex-row', props.class)\n)\n\nconst visibleAvatars = computed(() => {\n if (!props.avatars) return []\n return props.max !== undefined ? props.avatars.slice(0, props.max) : props.avatars\n})\nconst avatarOverflowCount = computed(() => {\n if (!props.avatars || props.max === undefined) return 0\n const total = props.total ?? props.avatars.length\n return total - props.max\n})\nconst avatarOverflowLabel = computed(() => {\n if (avatarOverflowCount.value <= 0) return ''\n return props.renderCount ? props.renderCount(avatarOverflowCount.value) : `+${avatarOverflowCount.value}`\n})\n\n// Flatten slot vnodes (handles Fragments from v-for etc.)\nfunction flattenVNodes(vnodes: VNode[]): VNode[] {\n const result: VNode[] = []\n for (const vnode of vnodes) {\n if (vnode.type === Fragment && Array.isArray(vnode.children)) {\n result.push(...flattenVNodes(vnode.children as VNode[]))\n } else {\n result.push(vnode)\n }\n }\n return result\n}\n\n// Determine which vnodes to render when max is set\nfunction getSlicedNodes(): VNode[] {\n const defaultSlot = slots.default?.()\n if (!defaultSlot) return []\n\n const allNodes = flattenVNodes(defaultSlot)\n\n if (props.max === undefined) {\n return allNodes\n }\n\n const visibleNodes = allNodes.slice(0, props.max)\n const totalCount = props.total ?? allNodes.length\n const overflowCount = totalCount - props.max\n\n if (overflowCount <= 0) {\n return visibleNodes\n }\n\n const counterLabel = props.renderCount\n ? props.renderCount(overflowCount)\n : `+${overflowCount}`\n\n // Render counter avatar with a fallback slot so the full label string is shown\n const counterNode = h(Avatar, {}, {\n fallback: () => h('span', { class: 'avatar__name text-xs font-medium leading-none' }, counterLabel),\n })\n\n return [...visibleNodes, counterNode]\n}\n</script>\n\n<template>\n <div\n role=\"group\"\n :class=\"containerClass\"\n >\n <template v-if=\"props.avatars\">\n <Avatar\n v-for=\"(avatar, idx) in visibleAvatars\"\n :key=\"idx\"\n v-bind=\"avatar\"\n />\n <Avatar v-if=\"avatarOverflowCount > 0\">\n <template #fallback>\n <span class=\"avatar__name text-xs font-medium leading-none\">{{ avatarOverflowLabel }}</span>\n </template>\n </Avatar>\n </template>\n <template v-else-if=\"props.max !== undefined\">\n <!-- Use render function output for sliced vnodes -->\n <template\n v-for=\"(node, _i) in getSlicedNodes()\"\n :key=\"_i\"\n >\n <component :is=\"node\" />\n </template>\n </template>\n <template v-else>\n <slot />\n </template>\n </div>\n</template>\n"],"mappings":""}
@@ -2,6 +2,7 @@ import { composeClassName } from "../../utils/composeClassName.js";
2
2
  import { useAvatarGroupProvide } from "./avatar-group.context.js";
3
3
  import Avatar_default from "./Avatar.js";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, h, mergeProps, normalizeClass, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toRef, useSlots, withCtx } from "vue";
5
+ import "@auronui/styles";
5
6
  //#region src/components/avatar/AvatarGroup.vue?vue&type=script&setup=true&lang.ts
6
7
  var _hoisted_1 = { class: "avatar__name text-xs font-medium leading-none" };
7
8
  var AvatarGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/avatar/AvatarGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, ref, h, Fragment, type VNode } from 'vue'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useAvatarGroupProvide } from './avatar-group.context'\nimport Avatar from './Avatar.vue'\n\n\ntype AvatarShorthandItem = {\n src?: string\n alt?: string\n name?: string\n color?: string\n variant?: string\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n}\n\nconst props = withDefaults(defineProps<{\n size?: 'sm' | 'md' | 'lg'\n isBordered?: boolean\n isDisabled?: boolean\n isGrid?: boolean\n max?: number\n total?: number\n renderCount?: (count: number) => string\n class?: string\n /** Shorthand API: render avatars from an array instead of the compound slot API */\n avatars?: AvatarShorthandItem[]\n}>(), {\n size: 'md',\n\n isBordered: false,\n isDisabled: false,\n isGrid: false,\n})\n\nconst slots = defineSlots<{\n default?(): VNode[];\n}>()\n\n// Provide context using toRef() for reactivity (canonical pattern from ButtonGroup)\nuseAvatarGroupProvide({\n size: toRef(props, 'size'),\n isBordered: toRef(props, 'isBordered'),\n isDisabled: toRef(props, 'isDisabled'),\n isGrid: toRef(props, 'isGrid'),\n isInGroup: ref(true),\n})\n\nconst containerClass = computed(() =>\n composeClassName('flex items-center flex-row', props.class)\n)\n\nconst visibleAvatars = computed(() => {\n if (!props.avatars) return []\n return props.max !== undefined ? props.avatars.slice(0, props.max) : props.avatars\n})\nconst avatarOverflowCount = computed(() => {\n if (!props.avatars || props.max === undefined) return 0\n const total = props.total ?? props.avatars.length\n return total - props.max\n})\nconst avatarOverflowLabel = computed(() => {\n if (avatarOverflowCount.value <= 0) return ''\n return props.renderCount ? props.renderCount(avatarOverflowCount.value) : `+${avatarOverflowCount.value}`\n})\n\n// Flatten slot vnodes (handles Fragments from v-for etc.)\nfunction flattenVNodes(vnodes: VNode[]): VNode[] {\n const result: VNode[] = []\n for (const vnode of vnodes) {\n if (vnode.type === Fragment && Array.isArray(vnode.children)) {\n result.push(...flattenVNodes(vnode.children as VNode[]))\n } else {\n result.push(vnode)\n }\n }\n return result\n}\n\n// Determine which vnodes to render when max is set\nfunction getSlicedNodes(): VNode[] {\n const defaultSlot = slots.default?.()\n if (!defaultSlot) return []\n\n const allNodes = flattenVNodes(defaultSlot)\n\n if (props.max === undefined) {\n return allNodes\n }\n\n const visibleNodes = allNodes.slice(0, props.max)\n const totalCount = props.total ?? allNodes.length\n const overflowCount = totalCount - props.max\n\n if (overflowCount <= 0) {\n return visibleNodes\n }\n\n const counterLabel = props.renderCount\n ? props.renderCount(overflowCount)\n : `+${overflowCount}`\n\n // Render counter avatar with a fallback slot so the full label string is shown\n const counterNode = h(Avatar, {}, {\n fallback: () => h('span', { class: 'avatar__name text-xs font-medium leading-none' }, counterLabel),\n })\n\n return [...visibleNodes, counterNode]\n}\n</script>\n\n<template>\n <div\n role=\"group\"\n :class=\"containerClass\"\n >\n <template v-if=\"props.avatars\">\n <Avatar\n v-for=\"(avatar, idx) in visibleAvatars\"\n :key=\"idx\"\n v-bind=\"avatar\"\n />\n <Avatar v-if=\"avatarOverflowCount > 0\">\n <template #fallback>\n <span class=\"avatar__name text-xs font-medium leading-none\">{{ avatarOverflowLabel }}</span>\n </template>\n </Avatar>\n </template>\n <template v-else-if=\"props.max !== undefined\">\n <!-- Use render function output for sliced vnodes -->\n <template\n v-for=\"(node, _i) in getSlicedNodes()\"\n :key=\"_i\"\n >\n <component :is=\"node\" />\n </template>\n </template>\n <template v-else>\n <slot />\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBA,MAAM,QAAQ;EAmBd,MAAM,QAAQ,UAAA;AAKd,wBAAsB;GACpB,MAAM,MAAM,OAAO,OAAO;GAC1B,YAAY,MAAM,OAAO,aAAa;GACtC,YAAY,MAAM,OAAO,aAAa;GACtC,QAAQ,MAAM,OAAO,SAAS;GAC9B,WAAW,IAAI,KAAK;GACrB,CAAA;EAED,MAAM,iBAAiB,eACrB,iBAAiB,8BAA8B,MAAM,MAAK,CAC5D;EAEA,MAAM,iBAAiB,eAAe;AACpC,OAAI,CAAC,MAAM,QAAS,QAAO,EAAC;AAC5B,UAAO,MAAM,QAAQ,KAAA,IAAY,MAAM,QAAQ,MAAM,GAAG,MAAM,IAAI,GAAG,MAAM;IAC5E;EACD,MAAM,sBAAsB,eAAe;AACzC,OAAI,CAAC,MAAM,WAAW,MAAM,QAAQ,KAAA,EAAW,QAAO;AAEtD,WADc,MAAM,SAAS,MAAM,QAAQ,UAC5B,MAAM;IACtB;EACD,MAAM,sBAAsB,eAAe;AACzC,OAAI,oBAAoB,SAAS,EAAG,QAAO;AAC3C,UAAO,MAAM,cAAc,MAAM,YAAY,oBAAoB,MAAM,GAAG,IAAI,oBAAoB;IACnG;EAGD,SAAS,cAAc,QAA0B;GAC/C,MAAM,SAAkB,EAAC;AACzB,QAAK,MAAM,SAAS,OAClB,KAAI,MAAM,SAAS,YAAY,MAAM,QAAQ,MAAM,SAAS,CAC1D,QAAO,KAAK,GAAG,cAAc,MAAM,SAAoB,CAAA;OAEvD,QAAO,KAAK,MAAK;AAGrB,UAAO;;EAIT,SAAS,iBAA0B;GACjC,MAAM,cAAc,MAAM,WAAU;AACpC,OAAI,CAAC,YAAa,QAAO,EAAC;GAE1B,MAAM,WAAW,cAAc,YAAW;AAE1C,OAAI,MAAM,QAAQ,KAAA,EAChB,QAAO;GAGT,MAAM,eAAe,SAAS,MAAM,GAAG,MAAM,IAAG;GAEhD,MAAM,iBADa,MAAM,SAAS,SAAS,UACR,MAAM;AAEzC,OAAI,iBAAiB,EACnB,QAAO;GAGT,MAAM,eAAe,MAAM,cACvB,MAAM,YAAY,cAAa,GAC/B,IAAI;GAGR,MAAM,cAAc,EAAE,gBAAQ,EAAE,EAAE,EAChC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,iDAAiD,EAAE,aAAa,EACpG,CAAA;AAED,UAAO,CAAC,GAAG,cAAc,YAAW;;;uBAKpC,mBA4BM,OAAA;IA3BJ,MAAK;IACJ,OAAK,eAAE,eAAA,MAAc;OAEN,MAAM,WAAA,WAAA,EAAtB,mBAWW,UAAA,EAAA,KAAA,GAAA,EAAA,EAAA,UAAA,KAAA,EAVT,mBAIE,UAAA,MAAA,WAHwB,eAAA,QAAhB,QAAQ,QAAG;wBADrB,YAIE,gBAJF,WAIE,EAFC,KAAK,KAAG,EAAA,EAAA,SAAA,MAAA,EACD,OAAM,EAAA,MAAA,GAAA;cAEF,oBAAA,QAAmB,KAAA,WAAA,EAAjC,YAIS,gBAAA,EAAA,KAAA,GAAA,EAAA;IAHI,UAAQ,cAC2E,CAA5F,mBAA4F,QAA5F,YAA4F,gBAA7B,oBAAA,MAAmB,EAAA,EAAA,CAAA,CAAA;;+CAInE,MAAM,QAAQ,KAAA,KAAA,UAAA,KAAA,EAEjC,mBAKW,UAAA,EAAA,KAAA,GAAA,EAAA,WAJY,gBAAc,GAA3B,MAAM,OAAE;wBAGhB,YAAwB,wBAAR,KAAI,EAAA,EAAA,KAFd,IAAE,CAAA;eAMV,WAAQ,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"AvatarGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/avatar/AvatarGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, ref, h, Fragment, type VNode } from 'vue'\nimport { type AvatarVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useAvatarGroupProvide } from './avatar-group.context'\nimport Avatar from './Avatar.vue'\n\ntype AvatarShorthandItem = {\n src?: string\n alt?: string\n name?: string\n color?: AvatarVariants['color']\n variant?: AvatarVariants['variant']\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n}\n\nconst props = withDefaults(defineProps<{\n size?: 'sm' | 'md' | 'lg'\n isBordered?: boolean\n isDisabled?: boolean\n isGrid?: boolean\n max?: number\n total?: number\n renderCount?: (count: number) => string\n class?: string\n /** Shorthand API: render avatars from an array instead of the compound slot API */\n avatars?: AvatarShorthandItem[]\n}>(), {\n size: 'md',\n\n isBordered: false,\n isDisabled: false,\n isGrid: false,\n})\n\nconst slots = defineSlots<{\n default?(): VNode[];\n}>()\n\n// Provide context using toRef() for reactivity (canonical pattern from ButtonGroup)\nuseAvatarGroupProvide({\n size: toRef(props, 'size'),\n isBordered: toRef(props, 'isBordered'),\n isDisabled: toRef(props, 'isDisabled'),\n isGrid: toRef(props, 'isGrid'),\n isInGroup: ref(true),\n})\n\nconst containerClass = computed(() =>\n composeClassName('flex items-center flex-row', props.class)\n)\n\nconst visibleAvatars = computed(() => {\n if (!props.avatars) return []\n return props.max !== undefined ? props.avatars.slice(0, props.max) : props.avatars\n})\nconst avatarOverflowCount = computed(() => {\n if (!props.avatars || props.max === undefined) return 0\n const total = props.total ?? props.avatars.length\n return total - props.max\n})\nconst avatarOverflowLabel = computed(() => {\n if (avatarOverflowCount.value <= 0) return ''\n return props.renderCount ? props.renderCount(avatarOverflowCount.value) : `+${avatarOverflowCount.value}`\n})\n\n// Flatten slot vnodes (handles Fragments from v-for etc.)\nfunction flattenVNodes(vnodes: VNode[]): VNode[] {\n const result: VNode[] = []\n for (const vnode of vnodes) {\n if (vnode.type === Fragment && Array.isArray(vnode.children)) {\n result.push(...flattenVNodes(vnode.children as VNode[]))\n } else {\n result.push(vnode)\n }\n }\n return result\n}\n\n// Determine which vnodes to render when max is set\nfunction getSlicedNodes(): VNode[] {\n const defaultSlot = slots.default?.()\n if (!defaultSlot) return []\n\n const allNodes = flattenVNodes(defaultSlot)\n\n if (props.max === undefined) {\n return allNodes\n }\n\n const visibleNodes = allNodes.slice(0, props.max)\n const totalCount = props.total ?? allNodes.length\n const overflowCount = totalCount - props.max\n\n if (overflowCount <= 0) {\n return visibleNodes\n }\n\n const counterLabel = props.renderCount\n ? props.renderCount(overflowCount)\n : `+${overflowCount}`\n\n // Render counter avatar with a fallback slot so the full label string is shown\n const counterNode = h(Avatar, {}, {\n fallback: () => h('span', { class: 'avatar__name text-xs font-medium leading-none' }, counterLabel),\n })\n\n return [...visibleNodes, counterNode]\n}\n</script>\n\n<template>\n <div\n role=\"group\"\n :class=\"containerClass\"\n >\n <template v-if=\"props.avatars\">\n <Avatar\n v-for=\"(avatar, idx) in visibleAvatars\"\n :key=\"idx\"\n v-bind=\"avatar\"\n />\n <Avatar v-if=\"avatarOverflowCount > 0\">\n <template #fallback>\n <span class=\"avatar__name text-xs font-medium leading-none\">{{ avatarOverflowLabel }}</span>\n </template>\n </Avatar>\n </template>\n <template v-else-if=\"props.max !== undefined\">\n <!-- Use render function output for sliced vnodes -->\n <template\n v-for=\"(node, _i) in getSlicedNodes()\"\n :key=\"_i\"\n >\n <component :is=\"node\" />\n </template>\n </template>\n <template v-else>\n <slot />\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBA,MAAM,QAAQ;EAmBd,MAAM,QAAQ,UAAA;AAKd,wBAAsB;GACpB,MAAM,MAAM,OAAO,OAAO;GAC1B,YAAY,MAAM,OAAO,aAAa;GACtC,YAAY,MAAM,OAAO,aAAa;GACtC,QAAQ,MAAM,OAAO,SAAS;GAC9B,WAAW,IAAI,KAAK;GACrB,CAAA;EAED,MAAM,iBAAiB,eACrB,iBAAiB,8BAA8B,MAAM,MAAK,CAC5D;EAEA,MAAM,iBAAiB,eAAe;AACpC,OAAI,CAAC,MAAM,QAAS,QAAO,EAAC;AAC5B,UAAO,MAAM,QAAQ,KAAA,IAAY,MAAM,QAAQ,MAAM,GAAG,MAAM,IAAI,GAAG,MAAM;IAC5E;EACD,MAAM,sBAAsB,eAAe;AACzC,OAAI,CAAC,MAAM,WAAW,MAAM,QAAQ,KAAA,EAAW,QAAO;AAEtD,WADc,MAAM,SAAS,MAAM,QAAQ,UAC5B,MAAM;IACtB;EACD,MAAM,sBAAsB,eAAe;AACzC,OAAI,oBAAoB,SAAS,EAAG,QAAO;AAC3C,UAAO,MAAM,cAAc,MAAM,YAAY,oBAAoB,MAAM,GAAG,IAAI,oBAAoB;IACnG;EAGD,SAAS,cAAc,QAA0B;GAC/C,MAAM,SAAkB,EAAC;AACzB,QAAK,MAAM,SAAS,OAClB,KAAI,MAAM,SAAS,YAAY,MAAM,QAAQ,MAAM,SAAS,CAC1D,QAAO,KAAK,GAAG,cAAc,MAAM,SAAoB,CAAA;OAEvD,QAAO,KAAK,MAAK;AAGrB,UAAO;;EAIT,SAAS,iBAA0B;GACjC,MAAM,cAAc,MAAM,WAAU;AACpC,OAAI,CAAC,YAAa,QAAO,EAAC;GAE1B,MAAM,WAAW,cAAc,YAAW;AAE1C,OAAI,MAAM,QAAQ,KAAA,EAChB,QAAO;GAGT,MAAM,eAAe,SAAS,MAAM,GAAG,MAAM,IAAG;GAEhD,MAAM,iBADa,MAAM,SAAS,SAAS,UACR,MAAM;AAEzC,OAAI,iBAAiB,EACnB,QAAO;GAGT,MAAM,eAAe,MAAM,cACvB,MAAM,YAAY,cAAa,GAC/B,IAAI;GAGR,MAAM,cAAc,EAAE,gBAAQ,EAAE,EAAE,EAChC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,iDAAiD,EAAE,aAAa,EACpG,CAAA;AAED,UAAO,CAAC,GAAG,cAAc,YAAW;;;uBAKpC,mBA4BM,OAAA;IA3BJ,MAAK;IACJ,OAAK,eAAE,eAAA,MAAc;OAEN,MAAM,WAAA,WAAA,EAAtB,mBAWW,UAAA,EAAA,KAAA,GAAA,EAAA,EAAA,UAAA,KAAA,EAVT,mBAIE,UAAA,MAAA,WAHwB,eAAA,QAAhB,QAAQ,QAAG;wBADrB,YAIE,gBAJF,WAIE,EAFC,KAAK,KAAG,EAAA,EAAA,SAAA,MAAA,EACD,OAAM,EAAA,MAAA,GAAA;cAEF,oBAAA,QAAmB,KAAA,WAAA,EAAjC,YAIS,gBAAA,EAAA,KAAA,GAAA,EAAA;IAHI,UAAQ,cAC2E,CAA5F,mBAA4F,QAA5F,YAA4F,gBAA7B,oBAAA,MAAmB,EAAA,EAAA,CAAA,CAAA;;+CAInE,MAAM,QAAQ,KAAA,KAAA,UAAA,KAAA,EAEjC,mBAKW,UAAA,EAAA,KAAA,GAAA,EAAA,WAJY,gBAAc,GAA3B,MAAM,OAAE;wBAGhB,YAAwB,wBAAR,KAAI,EAAA,EAAA,KAFd,IAAE,CAAA;eAMV,WAAQ,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,EAAA,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":[],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\n\nconst props = withDefaults(defineProps<{\n variant?: ButtonVariants['variant']\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Button.js","names":[],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\n\nconst props = withDefaults(defineProps<{\n variant?: ButtonVariants['variant']\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n if (!v) return v\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":""}
@@ -102,11 +102,12 @@ var Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
102
102
  };
103
103
  const resolvedVariant = computed(() => {
104
104
  const v = finalVariant.value;
105
+ if (!v) return v;
105
106
  return LEGACY_VARIANTS[v]?.variant ?? v;
106
107
  });
107
108
  const resolvedColor = computed(() => {
108
109
  const v = finalVariant.value;
109
- if (props.color === void 0 && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color;
110
+ if (props.color === void 0 && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color;
110
111
  return finalColor.value;
111
112
  });
112
113
  const slotFns = computed(() => buttonVariants({
@@ -1 +1 @@
1
- {"version":3,"file":"Button.vue_vue_type_script_setup_true_lang.js","names":["$attrs","$slots"],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\n\nconst props = withDefaults(defineProps<{\n variant?: ButtonVariants['variant']\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.vue_vue_type_script_setup_true_lang.js","names":["$attrs","$slots"],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\n\nconst props = withDefaults(defineProps<{\n variant?: ButtonVariants['variant']\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n if (!v) return v\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListBox.js","names":[],"sources":["../../../src/components/list-box/ListBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, useAttrs } from 'vue'\nimport { ListboxRoot, ListboxContent } from 'reka-ui'\nimport { listboxVariants, type ListBoxVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useListBoxProvide } from './ListBox.context'\nimport ListBoxItem from './ListBoxItem.vue'\n\n// Disable Vue attribute fallthrough — we manually forward ARIA attrs to ListboxContent\ndefineOptions({ inheritAttrs: false })\n\ntype ListBoxShorthandItem = { value: string; label?: string; disabled?: boolean; textValue?: string }\n\nconst props = withDefaults(defineProps<{\n modelValue?: string | string[]\n defaultValue?: string | string[]\n selectionMode?: 'single' | 'multiple'\n variant?: ListBoxVariants['variant']\n isDisabled?: boolean\n class?: ClassValue\n /**\n * Per-slot class overrides. Each key maps to a named slot in the anatomy;\n * the value is merged with the generated variant classes via `composeClassName`.\n */\n classNames?: Partial<{\n base: ClassValue\n }>\n /** Shorthand API: render list items from an array instead of the compound slot API */\n items?: ListBoxShorthandItem[]\n}>(), {\n modelValue: undefined,\n defaultValue: undefined,\n selectionMode: 'single',\n variant: 'default',\n isDisabled: false,\n class: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string | string[] | undefined]\n}>()\n\nconst attrs = useAttrs()\n\n// Provide context for ListBoxItem and ListBoxSection children\nuseListBoxProvide({\n variant: toRef(props, 'variant'),\n itemVariant: toRef(props, 'variant'),\n isDisabled: toRef(props, 'isDisabled'),\n})\n\nconst slotFns = computed(() =>\n listboxVariants({ variant: props.variant })\n)\n</script>\n\n<template>\n <!-- ListboxRoot is an invisible wrapper that manages state; ListboxContent carries role=\"listbox\" -->\n <!-- We forward attrs (aria-label, aria-labelledby, etc.) to ListboxContent, not the root -->\n <ListboxRoot\n :model-value=\"props.modelValue == null ? undefined : ([] as string[]).concat(props.modelValue)\"\n :default-value=\"props.defaultValue == null ? undefined : ([] as string[]).concat(props.defaultValue)\"\n :multiple=\"props.selectionMode === 'multiple'\"\n :selection-behavior=\"props.selectionMode === 'multiple' ? 'toggle' : 'replace'\"\n :disabled=\"props.isDisabled\"\n @update:model-value=\"emit('update:modelValue', props.selectionMode === 'single' ? (Array.isArray($event) ? ($event as string[])[0] : $event as string) : $event as string[])\"\n >\n <ListboxContent\n v-bind=\"attrs\"\n :class=\"composeClassName(slotFns, props.class, props.classNames?.base)\"\n >\n <template v-if=\"props.items\">\n <ListBoxItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.disabled\"\n :text-value=\"item.textValue\"\n >{{ item.label ?? item.value }}</ListBoxItem>\n </template>\n <slot v-else />\n </ListboxContent>\n </ListboxRoot>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ListBox.js","names":[],"sources":["../../../src/components/list-box/ListBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, useAttrs } from 'vue'\nimport { ListboxRoot, ListboxContent } from 'reka-ui'\nimport { listboxVariants, type ListBoxVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useListBoxProvide } from './ListBox.context'\nimport ListBoxItem from './ListBoxItem.vue'\n\ntype ListBoxShorthandItem = { value: string; label?: string; disabled?: boolean; textValue?: string }\n\n// Disable Vue attribute fallthrough — we manually forward ARIA attrs to ListboxContent\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<{\n modelValue?: string | string[]\n defaultValue?: string | string[]\n selectionMode?: 'single' | 'multiple'\n variant?: ListBoxVariants['variant']\n isDisabled?: boolean\n class?: ClassValue\n /**\n * Per-slot class overrides. Each key maps to a named slot in the anatomy;\n * the value is merged with the generated variant classes via `composeClassName`.\n */\n classNames?: Partial<{\n base: ClassValue\n }>\n /** Shorthand API: render list items from an array instead of the compound slot API */\n items?: ListBoxShorthandItem[]\n}>(), {\n modelValue: undefined,\n defaultValue: undefined,\n selectionMode: 'single',\n variant: 'default',\n isDisabled: false,\n class: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string | string[] | undefined]\n}>()\n\nconst attrs = useAttrs()\n\n// Provide context for ListBoxItem and ListBoxSection children\nuseListBoxProvide({\n variant: toRef(props, 'variant'),\n itemVariant: toRef(props, 'variant'),\n isDisabled: toRef(props, 'isDisabled'),\n})\n\nconst slotFns = computed(() =>\n listboxVariants({ variant: props.variant })\n)\n</script>\n\n<template>\n <!-- ListboxRoot is an invisible wrapper that manages state; ListboxContent carries role=\"listbox\" -->\n <!-- We forward attrs (aria-label, aria-labelledby, etc.) to ListboxContent, not the root -->\n <ListboxRoot\n :model-value=\"props.modelValue == null ? undefined : ([] as string[]).concat(props.modelValue)\"\n :default-value=\"props.defaultValue == null ? undefined : ([] as string[]).concat(props.defaultValue)\"\n :multiple=\"props.selectionMode === 'multiple'\"\n :selection-behavior=\"props.selectionMode === 'multiple' ? 'toggle' : 'replace'\"\n :disabled=\"props.isDisabled\"\n @update:model-value=\"emit('update:modelValue', props.selectionMode === 'single' ? (Array.isArray($event) ? ($event as string[])[0] : $event as string) : $event as string[])\"\n >\n <ListboxContent\n v-bind=\"attrs\"\n :class=\"composeClassName(slotFns, props.class, props.classNames?.base)\"\n >\n <template v-if=\"props.items\">\n <ListBoxItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.disabled\"\n :text-value=\"item.textValue\"\n >{{ item.label ?? item.value }}</ListBoxItem>\n </template>\n <slot v-else />\n </ListboxContent>\n </ListboxRoot>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ListBox.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/list-box/ListBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, useAttrs } from 'vue'\nimport { ListboxRoot, ListboxContent } from 'reka-ui'\nimport { listboxVariants, type ListBoxVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useListBoxProvide } from './ListBox.context'\nimport ListBoxItem from './ListBoxItem.vue'\n\n// Disable Vue attribute fallthrough — we manually forward ARIA attrs to ListboxContent\ndefineOptions({ inheritAttrs: false })\n\ntype ListBoxShorthandItem = { value: string; label?: string; disabled?: boolean; textValue?: string }\n\nconst props = withDefaults(defineProps<{\n modelValue?: string | string[]\n defaultValue?: string | string[]\n selectionMode?: 'single' | 'multiple'\n variant?: ListBoxVariants['variant']\n isDisabled?: boolean\n class?: ClassValue\n /**\n * Per-slot class overrides. Each key maps to a named slot in the anatomy;\n * the value is merged with the generated variant classes via `composeClassName`.\n */\n classNames?: Partial<{\n base: ClassValue\n }>\n /** Shorthand API: render list items from an array instead of the compound slot API */\n items?: ListBoxShorthandItem[]\n}>(), {\n modelValue: undefined,\n defaultValue: undefined,\n selectionMode: 'single',\n variant: 'default',\n isDisabled: false,\n class: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string | string[] | undefined]\n}>()\n\nconst attrs = useAttrs()\n\n// Provide context for ListBoxItem and ListBoxSection children\nuseListBoxProvide({\n variant: toRef(props, 'variant'),\n itemVariant: toRef(props, 'variant'),\n isDisabled: toRef(props, 'isDisabled'),\n})\n\nconst slotFns = computed(() =>\n listboxVariants({ variant: props.variant })\n)\n</script>\n\n<template>\n <!-- ListboxRoot is an invisible wrapper that manages state; ListboxContent carries role=\"listbox\" -->\n <!-- We forward attrs (aria-label, aria-labelledby, etc.) to ListboxContent, not the root -->\n <ListboxRoot\n :model-value=\"props.modelValue == null ? undefined : ([] as string[]).concat(props.modelValue)\"\n :default-value=\"props.defaultValue == null ? undefined : ([] as string[]).concat(props.defaultValue)\"\n :multiple=\"props.selectionMode === 'multiple'\"\n :selection-behavior=\"props.selectionMode === 'multiple' ? 'toggle' : 'replace'\"\n :disabled=\"props.isDisabled\"\n @update:model-value=\"emit('update:modelValue', props.selectionMode === 'single' ? (Array.isArray($event) ? ($event as string[])[0] : $event as string) : $event as string[])\"\n >\n <ListboxContent\n v-bind=\"attrs\"\n :class=\"composeClassName(slotFns, props.class, props.classNames?.base)\"\n >\n <template v-if=\"props.items\">\n <ListBoxItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.disabled\"\n :text-value=\"item.textValue\"\n >{{ item.label ?? item.value }}</ListBoxItem>\n </template>\n <slot v-else />\n </ListboxContent>\n </ListboxRoot>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaA,MAAM,QAAQ;EAyBd,MAAM,OAAO;EAIb,MAAM,QAAQ,UAAS;AAGvB,oBAAkB;GAChB,SAAS,MAAM,OAAO,UAAU;GAChC,aAAa,MAAM,OAAO,UAAU;GACpC,YAAY,MAAM,OAAO,aAAa;GACvC,CAAA;EAED,MAAM,UAAU,eACd,gBAAgB,EAAE,SAAS,MAAM,SAAS,CAAA,CAC5C;;uBAME,YAuBc,MAAA,YAAA,EAAA;IAtBX,eAAa,MAAM,cAAU,OAAW,KAAA,IAAS,EAAA,CAAoB,OAAO,MAAM,WAAU;IAC5F,iBAAe,MAAM,gBAAY,OAAW,KAAA,IAAS,EAAA,CAAoB,OAAO,MAAM,aAAY;IAClG,UAAU,MAAM,kBAAa;IAC7B,sBAAoB,MAAM,kBAAa,aAAA,WAAA;IACvC,UAAU,MAAM;IAChB,uBAAkB,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,qBAAsB,MAAM,kBAAa,WAAiB,MAAM,QAAQ,OAAM,GAAK,OAAM,KAAmB,SAAoB,OAAM;;2BAgB9I,CAdjB,YAciB,MAAA,eAAA,EAdjB,WACU,MAaO,MAbF,EAAA,EACZ,OAAO,MAAA,iBAAgB,CAAC,QAAA,OAAS,MAAM,OAAO,MAAM,YAAY,KAAI,EAAA,CAAA,EAAA;4BAU1D,CARK,MAAM,SAAA,UAAA,KAAA,EACpB,mBAM6C,UAAA,EAAA,KAAA,GAAA,EAAA,WAL5B,MAAM,QAAd,SAAI;0BADb,YAM6C,qBAAA;OAJ1C,KAAK,KAAK;OACV,OAAO,KAAK;OACZ,eAAa,KAAK;OAClB,cAAY,KAAK;;8BACW,CAAA,gBAAA,gBAA3B,KAAK,SAAS,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;;;iBAE9B,WAAe,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ListBox.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/list-box/ListBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef, useAttrs } from 'vue'\nimport { ListboxRoot, ListboxContent } from 'reka-ui'\nimport { listboxVariants, type ListBoxVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useListBoxProvide } from './ListBox.context'\nimport ListBoxItem from './ListBoxItem.vue'\n\ntype ListBoxShorthandItem = { value: string; label?: string; disabled?: boolean; textValue?: string }\n\n// Disable Vue attribute fallthrough — we manually forward ARIA attrs to ListboxContent\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<{\n modelValue?: string | string[]\n defaultValue?: string | string[]\n selectionMode?: 'single' | 'multiple'\n variant?: ListBoxVariants['variant']\n isDisabled?: boolean\n class?: ClassValue\n /**\n * Per-slot class overrides. Each key maps to a named slot in the anatomy;\n * the value is merged with the generated variant classes via `composeClassName`.\n */\n classNames?: Partial<{\n base: ClassValue\n }>\n /** Shorthand API: render list items from an array instead of the compound slot API */\n items?: ListBoxShorthandItem[]\n}>(), {\n modelValue: undefined,\n defaultValue: undefined,\n selectionMode: 'single',\n variant: 'default',\n isDisabled: false,\n class: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string | string[] | undefined]\n}>()\n\nconst attrs = useAttrs()\n\n// Provide context for ListBoxItem and ListBoxSection children\nuseListBoxProvide({\n variant: toRef(props, 'variant'),\n itemVariant: toRef(props, 'variant'),\n isDisabled: toRef(props, 'isDisabled'),\n})\n\nconst slotFns = computed(() =>\n listboxVariants({ variant: props.variant })\n)\n</script>\n\n<template>\n <!-- ListboxRoot is an invisible wrapper that manages state; ListboxContent carries role=\"listbox\" -->\n <!-- We forward attrs (aria-label, aria-labelledby, etc.) to ListboxContent, not the root -->\n <ListboxRoot\n :model-value=\"props.modelValue == null ? undefined : ([] as string[]).concat(props.modelValue)\"\n :default-value=\"props.defaultValue == null ? undefined : ([] as string[]).concat(props.defaultValue)\"\n :multiple=\"props.selectionMode === 'multiple'\"\n :selection-behavior=\"props.selectionMode === 'multiple' ? 'toggle' : 'replace'\"\n :disabled=\"props.isDisabled\"\n @update:model-value=\"emit('update:modelValue', props.selectionMode === 'single' ? (Array.isArray($event) ? ($event as string[])[0] : $event as string) : $event as string[])\"\n >\n <ListboxContent\n v-bind=\"attrs\"\n :class=\"composeClassName(slotFns, props.class, props.classNames?.base)\"\n >\n <template v-if=\"props.items\">\n <ListBoxItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.disabled\"\n :text-value=\"item.textValue\"\n >{{ item.label ?? item.value }}</ListBoxItem>\n </template>\n <slot v-else />\n </ListboxContent>\n </ListboxRoot>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaA,MAAM,QAAQ;EAyBd,MAAM,OAAO;EAIb,MAAM,QAAQ,UAAS;AAGvB,oBAAkB;GAChB,SAAS,MAAM,OAAO,UAAU;GAChC,aAAa,MAAM,OAAO,UAAU;GACpC,YAAY,MAAM,OAAO,aAAa;GACvC,CAAA;EAED,MAAM,UAAU,eACd,gBAAgB,EAAE,SAAS,MAAM,SAAS,CAAA,CAC5C;;uBAME,YAuBc,MAAA,YAAA,EAAA;IAtBX,eAAa,MAAM,cAAU,OAAW,KAAA,IAAS,EAAA,CAAoB,OAAO,MAAM,WAAU;IAC5F,iBAAe,MAAM,gBAAY,OAAW,KAAA,IAAS,EAAA,CAAoB,OAAO,MAAM,aAAY;IAClG,UAAU,MAAM,kBAAa;IAC7B,sBAAoB,MAAM,kBAAa,aAAA,WAAA;IACvC,UAAU,MAAM;IAChB,uBAAkB,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,qBAAsB,MAAM,kBAAa,WAAiB,MAAM,QAAQ,OAAM,GAAK,OAAM,KAAmB,SAAoB,OAAM;;2BAgB9I,CAdjB,YAciB,MAAA,eAAA,EAdjB,WACU,MAaO,MAbF,EAAA,EACZ,OAAO,MAAA,iBAAgB,CAAC,QAAA,OAAS,MAAM,OAAO,MAAM,YAAY,KAAI,EAAA,CAAA,EAAA;4BAU1D,CARK,MAAM,SAAA,UAAA,KAAA,EACpB,mBAM6C,UAAA,EAAA,KAAA,GAAA,EAAA,WAL5B,MAAM,QAAd,SAAI;0BADb,YAM6C,qBAAA;OAJ1C,KAAK,KAAK;OACV,OAAO,KAAK;OACZ,eAAa,KAAK;OAClB,cAAY,KAAK;;8BACW,CAAA,gBAAA,gBAA3B,KAAK,SAAS,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;;;iBAE9B,WAAe,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarToggleGroup.js","names":[],"sources":["../../../src/components/toolbar/ToolbarToggleGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { ToolbarToggleGroup as RekaToolbarToggleGroup } from 'reka-ui'\nimport { toggleButtonGroupVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToolbarInject } from './toolbar.context'\nimport ToolbarToggleItem from './ToolbarToggleItem.vue'\n\ntype Single = string\ntype Multi = string[]\ntype ToolbarToggleShorthandItem = { value: string; label?: string; variant?: string; size?: string; isIconOnly?: boolean; disabled?: boolean; class?: string }\n\nconst props = defineProps<{\n type: 'single' | 'multiple'\n modelValue?: Single | Multi\n defaultValue?: Single | Multi\n disabled?: boolean\n orientation?: 'horizontal' | 'vertical'\n isDetached?: boolean\n class?: string\n /** Shorthand API: render toggle items from an array instead of the compound slot API */\n items?: ToolbarToggleShorthandItem[]\n}>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Single | Multi]\n}>()\n\nconst ctx = useToolbarInject({ orientation: computed(() => 'horizontal' as const) })\nconst orientation = computed(() => props.orientation ?? ctx.orientation.value)\n\nconst classes = computed(() =>\n toggleButtonGroupVariants({ orientation: orientation.value, isDetached: props.isDetached ?? false }).base()\n)\n</script>\n\n<template>\n <RekaToolbarToggleGroup\n :type=\"props.type\"\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :disabled=\"props.disabled\"\n :class=\"composeClassName(classes, props.class)\"\n @update:model-value=\"(v) => emit('update:modelValue', v as Single | Multi)\"\n >\n <template v-if=\"props.items\">\n <ToolbarToggleItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :variant=\"item.variant\"\n :size=\"item.size\"\n :is-icon-only=\"item.isIconOnly\"\n :disabled=\"item.disabled\"\n :class=\"item.class\"\n >{{ item.label }}</ToolbarToggleItem>\n </template>\n <slot v-else />\n </RekaToolbarToggleGroup>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ToolbarToggleGroup.js","names":[],"sources":["../../../src/components/toolbar/ToolbarToggleGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { ToolbarToggleGroup as RekaToolbarToggleGroup } from 'reka-ui'\nimport { toggleButtonGroupVariants, type ToggleButtonVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToolbarInject } from './toolbar.context'\nimport ToolbarToggleItem from './ToolbarToggleItem.vue'\n\ntype Single = string\ntype Multi = string[]\ntype ToolbarToggleShorthandItem = { value: string; label?: string; variant?: ToggleButtonVariants['variant']; size?: ToggleButtonVariants['size']; isIconOnly?: boolean; disabled?: boolean; class?: string }\n\nconst props = defineProps<{\n type: 'single' | 'multiple'\n modelValue?: Single | Multi\n defaultValue?: Single | Multi\n disabled?: boolean\n orientation?: 'horizontal' | 'vertical'\n isDetached?: boolean\n class?: string\n /** Shorthand API: render toggle items from an array instead of the compound slot API */\n items?: ToolbarToggleShorthandItem[]\n}>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Single | Multi]\n}>()\n\nconst ctx = useToolbarInject({ orientation: computed(() => 'horizontal' as const) })\nconst orientation = computed(() => props.orientation ?? ctx.orientation.value)\n\nconst classes = computed(() =>\n toggleButtonGroupVariants({ orientation: orientation.value, isDetached: props.isDetached ?? false }).base()\n)\n</script>\n\n<template>\n <RekaToolbarToggleGroup\n :type=\"props.type\"\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :disabled=\"props.disabled\"\n :class=\"composeClassName(classes, props.class)\"\n @update:model-value=\"(v) => emit('update:modelValue', v as Single | Multi)\"\n >\n <template v-if=\"props.items\">\n <ToolbarToggleItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :variant=\"item.variant\"\n :size=\"item.size\"\n :is-icon-only=\"item.isIconOnly\"\n :disabled=\"item.disabled\"\n :class=\"item.class\"\n >{{ item.label }}</ToolbarToggleItem>\n </template>\n <slot v-else />\n </RekaToolbarToggleGroup>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/toolbar/ToolbarToggleGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { ToolbarToggleGroup as RekaToolbarToggleGroup } from 'reka-ui'\nimport { toggleButtonGroupVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToolbarInject } from './toolbar.context'\nimport ToolbarToggleItem from './ToolbarToggleItem.vue'\n\ntype Single = string\ntype Multi = string[]\ntype ToolbarToggleShorthandItem = { value: string; label?: string; variant?: string; size?: string; isIconOnly?: boolean; disabled?: boolean; class?: string }\n\nconst props = defineProps<{\n type: 'single' | 'multiple'\n modelValue?: Single | Multi\n defaultValue?: Single | Multi\n disabled?: boolean\n orientation?: 'horizontal' | 'vertical'\n isDetached?: boolean\n class?: string\n /** Shorthand API: render toggle items from an array instead of the compound slot API */\n items?: ToolbarToggleShorthandItem[]\n}>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Single | Multi]\n}>()\n\nconst ctx = useToolbarInject({ orientation: computed(() => 'horizontal' as const) })\nconst orientation = computed(() => props.orientation ?? ctx.orientation.value)\n\nconst classes = computed(() =>\n toggleButtonGroupVariants({ orientation: orientation.value, isDetached: props.isDetached ?? false }).base()\n)\n</script>\n\n<template>\n <RekaToolbarToggleGroup\n :type=\"props.type\"\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :disabled=\"props.disabled\"\n :class=\"composeClassName(classes, props.class)\"\n @update:model-value=\"(v) => emit('update:modelValue', v as Single | Multi)\"\n >\n <template v-if=\"props.items\">\n <ToolbarToggleItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :variant=\"item.variant\"\n :size=\"item.size\"\n :is-icon-only=\"item.isIconOnly\"\n :disabled=\"item.disabled\"\n :class=\"item.class\"\n >{{ item.label }}</ToolbarToggleItem>\n </template>\n <slot v-else />\n </RekaToolbarToggleGroup>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAYA,MAAM,QAAQ;EAYd,MAAM,OAAO;EAIb,MAAM,MAAM,iBAAiB,EAAE,aAAa,eAAe,aAAsB,EAAE,CAAA;EACnF,MAAM,cAAc,eAAe,MAAM,eAAe,IAAI,YAAY,MAAK;EAE7E,MAAM,UAAU,eACd,0BAA0B;GAAE,aAAa,YAAY;GAAO,YAAY,MAAM,cAAc;GAAO,CAAC,CAAC,MAAK,CAC5G;;uBAIE,YAqByB,MAAA,mBAAA,EAAA;IApBtB,MAAM,MAAM;IACZ,eAAa,MAAM;IACnB,iBAAe,MAAM;IACrB,UAAU,MAAM;IAChB,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,OAAS,MAAM,MAAK,CAAA;IAC5C,uBAAkB,OAAA,OAAA,OAAA,MAAG,MAAM,KAAI,qBAAsB,EAAC;;2BAa5C,CAXK,MAAM,SAAA,UAAA,KAAA,EACpB,mBASqC,UAAA,EAAA,KAAA,GAAA,EAAA,WARpB,MAAM,QAAd,SAAI;yBADb,YASqC,2BAAA;MAPlC,KAAK,KAAK;MACV,OAAO,KAAK;MACZ,SAAS,KAAK;MACd,MAAM,KAAK;MACX,gBAAc,KAAK;MACnB,UAAU,KAAK;MACf,OAAK,eAAE,KAAK,MAAK;;6BACH,CAAA,gBAAA,gBAAb,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;gBAEhB,WAAe,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/toolbar/ToolbarToggleGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { ToolbarToggleGroup as RekaToolbarToggleGroup } from 'reka-ui'\nimport { toggleButtonGroupVariants, type ToggleButtonVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToolbarInject } from './toolbar.context'\nimport ToolbarToggleItem from './ToolbarToggleItem.vue'\n\ntype Single = string\ntype Multi = string[]\ntype ToolbarToggleShorthandItem = { value: string; label?: string; variant?: ToggleButtonVariants['variant']; size?: ToggleButtonVariants['size']; isIconOnly?: boolean; disabled?: boolean; class?: string }\n\nconst props = defineProps<{\n type: 'single' | 'multiple'\n modelValue?: Single | Multi\n defaultValue?: Single | Multi\n disabled?: boolean\n orientation?: 'horizontal' | 'vertical'\n isDetached?: boolean\n class?: string\n /** Shorthand API: render toggle items from an array instead of the compound slot API */\n items?: ToolbarToggleShorthandItem[]\n}>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Single | Multi]\n}>()\n\nconst ctx = useToolbarInject({ orientation: computed(() => 'horizontal' as const) })\nconst orientation = computed(() => props.orientation ?? ctx.orientation.value)\n\nconst classes = computed(() =>\n toggleButtonGroupVariants({ orientation: orientation.value, isDetached: props.isDetached ?? false }).base()\n)\n</script>\n\n<template>\n <RekaToolbarToggleGroup\n :type=\"props.type\"\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :disabled=\"props.disabled\"\n :class=\"composeClassName(classes, props.class)\"\n @update:model-value=\"(v) => emit('update:modelValue', v as Single | Multi)\"\n >\n <template v-if=\"props.items\">\n <ToolbarToggleItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :variant=\"item.variant\"\n :size=\"item.size\"\n :is-icon-only=\"item.isIconOnly\"\n :disabled=\"item.disabled\"\n :class=\"item.class\"\n >{{ item.label }}</ToolbarToggleItem>\n </template>\n <slot v-else />\n </RekaToolbarToggleGroup>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAYA,MAAM,QAAQ;EAYd,MAAM,OAAO;EAIb,MAAM,MAAM,iBAAiB,EAAE,aAAa,eAAe,aAAsB,EAAE,CAAA;EACnF,MAAM,cAAc,eAAe,MAAM,eAAe,IAAI,YAAY,MAAK;EAE7E,MAAM,UAAU,eACd,0BAA0B;GAAE,aAAa,YAAY;GAAO,YAAY,MAAM,cAAc;GAAO,CAAC,CAAC,MAAK,CAC5G;;uBAIE,YAqByB,MAAA,mBAAA,EAAA;IApBtB,MAAM,MAAM;IACZ,eAAa,MAAM;IACnB,iBAAe,MAAM;IACrB,UAAU,MAAM;IAChB,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,OAAS,MAAM,MAAK,CAAA;IAC5C,uBAAkB,OAAA,OAAA,OAAA,MAAG,MAAM,KAAI,qBAAsB,EAAC;;2BAa5C,CAXK,MAAM,SAAA,UAAA,KAAA,EACpB,mBASqC,UAAA,EAAA,KAAA,GAAA,EAAA,WARpB,MAAM,QAAd,SAAI;yBADb,YASqC,2BAAA;MAPlC,KAAK,KAAK;MACV,OAAO,KAAK;MACZ,SAAS,KAAK;MACd,MAAM,KAAK;MACX,gBAAc,KAAK;MACnB,UAAU,KAAK;MACf,OAAK,eAAE,KAAK,MAAK;;6BACH,CAAA,gBAAA,gBAAb,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;gBAEhB,WAAe,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
package/dist/index.d.ts CHANGED
@@ -7290,8 +7290,8 @@ declare type AvatarShorthandItem = {
7290
7290
  src?: string;
7291
7291
  alt?: string;
7292
7292
  name?: string;
7293
- color?: string;
7294
- variant?: string;
7293
+ color?: AvatarVariants['color'];
7294
+ variant?: AvatarVariants['variant'];
7295
7295
  isBordered?: boolean;
7296
7296
  isDisabled?: boolean;
7297
7297
  showFallback?: boolean;
@@ -9096,8 +9096,8 @@ export declare function composeSlotClassName<V extends Record<string, unknown>>(
9096
9096
  declare type ToolbarToggleShorthandItem = {
9097
9097
  value: string;
9098
9098
  label?: string;
9099
- variant?: string;
9100
- size?: string;
9099
+ variant?: ToggleButtonVariants['variant'];
9100
+ size?: ToggleButtonVariants['size'];
9101
9101
  isIconOnly?: boolean;
9102
9102
  disabled?: boolean;
9103
9103
  class?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auronui/vue",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "description": "Vue 3 85 components with full visual and functional parity",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -69,7 +69,7 @@
69
69
  "tailwind-merge": "3.5.0",
70
70
  "tailwind-variants": "3.2.2",
71
71
  "vee-validate": "^4.15.1",
72
- "@auronui/styles": "1.0.18"
72
+ "@auronui/styles": "1.0.20"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@chialab/vitest-axe": "0.19.1",