@soybeanjs/ui 0.0.9 → 0.0.11

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.
Files changed (225) hide show
  1. package/dist/components/accordion/accordion.js +1 -1
  2. package/dist/components/accordion/accordion.vue.d.ts +3 -3
  3. package/dist/components/accordion/index.d.ts +1 -1
  4. package/dist/components/accordion/types.d.ts +10 -6
  5. package/dist/components/alert/alert.js +1 -1
  6. package/dist/components/alert/alert.vue.d.ts +4 -4
  7. package/dist/components/alert/types.d.ts +7 -3
  8. package/dist/components/alert-dialog/alert-dialog-action.js +1 -1
  9. package/dist/components/alert-dialog/alert-dialog-action.vue.d.ts +3 -3
  10. package/dist/components/alert-dialog/alert-dialog-cancel.js +1 -1
  11. package/dist/components/alert-dialog/alert-dialog-cancel.vue.d.ts +3 -3
  12. package/dist/components/alert-dialog/alert-dialog.js +1 -1
  13. package/dist/components/alert-dialog/alert-dialog.vue.d.ts +4 -4
  14. package/dist/components/avatar/avatar.js +1 -1
  15. package/dist/components/avatar/avatar.vue.d.ts +7 -7
  16. package/dist/components/avatar/types.d.ts +5 -1
  17. package/dist/components/badge/badge.js +1 -1
  18. package/dist/components/badge/badge.vue.d.ts +4 -4
  19. package/dist/components/badge/types.d.ts +5 -1
  20. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  21. package/dist/components/breadcrumb/breadcrumb.vue.d.ts +3 -3
  22. package/dist/components/breadcrumb/types.d.ts +5 -1
  23. package/dist/components/button/button-group.js +1 -1
  24. package/dist/components/button/button-group.vue.d.ts +6 -6
  25. package/dist/components/button/button-icon.js +1 -1
  26. package/dist/components/button/button-icon.vue.d.ts +3 -3
  27. package/dist/components/button/button-link.js +1 -1
  28. package/dist/components/button/button-link.vue.d.ts +4 -4
  29. package/dist/components/button/button-loading.js +1 -1
  30. package/dist/components/button/button-loading.vue.d.ts +3 -3
  31. package/dist/components/button/button.js +1 -1
  32. package/dist/components/button/button.vue.d.ts +4 -4
  33. package/dist/components/button/types.d.ts +4 -3
  34. package/dist/components/card/card.js +1 -1
  35. package/dist/components/card/card.vue.d.ts +3 -3
  36. package/dist/components/card/types.d.ts +5 -1
  37. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  38. package/dist/components/checkbox/checkbox-card-group.vue.d.ts +3 -3
  39. package/dist/components/checkbox/checkbox-card.js +1 -1
  40. package/dist/components/checkbox/checkbox-card.vue.d.ts +8 -8
  41. package/dist/components/checkbox/checkbox-group.vue.d.ts +3 -3
  42. package/dist/components/checkbox/checkbox.js +1 -1
  43. package/dist/components/checkbox/checkbox.vue.d.ts +12 -12
  44. package/dist/components/checkbox/index.d.ts +1 -1
  45. package/dist/components/checkbox/types.d.ts +7 -6
  46. package/dist/components/collapsible/collapsible.js +1 -1
  47. package/dist/components/collapsible/collapsible.vue.d.ts +4 -4
  48. package/dist/components/command/command-group-option.js +1 -1
  49. package/dist/components/command/command-single-option.js +1 -1
  50. package/dist/components/command/command.js +1 -1
  51. package/dist/components/command/command.vue.d.ts +7 -7
  52. package/dist/components/command/context.js +1 -1
  53. package/dist/components/command/index.d.ts +1 -1
  54. package/dist/components/command/types.d.ts +11 -10
  55. package/dist/components/config-provider/config-provider.vue.d.ts +5 -5
  56. package/dist/components/context-menu/context-menu-checkbox.js +1 -1
  57. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +9 -9
  58. package/dist/components/context-menu/context-menu-radio.js +1 -1
  59. package/dist/components/context-menu/context-menu-radio.vue.d.ts +9 -9
  60. package/dist/components/context-menu/context-menu-wrapper.js +1 -1
  61. package/dist/components/context-menu/context-menu-wrapper.vue.d.ts +13 -13
  62. package/dist/components/context-menu/context-menu.js +1 -1
  63. package/dist/components/context-menu/context-menu.vue.d.ts +9 -9
  64. package/dist/components/context-menu/types.d.ts +23 -4
  65. package/dist/components/dialog/dialog-close.vue.d.ts +2 -2
  66. package/dist/components/dialog/dialog-pure.js +1 -1
  67. package/dist/components/dialog/dialog-pure.vue.d.ts +12 -12
  68. package/dist/components/dialog/dialog.js +1 -1
  69. package/dist/components/dialog/dialog.vue.d.ts +12 -12
  70. package/dist/components/dialog/index.d.ts +1 -1
  71. package/dist/components/dialog/types.d.ts +5 -4
  72. package/dist/components/drawer/drawer-close.vue.d.ts +2 -2
  73. package/dist/components/drawer/drawer.js +1 -1
  74. package/dist/components/drawer/drawer.vue.d.ts +12 -13
  75. package/dist/components/drawer/index.d.ts +1 -1
  76. package/dist/components/drawer/types.d.ts +6 -9
  77. package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
  78. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +9 -9
  79. package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
  80. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +9 -9
  81. package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
  82. package/dist/components/dropdown-menu/dropdown-menu-wrapper.vue.d.ts +13 -13
  83. package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
  84. package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +9 -9
  85. package/dist/components/dropdown-menu/types.d.ts +17 -3
  86. package/dist/components/form/form-field-base.js +1 -0
  87. package/dist/components/form/form.js +1 -1
  88. package/dist/components/form/form.vue.d.ts +2 -2
  89. package/dist/components/form/index.d.ts +2 -3
  90. package/dist/components/form/types.d.ts +28 -14
  91. package/dist/components/form/use-form.d.ts +44 -0
  92. package/dist/components/form/use-form.js +1 -0
  93. package/dist/components/icon/icon.vue.d.ts +4 -4
  94. package/dist/components/input/input.js +1 -1
  95. package/dist/components/input/input.vue.d.ts +4 -4
  96. package/dist/components/input/types.d.ts +6 -2
  97. package/dist/components/kbd/kbd.js +1 -1
  98. package/dist/components/kbd/kbd.vue.d.ts +3 -3
  99. package/dist/components/kbd/types.d.ts +2 -1
  100. package/dist/components/label/label.js +1 -1
  101. package/dist/components/label/label.vue.d.ts +2 -2
  102. package/dist/components/label/types.d.ts +2 -1
  103. package/dist/components/layout/layout-trigger.vue.d.ts +2 -2
  104. package/dist/components/layout/layout.js +1 -1
  105. package/dist/components/layout/layout.vue.d.ts +7 -4
  106. package/dist/components/layout/types.d.ts +2 -1
  107. package/dist/components/link/link.js +1 -1
  108. package/dist/components/link/link.vue.d.ts +4 -3
  109. package/dist/components/link/types.d.ts +8 -2
  110. package/dist/components/list/list-item.vue.d.ts +2 -2
  111. package/dist/components/list/list.js +1 -1
  112. package/dist/components/list/list.vue.d.ts +2 -2
  113. package/dist/components/list/types.d.ts +2 -1
  114. package/dist/components/menu/context.js +1 -1
  115. package/dist/components/menu/index.d.ts +1 -1
  116. package/dist/components/menu/menu-checkbox-options.js +1 -1
  117. package/dist/components/menu/menu-checkbox-options.vue.d.ts +3 -3
  118. package/dist/components/menu/menu-option.js +1 -1
  119. package/dist/components/menu/menu-option.vue.d.ts +9 -9
  120. package/dist/components/menu/menu-options.vue.d.ts +9 -9
  121. package/dist/components/menu/menu-radio-options.js +1 -1
  122. package/dist/components/menu/menu-radio-options.vue.d.ts +3 -3
  123. package/dist/components/menu/types.d.ts +6 -10
  124. package/dist/components/navigation-menu/context.js +1 -1
  125. package/dist/components/navigation-menu/index.d.ts +1 -1
  126. package/dist/components/navigation-menu/navigation-menu-option.js +1 -1
  127. package/dist/components/navigation-menu/navigation-menu-sub-option.js +1 -1
  128. package/dist/components/navigation-menu/navigation-menu.js +1 -1
  129. package/dist/components/navigation-menu/navigation-menu.vue.d.ts +11 -11
  130. package/dist/components/navigation-menu/types.d.ts +5 -8
  131. package/dist/components/number-input/number-input.js +1 -1
  132. package/dist/components/number-input/number-input.vue.d.ts +4 -4
  133. package/dist/components/number-input/types.d.ts +2 -1
  134. package/dist/components/pagination/pagination.js +1 -1
  135. package/dist/components/pagination/pagination.vue.d.ts +4 -4
  136. package/dist/components/pagination/types.d.ts +2 -1
  137. package/dist/components/password/password.js +1 -1
  138. package/dist/components/password/password.vue.d.ts +4 -4
  139. package/dist/components/password/types.d.ts +3 -2
  140. package/dist/components/popover/popover.js +1 -1
  141. package/dist/components/popover/popover.vue.d.ts +11 -11
  142. package/dist/components/popover/types.d.ts +5 -1
  143. package/dist/components/radio-group/index.d.ts +1 -1
  144. package/dist/components/radio-group/radio-card-group.js +1 -1
  145. package/dist/components/radio-group/radio-card-group.vue.d.ts +3 -3
  146. package/dist/components/radio-group/radio-card.vue.d.ts +2 -2
  147. package/dist/components/radio-group/radio-group.js +1 -1
  148. package/dist/components/radio-group/radio-group.vue.d.ts +3 -3
  149. package/dist/components/radio-group/radio.vue.d.ts +2 -2
  150. package/dist/components/radio-group/types.d.ts +4 -3
  151. package/dist/components/segment/segment.js +1 -1
  152. package/dist/components/segment/segment.vue.d.ts +3 -3
  153. package/dist/components/segment/types.d.ts +2 -1
  154. package/dist/components/select/select.js +1 -1
  155. package/dist/components/select/select.vue.d.ts +7 -7
  156. package/dist/components/select/types.d.ts +5 -1
  157. package/dist/components/separator/separator.js +1 -1
  158. package/dist/components/separator/separator.vue.d.ts +5 -5
  159. package/dist/components/separator/types.d.ts +2 -1
  160. package/dist/components/switch/switch.js +1 -1
  161. package/dist/components/switch/switch.vue.d.ts +25 -25
  162. package/dist/components/switch/types.d.ts +2 -1
  163. package/dist/components/tabs/index.d.ts +1 -1
  164. package/dist/components/tabs/tabs.js +1 -1
  165. package/dist/components/tabs/tabs.vue.d.ts +3 -3
  166. package/dist/components/tabs/types.d.ts +4 -3
  167. package/dist/components/tag/tag.js +1 -1
  168. package/dist/components/tag/tag.vue.d.ts +4 -4
  169. package/dist/components/tag/types.d.ts +2 -1
  170. package/dist/components/textarea/index.d.ts +1 -1
  171. package/dist/components/textarea/textarea.js +1 -1
  172. package/dist/components/textarea/textarea.vue.d.ts +4 -4
  173. package/dist/components/textarea/types.d.ts +4 -3
  174. package/dist/components/toast/context.js +1 -1
  175. package/dist/components/toast/toast-provider.js +1 -1
  176. package/dist/components/toast/toast.js +1 -1
  177. package/dist/components/toast/types.d.ts +1 -0
  178. package/dist/components/tooltip/tooltip.js +1 -1
  179. package/dist/components/tooltip/tooltip.vue.d.ts +7 -7
  180. package/dist/components/tooltip/types.d.ts +5 -1
  181. package/dist/components/tree/tree-virtualizer.vue.d.ts +5 -5
  182. package/dist/components/tree/tree.vue.d.ts +5 -5
  183. package/dist/components/tree-menu/context.js +1 -1
  184. package/dist/components/tree-menu/index.d.ts +1 -1
  185. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -1
  186. package/dist/components/tree-menu/tree-menu-option.js +1 -1
  187. package/dist/components/tree-menu/tree-menu-styled-item.js +1 -1
  188. package/dist/components/tree-menu/tree-menu-styled-item.vue.d.ts +2 -2
  189. package/dist/components/tree-menu/tree-menu.js +1 -1
  190. package/dist/components/tree-menu/tree-menu.vue.d.ts +3 -3
  191. package/dist/components/tree-menu/types.d.ts +6 -6
  192. package/dist/components/virtualizer/virtualizer.vue.d.ts +3 -3
  193. package/dist/constants/components.d.ts +13 -13
  194. package/dist/constants/components.js +1 -1
  195. package/dist/index.d.ts +50 -52
  196. package/dist/index.js +1 -1
  197. package/dist/styles.css +3 -3
  198. package/dist/theme/shared.js +1 -1
  199. package/dist/variants/alert.d.ts +24 -24
  200. package/dist/variants/alert.js +1 -1
  201. package/dist/variants/avatar.js +1 -1
  202. package/dist/variants/badge.d.ts +3 -3
  203. package/dist/variants/button.d.ts +3 -3
  204. package/dist/variants/checkbox.d.ts +3 -3
  205. package/dist/variants/checkbox.js +1 -1
  206. package/dist/variants/drawer.js +1 -1
  207. package/dist/variants/form.js +1 -1
  208. package/dist/variants/kbd.d.ts +3 -3
  209. package/dist/variants/layout.js +1 -1
  210. package/dist/variants/navigation-menu.js +1 -1
  211. package/dist/variants/pagination.d.ts +3 -3
  212. package/dist/variants/radio-group.d.ts +3 -3
  213. package/dist/variants/separator.d.ts +3 -3
  214. package/dist/variants/switch.d.ts +3 -3
  215. package/dist/variants/tabs.d.ts +3 -3
  216. package/dist/variants/tabs.js +1 -1
  217. package/dist/variants/tag.d.ts +3 -3
  218. package/dist/variants/textarea.d.ts +3 -3
  219. package/dist/variants/toast.d.ts +3 -3
  220. package/dist/variants/tree-menu.js +1 -1
  221. package/package.json +8 -6
  222. package/dist/components/form/form-field-array.js +0 -1
  223. package/dist/components/form/form-field-array.vue.d.ts +0 -71
  224. package/dist/components/form/form-field.js +0 -1
  225. package/dist/components/form/form-field.vue.d.ts +0 -27
