@soybeanjs/ui 0.15.0-beta.2 → 0.15.0-beta.4

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 (227) hide show
  1. package/dist/components/accordion/accordion.js +1 -1
  2. package/dist/components/accordion/variants.js +1 -1
  3. package/dist/components/affix/affix.js +1 -1
  4. package/dist/components/affix/affix.vue.d.ts +4 -2
  5. package/dist/components/affix/index.d.ts +1 -3
  6. package/dist/components/affix/types.d.ts +4 -5
  7. package/dist/components/alert/alert.js +1 -1
  8. package/dist/components/alert/alert.vue.d.ts +2 -15
  9. package/dist/components/alert/index.d.ts +1 -1
  10. package/dist/components/alert/types.d.ts +7 -15
  11. package/dist/components/anchor/anchor.js +1 -1
  12. package/dist/components/anchor/anchor.vue.d.ts +1 -1
  13. package/dist/components/anchor/index.d.ts +3 -3
  14. package/dist/components/anchor/types.d.ts +7 -24
  15. package/dist/components/autocomplete/autocomplete.js +1 -1
  16. package/dist/components/autocomplete/autocomplete.vue.d.ts +4 -26
  17. package/dist/components/autocomplete/index.d.ts +1 -1
  18. package/dist/components/autocomplete/types.d.ts +7 -85
  19. package/dist/components/autocomplete/variants.js +1 -1
  20. package/dist/components/backtop/backtop.js +1 -0
  21. package/dist/components/backtop/backtop.vue.d.ts +34 -0
  22. package/dist/components/backtop/index.d.ts +4 -0
  23. package/dist/components/backtop/index.js +1 -0
  24. package/dist/components/backtop/types.d.ts +33 -0
  25. package/dist/components/backtop/variants.js +1 -0
  26. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  27. package/dist/components/breadcrumb/breadcrumb.vue.d.ts +3 -33
  28. package/dist/components/breadcrumb/index.d.ts +1 -1
  29. package/dist/components/breadcrumb/types.d.ts +6 -38
  30. package/dist/components/breadcrumb/variants.js +1 -1
  31. package/dist/components/button/button-group.js +1 -1
  32. package/dist/components/button/button-icon.js +1 -1
  33. package/dist/components/button/button-loading.js +1 -1
  34. package/dist/components/button/button.js +1 -1
  35. package/dist/components/button/index.js +1 -1
  36. package/dist/components/button/variants.d.ts +1 -1
  37. package/dist/components/button/variants.js +1 -1
  38. package/dist/components/carousel/types.d.ts +1 -1
  39. package/dist/components/carousel/variants.js +1 -1
  40. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  41. package/dist/components/checkbox/checkbox-card-group.vue.d.ts +4 -5
  42. package/dist/components/checkbox/checkbox-card.js +1 -1
  43. package/dist/components/checkbox/checkbox-card.vue.d.ts +3 -5
  44. package/dist/components/checkbox/checkbox-group.js +1 -1
  45. package/dist/components/checkbox/checkbox-group.vue.d.ts +4 -5
  46. package/dist/components/checkbox/checkbox.js +1 -1
  47. package/dist/components/checkbox/checkbox.vue.d.ts +2 -11
  48. package/dist/components/checkbox/index.d.ts +2 -4
  49. package/dist/components/checkbox/index.js +1 -1
  50. package/dist/components/checkbox/types.d.ts +31 -31
  51. package/dist/components/checkbox/variants.d.ts +3 -0
  52. package/dist/components/checkbox/variants.js +1 -1
  53. package/dist/components/clipboard/clipboard.js +1 -0
  54. package/dist/components/clipboard/clipboard.vue.d.ts +55 -0
  55. package/dist/components/clipboard/index.d.ts +3 -0
  56. package/dist/components/clipboard/index.js +1 -0
  57. package/dist/components/clipboard/types.d.ts +16 -0
  58. package/dist/components/clipboard/variants.d.ts +1 -0
  59. package/dist/components/color-area/color-area.vue.d.ts +2 -2
  60. package/dist/components/color-area/variants.js +1 -1
  61. package/dist/components/color-field/variants.js +1 -1
  62. package/dist/components/color-picker/color-picker.vue.d.ts +6 -6
  63. package/dist/components/color-slider/color-slider.vue.d.ts +2 -2
  64. package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -1
  65. package/dist/components/combobox/combobox.js +1 -1
  66. package/dist/components/combobox/combobox.vue.d.ts +5 -48
  67. package/dist/components/combobox/index.d.ts +3 -3
  68. package/dist/components/combobox/types.d.ts +6 -60
  69. package/dist/components/combobox/variants.js +1 -1
  70. package/dist/components/command/command.js +1 -1
  71. package/dist/components/command/command.vue.d.ts +3 -23
  72. package/dist/components/command/index.d.ts +4 -2
  73. package/dist/components/command/types.d.ts +8 -90
  74. package/dist/components/config-provider/config-provider.js +1 -1
  75. package/dist/components/config-provider/config-provider.vue.d.ts +2 -2
  76. package/dist/components/config-provider/types.d.ts +3 -2
  77. package/dist/components/context-menu/context-menu-checkbox.js +1 -1
  78. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +2 -2
  79. package/dist/components/context-menu/context-menu-radio.js +1 -1
  80. package/dist/components/context-menu/context-menu-radio.vue.d.ts +2 -2
  81. package/dist/components/context-menu/context-menu-wrapper.js +1 -1
  82. package/dist/components/context-menu/context-menu.js +1 -1
  83. package/dist/components/dialog/dialog-provider.js +1 -0
  84. package/dist/components/dialog/dialog-provider.vue.d.ts +7 -0
  85. package/dist/components/dialog/dialog.js +1 -1
  86. package/dist/components/dialog/dialog.vue.d.ts +9 -29
  87. package/dist/components/dialog/index.d.ts +4 -5
  88. package/dist/components/dialog/index.js +1 -1
  89. package/dist/components/dialog/types.d.ts +7 -34
  90. package/dist/components/dialog/variants.js +1 -1
  91. package/dist/components/drawer/drawer.js +1 -1
  92. package/dist/components/drawer/drawer.vue.d.ts +9 -29
  93. package/dist/components/drawer/index.d.ts +2 -3
  94. package/dist/components/drawer/index.js +1 -1
  95. package/dist/components/drawer/types.d.ts +4 -6
  96. package/dist/components/drawer/variants.js +1 -1
  97. package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
  98. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +2 -2
  99. package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
  100. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +2 -2
  101. package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
  102. package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
  103. package/dist/components/editable/variants.js +1 -1
  104. package/dist/components/empty/variants.js +1 -1
  105. package/dist/components/input/variants.js +1 -1
  106. package/dist/components/input-otp/index.d.ts +4 -0
  107. package/dist/components/input-otp/index.js +1 -0
  108. package/dist/components/input-otp/input-otp.js +1 -0
  109. package/dist/components/input-otp/input-otp.vue.d.ts +37 -0
  110. package/dist/components/input-otp/types.d.ts +16 -0
  111. package/dist/components/input-otp/variants.js +1 -0
  112. package/dist/components/kbd/types.d.ts +2 -2
  113. package/dist/components/layout/layout.js +1 -1
  114. package/dist/components/layout/variants.js +1 -1
  115. package/dist/components/menu/variants.js +1 -1
  116. package/dist/components/menubar/menubar.vue.d.ts +2 -2
  117. package/dist/components/navigation-menu/navigation-menu.vue.d.ts +2 -2
  118. package/dist/components/navigation-menu/variants.js +1 -1
  119. package/dist/components/page-tabs/page-tabs.vue.d.ts +1 -1
  120. package/dist/components/pagination/variants.js +1 -1
  121. package/dist/components/popconfirm/popconfirm.js +1 -1
  122. package/dist/components/popconfirm/popconfirm.vue.d.ts +2 -2
  123. package/dist/components/popover/popover.js +1 -1
  124. package/dist/components/progress/index.d.ts +4 -6
  125. package/dist/components/progress/index.js +1 -1
  126. package/dist/components/progress/progress-circle.js +1 -1
  127. package/dist/components/progress/progress-provider.js +1 -0
  128. package/dist/components/progress/progress-provider.vue.d.ts +8 -0
  129. package/dist/components/progress/progress.js +1 -1
  130. package/dist/components/progress/types.d.ts +3 -23
  131. package/dist/components/progress/variants.js +1 -1
  132. package/dist/components/radio-group/index.d.ts +3 -3
  133. package/dist/components/radio-group/index.js +1 -1
  134. package/dist/components/radio-group/radio-group.js +1 -1
  135. package/dist/components/radio-group/types.d.ts +5 -14
  136. package/dist/components/radio-group/variants.js +1 -1
  137. package/dist/components/segment/index.d.ts +2 -1
  138. package/dist/components/segment/segment.js +1 -1
  139. package/dist/components/segment/segment.vue.d.ts +6 -11
  140. package/dist/components/segment/types.d.ts +6 -16
  141. package/dist/components/select/index.d.ts +1 -1
  142. package/dist/components/select/select.js +1 -1
  143. package/dist/components/select/select.vue.d.ts +4 -30
  144. package/dist/components/select/types.d.ts +6 -74
  145. package/dist/components/select/variants.js +1 -1
  146. package/dist/components/slider/variants.js +1 -1
  147. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  148. package/dist/components/splitter/variants.js +1 -1
  149. package/dist/components/stepper/variants.js +1 -1
  150. package/dist/components/switch/variants.js +1 -1
  151. package/dist/components/table/hooks.js +1 -1
  152. package/dist/components/table/variants.js +1 -1
  153. package/dist/components/tabs/index.d.ts +3 -3
  154. package/dist/components/tabs/tabs.js +1 -1
  155. package/dist/components/tabs/tabs.vue.d.ts +6 -15
  156. package/dist/components/tabs/types.d.ts +8 -18
  157. package/dist/components/tabs/variants.js +1 -1
  158. package/dist/components/tags-input/variants.js +1 -1
  159. package/dist/components/textarea/variants.js +1 -1
  160. package/dist/components/toast/styles.js +0 -4
  161. package/dist/components/toast/toaster.js +1 -1
  162. package/dist/components/toast/toaster.vue.d.ts +0 -1
  163. package/dist/components/toast/variants.js +1 -1
  164. package/dist/components/toggle/variants.js +1 -1
  165. package/dist/components/toggle-group/toggle-group.js +1 -1
  166. package/dist/components/toggle-group/variants.js +1 -1
  167. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -1
  168. package/dist/constants/components.d.ts +3 -2
  169. package/dist/constants/components.js +1 -1
  170. package/dist/index.d.ts +134 -139
  171. package/dist/index.js +1 -1
  172. package/dist/styles.css +49 -32
  173. package/dist/theme/shared.js +1 -1
  174. package/package.json +15 -12
  175. package/dist/components/alert-dialog/alert-dialog-cancel.js +0 -1
  176. package/dist/components/alert-dialog/alert-dialog-cancel.vue.d.ts +0 -25
  177. package/dist/components/alert-dialog/alert-dialog-confirm.js +0 -1
  178. package/dist/components/alert-dialog/alert-dialog-confirm.vue.d.ts +0 -22
  179. package/dist/components/alert-dialog/alert-dialog.js +0 -1
  180. package/dist/components/alert-dialog/alert-dialog.vue.d.ts +0 -45
  181. package/dist/components/alert-dialog/context.d.ts +0 -5
  182. package/dist/components/alert-dialog/context.js +0 -1
  183. package/dist/components/alert-dialog/dialog-provider.js +0 -1
  184. package/dist/components/alert-dialog/index.d.ts +0 -7
  185. package/dist/components/alert-dialog/index.js +0 -1
  186. package/dist/components/alert-dialog/types.d.ts +0 -103
  187. package/dist/components/anchor/anchor-item.js +0 -1
  188. package/dist/components/anchor/context.js +0 -1
  189. package/dist/components/autocomplete/autocomplete-group-option.js +0 -1
  190. package/dist/components/autocomplete/autocomplete-option.js +0 -1
  191. package/dist/components/autocomplete/autocomplete-single-option.js +0 -1
  192. package/dist/components/autocomplete/context.js +0 -1
  193. package/dist/components/autocomplete/shared.js +0 -1
  194. package/dist/components/bottom-sheet/bottom-sheet-close.js +0 -1
  195. package/dist/components/bottom-sheet/bottom-sheet-close.vue.d.ts +0 -18
  196. package/dist/components/bottom-sheet/bottom-sheet.js +0 -1
  197. package/dist/components/bottom-sheet/bottom-sheet.vue.d.ts +0 -72
  198. package/dist/components/bottom-sheet/index.d.ts +0 -3
  199. package/dist/components/bottom-sheet/index.js +0 -1
  200. package/dist/components/bottom-sheet/types.d.ts +0 -31
  201. package/dist/components/bottom-sheet/variants.js +0 -1
  202. package/dist/components/breadcrumb/shared.js +0 -1
  203. package/dist/components/combobox/combobox-group-option.js +0 -1
  204. package/dist/components/combobox/combobox-option.js +0 -1
  205. package/dist/components/combobox/combobox-single-option.js +0 -1
  206. package/dist/components/combobox/shared.js +0 -1
  207. package/dist/components/command/command-group-option.js +0 -1
  208. package/dist/components/command/command-option.js +0 -1
  209. package/dist/components/command/command-single-option.js +0 -1
  210. package/dist/components/command/context.js +0 -1
  211. package/dist/components/command/shared.js +0 -1
  212. package/dist/components/dialog/dialog-close.js +0 -1
  213. package/dist/components/dialog/dialog-close.vue.d.ts +0 -18
  214. package/dist/components/dialog/dialog-pure.js +0 -1
  215. package/dist/components/dialog/dialog-pure.vue.d.ts +0 -47
  216. package/dist/components/drawer/drawer-close.js +0 -1
  217. package/dist/components/drawer/drawer-close.vue.d.ts +0 -18
  218. package/dist/components/progress/context.d.ts +0 -5
  219. package/dist/components/progress/context.js +0 -1
  220. package/dist/components/progress/loading-bar.js +0 -1
  221. package/dist/components/progress/loading-bar.vue.d.ts +0 -25
  222. package/dist/components/progress/shared.d.ts +0 -7
  223. package/dist/components/progress/shared.js +0 -1
  224. package/dist/components/select/select-group-option.js +0 -1
  225. package/dist/components/select/select-option.js +0 -1
  226. package/dist/components/select/select-single-option.js +0 -1
  227. package/dist/components/select/shared.js +0 -1
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`group flex items-center rounded-md border border-input bg-background transition-all-150`,`focus-within:outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:opacity-60 data-[readonly]:bg-muted/40`],input:[`flex-1 min-w-0 bg-transparent outline-none`,`placeholder:text-muted-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`]},variants:{size:{xs:{root:`h-6 px-1.5 text-2xs gap-1`},sm:{root:`h-7 px-2 text-xs gap-1.5`},md:{root:`h-8 px-2.5 text-sm gap-2`},lg:{root:`h-9 px-3 text-base gap-2.5`},xl:{root:`h-10 px-3.5 text-lg gap-3`},"2xl":{root:`h-12 px-4 text-xl gap-3.5`}}},defaultVariants:{size:`md`}});export{t as colorFieldVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`group flex items-center rounded-md border border-input bg-background transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:opacity-60 data-[readonly]:bg-muted/40`],input:[`flex-1 min-w-0 bg-transparent outline-none`,`placeholder:text-muted-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`]},variants:{size:{xs:{root:`h-6 px-1.5 text-2xs gap-1`},sm:{root:`h-7 px-2 text-xs gap-1.5`},md:{root:`h-8 px-2.5 text-sm gap-2`},lg:{root:`h-9 px-3 text-base gap-2.5`},xl:{root:`h-10 px-3.5 text-lg gap-3`},"2xl":{root:`h-12 px-4 text-xl gap-3.5`}}},defaultVariants:{size:`md`}});export{t as colorFieldVariants};
@@ -16,26 +16,26 @@ type __VLS_Slots = {} & {
16
16
  trigger?: (props: typeof __VLS_11) => any;
17
17
  };
