@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,17 +1,45 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
2
  import { SwitchShape } from "./variants.js";
3
- import { AcceptableBooleanValue, ClassValue, SwitchControlProps, SwitchRootEmits, SwitchRootProps, SwitchThumbProps, SwitchUi } from "@soybeanjs/headless";
3
+ import { SwitchControlProps, SwitchRootEmits, SwitchRootProps, SwitchThumbProps, SwitchUi } from "@soybeanjs/headless/switch";
4
+ import { AcceptableBooleanValue, ClassValue } from "@soybeanjs/headless/types";
4
5
 
5
6
  //#region src/components/switch/types.d.ts
7
+ /**
8
+ * Props for the switch component.
9
+ */
6
10
  interface SwitchProps<T extends AcceptableBooleanValue = boolean> extends SwitchRootProps<T> {
11
+ /**
12
+ * Additional class names applied to the root element.
13
+ */
7
14
  class?: ClassValue;
15
+ /**
16
+ * Per-slot class overrides for the component.
17
+ */
8
18
  ui?: Partial<SwitchUi>;
19
+ /**
20
+ * Theme color of the component.
21
+ */
9
22
  color?: ThemeColor;
23
+ /**
24
+ * Visual size of the component.
25
+ */
10
26
  size?: ThemeSize;
27
+ /**
28
+ * Shape of the component.
29
+ */
11
30
  shape?: SwitchShape;
31
+ /**
32
+ * Props forwarded to the control element.
33
+ */
12
34
  controlProps?: SwitchControlProps;
35
+ /**
36
+ * Props forwarded to the thumb element.
37
+ */
13
38
  thumbProps?: SwitchThumbProps;
14
39
  }
40
+ /**
41
+ * Emits for the switch component.
42
+ */
15
43
  type SwitchEmits<T extends AcceptableBooleanValue = boolean> = SwitchRootEmits<T>;
16
44
  //#endregion
17
45
  export { SwitchEmits, SwitchProps };
@@ -1 +1 @@
1
- import{shallowRef as e,watch as t}from"vue";import{useTable as n}from"@soybeanjs/hooks";import{getTableColumnKey as r,isTableGroupColumn as i}from"@soybeanjs/headless/table";function a(e){return n({...e,getColumnChecks:s,getColumns:c})}function o(r){let{page:i=1,pageSize:a=10,fetchOnPaginationChange:o=!0,onFetched:l}=r,u=e(i),d=e(a),f=e(0),p=n({...r,pagination:!0,getColumnChecks:s,getColumns:c,onFetched:e=>{e.total&&e.total!==f.value&&(f.value=e.total),e.page&&e.page!==u.value&&(u.value=e.page),e.pageSize&&e.pageSize!==d.value&&(d.value=e.pageSize),l?.(e)}});return t([u,d],()=>{o&&p.fetchData()},{flush:`post`}),{page:u,pageSize:d,total:f,...p}}function s(e){let t=[];return e.forEach(e=>{if(i(e)){t.push(...s(e.children));return}let{type:n,title:a,hidden:o}=e;if(n||!e.dataIndex)return;let c=r(e),l={key:c,title:a||c,checked:!0,hidden:o};t.push(l)}),t}function c(e,t){let n=new Map,a=new Map(t.map(e=>[e.key,e])),o=new Map(t.map((e,t)=>[e.key,t]));e.forEach((e,t)=>{e.type&&n.set(e.type,{column:e,index:t})});function s(e){if(i(e)){let t=e.children.map(e=>s(e));return t.length>0?Math.min(...t):1/0}return o.get(r(e))??1/0}let l=[...e.filter(e=>!e.type)].sort((e,t)=>s(e)-s(t)).reduce((e,n)=>{if(i(n)){let r=c(n.children,t);return r.length>0&&e.push({...n,children:r}),e}return a.get(r(n))?.checked!==!1&&e.push(n),e},[]);return n.forEach(({column:e,index:t})=>{t>=l.length?l.push(e):l.splice(t,0,e)}),l}export{o as usePaginatedTable,a as useTable};
1
+ import{shallowRef as e,watch as t}from"vue";import{getTableColumnKey as n,isTableGroupColumn as r}from"@soybeanjs/headless/table";import{useTable as i}from"@soybeanjs/hooks";function a(e){return i({...e,getColumnChecks:s,getColumns:c})}function o(n){let{page:r=1,pageSize:a=10,fetchOnPaginationChange:o=!0,onFetched:l}=n,u=e(r),d=e(a),f=e(0),p=i({...n,pagination:!0,getColumnChecks:s,getColumns:c,onFetched:e=>{e.total&&e.total!==f.value&&(f.value=e.total),e.page&&e.page!==u.value&&(u.value=e.page),e.pageSize&&e.pageSize!==d.value&&(d.value=e.pageSize),l?.(e)}});return t([u,d],()=>{o&&p.fetchData()},{flush:`post`}),{page:u,pageSize:d,total:f,...p}}function s(e){let t=[];return e.forEach(e=>{if(r(e)){t.push(...s(e.children));return}let{type:i,title:a,hidden:o}=e;if(i||!e.dataIndex)return;let c=n(e),l={key:c,title:a||c,checked:!0,hidden:o};t.push(l)}),t}function c(e,t){let i=new Map,a=new Map(t.map(e=>[e.key,e])),o=new Map(t.map((e,t)=>[e.key,t]));e.forEach((e,t)=>{e.type&&i.set(e.type,{column:e,index:t})});function s(e){if(r(e)){let t=e.children.map(e=>s(e));return t.length>0?Math.min(...t):1/0}return o.get(n(e))??1/0}let l=[...e.filter(e=>!e.type)].sort((e,t)=>s(e)-s(t)).reduce((e,i)=>{if(r(i)){let n=c(i.children,t);return n.length>0&&e.push({...i,children:n}),e}return a.get(n(i))?.checked!==!1&&e.push(i),e},[]);return i.forEach(({column:e,index:t})=>{t>=l.length?l.push(e):l.splice(t,0,e)}),l}export{o as usePaginatedTable,a as useTable};
@@ -1,6 +1,7 @@
1
1
  import { TableBaseData, TableColumn, TableColumnFilter, TableColumnFilterOption, TableColumnFilterValue, TableColumnType, TableEmits, TableExtendedUi, TableExtraUiSlot, TableFilterPopoverColumnMeta, TableFilterPopoverOption, TableFilterPopoverProps, TableProps, TableRadioProps, TableSlots, TableSortOrder } from "./types.js";
2
2
  import { _default } from "./table.vue.js";
3
3
  import { usePaginatedTable, useTable as useTable$1 } from "./hooks.js";
