@soybeanjs/ui 0.16.0 → 0.17.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 (331) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -0
  2. package/dist/components/accordion/accordion.js +1 -1
  3. package/dist/components/accordion/accordion.vue.d.ts +1 -1
  4. package/dist/components/accordion/index.d.ts +1 -2
  5. package/dist/components/accordion/types.d.ts +17 -1
  6. package/dist/components/affix/affix.js +1 -1
  7. package/dist/components/affix/index.d.ts +2 -1
  8. package/dist/components/affix/types.d.ts +10 -1
  9. package/dist/components/alert/alert.js +1 -1
  10. package/dist/components/alert/index.d.ts +1 -2
  11. package/dist/components/alert/types.d.ts +25 -1
  12. package/dist/components/anchor/anchor.js +1 -1
  13. package/dist/components/anchor/anchor.vue.d.ts +1 -1
  14. package/dist/components/anchor/index.d.ts +2 -3
  15. package/dist/components/anchor/types.d.ts +30 -3
  16. package/dist/components/autocomplete/autocomplete.js +1 -1
  17. package/dist/components/autocomplete/autocomplete.vue.d.ts +2 -1
  18. package/dist/components/autocomplete/index.d.ts +2 -3
  19. package/dist/components/autocomplete/types.d.ts +18 -4
  20. package/dist/components/avatar/avatar.js +1 -1
  21. package/dist/components/avatar/index.d.ts +1 -2
  22. package/dist/components/avatar/types.d.ts +23 -1
  23. package/dist/components/backtop/backtop.vue.d.ts +3 -3
  24. package/dist/components/backtop/index.d.ts +2 -2
  25. package/dist/components/backtop/types.d.ts +28 -1
  26. package/dist/components/badge/badge.js +1 -1
  27. package/dist/components/badge/index.d.ts +1 -2
  28. package/dist/components/badge/types.d.ts +26 -1
  29. package/dist/components/bottom-sheet/bottom-sheet.js +1 -1
  30. package/dist/components/bottom-sheet/index.d.ts +2 -1
  31. package/dist/components/bottom-sheet/types.d.ts +17 -1
  32. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  33. package/dist/components/breadcrumb/index.d.ts +3 -2
  34. package/dist/components/breadcrumb/types.d.ts +16 -1
  35. package/dist/components/button/button-group.js +1 -1
  36. package/dist/components/button/button-icon.vue.d.ts +1 -1
  37. package/dist/components/button/button-link.vue.d.ts +1 -1
  38. package/dist/components/button/button-loading.vue.d.ts +1 -1
  39. package/dist/components/button/button.js +1 -1
  40. package/dist/components/button/types.d.ts +40 -3
  41. package/dist/components/calendar/calendar.js +1 -1
  42. package/dist/components/calendar/index.d.ts +1 -2
  43. package/dist/components/calendar/types.d.ts +20 -1
  44. package/dist/components/card/card-collapsible-trigger.js +1 -1
  45. package/dist/components/card/card-collapsible-trigger.vue.d.ts +1 -1
  46. package/dist/components/card/card.js +1 -1
  47. package/dist/components/card/index.d.ts +1 -2
  48. package/dist/components/card/types.d.ts +11 -1
  49. package/dist/components/carousel/carousel-content.js +1 -1
  50. package/dist/components/carousel/carousel-content.vue.d.ts +1 -1
  51. package/dist/components/carousel/carousel-item.js +1 -1
  52. package/dist/components/carousel/carousel-item.vue.d.ts +1 -1
  53. package/dist/components/carousel/carousel-next.js +1 -1
  54. package/dist/components/carousel/carousel-next.vue.d.ts +2 -1
  55. package/dist/components/carousel/carousel-previous.js +1 -1
  56. package/dist/components/carousel/carousel-previous.vue.d.ts +2 -1
  57. package/dist/components/carousel/carousel.js +1 -1
  58. package/dist/components/carousel/index.d.ts +1 -2
  59. package/dist/components/carousel/types.d.ts +14 -1
  60. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  61. package/dist/components/checkbox/checkbox-card.js +1 -1
  62. package/dist/components/checkbox/checkbox-group.js +1 -1
  63. package/dist/components/checkbox/checkbox.js +1 -1
  64. package/dist/components/checkbox/index.d.ts +2 -1
  65. package/dist/components/checkbox/types.d.ts +80 -1
  66. package/dist/components/clipboard/clipboard.js +1 -1
  67. package/dist/components/clipboard/index.d.ts +2 -1
  68. package/dist/components/clipboard/types.d.ts +22 -1
  69. package/dist/components/collapsible/collapsible.js +1 -1
  70. package/dist/components/collapsible/index.d.ts +3 -2
  71. package/dist/components/collapsible/types.d.ts +13 -1
  72. package/dist/components/color-area/color-area.vue.d.ts +2 -2
  73. package/dist/components/color-area/index.d.ts +1 -2
  74. package/dist/components/color-area/types.d.ts +23 -1
  75. package/dist/components/color-field/color-field.js +1 -1
  76. package/dist/components/color-field/index.d.ts +1 -2
  77. package/dist/components/color-field/types.d.ts +20 -1
  78. package/dist/components/color-picker/color-picker.vue.d.ts +8 -8
  79. package/dist/components/color-picker/index.d.ts +2 -1
  80. package/dist/components/color-picker/types.d.ts +96 -3
  81. package/dist/components/color-slider/color-slider.vue.d.ts +3 -3
  82. package/dist/components/color-slider/index.d.ts +1 -2
  83. package/dist/components/color-slider/types.d.ts +25 -1
  84. package/dist/components/color-swatch/index.d.ts +2 -4
  85. package/dist/components/color-swatch/types.d.ts +22 -1
  86. package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -1
  87. package/dist/components/color-swatch-picker/color-swatch-picker.vue.d.ts +2 -2
  88. package/dist/components/color-swatch-picker/index.d.ts +1 -2
  89. package/dist/components/color-swatch-picker/types.d.ts +38 -1
  90. package/dist/components/combobox/combobox.js +1 -1
  91. package/dist/components/combobox/index.d.ts +1 -2
  92. package/dist/components/combobox/types.d.ts +19 -1
  93. package/dist/components/command/command.js +1 -1
  94. package/dist/components/command/command.vue.d.ts +4 -3
  95. package/dist/components/command/index.d.ts +2 -3
  96. package/dist/components/command/types.d.ts +18 -4
  97. package/dist/components/config-provider/config-provider.js +1 -1
  98. package/dist/components/config-provider/config-provider.vue.d.ts +7 -10
  99. package/dist/components/config-provider/index.d.ts +2 -1
  100. package/dist/components/config-provider/types.d.ts +22 -17
  101. package/dist/components/context-menu/context-menu-checkbox.js +1 -1
  102. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +1 -1
  103. package/dist/components/context-menu/context-menu-radio.js +1 -1
  104. package/dist/components/context-menu/context-menu-radio.vue.d.ts +1 -1
  105. package/dist/components/context-menu/context-menu-wrapper.js +1 -1
  106. package/dist/components/context-menu/context-menu.js +1 -1
  107. package/dist/components/context-menu/context-menu.vue.d.ts +1 -1
  108. package/dist/components/context-menu/index.d.ts +2 -1
  109. package/dist/components/context-menu/types.d.ts +35 -1
  110. package/dist/components/date-field/index.d.ts +1 -2
  111. package/dist/components/date-field/types.d.ts +16 -1
  112. package/dist/components/date-picker/date-picker.js +1 -1
  113. package/dist/components/date-picker/date-picker.vue.d.ts +3 -1
  114. package/dist/components/date-picker/index.d.ts +1 -2
  115. package/dist/components/date-picker/types.d.ts +23 -15
  116. package/dist/components/date-picker/variants.js +1 -1
  117. package/dist/components/date-range-field/index.d.ts +1 -2
  118. package/dist/components/date-range-field/types.d.ts +47 -2
  119. package/dist/components/date-range-picker/index.d.ts +1 -2
  120. package/dist/components/date-range-picker/types.d.ts +36 -2
  121. package/dist/components/dialog/dialog-provider.js +1 -1
  122. package/dist/components/dialog/dialog.js +1 -1
  123. package/dist/components/dialog/dialog.vue.d.ts +4 -4
  124. package/dist/components/dialog/index.d.ts +2 -1
  125. package/dist/components/dialog/index.js +1 -1
  126. package/dist/components/dialog/types.d.ts +17 -1
  127. package/dist/components/drawer/drawer.js +1 -1
  128. package/dist/components/drawer/drawer.vue.d.ts +4 -4
  129. package/dist/components/drawer/types.d.ts +13 -1
  130. package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
  131. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +1 -1
  132. package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
  133. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +1 -1
  134. package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
  135. package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
  136. package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +1 -1
  137. package/dist/components/dropdown-menu/index.d.ts +2 -1
  138. package/dist/components/dropdown-menu/types.d.ts +35 -1
  139. package/dist/components/editable/editable.js +1 -1
  140. package/dist/components/editable/index.d.ts +2 -3
  141. package/dist/components/editable/types.d.ts +42 -2
  142. package/dist/components/empty/empty.js +1 -1
  143. package/dist/components/empty/index.d.ts +1 -2
  144. package/dist/components/empty/types.d.ts +38 -1
  145. package/dist/components/form/form-field-base.js +1 -1
  146. package/dist/components/form/index.d.ts +2 -3
  147. package/dist/components/form/types.d.ts +102 -8
  148. package/dist/components/form/use-form.d.ts +2 -1
  149. package/dist/components/form/use-form.js +1 -1
  150. package/dist/components/hover-card/hover-card.js +1 -1
  151. package/dist/components/hover-card/index.d.ts +1 -2
  152. package/dist/components/hover-card/types.d.ts +35 -1
  153. package/dist/components/icon/types.d.ts +7 -1
  154. package/dist/components/input/index.d.ts +1 -2
  155. package/dist/components/input/input.js +1 -1
  156. package/dist/components/input/types.d.ts +14 -1
  157. package/dist/components/input-number/index.d.ts +2 -1
  158. package/dist/components/input-number/input-number.js +1 -1
  159. package/dist/components/input-number/types.d.ts +26 -1
  160. package/dist/components/input-otp/index.d.ts +1 -2
  161. package/dist/components/input-otp/index.js +1 -1
  162. package/dist/components/input-otp/input-otp.js +1 -1
  163. package/dist/components/input-otp/input-otp.vue.d.ts +2 -2
  164. package/dist/components/input-otp/types.d.ts +19 -1
  165. package/dist/components/kbd/index.d.ts +4 -2
  166. package/dist/components/kbd/kbd.js +1 -1
  167. package/dist/components/kbd/types.d.ts +18 -2
  168. package/dist/components/label/label.js +1 -1
  169. package/dist/components/label/types.d.ts +11 -1
  170. package/dist/components/layout/index.d.ts +2 -1
  171. package/dist/components/layout/index.js +1 -1
  172. package/dist/components/layout/layout-classic.js +1 -1
  173. package/dist/components/layout/layout.js +1 -1
  174. package/dist/components/layout/types.d.ts +38 -1
  175. package/dist/components/link/index.d.ts +4 -2
  176. package/dist/components/link/link.js +1 -1
  177. package/dist/components/link/types.d.ts +8 -1
  178. package/dist/components/list/index.d.ts +3 -3
  179. package/dist/components/list/list-item.js +1 -1
  180. package/dist/components/list/list.js +1 -1
  181. package/dist/components/list/types.d.ts +32 -1
  182. package/dist/components/menu/context.js +1 -1
  183. package/dist/components/menu/index.d.ts +10 -2
  184. package/dist/components/menu/index.js +1 -1
  185. package/dist/components/menu/types.d.ts +14 -1
  186. package/dist/components/menubar/index.d.ts +2 -1
  187. package/dist/components/menubar/menubar.js +1 -1
  188. package/dist/components/menubar/menubar.vue.d.ts +1 -1
  189. package/dist/components/menubar/types.d.ts +20 -1
  190. package/dist/components/month-picker/index.d.ts +1 -2
  191. package/dist/components/month-picker/types.d.ts +44 -2
  192. package/dist/components/month-range-picker/index.d.ts +1 -2
  193. package/dist/components/month-range-picker/types.d.ts +44 -2
  194. package/dist/components/navigation-menu/index.d.ts +1 -2
  195. package/dist/components/navigation-menu/navigation-menu-option.js +1 -1
  196. package/dist/components/navigation-menu/navigation-menu-sub-option.js +1 -1
  197. package/dist/components/navigation-menu/navigation-menu.js +1 -1
  198. package/dist/components/navigation-menu/types.d.ts +85 -2
  199. package/dist/components/page-tabs/index.d.ts +2 -1
  200. package/dist/components/page-tabs/page-tabs.js +1 -1
  201. package/dist/components/page-tabs/page-tabs.vue.d.ts +1 -1
  202. package/dist/components/page-tabs/types.d.ts +79 -3
  203. package/dist/components/pagination/index.d.ts +1 -2
  204. package/dist/components/pagination/pagination.js +1 -1
  205. package/dist/components/pagination/types.d.ts +11 -1
  206. package/dist/components/password/password.js +1 -1
  207. package/dist/components/password/types.d.ts +20 -1
  208. package/dist/components/popconfirm/popconfirm-cancel.js +1 -1
  209. package/dist/components/popconfirm/popconfirm-confirm.js +1 -1
  210. package/dist/components/popconfirm/popconfirm.js +1 -1
  211. package/dist/components/popconfirm/types.d.ts +143 -4
  212. package/dist/components/popover/index.d.ts +1 -2
  213. package/dist/components/popover/popover.js +1 -1
  214. package/dist/components/popover/types.d.ts +39 -2
  215. package/dist/components/progress/index.d.ts +6 -6
  216. package/dist/components/progress/progress-circle.js +1 -1
  217. package/dist/components/progress/progress-provider.js +1 -1
  218. package/dist/components/progress/progress.js +1 -1
  219. package/dist/components/progress/types.d.ts +43 -1
  220. package/dist/components/radio-group/index.d.ts +2 -3
  221. package/dist/components/radio-group/radio-card-group.js +1 -1
  222. package/dist/components/radio-group/radio-card-group.vue.d.ts +1 -1
  223. package/dist/components/radio-group/radio-card.js +1 -1
  224. package/dist/components/radio-group/radio-group.js +1 -1
  225. package/dist/components/radio-group/radio-group.vue.d.ts +1 -1
  226. package/dist/components/radio-group/radio.js +1 -1
  227. package/dist/components/radio-group/types.d.ts +76 -1
  228. package/dist/components/range-calendar/index.d.ts +1 -2
  229. package/dist/components/range-calendar/types.d.ts +127 -1
  230. package/dist/components/scroll-area/index.d.ts +1 -2
  231. package/dist/components/scroll-area/scroll-area.js +1 -1
  232. package/dist/components/scroll-area/types.d.ts +29 -1
  233. package/dist/components/segment/index.d.ts +2 -1
  234. package/dist/components/segment/segment.js +1 -1
  235. package/dist/components/segment/types.d.ts +26 -1
  236. package/dist/components/select/index.d.ts +2 -3
  237. package/dist/components/select/select.js +1 -1
  238. package/dist/components/select/select.vue.d.ts +1 -1
  239. package/dist/components/select/types.d.ts +18 -3
  240. package/dist/components/separator/index.d.ts +1 -2
  241. package/dist/components/separator/separator.js +1 -1
  242. package/dist/components/separator/types.d.ts +26 -1
  243. package/dist/components/skeleton/skeleton.js +1 -1
  244. package/dist/components/skeleton/types.d.ts +14 -1
  245. package/dist/components/slider/index.d.ts +1 -2
  246. package/dist/components/slider/slider.js +1 -1
  247. package/dist/components/slider/types.d.ts +29 -1
  248. package/dist/components/spinner/types.d.ts +16 -1
  249. package/dist/components/splitter/index.d.ts +2 -3
  250. package/dist/components/splitter/splitter-group.js +1 -1
  251. package/dist/components/splitter/splitter-panel.js +1 -1
  252. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  253. package/dist/components/splitter/splitter-resize-handle.js +1 -1
  254. package/dist/components/splitter/splitter-resize-handle.vue.d.ts +1 -1
  255. package/dist/components/splitter/types.d.ts +43 -2
  256. package/dist/components/stepper/index.d.ts +1 -2
  257. package/dist/components/stepper/stepper.js +1 -1
  258. package/dist/components/stepper/types.d.ts +56 -1
  259. package/dist/components/switch/index.d.ts +1 -2
  260. package/dist/components/switch/switch.js +1 -1
  261. package/dist/components/switch/switch.vue.d.ts +4 -4
  262. package/dist/components/switch/types.d.ts +29 -1
  263. package/dist/components/table/hooks.js +1 -1
  264. package/dist/components/table/index.d.ts +2 -1
  265. package/dist/components/table/index.js +1 -1
  266. package/dist/components/table/table.js +1 -1
  267. package/dist/components/table/table.vue.d.ts +2 -2
  268. package/dist/components/table/types.d.ts +76 -1
  269. package/dist/components/tabs/index.d.ts +2 -3
  270. package/dist/components/tabs/tabs.js +1 -1
  271. package/dist/components/tabs/types.d.ts +19 -1
  272. package/dist/components/tag/tag.js +1 -1
  273. package/dist/components/tag/types.d.ts +26 -1
  274. package/dist/components/tags-input/index.d.ts +3 -2
  275. package/dist/components/tags-input/tags-input-item-delete.js +1 -1
  276. package/dist/components/tags-input/tags-input.js +1 -1
  277. package/dist/components/tags-input/tags-input.vue.d.ts +1 -1
  278. package/dist/components/tags-input/types.d.ts +17 -1
  279. package/dist/components/textarea/index.d.ts +1 -2
  280. package/dist/components/textarea/textarea.js +1 -1
  281. package/dist/components/textarea/types.d.ts +23 -1
  282. package/dist/components/time-field/index.d.ts +1 -2
  283. package/dist/components/time-field/types.d.ts +38 -2
  284. package/dist/components/time-picker/index.d.ts +1 -2
  285. package/dist/components/time-picker/types.d.ts +35 -2
  286. package/dist/components/time-range-field/index.d.ts +1 -2
  287. package/dist/components/time-range-field/types.d.ts +47 -2
  288. package/dist/components/time-range-picker/index.d.ts +1 -2
  289. package/dist/components/time-range-picker/types.d.ts +35 -2
  290. package/dist/components/toast/index.d.ts +3 -3
  291. package/dist/components/toast/toast-provider.js +1 -1
  292. package/dist/components/toast/types.d.ts +11 -2
  293. package/dist/components/toggle/toggle.js +1 -1
  294. package/dist/components/toggle/toggle.vue.d.ts +3 -3
  295. package/dist/components/toggle/types.d.ts +20 -1
  296. package/dist/components/toggle-group/index.d.ts +1 -2
  297. package/dist/components/toggle-group/toggle-group-item.js +1 -1
  298. package/dist/components/toggle-group/toggle-group-item.vue.d.ts +1 -1
  299. package/dist/components/toggle-group/toggle-group.js +1 -1
  300. package/dist/components/toggle-group/toggle-group.vue.d.ts +1 -1
  301. package/dist/components/toggle-group/types.d.ts +23 -1
  302. package/dist/components/toolbar/index.d.ts +3 -2
  303. package/dist/components/toolbar/toolbar.js +1 -1
  304. package/dist/components/toolbar/types.d.ts +11 -1
  305. package/dist/components/tooltip/index.d.ts +1 -2
  306. package/dist/components/tooltip/tooltip.js +1 -1
  307. package/dist/components/tooltip/types.d.ts +38 -1
  308. package/dist/components/tree/index.d.ts +3 -2
  309. package/dist/components/tree/tree-virtualizer.js +1 -1
  310. package/dist/components/tree/tree-virtualizer.vue.d.ts +2 -1
  311. package/dist/components/tree/tree.js +1 -1
  312. package/dist/components/tree/tree.vue.d.ts +2 -1
  313. package/dist/components/tree/types.d.ts +15 -1
  314. package/dist/components/tree-menu/index.d.ts +2 -1
  315. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -1
  316. package/dist/components/tree-menu/tree-menu-option.js +1 -1
  317. package/dist/components/tree-menu/tree-menu-options.js +1 -1
  318. package/dist/components/tree-menu/tree-menu.js +1 -1
  319. package/dist/components/tree-menu/types.d.ts +111 -6
  320. package/dist/components/virtualizer/index.d.ts +3 -2
  321. package/dist/components/virtualizer/types.d.ts +10 -1
  322. package/dist/components/virtualizer/virtualizer.js +1 -1
  323. package/dist/components/year-picker/index.d.ts +1 -2
  324. package/dist/components/year-picker/types.d.ts +44 -2
  325. package/dist/components/year-range-picker/index.d.ts +1 -2
  326. package/dist/components/year-range-picker/types.d.ts +44 -2
  327. package/dist/index.d.ts +103 -73
  328. package/dist/index.js +1 -1
  329. package/dist/theme/merge.d.ts +1 -1
  330. package/dist/theme/shared.d.ts +1 -1
  331. package/package.json +7 -5