18
18
  declare const __VLS_base: _$vue.DefineComponent<ColorPickerProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
19
- "update:open": (value: boolean) => any;
19
+ change: (value: string) => any;
20
20
  "update:modelValue": (value: string) => any;
21
21
  "update:color": (value: _$_soybeanjs_headless_shared0.NormalizedColor) => any;
22
22
  "update:format": (value: ColorFormat) => any;
23
- change: (value: string) => any;
23
+ "update:open": (value: boolean) => any;
24
24
  }, string, _$vue.PublicProps, Readonly<ColorPickerProps> & Readonly<{
25
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
25
+ onChange?: ((value: string) => any) | undefined;
26
26
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
27
27
  "onUpdate:color"?: ((value: _$_soybeanjs_headless_shared0.NormalizedColor) => any) | undefined;
28
28
  "onUpdate:format"?: ((value: ColorFormat) => any) | undefined;
29
- onChange?: ((value: string) => any) | undefined;
29
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
30
30
  }>, {
31
31
  disabled: boolean;
32
+ modelValue: string | ColorValue;
33
+ defaultValue: string | ColorValue;
32
34
  open: boolean;
33
35
  defaultOpen: boolean;
34
36
  modal: boolean;
35
37
  placement: _$_soybeanjs_headless0.Placement;
36
38
  showArrow: boolean;
37
- modelValue: string | ColorValue;
38
- defaultValue: string | ColorValue;
39
39
  format: ColorFormat;
40
40
  defaultFormat: ColorFormat;
41
41
  colorSpace: ColorSpace;
@@ -5,14 +5,14 @@ import * as _$_soybeanjs_headless_shared0 from "@soybeanjs/headless/shared";
5
5
 
6
6
  //#region src/components/color-slider/color-slider.vue.d.ts
7
7
  declare const __VLS_export: _$vue.DefineComponent<ColorSliderProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
8
+ change: (value: string) => any;
8
9
  "update:modelValue": (value: string) => any;
9
10
  "update:color": (value: _$_soybeanjs_headless_shared0.NormalizedColor) => any;
10
- change: (value: string) => any;
11
11
  changeEnd: (value: string) => any;
12
12
  }, string, _$vue.PublicProps, Readonly<ColorSliderProps> & Readonly<{
13
+ onChange?: ((value: string) => any) | undefined;
13
14
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
14
15
  "onUpdate:color"?: ((value: _$_soybeanjs_headless_shared0.NormalizedColor) => any) | undefined;
15
- onChange?: ((value: string) => any) | undefined;
16
16
  onChangeEnd?: ((value: string) => any) | undefined;
17
17
  }>, {
18
18
  size: ThemeSize;
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{colorSwatchPickerVariants as n}from"./variants.js";import{Fragment as r,computed as i,createBlock as a,createElementBlock as o,createElementVNode as s,createVNode as c,defineComponent as l,mergeProps as u,normalizeClass as d,openBlock as f,renderList as p,renderSlot as m,toHandlers as h,unref as g,withCtx as _}from"vue";import{useForwardListeners as v,useOmitProps as y}from"@soybeanjs/headless/composables";import{ColorSwatchPickerItem as b,ColorSwatchPickerItemIndicator as x,ColorSwatchPickerItemSwatch as S,ColorSwatchPickerRoot as C,provideColorSwatchPickerUi as w}from"@soybeanjs/headless";const T=l({name:`SColorSwatchPicker`,__name:`color-swatch-picker`,props:{class:{},size:{},ui:{},colors:{},shape:{default:`square`},itemProps:{},indicatorProps:{},swatchProps:{},asChild:{type:Boolean},as:{},orientation:{},dir:{},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},singleClearable:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`select`],setup(l,{emit:T}){let E=l,D=v(T),O=y(E,[`class`,`size`,`ui`,`colors`,`shape`,`itemProps`,`indicatorProps`,`swatchProps`]),k=i(()=>e(n({size:E.size,shape:E.shape}),E.ui,{root:E.class}));return w(k),(e,n)=>(f(),a(g(C),u(g(O),h(g(D))),{default:_(()=>[l.colors?.length?(f(!0),o(r,{key:0},p(l.colors,n=>(f(),a(g(b),u({key:n,value:n},{ref_for:!0},l.itemProps),{default:_(()=>[c(g(S),u({ref_for:!0},l.swatchProps),{default:_(()=>[s(`span`,{class:d(k.value.checker)},null,2),s(`span`,{class:d(k.value.fill)},null,2)]),_:1},16),c(g(x),u({ref_for:!0},l.indicatorProps),{default:_(()=>[m(e.$slots,`indicator`,{color:n},()=>[c(t,{icon:`lucide:check`})])]),_:2},1040)]),_:2},1040,[`value`]))),128)):m(e.$slots,`default`,{key:1})]),_:3},16))}});export{T as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{colorSwatchPickerVariants as n}from"./variants.js";import{Fragment as r,computed as i,createBlock as a,createElementBlock as o,createElementVNode as s,createVNode as c,defineComponent as l,mergeProps as u,normalizeClass as d,openBlock as f,renderList as p,renderSlot as m,toHandlers as h,unref as g,withCtx as _}from"vue";import{useForwardListeners as v,useOmitProps as y}from"@soybeanjs/headless/composables";import{ColorSwatchPickerItem as b,ColorSwatchPickerItemIndicator as x,ColorSwatchPickerItemSwatch as S,ColorSwatchPickerRoot as C,provideColorSwatchPickerUi as w}from"@soybeanjs/headless";const T=l({name:`SColorSwatchPicker`,__name:`color-swatch-picker`,props:{class:{},size:{},ui:{},colors:{},shape:{default:`square`},itemProps:{},indicatorProps:{},swatchProps:{},asChild:{type:Boolean},as:{},orientation:{},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},clearable:{type:Boolean},selectionBehavior:{},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`select`],setup(l,{emit:T}){let E=l,D=v(T),O=y(E,[`class`,`size`,`ui`,`colors`,`shape`,`itemProps`,`indicatorProps`,`swatchProps`]),k=i(()=>e(n({size:E.size,shape:E.shape}),E.ui,{root:E.class}));return w(k),(e,n)=>(f(),a(g(C),u(g(O),h(g(D))),{default:_(()=>[l.colors?.length?(f(!0),o(r,{key:0},p(l.colors,n=>(f(),a(g(b),u({key:n,value:n},{ref_for:!0},l.itemProps),{default:_(()=>[c(g(S),u({ref_for:!0},l.swatchProps),{default:_(()=>[s(`span`,{class:d(k.value.checker)},null,2),s(`span`,{class:d(k.value.fill)},null,2)]),_:1},16),c(g(x),u({ref_for:!0},l.indicatorProps),{default:_(()=>[m(e.$slots,`indicator`,{color:n},()=>[c(t,{icon:`lucide:check`})])]),_:2},1040)]),_:2},1040,[`value`]))),128)):m(e.$slots,`default`,{key:1})]),_:3},16))}});export{T as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{getSelectedLabels as n}from"./shared.js";import r from"./combobox-option.js";import{comboboxVariants as i}from"./variants.js";import{Fragment as a,computed as o,createBlock as s,createElementBlock as c,createElementVNode as l,createTextVNode 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,toDisplayString as b,toHandlers as x,unref as S,withCtx as C}from"vue";import{useForwardListeners as w,useOmitProps as T}from"@soybeanjs/headless/composables";import{ComboboxContent as E,ComboboxEmpty as D,ComboboxInput as O,ComboboxPortal as k,ComboboxRoot as A,ComboboxTrigger as j,ComboboxViewport as M,provideComboboxUi as N}from"@soybeanjs/headless";const P={class:`grow truncate text-left`},F=f({name:`SCombobox`,__name:`combobox`,props:{class:{},size:{},ui:{},items:{},placeholder:{},searchPlaceholder:{},emptyLabel:{default:`No results found.`},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},inputProps:{},emptyProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!1},dir:{},ignoreFilter:{type:Boolean},resetSearchTermOnBlur:{type:Boolean},resetSearchTermOnSelect:{type:Boolean},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},singleClearable:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`select`],setup(f,{emit:F}){let I=f,L=F,R=T(I,[`class`,`size`,`ui`,`items`,`placeholder`,`searchPlaceholder`,`emptyLabel`,`triggerProps`,`portalProps`,`contentProps`,`viewportProps`,`inputProps`,`emptyProps`,`groupProps`,`groupLabelProps`,`itemProps`,`itemIndicatorProps`,`separatorProps`]),z=w(L),B=o(()=>e(i({size:I.size}),I.ui,{trigger:I.class})),V=o(()=>n(I.modelValue,I.items)),H=o(()=>V.value.length?V.value.join(`, `):I.placeholder),U=o(()=>({...I.inputProps,controlProps:{...I.inputProps?.controlProps,"aria-label":I.inputProps?.controlProps?.[`aria-label`]??I.searchPlaceholder??I.placeholder??`Search`},placeholder:I.searchPlaceholder??I.inputProps?.placeholder,autofocus:I.inputProps?.autofocus??!0})),W=o(()=>({...I.viewportProps,"aria-label":I.viewportProps?.[`aria-label`]??I.placeholder??`Options`})),G=o(()=>({...I.triggerProps,"aria-label":I.triggerProps?.[`aria-label`]??H.value,"data-placeholder":V.value.length?void 0:``}));return N(B),(e,n)=>(_(),s(S(A),m(S(R),x(S(z))),{default:C(()=>[d(S(j),g(p(G.value)),{default:C(()=>[y(e.$slots,`trigger-leading`),y(e.$slots,`trigger-value`,{modelValue:f.modelValue,selectedLabels:V.value,slotText:H.value},()=>[l(`span`,P,b(H.value),1)]),y(e.$slots,`trigger-trailing`),y(e.$slots,`trigger-icon`,{},()=>[d(t,{icon:`lucide:chevrons-up-down`,class:h(B.value.triggerIcon),"aria-hidden":!0},null,8,[`class`])])]),_:3},16),d(S(k),g(p(f.portalProps)),{default:C(()=>[d(S(E),m(f.contentProps,{onCloseAutoFocus:n[1]||=e=>L(`closeAutoFocus`,e),onEscapeKeyDown:n[2]||=e=>L(`escapeKeyDown`,e),onPointerDownOutside:n[3]||=e=>L(`pointerDownOutside`,e),onFocusOutside:n[4]||=e=>L(`focusOutside`,e),onInteractOutside:n[5]||=e=>L(`interactOutside`,e)}),{default:C(()=>[d(S(O),g(p(U.value)),{leading:C(n=>[y(e.$slots,`input-leading`,g(p(n)),()=>[d(t,{icon:`lucide:search`,class:`mr-2 shrink-0 opacity-50`,"aria-hidden":!0})])]),trailing:C(t=>[y(e.$slots,`input-trailing`,g(p(t)))]),_:3},16),d(S(D),g(p(f.emptyProps)),{default:C(()=>[y(e.$slots,`empty`,{},()=>[u(b(f.emptyLabel),1)])]),_:3},16),d(S(M),g(p(W.value)),{default:C(()=>[(_(!0),c(a,null,v(f.items,t=>(_(),s(r,{key:`items`in t?`group-${t.label}`:t.value,item:t,"group-props":f.groupProps,"group-label-props":f.groupLabelProps,"item-props":f.itemProps,"item-indicator-props":f.itemIndicatorProps,"separator-props":f.separatorProps,onItemSelect:n[0]||=e=>L(`select`,e)},{"group-label":C(t=>[y(e.$slots,`group-label`,m({ref_for:!0},t))]),"item-leading":C(t=>[y(e.$slots,`item-leading`,m({ref_for:!0},t))]),"item-text":C(t=>[y(e.$slots,`item-text`,m({ref_for:!0},t))]),"item-trailing":C(t=>[y(e.$slots,`item-trailing`,m({ref_for:!0},t))]),"item-indicator":C(t=>[y(e.$slots,`item-indicator`,m({ref_for:!0},t))]),_:3},8,[`item`,`group-props`,`group-label-props`,`item-props`,`item-indicator-props`,`separator-props`]))),128))]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16))}});export{F as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{comboboxVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{ComboboxCompact as y,provideComboboxUi as b}from"@soybeanjs/headless";import{keysOf as x}from"@soybeanjs/utils";const S=o({name:`SCombobox`,__name:`combobox`,props:{class:{},size:{},ui:{},items:{},placeholder:{},searchPlaceholder:{},clearLabel:{},emptyLabel:{},anchorProps:{},triggerProps:{},cancelProps:{},portalProps:{},contentProps:{},viewportProps:{},inputProps:{},emptyProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},resetSearchTermOnBlur:{type:Boolean},resetSearchTermOnSelect:{type:Boolean},openOnFocus:{type:Boolean},openOnClick:{type:Boolean},ignoreFilter:{type:Boolean},resetModelValueOnClear:{type:Boolean},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},clearable:{type:Boolean,default:!0},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`placed`,`select`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>x(T));return b(n(()=>e(t({size:C.size}),C.ui,{trigger:C.class}))),(e,t)=>(u(),r(m(y),c(m(E),p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-expect-error ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
@@ -1,4 +1,4 @@
1
- import { ComboboxGroupOptionData, ComboboxProps, ComboboxSingleOptionData } from "./types.js";
1
+ import { ComboboxProps, ComboboxSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
  import * as _$_soybeanjs_headless_composables0 from "@soybeanjs/headless/composables";
4
4
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
@@ -7,6 +7,7 @@ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
7
7
  declare const __VLS_export: <M extends boolean = false>(__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
8
  props: _$vue.PublicProps & __VLS_PrettifyLocal<ComboboxProps<M> & {
9
9
  onSelect?: ((event: _$_soybeanjs_headless0.SelectEvent<string>) => any) | undefined;
10
+ "onUpdate:modelValue"?: ((value: M extends true ? string[] : string) => any) | undefined;
10
11
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
12
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
12
13
  onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
@@ -14,59 +15,15 @@ declare const __VLS_export: <M extends boolean = false>(__VLS_props: NonNullable
14
15
  onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
15
16
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
16
17
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
- "onUpdate:modelValue"?: ((value: M extends true ? string[] : string) => any) | undefined;
18
- onEntryFocus?: ((event: CustomEvent<any>) => any) | undefined;
19
18
  onHighlight?: ((payload?: _$_soybeanjs_headless_composables0.CollectionItemData<_$_soybeanjs_headless0.ListboxCollectionItemData> | undefined) => any) | undefined;
20
- onLeave?: ((event: Event) => any) | undefined;
19
+ onPlaced?: (() => any) | undefined;
21
20
  }> & (typeof globalThis extends {
22
21
  __VLS_PROPS_FALLBACK: infer P;
23
22
  } ? P : {});
24
23
  expose: (exposed: {}) => void;
25
24
  attrs: any;
26
- slots: {
27
- 'trigger-leading'?: (props: {}) => any;
28
- } & {
29
- 'trigger-value'?: (props: {
30
- modelValue: (M extends true ? string[] : string) | undefined;
31
- selectedLabels: string[];
32
- slotText: string | undefined;
33
- }) => any;
34
- } & {
35
- 'trigger-trailing'?: (props: {}) => any;
36
- } & {
37
- 'trigger-icon'?: (props: {}) => any;
38
- } & {
39
- 'input-leading'?: (props: {
40
- clear: () => void;
41
- }) => any;
42
- } & {
43
- 'input-trailing'?: (props: {
44
- clear: () => void;
45
- }) => any;
46
- } & {
47
- empty?: (props: {}) => any;
48
- } & {
49
- 'group-label'?: (props: {
50
- item: ComboboxGroupOptionData;
51
- }) => any;
52
- } & {
53
- 'item-leading'?: (props: {
54
- item: ComboboxSingleOptionData;
55
- }) => any;
56
- } & {
57
- 'item-text'?: (props: {
58
- item: ComboboxSingleOptionData;
59
- }) => any;
60
- } & {
61
- 'item-trailing'?: (props: {
62
- item: ComboboxSingleOptionData;
63
- }) => any;
64
- } & {
65
- 'item-indicator'?: (props: {
66
- item: ComboboxSingleOptionData;
67
- }) => any;
68
- };
69
- emit: ((evt: "select", event: _$_soybeanjs_headless0.SelectEvent<string>) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "update:modelValue", value: M extends true ? string[] : string) => void) & ((evt: "entryFocus", event: CustomEvent<any>) => void) & ((evt: "highlight", payload?: _$_soybeanjs_headless_composables0.CollectionItemData<_$_soybeanjs_headless0.ListboxCollectionItemData> | undefined) => void) & ((evt: "leave", event: Event) => void);
25
+ slots: ComboboxSlots<M>;
26
+ emit: ((evt: "select", event: _$_soybeanjs_headless0.SelectEvent<string>) => void) & ((evt: "update:modelValue", value: M extends true ? string[] : string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "highlight", payload?: _$_soybeanjs_headless_composables0.CollectionItemData<_$_soybeanjs_headless0.ListboxCollectionItemData> | undefined) => void) & ((evt: "placed") => void);
70
27
  }>) => _$vue.VNode & {
71
28
  __ctx?: Awaited<typeof __VLS_setup>;
72
29
  };
@@ -1,4 +1,4 @@
1
- import { ComboboxEmits, ComboboxGroupOptionData, ComboboxGroupOptionEmits, ComboboxGroupOptionProps, ComboboxOptionData, ComboboxOptionEmits, ComboboxOptionProps, ComboboxProps, ComboboxSingleOptionData, ComboboxSingleOptionEmits, ComboboxSingleOptionProps } from "./types.js";
1
+ import { ComboboxEmits, ComboboxProps, ComboboxSlots } from "./types.js";
2
2
  import { _default } from "./combobox.vue.js";
3
- import { ComboboxContentEmits, ComboboxContentProps, ComboboxEmptyProps, ComboboxGroupLabelProps, ComboboxGroupProps, ComboboxInputEmits, ComboboxInputProps, ComboboxItemEmits, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxPortalProps, ComboboxRootEmits, ComboboxRootProps, ComboboxSeparatorProps, ComboboxTriggerProps, ComboboxUi, ComboboxUiSlot, ComboboxViewportProps } from "@soybeanjs/headless/combobox";
4
- export { type ComboboxContentEmits, type ComboboxContentProps, type ComboboxEmptyProps, type ComboboxGroupLabelProps, type ComboboxGroupProps, type ComboboxInputEmits, type ComboboxInputProps, type ComboboxItemEmits, type ComboboxItemIndicatorProps, type ComboboxItemProps, type ComboboxPortalProps, type ComboboxRootEmits, type ComboboxRootProps, type ComboboxSeparatorProps, type ComboboxTriggerProps, type ComboboxUi, type ComboboxUiSlot, type ComboboxViewportProps };
3
+ import { ComboboxAnchorProps, ComboboxCancelProps, ComboboxCompactEmits as ComboboxCompactEmits$1, ComboboxCompactProps as ComboboxCompactProps$1, ComboboxCompactSlots as ComboboxCompactSlots$1, ComboboxContentEmits, ComboboxContentProps, ComboboxEmptyProps, ComboboxGroupLabelProps, ComboboxGroupOptionData, ComboboxGroupProps, ComboboxInputEmits, ComboboxInputProps, ComboboxItemEmits, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxOptionData, ComboboxPortalProps, ComboboxRootEmits, ComboboxRootProps, ComboboxSeparatorProps, ComboboxSingleOptionData, ComboboxTriggerProps, ComboboxUi as ComboboxUi$1, ComboboxUiSlot, ComboboxViewportProps, ComboboxVirtualizerProps } from "@soybeanjs/headless/combobox";
4
+ export { type ComboboxAnchorProps, type ComboboxCancelProps, type ComboboxCompactEmits$1 as ComboboxCompactEmits, type ComboboxCompactProps$1 as ComboboxCompactProps, type ComboboxCompactSlots$1 as ComboboxCompactSlots, type ComboboxContentEmits, type ComboboxContentProps, type ComboboxEmptyProps, type ComboboxGroupLabelProps, type ComboboxGroupOptionData, type ComboboxGroupProps, type ComboboxInputEmits, type ComboboxInputProps, type ComboboxItemEmits, type ComboboxItemIndicatorProps, type ComboboxItemProps, type ComboboxOptionData, type ComboboxPortalProps, type ComboboxRootEmits, type ComboboxRootProps, type ComboboxSeparatorProps, type ComboboxSingleOptionData, type ComboboxTriggerProps, type ComboboxUi$1 as ComboboxUi, type ComboboxUiSlot, type ComboboxViewportProps, type ComboboxVirtualizerProps };
@@ -1,68 +1,14 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { IconValue } from "../icon/types.js";
3
- import { HTMLAttributes } from "vue";
4
- import { ClassValue, ComboboxContentEmits, ComboboxContentProps, ComboboxEmptyProps, ComboboxGroupLabelProps, ComboboxGroupProps, ComboboxInputProps, ComboboxItemEmits, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxPortalProps, ComboboxRootEmits, ComboboxRootProps, ComboboxSeparatorProps, ComboboxTriggerProps, ComboboxUi, ComboboxViewportProps } from "@soybeanjs/headless";
2
+ import { ClassValue } from "@soybeanjs/headless";
3
+ import { ComboboxCompactEmits, ComboboxCompactProps, ComboboxCompactSlots, ComboboxUi } from "@soybeanjs/headless/combobox";
5
4
 
6
5
  //#region src/components/combobox/types.d.ts
7
- interface ComboboxSingleOptionData extends Pick<ComboboxItemProps, 'disabled' | 'textValue'> {
8
- value: string;
9
- icon?: IconValue;
10
- label: string;
11
- separator?: boolean;
12
- }
13
- interface ComboboxGroupOptionData extends Pick<ComboboxSingleOptionData, 'label' | 'separator'> {
14
- items: ComboboxSingleOptionData[];
15
- }
16
- type ComboboxOptionData = ComboboxSingleOptionData | ComboboxGroupOptionData;
17
- interface ComboboxSingleOptionProps extends /** @vue-ignore */Omit<HTMLAttributes, 'onSelect'> {
18
- item: ComboboxSingleOptionData;
19
- itemIndicatorProps?: ComboboxItemIndicatorProps;
20
- separatorProps?: ComboboxSeparatorProps;
21
- }
22
- type ComboboxSingleOptionEmits = {
23
- itemSelect: [event: ComboboxItemEmits['select'][0]];
24
- };
25
- interface ComboboxGroupOptionProps extends ComboboxGroupProps {
26
- item: ComboboxGroupOptionData;
27
- groupLabelProps?: ComboboxGroupLabelProps;
28
- itemProps?: ComboboxItemProps;
29
- itemIndicatorProps?: ComboboxItemIndicatorProps;
30
- separatorProps?: ComboboxSeparatorProps;
31
- }
32
- type ComboboxGroupOptionEmits = {
33
- itemSelect: [event: ComboboxItemEmits['select'][0]];
34
- };
35
- interface ComboboxOptionProps extends /** @vue-ignore */Omit<HTMLAttributes, 'onSelect'> {
36
- item: ComboboxOptionData;
37
- groupProps?: ComboboxGroupProps;
38
- groupLabelProps?: ComboboxGroupLabelProps;
39
- itemProps?: ComboboxItemProps;
40
- itemIndicatorProps?: ComboboxItemIndicatorProps;
41
- separatorProps?: ComboboxSeparatorProps;
42
- }
43
- type ComboboxOptionEmits = {
44
- itemSelect: [event: ComboboxItemEmits['select'][0]];
45
- };
46
- interface ComboboxProps<M extends boolean = false> extends ComboboxRootProps<M> {
6
+ interface ComboboxProps<M extends boolean = false> extends ComboboxCompactProps<M> {
47
7
  class?: ClassValue;
48
8
  size?: ThemeSize;
49
9
  ui?: Partial<ComboboxUi>;
50
- items: ComboboxOptionData[];
51
- placeholder?: string;
52
- searchPlaceholder?: string;
53
- emptyLabel?: string;
54
- triggerProps?: ComboboxTriggerProps;
55
- portalProps?: ComboboxPortalProps;
56
- contentProps?: ComboboxContentProps;
57
- viewportProps?: ComboboxViewportProps;
58
- inputProps?: ComboboxInputProps;
59
- emptyProps?: ComboboxEmptyProps;
60
- groupProps?: ComboboxGroupProps;
61
- groupLabelProps?: ComboboxGroupLabelProps;
62
- itemProps?: ComboboxItemProps;
63
- itemIndicatorProps?: ComboboxItemIndicatorProps;
64
- separatorProps?: ComboboxSeparatorProps;
65
10
  }
66
- type ComboboxEmits<M extends boolean = false> = ComboboxRootEmits<M> & ComboboxContentEmits & ComboboxItemEmits;
11
+ type ComboboxEmits<M extends boolean = false> = ComboboxCompactEmits<M>;
12
+ type ComboboxSlots<M extends boolean = false> = ComboboxCompactSlots<M>;
67
13
  //#endregion
68
- export { ComboboxEmits, ComboboxGroupOptionData, ComboboxGroupOptionEmits, ComboboxGroupOptionProps, ComboboxOptionData, ComboboxOptionEmits, ComboboxOptionProps, ComboboxProps, ComboboxSingleOptionData, ComboboxSingleOptionEmits, ComboboxSingleOptionProps };
14
+ export { ComboboxEmits, ComboboxProps, ComboboxSlots };
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{trigger:[`flex w-full items-center justify-between rounded-md border border-input bg-background transition-all-150`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30 focus:ring-3 focus:ring-offset-background focus:ring-primary/30 disabled:pointer-events-none disabled:opacity-50`,`data-[placeholder]:text-muted-foreground`],triggerIcon:`shrink-0 text-muted-foreground opacity-70`,positioner:``,popup:[`relative z-50 min-w-32 rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`overflow-x-hidden overflow-y-auto`,inputRoot:`group flex items-center border-b`,inputControl:`flex w-full rounded-md bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,group:`overflow-hidden text-foreground`,groupLabel:`font-medium text-muted-foreground`,item:[`relative flex w-full cursor-default select-none items-center rounded-sm outline-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],itemIndicator:`ml-auto shrink-0 text-muted-foreground`,empty:`py-4 text-center text-sm text-muted-foreground`,separator:`h-px bg-muted`},variants:{size:{xs:{trigger:`h-6 gap-1 px-1.5 text-2xs`,triggerIcon:`text-3xs`,popup:`w-[--soybean-combobox-trigger-width] text-2xs`,inputRoot:`px-1.5 py-0.5`,inputControl:`h-6`,viewport:`max-h-70 p-0.75`,groupLabel:`p-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.375`},sm:{trigger:`h-7 gap-1.5 px-2 text-xs`,triggerIcon:`text-2xs`,popup:`w-[--soybean-combobox-trigger-width] text-xs`,inputRoot:`px-2 py-0.625`,inputControl:`h-7`,viewport:`max-h-75 p-0.875`,groupLabel:`p-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1`,separator:`-mx-0.875 my-0.4375`},md:{trigger:`h-8 gap-2 px-2.5 text-sm`,triggerIcon:`text-xs`,popup:`w-[--soybean-combobox-trigger-width] text-sm`,inputRoot:`px-2.5 py-0.75`,inputControl:`h-8`,viewport:`max-h-80 p-1`,groupLabel:`p-1.75 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-0.5`},lg:{trigger:`h-9 gap-2.5 px-3 text-base`,triggerIcon:`text-sm`,popup:`w-[--soybean-combobox-trigger-width] text-base`,inputRoot:`px-3 py-0.875`,inputControl:`h-9`,viewport:`max-h-90 p-1.25`,groupLabel:`p-2 text-sm`,item:`gap-2.5 px-2.5 py-1.5`,separator:`-mx-1.25 my-0.625`},xl:{trigger:`h-10 gap-3 px-3.5 text-lg`,triggerIcon:`text-base`,popup:`w-[--soybean-combobox-trigger-width] text-lg`,inputRoot:`px-3.5 py-1`,inputControl:`h-10`,viewport:`max-h-100 p-1.5`,groupLabel:`p-2.5 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-0.75`},"2xl":{trigger:`h-12 gap-3.5 px-4 text-xl`,triggerIcon:`text-lg`,popup:`w-[--soybean-combobox-trigger-width] text-xl`,inputRoot:`px-4 py-1.25`,inputControl:`h-12`,viewport:`max-h-115 p-1.75`,groupLabel:`p-3 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-0.875`}}},defaultVariants:{size:`md`}});export{t as comboboxVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{anchor:``,trigger:[`flex w-full items-center justify-between rounded-md border border-input bg-background transition-all-150`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30 focus:ring-3 focus:ring-offset-background focus:ring-primary/30 disabled:pointer-events-none disabled:opacity-50`,`data-[placeholder]:text-muted-foreground`],triggerIcon:`shrink-0 text-muted-foreground opacity-70`,cancel:[`flex shrink-0 items-center justify-center rounded-md bg-transparent text-accent-foreground hover:bg-accent-foreground/10 active:bg-accent-foreground/20`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-accent-foreground/20`,`disabled:cursor-not-allowed disabled:opacity-40`],positioner:``,popup:[`relative z-50 min-w-32 w-[--soybean-combobox-trigger-width] rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],arrow:`fill-popover`,viewport:`overflow-x-hidden overflow-y-auto`,inputRoot:`group flex items-center border-b`,inputControl:`flex w-full rounded-md bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,group:`overflow-hidden text-foreground`,groupLabel:`font-medium text-muted-foreground`,item:[`relative flex w-full cursor-default select-none items-center rounded-sm outline-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],itemIndicator:`ms-auto shrink-0 text-muted-foreground`,empty:`py-4 text-center text-sm text-muted-foreground`,separator:`h-px bg-muted`},variants:{size:{xs:{trigger:`h-6 gap-1 px-1.5 text-2xs`,triggerIcon:`text-3xs`,popup:`text-2xs`,cancel:`p-0.75`,inputRoot:`px-1.5 py-0.5`,inputControl:`h-6`,viewport:`max-h-70 p-0.75`,groupLabel:`p-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.375`},sm:{trigger:`h-7 gap-1.5 px-2 text-xs`,triggerIcon:`text-2xs`,popup:`text-xs`,cancel:`p-0.875`,inputRoot:`px-2 py-0.625`,inputControl:`h-7`,viewport:`max-h-75 p-0.875`,groupLabel:`p-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1`,separator:`-mx-0.875 my-0.4375`},md:{trigger:`h-8 gap-2 px-2.5 text-sm`,triggerIcon:`text-xs`,popup:`text-sm`,cancel:`p-1`,inputRoot:`px-2.5 py-0.75`,inputControl:`h-8`,viewport:`max-h-80 p-1`,groupLabel:`p-1.75 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-0.5`},lg:{trigger:`h-9 gap-2.5 px-3 text-base`,triggerIcon:`text-sm`,popup:`text-base`,cancel:`p-1.25`,inputRoot:`px-3 py-0.875`,inputControl:`h-9`,viewport:`max-h-90 p-1.25`,groupLabel:`p-2 text-sm`,item:`gap-2.5 px-2.5 py-1.5`,separator:`-mx-1.25 my-0.625`},xl:{trigger:`h-10 gap-3 px-3.5 text-lg`,triggerIcon:`text-base`,popup:`text-lg`,cancel:`p-1.5`,inputRoot:`px-3.5 py-1`,inputControl:`h-10`,viewport:`max-h-100 p-1.5`,groupLabel:`p-2.5 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-0.75`},"2xl":{trigger:`h-12 gap-3.5 px-4 text-xl`,triggerIcon:`text-lg`,popup:`text-xl`,cancel:`p-1.75`,inputRoot:`px-4 py-1.25`,inputControl:`h-12`,viewport:`max-h-115 p-1.75`,groupLabel:`p-3 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-0.875`}}},defaultVariants:{size:`md`}});export{t as comboboxVariants};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{provideCommandExtraUi as n}from"./context.js";import{commandVariants as r}from"./variants.js";import i from"./command-option.js";import{getCommandHighlightSearchOption as a,getCommandItemOptions as o,getCommandSearchOptions as s}from"./shared.js";import{Fragment as c,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createTextVNode as p,createVNode as m,defineComponent as h,guardReactiveProps as g,isRef as _,mergeProps as v,normalizeClass as y,normalizeProps as b,openBlock as x,renderList as S,renderSlot as C,toDisplayString as w,toHandlers as T,unref as E,withCtx as D}from"vue";import{useControllableState as O,useForwardListeners as k,useOmitProps as A,usePickProps as j}from"@soybeanjs/headless/composables";import{ListboxContent as M,ListboxFilter as N,ListboxRoot as P,provideListboxUi as F}from"@soybeanjs/headless";import{useFuse as I}from"@vueuse/integrations/useFuse";import{defu as L}from"defu";const R=h({name:`SCommand`,__name:`command`,props:{class:{},size:{},ui:{},items:{},placeholder:{},searchTerm:{},clearable:{type:Boolean},fuseOptions:{},listProps:{},itemProps:{},itemLabelProps:{},groupProps:{},groupLabelProps:{},shortcutProps:{},separatorProps:{},inputProps:{},emptyProps:{},emptyLabel:{},orientation:{},dir:{},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},singleClearable:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`select`,`update:searchTerm`],setup(h,{emit:R}){let z=h,B=R,V=A(z,[`class`,`size`,`ui`,`items`,`placeholder`,`searchTerm`,`fuseOptions`,`emptyLabel`,`listProps`,`itemProps`,`itemLabelProps`,`groupProps`,`groupLabelProps`,`shortcutProps`,`separatorProps`,`inputProps`,`emptyProps`]),H=k(B),U=j(z,[`itemProps`,`itemLabelProps`,`groupProps`,`groupLabelProps`,`shortcutProps`,`separatorProps`]),W=O(()=>z.searchTerm,e=>{B(`update:searchTerm`,e)},z.inputProps?.defaultValue||``),G=l(()=>L(z.fuseOptions,{fuseOptions:{ignoreLocation:!0,threshold:.1,keys:[`label`,`groupLabel`]},resultLimit:12,matchAllWhenSearchEmpty:!0})),{results:K}=I(W,l(()=>s(z.items)),G),q=l(()=>o(K.value.map(e=>a(e.item,W.value)))),J=l(()=>e(r({size:z.size}),z.ui,{root:z.class})),Y=l(()=>({...J.value,content:J.value.list,filterRoot:J.value.inputRoot,filterControl:J.value.inputControl,itemIndicator:``,virtualizer:``})),X=l(()=>({...z.inputProps,placeholder:z.placeholder??z.inputProps?.placeholder}));return F(Y),n(J),(e,n)=>(x(),u(E(P),v(E(V),T(E(H))),{default:D(()=>[m(E(N),v(X.value,{modelValue:E(W),"onUpdate:modelValue":n[0]||=e=>_(W)?W.value=e:null,autofocus:``}),{leading:D(()=>[C(e.$slots,`input-leading`,{},()=>[m(t,{icon:`lucide:search`,class:y(J.value.inputIcon)},null,8,[`class`])])]),trailing:D(({clear:n})=>[h.clearable?(x(),u(t,{key:0,icon:`lucide:x`,class:y(J.value.inputClearable),onClick:n},null,8,[`class`,`onClick`])):d(`v-if`,!0),C(e.$slots,`input-trailing`)]),_:3},16,[`modelValue`]),m(E(M),b(g(h.listProps)),{default:D(()=>[q.value.length?d(`v-if`,!0):(x(),f(`div`,{key:0,class:y(J.value.empty)},[C(e.$slots,`empty`,{},()=>[p(w(h.emptyLabel),1)])],2)),(x(!0),f(c,null,S(q.value,(t,r)=>(x(),u(i,v({ref_for:!0},E(U),{key:r,item:t,onSelect:n[1]||=e=>B(`select`,e)}),{"item-leading":D(t=>[C(e.$slots,`item-leading`,{item:t.item})]),"item-trailing":D(t=>[C(e.$slots,`item-trailing`,{item:t.item})]),"item-label":D(t=>[C(e.$slots,`item-label`,{item:t.item})]),_:2},1040,[`item`]))),128))]),_:3},16),C(e.$slots,`bottom`)]),_:3},16))}});export{R as default};
1
+ import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import"../../theme/index.js";import{kbdVariants as n}from"../kbd/variants.js";import{commandVariants as r}from"./variants.js";import{computed as i,createBlock as a,createCommentVNode as o,createSlots as s,defineComponent as c,guardReactiveProps as l,mergeProps as u,normalizeProps as d,openBlock as f,renderList as p,renderSlot as m,toHandlers as h,unref as g,useSlots as _,withCtx as v}from"vue";import{useForwardListeners as y,useOmitProps as b}from"@soybeanjs/headless/composables";import{CommandCompact as x,provideCommandUi as S}from"@soybeanjs/headless";import{keysOf as C}from"@soybeanjs/utils";const w=c({name:`SCommand`,__name:`command`,props:{class:{},size:{},ui:{},items:{},placeholder:{},searchTerm:{},clearable:{type:Boolean},fuseOptions:{},listProps:{},itemProps:{},itemLabelProps:{},groupProps:{},groupLabelProps:{},shortcutProps:{},separatorProps:{},inputProps:{},emptyProps:{},emptyLabel:{},orientation:{},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},selectionBehavior:{},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`select`,`update:searchTerm`],setup(c,{emit:w}){let T=c,E=w,D=_(),O=b(T,[`class`,`size`,`ui`]),k=y(E),A=i(()=>C(D));return S(i(()=>t(e(r({size:T.size}),{shortcut:n({size:T.size})}),T.ui,{root:T.class}))),(e,t)=>(f(),a(g(x),u(g(O),{items:c.items},h(g(k))),s({_:2},[p(A.value,t=>({name:t,fn:v(n=>[o(` @vue-ignore ignore vue slot props type `),m(e.$slots,t,d(l(n)))])}))]),1040,[`items`]))}});export{w as default};
@@ -1,10 +1,10 @@
1
- import { CommandBaseOptionData, CommandProps } from "./types.js";
1
+ import { CommandProps, CommandSingleOptionData, CommandSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
  import * as _$_soybeanjs_headless_composables0 from "@soybeanjs/headless/composables";
4
4
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
5
 
6
6
  //#region src/components/command/command.vue.d.ts
7
- declare const __VLS_export: <T extends CommandBaseOptionData = CommandBaseOptionData>(__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
+ declare const __VLS_export: <T extends CommandSingleOptionData = CommandSingleOptionData>(__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
8
  props: _$vue.PublicProps & __VLS_PrettifyLocal<CommandProps<T> & {
9
9
  onSelect?: ((event: _$_soybeanjs_headless0.SelectEvent<string>) => any) | undefined;
10
10
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
@@ -17,27 +17,7 @@ declare const __VLS_export: <T extends CommandBaseOptionData = CommandBaseOption
17
17
  } ? P : {});
18
18
  expose: (exposed: {}) => void;
19
19
  attrs: any;
20
- slots: {
21
- 'input-leading'?: (props: {}) => any;
22
- } & {
23
- 'input-trailing'?: (props: {}) => any;
24
- } & {
25
- empty?: (props: {}) => any;
26
- } & {
27
- 'item-leading'?: (props: {
28
- item: CommandBaseOptionData;
29
- }) => any;
30
- } & {
31
- 'item-trailing'?: (props: {
32
- item: CommandBaseOptionData;
33
- }) => any;
34
- } & {
35
- 'item-label'?: (props: {
36
- item: CommandBaseOptionData;
37
- }) => any;
38
- } & {
39
- bottom?: (props: {}) => any;
40
- };
20
+ slots: CommandSlots<T>;
41
21
  emit: ((evt: "select", event: _$_soybeanjs_headless0.SelectEvent<string>) => void) & ((evt: "update:modelValue", value: string) => void) & ((evt: "entryFocus", event: CustomEvent<any>) => void) & ((evt: "highlight", payload?: _$_soybeanjs_headless_composables0.CollectionItemData<_$_soybeanjs_headless0.ListboxCollectionItemData> | undefined) => void) & ((evt: "leave", event: Event) => void) & ((evt: "update:searchTerm", value: string) => void);
42
22
  }>) => _$vue.VNode & {
43
23
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,2 +1,4 @@
1
- import { CommandBaseOptionData, CommandEmits, CommandEmptyProps, CommandExtraUi, CommandExtraUiSlot, CommandGroupLabelProps, CommandGroupOptionEmits, CommandGroupOptionProps, CommandGroupProps, CommandHighlightSearchOptionData, CommandInputProps, CommandItemEmits, CommandItemLabelProps, CommandItemProps, CommandListProps, CommandOptionData, CommandOptionEmits, CommandOptionProps, CommandProps, CommandRootEmits, CommandRootProps, CommandSearchOptionData, CommandSearchTermEmits, CommandSeparatorProps, CommandShortcutProps, CommandSingleOptionEmits, CommandSingleOptionProps, CommandUi, CommandUiSlot } from "./types.js";
2
- import { _default } from "./command.vue.js";
1
+ import { CommandEmits, CommandGroupOptionData, CommandOptionData, CommandProps, CommandSearchOptionData, CommandSingleOptionData as CommandSingleOptionData$1, CommandSlots, CommandUi, HeadlessCommandUi } from "./types.js";
2
+ import { _default } from "./command.vue.js";
3
+ import { CommandEmptyProps, CommandGroupLabelProps, CommandGroupProps, CommandInputProps, CommandItemEmits, CommandItemLabelProps, CommandItemProps, CommandListProps, CommandRootEmits, CommandRootProps, CommandSeparatorProps, CommandShortcutProps } from "@soybeanjs/headless/command";
4
+ export { type CommandEmptyProps, type CommandGroupLabelProps, type CommandGroupProps, type CommandInputProps, type CommandItemEmits, type CommandItemLabelProps, type CommandItemProps, type CommandListProps, type CommandRootEmits, type CommandRootProps, type CommandSeparatorProps, type CommandShortcutProps };
@@ -1,98 +1,16 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { IconValue } from "../icon/types.js";
3
- import { HTMLAttributes } from "vue";
4
- import { ClassValue, KbdProps, KbdValue, ListboxContentProps as CommandListProps, ListboxFilterProps as CommandInputProps, ListboxGroupLabelProps as CommandGroupLabelProps, ListboxGroupProps as CommandGroupProps, ListboxItemEmits as CommandItemEmits, ListboxItemProps as CommandItemProps, ListboxRootEmits as CommandRootEmits, ListboxRootProps as CommandRootProps, ListboxUiSlot, SeparatorRootProps, UiClass } from "@soybeanjs/headless";
5
- import { UseFuseOptions } from "@vueuse/integrations/useFuse";
2
+ import { ClassValue } from "@soybeanjs/headless";
3
+ import { CommandCompactEmits, CommandCompactProps, CommandCompactSlots, CommandGroupOptionData, CommandOptionData, CommandSearchOptionData, CommandSingleOptionData, CommandSingleOptionData as CommandSingleOptionData$1, CommandUi as HeadlessCommandUi } from "@soybeanjs/headless/command";
6
4
 
7
5
  //#region src/components/command/types.d.ts
8
- interface CommandBaseOptionData extends Pick<CommandItemProps, 'value' | 'disabled'> {
9
- /**
10
- * The icon of the command item.
11
- *
12
- * if it is a string, it will be used as the icon name of the iconify.
13
- */
14
- icon?: IconValue;
15
- /** The label to display in the command item. */
16
- label: string;
17
- /** whether to show a separator above this option */
18
- separator?: boolean;
19
- /** The shortcut of the command item. */
20
- shortcut?: KbdValue | KbdValue[];
21
- }
22
- type CommandOptionData<T extends CommandBaseOptionData = CommandBaseOptionData> = T & {
23
- /**
24
- * The group option data. only the first level can be a group.
25
- */
26
- items?: T[];
27
- };
28
- interface CommandItemLabelProps extends /** @vue-ignore */HTMLAttributes {}
29
- interface CommandShortcutProps extends Omit<KbdProps, 'value'> {}
30
- interface CommandSeparatorProps extends SeparatorRootProps {}
31
- interface CommandSingleOptionProps extends Omit<CommandItemProps, 'value' | 'disabled'> {
32
- item: CommandBaseOptionData;
33
- itemLabelProps?: CommandItemLabelProps;
34
- shortcutProps?: CommandShortcutProps;
35
- separatorProps?: CommandSeparatorProps;
36
- }
37
- type CommandSingleOptionEmits = CommandItemEmits;
38
- interface CommandGroupOptionProps extends Omit<CommandGroupProps, 'onSelect'> {
39
- item: CommandOptionData;
40
- groupLabelProps?: CommandGroupLabelProps;
41
- itemProps?: CommandItemProps;
42
- itemLabelProps?: CommandItemLabelProps;
43
- shortcutProps?: CommandShortcutProps;
44
- separatorProps?: CommandSeparatorProps;
45
- }
46
- type CommandGroupOptionEmits = CommandItemEmits;
47
- interface CommandOptionProps {
48
- item: CommandOptionData;
49
- groupProps?: CommandGroupProps;
50
- groupLabelProps?: CommandGroupLabelProps;
51
- itemProps?: CommandItemProps;
52
- itemLabelProps?: CommandItemLabelProps;
53
- shortcutProps?: CommandShortcutProps;
54
- separatorProps?: CommandSeparatorProps;
55
- }
56
- type CommandOptionEmits = CommandItemEmits;
57
- interface CommandSearchOptionData extends CommandBaseOptionData {
58
- groupValue?: string;
59
- groupLabel?: string;
60
- groupSeparator?: boolean;
61
- }
62
- interface CommandHighlightSearchOptionData extends CommandSearchOptionData {
63
- labelHtml?: string;
64
- }
65
- interface CommandEmptyProps extends /** @vue-ignore */HTMLAttributes {}
66
- type CommandUiSlot = Extract<ListboxUiSlot, 'root' | 'item' | 'group' | 'groupLabel'> | 'list' | 'inputRoot' | 'inputControl';
67
- type CommandExtraUiSlot = 'inputClearable' | 'itemLabel' | 'shortcut' | 'separator' | 'empty';
68
- type CommandExtraUi = UiClass<CommandExtraUiSlot>;
69
- type CommandUi = UiClass<CommandUiSlot | CommandExtraUiSlot>;
70
- interface CommandProps<T extends CommandBaseOptionData = CommandBaseOptionData> extends Omit<CommandRootProps, 'onSelect'> {
71
- /**
72
- * root class
73
- */
6
+ type CommandUi = HeadlessCommandUi;
7
+ interface CommandProps<T extends CommandSingleOptionData = CommandSingleOptionData> extends CommandCompactProps<T> {
8
+ /** Root class. */
74
9
  class?: ClassValue;
75
10
  size?: ThemeSize;
76
11
  ui?: Partial<CommandUi>;
77
- items: CommandOptionData<T>[];
78
- placeholder?: string;
79
- searchTerm?: string;
80
- clearable?: boolean;
81
- fuseOptions?: UseFuseOptions<CommandSearchOptionData>;
82
- listProps?: CommandListProps;
83
- itemProps?: CommandItemProps;
84
- itemLabelProps?: CommandItemLabelProps;
85
- groupProps?: CommandGroupProps;
86
- groupLabelProps?: CommandGroupLabelProps;
87
- shortcutProps?: CommandShortcutProps;
88
- separatorProps?: CommandSeparatorProps;
89
- inputProps?: CommandInputProps;
90
- emptyProps?: CommandEmptyProps;
91
- emptyLabel?: string;
92
12
  }
93
- type CommandSearchTermEmits = {
94
- 'update:searchTerm': [value: string];
95
- };
96
- type CommandEmits = CommandRootEmits & CommandOptionEmits & CommandSearchTermEmits;
13
+ type CommandEmits = CommandCompactEmits;
14
+ type CommandSlots<T extends CommandSingleOptionData = CommandSingleOptionData> = CommandCompactSlots<T>;
97
15
  //#endregion
98
- export { CommandBaseOptionData, CommandEmits, CommandEmptyProps, CommandExtraUi, CommandExtraUiSlot, type CommandGroupLabelProps, CommandGroupOptionEmits, CommandGroupOptionProps, type CommandGroupProps, CommandHighlightSearchOptionData, type CommandInputProps, type CommandItemEmits, CommandItemLabelProps, type CommandItemProps, type CommandListProps, CommandOptionData, CommandOptionEmits, CommandOptionProps, CommandProps, type CommandRootEmits, type CommandRootProps, CommandSearchOptionData, CommandSearchTermEmits, CommandSeparatorProps, CommandShortcutProps, CommandSingleOptionEmits, CommandSingleOptionProps, CommandUi, CommandUiSlot };
16
+ export { CommandEmits, type CommandGroupOptionData, type CommandOptionData, CommandProps, type CommandSearchOptionData, type CommandSingleOptionData$1 as CommandSingleOptionData, CommandSlots, CommandUi, type HeadlessCommandUi };
@@ -1 +1 @@
1
- import{themeSizes as e}from"../../constants/common.js";import t from"../alert-dialog/dialog-provider.js";import n from"../progress/loading-bar.js";import r from"../toast/toaster.js";import{provideConfigProviderContext as i}from"./context.js";import a from"../icon/icon.js";import{createBlock as o,createCommentVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,guardReactiveProps as d,h as f,mergeProps as p,normalizeProps as m,openBlock as h,renderSlot as g,toDisplayString as _,unref as v,watch as y,watchEffect as b,withCtx as x}from"vue";import{useOmitProps as S}from"@soybeanjs/headless/composables";import{ConfigProvider as C,Primitive as w}from"@soybeanjs/headless";import{useStorage as T}from"@vueuse/core";import{isClient as E,transformPropsToContext as D}from"@soybeanjs/headless/shared";import{createShadcnTheme as O}from"@soybeanjs/shadcn-theme";const k=u({name:`SConfigProvider`,__name:`config-provider`,props:{theme:{default:()=>({})},size:{default:`md`},iconify:{default:()=>({width:`1.25em`,height:`1.25em`})},loadingBar:{},toast:{},customToast:{type:Boolean},dir:{default:`ltr`},locale:{},nonce:{},tooltip:{},nuxt:{type:Boolean},iconRender:{}},setup(u){let k=u,A=S(k,[`iconRender`,`theme`,`size`,`iconify`,`loadingBar`,`toast`,`customToast`]),j=k.iconRender??(e=>f(a,{icon:e}));i({...D(k),iconRender:j});let{getCss:M}=O(k.theme),N=()=>M(k.theme,k.theme.radius),P=T(`__SoybeanUI_themeVars`,N());function F(t){if(!E)return;document.documentElement.classList.add(`size-${t}`);let n=e.filter(e=>e!==t).map(e=>`size-${e}`);document.documentElement.classList.remove(...n)}return y(()=>k.size,e=>{F(e)},{immediate:!0,flush:`sync`}),b(()=>{P.value=N()}),(e,i)=>(h(),o(v(C),p(v(A),{"icon-render":v(j)}),{default:x(()=>[l(v(w),{id:`__SoybeanUI_themeVars`,as:`style`},{default:x(()=>[c(_(v(P)),1)]),_:1}),l(t,null,{default:x(()=>[l(n,m(d(u.loadingBar)),{default:x(()=>[g(e.$slots,`default`)]),_:3},16)]),_:3}),k.customToast?s(`v-if`,!0):(h(),o(r,m(p({key:0},k.toast)),null,16))]),_:3},16,[`icon-render`]))}});export{k as default};
1
+ import{themeSizes as e}from"../../constants/common.js";import t from"../dialog/dialog-provider.js";import n from"../progress/progress-provider.js";import r from"../toast/toaster.js";import{provideConfigProviderContext as i}from"./context.js";import a from"../icon/icon.js";import{createBlock as o,createCommentVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,guardReactiveProps as d,h as f,mergeProps as p,normalizeProps as m,openBlock as h,renderSlot as g,toDisplayString as _,unref as v,watch as y,watchEffect as b,withCtx as x}from"vue";import{useOmitProps as S}from"@soybeanjs/headless/composables";import{ConfigProvider as C,Primitive as w}from"@soybeanjs/headless";import{useStorage as T}from"@vueuse/core";import{isClient as E,transformPropsToContext as D}from"@soybeanjs/headless/shared";import{createShadcnTheme as O}from"@soybeanjs/shadcn-theme";const k=u({name:`SConfigProvider`,__name:`config-provider`,props:{theme:{default:()=>({})},size:{default:`md`},iconify:{default:()=>({width:`1.25em`,height:`1.25em`})},progress:{},toast:{},customToast:{type:Boolean},dir:{default:`ltr`},locale:{},nonce:{},tooltip:{},nuxt:{type:Boolean},iconRender:{}},setup(u){let k=u,A=S(k,[`iconRender`,`theme`,`size`,`iconify`,`progress`,`toast`,`customToast`]),j=k.iconRender??(e=>f(a,{icon:e}));i({...D(k),iconRender:j});let{getCss:M}=O(k.theme),N=()=>M(k.theme,k.theme.radius),P=T(`__SoybeanUI_themeVars`,N());function F(t){if(!E)return;document.documentElement.classList.add(`size-${t}`);let n=e.filter(e=>e!==t).map(e=>`size-${e}`);document.documentElement.classList.remove(...n)}return y(()=>k.size,e=>{F(e)},{immediate:!0,flush:`sync`}),b(()=>{P.value=N()}),(e,i)=>(h(),o(v(C),p(v(A),{"icon-render":v(j)}),{default:x(()=>[l(v(w),{id:`__SoybeanUI_themeVars`,as:`style`},{default:x(()=>[c(_(v(P)),1)]),_:1}),g(e.$slots,`default`),l(n,m(d(k.progress)),null,16),k.customToast?s(`v-if`,!0):(h(),o(r,m(p({key:0},k.toast)),null,16)),l(t)]),_:3},16,[`icon-render`]))}});export{k as default};
@@ -5,9 +5,9 @@ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
5
  import * as _$_soybeanjs_shadcn_theme0 from "@soybeanjs/shadcn-theme";
6
6
 
7
7
  //#region src/components/config-provider/config-provider.vue.d.ts
8
- declare var __VLS_26: {};
8
+ declare var __VLS_14: {};
9
9
  type __VLS_Slots = {} & {
10
- default?: (props: typeof __VLS_26) => any;
10
+ default?: (props: typeof __VLS_14) => any;
11
11
  };
12
12
  declare const __VLS_base: _$vue.DefineComponent<ConfigProviderProps$1, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<ConfigProviderProps$1> & Readonly<{}>, {
13
13
  size: ThemeSize;
@@ -1,5 +1,5 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { LoadingBarProviderProps } from "../progress/types.js";
2
+ import { ProgressProviderProps } from "../progress/types.js";
3
3
  import { ToasterProps as ToasterProps$1 } from "../toast/types.js";
4
4
  import { ConfigProviderProps, PropsToContext } from "@soybeanjs/headless";
5
5
  import { ThemeOptions } from "@soybeanjs/shadcn-theme";
@@ -25,7 +25,8 @@ interface ConfigProviderProps$1 extends ConfigProviderProps {
25
25
  */
26
26
  height?: string;
27
27
  };
28
- loadingBar?: LoadingBarProviderProps;
28
+ /** The global top progress configuration of your application. */
29
+ progress?: Partial<ProgressProviderProps>;
29
30
  /** The global toast configuration of your application. This will be inherited by the related components. */
30
31
  toast?: Partial<ToasterProps$1>;
31
32
  /**
@@ -1 +1 @@
1
- import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuCheckboxCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenuCheckbox`,__name:`context-menu-checkbox`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{default:()=>[]},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`,`indicatorPosition`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuCheckboxCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenuCheckbox`,__name:`context-menu-checkbox`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},isAlert:{type:Boolean},alertType:{},items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{default:()=>[]},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`,`indicatorPosition`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
@@ -7,6 +7,7 @@ import { DefinedValue } from "@soybeanjs/headless";
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
8
  props: _$vue.PublicProps & __VLS_PrettifyLocal<ContextMenuCheckboxProps<T> & {
9
9
  onSelect?: ((item: _$_soybeanjs_headless0.MenuCheckboxOptionData<T>, event: Event) => any) | undefined;
10
+ "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
10
11
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
12
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
12
13
  onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
@@ -14,7 +15,6 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props:
14
15
  onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
15
16
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
16
17
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
- "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
18
18
  onEntryFocus?: ((event: Event) => any) | undefined;
19
19
  }> & (typeof globalThis extends {
20
20
  __VLS_PROPS_FALLBACK: infer P;
@@ -22,7 +22,7 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props:
22
22
  expose: (exposed: {}) => void;
23
23
  attrs: any;
24
24
  slots: ContextMenuCheckboxSlots<T>;
25
- emit: ((evt: "select", item: _$_soybeanjs_headless0.MenuCheckboxOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "update:modelValue", value: T[]) => void) & ((evt: "entryFocus", event: Event) => void);
25
+ emit: ((evt: "select", item: _$_soybeanjs_headless0.MenuCheckboxOptionData<T>, event: Event) => void) & ((evt: "update:modelValue", value: T[]) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "entryFocus", event: Event) => void);
26
26
  }>) => _$vue.VNode & {
27
27
  __ctx?: Awaited<typeof __VLS_setup>;
28
28
  };
@@ -1 +1 @@
1
- import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuRadioCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenuRadio`,__name:`context-menu-radio`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`,`indicatorPosition`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuRadioCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenuRadio`,__name:`context-menu-radio`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},isAlert:{type:Boolean},alertType:{},items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`,`indicatorPosition`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
@@ -7,6 +7,7 @@ import { AcceptableBooleanValue } from "@soybeanjs/headless";
7
7
  declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBooleanValue>(__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
8
  props: _$vue.PublicProps & __VLS_PrettifyLocal<ContextMenuRadioProps<T> & {
9
9
  onSelect?: ((item: _$_soybeanjs_headless0.MenuRadioOptionData<T>, event: Event) => any) | undefined;
10
+ "onUpdate:modelValue"?: ((payload: NonNullable<T>) => any) | undefined;
10
11
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
12
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
12
13
  onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
@@ -14,7 +15,6 @@ declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBoolea
14
15
  onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
15
16
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
16
17
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
- "onUpdate:modelValue"?: ((payload: NonNullable<T>) => any) | undefined;
18
18
  onEntryFocus?: ((event: Event) => any) | undefined;
19
19
  }> & (typeof globalThis extends {
20
20
  __VLS_PROPS_FALLBACK: infer P;
@@ -22,7 +22,7 @@ declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBoolea
22
22
  expose: (exposed: {}) => void;
23
23
  attrs: any;
24
24
  slots: ContextMenuRadioSlots<T>;
25
- emit: ((evt: "select", item: _$_soybeanjs_headless0.MenuRadioOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "update:modelValue", payload: NonNullable<T>) => void) & ((evt: "entryFocus", event: Event) => void);
25
+ emit: ((evt: "select", item: _$_soybeanjs_headless0.MenuRadioOptionData<T>, event: Event) => void) & ((evt: "update:modelValue", payload: NonNullable<T>) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "entryFocus", event: Event) => void);
26
26
  }>) => _$vue.VNode & {
27
27
  __ctx?: Awaited<typeof __VLS_setup>;
28
28
  };
@@ -1 +1 @@
1
- import{provideMenuUi as e}from"../menu/context.js";import{createBlock as t,defineComponent as n,mergeProps as r,openBlock as i,renderSlot as a,toHandlers as o,unref as s,withCtx as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ContextMenuWrapperCompact as d}from"@soybeanjs/headless";const f=n({name:`SContextMenuWrapper`,__name:`context-menu-wrapper`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(n,{emit:f}){let p=n,m=f,h=u(p,[`class`,`size`,`ui`,`indicatorPosition`]),g=l(m);return e(()=>p),(e,n)=>(i(),t(s(d),r(s(h),o(s(g))),{trigger:c(()=>[a(e.$slots,`trigger`)]),default:c(()=>[a(e.$slots,`default`)]),_:3},16))}});export{f as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{createBlock as t,defineComponent as n,mergeProps as r,openBlock as i,renderSlot as a,toHandlers as o,unref as s,withCtx as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ContextMenuWrapperCompact as d}from"@soybeanjs/headless";const f=n({name:`SContextMenuWrapper`,__name:`context-menu-wrapper`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},isAlert:{type:Boolean},alertType:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(n,{emit:f}){let p=n,m=f,h=u(p,[`class`,`size`,`ui`,`indicatorPosition`]),g=l(m);return e(()=>p),(e,n)=>(i(),t(s(d),r(s(h),o(s(g))),{trigger:c(()=>[a(e.$slots,`trigger`)]),default:c(()=>[a(e.$slots,`default`)]),_:3},16))}});export{f as default};
@@ -1 +1 @@
1
- import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenu`,__name:`context-menu`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenu`,__name:`context-menu`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},isAlert:{type:Boolean},alertType:{},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};