@soybeanjs/ui 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/dist/components/accordion/accordion.js +1 -1
  2. package/dist/components/affix/affix.js +1 -1
  3. package/dist/components/alert/alert.js +1 -1
  4. package/dist/components/alert/alert.vue.d.ts +2 -0
  5. package/dist/components/anchor/anchor.js +1 -1
  6. package/dist/components/autocomplete/autocomplete.js +1 -1
  7. package/dist/components/avatar/avatar.js +1 -1
  8. package/dist/components/backtop/backtop.js +1 -1
  9. package/dist/components/badge/badge.js +1 -1
  10. package/dist/components/bottom-sheet/bottom-sheet.js +1 -1
  11. package/dist/components/bottom-sheet/variants.js +1 -1
  12. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  13. package/dist/components/button/types.d.ts +1 -1
  14. package/dist/components/button/variants.js +1 -1
  15. package/dist/components/calendar/calendar.js +1 -1
  16. package/dist/components/calendar-range/calendar-range.js +1 -0
  17. package/dist/components/{range-calendar/range-calendar.vue.d.ts → calendar-range/calendar-range.vue.d.ts} +5 -5
  18. package/dist/components/calendar-range/index.d.ts +3 -0
  19. package/dist/components/calendar-range/index.js +1 -0
  20. package/dist/components/calendar-range/types.d.ts +32 -0
  21. package/dist/components/calendar-range/variants.js +1 -0
  22. package/dist/components/card/card-collapsible-trigger.js +1 -1
  23. package/dist/components/card/card.js +1 -1
  24. package/dist/components/carousel/carousel.js +1 -1
  25. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  26. package/dist/components/checkbox/checkbox-card.js +1 -1
  27. package/dist/components/checkbox/checkbox-group.js +1 -1
  28. package/dist/components/checkbox/checkbox.js +1 -1
  29. package/dist/components/collapsible/collapsible.js +1 -1
  30. package/dist/components/collapsible/collapsible.vue.d.ts +1 -1
  31. package/dist/components/color-area/color-area.js +1 -1
  32. package/dist/components/color-area/color-area.vue.d.ts +5 -5
  33. package/dist/components/color-area/types.d.ts +3 -11
  34. package/dist/components/color-field/color-field.js +1 -1
  35. package/dist/components/color-field/color-field.vue.d.ts +3 -3
  36. package/dist/components/color-field/types.d.ts +3 -7
  37. package/dist/components/color-field/variants.js +1 -1
  38. package/dist/components/color-picker/color-picker.js +1 -1
  39. package/dist/components/color-picker/color-picker.vue.d.ts +21 -36
  40. package/dist/components/color-picker/index.d.ts +1 -1
  41. package/dist/components/color-picker/types.d.ts +6 -118
  42. package/dist/components/color-picker/variants.js +1 -1
  43. package/dist/components/color-slider/color-slider.js +1 -1
  44. package/dist/components/color-slider/color-slider.vue.d.ts +5 -5
  45. package/dist/components/color-slider/types.d.ts +3 -11
  46. package/dist/components/color-swatch/color-swatch.js +1 -1
  47. package/dist/components/color-swatch/color-swatch.vue.d.ts +2 -5
  48. package/dist/components/color-swatch/index.d.ts +3 -2
  49. package/dist/components/color-swatch/types.d.ts +9 -13
  50. package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -1
  51. package/dist/components/color-swatch-picker/color-swatch-picker.vue.d.ts +6 -6
  52. package/dist/components/color-swatch-picker/types.d.ts +3 -19
  53. package/dist/components/color-swatch-picker/variants.d.ts +9 -9
  54. package/dist/components/color-swatch-picker/variants.js +1 -1
  55. package/dist/components/combobox/combobox.js +1 -1
  56. package/dist/components/command/command.js +1 -1
  57. package/dist/components/command/command.vue.d.ts +1 -1
  58. package/dist/components/config-provider/config-provider.js +1 -1
  59. package/dist/components/config-provider/types.d.ts +2 -4
  60. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +1 -1
  61. package/dist/components/context-menu/context-menu-radio.vue.d.ts +3 -3
  62. package/dist/components/context-menu/context-menu.vue.d.ts +1 -1
  63. package/dist/components/date-field/date-field.js +1 -1
  64. package/dist/components/date-field/date-field.vue.d.ts +4 -4
  65. package/dist/components/date-field/variants.js +1 -1
  66. package/dist/components/date-picker/date-picker.js +1 -1
  67. package/dist/components/date-picker/date-picker.vue.d.ts +17 -11
  68. package/dist/components/date-picker/index.d.ts +1 -1
  69. package/dist/components/date-picker/types.d.ts +7 -6
  70. package/dist/components/date-picker/variants.js +1 -1
  71. package/dist/components/date-range-field/date-range-field.js +1 -1
  72. package/dist/components/date-range-field/date-range-field.vue.d.ts +1 -3
  73. package/dist/components/date-range-field/index.d.ts +1 -1
  74. package/dist/components/date-range-field/types.d.ts +5 -49
  75. package/dist/components/date-range-field/variants.js +1 -1
  76. package/dist/components/date-range-picker/date-range-picker.js +1 -1
  77. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +20 -14
  78. package/dist/components/date-range-picker/index.d.ts +1 -1
  79. package/dist/components/date-range-picker/types.d.ts +7 -39
  80. package/dist/components/dialog/dialog-provider.js +1 -1
  81. package/dist/components/dialog/dialog.js +1 -1
  82. package/dist/components/dialog/dialog.vue.d.ts +2 -0
  83. package/dist/components/drawer/drawer.js +1 -1
  84. package/dist/components/drawer/drawer.vue.d.ts +2 -0
  85. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +1 -1
  86. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +3 -3
  87. package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +1 -1
  88. package/dist/components/editable/editable.js +1 -1
  89. package/dist/components/editable/editable.vue.d.ts +6 -6
  90. package/dist/components/empty/empty.js +1 -1
  91. package/dist/components/form/form-field-array.js +1 -1
  92. package/dist/components/form/form-field-base.js +1 -1
  93. package/dist/components/form/form-field.js +1 -1
  94. package/dist/components/form/form.js +1 -1
  95. package/dist/components/hover-card/hover-card.js +1 -1
  96. package/dist/components/icon/types.d.ts +1 -1
  97. package/dist/components/input/input.js +1 -1
  98. package/dist/components/input/variants.js +1 -1
  99. package/dist/components/input-number/index.d.ts +1 -1
  100. package/dist/components/input-number/input-number.js +1 -1
  101. package/dist/components/input-number/input-number.vue.d.ts +6 -13
  102. package/dist/components/input-number/types.d.ts +8 -24
  103. package/dist/components/input-number/variants.js +1 -1
  104. package/dist/components/input-otp/input-otp.js +1 -1
  105. package/dist/components/input-otp/input-otp.vue.d.ts +2 -2
  106. package/dist/components/layout/layout-classic.js +1 -1
  107. package/dist/components/layout/layout.js +1 -1
  108. package/dist/components/list/list.js +1 -1
  109. package/dist/components/menu/context.js +1 -1
  110. package/dist/components/menu/index.d.ts +1 -8
  111. package/dist/components/menubar/menubar.js +1 -1
  112. package/dist/components/menubar/menubar.vue.d.ts +1 -1
  113. package/dist/components/navigation-menu/navigation-menu.js +1 -1
  114. package/dist/components/page-tabs/index.d.ts +1 -1
  115. package/dist/components/page-tabs/page-tabs.js +1 -1
  116. package/dist/components/page-tabs/page-tabs.vue.d.ts +6 -4
  117. package/dist/components/page-tabs/types.d.ts +10 -117
  118. package/dist/components/page-tabs/variants.js +1 -1
  119. package/dist/components/pagination/pagination.js +1 -1
  120. package/dist/components/password/index.d.ts +3 -2
  121. package/dist/components/password/password.js +1 -1
  122. package/dist/components/password/password.vue.d.ts +2 -12
  123. package/dist/components/password/types.d.ts +8 -25
  124. package/dist/components/popconfirm/index.d.ts +3 -5
  125. package/dist/components/popconfirm/index.js +1 -1
  126. package/dist/components/popconfirm/popconfirm.js +1 -1
  127. package/dist/components/popconfirm/popconfirm.vue.d.ts +6 -27
  128. package/dist/components/popconfirm/types.d.ts +8 -209
  129. package/dist/components/popconfirm/variants.js +1 -1
  130. package/dist/components/popover/index.d.ts +1 -1
  131. package/dist/components/popover/popover.js +1 -1
  132. package/dist/components/popover/popover.vue.d.ts +2 -9
  133. package/dist/components/popover/types.d.ts +9 -37
  134. package/dist/components/popover/variants.js +1 -1
  135. package/dist/components/progress/index.d.ts +11 -3
  136. package/dist/components/progress/progress-circle.js +1 -1
  137. package/dist/components/progress/progress-circle.vue.d.ts +2 -10
  138. package/dist/components/progress/progress-provider.js +1 -1
  139. package/dist/components/progress/progress-provider.vue.d.ts +1 -1
  140. package/dist/components/progress/progress.js +1 -1
  141. package/dist/components/progress/progress.vue.d.ts +2 -11
  142. package/dist/components/progress/types.d.ts +16 -16
  143. package/dist/components/progress/variants.js +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 -2
  146. package/dist/components/radio-group/radio-group.js +1 -1
  147. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  148. package/dist/components/scroll-area/scroll-area.js +1 -1
  149. package/dist/components/scroll-area/scroll-area.vue.d.ts +2 -2
  150. package/dist/components/scroll-area/types.d.ts +3 -23
  151. package/dist/components/segment/segment.js +1 -1
  152. package/dist/components/segment/segment.vue.d.ts +2 -2
  153. package/dist/components/select/select.js +1 -1
  154. package/dist/components/select/select.vue.d.ts +1 -1
  155. package/dist/components/separator/separator.js +1 -1
  156. package/dist/components/separator/separator.vue.d.ts +11 -1
  157. package/dist/components/separator/types.d.ts +2 -10
  158. package/dist/components/separator/variants.js +1 -1
  159. package/dist/components/slider/slider.js +1 -1
  160. package/dist/components/slider/slider.vue.d.ts +6 -7
  161. package/dist/components/slider/types.d.ts +3 -15
  162. package/dist/components/splitter/splitter-group.js +1 -1
  163. package/dist/components/splitter/splitter-panel.js +1 -1
  164. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  165. package/dist/components/splitter/splitter-resize-handle.js +1 -1
  166. package/dist/components/stepper/stepper.js +1 -1
  167. package/dist/components/stepper/stepper.vue.d.ts +5 -5
  168. package/dist/components/switch/index.d.ts +1 -1
  169. package/dist/components/switch/switch.js +1 -1
  170. package/dist/components/switch/switch.vue.d.ts +2 -638
  171. package/dist/components/switch/types.d.ts +8 -12
  172. package/dist/components/switch/variants.d.ts +2 -2
  173. package/dist/components/switch/variants.js +1 -1
  174. package/dist/components/table/hooks.d.ts +3 -3
  175. package/dist/components/table/table-filter-popover.js +1 -1
  176. package/dist/components/table/table.js +1 -1
  177. package/dist/components/tabs/tabs.js +1 -1
  178. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  179. package/dist/components/tags-input/index.d.ts +3 -4
  180. package/dist/components/tags-input/index.js +1 -1
  181. package/dist/components/tags-input/tags-input.js +1 -1
  182. package/dist/components/tags-input/tags-input.vue.d.ts +18 -22
  183. package/dist/components/tags-input/types.d.ts +8 -4
  184. package/dist/components/tags-input/variants.js +1 -1
  185. package/dist/components/textarea/index.d.ts +4 -2
  186. package/dist/components/textarea/index.js +1 -1
  187. package/dist/components/textarea/textarea.js +1 -1
  188. package/dist/components/textarea/textarea.vue.d.ts +4 -10
  189. package/dist/components/textarea/types.d.ts +9 -28
  190. package/dist/components/textarea/variants.d.ts +21 -21
  191. package/dist/components/textarea/variants.js +1 -1
  192. package/dist/components/time-field/index.d.ts +1 -1
  193. package/dist/components/time-field/time-field.js +1 -1
  194. package/dist/components/time-field/time-field.vue.d.ts +2 -9
  195. package/dist/components/time-field/types.d.ts +4 -37
  196. package/dist/components/time-range-field/index.d.ts +1 -1
  197. package/dist/components/time-range-field/time-range-field.js +1 -1
  198. package/dist/components/time-range-field/time-range-field.vue.d.ts +1 -3
  199. package/dist/components/time-range-field/types.d.ts +5 -49
  200. package/dist/components/toast/styles.js +36 -36
  201. package/dist/components/toast/toast-provider.js +1 -1
  202. package/dist/components/toggle/toggle.js +1 -1
  203. package/dist/components/toggle-group/index.d.ts +3 -2
  204. package/dist/components/toggle-group/index.js +1 -1
  205. package/dist/components/toggle-group/toggle-group.js +1 -1
  206. package/dist/components/toolbar/toolbar.js +1 -1
  207. package/dist/components/tooltip/index.d.ts +1 -1
  208. package/dist/components/tooltip/tooltip.js +1 -1
  209. package/dist/components/tooltip/tooltip.vue.d.ts +2 -7
  210. package/dist/components/tooltip/types.d.ts +9 -37
  211. package/dist/components/tree/tree-virtualizer.vue.d.ts +1 -1
  212. package/dist/components/tree/tree.vue.d.ts +2 -2
  213. package/dist/components/tree-menu/index.d.ts +1 -1
  214. package/dist/components/tree-menu/tree-menu-styled-item.js +1 -1
  215. package/dist/components/tree-menu/tree-menu.js +1 -1
  216. package/dist/components/tree-menu/tree-menu.vue.d.ts +3 -17
  217. package/dist/components/tree-menu/types.d.ts +12 -204
  218. package/dist/components/tree-menu/variants.js +1 -1
  219. package/dist/constants/components.d.ts +1 -7
  220. package/dist/constants/components.js +1 -1
  221. package/dist/index.d.ts +135 -152
  222. package/dist/index.js +1 -1
  223. package/dist/styles.css +35 -43
  224. package/dist/theme/shared.js +1 -1
  225. package/package.json +8 -8
  226. package/dist/components/color-picker/shared.js +0 -1
  227. package/dist/components/date-range-picker/variants.js +0 -1
  228. package/dist/components/month-picker/index.d.ts +0 -3
  229. package/dist/components/month-picker/index.js +0 -1
  230. package/dist/components/month-picker/month-picker.js +0 -1
  231. package/dist/components/month-picker/month-picker.vue.d.ts +0 -24
  232. package/dist/components/month-picker/types.d.ts +0 -86
  233. package/dist/components/month-picker/variants.js +0 -1
  234. package/dist/components/month-range-picker/index.d.ts +0 -3
  235. package/dist/components/month-range-picker/index.js +0 -1
  236. package/dist/components/month-range-picker/month-range-picker.js +0 -1
  237. package/dist/components/month-range-picker/month-range-picker.vue.d.ts +0 -29
  238. package/dist/components/month-range-picker/types.d.ts +0 -89
  239. package/dist/components/month-range-picker/variants.js +0 -1
  240. package/dist/components/page-tabs/hooks.js +0 -1
  241. package/dist/components/popconfirm/context.js +0 -1
  242. package/dist/components/popconfirm/popconfirm-cancel.js +0 -1
  243. package/dist/components/popconfirm/popconfirm-cancel.vue.d.ts +0 -25
  244. package/dist/components/popconfirm/popconfirm-confirm.js +0 -1
  245. package/dist/components/popconfirm/popconfirm-confirm.vue.d.ts +0 -22
  246. package/dist/components/range-calendar/index.d.ts +0 -3
  247. package/dist/components/range-calendar/index.js +0 -1
  248. package/dist/components/range-calendar/range-calendar.js +0 -1
  249. package/dist/components/range-calendar/types.d.ts +0 -188
  250. package/dist/components/range-calendar/variants.js +0 -1
  251. package/dist/components/tags-input/tags-input-item-delete.js +0 -1
  252. package/dist/components/tags-input/tags-input-item-delete.vue.d.ts +0 -18
  253. package/dist/components/time-field/variants.js +0 -1
  254. package/dist/components/time-picker/index.d.ts +0 -3
  255. package/dist/components/time-picker/index.js +0 -1
  256. package/dist/components/time-picker/time-picker.js +0 -1
  257. package/dist/components/time-picker/time-picker.vue.d.ts +0 -24
  258. package/dist/components/time-picker/types.d.ts +0 -68
  259. package/dist/components/time-picker/variants.js +0 -1
  260. package/dist/components/time-range-field/variants.js +0 -1
  261. package/dist/components/time-range-picker/index.d.ts +0 -3
  262. package/dist/components/time-range-picker/index.js +0 -1
  263. package/dist/components/time-range-picker/time-range-picker.js +0 -1
  264. package/dist/components/time-range-picker/time-range-picker.vue.d.ts +0 -28
  265. package/dist/components/time-range-picker/types.d.ts +0 -71
  266. package/dist/components/time-range-picker/variants.js +0 -1
  267. package/dist/components/toggle-group/toggle-group-item.js +0 -1
  268. package/dist/components/toggle-group/toggle-group-item.vue.d.ts +0 -22
  269. package/dist/components/tree-menu/context.js +0 -1
  270. package/dist/components/tree-menu/shared.js +0 -1
  271. package/dist/components/tree-menu/tree-menu-option-slot.js +0 -1
  272. package/dist/components/tree-menu/tree-menu-option.js +0 -1
  273. package/dist/components/tree-menu/tree-menu-options.js +0 -1
  274. package/dist/components/year-picker/index.d.ts +0 -3
  275. package/dist/components/year-picker/index.js +0 -1
  276. package/dist/components/year-picker/types.d.ts +0 -86
  277. package/dist/components/year-picker/variants.js +0 -1
  278. package/dist/components/year-picker/year-picker.js +0 -1
  279. package/dist/components/year-picker/year-picker.vue.d.ts +0 -24
  280. package/dist/components/year-range-picker/index.d.ts +0 -3
  281. package/dist/components/year-range-picker/index.js +0 -1
  282. package/dist/components/year-range-picker/types.d.ts +0 -90
  283. package/dist/components/year-range-picker/variants.js +0 -1
  284. package/dist/components/year-range-picker/year-range-picker.js +0 -1
  285. package/dist/components/year-range-picker/year-range-picker.vue.d.ts +0 -29