@@ -1,30 +1,75 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ClassValue } from "@soybeanjs/headless";
3
2
  import { TimeRangeFieldInputProps, TimeRangeFieldRootEmits, TimeRangeFieldRootProps, TimeRangeFieldUi } from "@soybeanjs/headless/time-range-field";
3
+ import { ClassValue } from "@soybeanjs/headless/types";
4
4
 
5
5
  //#region src/components/time-range-field/types.d.ts
6
+ /**
7
+ * Slot props for the time range field component.
8
+ */
6
9
  interface TimeRangeFieldSlotProps {
10
+ /**
11
+ * Current model value.
12
+ */
7
13
  modelValue: TimeRangeFieldRootProps['modelValue'];
14
+ /**
15
+ * Start segments exposed in the slot scope.
16
+ */
8
17
  startSegments: {
9
18
  part: TimeRangeFieldInputProps['part'];
10
19
  value: string;
11
20
  }[];
21
+ /**
22
+ * End segments exposed in the slot scope.
23
+ */
12
24
  endSegments: {
13
25
  part: TimeRangeFieldInputProps['part'];
14
26
  value: string;
15
27
  }[];
28
+ /**
29
+ * Whether the current value is invalid.
30
+ */
16
31
  isInvalid: boolean;
17
32
  }