4
- import { TableCell as STableCell, TableRow as STableRow } from "@soybeanjs/headless";
4
+ import { TableCell as STableCell, TableRow as STableRow } from "@soybeanjs/headless/table";
5
5
  import { TableColumnCheck as TableColumnCheck$1 } from "@soybeanjs/hooks";
6
+ export * from "@soybeanjs/headless/table";
6
7
  export { STableCell, STableRow, type TableColumnCheck$1 as TableColumnCheck };
@@ -1 +1 @@
1
- import"./table.js";import"./hooks.js";import{TableCell as e,TableRow as t}from"@soybeanjs/headless";export{e as STableCell,t as STableRow};
1
+ import"./table.js";import"./hooks.js";import{TableCell as e,TableRow as t}from"@soybeanjs/headless/table";export{e as STableCell,t as STableRow};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import n from"../button/button-icon.js";import r from"../checkbox/checkbox.js";import i from"../empty/empty.js";import a from"./table-filter-popover.js";import{tableVariants as o}from"./variants.js";import s from"./table-radio.js";import{computed as c,createBlock as l,createCommentVNode as u,createElementVNode as d,createSlots as f,createVNode as p,defineComponent as m,guardReactiveProps as h,mergeProps as g,normalizeClass as _,normalizeProps as v,openBlock as y,renderList as b,renderSlot as x,toHandlers as S,unref as C,useSlots as w,withCtx as T}from"vue";import{useForwardListeners as E,useOmitProps as D}from"@soybeanjs/headless/composables";import{TableCompact as O,provideTableUi as k}from"@soybeanjs/headless";const A=[`aria-label`,`aria-pressed`,`data-resizing`,`onPointerdown`,`onKeydown`],j=m({name:`STable`,__name:`table`,props:{class:{},size:{},ui:{},variant:{},bordered:{type:Boolean},rounded:{type:Boolean,default:!0},striped:{type:Boolean},columns:{},data:{},rowKey:{},defaultSortState:{},sortState:{},defaultFilterState:{},filterState:{},defaultColumnWidths:{},columnWidths:{},getChildren:{},indent:{},virtual:{type:Boolean},height:{},estimateSize:{},virtualizerOptions:{},defaultExpanded:{},expanded:{},defaultExpandAll:{type:Boolean},contentProps:{},headerProps:{},bodyProps:{},footerProps:{},headProps:{},rowProps:{},cellProps:{},dir:{},defaultSelected:{},selected:{},multiple:{default:!0}},emits:[`update:sortState`,`update:filterState`,`update:columnWidths`,`update:expanded`,`update:selected`],setup(m,{emit:j}){let M=m,N=j,P=w(),F=D(M,[`class`,`ui`,`size`,`variant`,`bordered`,`rounded`,`striped`]),I=E(N),L=c(()=>Object.keys(P)),R=c(()=>e(o({size:M.size,variant:M.variant,bordered:M.bordered,rounded:M.rounded,striped:M.striped}),M.ui,{root:M.class})),z=c(()=>t[M.size??`md`]),B=e=>e===`asc`?`lucide:arrow-up`:e===`desc`?`lucide:arrow-down`:`lucide:arrow-up-down`;return k(R),(e,t)=>(y(),l(C(O),g(C(F),S(C(I))),f({_:2},[b(L.value,t=>({name:t,fn:T(n=>[x(e.$slots,t,v(h(n)))])})),P[`header-selection`]?void 0:{name:`header-selection`,fn:T(({checked:e,disabled:t,multiple:n,updateChecked:i})=>[n?(y(),l(r,{key:0,disabled:t,"model-value":e,class:_(R.value.selection),"control-props":{"aria-label":`Select all rows`},"onUpdate:modelValue":i},null,8,[`disabled`,`model-value`,`class`,`onUpdate:modelValue`])):u(`v-if`,!0)]),key:`0`},P.selection?void 0:{name:`selection`,fn:T(({checked:e,multiple:t,ariaLabel:n,toggleSelect:i})=>[t?(y(),l(r,{key:0,class:_(R.value.selection),"model-value":e,"control-props":{"aria-label":n},"onUpdate:modelValue":e=>i()},null,8,[`class`,`model-value`,`control-props`,`onUpdate:modelValue`])):(y(),l(s,{key:1,size:m.size,checked:e,"aria-label":n,onClick:e=>i()},null,8,[`size`,`checked`,`aria-label`,`onClick`]))]),key:`1`},P[`header-sort`]?void 0:{name:`header-sort`,fn:T(({sortOrder:e,ariaLabel:t,toggleSort:r})=>[p(n,{icon:B(e),class:_(R.value.sortTrigger),size:z.value,"aria-label":t,"data-sorted":e?``:void 0,onClick:e=>r()},null,8,[`icon`,`class`,`size`,`aria-label`,`data-sorted`,`onClick`])]),key:`2`},P[`header-filter`]?void 0:{name:`header-filter`,fn:T(e=>[p(a,g(e,{ui:R.value,size:m.size}),null,16,[`ui`,`size`])]),key:`3`},P[`header-resize`]?void 0:{name:`header-resize`,fn:T(({resizing:e,ariaLabel:t,onPointerdown:n,onKeydown:r})=>[d(`button`,{type:`button`,class:_(R.value.resizeHandle),"aria-label":t,"aria-pressed":e,"data-resizing":e||void 0,onPointerdown:n,onKeydown:r},null,42,A)]),key:`4`},P[`tree-toggle`]?void 0:{name:`tree-toggle`,fn:T(({expanded:e,ariaLabel:t,toggleExpand:r})=>[p(n,{class:_(R.value.treeToggle),size:z.value,"aria-expanded":e,"aria-label":t,icon:e?`lucide:chevron-down`:`lucide:chevron-right`,onClick:e=>r()},null,8,[`class`,`size`,`aria-expanded`,`aria-label`,`icon`,`onClick`])]),key:`5`},P.expand?void 0:{name:`expand`,fn:T(({expanded:e,ariaLabel:t,hasChildren:r,toggleExpand:i})=>[r||P[`expanded-row`]?(y(),l(n,{key:0,icon:e?`lucide:chevron-down`:`lucide:chevron-right`,class:_(R.value.treeToggle),size:z.value,"aria-expanded":e,"aria-label":t,"data-expanded":e?``:void 0,onClick:e=>i()},null,8,[`icon`,`class`,`size`,`aria-expanded`,`aria-label`,`data-expanded`,`onClick`])):u(`v-if`,!0)]),key:`6`},P.empty?void 0:{name:`empty`,fn:T(()=>[p(i,{title:`No data`,description:`There is no data to display.`,icon:`lucide:inbox`,"media-variant":`icon`})]),key:`7`}]),1040))}});export{j as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import n from"../button/button-icon.js";import r from"../checkbox/checkbox.js";import i from"../empty/empty.js";import a from"./table-filter-popover.js";import{tableVariants as o}from"./variants.js";import s from"./table-radio.js";import{computed as c,createBlock as l,createCommentVNode as u,createElementVNode as d,createSlots as f,createVNode as p,defineComponent as m,guardReactiveProps as h,mergeProps as g,normalizeClass as _,normalizeProps as v,openBlock as y,renderList as b,renderSlot as x,toHandlers as S,unref as C,useSlots as w,withCtx as T}from"vue";import{useForwardListeners as E,useOmitProps as D}from"@soybeanjs/headless/composables";import{TableCompact as O,provideTableUi as k}from"@soybeanjs/headless/table";const A=[`aria-label`,`aria-pressed`,`data-resizing`,`onPointerdown`,`onKeydown`],j=m({name:`STable`,__name:`table`,props:{class:{},size:{},ui:{},variant:{},bordered:{type:Boolean},rounded:{type:Boolean,default:!0},striped:{type:Boolean},columns:{},data:{},rowKey:{},defaultSortState:{},sortState:{},defaultFilterState:{},filterState:{},defaultColumnWidths:{},columnWidths:{},getChildren:{},indent:{},virtual:{type:Boolean},height:{},estimateSize:{},virtualizerOptions:{},defaultExpanded:{},expanded:{},defaultExpandAll:{type:Boolean},contentProps:{},headerProps:{},bodyProps:{},footerProps:{},headProps:{},rowProps:{},cellProps:{},dir:{},defaultSelected:{},selected:{},multiple:{default:!0}},emits:[`update:sortState`,`update:filterState`,`update:columnWidths`,`update:expanded`,`update:selected`],setup(m,{emit:j}){let M=m,N=j,P=w(),F=D(M,[`class`,`ui`,`size`,`variant`,`bordered`,`rounded`,`striped`]),I=E(N),L=c(()=>Object.keys(P)),R=c(()=>e(o({size:M.size,variant:M.variant,bordered:M.bordered,rounded:M.rounded,striped:M.striped}),M.ui,{root:M.class})),z=c(()=>t[M.size??`md`]),B=e=>e===`asc`?`lucide:arrow-up`:e===`desc`?`lucide:arrow-down`:`lucide:arrow-up-down`;return k(R),(e,t)=>(y(),l(C(O),g(C(F),S(C(I))),f({_:2},[b(L.value,t=>({name:t,fn:T(n=>[x(e.$slots,t,v(h(n)))])})),P[`header-selection`]?void 0:{name:`header-selection`,fn:T(({checked:e,disabled:t,multiple:n,updateChecked:i})=>[n?(y(),l(r,{key:0,disabled:t,"model-value":e,class:_(R.value.selection),"control-props":{"aria-label":`Select all rows`},"onUpdate:modelValue":i},null,8,[`disabled`,`model-value`,`class`,`onUpdate:modelValue`])):u(`v-if`,!0)]),key:`0`},P.selection?void 0:{name:`selection`,fn:T(({checked:e,multiple:t,ariaLabel:n,toggleSelect:i})=>[t?(y(),l(r,{key:0,class:_(R.value.selection),"model-value":e,"control-props":{"aria-label":n},"onUpdate:modelValue":e=>i()},null,8,[`class`,`model-value`,`control-props`,`onUpdate:modelValue`])):(y(),l(s,{key:1,size:m.size,checked:e,"aria-label":n,onClick:e=>i()},null,8,[`size`,`checked`,`aria-label`,`onClick`]))]),key:`1`},P[`header-sort`]?void 0:{name:`header-sort`,fn:T(({sortOrder:e,ariaLabel:t,toggleSort:r})=>[p(n,{icon:B(e),class:_(R.value.sortTrigger),size:z.value,"aria-label":t,"data-sorted":e?``:void 0,onClick:e=>r()},null,8,[`icon`,`class`,`size`,`aria-label`,`data-sorted`,`onClick`])]),key:`2`},P[`header-filter`]?void 0:{name:`header-filter`,fn:T(e=>[p(a,g(e,{ui:R.value,size:m.size}),null,16,[`ui`,`size`])]),key:`3`},P[`header-resize`]?void 0:{name:`header-resize`,fn:T(({resizing:e,ariaLabel:t,onPointerdown:n,onKeydown:r})=>[d(`button`,{type:`button`,class:_(R.value.resizeHandle),"aria-label":t,"aria-pressed":e,"data-resizing":e||void 0,onPointerdown:n,onKeydown:r},null,42,A)]),key:`4`},P[`tree-toggle`]?void 0:{name:`tree-toggle`,fn:T(({expanded:e,ariaLabel:t,toggleExpand:r})=>[p(n,{class:_(R.value.treeToggle),size:z.value,"aria-expanded":e,"aria-label":t,icon:e?`lucide:chevron-down`:`lucide:chevron-right`,onClick:e=>r()},null,8,[`class`,`size`,`aria-expanded`,`aria-label`,`icon`,`onClick`])]),key:`5`},P.expand?void 0:{name:`expand`,fn:T(({expanded:e,ariaLabel:t,hasChildren:r,toggleExpand:i})=>[r||P[`expanded-row`]?(y(),l(n,{key:0,icon:e?`lucide:chevron-down`:`lucide:chevron-right`,class:_(R.value.treeToggle),size:z.value,"aria-expanded":e,"aria-label":t,"data-expanded":e?``:void 0,onClick:e=>i()},null,8,[`icon`,`class`,`size`,`aria-expanded`,`aria-label`,`data-expanded`,`onClick`])):u(`v-if`,!0)]),key:`6`},P.empty?void 0:{name:`empty`,fn:T(()=>[p(i,{title:`No data`,description:`There is no data to display.`,icon:`lucide:inbox`,"media-variant":`icon`})]),key:`7`}]),1040))}});export{j as default};
@@ -5,10 +5,10 @@ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
5
  //#region src/components/table/table.vue.d.ts
6
6
  declare const __VLS_export: <T extends TableBaseData = TableBaseData, R extends string | number = string | number, M extends boolean = 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<{
7
7
  props: _$vue.PublicProps & __VLS_PrettifyLocal<TableProps<T, R, M> & {
8
+ "onUpdate:expanded"?: ((expanded: R[]) => any) | undefined;
8
9
  "onUpdate:sortState"?: ((state: _$_soybeanjs_headless0.TableSortState | undefined) => any) | undefined;
9
10
  "onUpdate:filterState"?: ((state: _$_soybeanjs_headless0.TableFilterState) => any) | undefined;
10
11
  "onUpdate:columnWidths"?: ((state: _$_soybeanjs_headless0.TableColumnWidthState) => any) | undefined;
11
- "onUpdate:expanded"?: ((expanded: R[]) => any) | undefined;
12
12
  "onUpdate:selected"?: ((selected: M extends true ? R[] : R | undefined) => any) | undefined;
13
13
  }> & (typeof globalThis extends {
14
14
  __VLS_PROPS_FALLBACK: infer P;
@@ -16,7 +16,7 @@ declare const __VLS_export: <T extends TableBaseData = TableBaseData, R extends
16
16
  expose: (exposed: {}) => void;
17
17
  attrs: any;
18
18
  slots: TableSlots<T>;
19
- emit: ((evt: "update:sortState", state: _$_soybeanjs_headless0.TableSortState | undefined) => void) & ((evt: "update:filterState", state: _$_soybeanjs_headless0.TableFilterState) => void) & ((evt: "update:columnWidths", state: _$_soybeanjs_headless0.TableColumnWidthState) => void) & ((evt: "update:expanded", expanded: R[]) => void) & ((evt: "update:selected", selected: M extends true ? R[] : R | undefined) => void);
19
+ emit: ((evt: "update:expanded", expanded: R[]) => void) & ((evt: "update:sortState", state: _$_soybeanjs_headless0.TableSortState | undefined) => void) & ((evt: "update:filterState", state: _$_soybeanjs_headless0.TableFilterState) => void) & ((evt: "update:columnWidths", state: _$_soybeanjs_headless0.TableColumnWidthState) => void) & ((evt: "update:selected", selected: M extends true ? R[] : R | undefined) => void);
20
20
  }>) => _$vue.VNode & {
21
21
  __ctx?: Awaited<typeof __VLS_setup>;
22
22
  };
@@ -1,41 +1,116 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import { TableVariant } from "./variants.js";
3
- import { ClassValue, UiClass } from "@soybeanjs/headless";
4
3
  import { TableBaseData, TableColumn, TableColumnFilter, TableColumnFilterOption, TableColumnFilterValue, TableColumnType, TableCompactEmits, TableCompactProps, TableCompactSlots, TableHeaderFilterSlotProps, TableSortOrder, TableUiSlot, TableUnifiedKey } from "@soybeanjs/headless/table";
4
+ import { ClassValue, UiClass } from "@soybeanjs/headless/types";
5
5
 
6
6
  //#region src/components/table/types.d.ts
7
+ /**
8
+ * Additional UI slots for the table component.
9
+ */
7
10
  type TableExtraUiSlot = 'selection' | 'filterTrigger' | 'filterPopup' | 'filterSearch' | 'filterOptions' | 'filterOption' | 'filterOptionLabel' | 'filterFooter' | 'filterCount' | 'filterAction' | 'filterEmpty';
11
+ /**
12
+ * Extended UI class overrides for the table component.
13
+ */
8
14
  type TableExtendedUi = UiClass<TableUiSlot | TableExtraUiSlot>;
15
+ /**
16
+ * Props for the table component.
17
+ */
9
18
  interface TableProps<T extends TableBaseData = TableBaseData, R extends string | number = string | number, M extends boolean = false> extends TableCompactProps<T, R, M> {
10
19
  /**
11
20
  * Additional class names to apply to the table.
12
21
  */
13
22
  class?: ClassValue;
23
+ /**
24
+ * Visual size of the component.
25
+ */
14
26
  size?: ThemeSize;
27
+ /**
28
+ * Per-slot class overrides for the component.
29
+ */
15
30
  ui?: Partial<TableExtendedUi>;
31
+ /**
32
+ * Visual variant of the component.
33
+ */
16
34
  variant?: TableVariant;
35
+ /**
36
+ * Whether bordered.
37
+ */
17
38
  bordered?: boolean;
39
+ /**
40
+ * Whether rounded.
41
+ */
18
42
  rounded?: boolean;
43
+ /**
44
+ * Whether striped.
45
+ */
19
46
  striped?: boolean;
20
47
  }
48
+ /**
49
+ * Emits for the table component.
50
+ */
21
51
  type TableEmits<R extends TableUnifiedKey = TableUnifiedKey, M extends boolean = false> = TableCompactEmits<R, M>;
52
+ /**
53
+ * Slots for the table component.
54
+ */
22
55
  type TableSlots<T extends TableBaseData = TableBaseData> = TableCompactSlots<T>;
56
+ /**
57
+ * Props for the table radio component.
58
+ */
23
59
  interface TableRadioProps {
60
+ /**
61
+ * Visual size of the component.
62
+ */
24
63
  size?: ThemeSize;
64
+ /**
65
+ * Whether the item is checked.
66
+ */
25
67
  checked?: boolean;
26
68
  }
69
+ /**
70
+ * Type information for the table filter popover column meta component.
71
+ */
27
72
  interface TableFilterPopoverColumnMeta {
73
+ /**
74
+ * Title text rendered by the component.
75
+ */
28
76
  title?: string;
77
+ /**
78
+ * Key.
79
+ */
29
80
  key?: string;
81
+ /**
82
+ * Data index.
83
+ */
30
84
  dataIndex?: string;
31
85
  }
86
+ /**
87
+ * Type information for the table filter popover option component.
88
+ */
32
89
  interface TableFilterPopoverOption {
90
+ /**
91
+ * Label text rendered by the component.
92
+ */
33
93
  label: string;
94
+ /**
95
+ * Value associated with the current item.
96
+ */
34
97
  value: string;
98
+ /**
99
+ * Whether the component is disabled.
100
+ */
35
101
  disabled?: boolean;
36
102
  }
103
+ /**
104
+ * Props for the table filter popover component.
105
+ */
37
106
  interface TableFilterPopoverProps<T extends TableBaseData = TableBaseData> extends TableHeaderFilterSlotProps<T> {
107
+ /**
108
+ * Visual size of the component.
109
+ */
38
110
  size?: ThemeSize;
111
+ /**
112
+ * Per-slot class overrides for the component.
113
+ */
39
114
  ui: TableExtendedUi;
40
115
  }
41
116
  //#endregion
@@ -1,4 +1,3 @@
1
- import { TabsEmits, TabsProps, TabsSlots } from "./types.js";
1
+ import { TabsEmits, TabsOptionData, TabsProps, TabsSlots } from "./types.js";
2
2
  import { _default } from "./tabs.vue.js";
3
- import { TabsCompactEmits as TabsCompactEmits$1, TabsCompactProps as TabsCompactProps$1, TabsContentProps, TabsIndicatorProps, TabsListProps, TabsOptionData as TabsOptionData$1, TabsRootEmits, TabsRootProps, TabsTriggerProps } from "@soybeanjs/headless/tabs";
4
- export { type TabsCompactEmits$1 as TabsCompactEmits, type TabsCompactProps$1 as TabsCompactProps, type TabsContentProps, type TabsIndicatorProps, type TabsListProps, type TabsOptionData$1 as TabsOptionData, type TabsRootEmits, type TabsRootProps, type TabsTriggerProps };
3
+ export * from "@soybeanjs/headless/tabs";
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tabsVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{TabsCompact as y,provideTabsUi as b}from"@soybeanjs/headless";import{keysOf as x}from"@soybeanjs/utils";const S=o({name:`STabs`,__name:`tabs`,props:{class:{},size:{},ui:{},fill:{default:`full`},items:{},enableIndicator:{type:Boolean,default:!0},listProps:{},triggerProps:{},contentProps:{},indicatorProps:{},modelValue:{default:void 0},defaultValue:{},activationMode:{},unmountOnHide:{type:Boolean,default:!0},orientation:{},dir:{},loop:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`,`fill`]),D=_(w),O=n(()=>x(T));return b(n(()=>e(t({size:C.size,orientation:C.orientation,fill:C.fill,enableIndicator:C.enableIndicator}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(y),c(m(E),{items:o.items},p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-ignore ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040,[`items`]))}});export{S as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tabsVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";import{TabsCompact as b,provideTabsUi as x}from"@soybeanjs/headless/tabs";const S=o({name:`STabs`,__name:`tabs`,props:{class:{},size:{},ui:{},fill:{default:`full`},items:{},enableIndicator:{type:Boolean,default:!0},listProps:{},triggerProps:{},contentProps:{},indicatorProps:{},modelValue:{default:void 0},defaultValue:{},activationMode:{},unmountOnHide:{type:Boolean,default:!0},orientation:{},dir:{},loop:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`,`fill`]),D=_(w),O=n(()=>y(T));return x(n(()=>e(t({size:C.size,orientation:C.orientation,fill:C.fill,enableIndicator:C.enableIndicator}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(b),c(m(E),{items:o.items},p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-ignore ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040,[`items`]))}});export{S as default};
@@ -1,17 +1,35 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import { TabsFill } from "./variants.js";
3
- import { AcceptableValue, ClassValue } from "@soybeanjs/headless";
4
3
  import { TabsCompactEmits, TabsCompactProps, TabsCompactSlots, TabsOptionData, TabsOptionData as TabsOptionData$1, TabsUi } from "@soybeanjs/headless/tabs";
4
+ import { AcceptableValue, ClassValue } from "@soybeanjs/headless/types";
5
5
 
6
6
  //#region src/components/tabs/types.d.ts
7
+ /**
8
+ * Props for the tabs component.
9
+ */
7
10
  interface TabsProps<T extends TabsOptionData = TabsOptionData> extends TabsCompactProps<T> {
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;
10
19
  /** Styled tabs ui slots, including `indicatorContent` for the compact indicator body. */
11
20
  ui?: Partial<TabsUi>;
21
+ /**
22
+ * Fill.
23
+ */
12
24
  fill?: TabsFill;
13
25
  }
26
+ /**
27
+ * Emits for the tabs component.
28
+ */
14
29
  type TabsEmits<T extends AcceptableValue = AcceptableValue> = TabsCompactEmits<T>;
30
+ /**
31
+ * Slots for the tabs component.
32
+ */
15
33
  type TabsSlots<T extends TabsOptionData = TabsOptionData> = TabsCompactSlots<T>;
16
34
  //#endregion
17
35
  export { TabsEmits, type TabsOptionData$1 as TabsOptionData, TabsProps, TabsSlots };
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import t from"../icon/icon.js";import{tagVariants as n}from"./variants.js";import{computed as r,createBlock as i,createCommentVNode as a,createTextVNode as o,createVNode as s,defineComponent as c,normalizeClass as l,openBlock as u,renderSlot as d,toDisplayString as f,unref as p,withCtx as m}from"vue";import{Tag as h}from"@soybeanjs/headless";const g=c({name:`STag`,__name:`tag`,props:{class:{},color:{},size:{},variant:{},shape:{},content:{},closable:{type:Boolean},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(c,{emit:g}){let _=c,v=g,y=r(()=>e(n({color:_.color,size:_.size,variant:_.variant,shape:_.shape}),_.class));return(e,n)=>(u(),i(p(h),{open:c.open,class:l(y.value),"onUpdate:open":n[0]||=e=>v(`update:open`,e)},{default:m(({close:n})=>[d(e.$slots,`leading`),d(e.$slots,`default`,{},()=>[o(f(c.content),1)]),d(e.$slots,`trailing`),c.closable?d(e.$slots,`close`,{key:0,close:n},()=>[s(t,{icon:`lucide:x`,style:{"flex-shrink":`0`,cursor:`pointer`},onClick:n},null,8,[`onClick`])]):a(`v-if`,!0)]),_:3},8,[`open`,`class`]))}});export{g as default};
1
+ import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import t from"../icon/icon.js";import{tagVariants as n}from"./variants.js";import{computed as r,createBlock as i,createCommentVNode as a,createTextVNode as o,createVNode as s,defineComponent as c,normalizeClass as l,openBlock as u,renderSlot as d,toDisplayString as f,unref as p,withCtx as m}from"vue";import{Tag as h}from"@soybeanjs/headless/tag";const g=c({name:`STag`,__name:`tag`,props:{class:{},color:{},size:{},variant:{},shape:{},content:{},closable:{type:Boolean},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(c,{emit:g}){let _=c,v=g,y=r(()=>e(n({color:_.color,size:_.size,variant:_.variant,shape:_.shape}),_.class));return(e,n)=>(u(),i(p(h),{open:c.open,class:l(y.value),"onUpdate:open":n[0]||=e=>v(`update:open`,e)},{default:m(({close:n})=>[d(e.$slots,`leading`),d(e.$slots,`default`,{},()=>[o(f(c.content),1)]),d(e.$slots,`trailing`),c.closable?d(e.$slots,`close`,{key:0,close:n},()=>[s(t,{icon:`lucide:x`,style:{"flex-shrink":`0`,cursor:`pointer`},onClick:n},null,8,[`onClick`])]):a(`v-if`,!0)]),_:3},8,[`open`,`class`]))}});export{g as default};
@@ -1,15 +1,40 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
2
  import { TagShape, TagVariant } from "./variants.js";
3
- import { ClassValue, TagEmits, TagProps } from "@soybeanjs/headless";
3
+ import { TagEmits, TagProps } from "@soybeanjs/headless/tag";
4
+ import { ClassValue } from "@soybeanjs/headless/types";
4
5
 
5
6
  //#region src/components/tag/types.d.ts
7
+ /**
8
+ * Props for the tag component.
9
+ */
6
10
  interface TagProps$1 extends TagProps {
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?: TagVariant;
27
+ /**
28
+ * Shape of the component.
29
+ */
11
30
  shape?: TagShape;
31
+ /**
32
+ * Content.
33
+ */
12
34
  content?: string;
35
+ /**
36
+ * Whether the component can be closed.
37
+ */
13
38
  closable?: boolean;
14
39
  }
15
40
  //#endregion
@@ -1,5 +1,6 @@
1
1
  import { TagsInputEmits, TagsInputProps } from "./types.js";
2
2
  import { _default } from "./tags-input.vue.js";
3
3
  import { _default as _default$1 } from "./tags-input-item-delete.vue.js";
4
- import { TagsInputAcceptableValue, TagsInputClear as STagsInputClear, TagsInputClearProps, TagsInputInput as STagsInputInput, TagsInputInputProps, TagsInputItem as STagsInputItem, TagsInputItemDeleteProps as TagsInputItemDeleteProps$1, TagsInputItemProps, TagsInputItemText as STagsInputItemText, TagsInputItemTextProps, TagsInputRootEmits, TagsInputRootProps, TagsInputUi, TagsInputUiSlot } from "@soybeanjs/headless/tags-input";
5
- export { STagsInputClear, STagsInputInput, STagsInputItem, STagsInputItemText, type TagsInputAcceptableValue, type TagsInputClearProps, type TagsInputInputProps, type TagsInputItemDeleteProps$1 as TagsInputItemDeleteProps, type TagsInputItemProps, type TagsInputItemTextProps, type TagsInputRootEmits, type TagsInputRootProps, type TagsInputUi, type TagsInputUiSlot };
4
+ import { TagsInputClear as STagsInputClear, TagsInputInput as STagsInputInput, TagsInputItem as STagsInputItem, TagsInputItemText as STagsInputItemText } from "@soybeanjs/headless/tags-input";
5
+ export * from "@soybeanjs/headless/tags-input";
6
+ export { STagsInputClear, STagsInputInput, STagsInputItem, STagsInputItemText };
@@ -1 +1 @@
1
- import e from"../icon/icon.js";import{createBlock as t,createVNode as n,defineComponent as r,guardReactiveProps as i,normalizeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{TagsInputItemDelete as u}from"@soybeanjs/headless";const d=r({name:`STagsInputItemDelete`,__name:`tags-input-item-delete`,props:{asChild:{type:Boolean},as:{}},setup(r){let d=r;return(r,f)=>(o(),t(c(u),a(i(d)),{default:l(()=>[s(r.$slots,`default`,{},()=>[n(e,{icon:`lucide:x`,"aria-hidden":!0})])]),_:3},16))}});export{d as default};
1
+ import e from"../icon/icon.js";import{createBlock as t,createVNode as n,defineComponent as r,guardReactiveProps as i,normalizeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{TagsInputItemDelete as u}from"@soybeanjs/headless/tags-input";const d=r({name:`STagsInputItemDelete`,__name:`tags-input-item-delete`,props:{asChild:{type:Boolean},as:{}},setup(r){let d=r;return(r,f)=>(o(),t(c(u),a(i(d)),{default:l(()=>[s(r.$slots,`default`,{},()=>[n(e,{icon:`lucide:x`,"aria-hidden":!0})])]),_:3},16))}});export{d as default};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tagsInputVariants 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{TagsInputRoot as h,provideTagsInputUi as g}from"@soybeanjs/headless";const _=i({name:`STagsInput`,__name:`tags-input`,props:{class:{},size:{},ui:{},id:{},modelValue:{},defaultValue:{},addOnPaste:{type:Boolean},addOnTab:{type:Boolean},addOnBlur:{type:Boolean},duplicate:{type:Boolean},disabled:{type:Boolean},delimiter:{},dir:{},max:{},convertValue:{type:Function},displayValue:{type:Function},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`invalid`,`addTag`,`removeTag`],setup(i,{emit:_}){let v=i,y=_,b=m(v,[`class`,`size`,`ui`,`onInvalid`]),x=p(y);return g(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(x))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tagsInputVariants 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{TagsInputRoot as h,provideTagsInputUi as g}from"@soybeanjs/headless/tags-input";const _=i({name:`STagsInput`,__name:`tags-input`,props:{class:{},size:{},ui:{},id:{},modelValue:{},defaultValue:{},addOnPaste:{type:Boolean},addOnTab:{type:Boolean},addOnBlur:{type:Boolean},duplicate:{type:Boolean},disabled:{type:Boolean},delimiter:{},dir:{},max:{},convertValue:{type:Function},displayValue:{type:Function},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`invalid`,`addTag`,`removeTag`],setup(i,{emit:_}){let v=i,y=_,b=m(v,[`class`,`size`,`ui`,`onInvalid`]),x=p(y);return g(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(x))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
@@ -1,6 +1,6 @@
1
1
  import { TagsInputProps } from "./types.js";
2
2
  import * as _$vue from "vue";
3
- import { TagsInputAcceptableValue } from "@soybeanjs/headless";
3
+ import { TagsInputAcceptableValue } from "@soybeanjs/headless/tags-input";
4
4
 
5
5
  //#region src/components/tags-input/tags-input.vue.d.ts
6
6
  declare const __VLS_export: <T extends TagsInputAcceptableValue = 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,12 +1,28 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ClassValue, TagsInputRootEmits, TagsInputRootProps, TagsInputUi } from "@soybeanjs/headless";
2
+ import { TagsInputRootEmits, TagsInputRootProps, TagsInputUi } from "@soybeanjs/headless/tags-input";
3
+ import { ClassValue } from "@soybeanjs/headless/types";
3
4
 
4
5
  //#region src/components/tags-input/types.d.ts
6
+ /**
7
+ * Props for the tags input component.
8
+ */
5
9
  interface TagsInputProps<T = string> extends TagsInputRootProps<T> {
10
+ /**
11
+ * Additional class names applied to the root element.
12
+ */
6
13
  class?: ClassValue;
14
+ /**
15
+ * Visual size of the component.
16
+ */
7
17
  size?: ThemeSize;
18
+ /**
19
+ * Per-slot class overrides for the component.
20
+ */
8
21
  ui?: Partial<TagsInputUi>;
9
22
  }
23
+ /**
24
+ * Emits for the tags input component.
25
+ */
10
26
  type TagsInputEmits<T = string> = TagsInputRootEmits<T>;
11
27
  //#endregion
12
28
  export { TagsInputEmits, TagsInputProps };
@@ -1,5 +1,4 @@
1
1
  import { TextareaResize } from "./variants.js";
2
2
  import { TextareaEmits, TextareaExtraUiSlot, TextareaProps } from "./types.js";
3
3
  import { _default } from "./textarea.vue.js";
4
- import { TextareaControlProps, TextareaCounterProps, TextareaRootEmits, TextareaRootProps } from "@soybeanjs/headless/textarea";
5
- export { type TextareaControlProps, type TextareaCounterProps, type TextareaRootEmits, type TextareaRootProps };
4
+ export * from "@soybeanjs/headless/textarea";
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{textareaVariants 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{TextareaControl as v,TextareaCounter as y,TextareaRoot as b,provideTextareaUi as x}from"@soybeanjs/headless";const S=s({name:`STextarea`,__name:`textarea`,props:{class:{},size:{},ui:{},resize:{},clearable:{type:Boolean},showCounter:{type:Boolean},textareaRef:{type:Function},controlProps:{},counterProps:{},defaultValue:{},modelValue:{},autosize:{type:[Boolean,Object]},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:S}){let C=s,w=S,[T,E]=g(e=>C.textareaRef?.(e)),D=_(C,[`class`,`size`,`ui`,`resize`,`clearable`,`showCounter`,`textareaRef`,`controlProps`,`counterProps`]),O=r(()=>e(n({size:C.size,resize:C.autosize?!1:C.resize}),C.ui,{root:C.class}));return x(O),(e,n)=>(f(),i(m(b),l(m(D),{"onUpdate:modelValue":n[0]||=e=>w(`update:modelValue`,e)}),{default:h(({clear:n})=>[o(m(v),l(s.controlProps,{ref:m(E)}),null,16),s.clearable?(f(),i(t,{key:0,icon:`lucide:x`,class:u(O.value.clearable),onClick:n},null,8,[`class`,`onClick`])):a(`v-if`,!0),s.showCounter?(f(),i(m(y),{key:1},{default:h(t=>[p(e.$slots,`counter`,d(c(t)))]),_:3})):a(`v-if`,!0),p(e.$slots,`footer`)]),_:3},16))}});export{S as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{textareaVariants 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{TextareaControl as v,TextareaCounter as y,TextareaRoot as b,provideTextareaUi as x}from"@soybeanjs/headless/textarea";const S=s({name:`STextarea`,__name:`textarea`,props:{class:{},size:{},ui:{},resize:{},clearable:{type:Boolean},showCounter:{type:Boolean},textareaRef:{type:Function},controlProps:{},counterProps:{},defaultValue:{},modelValue:{},autosize:{type:[Boolean,Object]},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:S}){let C=s,w=S,[T,E]=g(e=>C.textareaRef?.(e)),D=_(C,[`class`,`size`,`ui`,`resize`,`clearable`,`showCounter`,`textareaRef`,`controlProps`,`counterProps`]),O=r(()=>e(n({size:C.size,resize:C.autosize?!1:C.resize}),C.ui,{root:C.class}));return x(O),(e,n)=>(f(),i(m(b),l(m(D),{"onUpdate:modelValue":n[0]||=e=>w(`update:modelValue`,e)}),{default:h(({clear:n})=>[o(m(v),l(s.controlProps,{ref:m(E)}),null,16),s.clearable?(f(),i(t,{key:0,icon:`lucide:x`,class:u(O.value.clearable),onClick:n},null,8,[`class`,`onClick`])):a(`v-if`,!0),s.showCounter?(f(),i(m(y),{key:1},{default:h(t=>[p(e.$slots,`counter`,d(c(t)))]),_:3})):a(`v-if`,!0),p(e.$slots,`footer`)]),_:3},16))}});export{S as default};
@@ -1,13 +1,29 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
2
  import { TextareaResize } from "./variants.js";
3
- import { ClassValue, TextareaControlProps, TextareaCounterProps, TextareaRootEmits, TextareaRootProps, TextareaUi } from "@soybeanjs/headless";
3
+ import { TextareaControlProps, TextareaCounterProps, TextareaRootEmits, TextareaRootProps, TextareaUi } from "@soybeanjs/headless/textarea";
4
+ import { ClassValue } from "@soybeanjs/headless/types";
4
5
 
5
6
  //#region src/components/textarea/types.d.ts
7
+ /**
8
+ * Additional UI slots for the textarea component.
9
+ */
6
10
  type TextareaExtraUiSlot = 'clearable';
7
11
  type TextareaExtendedUi = TextareaUi & Record<TextareaExtraUiSlot, ClassValue>;
12
+ /**
13
+ * Props for the textarea component.
14
+ */
8
15
  interface TextareaProps extends TextareaRootProps {
16
+ /**
17
+ * Additional class names applied to the root element.
18
+ */
9
19
  class?: ClassValue;
20
+ /**
21
+ * Visual size of the component.
22
+ */
10
23
  size?: ThemeSize;
24
+ /**
25
+ * Per-slot class overrides for the component.
26
+ */
11
27
  ui?: Partial<TextareaExtendedUi>;
12
28
  /**
13
29
  * The resize of the textarea
@@ -29,8 +45,14 @@ interface TextareaProps extends TextareaRootProps {
29
45
  * The props of the textarea extra props.
30
46
  */
31
47
  controlProps?: TextareaControlProps;
48
+ /**
49
+ * Props forwarded to the counter element.
50
+ */
32
51
  counterProps?: TextareaCounterProps;
33
52
  }
53
+ /**
54
+ * Emits for the textarea component.
55
+ */
34
56
  type TextareaEmits = TextareaRootEmits;
35
57
  //#endregion
36
58
  export { TextareaEmits, TextareaExtraUiSlot, TextareaProps };
@@ -1,4 +1,3 @@
1
1
  import { TimeFieldEmits, TimeFieldProps, TimeFieldSlotProps, TimeFieldSlots } from "./types.js";
2
2
  import { _default } from "./time-field.vue.js";
3
- import { TimeFieldInputProps as TimeFieldInputProps$1, TimeFieldRootEmits as TimeFieldRootEmits$1, TimeFieldRootProps as TimeFieldRootProps$1, TimeFieldUi as TimeFieldUi$1, TimeFieldUiSlot } from "@soybeanjs/headless/time-field";
4
- export { type TimeFieldInputProps$1 as TimeFieldInputProps, type TimeFieldRootEmits$1 as TimeFieldRootEmits, type TimeFieldRootProps$1 as TimeFieldRootProps, type TimeFieldUi$1 as TimeFieldUi, type TimeFieldUiSlot };
3
+ export * from "@soybeanjs/headless/time-field";
@@ -1,24 +1,60 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ClassValue } from "@soybeanjs/headless";
3
2
  import { TimeFieldInputProps, TimeFieldRootEmits, TimeFieldRootProps, TimeFieldUi } from "@soybeanjs/headless/time-field";
3
+ import { ClassValue } from "@soybeanjs/headless/types";
4
4
 
5
5
  //#region src/components/time-field/types.d.ts
6
+ /**
7
+ * Slot props for the time field component.
8
+ */
6
9
  interface TimeFieldSlotProps {
10
+ /**
11
+ * Current model value.
12
+ */
7
13
  modelValue: TimeFieldRootProps['modelValue'];
14
+ /**
15
+ * Segments exposed in the slot scope.
16
+ */
8
17
  segments: {
9
18
  part: TimeFieldInputProps['part'];
10
19
  value: string;
11
20
  }[];
21
+ /**
22
+ * Whether the current value is invalid.
23
+ */
12
24
  isInvalid: boolean;
13
25
  }
14
- interface TimeFieldProps extends /* @vue-ignore */TimeFieldRootProps {
26
+ /**
27
+ * Props for the time field component.
28
+ */
29
+ interface TimeFieldProps extends /** @vue-ignore */TimeFieldRootProps {
30
+ /**
31
+ * Additional class names applied to the root element.
32
+ */
15
33
  class?: ClassValue;
34
+ /**
35
+ * Visual size of the component.
36
+ */
16
37
  size?: ThemeSize;
38
+ /**
39
+ * Per-slot class overrides for the component.
40
+ */
17
41
  ui?: Partial<TimeFieldUi>;
42
+ /**
43
+ * Props forwarded to the input element.
44
+ */
18
45
  inputProps?: Omit<TimeFieldInputProps, 'part'>;
19
46
  }
47
+ /**
48
+ * Emits for the time field component.
49
+ */
20
50
  type TimeFieldEmits = TimeFieldRootEmits;
51
+ /**
52
+ * Slots for the time field component.
53
+ */
21
54
  interface TimeFieldSlots {
55
+ /**
56
+ * Custom content for the default slot.
57
+ */
22
58
  default?: (props: TimeFieldSlotProps) => any;
23
59
  }
24
60
  //#endregion
@@ -1,4 +1,3 @@
1
1
  import { TimePickerEmits, TimePickerProps, TimePickerSlots } from "./types.js";
2
2
  import { _default } from "./time-picker.vue.js";
3
- import { TimePickerPopupProps as TimePickerPopupProps$1, TimePickerRootEmits as TimePickerRootEmits$1, TimePickerRootProps as TimePickerRootProps$1, TimePickerTriggerProps as TimePickerTriggerProps$1, TimePickerUi as TimePickerUi$1, TimePickerUiSlot } from "@soybeanjs/headless/time-picker";
4
- export { type TimePickerPopupProps$1 as TimePickerPopupProps, type TimePickerRootEmits$1 as TimePickerRootEmits, type TimePickerRootProps$1 as TimePickerRootProps, type TimePickerTriggerProps$1 as TimePickerTriggerProps, type TimePickerUi$1 as TimePickerUi, type TimePickerUiSlot };
3
+ export * from "@soybeanjs/headless/time-picker";
@@ -1,23 +1,53 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ClassValue } from "@soybeanjs/headless";
3
2
  import { TimePickerPopupProps, TimePickerRootEmits, TimePickerRootProps, TimePickerTriggerProps, TimePickerUi } from "@soybeanjs/headless/time-picker";
3
+ import { ClassValue } from "@soybeanjs/headless/types";
4
4
  import { TimeValue } from "@soybeanjs/headless/date";
5
5
 
6
6
  //#region src/components/time-picker/types.d.ts
7
- interface TimePickerProps extends /* @vue-ignore */TimePickerRootProps {
7
+ /**
8
+ * Props for the time picker component.
9
+ */
10
+ interface TimePickerProps extends /** @vue-ignore */TimePickerRootProps {
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<TimePickerUi>;
23
+ /**
24
+ * Props forwarded to the trigger element.
25
+ */
11
26
  triggerProps?: TimePickerTriggerProps;
27
+ /**
28
+ * Props forwarded to the popup element.
29
+ */
12
30
  popupProps?: TimePickerPopupProps;
13
31
  }
32
+ /**
33
+ * Emits for the time picker component.
34
+ */
14
35
  type TimePickerEmits = TimePickerRootEmits;
36
+ /**
37
+ * Slots for the time picker component.
38
+ */
15
39
  interface TimePickerSlots {
40
+ /**
41
+ * Custom content for the trigger slot.
42
+ */
16
43
  trigger?: (props: {
17
44
  displayValue: string;
18
45
  modelValue: TimeValue | undefined;
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;
@@ -25,6 +55,9 @@ interface TimePickerSlots {
25
55
  selected: boolean;
26
56
  time: TimeValue;
27
57
  }) => any;
58
+ /**
59
+ * Custom content for the default slot.
60
+ */
28
61
  default?: (props: {
29
62
  displayValue: string;
30
63
  modelValue: TimeValue | undefined;
@@ -1,4 +1,3 @@
1
1
  import { TimeRangeFieldEmits, TimeRangeFieldProps, TimeRangeFieldSlotProps, TimeRangeFieldSlots } from "./types.js";
2
2
  import { _default } from "./time-range-field.vue.js";
3
- import { TimeRangeFieldInputProps as TimeRangeFieldInputProps$1, TimeRangeFieldRootEmits as TimeRangeFieldRootEmits$1, TimeRangeFieldRootProps as TimeRangeFieldRootProps$1, TimeRangeFieldUi as TimeRangeFieldUi$1, TimeRangeFieldUiSlot } from "@soybeanjs/headless/time-range-field";
4
- export { type TimeRangeFieldInputProps$1 as TimeRangeFieldInputProps, type TimeRangeFieldRootEmits$1 as TimeRangeFieldRootEmits, type TimeRangeFieldRootProps$1 as TimeRangeFieldRootProps, type TimeRangeFieldUi$1 as TimeRangeFieldUi, type TimeRangeFieldUiSlot };
3
+ export * from "@soybeanjs/headless/time-range-field";