@@ -4,7 +4,7 @@ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/editable/editable.vue.d.ts
6
6
  declare var __VLS_8: {
7
- modelValue: string | undefined;
7
+ modelValue: string;
8
8
  inputValue: string;
9
9
  isEditing: boolean;
10
10
  isEmpty: boolean;
@@ -12,7 +12,7 @@ declare var __VLS_8: {
12
12
  cancel: () => void;
13
13
  submit: () => void;
14
14
  }, __VLS_16: {
15
- modelValue: string | undefined;
15
+ modelValue: string;
16
16
  inputValue: string;
17
17
  isEditing: boolean;
18
18
  isEmpty: boolean;
@@ -20,7 +20,7 @@ declare var __VLS_8: {
20
20
  cancel: () => void;
21
21
  submit: () => void;
22
22
  }, __VLS_23: {
23
- modelValue: string | undefined;
23
+ modelValue: string;
24
24
  inputValue: string;
25
25
  isEditing: boolean;
26
26
  isEmpty: boolean;
@@ -28,7 +28,7 @@ declare var __VLS_8: {
28
28
  cancel: () => void;
29
29
  submit: () => void;
30
30
  }, __VLS_30: {
31
- modelValue: string | undefined;
31
+ modelValue: string;
32
32
  inputValue: string;
33
33
  isEditing: boolean;
34
34
  isEmpty: boolean;
@@ -36,7 +36,7 @@ declare var __VLS_8: {
36
36
  cancel: () => void;
37
37
  submit: () => void;
38
38
  }, __VLS_43: {
39
- modelValue: string | undefined;
39
+ modelValue: string;
40
40
  inputValue: string;
41
41
  isEditing: boolean;
42
42
  isEmpty: boolean;
@@ -44,7 +44,7 @@ declare var __VLS_8: {
44
44
  cancel: () => void;
45
45
  submit: () => void;
46
46
  }, __VLS_56: {
47
- modelValue: string | undefined;
47
+ modelValue: string;
48
48
  inputValue: string;
49
49
  isEditing: boolean;
50
50
  isEmpty: boolean;
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{emptyVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{EmptyCompact as g,provideEmptyUi as _}from"@soybeanjs/headless/empty";const v=a({name:`SEmpty`,__name:`empty`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},size:{},title:{},description:{},icon:{},headerProps:{},mediaProps:{},contentProps:{},titleProps:{},descriptionProps:{}},setup(a){let v=a,y=m(v,[`class`,`ui`,`size`]),b=f(),x=n(()=>h(b));return _(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(y))),i({_:2},[l(x.value,t=>({name:t,fn:p(()=>[u(e.$slots,t)])}))]),1040))}});export{v as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{emptyVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{EmptyCompact as g,provideEmptyUi as _}from"@soybeanjs/headless/empty";const v=a({name:`SEmpty`,__name:`empty`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},size:{},title:{},description:{},icon:{},headerProps:{},mediaProps:{},contentProps:{},titleProps:{},descriptionProps:{}},setup(a){let v=a,y=m(v,[`class`,`ui`,`size`]),b=f(),x=n(()=>h(b));return _(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(y))),i({_:2},[l(x.value,t=>({name:t,fn:p(()=>[u(e.$slots,t)])}))]),1040))}});export{v as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{FormFieldArrayCompact as g,provideFormFieldUi as _}from"@soybeanjs/headless/form";const v=a({name:`SFormFieldArray`,__name:`form-field-array`,props:{name:{},orientation:{},label:{},description:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{},validate:{type:Function},reset:{type:Function},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(a){let v=a,y=f(),b=m(v,[`class`,`ui`,`size`]),x=n(()=>h(y));return _(n(()=>e(t({size:v.size}),v.ui,{field:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(b))),i({_:2},[l(x.value,t=>({name:t,fn:p(n=>[u(e.$slots,t,s(o(n)))])}))]),1040))}});export{v as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{FormFieldArrayCompact as g,provideFormFieldUi as _}from"@soybeanjs/headless/form";const v=a({name:`SFormFieldArray`,__name:`form-field-array`,props:{name:{},orientation:{},label:{},description:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{},validate:{type:Function},reset:{type:Function},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(a){let v=a,y=f(),b=m(v,[`class`,`ui`,`size`]),x=n(()=>h(y));return _(n(()=>e(t({size:v.size}),v.ui,{field:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(b))),i({_:2},[l(x.value,t=>({name:t,fn:p(n=>[u(e.$slots,t,s(o(n)))])}))]),1040))}});export{v as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{FormFieldBaseCompact as g,provideFormFieldUi as _}from"@soybeanjs/headless/form";const v=a({name:`SFormFieldBase`,__name:`form-field-base`,props:{error:{},isFieldArray:{type:Boolean},orientation:{},label:{},description:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(a){let v=a,y=f(),b=m(v,[`class`,`ui`,`size`]),x=n(()=>h(y));return _(n(()=>e(t({size:v.size}),v.ui,{field:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(b))),i({_:2},[l(x.value,t=>({name:t,fn:p(()=>[u(e.$slots,t)])}))]),1040))}});export{v as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{FormFieldBaseCompact as g,provideFormFieldUi as _}from"@soybeanjs/headless/form";const v=a({name:`SFormFieldBase`,__name:`form-field-base`,props:{error:{},isFieldArray:{type:Boolean},orientation:{},label:{},description:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(a){let v=a,y=f(),b=m(v,[`class`,`ui`,`size`]),x=n(()=>h(y));return _(n(()=>e(t({size:v.size}),v.ui,{field:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(b))),i({_:2},[l(x.value,t=>({name:t,fn:p(()=>[u(e.$slots,t)])}))]),1040))}});export{v as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{FormFieldCompact as g,provideFormFieldUi as _}from"@soybeanjs/headless/form";const v=a({name:`SFormField`,__name:`form-field`,props:{name:{},orientation:{},label:{},description:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{},validate:{type:Function},reset:{type:Function},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(a){let v=a,y=f(),b=m(v,[`class`,`ui`,`size`]),x=n(()=>h(y));return _(n(()=>e(t({size:v.size}),v.ui,{field:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(b))),i({_:2},[l(x.value,t=>({name:t,fn:p(n=>[u(e.$slots,t,s(o(n)))])}))]),1040))}});export{v as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,unref as d,useSlots as f,withCtx as p}from"vue";import{useOmitProps as m}from"@soybeanjs/headless/composables";import{keysOf as h}from"@soybeanjs/utils";import{FormFieldCompact as g,provideFormFieldUi as _}from"@soybeanjs/headless/form";const v=a({name:`SFormField`,__name:`form-field`,props:{name:{},orientation:{},label:{},description:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{},validate:{type:Function},reset:{type:Function},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(a){let v=a,y=f(),b=m(v,[`class`,`ui`,`size`]),x=n(()=>h(y));return _(n(()=>e(t({size:v.size}),v.ui,{field:v.class}))),(e,t)=>(c(),r(d(g),s(o(d(b))),i({_:2},[l(x.value,t=>({name:t,fn:p(n=>[u(e.$slots,t,s(o(n)))])}))]),1040))}});export{v as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,normalizeProps as o,openBlock as s,renderSlot as c,unref as l,withCtx as u}from"vue";import{useOmitProps as d}from"@soybeanjs/headless/composables";import{FormCompact as f,provideFormUi as p}from"@soybeanjs/headless/form";const m=i({name:`SForm`,__name:`form`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},fieldProps:{},fieldArrayProps:{},orientation:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{}},setup(i){let m=i,h=d(m,[`ui`,`class`,`size`]);return p(n(()=>e(t({size:m.size}),m.ui,{form:m.class}))),(e,t)=>(s(),r(l(f),o(a(l(h))),{default:u(()=>[c(e.$slots,`default`)]),_:3},16))}});export{m as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{formVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,normalizeProps as o,openBlock as s,renderSlot as c,unref as l,withCtx as u}from"vue";import{useOmitProps as d}from"@soybeanjs/headless/composables";import{FormCompact as f,provideFormUi as p}from"@soybeanjs/headless/form";const m=i({name:`SForm`,__name:`form`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},fieldProps:{},fieldArrayProps:{},orientation:{},labelProps:{},controlProps:{},descriptionProps:{},errorProps:{}},setup(i){let m=i,h=d(m,[`ui`,`class`,`size`]);return p(n(()=>e(t({size:m.size}),m.ui,{form:m.class}))),(e,t)=>(s(),r(l(f),o(a(l(h))),{default:u(()=>[c(e.$slots,`default`)]),_:3},16))}});export{m as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{hoverCardVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createVNode as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderSlot as d,toHandlers as f,unref as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{HoverCardArrow as _,HoverCardPopup as v,HoverCardPortal as y,HoverCardPositioner as b,HoverCardRoot as x,HoverCardTrigger as S,provideHoverCardUi as C}from"@soybeanjs/headless/hover-card";const w=o({name:`SHoverCard`,__name:`hover-card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},placement:{},showArrow:{type:Boolean,default:!0},positionerProps:{},popupProps:{},triggerProps:{},portalProps:{},arrowProps:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},openDelay:{},closeDelay:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`],setup(o,{emit:w}){let T=o,E=w,D=g(T,[`class`,`size`,`ui`,`placement`,`showArrow`,`positionerProps`,`popupProps`,`triggerProps`,`portalProps`,`arrowProps`]),O=h(E),k=n(()=>e(t({size:T.size}),T.ui,{popup:T.class})),A=n(()=>({...T.positionerProps,placement:T.placement??T.positionerProps?.placement}));return C(k),(e,t)=>(u(),r(p(x),c(p(D),{"onUpdate:open":t[0]||=e=>E(`update:open`,e)}),{default:m(()=>[a(p(S),c(o.triggerProps,{"as-child":``}),{default:m(()=>[d(e.$slots,`trigger`)]),_:3},16),a(p(y),l(s(o.portalProps)),{default:m(()=>[a(p(b),c(A.value,f(p(O))),{default:m(()=>[a(p(v),l(s(o.popupProps)),{default:m(()=>[d(e.$slots,`default`),o.showArrow?(u(),r(p(_),l(c({key:0},o.arrowProps)),null,16)):i(`v-if`,!0)]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16))}});export{w as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{hoverCardVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createVNode as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderSlot as d,toHandlers as f,unref as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{HoverCardArrow as _,HoverCardPopup as v,HoverCardPortal as y,HoverCardPositioner as b,HoverCardRoot as x,HoverCardTrigger as S,provideHoverCardUi as C}from"@soybeanjs/headless/hover-card";const w=o({name:`SHoverCard`,__name:`hover-card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},placement:{},showArrow:{type:Boolean,default:!0},positionerProps:{},popupProps:{},triggerProps:{},portalProps:{},arrowProps:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},openDelay:{},closeDelay:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`],setup(o,{emit:w}){let T=o,E=w,D=g(T,[`class`,`size`,`ui`,`placement`,`showArrow`,`positionerProps`,`popupProps`,`triggerProps`,`portalProps`,`arrowProps`]),O=h(E),k=n(()=>e(t({size:T.size}),T.ui,{popup:T.class})),A=n(()=>({...T.positionerProps,placement:T.placement??T.positionerProps?.placement}));return C(k),(e,t)=>(u(),r(p(x),c(p(D),{"onUpdate:open":t[0]||=e=>E(`update:open`,e)}),{default:m(()=>[a(p(S),c(o.triggerProps,{"as-child":``}),{default:m(()=>[d(e.$slots,`trigger`)]),_:3},16),a(p(y),l(s(o.portalProps)),{default:m(()=>[a(p(b),c(A.value,f(p(O))),{default:m(()=>[a(p(v),l(s(o.popupProps)),{default:m(()=>[d(e.$slots,`default`),o.showArrow?(u(),r(p(_),l(c({key:0},o.arrowProps)),null,16)):i(`v-if`,!0)]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16))}});export{w as default};
@@ -1,5 +1,5 @@
1
1
  import { IconProps } from "@iconify/vue";
2
- import { IconValue } from "@soybeanjs/headless/_icon";
2
+ import { IconValue } from "@soybeanjs/headless";
3
3
 
4
4
  //#region src/components/icon/types.d.ts
5
5
  /**
@@ -1 +1 @@
1
- import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{miniSizeMap as n}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as r}from"../button/variants.js";import{inputVariants as i}from"./variants.js";import{computed as a,createBlock 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,unref as h,useSlots as g,withCtx as _}from"vue";import{useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";import{InputCompact as b,provideInputUi as x}from"@soybeanjs/headless/input";const S=c({name:`SInput`,__name:`input`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},clearProps:{},defaultValue:{},modelValue:{},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(c,{emit:S}){let C=c,w=S,T=v(C,[`class`,`size`,`ui`]),E=g(),D=a(()=>y(E));return x(a(()=>{let a=i({size:C.size}),o=n[C.size??`md`];return t(e(a,{clearable:r({size:o,color:`accent`,variant:`ghost`,shape:`circle`,fitContent:!0})}),C.ui,{root:C.class})})),(e,t)=>(f(),o(h(b),u(h(T),{"onUpdate:modelValue":t[0]||=e=>w(`update:modelValue`,e)}),s({_:2},[p(D.value,t=>({name:t,fn:_(n=>[m(e.$slots,t,d(l(n)))])}))]),1040))}});export{S as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{InputCompact as y,provideInputUi as b}from"@soybeanjs/headless/input";const x=s({name:`SInput`,__name:`input`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},inputRef:{type:Function},clearable:{type:Boolean},controlProps:{},clearProps:{},defaultValue:{},modelValue:{},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size}),{$base:{clear:n({size:i,shape:`circle`})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`group flex items-center w-full rounded-md border border-solid border-input bg-background transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`],control:[`grow bg-transparent outline-none`,`placeholder:text-muted-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`,`file:border-0 file:bg-transparent file:font-medium`],clearable:[`hidden shrink-0 opacity-50`,`group-hover:inline-flex group-focus-within:inline-flex hover:opacity-100 focus-visible:opacity-100`],visible:`cursor-pointer`},variants:{size:{xs:{root:`h-6 px-1.5 text-2xs gap-1`,control:`file:py-1.25`},sm:{root:`h-7 px-2 text-xs gap-1.5`,control:`file:py-1.25`},md:{root:`h-8 px-2.5 text-sm gap-2`,control:`file:py-1.25`},lg:{root:`h-9 px-3 text-base gap-2.5`,control:`file:py-1.25`},xl:{root:`h-10 px-3.5 text-lg gap-3`,control:`file:py-1.25`},"2xl":{root:`h-12 px-4 text-xl gap-3.5`,control:`file:py-2`}}},defaultVariants:{size:`md`}});export{t as inputVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`group flex items-center w-full rounded-md border border-solid border-input bg-background transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`],control:[`grow min-w-0 h-full bg-transparent outline-none`,`placeholder:text-muted-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`,`file:border-0 file:bg-transparent file:font-medium`],clear:[`hidden shrink-0 opacity-50`,`group-hover:inline-flex group-focus-within:inline-flex hover:opacity-100 focus-visible:opacity-100`],visible:`shrink-0 cursor-pointer`},variants:{size:{xs:{root:`h-6 px-1.5 text-2xs gap-1`,control:`file:py-1.25`},sm:{root:`h-7 px-2 text-xs gap-1.5`,control:`file:py-1.25`},md:{root:`h-8 px-2.5 text-sm gap-2`,control:`file:py-1.25`},lg:{root:`h-9 px-3 text-base gap-2.5`,control:`file:py-1.25`},xl:{root:`h-10 px-3.5 text-lg gap-3`,control:`file:py-1.25`},"2xl":{root:`h-12 px-4 text-xl gap-3.5`,control:`file:py-2`}}},defaultVariants:{size:`md`}});export{t as inputVariants};
@@ -1,3 +1,3 @@
1
- import { InputNumberEmits, InputNumberProps } from "./types.js";
1
+ import { InputNumberEmits, InputNumberProps, InputNumberSlots } from "./types.js";
2
2
  import { _default } from "./input-number.vue.js";
3
3
  export * from "@soybeanjs/headless/input-number";
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{inputNumberVariants as n}from"./variants.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{InputNumberControl as v,InputNumberDecrement as y,InputNumberIncrement as b,InputNumberRoot as x,provideInputNumberUi as S}from"@soybeanjs/headless/input-number";const C=s({name:`SInputNumber`,__name:`input-number`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},center:{type:Boolean},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},incrementProps:{},decrementProps:{},defaultValue:{},modelValue:{},min:{},max:{},step:{},stepSnapping:{type:Boolean},focusOnChange:{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
+ import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputNumberVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{InputNumberCompact as y,provideInputNumberUi as b}from"@soybeanjs/headless/input-number";const x=s({name:`SInputNumber`,__name:`input-number`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},center:{type:Boolean},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},incrementProps:{},decrementProps:{},clearProps:{},defaultValue:{},modelValue:{},min:{},max:{},step:{},stepSnapping:{type:Boolean},focusOnChange:{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`,`clear`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`,`center`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size,center:S.center}),{$base:{decrement:n({size:i}),increment:n({size:i}),clear:n({size:i,shape:`circle`})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
@@ -1,21 +1,14 @@
1
- import { InputNumberProps } from "./types.js";
1
+ import { InputNumberProps, InputNumberSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
 
4
4
  //#region src/components/input-number/input-number.vue.d.ts
5
- declare var __VLS_10: {}, __VLS_24: {}, __VLS_32: {}, __VLS_45: {};
6
- type __VLS_Slots = {} & {
7
- leading?: (props: typeof __VLS_10) => any;
8
- } & {
9
- trailing?: (props: typeof __VLS_24) => any;
10
- } & {
11
- decrement?: (props: typeof __VLS_32) => any;
12
- } & {
13
- increment?: (props: typeof __VLS_45) => any;
14
- };
5
+ type __VLS_Slots = InputNumberSlots;
15
6
  declare const __VLS_base: _$vue.DefineComponent<InputNumberProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
16
- "update:modelValue": (val: number) => any;
7
+ clear: (event: PointerEvent) => any;
8
+ "update:modelValue": (val: number | null) => any;
17
9
  }, string, _$vue.PublicProps, Readonly<InputNumberProps> & Readonly<{
18
- "onUpdate:modelValue"?: ((val: number) => any) | undefined;
10
+ onClear?: ((event: PointerEvent) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((val: number | null) => any) | undefined;
19
12
  }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
20
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
14
  declare const _default: typeof __VLS_export;
@@ -1,12 +1,12 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { InputNumberControlProps, InputNumberDecrementProps, InputNumberIncrementProps, InputNumberRootEmits, InputNumberRootProps, InputNumberUi } from "@soybeanjs/headless/input-number";
2
+ import { InputNumberCompactEmits, InputNumberCompactProps, InputNumberCompactSlots, InputNumberUi } from "@soybeanjs/headless/input-number";
3
3
  import { ClassValue } from "@soybeanjs/headless/types";
4
4
 
5
5
  //#region src/components/input-number/types.d.ts
6
6
  /**
7
7
  * Properties for the InputNumber component.
8
8
  */
9
- interface InputNumberProps extends InputNumberRootProps {
9
+ interface InputNumberProps extends InputNumberCompactProps {
10
10
  /**
11
11
  * Additional class names applied to the root element.
12
12
  */
@@ -25,30 +25,14 @@ interface InputNumberProps extends InputNumberRootProps {
25
25
  * @defaultValue false
26
26
  */
27
27
  center?: boolean;
28
- /** Whether to show the clear icon */
29
- clearable?: boolean;
30
- /**
31
- * The function to set the input element.
32
- *
33
- * @param el - The input element.
34
- */
35
- inputRef?: (el: HTMLInputElement) => void;
36
- /**
37
- * Properties forwarded to the control element.
38
- */
39
- controlProps?: InputNumberControlProps;
40
- /**
41
- * Properties forwarded to the increment element.
42
- */
43
- incrementProps?: InputNumberIncrementProps;
44
- /**
45
- * Properties forwarded to the decrement element.
46
- */
47
- decrementProps?: InputNumberDecrementProps;
48
28
  }
49
29
  /**
50
30
  * Events for the InputNumber component.
51
31
  */
52
- type InputNumberEmits = InputNumberRootEmits;
32
+ type InputNumberEmits = InputNumberCompactEmits;
33
+ /**
34
+ * Slots for the InputNumber component.
35
+ */
36
+ type InputNumberSlots = InputNumberCompactSlots;
53
37
  //#endregion
54
- export { InputNumberEmits, InputNumberProps };
38
+ export { InputNumberEmits, InputNumberProps, InputNumberSlots };
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:`group flex items-center w-full rounded-md border border-input bg-background transition-all-150 focus-within:border-input focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50`,decrement:`flex h-full shrink-0 items-center justify-center text-muted-foreground bg-transparent outline-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-20`,increment:`flex h-full shrink-0 items-center justify-center text-muted-foreground bg-transparent outline-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-20`,control:[`h-full w-full grow bg-transparent outline-none`,`placeholder:text-muted-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`],clearable:`hidden group-hover:block size-1em cursor-pointer opacity-50 hover:opacity-100`},variants:{size:{xs:{root:`h-6 px-1.5 text-2xs gap-1`,decrement:`p-0.75`,increment:`p-0.75`},sm:{root:`h-7 px-2 text-xs gap-1.5`,decrement:`p-1`,increment:`p-1`},md:{root:`h-8 px-2.5 text-sm gap-2`,decrement:`p-1.25`,increment:`p-1.25`},lg:{root:`h-9 px-3 text-base gap-2.5`,decrement:`p-1.5`,increment:`p-1.5`},xl:{root:`h-10 px-3.5 text-lg gap-3`,decrement:`p-1.75`,increment:`p-1.75`},"2xl":{root:`h-12 px-4 text-xl gap-3.5`,decrement:`p-2`,increment:`p-2`}},center:{true:{decrement:`-order-1`,control:`text-center`}}},defaultVariants:{size:`md`,center:!1}});export{t as inputNumberVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`group flex items-center w-full rounded-md border border-input bg-background transition-all-150 focus-within:border-input focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50`,decrement:`shrink-0`,increment:`shrink-0`,control:[`grow min-w-0 h-full bg-transparent outline-none`,`placeholder:text-muted-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`],clear:[`hidden shrink-0 opacity-50`,`group-hover:inline-flex group-focus-within:inline-flex hover:opacity-100 focus-visible:opacity-100`]},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`}},center:{true:{decrement:`-order-1`,control:`text-center`}}},defaultVariants:{size:`md`,center:!1}});export{t as inputNumberVariants};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{inputOtpVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderSlot as l,toHandlers as u,unref as d,withCtx as f}from"vue";import{useForwardListeners as p,useOmitProps as m}from"@soybeanjs/headless/composables";import{InputOtpCompact as h,provideInputOtpUi as g}from"@soybeanjs/headless/input-otp";const _=i({name:`SInputOtp`,__name:`input-otp`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},align:{},ui:{},id:{},autocomplete:{},autofocus:{type:Boolean},disabled:{type:Boolean},minlength:{},placeholder:{},readonly:{type:Boolean},"aria-label":{},modelValue:{},defaultValue:{},maxlength:{},inputmode:{},pattern:{},pushPasswordManagerStrategy:{},pasteTransformer:{type:Function},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`complete`,`input`,`change`,`select`,`focus`,`blur`,`mouseover`,`mouseleave`,`paste`],setup(i,{emit:_}){let v=i,y=p(_),b=m(v,[`class`,`size`,`align`,`ui`]);return g(n(()=>e(t({size:v.size,align:v.align}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(y))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{inputOtpVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderSlot as l,toHandlers as u,unref as d,withCtx as f}from"vue";import{useForwardListeners as p,useOmitProps as m}from"@soybeanjs/headless/composables";import{InputOtpCompact as h,provideInputOtpUi as g}from"@soybeanjs/headless/input-otp";const _=i({name:`SInputOtp`,__name:`input-otp`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},align:{},ui:{},id:{},autocomplete:{},autofocus:{type:Boolean},disabled:{type:Boolean},minlength:{},placeholder:{},readonly:{type:Boolean},"aria-label":{},modelValue:{},defaultValue:{},maxlength:{},inputmode:{},pattern:{},pushPasswordManagerStrategy:{},pasteTransformer:{type:Function},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`complete`,`input`,`change`,`select`,`focus`,`blur`,`mouseover`,`mouseleave`,`paste`],setup(i,{emit:_}){let v=i,y=p(_),b=m(v,[`class`,`size`,`align`,`ui`]);return g(n(()=>e(t({size:v.size,align:v.align}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(y))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
@@ -6,24 +6,24 @@ type __VLS_Slots = InputOtpSlots;
6
6
  declare const __VLS_base: _$vue.DefineComponent<InputOtpProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
7
7
  input: (value: string) => any;
8
8
  select: (event: Event) => any;
9
- "update:modelValue": (value: string) => any;
10
9
  blur: (event: FocusEvent) => any;
11
10
  change: (event: Event) => any;
12
11
  focus: (event: FocusEvent) => any;
13
12
  mouseleave: (event: MouseEvent) => any;
14
13
  mouseover: (event: MouseEvent) => any;
15
14
  paste: (event: ClipboardEvent) => any;
15
+ "update:modelValue": (value: string) => any;
16
16
  complete: (value: string) => any;
17
17
  }, string, _$vue.PublicProps, Readonly<InputOtpProps> & Readonly<{
18
18
  onInput?: ((value: string) => any) | undefined;
19
19
  onSelect?: ((event: Event) => any) | undefined;
20
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
21
20
  onBlur?: ((event: FocusEvent) => any) | undefined;
22
21
  onChange?: ((event: Event) => any) | undefined;
23
22
  onFocus?: ((event: FocusEvent) => any) | undefined;
24
23
  onMouseleave?: ((event: MouseEvent) => any) | undefined;
25
24
  onMouseover?: ((event: MouseEvent) => any) | undefined;
26
25
  onPaste?: ((event: ClipboardEvent) => any) | undefined;
26
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
27
27
  onComplete?: ((value: string) => any) | undefined;
28
28
  }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1 +1 @@
1
- import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{themeSizeMap as n,themeSizeRatio as r}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as i}from"../button/variants.js";import{drawerVariants as a}from"../drawer/variants.js";import{layoutClassicVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots 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 _,useSlots as v,withCtx as y}from"vue";import{useOmitProps as b}from"@soybeanjs/headless/composables";import{keysOf as x}from"@soybeanjs/utils";import{LayoutClassicCompact as S,provideLayoutClassicUi as C}from"@soybeanjs/headless/layout";const w=u({name:`SLayoutClassic`,__name:`layout-classic`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`md`},ui:{},orientation:{},scrollBehavior:{},scrollId:{},baseZIndex:{},fixedTop:{type:Boolean,default:!0},fixedFooter:{type:Boolean},stretchFooter:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!0},side:{},sidebarVisible:{type:Boolean,default:!0},sidebarWidth:{},collapsedSidebarWidth:{},isMobile:{type:Boolean},mobileSidebarWidth:{},headerVisible:{type:Boolean,default:!0},headerHeight:{},tabVisible:{type:Boolean,default:!0},tabHeight:{},footerVisible:{type:Boolean,default:!0},footerHeight:{},fullContent:{type:Boolean},pxToRem:{},sidebarProps:{},railProps:{},mainProps:{},headerProps:{},tabProps:{},contentProps:{},footerProps:{},mobileProps:{}},emits:[`update:open`],setup(u,{emit:w}){let T=u,E=w,D=v(),O=b(T,[`class`,`size`,`ui`,`pxToRem`]),k=s(()=>x(D).filter(e=>e!==`sidebar`)),A=e=>T.pxToRem?T.pxToRem(e):e*r[T.size]/n.md;return C(s(()=>{let n=o({size:T.size,side:T.side,fullContent:T.fullContent}),r=a({size:T.size,side:T.side}),s=i({size:T.size,color:`accent`,variant:`ghost`,shape:`square`,fitContent:!0});return t(e(n,{mobileDrawer:r.popup(),trigger:s}),T.ui,{root:T.class})})),(e,t)=>(m(),c(_(S),f(_(O),{"px-to-rem":A,"onUpdate:open":t[0]||=e=>E(`update:open`,e)}),l({sidebar:y(t=>[g(e.$slots,`sidebar`,p(d(t)))]),_:2},[h(k.value,t=>({name:t,fn:y(()=>[g(e.$slots,t)])}))]),1040))}});export{w as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{themeSizeMap as t,themeSizeRatio as n}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as r}from"../button/variants.js";import{drawerVariants as i}from"../drawer/variants.js";import{layoutClassicVariants as a}from"./variants.js";import{computed as o,createBlock as s,createSlots 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,useSlots as _,withCtx as v}from"vue";import{useOmitProps as y}from"@soybeanjs/headless/composables";import{keysOf as b}from"@soybeanjs/utils";import{LayoutClassicCompact as x,provideLayoutClassicUi as S}from"@soybeanjs/headless/layout";const C=l({name:`SLayoutClassic`,__name:`layout-classic`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`md`},ui:{},orientation:{},scrollBehavior:{},scrollId:{},baseZIndex:{},fixedTop:{type:Boolean,default:!0},fixedFooter:{type:Boolean},stretchFooter:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!0},side:{},sidebarVisible:{type:Boolean,default:!0},sidebarWidth:{},collapsedSidebarWidth:{},isMobile:{type:Boolean},mobileSidebarWidth:{},headerVisible:{type:Boolean,default:!0},headerHeight:{},tabVisible:{type:Boolean,default:!0},tabHeight:{},footerVisible:{type:Boolean,default:!0},footerHeight:{},fullContent:{type:Boolean},pxToRem:{},sidebarProps:{},railProps:{},mainProps:{},headerProps:{},tabProps:{},contentProps:{},footerProps:{},mobileProps:{}},emits:[`update:open`],setup(l,{emit:C}){let w=l,T=C,E=_(),D=y(w,[`class`,`size`,`ui`,`pxToRem`]),O=o(()=>b(E).filter(e=>e!==`sidebar`)),k=e=>w.pxToRem?w.pxToRem(e):e*n[w.size]/t.md;return S(o(()=>e(Object.assign(a({size:w.size,side:w.side,fullContent:w.fullContent}),{$base:{trigger:r({size:w.size})},$alias:{variants:{...i({size:w.size,side:w.side})},map:{popup:`mobileDrawer`}}}),w.ui,{root:w.class}))),(e,t)=>(p(),s(g(x),d(g(D),{"px-to-rem":k,"onUpdate:open":t[0]||=e=>T(`update:open`,e)}),c({sidebar:v(t=>[h(e.$slots,`sidebar`,f(u(t)))]),_:2},[m(O.value,t=>({name:t,fn:v(()=>[h(e.$slots,t)])}))]),1040))}});export{C as default};
@@ -1 +1 @@
1
- import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{themeSizeMap as n,themeSizeRatio as r}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as i}from"../button/variants.js";import{drawerVariants as a}from"../drawer/variants.js";import{layoutVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots 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 _,useSlots as v,withCtx as y}from"vue";import{useOmitProps as b}from"@soybeanjs/headless/composables";import{keysOf as x}from"@soybeanjs/utils";import{LayoutCompact as S,provideLayoutUi as C}from"@soybeanjs/headless/layout";const w=u({name:`SLayout`,__name:`layout`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`md`},ui:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!0},side:{},variant:{},collapsible:{},sidebarVisible:{type:Boolean,default:!0},sidebarWidth:{},collapsedSidebarWidth:{},isMobile:{type:Boolean},mobileSidebarWidth:{},headerVisible:{type:Boolean,default:!0},headerHeight:{},tabVisible:{type:Boolean,default:!0},tabHeight:{},footerVisible:{type:Boolean,default:!0},footerHeight:{},fullContent:{type:Boolean},pxToRem:{},sidebarProps:{},railProps:{},mainProps:{},headerProps:{},tabProps:{},contentProps:{},footerProps:{},mobileProps:{}},emits:[`update:open`],setup(u,{emit:w}){let T=u,E=w,D=v(),O=b(T,[`class`,`size`,`ui`,`pxToRem`]),k=s(()=>x(D).filter(e=>e!==`sidebar`)),A=e=>T.pxToRem?T.pxToRem(e):e*r[T.size]/n.md;return C(s(()=>{let n=o({size:T.size,variant:T.variant,side:T.side,collapsible:T.collapsible,fullContent:T.fullContent}),r=a({size:T.size,side:T.side}),s=i({size:T.size,color:`accent`,variant:`ghost`,shape:`square`,fitContent:!0});return t(e(n,{mobileDrawer:r.popup(),trigger:s}),T.ui,{root:T.class})})),(e,t)=>(m(),c(_(S),f(_(O),{"px-to-rem":A,"onUpdate:open":t[0]||=e=>E(`update:open`,e)}),l({sidebar:y(t=>[g(e.$slots,`sidebar`,p(d(t)))]),_:2},[h(k.value,t=>({name:t,fn:y(()=>[g(e.$slots,t)])}))]),1040))}});export{w as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{themeSizeMap as t,themeSizeRatio as n}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as r}from"../button/variants.js";import{drawerVariants as i}from"../drawer/variants.js";import{layoutVariants as a}from"./variants.js";import{computed as o,createBlock as s,createSlots 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,useSlots as _,withCtx as v}from"vue";import{useOmitProps as y}from"@soybeanjs/headless/composables";import{keysOf as b}from"@soybeanjs/utils";import{LayoutCompact as x,provideLayoutUi as S}from"@soybeanjs/headless/layout";const C=l({name:`SLayout`,__name:`layout`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`md`},ui:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!0},side:{},variant:{},collapsible:{},sidebarVisible:{type:Boolean,default:!0},sidebarWidth:{},collapsedSidebarWidth:{},isMobile:{type:Boolean},mobileSidebarWidth:{},headerVisible:{type:Boolean,default:!0},headerHeight:{},tabVisible:{type:Boolean,default:!0},tabHeight:{},footerVisible:{type:Boolean,default:!0},footerHeight:{},fullContent:{type:Boolean},pxToRem:{},sidebarProps:{},railProps:{},mainProps:{},headerProps:{},tabProps:{},contentProps:{},footerProps:{},mobileProps:{}},emits:[`update:open`],setup(l,{emit:C}){let w=l,T=C,E=_(),D=y(w,[`class`,`size`,`ui`,`pxToRem`]),O=o(()=>b(E).filter(e=>e!==`sidebar`)),k=e=>w.pxToRem?w.pxToRem(e):e*n[w.size]/t.md;return S(o(()=>e(Object.assign(a({size:w.size,variant:w.variant,side:w.side,collapsible:w.collapsible,fullContent:w.fullContent}),{$base:{trigger:r({size:w.size})},$alias:{variants:{...i({size:w.size,side:w.side})},map:{popup:`mobileDrawer`}}}),w.ui,{root:w.class}))),(e,t)=>(p(),s(g(x),d(g(D),{"px-to-rem":k,"onUpdate:open":t[0]||=e=>T(`update:open`,e)}),c({sidebar:v(t=>[h(e.$slots,`sidebar`,f(u(t)))]),_:2},[m(O.value,t=>({name:t,fn:v(()=>[h(e.$slots,t)])}))]),1040))}});export{C as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{listVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,openBlock as a,renderSlot as o,unref as s,withCtx as c}from"vue";import{ListRoot as l,provideListUi as u}from"@soybeanjs/headless/list";const d=i({name:`SList`,__name:`list`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(i){let d=i;return u(n(()=>e(t({size:d.size}),d.ui,{root:d.class}))),(e,t)=>(a(),r(s(l),null,{default:c(()=>[o(e.$slots,`default`)]),_:3}))}});export{d as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{listVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,openBlock as a,renderSlot as o,unref as s,withCtx as c}from"vue";import{ListRoot as l,provideListUi as u}from"@soybeanjs/headless/list";const d=i({name:`SList`,__name:`list`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},setup(i){let d=i;return u(n(()=>e(t({size:d.size}),d.ui,{root:d.class}))),(e,t)=>(a(),r(s(l),null,{default:c(()=>[o(e.$slots,`default`)]),_:3}))}});export{d as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{kbdVariants as t}from"../kbd/variants.js";import{menuVariants as n}from"./variants.js";import{computed as r,toValue as i}from"vue";import{provideMenuUi as a}from"@soybeanjs/headless/menu";const o=o=>{a(r(()=>{let r=i(o),a=n({size:r.size,indicatorPosition:r.indicatorPosition}),s=t({size:r.size}),c=a.shortcut;return a.shortcut=()=>`${c()} ${s}`,e(a,r.ui,{popup:r.class})}))};export{o as provideMenuUi};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{kbdVariants as t}from"../kbd/variants.js";import{menuVariants as n}from"./variants.js";import{computed as r,toValue as i}from"vue";import{provideMenuUi as a}from"@soybeanjs/headless/menu";const o=o=>{a(r(()=>{let r=i(o),a=n({size:r.size,indicatorPosition:r.indicatorPosition}),s=t({size:r.size}),c=a.shortcut;return a.shortcut=()=>`${c()} ${s}`,e(a,r.ui,{popup:r.class})}))};export{o as provideMenuUi};
@@ -1,10 +1,3 @@
1
1
  import { MenuCheckboxOptionsCompact as SMenuCheckboxOptions, MenuOptionsCompact as SMenuOptions, MenuRadioOptionsCompact as SMenuRadioOptions } from "@soybeanjs/headless/menu";
2
2
  export * from "@soybeanjs/headless/menu";
3
-
4
- //#region src/components/menu/index.d.ts
5
- declare namespace index_d_exports {
6
- export { SMenuCheckboxOptions, SMenuOptions, SMenuRadioOptions };
7
- }
8
- import * as import__soybeanjs_headless_menu from "@soybeanjs/headless/menu";
9
- //#endregion
10
- export { SMenuCheckboxOptions, SMenuOptions, SMenuRadioOptions, index_d_exports };
3
+ export { SMenuCheckboxOptions, SMenuOptions, SMenuRadioOptions };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideMenuUi as t}from"../menu/context.js";import{menubarVariants as n}from"./variants.js";import{computed as r,createBlock 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{keysOf as y}from"@soybeanjs/utils";import{MenubarCompact as b,provideMenubarUi as x}from"@soybeanjs/headless/menubar";const S=o({name:`SMenubar`,__name:`menubar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},placement:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},modelValue:{},defaultValue:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:open`,`select`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`,`indicatorPosition`]),D=_(w),O=r(()=>y(T));return x(r(()=>e(n({size:C.size}),C.ui,{root:C.class}))),t(()=>C),(e,t)=>(u(),i(m(b),c(m(E),p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideMenuUi as t}from"../menu/context.js";import{menubarVariants as n}from"./variants.js";import{computed as r,createBlock 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{keysOf as y}from"@soybeanjs/utils";import{MenubarCompact as b,provideMenubarUi as x}from"@soybeanjs/headless/menubar";const S=o({name:`SMenubar`,__name:`menubar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},placement:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},modelValue:{},defaultValue:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:open`,`select`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`,`indicatorPosition`]),D=_(w),O=r(()=>y(T));return x(r(()=>e(n({size:C.size}),C.ui,{root:C.class}))),t(()=>C),(e,t)=>(u(),i(m(b),c(m(E),p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
@@ -1,7 +1,7 @@
1
1
  import { MenubarProps, MenubarSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
- import { DefinedValue } from "@soybeanjs/headless/types";
4
3
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
+ import { DefinedValue } from "@soybeanjs/headless/types";
5
5
 
6
6
  //#region src/components/menubar/menubar.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<{
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideNavigationMenuExtraUi as t}from"./context.js";import{navigationMenuVariants as n}from"./variants.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/navigation-menu";const j=d({name:`SNavigationMenu`,__name:`navigation-menu`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},modelValue:{},defaultValue:{},dir:{},orientation:{},delayDuration:{},skipDelayDuration:{},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean},itemProps:{},linkProps:{},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`,`linkProps`,`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(n({size:M.size}),M.ui,{root:M.class}));return A(B),t(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{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideNavigationMenuExtraUi as t}from"./context.js";import{navigationMenuVariants as n}from"./variants.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/navigation-menu";const j=d({name:`SNavigationMenu`,__name:`navigation-menu`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},modelValue:{},defaultValue:{},dir:{},orientation:{},delayDuration:{},skipDelayDuration:{},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean},itemProps:{},linkProps:{},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`,`linkProps`,`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(n({size:M.size}),M.ui,{root:M.class}));return A(B),t(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,4 +1,4 @@
1
1
  import { PageTabsVariant } from "./variants.js";
2
- import { PageTabsContextMenuOptionData, PageTabsEmits, PageTabsExtendedUi, PageTabsExtraUiSlot, PageTabsOptionData, PageTabsProps, PageTabsState } from "./types.js";
2
+ import { PageTabsEmits, PageTabsProps, PageTabsSlots } from "./types.js";
3
3
  import { _default } from "./page-tabs.vue.js";
4
4
  export * from "@soybeanjs/headless/page-tabs";
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import n from"../context-menu/context-menu.js";import{usePageTabsState as r}from"./hooks.js";import{pageTabsVariants as i}from"./variants.js";import{Fragment as a,computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createElementVNode as u,createVNode as d,defineComponent as f,isRef as p,mergeProps as m,normalizeClass as h,openBlock as g,renderList as _,shallowRef as v,toDisplayString as y,unref as b,watchEffect as x,withCtx as S}from"vue";import{useControllableState as C,useOmitProps as w}from"@soybeanjs/headless/composables";import{PageTabsClose as T,PageTabsItem as E,PageTabsPin as D,PageTabsRoot as O,providePageTabsUi as k}from"@soybeanjs/headless/page-tabs";const A=f({name:`SPageTabs`,__name:`page-tabs`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},variant:{default:`chrome`},ui:{},items:{},menuFactory:{},beforeClose:{type:Function,default:()=>!0},modelValue:{},middleClickClose:{type:Boolean}},emits:[`update:modelValue`,`update:items`,`click`,`close`,`pin`,`contextmenu`,`selectContextMenu`],setup(f,{emit:A}){let j=f,M=A,N=w(j,[`class`,`size`,`variant`,`ui`,`modelValue`,`items`,`menuFactory`,`beforeClose`]),P=C(()=>j.modelValue,e=>{M(`update:modelValue`,e??``)},``),F=C(()=>j.items,e=>{M(`update:items`,e)},[]),{closeTab:I,pinTab:L,sortTabs:R,getState:z}=r({items:F,modelValue:P,beforeClose:j.beforeClose}),B=v(null),V=v(null),H=o(()=>{if(!B.value||!j.menuFactory)return[];let e=z(B.value);return j.menuFactory(B.value,e)}),U=e=>{I(e.value,()=>{M(`close`,e)})},W=(e,t)=>{L(e,t),M(`pin`,e)},G=(e,t)=>{V.value=e.currentTarget,B.value=t,M(`contextmenu`,t)},K=async e=>{B.value&&(await e.action?.(),M(`selectContextMenu`,e,B.value))},q=o(()=>e(i({size:j.size,variant:j.variant}),j.ui,{root:j.class}));return x(()=>{R()}),k(q),(e,r)=>(g(),s(b(O),m(b(N),{modelValue:b(P),"onUpdate:modelValue":r[0]||=e=>p(P)?P.value=e:null}),{default:S(()=>[(g(!0),l(a,null,_(b(F),e=>(g(),s(b(E),{key:e.value,value:e.value,pinned:e.pinned,onClick:t=>M(`click`,e),onClose:t=>U(e),onPin:t=>W(e,t),onPointerenter:t=>G(t,e)},{default:S(()=>[d(t,{icon:e.icon},null,8,[`icon`]),u(`span`,{class:h(q.value.itemText)},y(e.label),3),e.hidePinnedIcon?c(`v-if`,!0):(g(),s(b(D),{key:0,"as-child":``},{default:S(()=>[d(t,{icon:`lucide:pin`})]),_:1})),d(b(T),{"as-child":``},{default:S(()=>[d(t,{icon:`lucide:x`})]),_:1}),f.variant===`chrome`?(g(),l(a,{key:1},[(g(),l(`svg`,{height:`100%`,width:`100%`,viewBox:`0 0 8 8`,class:h(q.value.chromeBgLeft)},[...r[1]||=[u(`path`,{d:`M 0 8 A 8 8 0 0 0 8 0 L 8 8 Z`},null,-1)]],2)),(g(),l(`svg`,{height:`100%`,width:`100%`,viewBox:`0 0 8 8`,class:h(q.value.chromeBgRight)},[...r[2]||=[u(`path`,{d:`M 0 0 A 8 8 0 0 0 8 8 L 0 8 Z`},null,-1)]],2))],64)):c(`v-if`,!0),f.variant===`slider`?(g(),l(`div`,{key:2,class:h(q.value.sliderIndicator)},null,2)):c(`v-if`,!0)]),_:2},1032,[`value`,`pinned`,`onClick`,`onClose`,`onPin`,`onPointerenter`]))),128)),H.value.length?(g(),s(n,{key:0,modal:!1,items:H.value,"trigger-props":{reference:V.value},onSelect:K},null,8,[`items`,`trigger-props`])):c(`v-if`,!0)]),_:1},16,[`modelValue`]))}});export{A as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideMenuUi as t}from"../menu/context.js";import{pageTabsVariants as n}from"./variants.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createSlots as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeClass as p,normalizeProps as m,openBlock as h,renderList as g,renderSlot as _,toHandlers as v,unref as y,useSlots as b,withCtx as x}from"vue";import{useForwardListeners as S,useOmitProps as C}from"@soybeanjs/headless/composables";import{keysOf as w}from"@soybeanjs/utils";import{PageTabsCompact as T,providePageTabsUi as E}from"@soybeanjs/headless/page-tabs";const D=u({name:`SPageTabs`,__name:`page-tabs`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},variant:{default:`chrome`},ui:{},items:{},menuFactory:{},beforeClose:{},itemProps:{},pinProps:{},closeProps:{},contextMenuProps:{},modelValue:{},middleClickClose:{type:Boolean},dir:{},loop:{type:Boolean,default:!0},currentTabStopId:{},defaultCurrentTabStopId:{},preventScrollOnEntryFocus:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:items`,`click`,`close`,`pin`,`contextmenu`,`selectContextMenu`],setup(u,{emit:D}){let O=u,k=D,A=b(),j=C(O,[`class`,`size`,`ui`,`onClick`,`onContextmenu`]),M=S(k),N=i(()=>w(A).filter(e=>e!==`indicator`)),P=i(()=>e(n({size:O.size,variant:O.variant}),O.ui,{root:O.class}));return t(()=>({size:O.size})),E(P),(e,t)=>(h(),a(y(T),f(y(j),v(y(M))),l({indicator:x(()=>[u.variant===`chrome`?(h(),s(r,{key:0},[(h(),s(`svg`,{height:`100%`,width:`100%`,viewBox:`0 0 8 8`,class:p(P.value.chromeBgLeft)},[...t[0]||=[c(`path`,{d:`M 0 8 A 8 8 0 0 0 8 0 L 8 8 Z`},null,-1)]],2)),(h(),s(`svg`,{height:`100%`,width:`100%`,viewBox:`0 0 8 8`,class:p(P.value.chromeBgRight)},[...t[1]||=[c(`path`,{d:`M 0 0 A 8 8 0 0 0 8 8 L 0 8 Z`},null,-1)]],2))],64)):o(`v-if`,!0),u.variant===`slider`?(h(),s(`div`,{key:1,class:p(P.value.sliderIndicator)},null,2)):o(`v-if`,!0)]),_:2},[g(N.value,t=>({name:t,fn:x(n=>[o(` @vue-expect-error ignore slot type `),_(e.$slots,t,m(d(n)))])}))]),1040))}});export{D as default};
@@ -1,8 +1,10 @@
1
- import { PageTabsContextMenuOptionData, PageTabsEmits, PageTabsOptionData, PageTabsProps } from "./types.js";
1
+ import { PageTabsEmits, PageTabsProps, PageTabsSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
+ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
+ import { PageTabsOptionData } from "@soybeanjs/headless/page-tabs";
3
5
 
4
6
  //#region src/components/page-tabs/page-tabs.vue.d.ts
5
- declare const __VLS_export: <T extends PageTabsOptionData>(__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 PageTabsOptionData = PageTabsOptionData>(__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<{
6
8
  props: _$vue.PublicProps & __VLS_PrettifyLocal<PageTabsProps<T> & {
7
9
  onClick?: ((tab: T) => any) | undefined;
8
10
  onContextmenu?: ((tab: T) => any) | undefined;
@@ -10,13 +12,13 @@ declare const __VLS_export: <T extends PageTabsOptionData>(__VLS_props: NonNulla
10
12
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
11
13
  "onUpdate:items"?: ((items: T[]) => any) | undefined;
12
14
  onPin?: ((tab: T) => any) | undefined;
13
- onSelectContextMenu?: ((menu: PageTabsContextMenuOptionData, tab: T) => any) | undefined;
15
+ onSelectContextMenu?: ((menu: _$_soybeanjs_headless0.PageTabsContextMenuOptionData, tab: T) => any) | undefined;
14
16
  }> & (typeof globalThis extends {
15
17
  __VLS_PROPS_FALLBACK: infer P;
16
18
  } ? P : {});
17
19
  expose: (exposed: {}) => void;
18
20
  attrs: any;
19
- slots: {};
21
+ slots: PageTabsSlots<T>;
20
22
  emit: PageTabsEmits<T>;
21
23
  }>) => _$vue.VNode & {
22
24
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,102 +1,13 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { IconValue } from "../icon/types.js";
3
- import { index_d_exports } from "../menu/index.js";
4
2
  import { PageTabsVariant } from "./variants.js";
5
- import { PageTabsItemProps, PageTabsRootEmits, PageTabsRootProps, PageTabsUiSlot } from "@soybeanjs/headless/page-tabs";
6
- import { ClassValue, MaybePromise } from "@soybeanjs/headless/types";
3
+ import { PageTabsCompactEmits, PageTabsCompactProps, PageTabsCompactSlots, PageTabsOptionData, PageTabsUi } from "@soybeanjs/headless/page-tabs";
4
+ import { ClassValue } from "@soybeanjs/headless/types";
7
5
 
8
6
  //#region src/components/page-tabs/types.d.ts
9
- /**
10
- * Option data for the PageTabs component.
11
- */
12
- interface PageTabsOptionData extends PageTabsItemProps {
13
- /**
14
- * Label text rendered by the component.
15
- */
16
- label: string;
17
- /**
18
- * Icon rendered by the component.
19
- */
20
- icon?: IconValue;
21
- /**
22
- * Whether to hide the pinned icon on the tab
23
- */
24
- hidePinnedIcon?: boolean;
25
- }
26
- /**
27
- * Additional UI slots for the page tabs component.
28
- */
29
- type PageTabsExtraUiSlot = 'itemText' | 'chromeBgLeft' | 'chromeBgRight' | 'sliderIndicator';
30
- /**
31
- * Extended UI class overrides for the PageTabs component.
32
- */
33
- type PageTabsExtendedUi = Record<PageTabsUiSlot | PageTabsExtraUiSlot, ClassValue>;
34
- /**
35
- * State values for PageTabsState.
36
- */
37
- interface PageTabsState {
38
- /**
39
- * Pin.
40
- */
41
- pin: () => void;
42
- /**
43
- * Unpin.
44
- */
45
- unpin: () => void;
46
- /**
47
- * Whether the component can be closed.
48
- */
49
- closable: boolean;
50
- /**
51
- * Close.
52
- */
53
- close: () => Promise<void>;
54
- /**
55
- * Whether left closable.
56
- */
57
- leftClosable: boolean;
58
- /**
59
- * Close left.
60
- */
61
- closeLeft: () => void;
62
- /**
63
- * Whether right closable.
64
- */
65
- rightClosable: boolean;
66
- /**
67
- * Close right.
68
- */
69
- closeRight: () => void;
70
- /**
71
- * Whether other closable.
72
- */
73
- otherClosable: boolean;
74
- /**
75
- * Close other.
76
- */
77
- closeOther: () => void;
78
- /**
79
- * Whether all closable.
80
- */
81
- allClosable: boolean;
82
- /**
83
- * Close all.
84
- */
85
- closeAll: () => void;
86
- }
87
- /**
88
- * Option data for the PageTabsContextMenu component.
89
- */
90
- interface PageTabsContextMenuOptionData extends index_d_exports.MenuOptionData<string> {
91
- /**
92
- * Action to perform when the menu item is selected.
93
- */
94
- action?: () => MaybePromise<void>;
95
- }
96
7
  /**
97
8
  * Properties for the PageTabs component.
98
9
  */
99
- interface PageTabsProps<T extends PageTabsOptionData> extends PageTabsRootProps {
10
+ interface PageTabsProps<T extends PageTabsOptionData = PageTabsOptionData> extends PageTabsCompactProps<T> {
100
11
  /**
101
12
  * root element class
102
13
  */
@@ -112,33 +23,15 @@ interface PageTabsProps<T extends PageTabsOptionData> extends PageTabsRootProps
112
23
  /**
113
24
  * Per-slot class overrides for the component.
114
25
  */
115
- ui?: Partial<PageTabsExtendedUi>;
116
- /**
117
- * Items rendered by the component.
118
- */
119
- items: T[];
120
- /**
121
- * A factory function to generate context menu options for each tab.
122
- * @param tab The tab data
123
- * @param state The current state and operations for the tab
124
- */
125
- menuFactory?: (tab: T, state: PageTabsState) => PageTabsContextMenuOptionData[];
126
- /**
127
- * Callback invoked before closing the tab. Return `false` or a promise that resolves to `false` to prevent closing.
128
- * @param value
129
- */
130
- beforeClose?: (value: string) => MaybePromise<boolean | void>;
26
+ ui?: Partial<PageTabsUi>;
131
27
  }
132
28
  /**
133
29
  * Events for the PageTabs component.
134
30
  */
135
- type PageTabsEmits<T> = PageTabsRootEmits & {
136
- (e: 'update:items', items: T[]): void;
137
- (e: 'click', tab: T): void;
138
- (e: 'close', tab: T): void;
139
- (e: 'pin', tab: T): void;
140
- (e: 'contextmenu', tab: T): void;
141
- (e: 'selectContextMenu', menu: PageTabsContextMenuOptionData, tab: T): void;
142
- };
31
+ type PageTabsEmits<T extends PageTabsOptionData = PageTabsOptionData> = PageTabsCompactEmits<T>;
32
+ /**
33
+ * Slots for the PageTabs component.
34
+ */
35
+ type PageTabsSlots<T extends PageTabsOptionData = PageTabsOptionData> = PageTabsCompactSlots<T>;
143
36
  //#endregion
144
- export { PageTabsContextMenuOptionData, PageTabsEmits, PageTabsExtendedUi, PageTabsExtraUiSlot, PageTabsOptionData, PageTabsProps, PageTabsState };
37
+ export { PageTabsEmits, PageTabsProps, PageTabsSlots };
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex`,item:[`group/item relative flex items-center cursor-pointer select-none outline-none`,`data-[active=true]:bg-primary-50 data-[active=true]:text-primary data-[active=true]:z-2`,`data-[active=false]:hover:bg-accent data-[active=false]:focus:bg-accent`,`dark:data-[active=true]:bg-accent dark:data-[active=true]:text-foreground`],itemText:`grow truncate`,close:[`rounded-full hover:text-muted group-data-[active=true]/item:hover:bg-primary/50`,`group-data-[active=false]/item:hover:bg-accent-foreground/20`,`dark:hover:text-foreground dark:group-data-[active=true]/item:hover:bg-accent-foreground/20`],pin:``,chromeBgLeft:[`absolute right-full bottom-0 fill-transparent`,`group-hover/item:fill-accent group-data-[active=true]/item:fill-primary-50 dark:group-data-[active=true]/item:fill-accent group-data-[active=true]/item:z-2`],chromeBgRight:[`absolute left-full bottom-0 fill-transparent`,`group-hover/item:fill-accent group-data-[active=true]/item:fill-primary-50 dark:group-data-[active=true]/item:fill-accent group-data-[active=true]/item:z-2`],sliderIndicator:`absolute bottom-0 left-0 w-full h-0.5 group-data-[active=true]/item:bg-primary`},variants:{size:{xs:{root:`text-2xs`,item:`gap-2 px-1 py-1`,itemText:`max-w-50`},sm:{root:`text-xs`,item:`gap-2.5 px-1.5 py-1`,itemText:`max-w-55`},md:{root:`text-sm`,item:`gap-3 px-2 py-1.5`,itemText:`max-w-60`,chromeBgLeft:`w-2 h-2`,chromeBgRight:`w-2 h-2`},lg:{root:`text-base`,item:`gap-3.5 px-2.5 py-1.5`,itemText:`max-w-65`},xl:{root:`text-lg`,item:`gap-4 px-3 py-2`,itemText:`max-w-70`},"2xl":{root:`text-xl`,item:`gap-4.5 px-3.5 py-2.5`,itemText:`max-w-75`}},variant:{chrome:{root:`items-end`,item:`rounded-t-md`},card:{root:`items-center gap-2`,item:`rounded-md shadow-sm border border-border`},slider:{root:`items-end`,item:`rounded-t-md`}}},defaultVariants:{size:`md`,variant:`chrome`}});export{t as pageTabsVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex`,item:[`group/item relative flex items-center cursor-pointer select-none outline-none`,`data-[active=true]:bg-primary-50 data-[active=true]:text-primary data-[active=true]:z-2`,`data-[active=false]:hover:bg-accent data-[active=false]:focus:bg-accent`,`dark:data-[active=true]:bg-accent dark:data-[active=true]:text-foreground`],itemText:`grow truncate`,close:[`outline-none rounded-full hover:text-muted group-data-[active=true]/item:hover:bg-primary/50`,`group-data-[active=false]/item:hover:bg-accent-foreground/20`,`dark:hover:text-foreground dark:group-data-[active=true]/item:hover:bg-accent-foreground/20`],pin:`outline-none`,chromeBgLeft:[`absolute right-full bottom-0 fill-transparent`,`group-hover/item:fill-accent group-data-[active=true]/item:fill-primary-50 dark:group-data-[active=true]/item:fill-accent group-data-[active=true]/item:z-2`],chromeBgRight:[`absolute left-full bottom-0 fill-transparent`,`group-hover/item:fill-accent group-data-[active=true]/item:fill-primary-50 dark:group-data-[active=true]/item:fill-accent group-data-[active=true]/item:z-2`],sliderIndicator:`absolute bottom-0 left-0 w-full h-0.5 group-data-[active=true]/item:bg-primary`},variants:{size:{xs:{root:`text-2xs`,item:`gap-2 px-1 py-1`,itemText:`max-w-50`},sm:{root:`text-xs`,item:`gap-2.5 px-1.5 py-1`,itemText:`max-w-55`},md:{root:`text-sm`,item:`gap-3 px-2 py-1.5`,itemText:`max-w-60`,chromeBgLeft:`w-2 h-2`,chromeBgRight:`w-2 h-2`},lg:{root:`text-base`,item:`gap-3.5 px-2.5 py-1.5`,itemText:`max-w-65`},xl:{root:`text-lg`,item:`gap-4 px-3 py-2`,itemText:`max-w-70`},"2xl":{root:`text-xl`,item:`gap-4.5 px-3.5 py-2.5`,itemText:`max-w-75`}},variant:{chrome:{root:`items-end`,item:`rounded-t-md`},card:{root:`items-center gap-2`,item:`rounded-md shadow-sm border border-border`},slider:{root:`items-end`,item:`rounded-t-md`}}},defaultVariants:{size:`md`,variant:`chrome`}});export{t as pageTabsVariants};