@@ -1,12 +1,12 @@
1
1
  import { ListProps } from "./types.js";
2
- import * as vue115 from "vue";
2
+ import * as vue251 from "vue";
3
3
 
4
4
  //#region src/components/list/list.vue.d.ts
5
5
  declare var __VLS_8: {};
6
6
  type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_8) => any;
8
8
  };
9
- declare const __VLS_base: vue115.DefineComponent<ListProps, {}, {}, {}, {}, vue115.ComponentOptionsMixin, vue115.ComponentOptionsMixin, {}, string, vue115.PublicProps, Readonly<ListProps> & Readonly<{}>, {}, {}, {}, {}, string, vue115.ComponentProvideOptions, false, {}, any>;
9
+ declare const __VLS_base: vue251.DefineComponent<ListProps, {}, {}, {}, {}, vue251.ComponentOptionsMixin, vue251.ComponentOptionsMixin, {}, string, vue251.PublicProps, Readonly<ListProps> & Readonly<{}>, {}, {}, {}, {}, string, vue251.ComponentProvideOptions, false, {}, any>;
10
10
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
11
  declare const _default: typeof __VLS_export;
12
12
  type __VLS_WithSlots<T, S> = T & {
@@ -1,9 +1,10 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import "../../theme/index.js";
3
- import { ListContentProps, ListDescriptionProps, ListItemProps, ListRootProps, ListTitleProps, ListUi } from "@soybeanjs/headless";
3
+ import { ClassValue, ListContentProps, ListDescriptionProps, ListItemProps, ListRootProps, ListTitleProps, ListUi } from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/list/types.d.ts
6
6
  interface ListProps extends ListRootProps {
7
+ class?: ClassValue;
7
8
  size?: ThemeSize;
8
9
  ui?: Partial<ListUi>;
9
10
  }
@@ -1 +1 @@
1
- import{useContext as e}from"@soybeanjs/headless/composables";const[t,n]=e(`MenuExtraTheme`,e=>e);export{t as provideMenuExtraThemeContext,n as useMenuExtraThemeContext};
1
+ import{useUiContext as e}from"@soybeanjs/headless/composables";const[t,n]=e(`MenuExtraUi`);export{t as provideMenuExtraUi,n as useMenuExtraUi};
@@ -1,4 +1,4 @@
1
- import { MenuCheckboxOptionData, MenuCheckboxOptionsEmits, MenuCheckboxOptionsProps, MenuCheckboxSelectEmits, MenuExtendedUi, MenuExtraThemeContextParams, MenuExtraThemeSlot, MenuExtraUi, MenuOptionData, MenuOptionEmits, MenuOptionProps, MenuOptionSelectEmits, MenuOptionsEmits, MenuOptionsProps, MenuRadioOptionData, MenuRadioOptionsEmits, MenuRadioOptionsProps, MenuRadioSelectEmits, MenuShortcutProps } from "./types.js";
1
+ import { MenuCheckboxOptionData, MenuCheckboxOptionsEmits, MenuCheckboxOptionsProps, MenuCheckboxSelectEmits, MenuExtendedUi, MenuExtraUi, MenuExtraUiSlot, MenuOptionData, MenuOptionEmits, MenuOptionProps, MenuOptionSelectEmits, MenuOptionsEmits, MenuOptionsProps, MenuRadioOptionData, MenuRadioOptionsEmits, MenuRadioOptionsProps, MenuRadioSelectEmits, MenuShortcutProps } from "./types.js";
2
2
  import { _default } from "./menu-option.vue.js";
3
3
  import { _default as _default$1 } from "./menu-options.vue.js";
4
4
  import { _default as _default$2 } from "./menu-checkbox-options.vue.js";
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import t from"../kbd/kbd.js";import n from"./menu-item-slot.js";import{useCommonSlotKeys as r}from"./shared.js";import{useMenuExtraThemeContext as i}from"./context.js";import{Fragment as a,computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createSlots as u,createVNode as d,defineComponent as f,mergeProps as p,openBlock as m,renderList as h,renderSlot as g,unref as _,useSlots as v,withCtx as y}from"vue";import{useOmitProps as b}from"@soybeanjs/headless/composables";import{MenuCheckboxGroup as x,MenuCheckboxItem as S,MenuGroupLabel as C,MenuItemIndicator as w,MenuSeparator as T}from"@soybeanjs/headless";var E=f({name:`SMenuCheckboxOptions`,__name:`menu-checkbox-options`,props:{items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{},defaultValue:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`select`],setup(f,{emit:E}){let D=f,O=E,k=r(v()),A=b(D,[`items`,`checkboxItemProps`,`groupLabelProps`,`indicatorProps`]),j=i(),M=o(()=>({...j?.ui?.value}));return(r,i)=>(m(),s(_(x),p(_(A),{"onUpdate:modelValue":i[0]||=e=>O(`update:modelValue`,e)}),{default:y(()=>[(m(!0),l(a,null,h(f.items,i=>(m(),l(a,{key:i.value},[i.isGroupLabel?(m(),s(_(C),p({key:0,ref_for:!0},f.groupLabelProps),{default:y(()=>[d(n,{icon:i.icon,label:i.label},u({_:2},[h(_(k),e=>({name:e,fn:y(()=>[g(r.$slots,e,p({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040)):(m(),s(_(S),p({key:1,ref_for:!0},f.checkboxItemProps,{value:i.value,disabled:i.disabled,"text-value":i.textValue,onSelect:e=>O(`select`,i,e)}),{default:y(()=>[d(n,{icon:i.icon,label:i.label},u({indicator:y(()=>[d(_(w),p({ref_for:!0},f.indicatorProps),{default:y(()=>[g(r.$slots,`item-indicator-icon`,p({ref_for:!0},i),()=>[d(e,{icon:`lucide:check`})])]),_:2},1040)]),shortcut:y(()=>[i.shortcut?(m(),s(t,p({key:0,ref_for:!0},f.shortcutProps,{value:i.shortcut,class:M.value.shortcut}),null,16,[`value`,`class`])):c(`v-if`,!0)]),_:2},[h(_(k),e=>({name:e,fn:y(()=>[g(r.$slots,e,p({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040,[`value`,`disabled`,`text-value`,`onSelect`])),i.separator?(m(),s(_(T),p({key:2,ref_for:!0},f.separatorProps),null,16)):c(`v-if`,!0)],64))),128))]),_:3},16))}});export{E as default};
1
+ import e from"../icon/icon.js";import t from"../kbd/kbd.js";import n from"./menu-item-slot.js";import{useCommonSlotKeys as r}from"./shared.js";import{useMenuExtraUi as i}from"./context.js";import{Fragment as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createSlots as l,createVNode as u,defineComponent as d,mergeProps as f,openBlock as p,renderList as m,renderSlot as h,unref as g,useSlots as _,withCtx as v}from"vue";import{useOmitProps as y}from"@soybeanjs/headless/composables";import{MenuCheckboxGroup as b,MenuCheckboxItem as x,MenuGroupLabel as S,MenuItemIndicator as C,MenuSeparator as w}from"@soybeanjs/headless";var T=d({name:`SMenuCheckboxOptions`,__name:`menu-checkbox-options`,props:{items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{},defaultValue:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`select`],setup(d,{emit:T}){let E=d,D=T,O=r(_()),k=y(E,[`items`,`checkboxItemProps`,`groupLabelProps`,`indicatorProps`]),A=i(`shortcut`);return(r,i)=>(p(),o(g(b),f(g(k),{"onUpdate:modelValue":i[0]||=e=>D(`update:modelValue`,e)}),{default:v(()=>[(p(!0),c(a,null,m(d.items,i=>(p(),c(a,{key:i.value},[i.isGroupLabel?(p(),o(g(S),f({key:0,ref_for:!0},d.groupLabelProps),{default:v(()=>[u(n,{icon:i.icon,label:i.label},l({_:2},[m(g(O),e=>({name:e,fn:v(()=>[h(r.$slots,e,f({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040)):(p(),o(g(x),f({key:1,ref_for:!0},d.checkboxItemProps,{value:i.value,disabled:i.disabled,"text-value":i.textValue,onSelect:e=>D(`select`,i,e)}),{default:v(()=>[u(n,{icon:i.icon,label:i.label},l({indicator:v(()=>[u(g(C),f({ref_for:!0},d.indicatorProps),{default:v(()=>[h(r.$slots,`item-indicator-icon`,f({ref_for:!0},i),()=>[u(e,{icon:`lucide:check`})])]),_:2},1040)]),shortcut:v(()=>[i.shortcut?(p(),o(t,f({key:0,ref_for:!0},d.shortcutProps,{value:i.shortcut,class:g(A)}),null,16,[`value`,`class`])):s(`v-if`,!0)]),_:2},[m(g(O),e=>({name:e,fn:v(()=>[h(r.$slots,e,f({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040,[`value`,`disabled`,`text-value`,`onSelect`])),i.separator?(p(),o(g(w),f({key:2,ref_for:!0},d.separatorProps),null,16)):s(`v-if`,!0)],64))),128))]),_:3},16))}});export{T as default};
@@ -1,10 +1,10 @@
1
1
  import { MenuCheckboxOptionData, MenuCheckboxOptionsProps } from "./types.js";
2
- import * as vue139 from "vue";
2
+ import * as vue270 from "vue";
3
3
  import { DefinedValue } from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/menu/menu-checkbox-options.vue.d.ts
6
6
  declare const __VLS_export: <T extends DefinedValue = DefinedValue, S extends MenuCheckboxOptionData<T> = MenuCheckboxOptionData<T>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
7
- props: vue139.PublicProps & __VLS_PrettifyLocal<MenuCheckboxOptionsProps<T, S> & {
7
+ props: vue270.PublicProps & __VLS_PrettifyLocal<MenuCheckboxOptionsProps<T, S> & {
8
8
  onSelect?: ((item: S, event: Event) => any) | undefined;
9
9
  "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
10
10
  }> & (typeof globalThis extends {
@@ -19,7 +19,7 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue, S extends Me
19
19
  'item-indicator-icon': (props: S) => any;
20
20
  };
21
21
  emit: ((evt: "select", item: S, event: Event) => void) & ((evt: "update:modelValue", value: T[]) => void);
22
- }>) => vue139.VNode & {
22
+ }>) => vue270.VNode & {
23
23
  __ctx?: Awaited<typeof __VLS_setup>;
24
24
  };
25
25
  declare const _default: typeof __VLS_export;
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import t from"../link/link.js";import n from"../kbd/kbd.js";import r from"./menu-item-slot.js";import{useCommonSlotKeys as i}from"./shared.js";import{useMenuExtraThemeContext as a}from"./context.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createSlots as d,createVNode as f,defineComponent as p,guardReactiveProps as m,mergeProps as h,normalizeClass as g,normalizeProps as _,openBlock as v,renderList as y,renderSlot as b,resolveComponent as x,toHandlers as S,unref as C,useSlots as w,withCtx as T}from"vue";import{useForwardListeners as E,useOmitProps as D}from"@soybeanjs/headless/composables";import{MenuGroup as O,MenuGroupLabel as k,MenuItem as A,MenuPortal as j,MenuSeparator as M,MenuSub as N,MenuSubContent as P,MenuSubTrigger as F}from"@soybeanjs/headless";var I=p({name:`SMenuOption`,inheritAttrs:!1,__name:`menu-option`,props:{item:{},itemProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},portalProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(p,{emit:I}){let L=p,R=I,z=w(),B=D(L,[`item`]),V=E(R),H=i(z),U=a(),W=s(()=>({...U?.ui?.value}));return(i,a)=>{let s=x(`SMenuOption`);return v(),u(o,null,[p.item.isGroupLabel?(v(),c(C(k),_(h({key:0},p.groupLabelProps)),{default:T(()=>[f(r,{icon:p.item.icon,label:p.item.label},d({_:2},[y(C(H),e=>({name:e,fn:T(()=>[b(i.$slots,e,{item:p.item})])}))]),1032,[`icon`,`label`])]),_:3},16)):p.item.linkProps?(v(),c(C(A),h({key:1},p.itemProps,{"as-child":``,disabled:p.item.disabled,"text-value":p.item.textValue,onSelect:a[0]||=e=>R(`select`,p.item,e)}),{default:T(()=>[f(t,h(p.item.linkProps,{disabled:p.item.disabled}),{default:T(({isHref:t})=>[f(r,{icon:p.item.icon,label:p.item.label},d({_:2},[y(C(H),e=>({name:e,fn:T(()=>[b(i.$slots,e,{item:p.item})])})),t?{name:`link-icon`,fn:T(()=>[b(i.$slots,`item-link-icon`,{item:p.item},()=>[f(e,{icon:`lucide:arrow-up-right`,class:g(W.value.itemLinkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`,`label`])]),_:3},16,[`disabled`])]),_:3},16,[`disabled`,`text-value`])):p.item.children?(v(),c(C(N),h({key:3},p.subProps,{"onUpdate:open":a[2]||=e=>R(`update:open`,e)}),{default:T(()=>[f(C(F),h(p.subTriggerProps,{disabled:p.item.disabled,"text-value":p.item.textValue}),{default:T(()=>[f(r,{icon:p.item.icon,label:p.item.label},d({"trigger-icon":T(()=>[b(i.$slots,`item-trigger-icon`,{item:p.item},()=>[f(e,{icon:`lucide:chevron-right`,class:g(W.value.subTriggerIcon)},null,8,[`class`])])]),_:2},[y(C(H),e=>({name:e,fn:T(()=>[b(i.$slots,e,{item:p.item,isTrigger:!0})])}))]),1032,[`icon`,`label`])]),_:3},16,[`disabled`,`text-value`]),p.item.separator?(v(),c(C(M),_(h({key:0},p.separatorProps)),null,16)):l(`v-if`,!0),f(C(j),_(m(p.portalProps)),{default:T(()=>[f(C(P),h(p.subContentProps,S(C(V))),{default:T(()=>[f(C(O),_(m(p.groupProps)),{default:T(()=>[(v(!0),u(o,null,y(p.item.children,e=>(v(),c(s,h({key:e.value},{ref_for:!0},C(B),{item:e},S(C(V))),null,16,[`item`]))),128))]),_:1},16)]),_:1},16)]),_:1},16)]),_:3},16)):(v(),c(C(A),h({key:2},p.itemProps,{disabled:p.item.disabled,"text-value":p.item.textValue,onSelect:a[1]||=e=>R(`select`,p.item,e)}),{default:T(()=>[f(r,{icon:p.item.icon,label:p.item.label},d({shortcut:T(()=>[p.item.shortcut?(v(),c(n,h({key:0},p.shortcutProps,{value:p.item.shortcut,class:W.value.shortcut}),null,16,[`value`,`class`])):l(`v-if`,!0)]),_:2},[y(C(H),e=>({name:e,fn:T(()=>[b(i.$slots,e,{item:p.item})])}))]),1032,[`icon`,`label`])]),_:3},16,[`disabled`,`text-value`])),p.item.separator&&!p.item.children?(v(),c(C(M),_(h({key:4},p.separatorProps)),null,16)):l(`v-if`,!0)],64)}}});export{I as default};
1
+ import e from"../icon/icon.js";import t from"../link/link.js";import n from"../kbd/kbd.js";import r from"./menu-item-slot.js";import{useCommonSlotKeys as i}from"./shared.js";import{useMenuExtraUi as a}from"./context.js";import{Fragment as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createSlots as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps as m,normalizeClass as h,normalizeProps as g,openBlock as _,renderList as v,renderSlot as y,resolveComponent as b,toHandlers as x,unref as S,useSlots as C,withCtx as w}from"vue";import{useForwardListeners as T,useOmitProps as E}from"@soybeanjs/headless/composables";import{MenuGroup as D,MenuGroupLabel as O,MenuItem as k,MenuPortal as A,MenuSeparator as j,MenuSub as M,MenuSubContent as N,MenuSubTrigger as P}from"@soybeanjs/headless";var F=f({name:`SMenuOption`,inheritAttrs:!1,__name:`menu-option`,props:{item:{},itemProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},portalProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(f,{emit:F}){let I=f,L=F,R=C(),z=E(I,[`item`]),B=T(L),V=i(R),H=a();return(i,a)=>{let C=b(`SMenuOption`);return _(),l(o,null,[f.item.isGroupLabel?(_(),s(S(O),g(m({key:0},f.groupLabelProps)),{default:w(()=>[d(r,{icon:f.item.icon,label:f.item.label},u({_:2},[v(S(V),e=>({name:e,fn:w(()=>[y(i.$slots,e,{item:f.item})])}))]),1032,[`icon`,`label`])]),_:3},16)):f.item.linkProps?(_(),s(S(k),m({key:1},f.itemProps,{"as-child":``,disabled:f.item.disabled,"text-value":f.item.textValue,onSelect:a[0]||=e=>L(`select`,f.item,e)}),{default:w(()=>[d(t,m(f.item.linkProps,{disabled:f.item.disabled}),{default:w(({isHref:t})=>[d(r,{icon:f.item.icon,label:f.item.label},u({_:2},[v(S(V),e=>({name:e,fn:w(()=>[y(i.$slots,e,{item:f.item})])})),t?{name:`link-icon`,fn:w(()=>[y(i.$slots,`item-link-icon`,{item:f.item},()=>[d(e,{icon:`lucide:arrow-up-right`,class:h(S(H).itemLinkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`,`label`])]),_:3},16,[`disabled`])]),_:3},16,[`disabled`,`text-value`])):f.item.children?(_(),s(S(M),m({key:3},f.subProps,{"onUpdate:open":a[2]||=e=>L(`update:open`,e)}),{default:w(()=>[d(S(P),m(f.subTriggerProps,{disabled:f.item.disabled,"text-value":f.item.textValue}),{default:w(()=>[d(r,{icon:f.item.icon,label:f.item.label},u({"trigger-icon":w(()=>[y(i.$slots,`item-trigger-icon`,{item:f.item},()=>[d(e,{icon:`lucide:chevron-right`,class:h(S(H).subTriggerIcon)},null,8,[`class`])])]),_:2},[v(S(V),e=>({name:e,fn:w(()=>[y(i.$slots,e,{item:f.item,isTrigger:!0})])}))]),1032,[`icon`,`label`])]),_:3},16,[`disabled`,`text-value`]),f.item.separator?(_(),s(S(j),g(m({key:0},f.separatorProps)),null,16)):c(`v-if`,!0),d(S(A),g(p(f.portalProps)),{default:w(()=>[d(S(N),m(f.subContentProps,x(S(B))),{default:w(()=>[d(S(D),g(p(f.groupProps)),{default:w(()=>[(_(!0),l(o,null,v(f.item.children,e=>(_(),s(C,m({key:e.value},{ref_for:!0},S(z),{item:e},x(S(B))),null,16,[`item`]))),128))]),_:1},16)]),_:1},16)]),_:1},16)]),_:3},16)):(_(),s(S(k),m({key:2},f.itemProps,{disabled:f.item.disabled,"text-value":f.item.textValue,onSelect:a[1]||=e=>L(`select`,f.item,e)}),{default:w(()=>[d(r,{icon:f.item.icon,label:f.item.label},u({shortcut:w(()=>[f.item.shortcut?(_(),s(n,m({key:0},f.shortcutProps,{value:f.item.shortcut,class:S(H).shortcut}),null,16,[`value`,`class`])):c(`v-if`,!0)]),_:2},[v(S(V),e=>({name:e,fn:w(()=>[y(i.$slots,e,{item:f.item})])}))]),1032,[`icon`,`label`])]),_:3},16,[`disabled`,`text-value`])),f.item.separator&&!f.item.children?(_(),s(S(j),g(m({key:4},f.separatorProps)),null,16)):c(`v-if`,!0)],64)}}});export{F as default};
@@ -1,20 +1,20 @@
1
1
  import { MenuOptionData, MenuOptionProps } from "./types.js";
2
- import * as vue135 from "vue";
3
- import * as _soybeanjs_headless63 from "@soybeanjs/headless";
2
+ import * as vue266 from "vue";
3
+ import * as _soybeanjs_headless149 from "@soybeanjs/headless";
4
4
  import { DefinedValue } from "@soybeanjs/headless";
5
5
 
6
6
  //#region src/components/menu/menu-option.vue.d.ts
7
7
  declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
- props: vue135.PublicProps & __VLS_PrettifyLocal<MenuOptionProps<T> & {
8
+ props: vue266.PublicProps & __VLS_PrettifyLocal<MenuOptionProps<T> & {
9
9
  onSelect?: ((item: MenuOptionData<T>, event: Event) => any) | undefined;
10
10
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
- onEntryFocus?: ((event: Event) => any) | undefined;
12
11
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
13
- onPointerDownOutside?: ((event: _soybeanjs_headless63.PointerDownOutsideEvent) => any) | undefined;
14
- onFocusOutside?: ((event: _soybeanjs_headless63.FocusOutsideEvent) => any) | undefined;
15
- onInteractOutside?: ((event: _soybeanjs_headless63.PointerDownOutsideEvent | _soybeanjs_headless63.FocusOutsideEvent) => any) | undefined;
12
+ onPointerDownOutside?: ((event: _soybeanjs_headless149.PointerDownOutsideEvent) => any) | undefined;
13
+ onFocusOutside?: ((event: _soybeanjs_headless149.FocusOutsideEvent) => any) | undefined;
14
+ onInteractOutside?: ((event: _soybeanjs_headless149.PointerDownOutsideEvent | _soybeanjs_headless149.FocusOutsideEvent) => any) | undefined;
16
15
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
17
16
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
+ onEntryFocus?: ((event: Event) => any) | undefined;
18
18
  }> & (typeof globalThis extends {
19
19
  __VLS_PROPS_FALLBACK: infer P;
20
20
  } ? P : {});
@@ -38,8 +38,8 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props:
38
38
  item: MenuOptionData<T>;
39
39
  }) => any;
40
40
  };
41
- emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _soybeanjs_headless63.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless63.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless63.PointerDownOutsideEvent | _soybeanjs_headless63.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
42
- }>) => vue135.VNode & {
41
+ emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _soybeanjs_headless149.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless149.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless149.PointerDownOutsideEvent | _soybeanjs_headless149.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "entryFocus", event: Event) => void);
42
+ }>) => vue266.VNode & {
43
43
  __ctx?: Awaited<typeof __VLS_setup>;
44
44
  };
45
45
  declare const _default: typeof __VLS_export;
@@ -1,20 +1,20 @@
1
1
  import { MenuOptionData, MenuOptionsProps } from "./types.js";
2
- import * as vue146 from "vue";
3
- import * as _soybeanjs_headless71 from "@soybeanjs/headless";
2
+ import * as vue268 from "vue";
3
+ import * as _soybeanjs_headless157 from "@soybeanjs/headless";
4
4
  import { DefinedValue } from "@soybeanjs/headless";
5
5
 
6
6
  //#region src/components/menu/menu-options.vue.d.ts
7
7
  declare const __VLS_export: <T extends DefinedValue = DefinedValue, S extends MenuOptionData<T> = MenuOptionData<T>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
- props: vue146.PublicProps & __VLS_PrettifyLocal<MenuOptionsProps<T, S> & {
8
+ props: vue268.PublicProps & __VLS_PrettifyLocal<MenuOptionsProps<T, S> & {
9
9
  onSelect?: ((item: S, event: Event) => any) | undefined;
10
10
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
- onEntryFocus?: ((event: Event) => any) | undefined;
12
11
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
13
- onPointerDownOutside?: ((event: _soybeanjs_headless71.PointerDownOutsideEvent) => any) | undefined;
14
- onFocusOutside?: ((event: _soybeanjs_headless71.FocusOutsideEvent) => any) | undefined;
15
- onInteractOutside?: ((event: _soybeanjs_headless71.PointerDownOutsideEvent | _soybeanjs_headless71.FocusOutsideEvent) => any) | undefined;
12
+ onPointerDownOutside?: ((event: _soybeanjs_headless157.PointerDownOutsideEvent) => any) | undefined;
13
+ onFocusOutside?: ((event: _soybeanjs_headless157.FocusOutsideEvent) => any) | undefined;
14
+ onInteractOutside?: ((event: _soybeanjs_headless157.PointerDownOutsideEvent | _soybeanjs_headless157.FocusOutsideEvent) => any) | undefined;
16
15
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
17
16
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
+ onEntryFocus?: ((event: Event) => any) | undefined;
18
18
  }> & (typeof globalThis extends {
19
19
  __VLS_PROPS_FALLBACK: infer P;
20
20
  } ? P : {});
@@ -38,8 +38,8 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue, S extends Me
38
38
  item: MenuOptionData<T>;
39
39
  }) => any;
40
40
  };
41
- emit: ((evt: "select", item: S, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _soybeanjs_headless71.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless71.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless71.PointerDownOutsideEvent | _soybeanjs_headless71.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
42
- }>) => vue146.VNode & {
41
+ emit: ((evt: "select", item: S, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _soybeanjs_headless157.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless157.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless157.PointerDownOutsideEvent | _soybeanjs_headless157.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "entryFocus", event: Event) => void);
42
+ }>) => vue268.VNode & {
43
43
  __ctx?: Awaited<typeof __VLS_setup>;
44
44
  };
45
45
  declare const _default: typeof __VLS_export;
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import t from"../kbd/kbd.js";import n from"./menu-item-slot.js";import{useCommonSlotKeys as r}from"./shared.js";import{useMenuExtraThemeContext as i}from"./context.js";import{Fragment as a,computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createSlots as u,createVNode as d,defineComponent as f,mergeProps as p,normalizeClass as m,openBlock as h,renderList as g,renderSlot as _,unref as v,useSlots as y,withCtx as b}from"vue";import{useOmitProps as x}from"@soybeanjs/headless/composables";import{MenuGroupLabel as S,MenuItemIndicator as C,MenuRadioGroup as w,MenuRadioItem as T,MenuSeparator as E}from"@soybeanjs/headless";var D=f({name:`SMenuRadio`,__name:`menu-radio-options`,props:{items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{},defaultValue:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`select`],setup(f,{emit:D}){let O=f,k=D,A=r(y()),j=x(O,[`items`,`radioItemProps`,`groupLabelProps`,`indicatorProps`]),M=i(),N=o(()=>({...M?.ui?.value}));return(r,i)=>(h(),s(v(w),p(v(j),{"onUpdate:modelValue":i[0]||=e=>k(`update:modelValue`,e)}),{default:b(()=>[(h(!0),l(a,null,g(f.items,i=>(h(),l(a,{key:i.value},[i.isGroupLabel?(h(),s(v(S),p({key:0,ref_for:!0},f.groupLabelProps),{default:b(()=>[d(n,{icon:i.icon,label:i.label},u({_:2},[g(v(A),e=>({name:e,fn:b(()=>[_(r.$slots,e,p({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040)):(h(),s(v(T),p({key:1,ref_for:!0},f.radioItemProps,{value:i.value,disabled:i.disabled,"text-value":i.textValue,onSelect:e=>k(`select`,i,e)}),{default:b(()=>[d(n,{icon:i.icon,label:i.label},u({indicator:b(()=>[d(v(C),p({ref_for:!0},f.indicatorProps),{default:b(()=>[_(r.$slots,`item-indicator-icon`,p({ref_for:!0},i),()=>[d(e,{icon:`icon-park-outline:dot`,class:m(N.value.radioIndicatorIcon)},null,8,[`class`])])]),_:2},1040)]),shortcut:b(()=>[i.shortcut?(h(),s(t,p({key:0,ref_for:!0},f.shortcutProps,{value:i.shortcut,class:N.value.shortcut}),null,16,[`value`,`class`])):c(`v-if`,!0)]),_:2},[g(v(A),e=>({name:e,fn:b(()=>[_(r.$slots,e,p({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040,[`value`,`disabled`,`text-value`,`onSelect`])),i.separator?(h(),s(v(E),p({key:2,ref_for:!0},f.separatorProps),null,16)):c(`v-if`,!0)],64))),128))]),_:3},16))}});export{D as default};
1
+ import e from"../icon/icon.js";import t from"../kbd/kbd.js";import n from"./menu-item-slot.js";import{useCommonSlotKeys as r}from"./shared.js";import{useMenuExtraUi as i}from"./context.js";import{Fragment as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createSlots as l,createVNode as u,defineComponent as d,mergeProps as f,normalizeClass as p,openBlock as m,renderList as h,renderSlot as g,unref as _,useSlots as v,withCtx as y}from"vue";import{useOmitProps as b}from"@soybeanjs/headless/composables";import{MenuGroupLabel as x,MenuItemIndicator as S,MenuRadioGroup as C,MenuRadioItem as w,MenuSeparator as T}from"@soybeanjs/headless";var E=d({name:`SMenuRadio`,__name:`menu-radio-options`,props:{items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{},defaultValue:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`select`],setup(d,{emit:E}){let D=d,O=E,k=r(v()),A=b(D,[`items`,`radioItemProps`,`groupLabelProps`,`indicatorProps`]),j=i();return(r,i)=>(m(),o(_(C),f(_(A),{"onUpdate:modelValue":i[0]||=e=>O(`update:modelValue`,e)}),{default:y(()=>[(m(!0),c(a,null,h(d.items,i=>(m(),c(a,{key:i.value},[i.isGroupLabel?(m(),o(_(x),f({key:0,ref_for:!0},d.groupLabelProps),{default:y(()=>[u(n,{icon:i.icon,label:i.label},l({_:2},[h(_(k),e=>({name:e,fn:y(()=>[g(r.$slots,e,f({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040)):(m(),o(_(w),f({key:1,ref_for:!0},d.radioItemProps,{value:i.value,disabled:i.disabled,"text-value":i.textValue,onSelect:e=>O(`select`,i,e)}),{default:y(()=>[u(n,{icon:i.icon,label:i.label},l({indicator:y(()=>[u(_(S),f({ref_for:!0},d.indicatorProps),{default:y(()=>[g(r.$slots,`item-indicator-icon`,f({ref_for:!0},i),()=>[u(e,{icon:`icon-park-outline:dot`,class:p(_(j).radioIndicatorIcon)},null,8,[`class`])])]),_:2},1040)]),shortcut:y(()=>[i.shortcut?(m(),o(t,f({key:0,ref_for:!0},d.shortcutProps,{value:i.shortcut,class:_(j).shortcut}),null,16,[`value`,`class`])):s(`v-if`,!0)]),_:2},[h(_(k),e=>({name:e,fn:y(()=>[g(r.$slots,e,f({ref_for:!0},i))])}))]),1032,[`icon`,`label`])]),_:2},1040,[`value`,`disabled`,`text-value`,`onSelect`])),i.separator?(m(),o(_(T),f({key:2,ref_for:!0},d.separatorProps),null,16)):s(`v-if`,!0)],64))),128))]),_:3},16))}});export{E as default};
@@ -1,10 +1,10 @@
1
1
  import { MenuRadioOptionData, MenuRadioOptionsProps } from "./types.js";
2
- import * as vue137 from "vue";
2
+ import * as vue272 from "vue";
3
3
  import { AcceptableBooleanValue } from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/menu/menu-radio-options.vue.d.ts
6
6
  declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBooleanValue, S extends MenuRadioOptionData<T> = MenuRadioOptionData<T>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
7
- props: vue137.PublicProps & __VLS_PrettifyLocal<MenuRadioOptionsProps<T, S> & {
7
+ props: vue272.PublicProps & __VLS_PrettifyLocal<MenuRadioOptionsProps<T, S> & {
8
8
  onSelect?: ((item: S, event: Event) => any) | undefined;
9
9
  "onUpdate:modelValue"?: ((payload: NonNullable<T>) => any) | undefined;
10
10
  }> & (typeof globalThis extends {
@@ -19,7 +19,7 @@ declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBoolea
19
19
  'item-indicator-icon': (props: S) => any;
20
20
  };
21
21
  emit: ((evt: "select", item: S, event: Event) => void) & ((evt: "update:modelValue", payload: NonNullable<T>) => void);
22
- }>) => vue137.VNode & {
22
+ }>) => vue272.VNode & {
23
23
  __ctx?: Awaited<typeof __VLS_setup>;
24
24
  };
25
25
  declare const _default: typeof __VLS_export;
@@ -1,8 +1,7 @@
1
1
  import { IconValue } from "../icon/types.js";
2
- import { LinkProps } from "../link/types.js";
2
+ import { LinkProps as LinkProps$1 } from "../link/types.js";
3
3
  import { KbdProps as KbdProps$1 } from "../kbd/types.js";
4
- import { ComputedRef } from "vue";
5
- import { AcceptableBooleanValue, ClassValue, DefinedValue, KbdValue, MenuCheckboxGroupEmits, MenuCheckboxGroupProps, MenuCheckboxItemProps, MenuGroupLabelProps, MenuGroupProps, MenuItemIndicatorProps, MenuItemProps, MenuPortalProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemProps, MenuSeparatorProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, MenuUi } from "@soybeanjs/headless";
4
+ import { AcceptableBooleanValue, DefinedValue, KbdValue, MenuCheckboxGroupEmits, MenuCheckboxGroupProps, MenuCheckboxItemProps, MenuGroupLabelProps, MenuGroupProps, MenuItemIndicatorProps, MenuItemProps, MenuPortalProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemProps, MenuSeparatorProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, MenuUi, UiClass } from "@soybeanjs/headless";
6
5
 
7
6
  //#region src/components/menu/types.d.ts
8
7
  interface MenuOptionData<T = DefinedValue> extends Pick<MenuItemProps, 'disabled' | 'textValue'> {
@@ -31,13 +30,13 @@ interface MenuOptionData<T = DefinedValue> extends Pick<MenuItemProps, 'disabled
31
30
  *
32
31
  * if provided, the option will be a link.
33
32
  */
34
- linkProps?: LinkProps;
33
+ linkProps?: LinkProps$1;
35
34
  /** The children of the option. */
36
35
  children?: MenuOptionData<T>[];
37
36
  }
38
37
  interface MenuShortcutProps extends Omit<KbdProps$1, 'value'> {}
39
- type MenuExtraThemeSlot = 'subTriggerIcon' | 'itemLinkIcon' | 'shortcut' | 'radioIndicatorIcon';
40
- type MenuExtraUi = Record<MenuExtraThemeSlot, ClassValue>;
38
+ type MenuExtraUiSlot = 'subTriggerIcon' | 'itemLinkIcon' | 'shortcut' | 'radioIndicatorIcon';
39
+ type MenuExtraUi = UiClass<MenuExtraUiSlot>;
41
40
  type MenuExtendedUi = MenuUi & MenuExtraUi;
42
41
  interface MenuOptionProps<T extends DefinedValue = DefinedValue> {
43
42
  item: MenuOptionData<T>;
@@ -85,8 +84,5 @@ type MenuRadioSelectEmits<T extends MenuRadioOptionData = MenuRadioOptionData> =
85
84
  select: [item: T, event: Event];
86
85
  };
87
86
  type MenuRadioOptionsEmits<T extends AcceptableBooleanValue = AcceptableBooleanValue, S extends MenuRadioOptionData<T> = MenuRadioOptionData<T>> = MenuRadioGroupEmits<T> & MenuRadioSelectEmits<S>;
88
- interface MenuExtraThemeContextParams {
89
- ui: ComputedRef<MenuExtraUi>;
90
- }
91
87
  //#endregion
92
- export { MenuCheckboxOptionData, MenuCheckboxOptionsEmits, MenuCheckboxOptionsProps, MenuCheckboxSelectEmits, MenuExtendedUi, MenuExtraThemeContextParams, MenuExtraThemeSlot, MenuExtraUi, MenuOptionData, MenuOptionEmits, MenuOptionProps, MenuOptionSelectEmits, MenuOptionsEmits, MenuOptionsProps, MenuRadioOptionData, MenuRadioOptionsEmits, MenuRadioOptionsProps, MenuRadioSelectEmits, MenuShortcutProps };
88
+ export { MenuCheckboxOptionData, MenuCheckboxOptionsEmits, MenuCheckboxOptionsProps, MenuCheckboxSelectEmits, MenuExtendedUi, MenuExtraUi, MenuExtraUiSlot, MenuOptionData, MenuOptionEmits, MenuOptionProps, MenuOptionSelectEmits, MenuOptionsEmits, MenuOptionsProps, MenuRadioOptionData, MenuRadioOptionsEmits, MenuRadioOptionsProps, MenuRadioSelectEmits, MenuShortcutProps };
@@ -1 +1 @@
1
- import{useContext as e}from"@soybeanjs/headless/composables";const[t,n]=e(`NavigationMenuExtraTheme`,e=>e);export{t as provideNavigationMenuExtraThemeContext,n as useNavigationMenuExtraThemeContext};
1
+ import{useUiContext as e}from"@soybeanjs/headless/composables";const[t,n]=e(`NavigationMenuExtraUi`);export{t as provideNavigationMenuExtraUi,n as useNavigationMenuExtraUi};
@@ -1,4 +1,4 @@
1
- import { NavigationMenuEmits, NavigationMenuExtendedUi, NavigationMenuExtraThemeContextParams, NavigationMenuExtraThemeSlot, NavigationMenuExtraUi, NavigationMenuOptionData, NavigationMenuOptionEmits, NavigationMenuOptionProps, NavigationMenuProps, NavigationMenuSubOptionEmits, NavigationMenuSubOptionProps } from "./types.js";
1
+ import { NavigationMenuEmits, NavigationMenuExtendedUi, NavigationMenuExtraUi, NavigationMenuExtraUiSlot, NavigationMenuOptionData, NavigationMenuOptionEmits, NavigationMenuOptionProps, NavigationMenuProps, NavigationMenuSubOptionEmits, NavigationMenuSubOptionProps } from "./types.js";
2
2
  import { _default } from "./navigation-menu.vue.js";
3
3
  import { NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuSubListProps, NavigationMenuSubProps, NavigationMenuTriggerProps, NavigationMenuViewportProps } from "@soybeanjs/headless/navigation-menu";
4
4
  export { type NavigationMenuContentEmits, type NavigationMenuContentProps, type NavigationMenuIndicatorProps, type NavigationMenuItemProps, type NavigationMenuLinkEmits, type NavigationMenuLinkProps, type NavigationMenuListProps, type NavigationMenuRootEmits, type NavigationMenuRootProps, type NavigationMenuSubEmits, type NavigationMenuSubListProps, type NavigationMenuSubProps, type NavigationMenuTriggerProps, type NavigationMenuViewportProps };
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import t from"./navigation-menu-item-slot.js";import{useNavigationMenuExtraThemeContext as n}from"./context.js";import{useCommonSlotKeys as r}from"./shared.js";import i from"./navigation-menu-sub-option.js";import{Fragment as a,computed as o,createBlock as s,createElementBlock as c,createElementVNode as l,createSlots as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps as m,normalizeClass as h,normalizeProps as g,openBlock as _,renderList as v,renderSlot as y,resolveDynamicComponent as b,toDisplayString as x,toHandlers as S,unref as C,useSlots as w,withCtx as T}from"vue";import{useForwardListeners as E}from"@soybeanjs/headless/composables";import{NavigationMenuContent as D,NavigationMenuItem as O,NavigationMenuLink as k,NavigationMenuSubList as A,NavigationMenuTrigger as j}from"@soybeanjs/headless";var M=f({name:`SNavigationMenuOption`,__name:`navigation-menu-option`,props:{item:{},itemProps:{},triggerProps:{},contentProps:{},viewportProps:{},indicatorProps:{},listProps:{},subListProps:{},subItemProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`select`],setup(f,{emit:M}){let N=M,P=w(),F=E(N),I=o(()=>Object.keys(P)),L=r(P),{ui:R}=n(`NavigationMenuOption`);return(n,r)=>(_(),s(C(O),m(f.itemProps,{value:f.item.value}),{default:T(()=>[f.item.children?.length?(_(),c(a,{key:1},[d(C(j),m(f.triggerProps,{disabled:f.item.disabled,"as-child":!!f.item.linkProps}),{default:T(()=>[(_(),s(b(f.item.linkProps?C(k):`template`),m(f.item.linkProps,{onSelect:r[1]||=e=>N(`select`,e)}),{default:T(()=>[d(t,{icon:f.item.icon},u({"trigger-icon":T(()=>[y(n.$slots,`item-trigger-icon`,{item:f.item},()=>[d(e,{icon:`lucide:chevron-down`,class:h(C(R).triggerIcon)},null,8,[`class`])])]),default:T(()=>[l(`span`,null,x(f.item.label),1)]),_:2},[v(C(L),e=>({name:e,fn:T(()=>[y(n.$slots,e,{item:f.item,isTrigger:!0})])}))]),1032,[`icon`])]),_:3},16))]),_:3},16,[`disabled`,`as-child`]),d(C(D),m(f.contentProps,S(C(F))),{default:T(()=>[d(C(A),g(p(f.subListProps)),{default:T(()=>[(_(!0),c(a,null,v(f.item.children,e=>(_(),s(i,{key:e.value,"sub-item":e,"sub-item-props":f.subItemProps,onSelect:r[2]||=e=>N(`select`,e)},u({"item-children":T(e=>[y(n.$slots,`item-children`,{item:e.item})]),_:2},[v(I.value,t=>({name:t,fn:T(()=>[y(n.$slots,t,{item:e})])}))]),1032,[`sub-item`,`sub-item-props`]))),128))]),_:3},16)]),_:3},16)],64)):(_(),s(C(k),m({key:0},f.item.linkProps,{disabled:f.item.disabled,onSelect:r[0]||=e=>N(`select`,e)}),{default:T(({isHref:r})=>[d(t,{icon:f.item.icon},u({default:T(()=>[l(`span`,null,x(f.item.label),1)]),_:2},[v(C(L),e=>({name:e,fn:T(()=>[y(n.$slots,e,{item:f.item})])})),r?{name:`link-icon`,fn:T(()=>[y(n.$slots,`item-link-icon`,{item:f.item},()=>[d(e,{icon:`lucide:arrow-up-right`,class:h(C(R).linkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`])]),_:3},16,[`disabled`]))]),_:3},16,[`value`]))}});export{M as default};
1
+ import e from"../icon/icon.js";import t from"./navigation-menu-item-slot.js";import{useNavigationMenuExtraUi as n}from"./context.js";import{useCommonSlotKeys as r}from"./shared.js";import i from"./navigation-menu-sub-option.js";import{Fragment as a,computed as o,createBlock as s,createElementBlock as c,createElementVNode as l,createSlots as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps as m,normalizeClass as h,normalizeProps as g,openBlock as _,renderList as v,renderSlot as y,resolveDynamicComponent as b,toDisplayString as x,toHandlers as S,unref as C,useSlots as w,withCtx as T}from"vue";import{useForwardListeners as E}from"@soybeanjs/headless/composables";import{NavigationMenuContent as D,NavigationMenuItem as O,NavigationMenuLink as k,NavigationMenuSubList as A,NavigationMenuTrigger as j}from"@soybeanjs/headless";var M=f({name:`SNavigationMenuOption`,__name:`navigation-menu-option`,props:{item:{},itemProps:{},triggerProps:{},contentProps:{},viewportProps:{},indicatorProps:{},listProps:{},subListProps:{},subItemProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`select`],setup(f,{emit:M}){let N=M,P=w(),F=E(N),I=o(()=>Object.keys(P)),L=r(P),R=n();return(n,r)=>(_(),s(C(O),m(f.itemProps,{value:f.item.value}),{default:T(()=>[f.item.children?.length?(_(),c(a,{key:1},[d(C(j),m(f.triggerProps,{disabled:f.item.disabled,"as-child":!!f.item.linkProps}),{default:T(()=>[(_(),s(b(f.item.linkProps?C(k):`template`),m(f.item.linkProps,{onSelect:r[1]||=e=>N(`select`,e)}),{default:T(()=>[d(t,{icon:f.item.icon},u({"trigger-icon":T(()=>[y(n.$slots,`item-trigger-icon`,{item:f.item},()=>[d(e,{icon:`lucide:chevron-down`,class:h(C(R).triggerIcon)},null,8,[`class`])])]),default:T(()=>[l(`span`,null,x(f.item.label),1)]),_:2},[v(C(L),e=>({name:e,fn:T(()=>[y(n.$slots,e,{item:f.item,isTrigger:!0})])}))]),1032,[`icon`])]),_:3},16))]),_:3},16,[`disabled`,`as-child`]),d(C(D),m(f.contentProps,S(C(F))),{default:T(()=>[d(C(A),g(p(f.subListProps)),{default:T(()=>[(_(!0),c(a,null,v(f.item.children,e=>(_(),s(i,{key:e.value,"sub-item":e,"sub-item-props":f.subItemProps,onSelect:r[2]||=e=>N(`select`,e)},u({"item-children":T(e=>[y(n.$slots,`item-children`,{item:e.item})]),_:2},[v(I.value,t=>({name:t,fn:T(()=>[y(n.$slots,t,{item:e})])}))]),1032,[`sub-item`,`sub-item-props`]))),128))]),_:3},16)]),_:3},16)],64)):(_(),s(C(k),m({key:0},f.item.linkProps,{disabled:f.item.disabled,onSelect:r[0]||=e=>N(`select`,e)}),{default:T(({isHref:r})=>[d(t,{icon:f.item.icon},u({default:T(()=>[l(`span`,null,x(f.item.label),1)]),_:2},[v(C(L),e=>({name:e,fn:T(()=>[y(n.$slots,e,{item:f.item})])})),r?{name:`link-icon`,fn:T(()=>[y(n.$slots,`item-link-icon`,{item:f.item},()=>[d(e,{icon:`lucide:arrow-up-right`,class:h(C(R).linkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`])]),_:3},16,[`disabled`]))]),_:3},16,[`value`]))}});export{M as default};
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import t from"./navigation-menu-item-slot.js";import{useNavigationMenuExtraThemeContext as n}from"./context.js";import{useCommonSlotKeys as r}from"./shared.js";import{createBlock as i,createCommentVNode as a,createElementVNode as o,createSlots as s,createVNode as c,defineComponent as l,mergeProps as u,normalizeClass as d,openBlock as f,renderList as p,renderSlot as m,resolveDynamicComponent as h,toDisplayString as g,unref as _,useSlots as v,withCtx as y}from"vue";import{NavigationMenuItem as b,NavigationMenuLink as x}from"@soybeanjs/headless";var S=l({name:`SNavigationMenuSubOption`,__name:`navigation-menu-sub-option`,props:{subItem:{},subItemProps:{}},emits:[`select`],setup(l,{emit:S}){let C=S,w=r(v()),{ui:T}=n(`NavigationMenuSubOption`);return(n,r)=>(f(),i(_(b),u(l.subItemProps,{value:l.subItem.value}),{default:y(()=>[(f(),i(h(l.subItem.linkProps?_(x):`div`),u(l.subItem.linkProps,{disabled:l.subItem.linkProps?l.subItem.disabled:void 0,onSelect:r[0]||=e=>C(`select`,e)}),{default:y(()=>[c(t,{icon:l.subItem.icon},s({default:y(()=>[o(`div`,{class:d(_(T).subLinkContent)},[o(`span`,{class:d(_(T).subLinkLabel)},g(l.subItem.label),3),o(`p`,{class:d(_(T).subLinkDescription)},g(l.subItem.description),3)],2)]),_:2},[p(_(w),e=>({name:e,fn:y(()=>[m(n.$slots,e,{item:l.subItem})])})),l.subItem.linkProps?{name:`link-icon`,fn:y(()=>[m(n.$slots,`item-link-icon`,{item:l.subItem},()=>[c(e,{icon:`lucide:arrow-up-right`,class:d(_(T).linkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`])]),_:3},16,[`disabled`])),l.subItem.children?.length?m(n.$slots,`item-children`,{key:0,item:l.subItem}):a(`v-if`,!0)]),_:3},16,[`value`]))}});export{S as default};
1
+ import e from"../icon/icon.js";import t from"./navigation-menu-item-slot.js";import{useNavigationMenuExtraUi as n}from"./context.js";import{useCommonSlotKeys as r}from"./shared.js";import{createBlock as i,createCommentVNode as a,createElementVNode as o,createSlots as s,createVNode as c,defineComponent as l,mergeProps as u,normalizeClass as d,openBlock as f,renderList as p,renderSlot as m,resolveDynamicComponent as h,toDisplayString as g,unref as _,useSlots as v,withCtx as y}from"vue";import{NavigationMenuItem as b,NavigationMenuLink as x}from"@soybeanjs/headless";var S=l({name:`SNavigationMenuSubOption`,__name:`navigation-menu-sub-option`,props:{subItem:{},subItemProps:{}},emits:[`select`],setup(l,{emit:S}){let C=S,w=r(v()),T=n();return(n,r)=>(f(),i(_(b),u(l.subItemProps,{value:l.subItem.value}),{default:y(()=>[(f(),i(h(l.subItem.linkProps?_(x):`div`),u(l.subItem.linkProps,{disabled:l.subItem.linkProps?l.subItem.disabled:void 0,onSelect:r[0]||=e=>C(`select`,e)}),{default:y(()=>[c(t,{icon:l.subItem.icon},s({default:y(()=>[o(`div`,{class:d(_(T).subLinkContent)},[o(`span`,{class:d(_(T).subLinkLabel)},g(l.subItem.label),3),o(`p`,{class:d(_(T).subLinkDescription)},g(l.subItem.description),3)],2)]),_:2},[p(_(w),e=>({name:e,fn:y(()=>[m(n.$slots,e,{item:l.subItem})])})),l.subItem.linkProps?{name:`link-icon`,fn:y(()=>[m(n.$slots,`item-link-icon`,{item:l.subItem},()=>[c(e,{icon:`lucide:arrow-up-right`,class:d(_(T).linkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`])]),_:3},16,[`disabled`])),l.subItem.children?.length?m(n.$slots,`item-children`,{key:0,item:l.subItem}):a(`v-if`,!0)]),_:3},16,[`value`]))}});export{S as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import{navigationMenuVariants as t}from"../../variants/navigation-menu.js";import{provideNavigationMenuExtraThemeContext as n}from"./context.js";import r from"./navigation-menu-option.js";import{Fragment as i,computed as a,createBlock as o,createElementBlock as s,createElementVNode as c,createSlots as l,createVNode as u,defineComponent as d,guardReactiveProps as f,mergeProps as p,normalizeClass as m,normalizeProps as h,openBlock as g,renderList as _,renderSlot as v,toHandlers as y,unref as b,useSlots as x,withCtx as S}from"vue";import{useForwardListeners as C,useOmitProps as w,usePickProps as T}from"@soybeanjs/headless/composables";import{NavigationMenuIndicator as E,NavigationMenuList as D,NavigationMenuRoot as O,NavigationMenuViewport as k,provideNavigationMenuThemeContext as A}from"@soybeanjs/headless";var j=d({name:`SNavigationMenu`,__name:`navigation-menu`,props:{size:{},ui:{},items:{},modelValue:{},defaultValue:{},dir:{},orientation:{},delayDuration:{},skipDelayDuration:{},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean},itemProps:{},triggerProps:{},contentProps:{},viewportProps:{},indicatorProps:{},listProps:{},subListProps:{},subItemProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`select`],setup(d,{emit:j}){let M=d,N=j,P=x(),F=[`itemProps`,`triggerProps`,`contentProps`,`viewportProps`,`indicatorProps`,`listProps`,`subListProps`,`subItemProps`],I=w(M,[`size`,`ui`,`items`,...F]),L=T(M,[...F]),R=C(N),z=a(()=>Object.keys(P)),B=a(()=>e(t({size:M.size}),M.ui));return A({ui:B}),n({ui:B}),(e,t)=>(g(),o(b(O),p(b(I),{"onUpdate:modelValue":t[0]||=e=>N(`update:modelValue`,e)}),{default:S(()=>[u(b(D),h(f(d.listProps)),{default:S(()=>[(g(!0),s(i,null,_(d.items,t=>(g(),o(r,p({key:t.value},{ref_for:!0},b(L),{item:t},y(b(R))),l({"item-children":S(t=>[v(e.$slots,`item-children`,{item:t.item})]),_:2},[_(z.value,t=>({name:t,fn:S(n=>[v(e.$slots,t,p({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:3},16),u(b(E),h(f(d.indicatorProps)),{default:S(()=>[c(`div`,{class:m(B.value?.arrow)},null,2)]),_:1},16),c(`div`,{class:m(B.value?.viewportRoot)},[u(b(k),h(f(d.viewportProps)),null,16)],2)]),_:3},16))}});export{j as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import{navigationMenuVariants as t}from"../../variants/navigation-menu.js";import{provideNavigationMenuExtraUi as n}from"./context.js";import r from"./navigation-menu-option.js";import{Fragment as i,computed as a,createBlock as o,createElementBlock as s,createElementVNode as c,createSlots as l,createVNode as u,defineComponent as d,guardReactiveProps as f,mergeProps as p,normalizeClass as m,normalizeProps as h,openBlock as g,renderList as _,renderSlot as v,toHandlers as y,unref as b,useSlots as x,withCtx as S}from"vue";import{useForwardListeners as C,useOmitProps as w,usePickProps as T}from"@soybeanjs/headless/composables";import{NavigationMenuIndicator as E,NavigationMenuList as D,NavigationMenuRoot as O,NavigationMenuViewport as k,provideNavigationMenuUi as A}from"@soybeanjs/headless";var j=d({name:`SNavigationMenu`,__name:`navigation-menu`,props:{class:{},size:{},ui:{},items:{},modelValue:{},defaultValue:{},dir:{},orientation:{},delayDuration:{},skipDelayDuration:{},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean},itemProps:{},triggerProps:{},contentProps:{},viewportProps:{},indicatorProps:{},listProps:{},subListProps:{},subItemProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`select`],setup(d,{emit:j}){let M=d,N=j,P=x(),F=[`itemProps`,`triggerProps`,`contentProps`,`viewportProps`,`indicatorProps`,`listProps`,`subListProps`,`subItemProps`],I=w(M,[`class`,`size`,`ui`,`items`,...F]),L=T(M,[...F]),R=C(N),z=a(()=>Object.keys(P)),B=a(()=>e(t({size:M.size}),M.ui,{root:M.class}));return A(B),n(B),(e,t)=>(g(),o(b(O),p(b(I),{"onUpdate:modelValue":t[0]||=e=>N(`update:modelValue`,e)}),{default:S(()=>[u(b(D),h(f(d.listProps)),{default:S(()=>[(g(!0),s(i,null,_(d.items,t=>(g(),o(r,p({key:t.value},{ref_for:!0},b(L),{item:t},y(b(R))),l({"item-children":S(t=>[v(e.$slots,`item-children`,{item:t.item})]),_:2},[_(z.value,t=>({name:t,fn:S(n=>[v(e.$slots,t,p({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:3},16),u(b(E),h(f(d.indicatorProps)),{default:S(()=>[c(`div`,{class:m(B.value?.arrow)},null,2)]),_:1},16),c(`div`,{class:m(B.value?.viewportRoot)},[u(b(k),h(f(d.viewportProps)),null,16)],2)]),_:3},16))}});export{j as default};
@@ -1,6 +1,6 @@
1
1
  import { NavigationMenuOptionData, NavigationMenuProps } from "./types.js";
2
- import * as vue130 from "vue";
3
- import * as _soybeanjs_headless55 from "@soybeanjs/headless";
2
+ import * as vue274 from "vue";
3
+ import * as _soybeanjs_headless165 from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/navigation-menu/navigation-menu.vue.d.ts
6
6
  type Slots = {
@@ -25,25 +25,25 @@ type Slots = {
25
25
  }) => any;
26
26
  };
27
27
  type __VLS_Slots = Slots;
28
- declare const __VLS_base: vue130.DefineComponent<NavigationMenuProps, {}, {}, {}, {}, vue130.ComponentOptionsMixin, vue130.ComponentOptionsMixin, {
28
+ declare const __VLS_base: vue274.DefineComponent<NavigationMenuProps, {}, {}, {}, {}, vue274.ComponentOptionsMixin, vue274.ComponentOptionsMixin, {
29
29
  select: (payload: CustomEvent<{
30
30
  originalEvent: Event;
31
31
  }>) => any;
32
32
  "update:modelValue": (value: string) => any;
33
33
  escapeKeyDown: (event: KeyboardEvent) => any;
34
- pointerDownOutside: (event: _soybeanjs_headless55.PointerDownOutsideEvent) => any;
35
- focusOutside: (event: _soybeanjs_headless55.FocusOutsideEvent) => any;
36
- interactOutside: (event: _soybeanjs_headless55.PointerDownOutsideEvent | _soybeanjs_headless55.FocusOutsideEvent) => any;
37
- }, string, vue130.PublicProps, Readonly<NavigationMenuProps> & Readonly<{
34
+ pointerDownOutside: (event: _soybeanjs_headless165.PointerDownOutsideEvent) => any;
35
+ focusOutside: (event: _soybeanjs_headless165.FocusOutsideEvent) => any;
36
+ interactOutside: (event: _soybeanjs_headless165.PointerDownOutsideEvent | _soybeanjs_headless165.FocusOutsideEvent) => any;
37
+ }, string, vue274.PublicProps, Readonly<NavigationMenuProps> & Readonly<{
38
38
  onSelect?: ((payload: CustomEvent<{
39
39
  originalEvent: Event;
40
40
  }>) => any) | undefined;
41
41
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
42
42
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
43
- onPointerDownOutside?: ((event: _soybeanjs_headless55.PointerDownOutsideEvent) => any) | undefined;
44
- onFocusOutside?: ((event: _soybeanjs_headless55.FocusOutsideEvent) => any) | undefined;
45
- onInteractOutside?: ((event: _soybeanjs_headless55.PointerDownOutsideEvent | _soybeanjs_headless55.FocusOutsideEvent) => any) | undefined;
46
- }>, {}, {}, {}, {}, string, vue130.ComponentProvideOptions, false, {}, any>;
43
+ onPointerDownOutside?: ((event: _soybeanjs_headless165.PointerDownOutsideEvent) => any) | undefined;
44
+ onFocusOutside?: ((event: _soybeanjs_headless165.FocusOutsideEvent) => any) | undefined;
45
+ onInteractOutside?: ((event: _soybeanjs_headless165.PointerDownOutsideEvent | _soybeanjs_headless165.FocusOutsideEvent) => any) | undefined;
46
+ }>, {}, {}, {}, {}, string, vue274.ComponentProvideOptions, false, {}, any>;
47
47
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
48
48
  declare const _default: typeof __VLS_export;
49
49
  type __VLS_WithSlots<T, S> = T & {
@@ -1,8 +1,7 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import "../../theme/index.js";
3
3
  import { IconValue } from "../icon/types.js";
4
- import { ComputedRef } from "vue";
5
- import { ClassValue, NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuTriggerProps, NavigationMenuUi, NavigationMenuViewportProps } from "@soybeanjs/headless";
4
+ import { ClassValue, NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuTriggerProps, NavigationMenuUi, NavigationMenuViewportProps, UiClass } from "@soybeanjs/headless";
6
5
 
7
6
  //#region src/components/navigation-menu/types.d.ts
8
7
  interface NavigationMenuOptionData {
@@ -29,8 +28,8 @@ interface NavigationMenuOptionData {
29
28
  /** The children of the option. */
30
29
  children?: NavigationMenuOptionData[];
31
30
  }
32
- type NavigationMenuExtraThemeSlot = 'triggerIcon' | 'linkIcon' | 'arrow' | 'viewportRoot' | 'subItemContent' | 'subLinkContent' | 'subLinkLabel' | 'subLinkDescription';
33
- type NavigationMenuExtraUi = Record<NavigationMenuExtraThemeSlot, ClassValue>;
31
+ type NavigationMenuExtraUiSlot = 'triggerIcon' | 'linkIcon' | 'arrow' | 'viewportRoot' | 'subItemContent' | 'subLinkContent' | 'subLinkLabel' | 'subLinkDescription';
32
+ type NavigationMenuExtraUi = UiClass<NavigationMenuExtraUiSlot>;
34
33
  type NavigationMenuExtendedUi = NavigationMenuUi & NavigationMenuExtraUi;
35
34
  interface NavigationMenuSubOptionProps {
36
35
  subItem: NavigationMenuOptionData;
@@ -50,13 +49,11 @@ interface NavigationMenuOptionProps {
50
49
  }
51
50
  type NavigationMenuOptionEmits = NavigationMenuSubEmits & NavigationMenuContentEmits & NavigationMenuLinkEmits;
52
51
  interface NavigationMenuProps extends NavigationMenuRootProps, Omit<NavigationMenuOptionProps, 'item'> {
52
+ class?: ClassValue;
53
53
  size?: ThemeSize;
54
54
  ui?: Partial<NavigationMenuExtendedUi>;
55
55
  items: NavigationMenuOptionData[];
56
56
  }
57
57
  type NavigationMenuEmits = NavigationMenuRootEmits & NavigationMenuOptionEmits;
58
- interface NavigationMenuExtraThemeContextParams {
59
- ui: ComputedRef<NavigationMenuExtraUi>;
60
- }
61
58
  //#endregion
62
- export { NavigationMenuEmits, NavigationMenuExtendedUi, NavigationMenuExtraThemeContextParams, NavigationMenuExtraThemeSlot, NavigationMenuExtraUi, NavigationMenuOptionData, NavigationMenuOptionEmits, NavigationMenuOptionProps, NavigationMenuProps, NavigationMenuSubOptionEmits, NavigationMenuSubOptionProps };
59
+ export { NavigationMenuEmits, NavigationMenuExtendedUi, NavigationMenuExtraUi, NavigationMenuExtraUiSlot, NavigationMenuOptionData, NavigationMenuOptionEmits, NavigationMenuOptionProps, NavigationMenuProps, NavigationMenuSubOptionEmits, NavigationMenuSubOptionProps };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import t from"../icon/icon.js";import{numberInputVariants as n}from"../../variants/number-input.js";import{computed as r,createBlock as i,createCommentVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeClass as u,normalizeProps as d,openBlock as f,renderSlot as p,unref as m,withCtx as h}from"vue";import{useForwardElement as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{NumberInputControl as v,NumberInputDecrement as y,NumberInputIncrement as b,NumberInputRoot as x,provideNumberInputThemeContext as S}from"@soybeanjs/headless";var C=s({name:`SNumberInput`,__name:`number-input`,props:{size:{},ui:{},center:{type:Boolean},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},incrementProps:{},decrementProps:{},defaultValue:{},modelValue:{},min:{},max:{},step:{},stepSnapping:{type:Boolean},formatOptions:{},locale:{},disableWheelChange:{type:Boolean},invertWheelChange:{type:Boolean},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:C}){let w=s,T=C,[E,D]=g(e=>w.inputRef?.(e)),O=_(w,[`size`,`ui`,`center`,`clearable`,`inputRef`,`controlProps`,`incrementProps`,`decrementProps`]),k=r(()=>e(n({size:w.size,center:w.center}),w.ui));return S({ui:k}),(e,n)=>(f(),i(m(x),l(m(O),{"onUpdate:modelValue":n[0]||=e=>T(`update:modelValue`,e)}),{default:h(({clear:n})=>[p(e.$slots,`leading`),o(m(v),l(s.controlProps,{ref:m(D)}),null,16),s.clearable?(f(),i(t,{key:0,icon:`lucide:x`,class:u(k.value.clearable),onClick:n},null,8,[`class`,`onClick`])):a(`v-if`,!0),p(e.$slots,`trailing`),o(m(y),d(c(s.decrementProps)),{default:h(()=>[p(e.$slots,`decrement`,{},()=>[o(t,{icon:`lucide:minus`})])]),_:3},16),o(m(b),d(c(s.incrementProps)),{default:h(()=>[p(e.$slots,`increment`,{},()=>[o(t,{icon:`lucide:plus`})])]),_:3},16)]),_:3},16))}});export{C as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import t from"../icon/icon.js";import{numberInputVariants as n}from"../../variants/number-input.js";import{computed as r,createBlock as i,createCommentVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeClass as u,normalizeProps as d,openBlock as f,renderSlot as p,unref as m,withCtx as h}from"vue";import{useForwardElement as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{NumberInputControl as v,NumberInputDecrement as y,NumberInputIncrement as b,NumberInputRoot as x,provideNumberInputUi as S}from"@soybeanjs/headless";var C=s({name:`SNumberInput`,__name:`number-input`,props:{class:{},size:{},ui:{},center:{type:Boolean},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},incrementProps:{},decrementProps:{},defaultValue:{},modelValue:{},min:{},max:{},step:{},stepSnapping:{type:Boolean},formatOptions:{},locale:{},disableWheelChange:{type:Boolean},invertWheelChange:{type:Boolean},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:C}){let w=s,T=C,[E,D]=g(e=>w.inputRef?.(e)),O=_(w,[`class`,`size`,`ui`,`center`,`clearable`,`inputRef`,`controlProps`,`incrementProps`,`decrementProps`]),k=r(()=>e(n({size:w.size,center:w.center}),w.ui,{root:w.class}));return S(k),(e,n)=>(f(),i(m(x),l(m(O),{"onUpdate:modelValue":n[0]||=e=>T(`update:modelValue`,e)}),{default:h(({clear:n})=>[p(e.$slots,`leading`),o(m(v),l(s.controlProps,{ref:m(D)}),null,16),s.clearable?(f(),i(t,{key:0,icon:`lucide:x`,class:u(k.value.clearable),onClick:n},null,8,[`class`,`onClick`])):a(`v-if`,!0),p(e.$slots,`trailing`),o(m(y),d(c(s.decrementProps)),{default:h(()=>[p(e.$slots,`decrement`,{},()=>[o(t,{icon:`lucide:minus`})])]),_:3},16),o(m(b),d(c(s.incrementProps)),{default:h(()=>[p(e.$slots,`increment`,{},()=>[o(t,{icon:`lucide:plus`})])]),_:3},16)]),_:3},16))}});export{C as default};
@@ -1,5 +1,5 @@
1
1
  import { NumberInputProps } from "./types.js";
2
- import * as vue242 from "vue";
2
+ import * as vue261 from "vue";
3
3
 
4
4
  //#region src/components/number-input/number-input.vue.d.ts
5
5
  declare var __VLS_10: {}, __VLS_24: {}, __VLS_32: {}, __VLS_45: {};
@@ -12,11 +12,11 @@ type __VLS_Slots = {} & {
12
12
  } & {
13
13
  increment?: (props: typeof __VLS_45) => any;
14
14
  };
15
- declare const __VLS_base: vue242.DefineComponent<NumberInputProps, {}, {}, {}, {}, vue242.ComponentOptionsMixin, vue242.ComponentOptionsMixin, {
15
+ declare const __VLS_base: vue261.DefineComponent<NumberInputProps, {}, {}, {}, {}, vue261.ComponentOptionsMixin, vue261.ComponentOptionsMixin, {
16
16
  "update:modelValue": (val: number) => any;
17
- }, string, vue242.PublicProps, Readonly<NumberInputProps> & Readonly<{
17
+ }, string, vue261.PublicProps, Readonly<NumberInputProps> & Readonly<{
18
18
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
19
- }>, {}, {}, {}, {}, string, vue242.ComponentProvideOptions, false, {}, any>;
19
+ }>, {}, {}, {}, {}, string, vue261.ComponentProvideOptions, false, {}, any>;
20
20
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
21
  declare const _default: typeof __VLS_export;
22
22
  type __VLS_WithSlots<T, S> = T & {
@@ -1,9 +1,10 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import "../../theme/index.js";
3
- import { NumberInputControlProps, NumberInputDecrementProps, NumberInputIncrementProps, NumberInputRootEmits, NumberInputRootProps, NumberInputUi } from "@soybeanjs/headless";
3
+ import { ClassValue, NumberInputControlProps, NumberInputDecrementProps, NumberInputIncrementProps, NumberInputRootEmits, NumberInputRootProps, NumberInputUi } from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/number-input/types.d.ts
6
6
  interface NumberInputProps extends NumberInputRootProps {
7
+ class?: ClassValue;
7
8
  size?: ThemeSize;
8
9
  ui?: Partial<NumberInputUi>;
9
10
  /**
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import{mergeSlotVariants as t}from"../../theme/shared.js";import n from"../icon/icon.js";import{paginationVariants as r}from"../../variants/pagination.js";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createVNode as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,unref as _,withCtx as v}from"vue";import{useOmitProps as y}from"@soybeanjs/headless/composables";import{PaginationEllipsis as b,PaginationFirst as x,PaginationLast as S,PaginationList as C,PaginationListItem as w,PaginationNext as T,PaginationPrev as E,PaginationRoot as D,providePaginationThemeContext as O}from"@soybeanjs/headless";var k=u({name:`SPagination`,__name:`pagination`,props:{ui:{},size:{},variant:{},shape:{},actionAsSelected:{type:Boolean},showFirstOrLast:{type:Boolean,default:!0},listProps:{},listItemProps:{},ellipsisProps:{},firstProps:{},prevProps:{},nextProps:{},lastProps:{},page:{},defaultPage:{},itemsPerPage:{},total:{},siblingCount:{},disabled:{type:Boolean},showEdges:{type:Boolean}},emits:[`update:page`],setup(u,{emit:k}){let A=u,j=k,M=y(A,[`ui`,`size`,`variant`,`shape`,`actionAsSelected`,`showFirstOrLast`,`listProps`,`listItemProps`,`ellipsisProps`,`firstProps`,`prevProps`,`nextProps`,`lastProps`]),N=a(()=>A.actionAsSelected?``:void 0);return O({ui:a(()=>{let n=r({size:A.size,variant:A.variant,shape:A.shape,actionAsSelected:A.actionAsSelected}),i=[`listItem`,`first`,`prev`,`next`,`last`];return{...t(n,A.ui),...i.reduce((t,r)=>(t[r]=e(r===`listItem`?n.button():n.navigationButton(),A.ui?.[r]),t),{})}})}),(e,t)=>(m(),o(_(D),f(_(M),{"onUpdate:page":t[0]||=e=>j(`update:page`,e)}),{default:v(()=>[l(_(C),p(d(A.listProps)),{default:v(({items:t})=>[u.showFirstOrLast?(m(),o(_(x),f({key:0},A.firstProps,{"data-selected":N.value}),{default:v(()=>[g(e.$slots,`first`,{},()=>[l(n,{icon:`lucide:chevrons-left`})])]),_:3},16,[`data-selected`])):s(`v-if`,!0),l(_(E),f(A.prevProps,{"data-selected":N.value}),{default:v(()=>[g(e.$slots,`prev`,{},()=>[l(n,{icon:`lucide:chevron-left`})])]),_:3},16,[`data-selected`]),(m(!0),c(i,null,h(t,t=>(m(),c(i,{key:t},[t.type===`page`?(m(),o(_(w),f({key:0,ref_for:!0},A.listItemProps,{value:t.value}),null,16,[`value`])):t.type===`ellipsis`?(m(),o(_(b),f({key:1,ref_for:!0},A.ellipsisProps),{default:v(()=>[g(e.$slots,`ellipsis`,{},()=>[l(n,{icon:`lucide:ellipsis`})])]),_:3},16)):s(`v-if`,!0)],64))),128)),l(_(T),f(A.nextProps,{"data-selected":N.value}),{default:v(()=>[g(e.$slots,`next`,{},()=>[l(n,{icon:`lucide:chevron-right`})])]),_:3},16,[`data-selected`]),u.showFirstOrLast?(m(),o(_(S),f({key:1},A.lastProps,{"data-selected":N.value}),{default:v(()=>[g(e.$slots,`last`,{},()=>[l(n,{icon:`lucide:chevrons-right`})])]),_:3},16,[`data-selected`])):s(`v-if`,!0)]),_:3},16)]),_:3},16))}});export{k as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import t from"../icon/icon.js";import{paginationVariants as n}from"../../variants/pagination.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createVNode as c,defineComponent as l,guardReactiveProps as u,mergeProps as d,normalizeProps as f,openBlock as p,renderList as m,renderSlot as h,unref as g,withCtx as _}from"vue";import{useOmitProps as v}from"@soybeanjs/headless/composables";import{PaginationEllipsis as y,PaginationFirst as b,PaginationLast as x,PaginationList as S,PaginationListItem as C,PaginationNext as w,PaginationPrev as T,PaginationRoot as E,providePaginationUi as D}from"@soybeanjs/headless";var O=l({name:`SPagination`,__name:`pagination`,props:{class:{},ui:{},size:{},variant:{},shape:{},actionAsSelected:{type:Boolean},showFirstOrLast:{type:Boolean,default:!0},listProps:{},listItemProps:{},ellipsisProps:{},firstProps:{},prevProps:{},nextProps:{},lastProps:{},page:{},defaultPage:{},itemsPerPage:{},total:{},siblingCount:{},disabled:{type:Boolean},showEdges:{type:Boolean}},emits:[`update:page`],setup(l,{emit:O}){let k=l,A=O,j=v(k,[`class`,`ui`,`size`,`variant`,`shape`,`actionAsSelected`,`showFirstOrLast`,`listProps`,`listItemProps`,`ellipsisProps`,`firstProps`,`prevProps`,`nextProps`,`lastProps`]),M=i(()=>k.actionAsSelected?``:void 0);return D(i(()=>{let t=n({size:k.size,variant:k.variant,shape:k.shape,actionAsSelected:k.actionAsSelected}),{button:r,navigationButton:i}=t;return e({...t,listItem:r,first:i,prev:i,next:i,last:i},k.ui,{root:k.class})})),(e,n)=>(p(),a(g(E),d(g(j),{"onUpdate:page":n[0]||=e=>A(`update:page`,e)}),{default:_(()=>[c(g(S),f(u(k.listProps)),{default:_(({items:n})=>[l.showFirstOrLast?(p(),a(g(b),d({key:0},k.firstProps,{"data-selected":M.value}),{default:_(()=>[h(e.$slots,`first`,{},()=>[c(t,{icon:`lucide:chevrons-left`})])]),_:3},16,[`data-selected`])):o(`v-if`,!0),c(g(T),d(k.prevProps,{"data-selected":M.value}),{default:_(()=>[h(e.$slots,`prev`,{},()=>[c(t,{icon:`lucide:chevron-left`})])]),_:3},16,[`data-selected`]),(p(!0),s(r,null,m(n,n=>(p(),s(r,{key:n},[n.type===`page`?(p(),a(g(C),d({key:0,ref_for:!0},k.listItemProps,{value:n.value}),null,16,[`value`])):n.type===`ellipsis`?(p(),a(g(y),d({key:1,ref_for:!0},k.ellipsisProps),{default:_(()=>[h(e.$slots,`ellipsis`,{},()=>[c(t,{icon:`lucide:ellipsis`})])]),_:3},16)):o(`v-if`,!0)],64))),128)),c(g(w),d(k.nextProps,{"data-selected":M.value}),{default:_(()=>[h(e.$slots,`next`,{},()=>[c(t,{icon:`lucide:chevron-right`})])]),_:3},16,[`data-selected`]),l.showFirstOrLast?(p(),a(g(x),d({key:1},k.lastProps,{"data-selected":M.value}),{default:_(()=>[h(e.$slots,`last`,{},()=>[c(t,{icon:`lucide:chevrons-right`})])]),_:3},16,[`data-selected`])):o(`v-if`,!0)]),_:3},16)]),_:3},16))}});export{O as default};
@@ -1,5 +1,5 @@
1
1
  import { PaginationProps } from "./types.js";
2
- import * as vue261 from "vue";
2
+ import * as vue44 from "vue";
3
3
 
4
4
  //#region src/components/pagination/pagination.vue.d.ts
5
5
  declare var __VLS_22: {}, __VLS_35: {}, __VLS_53: {}, __VLS_66: {}, __VLS_79: {};
@@ -14,13 +14,13 @@ type __VLS_Slots = {} & {
14
14
  } & {
15
15
  last?: (props: typeof __VLS_79) => any;
16
16
  };
17
- declare const __VLS_base: vue261.DefineComponent<PaginationProps, {}, {}, {}, {}, vue261.ComponentOptionsMixin, vue261.ComponentOptionsMixin, {
17
+ declare const __VLS_base: vue44.DefineComponent<PaginationProps, {}, {}, {}, {}, vue44.ComponentOptionsMixin, vue44.ComponentOptionsMixin, {
18
18
  "update:page": (value: number) => any;
19
- }, string, vue261.PublicProps, Readonly<PaginationProps> & Readonly<{
19
+ }, string, vue44.PublicProps, Readonly<PaginationProps> & Readonly<{
20
20
  "onUpdate:page"?: ((value: number) => any) | undefined;
21
21
  }>, {
22
22
  showFirstOrLast: boolean;
23
- }, {}, {}, {}, string, vue261.ComponentProvideOptions, false, {}, any>;
23
+ }, {}, {}, {}, string, vue44.ComponentProvideOptions, false, {}, any>;
24
24
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
25
25
  declare const _default: typeof __VLS_export;
26
26
  type __VLS_WithSlots<T, S> = T & {
@@ -1,10 +1,11 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import "../../theme/index.js";
3
3
  import { PaginationShape, PaginationVariant } from "../../variants/pagination.js";
4
- import { PaginationButtonProps, PaginationEllipsisProps, PaginationListItemProps, PaginationListProps, PaginationRootEmits, PaginationRootProps, PaginationUi } from "@soybeanjs/headless";
4
+ import { ClassValue, PaginationButtonProps, PaginationEllipsisProps, PaginationListItemProps, PaginationListProps, PaginationRootEmits, PaginationRootProps, PaginationUi } from "@soybeanjs/headless";
5
5
 
6
6
  //#region src/components/pagination/types.d.ts
7
7
  interface PaginationProps extends PaginationRootProps {
8
+ class?: ClassValue;
8
9
  /** The custom ui class names */
9
10
  ui?: Partial<PaginationUi>;
10
11
  /** The size of the pagination */
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import t from"../icon/icon.js";import{inputVariants as n}from"../../variants/input.js";import{computed as r,createBlock as i,createCommentVNode as a,createVNode as o,defineComponent as s,mergeProps as c,normalizeClass as l,openBlock as u,renderSlot as d,unref as f,withCtx as p}from"vue";import{useControllableState as m,useForwardElement as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{InputControl as _,InputRoot as v,provideInputThemeContext as y}from"@soybeanjs/headless";var b=s({name:`SPassword`,__name:`password`,props:{size:{},ui:{},visible:{type:Boolean,default:void 0},clearable:{type:Boolean},inputRef:{},controlProps:{},defaultValue:{},modelValue:{},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:visible`],setup(s,{emit:b}){let x=s,S=b,[C,w]=h(e=>x.inputRef?.(e)),T=g(x,[`size`,`ui`,`clearable`,`visible`,`inputRef`,`controlProps`]),E=m(()=>x.visible,e=>{S(`update:visible`,e)},!1),D=()=>{E.value=!E.value},O=r(()=>e(n({size:x.size}),x.ui));return y({ui:O}),(e,n)=>(u(),i(f(v),c(f(T),{"onUpdate:modelValue":n[0]||=e=>S(`update:modelValue`,e)}),{default:p(({clear:n})=>[d(e.$slots,`leading`),o(f(_),c(s.controlProps,{ref:f(w),type:f(E)?`text`:`password`}),null,16,[`type`]),s.clearable?(u(),i(t,{key:0,icon:`lucide:x`,class:l(O.value.clearable),onClick:n},null,8,[`class`,`onClick`])):a(`v-if`,!0),d(e.$slots,`trailing`),d(e.$slots,`visible`,{visible:f(E),toggle:D},()=>[o(t,{icon:f(E)?`lucide:eye`:`lucide:eye-off`,class:l(O.value.visible),onClick:D},null,8,[`icon`,`class`])])]),_:3},16))}});export{b as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import t from"../icon/icon.js";import{inputVariants as n}from"../../variants/input.js";import{computed as r,createBlock as i,createCommentVNode as a,createVNode as o,defineComponent as s,mergeProps as c,normalizeClass as l,openBlock as u,renderSlot as d,unref as f,withCtx as p}from"vue";import{useControllableState as m,useForwardElement as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{InputControl as _,InputRoot as v,provideInputUi as y}from"@soybeanjs/headless";var b=s({name:`SPassword`,__name:`password`,props:{class:{},size:{},ui:{},visible:{type:Boolean,default:void 0},clearable:{type:Boolean},inputRef:{},controlProps:{},defaultValue:{},modelValue:{},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:visible`],setup(s,{emit:b}){let x=s,S=b,[C,w]=h(e=>x.inputRef?.(e)),T=g(x,[`class`,`size`,`ui`,`clearable`,`visible`,`inputRef`,`controlProps`]),E=m(()=>x.visible,e=>{S(`update:visible`,e)},!1),D=()=>{E.value=!E.value},O=r(()=>e(n({size:x.size}),x.ui,{root:x.class}));return y(O),(e,n)=>(u(),i(f(v),c(f(T),{"onUpdate:modelValue":n[0]||=e=>S(`update:modelValue`,e)}),{default:p(({clear:n})=>[d(e.$slots,`leading`),o(f(_),c(s.controlProps,{ref:f(w),type:f(E)?`text`:`password`}),null,16,[`type`]),s.clearable?(u(),i(t,{key:0,icon:`lucide:x`,class:l(O.value.clearable),onClick:n},null,8,[`class`,`onClick`])):a(`v-if`,!0),d(e.$slots,`trailing`),d(e.$slots,`visible`,{visible:f(E),toggle:D},()=>[o(t,{icon:f(E)?`lucide:eye`:`lucide:eye-off`,class:l(O.value.visible),onClick:D},null,8,[`icon`,`class`])])]),_:3},16))}});export{b as default};
@@ -1,5 +1,5 @@
1
1
  import { PasswordProps } from "./types.js";
2
- import * as vue141 from "vue";
2
+ import * as vue39 from "vue";
3
3
 
4
4
  //#region src/components/password/password.vue.d.ts
5
5
  declare var __VLS_10: {}, __VLS_24: {}, __VLS_26: {
@@ -13,15 +13,15 @@ type __VLS_Slots = {} & {
13
13
  } & {
14
14
  visible?: (props: typeof __VLS_26) => any;
15
15
  };
16
- declare const __VLS_base: vue141.DefineComponent<PasswordProps, {}, {}, {}, {}, vue141.ComponentOptionsMixin, vue141.ComponentOptionsMixin, {
16
+ declare const __VLS_base: vue39.DefineComponent<PasswordProps, {}, {}, {}, {}, vue39.ComponentOptionsMixin, vue39.ComponentOptionsMixin, {
17
17
  "update:modelValue": (value: string) => any;
18
18
  "update:visible": (visible: boolean) => any;
19
- }, string, vue141.PublicProps, Readonly<PasswordProps> & Readonly<{
19
+ }, string, vue39.PublicProps, Readonly<PasswordProps> & Readonly<{
20
20
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
21
21
  "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
22
22
  }>, {
23
23
  visible: boolean;
24
- }, {}, {}, {}, string, vue141.ComponentProvideOptions, false, {}, any>;
24
+ }, {}, {}, {}, string, vue39.ComponentProvideOptions, false, {}, any>;
25
25
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
26
  declare const _default: typeof __VLS_export;
27
27
  type __VLS_WithSlots<T, S> = T & {
@@ -3,9 +3,10 @@ import "../../theme/index.js";
3
3
  import { ClassValue, InputControlProps, InputRootEmits, InputRootProps, InputUi } from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/password/types.d.ts
6
- type PasswordThemeSlot = 'clearable' | 'visible';
7
- type PasswordUi = InputUi & Record<PasswordThemeSlot, ClassValue>;
6
+ type PasswordUiSlot = 'clearable' | 'visible';
7
+ type PasswordUi = InputUi & Record<PasswordUiSlot, ClassValue>;
8
8
  interface PasswordProps extends InputRootProps {
9
+ class?: ClassValue;
9
10
  size?: ThemeSize;
10
11
  ui?: Partial<PasswordUi>;
11
12
  /** Whether to show the password */