@soybeanjs/ui 0.0.8 → 0.0.10

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 (226) 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 +4 -4
  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 +5 -5
  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 +2 -1
  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 +14 -14
  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 +18 -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 +48 -0
  92. package/dist/components/form/use-form.js +1 -0
  93. package/dist/components/icon/icon.vue.d.ts +3 -3
  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 +6 -5
  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 +4 -8
  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 +2 -2
  185. package/dist/components/tree-menu/shared.js +1 -1
  186. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -0
  187. package/dist/components/tree-menu/tree-menu-option.js +1 -0
  188. package/dist/components/tree-menu/tree-menu-styled-item.js +1 -0
  189. package/dist/components/tree-menu/tree-menu-styled-item.vue.d.ts +17 -0
  190. package/dist/components/tree-menu/tree-menu.js +1 -1
  191. package/dist/components/tree-menu/tree-menu.vue.d.ts +11 -22
  192. package/dist/components/tree-menu/types.d.ts +78 -45
  193. package/dist/components/virtualizer/virtualizer.vue.d.ts +3 -3
  194. package/dist/constants/components.d.ts +13 -13
  195. package/dist/constants/components.js +1 -1
  196. package/dist/index.d.ts +50 -52
  197. package/dist/index.js +1 -1
  198. package/dist/styles.css +29 -25
  199. package/dist/theme/shared.js +1 -1
  200. package/dist/variants/alert.d.ts +24 -24
  201. package/dist/variants/alert.js +1 -1
  202. package/dist/variants/avatar.js +1 -1
  203. package/dist/variants/badge.d.ts +3 -3
  204. package/dist/variants/checkbox.js +1 -1
  205. package/dist/variants/drawer.js +1 -1
  206. package/dist/variants/form.js +1 -1
  207. package/dist/variants/layout.js +1 -1
  208. package/dist/variants/navigation-menu.js +1 -1
  209. package/dist/variants/pagination.d.ts +3 -3
  210. package/dist/variants/radio-group.d.ts +3 -3
  211. package/dist/variants/separator.d.ts +3 -3
  212. package/dist/variants/switch.d.ts +3 -3
  213. package/dist/variants/tabs.d.ts +3 -3
  214. package/dist/variants/tabs.js +1 -1
  215. package/dist/variants/tag.d.ts +3 -3
  216. package/dist/variants/textarea.d.ts +3 -3
  217. package/dist/variants/toast.d.ts +3 -3
  218. package/dist/variants/tree-menu.js +1 -1
  219. package/package.json +5 -3
  220. package/dist/components/form/form-field-array.js +0 -1
  221. package/dist/components/form/form-field-array.vue.d.ts +0 -71
  222. package/dist/components/form/form-field.js +0 -1
  223. package/dist/components/form/form-field.vue.d.ts +0 -27
  224. package/dist/components/tree-menu/tree-menu-item-wrapper.js +0 -1
  225. package/dist/components/tree-menu/tree-menu-item-wrapper.vue.d.ts +0 -17
  226. package/dist/components/tree-menu/tree-menu-item.js +0 -1
@@ -1,12 +1,12 @@
1
1
  import { ListProps } from "./types.js";