18
- interface TimeRangeFieldProps extends /* @vue-ignore */TimeRangeFieldRootProps {
33
+ /**
34
+ * Props for the time range field component.
35
+ */
36
+ interface TimeRangeFieldProps extends /** @vue-ignore */TimeRangeFieldRootProps {
37
+ /**
38
+ * Additional class names applied to the root element.
39
+ */
19
40
  class?: ClassValue;
41
+ /**
42
+ * Visual size of the component.
43
+ */
20
44
  size?: ThemeSize;
45
+ /**
46
+ * Per-slot class overrides for the component.
47
+ */
21
48
  ui?: Partial<TimeRangeFieldUi>;
49
+ /**
50
+ * Props forwarded to the input element.
51
+ */
22
52
  inputProps?: Omit<TimeRangeFieldInputProps, 'part' | 'type'>;
53
+ /**
54
+ * Separator.
55
+ */
23
56
  separator?: string;
24
57
  }
58
+ /**
59
+ * Emits for the time range field component.
60
+ */
25
61
  type TimeRangeFieldEmits = TimeRangeFieldRootEmits;
62
+ /**
63
+ * Slots for the time range field component.
64
+ */
26
65
  interface TimeRangeFieldSlots {
66
+ /**
67
+ * Custom content for the default slot.
68
+ */
27
69
  default?: (props: TimeRangeFieldSlotProps) => any;
70
+ /**
71
+ * Custom content for the separator slot.
72
+ */
28
73
  separator?: () => any;
29
74
  }
30
75
  //#endregion
@@ -1,4 +1,3 @@
1
1
  import { TimeRangePickerEmits, TimeRangePickerProps, TimeRangePickerSlots } from "./types.js";
2
2
  import { _default } from "./time-range-picker.vue.js";
3
- import { TimeRangePickerPopupProps as TimeRangePickerPopupProps$1, TimeRangePickerRootEmits as TimeRangePickerRootEmits$1, TimeRangePickerRootProps as TimeRangePickerRootProps$1, TimeRangePickerTriggerProps as TimeRangePickerTriggerProps$1, TimeRangePickerUi as TimeRangePickerUi$1, TimeRangePickerUiSlot } from "@soybeanjs/headless/time-range-picker";
4
- export { type TimeRangePickerPopupProps$1 as TimeRangePickerPopupProps, type TimeRangePickerRootEmits$1 as TimeRangePickerRootEmits, type TimeRangePickerRootProps$1 as TimeRangePickerRootProps, type TimeRangePickerTriggerProps$1 as TimeRangePickerTriggerProps, type TimeRangePickerUi$1 as TimeRangePickerUi, type TimeRangePickerUiSlot };
3
+ export * from "@soybeanjs/headless/time-range-picker";
@@ -1,23 +1,53 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ClassValue } from "@soybeanjs/headless";
3
2
  import { TimeRangePickerPopupProps, TimeRangePickerRootEmits, TimeRangePickerRootProps, TimeRangePickerTriggerProps, TimeRangePickerUi } from "@soybeanjs/headless/time-range-picker";
3
+ import { ClassValue } from "@soybeanjs/headless/types";
4
4
  import { TimeRange, TimeValue } from "@soybeanjs/headless/date";
5
5
 
6
6
  //#region src/components/time-range-picker/types.d.ts