2
- import * as vue180 from "vue";
2
+ import * as vue203 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: vue180.DefineComponent<ListProps, {}, {}, {}, {}, vue180.ComponentOptionsMixin, vue180.ComponentOptionsMixin, {}, string, vue180.PublicProps, Readonly<ListProps> & Readonly<{}>, {}, {}, {}, {}, string, vue180.ComponentProvideOptions, false, {}, any>;
9
+ declare const __VLS_base: vue203.DefineComponent<ListProps, {}, {}, {}, {}, vue203.ComponentOptionsMixin, vue203.ComponentOptionsMixin, {}, string, vue203.PublicProps, Readonly<ListProps> & Readonly<{}>, {}, {}, {}, {}, string, vue203.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 vue224 from "vue";
2
+ import * as vue227 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: vue224.PublicProps & __VLS_PrettifyLocal<MenuCheckboxOptionsProps<T, S> & {
7
+ props: vue227.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
- }>) => vue224.VNode & {
22
+ }>) => vue227.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 vue220 from "vue";
3
- import * as _soybeanjs_headless116 from "@soybeanjs/headless";
2
+ import * as vue223 from "vue";
3
+ import * as _soybeanjs_headless139 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: vue220.PublicProps & __VLS_PrettifyLocal<MenuOptionProps<T> & {
8
+ props: vue223.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;
11
12
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
12
- onPointerDownOutside?: ((event: _soybeanjs_headless116.PointerDownOutsideEvent) => any) | undefined;
13
- onFocusOutside?: ((event: _soybeanjs_headless116.FocusOutsideEvent) => any) | undefined;
14
- onInteractOutside?: ((event: _soybeanjs_headless116.PointerDownOutsideEvent | _soybeanjs_headless116.FocusOutsideEvent) => any) | undefined;
13
+ onPointerDownOutside?: ((event: _soybeanjs_headless139.PointerDownOutsideEvent) => any) | undefined;
14
+ onFocusOutside?: ((event: _soybeanjs_headless139.FocusOutsideEvent) => any) | undefined;
15
+ onInteractOutside?: ((event: _soybeanjs_headless139.PointerDownOutsideEvent | _soybeanjs_headless139.FocusOutsideEvent) => any) | undefined;
15
16
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
16
17
  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: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _soybeanjs_headless116.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless116.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless116.PointerDownOutsideEvent | _soybeanjs_headless116.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "entryFocus", event: Event) => void);
42
- }>) => vue220.VNode & {
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_headless139.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless139.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless139.PointerDownOutsideEvent | _soybeanjs_headless139.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
42
+ }>) => vue223.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 vue222 from "vue";
3
- import * as _soybeanjs_headless124 from "@soybeanjs/headless";
2
+ import * as vue225 from "vue";
3
+ import * as _soybeanjs_headless147 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: vue222.PublicProps & __VLS_PrettifyLocal<MenuOptionsProps<T, S> & {
8
+ props: vue225.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;
11
12
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
12
- onPointerDownOutside?: ((event: _soybeanjs_headless124.PointerDownOutsideEvent) => any) | undefined;
13
- onFocusOutside?: ((event: _soybeanjs_headless124.FocusOutsideEvent) => any) | undefined;
14
- onInteractOutside?: ((event: _soybeanjs_headless124.PointerDownOutsideEvent | _soybeanjs_headless124.FocusOutsideEvent) => any) | undefined;
13
+ onPointerDownOutside?: ((event: _soybeanjs_headless147.PointerDownOutsideEvent) => any) | undefined;
14
+ onFocusOutside?: ((event: _soybeanjs_headless147.FocusOutsideEvent) => any) | undefined;
15
+ onInteractOutside?: ((event: _soybeanjs_headless147.PointerDownOutsideEvent | _soybeanjs_headless147.FocusOutsideEvent) => any) | undefined;
15
16
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
16
17
  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: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _soybeanjs_headless124.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless124.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless124.PointerDownOutsideEvent | _soybeanjs_headless124.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "entryFocus", event: Event) => void);
42
- }>) => vue222.VNode & {
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_headless147.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _soybeanjs_headless147.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _soybeanjs_headless147.PointerDownOutsideEvent | _soybeanjs_headless147.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
42
+ }>) => vue225.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 vue226 from "vue";
2
+ import * as vue229 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: vue226.PublicProps & __VLS_PrettifyLocal<MenuRadioOptionsProps<T, S> & {
7
+ props: vue229.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
- }>) => vue226.VNode & {
22
+ }>) => vue229.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
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'> {
@@ -36,8 +35,8 @@ interface MenuOptionData<T = DefinedValue> extends Pick<MenuItemProps, 'disabled
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 vue210 from "vue";
3
- import * as _soybeanjs_headless108 from "@soybeanjs/headless";
2
+ import * as vue208 from "vue";
3
+ import * as _soybeanjs_headless131 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: vue210.DefineComponent<NavigationMenuProps, {}, {}, {}, {}, vue210.ComponentOptionsMixin, vue210.ComponentOptionsMixin, {
28
+ declare const __VLS_base: vue208.DefineComponent<NavigationMenuProps, {}, {}, {}, {}, vue208.ComponentOptionsMixin, vue208.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_headless108.PointerDownOutsideEvent) => any;
35
- focusOutside: (event: _soybeanjs_headless108.FocusOutsideEvent) => any;
36
- interactOutside: (event: _soybeanjs_headless108.PointerDownOutsideEvent | _soybeanjs_headless108.FocusOutsideEvent) => any;
37
- }, string, vue210.PublicProps, Readonly<NavigationMenuProps> & Readonly<{
34
+ pointerDownOutside: (event: _soybeanjs_headless131.PointerDownOutsideEvent) => any;
35
+ focusOutside: (event: _soybeanjs_headless131.FocusOutsideEvent) => any;
36
+ interactOutside: (event: _soybeanjs_headless131.PointerDownOutsideEvent | _soybeanjs_headless131.FocusOutsideEvent) => any;
37
+ }, string, vue208.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_headless108.PointerDownOutsideEvent) => any) | undefined;
44
- onFocusOutside?: ((event: _soybeanjs_headless108.FocusOutsideEvent) => any) | undefined;
45
- onInteractOutside?: ((event: _soybeanjs_headless108.PointerDownOutsideEvent | _soybeanjs_headless108.FocusOutsideEvent) => any) | undefined;
46
- }>, {}, {}, {}, {}, string, vue210.ComponentProvideOptions, false, {}, any>;
43
+ onPointerDownOutside?: ((event: _soybeanjs_headless131.PointerDownOutsideEvent) => any) | undefined;
44
+ onFocusOutside?: ((event: _soybeanjs_headless131.FocusOutsideEvent) => any) | undefined;
45
+ onInteractOutside?: ((event: _soybeanjs_headless131.PointerDownOutsideEvent | _soybeanjs_headless131.FocusOutsideEvent) => any) | undefined;
46
+ }>, {}, {}, {}, {}, string, vue208.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 vue215 from "vue";
2
+ import * as vue236 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: vue215.DefineComponent<NumberInputProps, {}, {}, {}, {}, vue215.ComponentOptionsMixin, vue215.ComponentOptionsMixin, {
15
+ declare const __VLS_base: vue236.DefineComponent<NumberInputProps, {}, {}, {}, {}, vue236.ComponentOptionsMixin, vue236.ComponentOptionsMixin, {
16
16
  "update:modelValue": (val: number) => any;
17
- }, string, vue215.PublicProps, Readonly<NumberInputProps> & Readonly<{
17
+ }, string, vue236.PublicProps, Readonly<NumberInputProps> & Readonly<{
18
18
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
19
- }>, {}, {}, {}, {}, string, vue215.ComponentProvideOptions, false, {}, any>;
19
+ }>, {}, {}, {}, {}, string, vue236.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 vue228 from "vue";
2
+ import * as vue241 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: vue228.DefineComponent<PaginationProps, {}, {}, {}, {}, vue228.ComponentOptionsMixin, vue228.ComponentOptionsMixin, {
17
+ declare const __VLS_base: vue241.DefineComponent<PaginationProps, {}, {}, {}, {}, vue241.ComponentOptionsMixin, vue241.ComponentOptionsMixin, {
18
18
  "update:page": (value: number) => any;
19
- }, string, vue228.PublicProps, Readonly<PaginationProps> & Readonly<{
19
+ }, string, vue241.PublicProps, Readonly<PaginationProps> & Readonly<{
20
20
  "onUpdate:page"?: ((value: number) => any) | undefined;
21
21
  }>, {
22
22
  showFirstOrLast: boolean;
23
- }, {}, {}, {}, string, vue228.ComponentProvideOptions, false, {}, any>;
23
+ }, {}, {}, {}, string, vue241.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 vue205 from "vue";
2
+ import * as vue213 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: vue205.DefineComponent<PasswordProps, {}, {}, {}, {}, vue205.ComponentOptionsMixin, vue205.ComponentOptionsMixin, {
16
+ declare const __VLS_base: vue213.DefineComponent<PasswordProps, {}, {}, {}, {}, vue213.ComponentOptionsMixin, vue213.ComponentOptionsMixin, {
17
17
  "update:modelValue": (value: string) => any;
18
18
  "update:visible": (visible: boolean) => any;
19
- }, string, vue205.PublicProps, Readonly<PasswordProps> & Readonly<{
19
+ }, string, vue213.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, vue205.ComponentProvideOptions, false, {}, any>;
24
+ }, {}, {}, {}, string, vue213.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 */