7
- interface TimeRangePickerProps extends /* @vue-ignore */TimeRangePickerRootProps {
7
+ /**
8
+ * Props for the time range picker component.
9
+ */
10
+ interface TimeRangePickerProps extends /** @vue-ignore */TimeRangePickerRootProps {
11
+ /**
12
+ * Additional class names applied to the root element.
13
+ */
8
14
  class?: ClassValue;
15
+ /**
16
+ * Visual size of the component.
17
+ */
9
18
  size?: ThemeSize;
19
+ /**
20
+ * Per-slot class overrides for the component.
21
+ */
10
22
  ui?: Partial<TimeRangePickerUi>;
23
+ /**
24
+ * Props forwarded to the trigger element.
25
+ */
11
26
  triggerProps?: TimeRangePickerTriggerProps;
27
+ /**
28
+ * Props forwarded to the popup element.
29
+ */
12
30
  popupProps?: TimeRangePickerPopupProps;
13
31
  }
32
+ /**
33
+ * Emits for the time range picker component.
34
+ */
14
35
  type TimeRangePickerEmits = TimeRangePickerRootEmits;
36
+ /**
37
+ * Slots for the time range picker component.
38
+ */
15
39
  interface TimeRangePickerSlots {
40
+ /**
41
+ * Custom content for the trigger slot.
42
+ */
16
43
  trigger?: (props: {
17
44
  displayValue: string;
18
45
  modelValue: TimeRange;
19
46
  open: boolean;
20
47
  }) => any;
48
+ /**
49
+ * Custom content for the time slot.
50
+ */
21
51
  time?: (props: {
22
52
  disabled: boolean;
23
53
  focused: boolean;
@@ -28,6 +58,9 @@ interface TimeRangePickerSlots {
28
58
  selected: boolean;
29
59
  time: TimeValue;
30
60
  }) => any;
61
+ /**
62
+ * Custom content for the default slot.
63
+ */
31
64
  default?: (props: {
32
65
  displayValue: string;
33
66
  modelValue: TimeRange;
@@ -1,4 +1,4 @@
1
- import { SwipeDirection, ToastPosition, ToastProviderProps, ToastType } from "./types.js";
1
+ import { ToastProviderProps as ToastProviderProps$1 } from "./types.js";
2
2
  import { _default } from "./toast-provider.vue.js";
3
- import { toast } from "@soybeanjs/headless/toast";
4
- export { toast };
3
+ import { ToastCreateOptions, ToastIconType, ToastPosition, ToastType, ToastUi as ToastUi$1, ToastUiSlot, ToasterProps, toast } from "@soybeanjs/headless/toast";
4
+ export { type ToastCreateOptions, type ToastIconType, type ToastPosition, type ToastType, type ToastUi$1 as ToastUi, type ToastUiSlot, type ToasterProps, toast };
@@ -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{toastVariants as i}from"./variants.js";import a from"./styles.js";import{computed as o,createBlock as s,defineComponent as c,guardReactiveProps as l,normalizeProps as u,openBlock as d,renderSlot as f,unref as p,withCtx as m}from"vue";import{useOmitProps as h}from"@soybeanjs/headless/composables";import{ToastProvider as g,provideToastUi as _}from"@soybeanjs/headless";import{useStyleTag as v}from"@vueuse/core";const y=c({name:`SToastProvider`,__name:`toast-provider`,props:{size:{},ui:{},id:{},dir:{},hotkey:{},customAriaLabel:{},containerAriaLabel:{},position:{},defaultExpanded:{type:Boolean},duration:{},gap:{},offset:{},visibleCounts:{},swipeDirections:{},showIcon:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},icons:{},toastProps:{},wrapperProps:{},contentProps:{},titleProps:{},descriptionProps:{},iconProps:{},footerProps:{},actionProps:{},cancelProps:{},closeProps:{}},setup(c){let y=c,b=h(y,[`size`,`ui`]),x=o(()=>{let a=y.size??`md`;return t(e(i({size:y.size}),{action:r({variant:`solid`,size:n[a]}),cancel:r({variant:`pure`,size:n[a]}),close:r({variant:`ghost`,color:`accent`,size:n[a],shape:`square`,fitContent:!0})}),y.ui)});return v(a,{id:`__SoybeanUI_toastStyle`}),_(x),(e,t)=>(d(),s(p(g),u(l(p(b))),{default:m(()=>[f(e.$slots,`default`)]),_:3},16))}});export{y as default};
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{toastVariants as i}from"./variants.js";import a from"./styles.js";import{computed as o,createBlock as s,defineComponent as c,guardReactiveProps as l,normalizeProps as u,openBlock as d,renderSlot as f,unref as p,withCtx as m}from"vue";import{useOmitProps as h}from"@soybeanjs/headless/composables";import{useStyleTag as g}from"@vueuse/core";import{ToastProvider as _,provideToastUi as v}from"@soybeanjs/headless/toast";const y=c({name:`SToastProvider`,__name:`toast-provider`,props:{size:{},ui:{},id:{},dir:{},hotkey:{},customAriaLabel:{},containerAriaLabel:{},position:{},defaultExpanded:{type:Boolean},duration:{},gap:{},offset:{},visibleCounts:{},swipeDirections:{},showIcon:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},icons:{},toastProps:{},wrapperProps:{},contentProps:{},titleProps:{},descriptionProps:{},iconProps:{},footerProps:{},actionProps:{},cancelProps:{},closeProps:{}},setup(c){let y=c,b=h(y,[`size`,`ui`]),x=o(()=>{let a=y.size??`md`;return t(e(i({size:y.size}),{action:r({variant:`solid`,size:n[a]}),cancel:r({variant:`pure`,size:n[a]}),close:r({variant:`ghost`,color:`accent`,size:n[a],shape:`square`,fitContent:!0})}),y.ui)});return g(a,{id:`__SoybeanUI_toastStyle`}),v(x),(e,t)=>(d(),s(p(_),u(l(p(b))),{default:m(()=>[f(e.$slots,`default`)]),_:3},16))}});export{y as default};
@@ -1,10 +1,19 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { SwipeDirection, ToastPosition, ToastProviderProps, ToastType, ToastUi } from "@soybeanjs/headless";
2
+ import { ToastProviderProps, ToastUi } from "@soybeanjs/headless/toast";
3
3
 
4
4
  //#region src/components/toast/types.d.ts
5
+ /**
6
+ * Props for the toast provider component.
7
+ */
5
8
  interface ToastProviderProps$1 extends ToastProviderProps {
9
+ /**
10
+ * Visual size of the component.
11
+ */
6
12
  size?: ThemeSize;
13
+ /**
14
+ * Per-slot class overrides for the component.
15
+ */
7
16
  ui?: ToastUi;
8
17
  }
9
18
  //#endregion
10
- export { type SwipeDirection, type ToastPosition, ToastProviderProps$1 as ToastProviderProps, type ToastType };
19
+ export { ToastProviderProps$1 as ToastProviderProps };
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{toggleVariants 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,unref as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{Toggle as p}from"@soybeanjs/headless";const m=i({name:`SToggle`,__name:`toggle`,props:{class:{},color:{},size:{},variant:{},shape:{},defaultValue:{type:Boolean},modelValue:{type:Boolean,default:void 0},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(i,{emit:m}){let h=i,g=m,_=f(h,[`class`,`color`,`variant`,`size`,`shape`]),v=n(()=>e(t({color:h.color,variant:h.variant,size:h.size,shape:h.shape}),h.class));return(e,t)=>(c(),r(u(p),o(u(_),{class:v.value,"onUpdate:modelValue":t[0]||=e=>g(`update:modelValue`,e)}),{default:d(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16,[`class`]))}});export{m as default};
1
+ import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{toggleVariants 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,unref as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{Toggle as p}from"@soybeanjs/headless/toggle";const m=i({name:`SToggle`,__name:`toggle`,props:{class:{},color:{},size:{},variant:{},shape:{},defaultValue:{type:Boolean},modelValue:{type:Boolean,default:void 0},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(i,{emit:m}){let h=i,g=m,_=f(h,[`class`,`color`,`variant`,`size`,`shape`]),v=n(()=>e(t({color:h.color,variant:h.variant,size:h.size,shape:h.shape}),h.class));return(e,t)=>(c(),r(u(p),o(u(_),{class:v.value,"onUpdate:modelValue":t[0]||=e=>g(`update:modelValue`,e)}),{default:d(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16,[`class`]))}});export{m as default};
@@ -1,4 +1,4 @@
1
- import { ToggleProps as ToggleProps$1 } from "./types.js";
1
+ import { ToggleProps } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
4
 
@@ -12,9 +12,9 @@ declare var __VLS_10: {
12
12
  type __VLS_Slots = {} & {
13
13
  default?: (props: typeof __VLS_10) => any;
14
14
  };
15
- declare const __VLS_base: _$vue.DefineComponent<ToggleProps$1, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
15
+ declare const __VLS_base: _$vue.DefineComponent<ToggleProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
16
16
  "update:modelValue": (value: boolean) => any;
17
- }, string, _$vue.PublicProps, Readonly<ToggleProps$1> & Readonly<{
17
+ }, string, _$vue.PublicProps, Readonly<ToggleProps> & Readonly<{
18
18
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
19
19
  }>, {
20
20
  modelValue: boolean;
@@ -1,13 +1,32 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
2
  import { ToggleShape, ToggleVariant } from "./variants.js";
3
- import { ClassValue, ToggleEmits, ToggleProps } from "@soybeanjs/headless";
3
+ import { ToggleEmits, ToggleProps } from "@soybeanjs/headless/toggle";
4
+ import { ClassValue } from "@soybeanjs/headless/types";
4
5
 
5
6
  //#region src/components/toggle/types.d.ts
7
+ /**
8
+ * Props for the toggle component.
9
+ */
6
10
  interface ToggleProps$1 extends ToggleProps {
11
+ /**
12
+ * Additional class names applied to the root element.
13
+ */
7
14
  class?: ClassValue;
15
+ /**
16
+ * Theme color of the component.
17
+ */
8
18
  color?: ThemeColor;
19
+ /**
20
+ * Visual size of the component.
21
+ */
9
22
  size?: ThemeSize;
23
+ /**
24
+ * Visual variant of the component.
25
+ */
10
26
  variant?: ToggleVariant;
27
+ /**
28
+ * Shape of the component.
29
+ */
11
30
  shape?: ToggleShape;
12
31
  }
13
32
  //#endregion
@@ -2,5 +2,4 @@ import { ToggleGroupVariant } from "./variants.js";
2
2
  import { ToggleGroupEmits, ToggleGroupProps } from "./types.js";
3
3
  import { _default } from "./toggle-group.vue.js";
4
4
  import { _default as _default$1 } from "./toggle-group-item.vue.js";
5
- import { ToggleGroupItemProps as ToggleGroupItemProps$1, ToggleGroupRootEmits, ToggleGroupRootProps, ToggleGroupUi, ToggleGroupUiSlot } from "@soybeanjs/headless/toggle-group";
6
- export { type ToggleGroupItemProps$1 as ToggleGroupItemProps, type ToggleGroupRootEmits, type ToggleGroupRootProps, type ToggleGroupUi, type ToggleGroupUiSlot };
5
+ export * from "@soybeanjs/headless/toggle-group";
@@ -1 +1 @@
1
- import{createBlock as e,defineComponent as t,mergeProps as n,openBlock as r,renderSlot as i,unref as a,withCtx as o}from"vue";import{useOmitProps as s}from"@soybeanjs/headless/composables";import{ToggleGroupItem as c}from"@soybeanjs/headless";const l=t({name:`SToggleGroupItem`,__name:`toggle-group-item`,props:{value:{},disabled:{type:Boolean},type:{},asChild:{type:Boolean},as:{}},setup(t){let l=t,u=s(l,[`class`]);return(t,s)=>(r(),e(a(c),n(a(u),{class:l.class}),{default:o(()=>[i(t.$slots,`default`)]),_:3},16,[`class`]))}});export{l as default};
1
+ import{createBlock as e,defineComponent as t,mergeProps as n,openBlock as r,renderSlot as i,unref as a,withCtx as o}from"vue";import{useOmitProps as s}from"@soybeanjs/headless/composables";import{ToggleGroupItem as c}from"@soybeanjs/headless/toggle-group";const l=t({name:`SToggleGroupItem`,__name:`toggle-group-item`,props:{value:{},disabled:{type:Boolean},type:{},asChild:{type:Boolean},as:{}},setup(t){let l=t,u=s(l,[`class`]);return(t,s)=>(r(),e(a(c),n(a(u),{class:l.class}),{default:o(()=>[i(t.$slots,`default`)]),_:3},16,[`class`]))}});export{l as default};
@@ -1,6 +1,6 @@
1
1
  import * as _$vue from "vue";
2
- import { DefinedValue } from "@soybeanjs/headless";
3
2
  import { ToggleGroupItemProps } from "@soybeanjs/headless/toggle-group";
3
+ import { DefinedValue } from "@soybeanjs/headless/types";
4
4
 
5
5
  //#region src/components/toggle-group/toggle-group-item.vue.d.ts
6
6
  declare const __VLS_export: <T extends DefinedValue = string>(__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{toggleGroupVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,toHandlers as c,unref as l,withCtx as u}from"vue";import{useForwardListeners as d,useOmitProps as f}from"@soybeanjs/headless/composables";import{ToggleGroupRoot as p,provideToggleGroupUi as m}from"@soybeanjs/headless";const h=i({name:`SToggleGroup`,__name:`toggle-group`,props:{class:{},color:{},size:{},variant:{},ui:{},rovingFocus:{type:Boolean},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},clearable:{type:Boolean},selectionBehavior:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(i,{emit:h}){let g=i,_=h,v=f(g,[`class`,`color`,`size`,`variant`,`ui`]),y=d(_);return m(n(()=>e(t({color:g.color,size:g.size,variant:g.variant,orientation:g.orientation}),g.ui,{root:g.class}))),(e,t)=>(o(),r(l(p),a(l(v),c(l(y))),{default:u(()=>[s(e.$slots,`default`)]),_:3},16))}});export{h as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{toggleGroupVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,toHandlers as c,unref as l,withCtx as u}from"vue";import{useForwardListeners as d,useOmitProps as f}from"@soybeanjs/headless/composables";import{ToggleGroupRoot as p,provideToggleGroupUi as m}from"@soybeanjs/headless/toggle-group";const h=i({name:`SToggleGroup`,__name:`toggle-group`,props:{class:{},color:{},size:{},variant:{},ui:{},rovingFocus:{type:Boolean},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},clearable:{type:Boolean},selectionBehavior:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(i,{emit:h}){let g=i,_=h,v=f(g,[`class`,`color`,`size`,`variant`,`ui`]),y=d(_);return m(n(()=>e(t({color:g.color,size:g.size,variant:g.variant,orientation:g.orientation}),g.ui,{root:g.class}))),(e,t)=>(o(),r(l(p),a(l(v),c(l(y))),{default:u(()=>[s(e.$slots,`default`)]),_:3},16))}});export{h as default};
@@ -1,6 +1,6 @@
1
1
  import { ToggleGroupProps } from "./types.js";
2
2
  import * as _$vue from "vue";
3
- import { DefinedValue } from "@soybeanjs/headless";
3
+ import { DefinedValue } from "@soybeanjs/headless/types";
4
4
 
5
5
  //#region src/components/toggle-group/toggle-group.vue.d.ts
6
6
  declare const __VLS_export: <M extends boolean = false, T extends DefinedValue = string>(__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,15 +1,37 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
2
  import { ToggleGroupVariant } from "./variants.js";
3
- import { ClassValue, DefinedValue, ToggleGroupRootEmits, ToggleGroupRootProps, ToggleGroupUi } from "@soybeanjs/headless";
3
+ import { ToggleGroupRootEmits, ToggleGroupRootProps, ToggleGroupUi } from "@soybeanjs/headless/toggle-group";
4
+ import { ClassValue, DefinedValue } from "@soybeanjs/headless/types";
4
5
 
5
6
  //#region src/components/toggle-group/types.d.ts
7
+ /**
8
+ * Props for the toggle group component.
9
+ */
6
10
  interface ToggleGroupProps<M extends boolean = false, T extends DefinedValue = string> extends ToggleGroupRootProps<M, T> {
11
+ /**
12
+ * Additional class names applied to the root element.
13
+ */
7
14
  class?: ClassValue;
15
+ /**
16
+ * Theme color of the component.
17
+ */
8
18
  color?: ThemeColor;
19
+ /**
20
+ * Visual size of the component.
21
+ */
9
22
  size?: ThemeSize;
23
+ /**
24
+ * Visual variant of the component.
25
+ */
10
26
  variant?: ToggleGroupVariant;
27
+ /**
28
+ * Per-slot class overrides for the component.
29
+ */
11
30
  ui?: Partial<ToggleGroupUi>;
12
31
  }
32
+ /**
33
+ * Emits for the toggle group component.
34
+ */
13
35
  type ToggleGroupEmits<M extends boolean = false, T extends DefinedValue = string> = ToggleGroupRootEmits<M, T>;
14
36
  //#endregion
15
37
  export { ToggleGroupEmits, ToggleGroupProps };
@@ -1,4 +1,5 @@
1
1
  import { ToolbarProps } from "./types.js";
2
2
  import { _default } from "./toolbar.vue.js";
3
- import { ToolbarButton as SToolbarButton, ToolbarButtonEmits, ToolbarButtonProps, ToolbarLink as SToolbarLink, ToolbarLinkProps, ToolbarRootProps, ToolbarSeparator as SToolbarSeparator, ToolbarSeparatorProps, ToolbarToggleGroup as SToolbarToggleGroup, ToolbarToggleGroupEmits, ToolbarToggleGroupProps, ToolbarToggleItem as SToolbarToggleItem, ToolbarToggleItemProps, ToolbarUi, ToolbarUiSlot } from "@soybeanjs/headless/toolbar";
4
- export { SToolbarButton, SToolbarLink, SToolbarSeparator, SToolbarToggleGroup, SToolbarToggleItem, type ToolbarButtonEmits, type ToolbarButtonProps, type ToolbarLinkProps, type ToolbarRootProps, type ToolbarSeparatorProps, type ToolbarToggleGroupEmits, type ToolbarToggleGroupProps, type ToolbarToggleItemProps, type ToolbarUi, type ToolbarUiSlot };
3
+ import { ToolbarButton as SToolbarButton, ToolbarLink as SToolbarLink, ToolbarSeparator as SToolbarSeparator, ToolbarToggleGroup as SToolbarToggleGroup, ToolbarToggleItem as SToolbarToggleItem } from "@soybeanjs/headless/toolbar";
4
+ export * from "@soybeanjs/headless/toolbar";
5
+ export { SToolbarButton, SToolbarLink, SToolbarSeparator, SToolbarToggleGroup, SToolbarToggleItem };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{toolbarVariants 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{ToolbarRoot as f,provideToolbarUi as p}from"@soybeanjs/headless";const m=i({name:`SToolbar`,__name:`toolbar`,props:{class:{},ui:{},orientation:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{}},setup(i){let m=i,h=d(m,[`class`,`ui`]);return p(n(()=>e(t(),m.ui,{root: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{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{toolbarVariants 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{ToolbarRoot as f,provideToolbarUi as p}from"@soybeanjs/headless/toolbar";const m=i({name:`SToolbar`,__name:`toolbar`,props:{class:{},ui:{},orientation:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{}},setup(i){let m=i,h=d(m,[`class`,`ui`]);return p(n(()=>e(t(),m.ui,{root: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,8 +1,18 @@
1
- import { ClassValue, ToolbarRootProps, ToolbarUi } from "@soybeanjs/headless";
1
+ import { ToolbarRootProps, ToolbarUi } from "@soybeanjs/headless/toolbar";
2
+ import { ClassValue } from "@soybeanjs/headless/types";
2
3
 
3
4
  //#region src/components/toolbar/types.d.ts
5
+ /**
6
+ * Props for the toolbar component.
7
+ */
4
8
  interface ToolbarProps extends ToolbarRootProps {
9
+ /**
10
+ * Additional class names applied to the root element.
11
+ */
5
12
  class?: ClassValue;
13
+ /**
14
+ * Per-slot class overrides for the component.
15
+ */
6
16
  ui?: Partial<ToolbarUi>;
7
17
  }
8
18
  //#endregion
@@ -1,4 +1,3 @@
1
1
  import { TooltipEmits, TooltipProps } from "./types.js";
2
2
  import { _default } from "./tooltip.vue.js";
3
- import { TooltipArrowProps, TooltipPopupProps, TooltipPortalProps, TooltipPositionerEmits, TooltipPositionerProps, TooltipProviderProps, TooltipRootEmits, TooltipRootProps, TooltipTriggerProps } from "@soybeanjs/headless/tooltip";
4
- export { type TooltipArrowProps, type TooltipPopupProps, type TooltipPortalProps, type TooltipPositionerEmits, type TooltipPositionerProps, type TooltipProviderProps, type TooltipRootEmits, type TooltipRootProps, type TooltipTriggerProps };
3
+ export * from "@soybeanjs/headless/tooltip";
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tooltipVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createTextVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toDisplayString as p,toHandlers as m,unref as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{TooltipArrow as y,TooltipPopup as b,TooltipPortal as x,TooltipPositioner as S,TooltipRoot as C,TooltipTrigger as w,provideTooltipUi as T}from"@soybeanjs/headless";const E=s({name:`STooltip`,__name:`tooltip`,props:{class:{},size:{},ui:{},content:{},placement:{},showArrow:{type:Boolean,default:!0},popupProps:{},positionerProps:{},triggerProps:{},portalProps:{},arrowProps:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},delayDuration:{},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`],setup(s,{emit:E}){let D=s,O=E,k=v(D,[`class`,`size`,`ui`,`content`,`showArrow`,`popupProps`,`positionerProps`,`triggerProps`,`portalProps`,`arrowProps`]),A=_(O),j=n(()=>e(t({size:D.size}),D.ui,{popup:D.class})),M=n(()=>({placement:D.placement,...D.positionerProps}));return T(j),(e,t)=>(d(),r(h(C),l(h(k),{"onUpdate:open":t[0]||=e=>O(`update:open`,e)}),{default:g(()=>[o(h(w),l(s.triggerProps,{"as-child":``}),{default:g(()=>[f(e.$slots,`trigger`)]),_:3},16),o(h(x),u(c(s.portalProps)),{default:g(()=>[o(h(S),l(M.value,m(h(A))),{default:g(()=>[o(h(b),u(c(s.popupProps)),{default:g(()=>[f(e.$slots,`default`,{},()=>[a(p(s.content),1)]),s.showArrow?(d(),r(h(y),u(l({key:0},s.arrowProps)),null,16)):i(`v-if`,!0)]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16))}});export{E as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tooltipVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createTextVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toDisplayString as p,toHandlers as m,unref as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{TooltipArrow as y,TooltipPopup as b,TooltipPortal as x,TooltipPositioner as S,TooltipRoot as C,TooltipTrigger as w,provideTooltipUi as T}from"@soybeanjs/headless/tooltip";const E=s({name:`STooltip`,__name:`tooltip`,props:{class:{},size:{},ui:{},content:{},placement:{},showArrow:{type:Boolean,default:!0},popupProps:{},positionerProps:{},triggerProps:{},portalProps:{},arrowProps:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},delayDuration:{},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`],setup(s,{emit:E}){let D=s,O=E,k=v(D,[`class`,`size`,`ui`,`content`,`showArrow`,`popupProps`,`positionerProps`,`triggerProps`,`portalProps`,`arrowProps`]),A=_(O),j=n(()=>e(t({size:D.size}),D.ui,{popup:D.class})),M=n(()=>({placement:D.placement,...D.positionerProps}));return T(j),(e,t)=>(d(),r(h(C),l(h(k),{"onUpdate:open":t[0]||=e=>O(`update:open`,e)}),{default:g(()=>[o(h(w),l(s.triggerProps,{"as-child":``}),{default:g(()=>[f(e.$slots,`trigger`)]),_:3},16),o(h(x),u(c(s.portalProps)),{default:g(()=>[o(h(S),l(M.value,m(h(A))),{default:g(()=>[o(h(b),u(c(s.popupProps)),{default:g(()=>[f(e.$slots,`default`,{},()=>[a(p(s.content),1)]),s.showArrow?(d(),r(h(y),u(l({key:0},s.arrowProps)),null,16)):i(`v-if`,!0)]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16))}});export{E as default};
@@ -1,23 +1,60 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ClassValue, Placement, TooltipArrowProps, TooltipPopupProps, TooltipPortalProps, TooltipPositionerEmits, TooltipPositionerProps, TooltipRootEmits, TooltipRootProps, TooltipTriggerProps, TooltipUi } from "@soybeanjs/headless";
2
+ import { TooltipArrowProps, TooltipPopupProps, TooltipPortalProps, TooltipPositionerEmits, TooltipPositionerProps, TooltipRootEmits, TooltipRootProps, TooltipTriggerProps, TooltipUi } from "@soybeanjs/headless/tooltip";
3
+ import { ClassValue, Placement } from "@soybeanjs/headless/types";
3
4
 
4
5
  //#region src/components/tooltip/types.d.ts
6
+ /**
7
+ * Props for the tooltip component.
8
+ */
5
9
  interface TooltipProps extends TooltipRootProps {
6
10
  /**
7
11
  * class of popup
8
12
  */
9
13
  class?: ClassValue;
14
+ /**
15
+ * Visual size of the component.
16
+ */
10
17
  size?: ThemeSize;
18
+ /**
19
+ * Per-slot class overrides for the component.
20
+ */
11
21
  ui?: Partial<TooltipUi>;
22
+ /**
23
+ * Content.
24
+ */
12
25
  content?: string;
26
+ /**
27
+ * Placement.
28
+ */
13
29
  placement?: Placement;
30
+ /**
31
+ * Whether to show an arrow.
32
+ */
14
33
  showArrow?: boolean;
34
+ /**
35
+ * Props forwarded to the popup element.
36
+ */
15
37
  popupProps?: TooltipPopupProps;
38
+ /**
39
+ * Props forwarded to the positioner element.
40
+ */
16
41
  positionerProps?: TooltipPositionerProps;
42
+ /**
43
+ * Props forwarded to the trigger element.
44
+ */
17
45
  triggerProps?: TooltipTriggerProps;
46
+ /**
47
+ * Props forwarded to the portal element.
48
+ */
18
49
  portalProps?: TooltipPortalProps;
50
+ /**
51
+ * Props forwarded to the arrow element.
52
+ */
19
53
  arrowProps?: TooltipArrowProps;
20
54
  }
55
+ /**
56
+ * Emits for the tooltip component.
57
+ */
21
58
  type TooltipEmits = TooltipRootEmits & TooltipPositionerEmits;
22
59
  //#endregion
23
60
  export { TooltipEmits, TooltipProps };
@@ -1,5 +1,6 @@
1
1
  import { _default } from "./tree.vue.js";
2
2
  import { TreeVirtualizerEmits, TreeVirtualizerProps } from "./types.js";
3
3
  import { _default as _default$1 } from "./tree-virtualizer.vue.js";
4
- import { FlattenedItem, TreeItem as STreeItem, TreeItemBaseData, TreeItemData, TreeItemEmits, TreeItemProps, TreeRootEmits, TreeRootProps, TreeSelectBehavior, TreeToggleBehavior, TreeVirtualizerItem as STreeVirtualizerItem, TreeVirtualizerItemEmits, TreeVirtualizerItemProps, TreeVirtualizerRootEmits, TreeVirtualizerRootProps } from "@soybeanjs/headless/tree";
5
- export { type FlattenedItem, STreeItem, STreeVirtualizerItem, type TreeItemBaseData, type TreeItemData, type TreeItemEmits, type TreeItemProps, type TreeRootEmits, type TreeRootProps, type TreeSelectBehavior, type TreeToggleBehavior, type TreeVirtualizerItemEmits, type TreeVirtualizerItemProps, type TreeVirtualizerRootEmits, type TreeVirtualizerRootProps };
4
+ import { TreeItem as STreeItem, TreeVirtualizerItem as STreeVirtualizerItem } from "@soybeanjs/headless/tree";
5
+ export * from "@soybeanjs/headless/tree";
6
+ export { STreeItem, STreeVirtualizerItem };
@@ -1 +1 @@
1
- import{Fragment as e,createBlock as t,createElementBlock as n,createVNode as r,defineComponent as i,mergeProps as a,openBlock as o,renderList as s,renderSlot as c,toHandlers as l,unref as u,withCtx as d}from"vue";import{useForwardListeners as f,useOmitProps as p}from"@soybeanjs/headless/composables";import{TreeVirtualizerRoot as m,VirtualizerContent as h}from"@soybeanjs/headless";const g=i({name:`STreeVirtualizer`,__name:`tree-virtualizer`,props:{contentProps:{},dynamicContentProps:{},modelValue:{},defaultValue:{},multiple:{},items:{},expanded:{},defaultExpanded:{},selectionBehavior:{},toggleBehavior:{},dir:{},loop:{type:Boolean},disabled:{type:Boolean},propagateSelect:{type:Boolean},bubbleSelect:{type:Boolean},allowParentSelect:{type:Boolean},asChild:{type:Boolean},as:{},height:{},options:{},dynamic:{type:Boolean}},emits:[`update:modelValue`,`update:expanded`],setup(i,{emit:g}){let _=i,v=g,y=p(_,[`contentProps`,`dynamicContentProps`]),b=f(v);return(f,p)=>(o(),t(u(m),a(u(y),l(u(b))),{default:d(({virtualItems:t,flattenItems:l,modelValue:p,expanded:m})=>[r(u(h),a(i.contentProps,{"dynamic-content-props":i.dynamicContentProps}),{default:d(()=>[(o(!0),n(e,null,s(t,e=>c(f.$slots,`item`,{key:e.index,virtualItem:e,item:l[e.index],modelValue:p,expanded:m})),128))]),_:2},1040,[`dynamic-content-props`])]),_:3},16))}});export{g as default};
1
+ import{Fragment as e,createBlock as t,createElementBlock as n,createVNode as r,defineComponent as i,mergeProps as a,openBlock as o,renderList as s,renderSlot as c,toHandlers as l,unref as u,withCtx as d}from"vue";import{useForwardListeners as f,useOmitProps as p}from"@soybeanjs/headless/composables";import{TreeVirtualizerRoot as m}from"@soybeanjs/headless/tree";import{VirtualizerContent as h}from"@soybeanjs/headless/virtualizer";const g=i({name:`STreeVirtualizer`,__name:`tree-virtualizer`,props:{contentProps:{},dynamicContentProps:{},modelValue:{},defaultValue:{},multiple:{},items:{},expanded:{},defaultExpanded:{},selectionBehavior:{},toggleBehavior:{},dir:{},loop:{type:Boolean},disabled:{type:Boolean},propagateSelect:{type:Boolean},bubbleSelect:{type:Boolean},allowParentSelect:{type:Boolean},asChild:{type:Boolean},as:{},height:{},options:{},dynamic:{type:Boolean}},emits:[`update:modelValue`,`update:expanded`],setup(i,{emit:g}){let _=i,v=g,y=p(_,[`contentProps`,`dynamicContentProps`]),b=f(v);return(f,p)=>(o(),t(u(m),a(u(y),l(u(b))),{default:d(({virtualItems:t,flattenItems:l,modelValue:p,expanded:m})=>[r(u(h),a(i.contentProps,{"dynamic-content-props":i.dynamicContentProps}),{default:d(()=>[(o(!0),n(e,null,s(t,e=>c(f.$slots,`item`,{key:e.index,virtualItem:e,item:l[e.index],modelValue:p,expanded:m})),128))]),_:2},1040,[`dynamic-content-props`])]),_:3},16))}});export{g as default};
@@ -1,7 +1,8 @@
1
1
  import { TreeVirtualizerProps } from "./types.js";
2
2
  import * as _$vue from "vue";
3
+ import { TreeItemData } from "@soybeanjs/headless/tree";
4
+ import { MaybeArray } from "@soybeanjs/headless/types";
3
5
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
- import { MaybeArray, TreeItemData } from "@soybeanjs/headless";
5
6
  import * as _$_tanstack_vue_virtual0 from "@tanstack/vue-virtual";
6
7
 
7
8
  //#region src/components/tree/tree-virtualizer.vue.d.ts
@@ -1 +1 @@
1
- import{Fragment as e,createBlock as t,createElementBlock as n,defineComponent as r,mergeProps as i,openBlock as a,renderList as o,renderSlot as s,toHandlers as c,unref as l,withCtx as u,withDirectives as d}from"vue";import{useForwardListeners as f}from"@soybeanjs/headless/composables";import{TreeRoot as p}from"@soybeanjs/headless";import{vAutoAnimate as m}from"@formkit/auto-animate";const h=r({name:`STree`,__name:`tree`,props:{modelValue:{},defaultValue:{},multiple:{},items:{},expanded:{},defaultExpanded:{},selectionBehavior:{},toggleBehavior:{},dir:{},loop:{type:Boolean,default:!0},disabled:{type:Boolean},propagateSelect:{type:Boolean},bubbleSelect:{type:Boolean},allowParentSelect:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:expanded`],setup(r,{emit:h}){let g=r,_=f(h);return(r,f)=>d((a(),t(l(p),i(g,c(l(_))),{default:u(({flattenItems:t,modelValue:i,expanded:c})=>[s(r.$slots,`top`),(a(!0),n(e,null,o(t,e=>s(r.$slots,`item`,{key:e.value,item:e,modelValue:i,expanded:c})),128)),s(r.$slots,`bottom`)]),_:3},16)),[[l(m)]])}});export{h as default};
1
+ import{Fragment as e,createBlock as t,createElementBlock as n,defineComponent as r,mergeProps as i,openBlock as a,renderList as o,renderSlot as s,toHandlers as c,unref as l,withCtx as u,withDirectives as d}from"vue";import{useForwardListeners as f}from"@soybeanjs/headless/composables";import{vAutoAnimate as p}from"@formkit/auto-animate";import{TreeRoot as m}from"@soybeanjs/headless/tree";const h=r({name:`STree`,__name:`tree`,props:{modelValue:{},defaultValue:{},multiple:{},items:{},expanded:{},defaultExpanded:{},selectionBehavior:{},toggleBehavior:{},dir:{},loop:{type:Boolean,default:!0},disabled:{type:Boolean},propagateSelect:{type:Boolean},bubbleSelect:{type:Boolean},allowParentSelect:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:expanded`],setup(r,{emit:h}){let g=r,_=f(h);return(r,f)=>d((a(),t(l(m),i(g,c(l(_))),{default:u(({flattenItems:t,modelValue:i,expanded:c})=>[s(r.$slots,`top`),(a(!0),n(e,null,o(t,e=>s(r.$slots,`item`,{key:e.value,item:e,modelValue:i,expanded:c})),128)),s(r.$slots,`bottom`)]),_:3},16)),[[l(p)]])}});export{h as default};
@@ -1,6 +1,7 @@
1
1
  import * as _$vue from "vue";
2
+ import { TreeItemData, TreeRootProps } from "@soybeanjs/headless/tree";
3
+ import { MaybeArray } from "@soybeanjs/headless/types";
2
4
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
3
- import { MaybeArray, TreeItemData, TreeRootProps } from "@soybeanjs/headless";
4
5
 
5
6
  //#region src/components/tree/tree.vue.d.ts
6
7
  declare const __VLS_export: <T extends TreeItemData, U extends MaybeArray<string> | undefined, M extends boolean>(__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,10 +1,24 @@
1
- import { MaybeArray, TreeItemData, TreeVirtualizerRootEmits, TreeVirtualizerRootProps, VirtualizerContentProps, VirtualizerDynamicContentProps } from "@soybeanjs/headless";
1
+ import { TreeItemData, TreeVirtualizerRootEmits, TreeVirtualizerRootProps } from "@soybeanjs/headless/tree";
2
+ import { VirtualizerContentProps, VirtualizerDynamicContentProps } from "@soybeanjs/headless/virtualizer";
3
+ import { MaybeArray } from "@soybeanjs/headless/types";
2
4
 
3
5
  //#region src/components/tree/types.d.ts
6
+ /**
7
+ * Props for the tree virtualizer component.
8
+ */
4
9
  interface TreeVirtualizerProps<T extends TreeItemData, U extends MaybeArray<string> | undefined, M extends boolean> extends TreeVirtualizerRootProps<T, U, M> {
10
+ /**
11
+ * Props forwarded to the content element.
12
+ */
5
13
  contentProps?: VirtualizerContentProps;
14
+ /**
15
+ * Props forwarded to the dynamic content element.
16
+ */
6
17
  dynamicContentProps?: VirtualizerDynamicContentProps;
7
18
  }
19
+ /**
20
+ * Emits for the tree virtualizer component.
21
+ */
8
22
  type TreeVirtualizerEmits<M extends boolean | undefined> = TreeVirtualizerRootEmits<M>;
9
23
  //#endregion
10
24
  export { TreeVirtualizerEmits, TreeVirtualizerProps };
@@ -1,3 +1,4 @@
1
1
  import { TreeMenuBaseOptionData, TreeMenuContext, TreeMenuEmits, TreeMenuExtendedUi, TreeMenuExtraUiSlot, TreeMenuOptionData, TreeMenuOptionEmits, TreeMenuOptionProps, TreeMenuOptionSlotProps, TreeMenuOptionsContext, TreeMenuOptionsEmits, TreeMenuOptionsProps, TreeMenuProps, TreeMenuStyledItemProps } from "./types.js";
2
2
  import { _default } from "./tree-menu.vue.js";
3
- import { _default as _default$1 } from "./tree-menu-styled-item.vue.js";
3
+ import { _default as _default$1 } from "./tree-menu-styled-item.vue.js";
4
+ export * from "@soybeanjs/headless/tree-menu";
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import t from"../badge/badge.js";import n from"../button/button-icon.js";import r from"../dropdown-menu/dropdown-menu.js";import i from"../tag/tag.js";import{useTreeMenuContext as a,useTreeMenuExtraUi as o}from"./context.js";import{Fragment as s,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createVNode as p,defineComponent as m,mergeProps as h,normalizeClass as g,openBlock as _,renderSlot as v,toDisplayString as y,unref as b,withCtx as x,withModifiers as S}from"vue";import{useTreeMenuRootContext as C}from"@soybeanjs/headless";const w=m({name:`STreeMenuOptionSlot`,__name:`tree-menu-option-slot`,props:{showLinkIcon:{type:Boolean},as:{},item:{},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},setup(m){let w=m,{collapsed:T}=C(`TreeMenuOptionSlot`),{size:E}=a(`TreeMenuOptionSlot`),D=o(),O=c(()=>!!w.item.children?.filter(e=>!e.hidden)?.length),k=c(()=>({color:`accent`,variant:`raw`,...w.item.tagProps,content:w.item.tag}));return(a,o)=>(_(),d(s,null,[v(a.$slots,`leading`,{item:m.item},()=>[p(e,{icon:m.item.icon},null,8,[`icon`])]),v(a.$slots,`default`,{item:m.item},()=>[m.item.badge?(_(),l(t,h({key:0},m.item.badgeProps,{size:b(E),content:m.item.badge,class:b(D).itemBadge}),{default:x(()=>[f(`span`,{class:g(b(D).itemLabel)},y(m.item.label),3)]),_:1},16,[`size`,`content`,`class`])):(_(),d(`span`,{key:1,class:g(b(D).itemLabel)},y(m.item.label),3))]),m.showLinkIcon?(_(),l(e,{key:0,icon:`lucide:arrow-up-right`,class:g(b(D).itemLinkIcon)},null,8,[`class`])):u(`v-if`,!0),m.item.tag?(_(),l(i,h({key:1},k.value,{size:b(E),content:m.item.tag,class:b(D).itemTag}),null,16,[`size`,`content`,`class`])):u(`v-if`,!0),!b(T)&&m.item.actions?.length?(_(),l(r,h({key:2},m.item.actionMenuProps,{size:b(E),items:m.item.actions,onSelect:m.item.onActionSelect}),{trigger:x(()=>[p(n,{icon:`lucide:ellipsis`,size:b(E),class:g(b(D).itemAction),onClick:o[0]||=S(()=>{},[`stop`])},null,8,[`size`,`class`])]),_:1},16,[`size`,`items`,`onSelect`])):u(`v-if`,!0),v(a.$slots,`trailing`,{item:m.item}),O.value?(_(),l(e,{key:3,icon:`lucide:chevron-right`,class:g(b(D).collapsibleIcon)},null,8,[`class`])):u(`v-if`,!0)],64))}});export{w as default};
1
+ import e from"../icon/icon.js";import t from"../badge/badge.js";import n from"../button/button-icon.js";import r from"../dropdown-menu/dropdown-menu.js";import i from"../tag/tag.js";import{useTreeMenuContext as a,useTreeMenuExtraUi as o}from"./context.js";import{Fragment as s,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createVNode as p,defineComponent as m,mergeProps as h,normalizeClass as g,openBlock as _,renderSlot as v,toDisplayString as y,unref as b,withCtx as x,withModifiers as S}from"vue";import{useTreeMenuRootContext as C}from"@soybeanjs/headless/tree-menu";const w=m({name:`STreeMenuOptionSlot`,__name:`tree-menu-option-slot`,props:{showLinkIcon:{type:Boolean},as:{},item:{},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},setup(m){let w=m,{collapsed:T}=C(`TreeMenuOptionSlot`),{size:E}=a(`TreeMenuOptionSlot`),D=o(),O=c(()=>!!w.item.children?.filter(e=>!e.hidden)?.length),k=c(()=>({color:`accent`,variant:`raw`,...w.item.tagProps,content:w.item.tag}));return(a,o)=>(_(),d(s,null,[v(a.$slots,`leading`,{item:m.item},()=>[p(e,{icon:m.item.icon},null,8,[`icon`])]),v(a.$slots,`default`,{item:m.item},()=>[m.item.badge?(_(),l(t,h({key:0},m.item.badgeProps,{size:b(E),content:m.item.badge,class:b(D).itemBadge}),{default:x(()=>[f(`span`,{class:g(b(D).itemLabel)},y(m.item.label),3)]),_:1},16,[`size`,`content`,`class`])):(_(),d(`span`,{key:1,class:g(b(D).itemLabel)},y(m.item.label),3))]),m.showLinkIcon?(_(),l(e,{key:0,icon:`lucide:arrow-up-right`,class:g(b(D).itemLinkIcon)},null,8,[`class`])):u(`v-if`,!0),m.item.tag?(_(),l(i,h({key:1},k.value,{size:b(E),content:m.item.tag,class:b(D).itemTag}),null,16,[`size`,`content`,`class`])):u(`v-if`,!0),!b(T)&&m.item.actions?.length?(_(),l(r,h({key:2},m.item.actionMenuProps,{size:b(E),items:m.item.actions,onSelect:m.item.onActionSelect}),{trigger:x(()=>[p(n,{icon:`lucide:ellipsis`,size:b(E),class:g(b(D).itemAction),onClick:o[0]||=S(()=>{},[`stop`])},null,8,[`size`,`class`])]),_:1},16,[`size`,`items`,`onSelect`])):u(`v-if`,!0),v(a.$slots,`trailing`,{item:m.item}),O.value?(_(),l(e,{key:3,icon:`lucide:chevron-right`,class:g(b(D).collapsibleIcon)},null,8,[`class`])):u(`v-if`,!0)],64))}});export{w as default};
@@ -1 +1 @@
1
- import e from"../link/link.js";import t from"../dropdown-menu/dropdown-menu.js";import n from"../tooltip/tooltip.js";import{useTreeMenuContext as r,useTreeMenuExtraUi as i,useTreeMenuOptionsContext as a}from"./context.js";import o from"./tree-menu-option-slot.js";import{Fragment as s,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createSlots as p,createVNode as m,defineComponent as h,guardReactiveProps as g,mergeProps as _,normalizeClass as v,normalizeProps as y,openBlock as b,renderList as x,renderSlot as S,resolveComponent as C,resolveDynamicComponent as w,unref as T,useSlots as E,withCtx as D}from"vue";import{useOmitProps as O}from"@soybeanjs/headless/composables";import{TreeMenuButton as k,TreeMenuCollapsible as A,TreeMenuItem as j,TreeMenuSub as M,useTreeMenuRootContext as N}from"@soybeanjs/headless";const P=h({name:`STreeMenuOption`,__name:`tree-menu-option`,props:{as:{default:`li`},item:{},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},emits:[`selectDropdown`],setup(h,{emit:P}){let F=h,I=P,L=E(),ee=O(F,[`as`,`item`]),{collapsed:R,modelValue:z,onModelValueChange:B}=N(`TreeMenuOption`),{size:V,side:H}=r(`TreeMenuOption`),{activePaths:U}=a(`TreeMenuOption`),W=i(`itemAbsolute`),G=c(()=>Object.keys(L)),K=c(()=>F.item.children??[]),q=c(()=>!!K.value.length),J=c(()=>{let e=F.item.value;return z.value===e?!1:U.value.includes(e)}),Y=c(()=>!!(F.item.to||F.item.href)),X=c(()=>{let{disabled:e,to:t,href:n,target:r,external:i}=F.item;return Y.value?{disabled:e,to:t,href:n,target:r,external:i}:{}}),Z=c(()=>R.value&&q.value),Q=c(()=>R.value&&!Z.value?F.item.label:void 0),$=c(()=>H.value===`left`?`right`:`left`),te=c(()=>({...F.item.tooltipProps,placement:F.item.tooltipProps?.placement??$.value})),ne=c(()=>({...F.item.dropdownMenuProps,trigger:F.item.dropdownMenuProps?.trigger??`hover`,placement:F.item.dropdownMenuProps?.placement??$.value})),re=()=>{F.item.disabled||B(F.item.value)},ie=e=>{F.item.disabled||(B(e.value),I(`selectDropdown`,e.value))};return(r,i)=>{let a=C(`STreeMenuOption`);return q.value?(b(),l(T(j),_({key:1},h.itemProps,{"as-child":``,value:h.item.value,disabled:h.item.disabled}),{default:D(()=>[m(T(A),_(h.collapsibleProps,{as:h.as,"disabled-collapsible":T(R)}),{trigger:D(()=>[m(T(k),_(h.buttonProps,{"disabled-active":``,"data-child-active":J.value?``:void 0}),{default:D(()=>[m(o,{item:h.item},p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,y(g(t)))])}))]),1032,[`item`])]),_:3},16,[`data-child-active`])]),extra:D(()=>[Z.value?(b(),l(t,_({key:0},ne.value,{items:K.value,disabled:h.item.disabled,size:T(V),"data-menu":h.item.label,"active-value":T(z),onSelect:ie}),{trigger:D(()=>[f(`div`,{class:v(T(W))},null,2)]),_:1},16,[`items`,`disabled`,`size`,`data-menu`,`active-value`])):u(`v-if`,!0)]),default:D(()=>[m(T(M),y(g(h.subProps)),{default:D(()=>[(b(!0),d(s,null,x(K.value,e=>(b(),l(a,_({key:e.value,ref_for:!0},T(ee),{item:e}),p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,_({ref_for:!0},t))])}))]),1040,[`item`]))),128))]),_:3},16)]),_:3},16,[`as`,`disabled-collapsible`])]),_:3},16,[`value`,`disabled`])):(b(),l(T(j),_({key:0},h.itemProps,{as:h.as,value:h.item.value,disabled:h.item.disabled}),{default:D(()=>[Y.value?(b(),l(T(k),_({key:0},h.buttonProps,{"as-child":``}),{default:D(()=>[m(e,y(g(X.value)),{default:D(({isHref:e})=>[m(o,{item:h.item,"show-link-icon":e},p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,y(g(t)))])}))]),1032,[`item`,`show-link-icon`])]),_:3},16)]),_:3},16)):(b(),l(T(k),y(_({key:1},h.buttonProps)),{default:D(()=>[m(o,{item:h.item},p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,y(g(t)))])}))]),1032,[`item`])]),_:3},16)),Q.value?(b(),l(n,_({key:2},te.value,{size:T(V),content:Q.value}),{trigger:D(()=>[(b(),l(w(Y.value?e:`div`),_(X.value,{class:T(W),onClick:re}),null,16,[`class`]))]),_:1},16,[`size`,`content`])):u(`v-if`,!0)]),_:3},16,[`as`,`value`,`disabled`]))}}});export{P as default};
1
+ import e from"../link/link.js";import t from"../dropdown-menu/dropdown-menu.js";import n from"../tooltip/tooltip.js";import{useTreeMenuContext as r,useTreeMenuExtraUi as i,useTreeMenuOptionsContext as a}from"./context.js";import o from"./tree-menu-option-slot.js";import{Fragment as s,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createSlots as p,createVNode as m,defineComponent as h,guardReactiveProps as g,mergeProps as _,normalizeClass as v,normalizeProps as y,openBlock as b,renderList as x,renderSlot as S,resolveComponent as C,resolveDynamicComponent as w,unref as T,useSlots as E,withCtx as D}from"vue";import{useOmitProps as O}from"@soybeanjs/headless/composables";import{TreeMenuButton as k,TreeMenuCollapsible as A,TreeMenuItem as j,TreeMenuSub as M,useTreeMenuRootContext as N}from"@soybeanjs/headless/tree-menu";const P=h({name:`STreeMenuOption`,__name:`tree-menu-option`,props:{as:{default:`li`},item:{},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},emits:[`selectDropdown`],setup(h,{emit:P}){let F=h,I=P,L=E(),ee=O(F,[`as`,`item`]),{collapsed:R,modelValue:z,onModelValueChange:B}=N(`TreeMenuOption`),{size:V,side:H}=r(`TreeMenuOption`),{activePaths:U}=a(`TreeMenuOption`),W=i(`itemAbsolute`),G=c(()=>Object.keys(L)),K=c(()=>F.item.children??[]),q=c(()=>!!K.value.length),J=c(()=>{let e=F.item.value;return z.value===e?!1:U.value.includes(e)}),Y=c(()=>!!(F.item.to||F.item.href)),X=c(()=>{let{disabled:e,to:t,href:n,target:r,external:i}=F.item;return Y.value?{disabled:e,to:t,href:n,target:r,external:i}:{}}),Z=c(()=>R.value&&q.value),Q=c(()=>R.value&&!Z.value?F.item.label:void 0),$=c(()=>H.value===`left`?`right`:`left`),te=c(()=>({...F.item.tooltipProps,placement:F.item.tooltipProps?.placement??$.value})),ne=c(()=>({...F.item.dropdownMenuProps,trigger:F.item.dropdownMenuProps?.trigger??`hover`,placement:F.item.dropdownMenuProps?.placement??$.value})),re=()=>{F.item.disabled||B(F.item.value)},ie=e=>{F.item.disabled||(B(e.value),I(`selectDropdown`,e.value))};return(r,i)=>{let a=C(`STreeMenuOption`);return q.value?(b(),l(T(j),_({key:1},h.itemProps,{"as-child":``,value:h.item.value,disabled:h.item.disabled}),{default:D(()=>[m(T(A),_(h.collapsibleProps,{as:h.as,"disabled-collapsible":T(R)}),{trigger:D(()=>[m(T(k),_(h.buttonProps,{"disabled-active":``,"data-child-active":J.value?``:void 0}),{default:D(()=>[m(o,{item:h.item},p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,y(g(t)))])}))]),1032,[`item`])]),_:3},16,[`data-child-active`])]),extra:D(()=>[Z.value?(b(),l(t,_({key:0},ne.value,{items:K.value,disabled:h.item.disabled,size:T(V),"data-menu":h.item.label,"active-value":T(z),onSelect:ie}),{trigger:D(()=>[f(`div`,{class:v(T(W))},null,2)]),_:1},16,[`items`,`disabled`,`size`,`data-menu`,`active-value`])):u(`v-if`,!0)]),default:D(()=>[m(T(M),y(g(h.subProps)),{default:D(()=>[(b(!0),d(s,null,x(K.value,e=>(b(),l(a,_({key:e.value,ref_for:!0},T(ee),{item:e}),p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,_({ref_for:!0},t))])}))]),1040,[`item`]))),128))]),_:3},16)]),_:3},16,[`as`,`disabled-collapsible`])]),_:3},16,[`value`,`disabled`])):(b(),l(T(j),_({key:0},h.itemProps,{as:h.as,value:h.item.value,disabled:h.item.disabled}),{default:D(()=>[Y.value?(b(),l(T(k),_({key:0},h.buttonProps,{"as-child":``}),{default:D(()=>[m(e,y(g(X.value)),{default:D(({isHref:e})=>[m(o,{item:h.item,"show-link-icon":e},p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,y(g(t)))])}))]),1032,[`item`,`show-link-icon`])]),_:3},16)]),_:3},16)):(b(),l(T(k),y(_({key:1},h.buttonProps)),{default:D(()=>[m(o,{item:h.item},p({_:2},[x(G.value,e=>({name:e,fn:D(t=>[S(r.$slots,e,y(g(t)))])}))]),1032,[`item`])]),_:3},16)),Q.value?(b(),l(n,_({key:2},te.value,{size:T(V),content:Q.value}),{trigger:D(()=>[(b(),l(w(Y.value?e:`div`),_(X.value,{class:T(W),onClick:re}),null,16,[`class`]))]),_:1},16,[`size`,`content`])):u(`v-if`,!0)]),_:3},16,[`as`,`value`,`disabled`]))}}});export{P as default};
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import{provideTreeMenuOptionsContext as t}from"./context.js";import n from"./tree-menu-option.js";import{filterHiddenMenus as r}from"./shared.js";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createElementVNode as l,createSlots as u,createVNode as d,defineComponent as f,mergeProps as p,openBlock as m,renderList as h,renderSlot as g,toDisplayString as _,unref as v,useSlots as y,withCtx as b}from"vue";import{usePickProps as x}from"@soybeanjs/headless/composables";import{TreeMenuGroup as S,TreeMenuGroupLabel as C,TreeMenuGroupRoot as w,useTreeMenuRootContext as T}from"@soybeanjs/headless";import{getTreePaths as E}from"@soybeanjs/headless/shared";const D=f({name:`STreeMenuOptions`,__name:`tree-menu-options`,props:{items:{},groupRootProps:{},groupProps:{},groupLabelProps:{},showGroupIcon:{type:Boolean},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},emits:[`selectDropdown`],setup(f,{emit:D}){let O=f,k=D,A=y(),j={item:`default`,"item-leading":`leading`,"item-trailing":`trailing`},M=a(()=>Object.keys(A).filter(e=>e.startsWith(`item`)).map(e=>({key:e,map:j[e]}))),N=x(O,[`itemProps`,`buttonProps`,`linkProps`,`collapsibleProps`,`subProps`]),{modelValue:P}=T(`TreeMenuOptions`),F=a(()=>r(O.items));return t({activePaths:a(()=>E(P.value,F.value))}),(t,r)=>(m(!0),c(i,null,h(F.value,a=>(m(),c(i,{key:a.value},[a.isGroup?(m(),o(v(w),p({key:0,ref_for:!0},f.groupRootProps),{default:b(()=>[d(v(C),p({ref_for:!0},f.groupLabelProps),{default:b(()=>[g(t.$slots,`group-label`,{item:a},()=>[f.showGroupIcon?(m(),o(e,{key:0,icon:a.icon},null,8,[`icon`])):s(`v-if`,!0),l(`span`,null,_(a.label),1)])]),_:2},1040),d(v(S),p({ref_for:!0},f.groupProps),{default:b(()=>[(m(!0),c(i,null,h(a.children,e=>(m(),o(n,p({key:e.value},{ref_for:!0},v(N),{item:e,onSelectDropdown:r[0]||=e=>k(`selectDropdown`,e)}),u({_:2},[h(M.value,e=>({name:e.map,fn:b(n=>[g(t.$slots,e.key,p({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:2},1040)]),_:2},1040)):(m(),o(n,p({key:1,as:`div`},{ref_for:!0},v(N),{item:a,onSelectDropdown:r[1]||=e=>k(`selectDropdown`,e)}),u({_:2},[h(M.value,e=>({name:e.map,fn:b(n=>[g(t.$slots,e.key,p({ref_for:!0},n))])}))]),1040,[`item`]))],64))),128))}});export{D as default};
1
+ import e from"../icon/icon.js";import{provideTreeMenuOptionsContext as t}from"./context.js";import n from"./tree-menu-option.js";import{filterHiddenMenus as r}from"./shared.js";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createElementVNode as l,createSlots as u,createVNode as d,defineComponent as f,mergeProps as p,openBlock as m,renderList as h,renderSlot as g,toDisplayString as _,unref as v,useSlots as y,withCtx as b}from"vue";import{usePickProps as x}from"@soybeanjs/headless/composables";import{getTreePaths as S}from"@soybeanjs/headless/shared";import{TreeMenuGroup as C,TreeMenuGroupLabel as w,TreeMenuGroupRoot as T,useTreeMenuRootContext as E}from"@soybeanjs/headless/tree-menu";const D=f({name:`STreeMenuOptions`,__name:`tree-menu-options`,props:{items:{},groupRootProps:{},groupProps:{},groupLabelProps:{},showGroupIcon:{type:Boolean},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},emits:[`selectDropdown`],setup(f,{emit:D}){let O=f,k=D,A=y(),j={item:`default`,"item-leading":`leading`,"item-trailing":`trailing`},M=a(()=>Object.keys(A).filter(e=>e.startsWith(`item`)).map(e=>({key:e,map:j[e]}))),N=x(O,[`itemProps`,`buttonProps`,`linkProps`,`collapsibleProps`,`subProps`]),{modelValue:P}=E(`TreeMenuOptions`),F=a(()=>r(O.items));return t({activePaths:a(()=>S(P.value,F.value))}),(t,r)=>(m(!0),c(i,null,h(F.value,a=>(m(),c(i,{key:a.value},[a.isGroup?(m(),o(v(T),p({key:0,ref_for:!0},f.groupRootProps),{default:b(()=>[d(v(w),p({ref_for:!0},f.groupLabelProps),{default:b(()=>[g(t.$slots,`group-label`,{item:a},()=>[f.showGroupIcon?(m(),o(e,{key:0,icon:a.icon},null,8,[`icon`])):s(`v-if`,!0),l(`span`,null,_(a.label),1)])]),_:2},1040),d(v(C),p({ref_for:!0},f.groupProps),{default:b(()=>[(m(!0),c(i,null,h(a.children,e=>(m(),o(n,p({key:e.value},{ref_for:!0},v(N),{item:e,onSelectDropdown:r[0]||=e=>k(`selectDropdown`,e)}),u({_:2},[h(M.value,e=>({name:e.map,fn:b(n=>[g(t.$slots,e.key,p({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:2},1040)]),_:2},1040)):(m(),o(n,p({key:1,as:`div`},{ref_for:!0},v(N),{item:a,onSelectDropdown:r[1]||=e=>k(`selectDropdown`,e)}),u({_:2},[h(M.value,e=>({name:e.map,fn:b(n=>[g(t.$slots,e.key,p({ref_for:!0},n))])}))]),1040,[`item`]))],64))),128))}});export{D as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import{themeSizeMap as t,themeSizeRatio as n}from"../../theme/config.js";import"../../theme/index.js";import{provideTreeMenuContext as r,provideTreeMenuExtraUi as i}from"./context.js";import{treeMenuVariants as a}from"./variants.js";import{treeMenuCssVars as o}from"./shared.js";import s from"./tree-menu-options.js";import{computed as c,createBlock as l,createSlots as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps 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,usePickProps as w}from"@soybeanjs/headless/composables";import{TreeMenuRoot as T,provideTreeMenuUi as E}from"@soybeanjs/headless";import{transformPropsToContext as D}from"@soybeanjs/headless/shared";const O=f({name:`STreeMenu`,__name:`tree-menu`,props:{class:{},size:{default:`md`},ui:{},side:{default:`left`},collapsedWidth:{default:50},indent:{default:16},modelValue:{},defaultValue:{},expanded:{},defaultExpanded:{},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean},items:{},groupRootProps:{},groupProps:{},groupLabelProps:{},showGroupIcon:{type:Boolean},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},emits:[`update:modelValue`,`update:expanded`,`update:collapsed`,`selectDropdown`],setup(f,{emit:O}){let k=f,A=O,j=x(),M=c(()=>Object.keys(j).filter(e=>e.startsWith(`item`))),N=w(k,[`modelValue`,`defaultValue`,`expanded`,`defaultExpanded`,`collapsed`,`defaultCollapsed`]),P=w(k,[`items`,`groupRootProps`,`groupProps`,`groupLabelProps`,`showGroupIcon`,`itemProps`,`buttonProps`,`linkProps`,`collapsibleProps`,`subProps`]),F=C(A),I=c(()=>{let e=k.collapsedWidth*n[k.size],r=k.indent*n[k.size];return{[o.collapsedWidth]:`${e/t.md}rem`,[o.indent]:`${r/t.md}rem`}}),L=c(()=>e(a({size:k.size}),k.ui,{root:k.class}));return E(L),i(L),r(D(k,[`size`,`side`])),(e,t)=>(g(),l(b(T),m(b(N),{style:I.value},y(b(F))),{default:S(()=>[v(e.$slots,`top`),d(s,m(b(P),{onSelectDropdown:t[0]||=e=>A(`selectDropdown`,e)}),u({_:2},[_(M.value,t=>({name:t,fn:S(n=>[v(e.$slots,t,h(p(n)))])}))]),1040),v(e.$slots,`bottom`)]),_:3},16,[`style`]))}});export{O as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import{themeSizeMap as t,themeSizeRatio as n}from"../../theme/config.js";import"../../theme/index.js";import{provideTreeMenuContext as r,provideTreeMenuExtraUi as i}from"./context.js";import{treeMenuVariants as a}from"./variants.js";import{treeMenuCssVars as o}from"./shared.js";import s from"./tree-menu-options.js";import{computed as c,createBlock as l,createSlots as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps 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,usePickProps as w}from"@soybeanjs/headless/composables";import{transformPropsToContext as T}from"@soybeanjs/headless/shared";import{TreeMenuRoot as E,provideTreeMenuUi as D}from"@soybeanjs/headless/tree-menu";const O=f({name:`STreeMenu`,__name:`tree-menu`,props:{class:{},size:{default:`md`},ui:{},side:{default:`left`},collapsedWidth:{default:50},indent:{default:16},modelValue:{},defaultValue:{},expanded:{},defaultExpanded:{},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean},items:{},groupRootProps:{},groupProps:{},groupLabelProps:{},showGroupIcon:{type:Boolean},itemProps:{},buttonProps:{},linkProps:{},collapsibleProps:{},subProps:{}},emits:[`update:modelValue`,`update:expanded`,`update:collapsed`,`selectDropdown`],setup(f,{emit:O}){let k=f,A=O,j=x(),M=c(()=>Object.keys(j).filter(e=>e.startsWith(`item`))),N=w(k,[`modelValue`,`defaultValue`,`expanded`,`defaultExpanded`,`collapsed`,`defaultCollapsed`]),P=w(k,[`items`,`groupRootProps`,`groupProps`,`groupLabelProps`,`showGroupIcon`,`itemProps`,`buttonProps`,`linkProps`,`collapsibleProps`,`subProps`]),F=C(A),I=c(()=>{let e=k.collapsedWidth*n[k.size],r=k.indent*n[k.size];return{[o.collapsedWidth]:`${e/t.md}rem`,[o.indent]:`${r/t.md}rem`}}),L=c(()=>e(a({size:k.size}),k.ui,{root:k.class}));return D(L),i(L),r(T(k,[`size`,`side`])),(e,t)=>(g(),l(b(E),m(b(N),{style:I.value},y(b(F))),{default:S(()=>[v(e.$slots,`top`),d(s,m(b(P),{onSelectDropdown:t[0]||=e=>A(`selectDropdown`,e)}),u({_:2},[_(M.value,t=>({name:t,fn:S(n=>[v(e.$slots,t,h(p(n)))])}))]),1040),v(e.$slots,`bottom`)]),_:3},16,[`style`]))}});export{O as default};