@soybeanjs/ui 0.22.3 → 0.23.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 (334) hide show
  1. package/README.md +7 -14
  2. package/README.zh-CN.md +7 -14
  3. package/dist/components/accordion/accordion.js +1 -1
  4. package/dist/components/affix/affix.js +1 -1
  5. package/dist/components/alert/alert.js +1 -1
  6. package/dist/components/alert/index.d.ts +1 -1
  7. package/dist/components/alert/types.d.ts +1 -1
  8. package/dist/components/anchor/anchor.js +1 -1
  9. package/dist/components/autocomplete/autocomplete.js +1 -1
  10. package/dist/components/avatar/avatar.js +1 -1
  11. package/dist/components/backtop/backtop.js +1 -1
  12. package/dist/components/backtop/backtop.vue.d.ts +2 -3
  13. package/dist/components/backtop/types.d.ts +1 -1
  14. package/dist/components/badge/badge.js +1 -1
  15. package/dist/components/badge/index.d.ts +1 -1
  16. package/dist/components/badge/types.d.ts +1 -1
  17. package/dist/components/bottom-sheet/bottom-sheet.js +1 -1
  18. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  19. package/dist/components/button/button-group.js +1 -1
  20. package/dist/components/button/button-icon.vue.d.ts +1 -1
  21. package/dist/components/button/button-link.vue.d.ts +2 -2
  22. package/dist/components/button/button.js +1 -1
  23. package/dist/components/button/index.d.ts +1 -1
  24. package/dist/components/button/types.d.ts +1 -1
  25. package/dist/components/calendar/calendar.js +1 -1
  26. package/dist/components/calendar-range/calendar-range.js +1 -1
  27. package/dist/components/card/card.js +1 -1
  28. package/dist/components/carousel/carousel.js +1 -1
  29. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  30. package/dist/components/checkbox/checkbox-card.js +1 -1
  31. package/dist/components/checkbox/checkbox-group.js +1 -1
  32. package/dist/components/checkbox/checkbox.js +1 -1
  33. package/dist/components/checkbox/types.d.ts +1 -1
  34. package/dist/components/clipboard/clipboard.js +1 -1
  35. package/dist/components/clipboard/index.d.ts +1 -1
  36. package/dist/components/clipboard/types.d.ts +1 -1
  37. package/dist/components/collapsible/collapsible.js +1 -1
  38. package/dist/components/color-area/color-area.js +1 -1
  39. package/dist/components/color-field/color-field.js +1 -1
  40. package/dist/components/color-picker/color-picker.js +1 -1
  41. package/dist/components/color-slider/color-slider.js +1 -1
  42. package/dist/components/color-slider/color-slider.vue.d.ts +1 -2
  43. package/dist/components/color-swatch/color-swatch.js +1 -1
  44. package/dist/components/color-swatch/index.d.ts +1 -1
  45. package/dist/components/color-swatch/types.d.ts +1 -1
  46. package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -1
  47. package/dist/components/color-swatch-picker/color-swatch-picker.vue.d.ts +1 -1
  48. package/dist/components/color-swatch-picker/index.d.ts +1 -1
  49. package/dist/components/color-swatch-picker/types.d.ts +1 -1
  50. package/dist/components/combobox/combobox.js +1 -1
  51. package/dist/components/command/command.js +1 -1
  52. package/dist/components/date-field/date-field.js +1 -1
  53. package/dist/components/date-picker/date-picker.js +1 -1
  54. package/dist/components/date-range-field/date-range-field.js +1 -1
  55. package/dist/components/date-range-picker/date-range-picker.js +1 -1
  56. package/dist/components/dialog/dialog-provider.js +1 -1
  57. package/dist/components/dialog/dialog.js +1 -1
  58. package/dist/components/drawer/drawer.js +1 -1
  59. package/dist/components/editable/editable.js +1 -1
  60. package/dist/components/empty/empty.js +1 -1
  61. package/dist/components/form/form-field-array.js +1 -1
  62. package/dist/components/form/form-field-base.js +1 -1
  63. package/dist/components/form/form-field.js +1 -1
  64. package/dist/components/form/form.js +1 -1
  65. package/dist/components/hover-card/hover-card.js +1 -1
  66. package/dist/components/input/input.js +1 -1
  67. package/dist/components/input-number/input-number.js +1 -1
  68. package/dist/components/input-otp/input-otp.js +1 -1
  69. package/dist/components/kbd/index.d.ts +1 -1
  70. package/dist/components/kbd/kbd.js +1 -1
  71. package/dist/components/kbd/types.d.ts +1 -1
  72. package/dist/components/label/label.js +1 -1
  73. package/dist/components/layout/layout-classic.js +1 -1
  74. package/dist/components/layout/layout.js +1 -1
  75. package/dist/components/link/link.js +1 -1
  76. package/dist/components/link/link.vue.d.ts +1 -1
  77. package/dist/components/list/list.js +1 -1
  78. package/dist/components/menu/context.js +1 -1
  79. package/dist/components/menubar/menubar.js +1 -1
  80. package/dist/components/navigation-menu/navigation-menu.js +1 -1
  81. package/dist/components/page-tabs/index.d.ts +1 -1
  82. package/dist/components/page-tabs/page-tabs.js +1 -1
  83. package/dist/components/page-tabs/types.d.ts +1 -1
  84. package/dist/components/pagination/pagination.js +1 -1
  85. package/dist/components/pagination/types.d.ts +1 -1
  86. package/dist/components/password/password.js +1 -1
  87. package/dist/components/popconfirm/popconfirm.js +1 -1
  88. package/dist/components/popover/popover.js +1 -1
  89. package/dist/components/progress/progress-circle.js +1 -1
  90. package/dist/components/progress/progress-provider.js +1 -1
  91. package/dist/components/progress/progress.js +1 -1
  92. package/dist/components/radio-group/radio-group-card.js +1 -1
  93. package/dist/components/radio-group/radio-group.js +1 -1
  94. package/dist/components/radio-group/types.d.ts +1 -1
  95. package/dist/components/scroll-area/scroll-area.js +1 -1
  96. package/dist/components/scroll-area/types.d.ts +5 -0
  97. package/dist/components/segment/index.d.ts +1 -1
  98. package/dist/components/segment/segment.js +1 -1
  99. package/dist/components/segment/types.d.ts +1 -1
  100. package/dist/components/select/select.js +1 -1
  101. package/dist/components/separator/separator.js +1 -1
  102. package/dist/components/separator/types.d.ts +1 -1
  103. package/dist/components/skeleton/index.d.ts +1 -1
  104. package/dist/components/skeleton/skeleton.js +1 -1
  105. package/dist/components/skeleton/types.d.ts +1 -1
  106. package/dist/components/slider/slider.js +1 -1
  107. package/dist/components/spinner/spinner.js +1 -1
  108. package/dist/components/splitter/splitter-group.js +1 -1
  109. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  110. package/dist/components/splitter/types.d.ts +5 -0
  111. package/dist/components/stepper/stepper.js +1 -1
  112. package/dist/components/switch/index.d.ts +1 -1
  113. package/dist/components/switch/switch.js +1 -1
  114. package/dist/components/switch/types.d.ts +1 -1
  115. package/dist/components/table/table-radio.js +1 -1
  116. package/dist/components/table/table.js +1 -1
  117. package/dist/components/table/types.d.ts +1 -1
  118. package/dist/components/tabs/tabs.js +1 -1
  119. package/dist/components/tabs/types.d.ts +1 -1
  120. package/dist/components/tag/index.d.ts +1 -1
  121. package/dist/components/tag/tag.js +1 -1
  122. package/dist/components/tag/types.d.ts +1 -1
  123. package/dist/components/tags-input/tags-input.js +1 -1
  124. package/dist/components/textarea/index.d.ts +1 -1
  125. package/dist/components/textarea/textarea.js +1 -1
  126. package/dist/components/textarea/types.d.ts +1 -1
  127. package/dist/components/time-field/time-field.js +1 -1
  128. package/dist/components/time-range-field/time-range-field.js +1 -1
  129. package/dist/components/toast/toast-provider.js +1 -1
  130. package/dist/components/toggle/index.d.ts +1 -1
  131. package/dist/components/toggle/toggle.js +1 -1
  132. package/dist/components/toggle/types.d.ts +1 -1
  133. package/dist/components/toggle-group/index.d.ts +1 -1
  134. package/dist/components/toggle-group/toggle-group.js +1 -1
  135. package/dist/components/toggle-group/types.d.ts +1 -1
  136. package/dist/components/toolbar/toolbar.js +1 -1
  137. package/dist/components/tooltip/tooltip.js +1 -1
  138. package/dist/components/tree-menu/tree-menu-styled-item.js +1 -1
  139. package/dist/components/tree-menu/tree-menu.js +1 -1
  140. package/dist/index.d.ts +14 -14
  141. package/dist/styles/accordion.js +1 -0
  142. package/dist/styles/affix.js +1 -0
  143. package/dist/styles/alert.d.ts +102 -0
  144. package/dist/styles/alert.js +1 -0
  145. package/dist/styles/anchor.js +1 -0
  146. package/dist/styles/autocomplete.js +1 -0
  147. package/dist/styles/avatar.js +1 -0
  148. package/dist/styles/backtop.js +1 -0
  149. package/dist/styles/badge.d.ts +73 -0
  150. package/dist/styles/badge.js +1 -0
  151. package/dist/styles/bottom-sheet.js +1 -0
  152. package/dist/styles/breadcrumb.js +1 -0
  153. package/dist/styles/button.d.ts +62 -0
  154. package/dist/styles/button.js +1 -0
  155. package/dist/styles/calendar-range.js +1 -0
  156. package/dist/styles/calendar.js +1 -0
  157. package/dist/styles/card.js +1 -0
  158. package/dist/styles/carousel.js +1 -0
  159. package/dist/styles/checkbox.d.ts +88 -0
  160. package/dist/styles/checkbox.js +1 -0
  161. package/dist/styles/clipboard.d.ts +1 -0
  162. package/dist/styles/clipboard.js +1 -0
  163. package/dist/styles/collapsible.js +1 -0
  164. package/dist/styles/color-area.js +1 -0
  165. package/dist/styles/color-field.js +1 -0
  166. package/dist/styles/color-picker.js +1 -0
  167. package/dist/styles/color-swatch-picker.d.ts +52 -0
  168. package/dist/styles/color-swatch-picker.js +1 -0
  169. package/dist/styles/color-swatch.d.ts +40 -0
  170. package/dist/styles/color-swatch.js +1 -0
  171. package/dist/styles/combobox.js +1 -0
  172. package/dist/styles/command.js +1 -0
  173. package/dist/styles/date-field.js +1 -0
  174. package/dist/styles/date-picker.js +1 -0
  175. package/dist/styles/date-range-field.js +1 -0
  176. package/dist/styles/date-range-picker.js +1 -0
  177. package/dist/styles/dialog.js +1 -0
  178. package/dist/styles/drawer.js +1 -0
  179. package/dist/styles/editable.js +1 -0
  180. package/dist/styles/empty.js +1 -0
  181. package/dist/styles/form.js +1 -0
  182. package/dist/styles/hover-card.js +1 -0
  183. package/dist/styles/input-number.js +1 -0
  184. package/dist/styles/input-otp.js +1 -0
  185. package/dist/styles/input.js +1 -0
  186. package/dist/styles/kbd.d.ts +29 -0
  187. package/dist/styles/kbd.js +1 -0
  188. package/dist/styles/label.js +1 -0
  189. package/dist/styles/layout.js +1 -0
  190. package/dist/styles/link.js +1 -0
  191. package/dist/styles/list.js +1 -0
  192. package/dist/styles/menu.js +1 -0
  193. package/dist/styles/menubar.js +1 -0
  194. package/dist/styles/navigation-menu.js +1 -0
  195. package/dist/styles/page-tabs.d.ts +60 -0
  196. package/dist/styles/page-tabs.js +1 -0
  197. package/dist/styles/pagination.d.ts +73 -0
  198. package/dist/styles/pagination.js +1 -0
  199. package/dist/styles/password.js +1 -0
  200. package/dist/styles/popconfirm.js +1 -0
  201. package/dist/styles/popover.js +1 -0
  202. package/dist/styles/progress.js +1 -0
  203. package/dist/styles/radio-group.d.ts +96 -0
  204. package/dist/{components/radio-group/variants.js → styles/radio-group.js} +1 -1
  205. package/dist/styles/scroll-area.js +1 -0
  206. package/dist/styles/segment.js +1 -0
  207. package/dist/styles/select.js +1 -0
  208. package/dist/styles/separator.d.ts +66 -0
  209. package/dist/styles/separator.js +1 -0
  210. package/dist/styles/skeleton.d.ts +29 -0
  211. package/dist/styles/skeleton.js +1 -0
  212. package/dist/styles/slider.js +1 -0
  213. package/dist/styles/spinner.js +1 -0
  214. package/dist/styles/splitter.js +1 -0
  215. package/dist/styles/stepper.js +1 -0
  216. package/dist/styles/switch.d.ts +75 -0
  217. package/dist/styles/switch.js +1 -0
  218. package/dist/styles/table.d.ts +124 -0
  219. package/dist/styles/table.js +1 -0
  220. package/dist/styles/tabs.d.ts +81 -0
  221. package/dist/styles/tabs.js +1 -0
  222. package/dist/styles/tag.d.ts +45 -0
  223. package/dist/styles/tag.js +1 -0
  224. package/dist/styles/tags-input.js +1 -0
  225. package/dist/styles/textarea.d.ts +64 -0
  226. package/dist/styles/textarea.js +1 -0
  227. package/dist/styles/time-range-field.js +1 -0
  228. package/dist/styles/toast.js +1 -0
  229. package/dist/styles/toggle-group.d.ts +79 -0
  230. package/dist/styles/toggle-group.js +1 -0
  231. package/dist/styles/toggle.d.ts +44 -0
  232. package/dist/styles/toggle.js +1 -0
  233. package/dist/styles/toolbar.js +1 -0
  234. package/dist/styles/tooltip.js +1 -0
  235. package/dist/styles/tree-menu.js +1 -0
  236. package/dist/styles.css +66 -49
  237. package/dist/theme/index.js +1 -1
  238. package/package.json +7 -8
  239. package/dist/components/accordion/variants.js +0 -1
  240. package/dist/components/affix/variants.js +0 -1
  241. package/dist/components/alert/variants.d.ts +0 -299
  242. package/dist/components/alert/variants.js +0 -1
  243. package/dist/components/anchor/variants.js +0 -1
  244. package/dist/components/autocomplete/variants.js +0 -1
  245. package/dist/components/avatar/variants.js +0 -1
  246. package/dist/components/backtop/variants.js +0 -1
  247. package/dist/components/badge/variants.d.ts +0 -200
  248. package/dist/components/badge/variants.js +0 -1
  249. package/dist/components/bottom-sheet/variants.js +0 -1
  250. package/dist/components/breadcrumb/variants.js +0 -1
  251. package/dist/components/button/variants.d.ts +0 -145
  252. package/dist/components/button/variants.js +0 -1
  253. package/dist/components/calendar/variants.js +0 -1
  254. package/dist/components/calendar-range/variants.js +0 -1
  255. package/dist/components/card/variants.js +0 -1
  256. package/dist/components/carousel/variants.js +0 -1
  257. package/dist/components/checkbox/variants.d.ts +0 -254
  258. package/dist/components/checkbox/variants.js +0 -1
  259. package/dist/components/clipboard/variants.d.ts +0 -1
  260. package/dist/components/collapsible/variants.js +0 -1
  261. package/dist/components/color-area/variants.js +0 -1
  262. package/dist/components/color-field/variants.js +0 -1
  263. package/dist/components/color-picker/variants.js +0 -1
  264. package/dist/components/color-swatch/variants.d.ts +0 -107
  265. package/dist/components/color-swatch/variants.js +0 -1
  266. package/dist/components/color-swatch-picker/variants.d.ts +0 -152
  267. package/dist/components/color-swatch-picker/variants.js +0 -1
  268. package/dist/components/combobox/variants.js +0 -1
  269. package/dist/components/command/variants.js +0 -1
  270. package/dist/components/date-field/variants.js +0 -1
  271. package/dist/components/date-picker/variants.js +0 -1
  272. package/dist/components/date-range-field/variants.js +0 -1
  273. package/dist/components/dialog/variants.js +0 -1
  274. package/dist/components/drawer/variants.js +0 -1
  275. package/dist/components/editable/variants.js +0 -1
  276. package/dist/components/empty/variants.js +0 -1
  277. package/dist/components/form/variants.js +0 -1
  278. package/dist/components/hover-card/variants.js +0 -1
  279. package/dist/components/input/variants.js +0 -1
  280. package/dist/components/input-number/variants.js +0 -1
  281. package/dist/components/input-otp/variants.js +0 -1
  282. package/dist/components/kbd/variants.d.ts +0 -59
  283. package/dist/components/kbd/variants.js +0 -1
  284. package/dist/components/label/variants.js +0 -1
  285. package/dist/components/layout/variants.js +0 -1
  286. package/dist/components/link/variants.js +0 -1
  287. package/dist/components/list/variants.js +0 -1
  288. package/dist/components/menu/variants.js +0 -1
  289. package/dist/components/menubar/variants.js +0 -1
  290. package/dist/components/navigation-menu/variants.js +0 -1
  291. package/dist/components/page-tabs/variants.d.ts +0 -182
  292. package/dist/components/page-tabs/variants.js +0 -1
  293. package/dist/components/pagination/variants.d.ts +0 -231
  294. package/dist/components/pagination/variants.js +0 -1
  295. package/dist/components/popconfirm/variants.js +0 -1
  296. package/dist/components/popover/variants.js +0 -1
  297. package/dist/components/progress/variants.js +0 -1
  298. package/dist/components/radio-group/variants.d.ts +0 -275
  299. package/dist/components/scroll-area/variants.js +0 -1
  300. package/dist/components/select/variants.js +0 -1
  301. package/dist/components/separator/variants.d.ts +0 -176
  302. package/dist/components/separator/variants.js +0 -1
  303. package/dist/components/skeleton/variants.d.ts +0 -59
  304. package/dist/components/skeleton/variants.js +0 -1
  305. package/dist/components/slider/variants.js +0 -1
  306. package/dist/components/spinner/variants.js +0 -1
  307. package/dist/components/splitter/variants.js +0 -1
  308. package/dist/components/stepper/variants.js +0 -1
  309. package/dist/components/switch/variants.d.ts +0 -209
  310. package/dist/components/switch/variants.js +0 -1
  311. package/dist/components/table/variants.d.ts +0 -428
  312. package/dist/components/table/variants.js +0 -1
  313. package/dist/components/tabs/variants.d.ts +0 -228
  314. package/dist/components/tabs/variants.js +0 -1
  315. package/dist/components/tag/variants.d.ts +0 -102
  316. package/dist/components/tag/variants.js +0 -1
  317. package/dist/components/tags-input/variants.js +0 -1
  318. package/dist/components/textarea/variants.d.ts +0 -182
  319. package/dist/components/textarea/variants.js +0 -1
  320. package/dist/components/toast/variants.js +0 -1
  321. package/dist/components/toggle/variants.d.ts +0 -99
  322. package/dist/components/toggle/variants.js +0 -1
  323. package/dist/components/toggle-group/variants.d.ts +0 -215
  324. package/dist/components/toggle-group/variants.js +0 -1
  325. package/dist/components/toolbar/variants.js +0 -1
  326. package/dist/components/tooltip/variants.js +0 -1
  327. package/dist/components/tree-menu/variants.js +0 -1
  328. package/dist/theme/context.d.ts +0 -1
  329. package/dist/theme/context.js +0 -1
  330. package/dist/theme/index.d.ts +0 -1
  331. package/dist/theme/merge.d.ts +0 -1
  332. package/dist/theme/merge.js +0 -1
  333. package/dist/theme/shared.d.ts +0 -1
  334. package/dist/theme/shared.js +0 -1
package/README.md CHANGED
@@ -21,7 +21,7 @@ SoybeanUI is built on a strict **two-layer separation** model:
21
21
  ┌─────────────────────────────────────────┐
22
22
  │ @soybeanjs/ui (src/) │
23
23
  │ S-prefixed components (SButton…) │
24
- │ UnoCSS classes · tailwind-variants
24
+ │ UnoCSS classes · @soybeanjs/cva
25
25
  │ provideXUi(ui) ──────────────────┐ │
26
26
  └────────────────────────────────────┼────┘
27
27
  │ style injection
@@ -35,10 +35,10 @@ SoybeanUI is built on a strict **two-layer separation** model:
35
35
 
36
36
  ### Packages
37
37
 
38
- | Package | Role | Components |
39
- | ----------------------- | --------------------------------- | --------------------------------- |
40
- | **@soybeanjs/headless** | Logic, state, a11y. Zero styles. | 95 component dirs, 25 composables |
41
- | **@soybeanjs/ui** | Styled wrappers. UnoCSS + `tv()`. | 91 `S`-prefixed components |
38
+ | Package | Role | Components |
39
+ | ----------------------- | --------------------------------------------------- | --------------------------------- |
40
+ | **@soybeanjs/headless** | Logic, state, a11y. Zero styles. | 95 component dirs, 25 composables |
41
+ | **@soybeanjs/ui** | Styled wrappers. UnoCSS + `@soybeanjs/cva` recipes. | 91 `S`-prefixed components |
42
42
 
43
43
  **Data flow is strictly one-way**: `headless` → `src`. The styled layer never imports from headless's internals — it injects style tokens via `provideXUi(computedUi)` which headless components read through `useUiContext()`.
44
44
 
@@ -48,17 +48,11 @@ Current Compact-style coverage also includes flows such as card, date-field, dia
48
48
 
49
49
  ### Style Injection
50
50
 
51
- Every multi-slot headless component exposes a `provide{Name}Ui` function. The styled wrapper computes classes using `tailwind-variants` and injects them:
51
+ Every multi-slot headless component exposes a `provide{Name}Ui` function. The styled wrapper computes classes with `@soybeanjs/cva` recipes and injects them:
52
52
 
53
53
  ```ts
54
54
  // In the styled wrapper (src/)
55
- const ui = computed(() =>
56
- mergeVariants(
57
- accordionVariants({ size: props.size }), // tv() output
58
- props.ui, // user overrides
59
- { root: props.class } // class prop
60
- )
61
- );
55
+ const ui = computed(() => accordionVariants({ size: props.size }, props.ui, { root: props.class }));
62
56
  provideAccordionUi(ui); // headless reads this via useAccordionUi()
63
57
  ```
64
58
 
@@ -67,7 +61,6 @@ provideAccordionUi(ui); // headless reads this via useAccordionUi()
67
61
  - **`ThemeColor`** — 8 semantic colors: `primary` · `destructive` · `success` · `warning` · `info` · `carbon` · `secondary` · `accent`
68
62
  - **`ThemeSize`** — 6 sizes: `xs` · `sm` · `md` · `lg` · `xl` · `2xl` (base 16px at `md`)
69
63
  - **`ConfigProvider`** — sets global `dir`, `locale`, `nonce`, and default `tooltip` config for the entire component tree, including RTL layout switching
70
- - **`cn()`** — Tailwind-aware class merge (`clsx` + `tailwind-merge`), used for conflict-free class composition
71
64
 
72
65
  ### Locale Support
73
66
 
package/README.zh-CN.md CHANGED
@@ -21,7 +21,7 @@ SoybeanUI 采用严格的**双层分离**设计:
21
21
  ┌─────────────────────────────────────────┐
22
22
  │ @soybeanjs/ui (src/) │
23
23
  │ S 前缀组件 (SButton、SDialog…) │
24
- │ UnoCSS 类名 · tailwind-variants
24
+ │ UnoCSS 类名 · @soybeanjs/cva
25
25
  │ provideXUi(ui) ──────────────────┐ │
26
26
  └────────────────────────────────────┼────┘
27
27
  │ 样式注入
@@ -35,10 +35,10 @@ SoybeanUI 采用严格的**双层分离**设计:
35
35
 
36
36
  ### 包结构
37
37
 
38
- | 包 | 职责 | 组件数量 |
39
- | ----------------------- | --------------------------- | ------------------------------- |
40
- | **@soybeanjs/headless** | 逻辑、状态、a11y,零样式 | 95 个组件目录,25 个 composable |
41
- | **@soybeanjs/ui** | 样式包装层。UnoCSS + `tv()` | 91 个带 `S` 前缀的组件 |
38
+ | 包 | 职责 | 组件数量 |
39
+ | ----------------------- | -------------------------------------------- | ------------------------------- |
40
+ | **@soybeanjs/headless** | 逻辑、状态、a11y,零样式 | 95 个组件目录,25 个 composable |
41
+ | **@soybeanjs/ui** | 样式包装层。UnoCSS + `@soybeanjs/cva` recipe | 91 个带 `S` 前缀的组件 |
42
42
 
43
43
  **数据流严格单向**:`headless` → `src`。样式层不会导入 headless 的内部实现,而是通过 `provideXUi(computedUi)` 注入样式 token,headless 组件再通过 `useUiContext()` 读取。
44
44
 
@@ -48,17 +48,11 @@ SoybeanUI 采用严格的**双层分离**设计:
48
48
 
49
49
  ### 样式注入机制
50
50
 
51
- 每个多橪位的 headless 组件都有对应的 `provide{Name}Ui` 函数。样式层通过 `tailwind-variants` 计算类名后注入:
51
+ 每个多插槽的 headless 组件都有对应的 `provide{Name}Ui` 函数。样式层通过 `@soybeanjs/cva` 的 recipe 计算类名后注入:
52
52
 
53
53
  ```ts
54
54
  // 样式包装层 (src/) 中
55
- const ui = computed(() =>
56
- mergeVariants(
57
- accordionVariants({ size: props.size }), // tv() 计算结果
58
- props.ui, // 用户自定义覆盖
59
- { root: props.class } // class prop 合并
60
- )
61
- );
55
+ const ui = computed(() => accordionVariants({ size: props.size }, props.ui, { root: props.class }));
62
56
  provideAccordionUi(ui); // headless 通过 useAccordionUi() 读取
63
57
  ```
64
58
 
@@ -67,7 +61,6 @@ provideAccordionUi(ui); // headless 通过 useAccordionUi() 读取
67
61
  - **`ThemeColor`** — 8 种语义色:`primary` · `destructive` · `success` · `warning` · `info` · `carbon` · `secondary` · `accent`
68
62
  - **`ThemeSize`** — 6 种尺寸:`xs` · `sm` · `md` · `lg` · `xl` · `2xl`(基准尺寸 `md` = 16px)
69
63
  - **`ConfigProvider`** — 全局设置 `dir`、`locale`、`nonce` 及默认 `tooltip` 配置,应用于整个组件树,并支持 RTL 布局切换
70
- - **`cn()`** — Tailwind 感知的类名合并工具(`clsx` + `tailwind-merge`),解决类名冲突
71
64
 
72
65
  ### 语言支持
73
66
 
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{accordionVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,mergeProps as s,normalizeProps as c,openBlock as l,renderList as u,renderSlot as d,toHandlers as f,unref as p,useSlots as m,withCtx as h}from"vue";import{AccordionCompact as g,provideAccordionUi as _}from"@soybeanjs/headless/accordion";import{useForwardListeners as v,useOmitProps as y}from"@soybeanjs/headless/composables";import{keysOf as b}from"@soybeanjs/utils";const x=a({name:`SAccordion`,__name:`accordion`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},itemProps:{},headerProps:{},triggerProps:{},contentProps:{},descriptionProps:{},collapsible:{type:Boolean,default:!0},dir:{},disabled:{type:Boolean},orientation:{},unmountOnHide:{type:Boolean,default:!0},modelValue:{},defaultValue:{},multiple:{},selectionBehavior:{}},emits:[`update:modelValue`],setup(a,{emit:x}){let S=a,C=x,w=m(),T=y(S,[`class`,`size`,`ui`]),E=v(C),D=n(()=>b(w).filter(e=>e!==`item`));return _(n(()=>e(t({size:S.size}),S.ui,{root:S.class}))),(e,t)=>(l(),r(p(g),s(p(T),f(p(E))),i({item:h(t=>[d(e.$slots,`item`,c(o(t)))]),_:2},[u(D.value,t=>({name:t,fn:h(n=>[d(e.$slots,t,c(o(n)))])}))]),1040))}});export{x as default};
1
+ import{accordionVariants as e}from"../../styles/accordion.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{AccordionCompact as h,provideAccordionUi as g}from"@soybeanjs/headless/accordion";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";const b=i({name:`SAccordion`,__name:`accordion`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},itemProps:{},headerProps:{},triggerProps:{},contentProps:{},descriptionProps:{},collapsible:{type:Boolean,default:!0},dir:{},disabled:{type:Boolean},orientation:{},unmountOnHide:{type:Boolean,default:!0},modelValue:{},defaultValue:{},multiple:{},selectionBehavior:{}},emits:[`update:modelValue`],setup(i,{emit:b}){let x=i,S=b,C=p(),w=v(x,[`class`,`size`,`ui`]),T=_(S),E=t(()=>y(C).filter(e=>e!==`item`));return g(t(()=>e({size:x.size},x.ui,{root:x.class}))),(e,t)=>(c(),n(f(h),o(f(w),d(f(T))),r({item:m(t=>[u(e.$slots,`item`,s(a(t)))]),_:2},[l(E.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{b as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{affixVariants 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{AffixCompact as h,provideAffixUi as g}from"@soybeanjs/headless/affix";const _=i({name:`SAffix`,__name:`affix`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},placeholderProps:{},contentProps:{},offsetTop:{},offsetBottom:{},target:{type:[String,Function,null]}},emits:[`change`],setup(i,{emit:_}){let v=i,y=_,b=m(v,[`class`,`ui`]),x=p(y);return g(n(()=>e(t(),v.ui,{content: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{affixVariants as e}from"../../styles/affix.js";import{computed as t,createBlock as n,defineComponent as r,guardReactiveProps as i,mergeProps as a,normalizeProps as o,openBlock 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{AffixCompact as m,provideAffixUi as h}from"@soybeanjs/headless/affix";const g=r({name:`SAffix`,__name:`affix`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},placeholderProps:{},contentProps:{},offsetTop:{},offsetBottom:{},target:{type:[String,Function,null]}},emits:[`change`],setup(r,{emit:g}){let _=r,v=g,y=p(_,[`class`,`ui`]),b=f(v);return h(t(()=>e(void 0,_.ui,{content:_.class}))),(e,t)=>(s(),n(u(m),a(u(y),l(u(b))),{default:d(t=>[c(e.$slots,`default`,o(i(t)))]),_:3},16))}});export{g as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{alertVariants as n}from"./variants.js";import{buttonIconVariants as r}from"../button/variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,mergeProps as c,openBlock as l,renderList as u,renderSlot as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useOmitProps as h}from"@soybeanjs/headless/composables";import{keysOf as g}from"@soybeanjs/utils";import{AlertCompact as _,provideAlertUi as v}from"@soybeanjs/headless/alert";const y=s({name:`SAlert`,__name:`alert`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},color:{},variant:{},ui:{},title:{},description:{},icon:{},closable:{type:Boolean},contentProps:{},titleProps:{},descriptionProps:{},closeProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`,`close`],setup(s,{emit:y}){let b=s,x=y,S=p(),C=h(b,[`class`,`size`,`color`,`variant`,`ui`]),w=i(()=>g(S));return v(i(()=>e({...n({size:b.size,color:b.color,variant:b.variant}),$base:{close:r({size:t[b.size??`md`]})}},b.ui,{root:b.class}))),(e,t)=>(l(),a(f(_),c(f(C),{"onUpdate:open":t[0]||=e=>x(`update:open`,e)}),o({_:2},[u(w.value,t=>({name:t,fn:m(()=>[d(e.$slots,t)])}))]),1040))}});export{y as default};
1
+ import{alertVariants as e}from"../../styles/alert.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,mergeProps as a,openBlock as o,renderList as s,renderSlot as c,unref as l,useSlots as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{keysOf as p}from"@soybeanjs/utils";import{AlertCompact as m,provideAlertUi as h}from"@soybeanjs/headless/alert";const g=i({name:`SAlert`,__name:`alert`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},color:{},variant:{},ui:{},title:{},description:{},icon:{},closable:{type:Boolean},contentProps:{},titleProps:{},descriptionProps:{},closeProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`,`close`],setup(i,{emit:g}){let _=i,v=g,y=u(),b=f(_,[`class`,`size`,`color`,`variant`,`ui`]),x=t(()=>p(y));return h(t(()=>e({size:_.size,color:_.color,variant:_.variant},_.ui,{root:_.class}))),(e,t)=>(o(),n(l(m),a(l(b),{"onUpdate:open":t[0]||=e=>v(`update:open`,e)}),r({_:2},[s(x.value,t=>({name:t,fn:d(()=>[c(e.$slots,t)])}))]),1040))}});export{g as default};
@@ -1,4 +1,4 @@
1
- import { AlertVariant } from "./variants.js";
1
+ import { AlertVariant } from "../../styles/alert.js";
2
2
  import { AlertEmits, AlertExtendedUi, AlertProps, AlertSlots } from "./types.js";
3
3
  import { _default } from "./alert.vue.js";
4
4
  export type * from "@soybeanjs/headless/alert";
@@ -1,5 +1,5 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { AlertVariant } from "./variants.js";
2
+ import { AlertVariant } from "../../styles/alert.js";
3
3
  import { AlertCompactEmits, AlertCompactProps, AlertCompactSlots, AlertUi } from "@soybeanjs/headless/alert";
4
4
  import { ClassValue } from "@soybeanjs/headless/types";
5
5
 
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{anchorVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{AnchorCompact as d,provideAnchorUi as f}from"@soybeanjs/headless/anchor";const p=i({name:`SAnchor`,__name:`anchor`,props:{color:{},size:{},ui:{},class:{type:[Boolean,null,String,Object,Array]},sticky:{type:Boolean,default:!0},items:{},linkProps:{},indicatorProps:{},titleProps:{},subProps:{},bounds:{},dir:{},getContainer:{},getCurrentAnchor:{},modelValue:{},offsetTop:{default:0},orientation:{},replace:{type:Boolean},targetOffset:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`activeChange`,`itemSelect`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`color`,`size`,`ui`,`class`,`sticky`]),_=l(h),v=n(()=>({"--soybean-anchor-offset-top":`${m.offsetTop}px`}));return f(n(()=>e(t({color:m.color,orientation:m.orientation,size:m.size,sticky:m.sticky}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{items:i.items,style:v.value},s(c(_))),null,16,[`items`,`style`]))}});export{p as default};
1
+ import{anchorVariants as e}from"../../styles/anchor.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,toHandlers as o,unref as s}from"vue";import{useForwardListeners as c,useOmitProps as l}from"@soybeanjs/headless/composables";import{AnchorCompact as u,provideAnchorUi as d}from"@soybeanjs/headless/anchor";const f=r({name:`SAnchor`,__name:`anchor`,props:{color:{},size:{},ui:{},class:{type:[Boolean,null,String,Object,Array]},sticky:{type:Boolean,default:!0},items:{},linkProps:{},indicatorProps:{},titleProps:{},subProps:{},bounds:{},dir:{},getContainer:{},getCurrentAnchor:{},modelValue:{},offsetTop:{default:0},orientation:{},replace:{type:Boolean},targetOffset:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`activeChange`,`itemSelect`],setup(r,{emit:f}){let p=r,m=f,h=l(p,[`color`,`size`,`ui`,`class`,`sticky`]),g=c(m),_=t(()=>({"--soybean-anchor-offset-top":`${p.offsetTop}px`}));return d(t(()=>e({color:p.color,orientation:p.orientation,size:p.size,sticky:p.sticky},p.ui,{root:p.class}))),(e,t)=>(a(),n(s(u),i(s(h),{items:r.items,style:_.value},o(s(g))),null,16,[`items`,`style`]))}});export{f as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{autocompleteVariants 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{AutocompleteCompact as b,provideAutocompleteUi as x}from"@soybeanjs/headless/autocomplete";const S=o({name:`SAutocomplete`,__name:`autocomplete`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},modelValue:{default:void 0},defaultValue:{},items:{},placeholder:{},clearable:{type:Boolean,default:!1},clearLabel:{default:`Clear input`},emptyLabel:{default:`No results found.`},fuseOptions:{},anchorProps:{},inputProps:{},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},openOnFocus:{type:Boolean},openOnClick:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`,`highlight`,`select`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>y(T));return x(n(()=>e(t({size:C.size}),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
+ import{autocompleteVariants as e}from"../../styles/autocomplete.js";import{computed as t,createBlock as n,createCommentVNode as r,createSlots as i,defineComponent as a,guardReactiveProps as o,mergeProps as s,normalizeProps as c,openBlock as l,renderList as u,renderSlot as d,toHandlers as f,unref as p,useSlots as m,withCtx as h}from"vue";import{useForwardListeners as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{AutocompleteCompact as y,provideAutocompleteUi as b}from"@soybeanjs/headless/autocomplete";const x=a({name:`SAutocomplete`,__name:`autocomplete`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},modelValue:{default:void 0},defaultValue:{},items:{},placeholder:{},clearable:{type:Boolean,default:!1},clearLabel:{default:`Clear input`},emptyLabel:{default:`No results found.`},fuseOptions:{},anchorProps:{},inputProps:{},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},openOnFocus:{type:Boolean},openOnClick:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`,`highlight`,`select`],setup(a,{emit:x}){let S=a,C=x,w=m(),T=_(S,[`class`,`size`,`ui`]),E=g(C),D=t(()=>v(w));return b(t(()=>e({size:S.size},S.ui,{root:S.class}))),(e,t)=>(l(),n(p(y),s(p(T),{items:a.items},f(p(E))),i({_:2},[u(D.value,t=>({name:t,fn:h(n=>[r(` @vue-ignore ignore vue slot props type `),d(e.$slots,t,c(o(n)))])}))]),1040,[`items`]))}});export{x as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{avatarVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,mergeProps as o,openBlock as s,renderList as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{keysOf as m}from"@soybeanjs/utils";import{AvatarCompact as h,provideAvatarUi as g}from"@soybeanjs/headless/avatar";const _=a({name:`SAvatar`,__name:`avatar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},src:{},delayMs:{},fallbackLabel:{},imageProps:{},fallbackProps:{}},emits:[`loadingStatusChange`],setup(a,{emit:_}){let v=a,y=_,b=d(),x=p(v,[`class`,`size`,`ui`]),S=n(()=>m(b));return g(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(s(),r(u(h),o(u(x),{onLoadingStatusChange:t[0]||=e=>y(`loadingStatusChange`,e)}),i({_:2},[c(S.value,t=>({name:t,fn:f(()=>[l(e.$slots,t)])}))]),1040))}});export{_ as default};
1
+ import{avatarVariants as e}from"../../styles/avatar.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,mergeProps as a,openBlock as o,renderList as s,renderSlot as c,unref as l,useSlots as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{keysOf as p}from"@soybeanjs/utils";import{AvatarCompact as m,provideAvatarUi as h}from"@soybeanjs/headless/avatar";const g=i({name:`SAvatar`,__name:`avatar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},src:{},delayMs:{},fallbackLabel:{},imageProps:{},fallbackProps:{}},emits:[`loadingStatusChange`],setup(i,{emit:g}){let _=i,v=g,y=u(),b=f(_,[`class`,`size`,`ui`]),x=t(()=>p(y));return h(t(()=>e({size:_.size},_.ui,{root:_.class}))),(e,t)=>(o(),n(l(m),a(l(b),{onLoadingStatusChange:t[0]||=e=>v(`loadingStatusChange`,e)}),r({_:2},[s(x.value,t=>({name:t,fn:d(()=>[c(e.$slots,t)])}))]),1040))}});export{g as default};
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonVariants as t}from"../button/variants.js";import n from"../icon/icon.js";import{backtopVariants as r}from"./variants.js";import{computed as i,createBlock as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toHandlers as d,unref as f,withCtx as p}from"vue";import{useForwardListeners as m,useOmitProps as h}from"@soybeanjs/headless/composables";import{Backtop as g}from"@soybeanjs/headless/backtop";const _=s({name:`SBacktop`,__name:`backtop`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{default:`primary`},size:{default:`lg`},variant:{default:`solid`},shape:{default:`circle`},shadow:{default:`lg`},fitContent:{type:Boolean,default:!0},icon:{default:`lucide:arrow-up`},iconClass:{type:[Boolean,null,String,Object,Array]},iconProps:{},visibilityHeight:{},target:{},duration:{},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`change`,`click`],setup(s,{emit:_}){let v=s,y=_,b=h(v,[`class`,`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`icon`,`iconClass`,`iconProps`]),x=m(y),S=i(()=>{let n=r({size:v.size});return e(t({color:v.color,size:v.size,variant:v.variant,shape:v.shape,shadow:v.shadow,fitContent:v.fitContent}),n,v.class)});return(e,t)=>(l(),a(f(g),c(f(b),{class:S.value},d(f(x))),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(n,c(s.iconProps,{icon:s.icon,class:s.iconClass}),null,16,[`icon`,`class`])])]),_:3},16,[`class`]))}});export{_ as default};
1
+ import{backtopVariants as e}from"../../styles/backtop.js";import t from"../icon/icon.js";import{computed as n,createBlock as r,createVNode as i,defineComponent as a,mergeProps as o,openBlock 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{Backtop as m}from"@soybeanjs/headless/backtop";const h=a({name:`SBacktop`,__name:`backtop`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{default:`primary`},size:{default:`lg`},variant:{default:`solid`},shape:{default:`circle`},shadow:{default:`lg`},fitContent:{type:Boolean,default:!0},icon:{default:`lucide:arrow-up`},iconClass:{type:[Boolean,null,String,Object,Array]},iconProps:{},visibilityHeight:{},target:{},duration:{},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`change`,`click`],setup(a,{emit:h}){let g=a,_=h,v=p(g,[`class`,`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`icon`,`iconClass`,`iconProps`]),y=f(_),b=n(()=>e({color:g.color,size:g.size,variant:g.variant,shape:g.shape,shadow:g.shadow,fitContent:g.fitContent},g.class));return(e,n)=>(s(),r(u(m),o(u(v),{class:b.value},l(u(y))),{default:d(()=>[c(e.$slots,`default`,{},()=>[i(t,o(a.iconProps,{icon:a.icon,class:a.iconClass}),null,16,[`icon`,`class`])])]),_:3},16,[`class`]))}});export{h as default};
@@ -1,7 +1,6 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { ButtonShadow, ButtonShape, ButtonVariant } from "../button/variants.js";
2
+ import { ButtonShadow, ButtonShape, ButtonVariant } from "../../styles/button.js";
3
3
  import { BacktopProps } from "./types.js";
4
-
5
4
  //#region src/components/backtop/backtop.vue.d.ts
6
5
  declare var __VLS_8: {};
7
6
  type __VLS_Slots = {} & {
@@ -15,8 +14,8 @@ declare const __VLS_base: import("vue").DefineComponent<BacktopProps, {}, {}, {}
15
14
  onChange?: ((visible: boolean) => any) | undefined;
16
15
  }>, {
17
16
  icon: string;
18
- color: ThemeColor;
19
17
  size: ThemeSize;
18
+ color: ThemeColor;
20
19
  shape: ButtonShape;
21
20
  variant: ButtonVariant;
22
21
  shadow: ButtonShadow;
@@ -1,6 +1,6 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
+ import { ButtonShadow, ButtonShape, ButtonVariant } from "../../styles/button.js";
2
3
  import { IconProps } from "../icon/types.js";
3
- import { ButtonShadow, ButtonShape, ButtonVariant } from "../button/variants.js";
4
4
  import { BacktopEmits, BacktopProps } from "@soybeanjs/headless/backtop";
5
5
  import { ClassValue } from "@soybeanjs/headless/types";
6
6
 
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{badgeVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,mergeProps as o,openBlock as s,renderList as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{keysOf as m}from"@soybeanjs/utils";import{BadgeCompact as h,provideBadgeUi as g}from"@soybeanjs/headless/badge";const _=a({name:`SBadge`,__name:`badge`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},ui:{},position:{},content:{},contentProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(a,{emit:_}){let v=a,y=_,b=d(),x=p(v,[`class`,`color`,`size`,`ui`,`position`]),S=n(()=>m(b));return g(n(()=>e(t({color:v.color,size:v.size,position:v.position}),v.ui,{root:v.class}))),(e,t)=>(s(),r(u(h),o(u(x),{"onUpdate:open":t[0]||=e=>y(`update:open`,e)}),i({_:2},[c(S.value,t=>({name:t,fn:f(()=>[l(e.$slots,t)])}))]),1040))}});export{_ as default};
1
+ import{badgeVariants as e}from"../../styles/badge.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,mergeProps as a,openBlock as o,renderList as s,renderSlot as c,unref as l,useSlots as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{keysOf as p}from"@soybeanjs/utils";import{BadgeCompact as m,provideBadgeUi as h}from"@soybeanjs/headless/badge";const g=i({name:`SBadge`,__name:`badge`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},ui:{},position:{},content:{},contentProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(i,{emit:g}){let _=i,v=g,y=u(),b=f(_,[`class`,`color`,`size`,`ui`,`position`]),x=t(()=>p(y));return h(t(()=>e({color:_.color,size:_.size,position:_.position},_.ui,{root:_.class}))),(e,t)=>(o(),n(l(m),a(l(b),{"onUpdate:open":t[0]||=e=>v(`update:open`,e)}),r({_:2},[s(x.value,t=>({name:t,fn:d(()=>[c(e.$slots,t)])}))]),1040))}});export{g as default};
@@ -1,4 +1,4 @@
1
- import { BadgePosition } from "./variants.js";
1
+ import { BadgePosition } from "../../styles/badge.js";
2
2
  import { BadgeEmits, BadgeProps } from "./types.js";
3
3
  import { _default } from "./badge.vue.js";
4
4
  export type * from "@soybeanjs/headless/badge";
@@ -1,5 +1,5 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { BadgePosition } from "./variants.js";
2
+ import { BadgePosition } from "../../styles/badge.js";
3
3
  import { BadgeCompactProps, BadgeRootEmits, BadgeUi } from "@soybeanjs/headless/badge";
4
4
  import { ClassValue } from "@soybeanjs/headless/types";
5
5
 
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n,buttonVariants as r}from"../button/variants.js";import{dialogVariants as i}from"../dialog/variants.js";import{drawerVariants as a}from"../drawer/variants.js";import{bottomSheetVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,toHandlers as _,unref as v,useSlots as y,withCtx as b}from"vue";import{useForwardListeners as x,useOmitProps as S}from"@soybeanjs/headless/composables";import{keysOf as C}from"@soybeanjs/utils";import{BottomSheetCompact as w,provideBottomSheetUi as T}from"@soybeanjs/headless/bottom-sheet";const E=u({name:`SBottomSheet`,__name:`bottom-sheet`,props:{title:{},description:{},icon:{},showClose:{type:Boolean,default:!0},pure:{type:Boolean},showCancel:{type:[String,Boolean]},cancelText:{},showConfirm:{type:Boolean,default:!0},confirmText:{},triggerProps:{},overlayProps:{},portalProps:{},popupProps:{},headerProps:{},contentProps:{},footerProps:{},titleProps:{},descriptionProps:{},closeProps:{},cancelProps:{},confirmProps:{},dir:{},isAlert:{type:Boolean},alertType:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean,default:!0},activeSnapPoint:{},closeThreshold:{},shouldScaleBackground:{type:Boolean,default:!0},setBackgroundColorOnScale:{type:Boolean,default:!0},scrollLockTimeout:{},fixed:{type:Boolean},dismissible:{type:Boolean,default:!0},nested:{type:Boolean},direction:{},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean},preventScrollRestoration:{type:Boolean},snapPoints:{},fadeFromIndex:{},handleProps:{},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},emits:[`update:open`,`click`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`confirm`,`cancel`,`drag`,`release`,`close`,`update:activeSnapPoint`],setup(u,{emit:E}){let D=u,O=E,k=y(),A=S(D,[`class`,`size`,`ui`]),j=x(O),M=s(()=>C(k));return T(s(()=>e(Object.assign(o({size:D.size}),i({size:D.size,pure:D.pure}),a({size:D.size,side:`bottom`}),{$base:{cancel:r({variant:`pure`,size:t[D.size??`md`]}),confirm:r({variant:`solid`,size:t[D.size??`md`]}),close:n({size:t[D.size??`md`]})}}),D.ui,{popup:D.class}))),(e,t)=>(m(),c(v(w),f(v(A),_(v(j))),l({_:2},[h(M.value,t=>({name:t,fn:b(n=>[g(e.$slots,t,p(d(n)))])}))]),1040))}});export{E as default};
1
+ import{bottomSheetVariants as e}from"../../styles/bottom-sheet.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{keysOf as _}from"@soybeanjs/utils";import{BottomSheetCompact as v,provideBottomSheetUi as y}from"@soybeanjs/headless/bottom-sheet";const b=i({name:`SBottomSheet`,__name:`bottom-sheet`,props:{title:{},description:{},icon:{},showClose:{type:Boolean,default:!0},pure:{type:Boolean},showCancel:{type:[String,Boolean]},cancelText:{},showConfirm:{type:Boolean,default:!0},confirmText:{},triggerProps:{},overlayProps:{},portalProps:{},popupProps:{},headerProps:{},contentProps:{},footerProps:{},titleProps:{},descriptionProps:{},closeProps:{},cancelProps:{},confirmProps:{},dir:{},isAlert:{type:Boolean},alertType:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean,default:!0},activeSnapPoint:{},closeThreshold:{},shouldScaleBackground:{type:Boolean,default:!0},setBackgroundColorOnScale:{type:Boolean,default:!0},scrollLockTimeout:{},fixed:{type:Boolean},dismissible:{type:Boolean,default:!0},nested:{type:Boolean},direction:{},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean},preventScrollRestoration:{type:Boolean},snapPoints:{},fadeFromIndex:{},handleProps:{},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},emits:[`update:open`,`click`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`confirm`,`cancel`,`drag`,`release`,`close`,`update:activeSnapPoint`],setup(i,{emit:b}){let x=i,S=b,C=p(),w=g(x,[`class`,`size`,`ui`]),T=h(S),E=t(()=>_(C));return y(t(()=>e({size:x.size},x.ui,{popup:x.class}))),(e,t)=>(c(),n(f(v),o(f(w),d(f(T))),r({_:2},[l(E.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{b as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{breadcrumbVariants 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{BreadcrumbCompact as b,provideBreadcrumbUi as x}from"@soybeanjs/headless/breadcrumb";const S=o({name:`SBreadcrumb`,__name:`breadcrumb`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},ellipsis:{type:[Boolean,Array,null]},listProps:{},itemProps:{},linkProps:{},pageProps:{},separatorProps:{},ellipsisProps:{}},emits:[`click`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>y(T));return x(n(()=>e(t({size:C.size}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(b),c(m(E),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))}});export{S as default};
1
+ import{breadcrumbVariants as e}from"../../styles/breadcrumb.js";import{computed as t,createBlock as n,createCommentVNode as r,createSlots as i,defineComponent as a,guardReactiveProps as o,mergeProps as s,normalizeProps as c,openBlock as l,renderList as u,renderSlot as d,toHandlers as f,unref as p,useSlots as m,withCtx as h}from"vue";import{useForwardListeners as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{BreadcrumbCompact as y,provideBreadcrumbUi as b}from"@soybeanjs/headless/breadcrumb";const x=a({name:`SBreadcrumb`,__name:`breadcrumb`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},ellipsis:{type:[Boolean,Array,null]},listProps:{},itemProps:{},linkProps:{},pageProps:{},separatorProps:{},ellipsisProps:{}},emits:[`click`],setup(a,{emit:x}){let S=a,C=x,w=m(),T=_(S,[`class`,`size`,`ui`]),E=g(C),D=t(()=>v(w));return b(t(()=>e({size:S.size},S.ui,{root:S.class}))),(e,t)=>(l(),n(p(y),s(p(T),f(p(E))),i({_:2},[u(D.value,t=>({name:t,fn:h(n=>[r(` @vue-ignore ignore vue slot props type `),d(e.$slots,t,c(o(n)))])}))]),1040))}});export{x as default};
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonGroupVariants as t}from"./variants.js";import{useConfigProvider as n}from"../config-provider/context.js";import{provideButtonGroupContext as r}from"./context.js";import{computed as i,createBlock as a,defineComponent as o,mergeProps 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{Primitive as p}from"@soybeanjs/headless/primitive";import{transformPropsToContext as m}from"@soybeanjs/headless/shared";const h=o({name:`SButtonGroup`,__name:`button-group`,props:{orientation:{default:`horizontal`},dir:{},class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},shadow:{},fitContent:{type:Boolean},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(o){let h=o,g=f(h,[`class`,`orientation`,`color`,`size`,`variant`,`shape`,`shadow`,`disabled`]),_=n(`ButtonGroup`),v=i(()=>e(t({orientation:h.orientation}),h.class)),y=i(()=>h.dir??_.dir.value);return r(m(h,[`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`disabled`])),(e,t)=>(c(),a(u(p),s(u(g),{class:v.value,dir:y.value}),{default:d(()=>[l(e.$slots,`default`)]),_:3},16,[`class`,`dir`]))}});export{h as default};
1
+ import{buttonGroupVariants as e}from"../../styles/button.js";import{useConfigProvider as t}from"../config-provider/context.js";import{provideButtonGroupContext as n}from"./context.js";import{computed as r,createBlock as i,defineComponent as a,mergeProps 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{Primitive as f}from"@soybeanjs/headless/primitive";import{transformPropsToContext as p}from"@soybeanjs/headless/shared";const m=a({name:`SButtonGroup`,__name:`button-group`,props:{orientation:{default:`horizontal`},dir:{},class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},shadow:{},fitContent:{type:Boolean},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(a){let m=a,h=d(m,[`class`,`orientation`,`color`,`size`,`variant`,`shape`,`shadow`,`disabled`]),g=t(`ButtonGroup`),_=r(()=>e({orientation:m.orientation},m.class)),v=r(()=>m.dir??g.dir.value);return n(p(m,[`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`disabled`])),(e,t)=>(s(),i(l(f),o(l(h),{class:_.value,dir:v.value}),{default:u(()=>[c(e.$slots,`default`)]),_:3},16,[`class`,`dir`]))}});export{m as default};
@@ -1,5 +1,5 @@
1
1
  import { ThemeColor } from "../../theme/types.js";
2
- import { ButtonShape, ButtonVariant } from "./variants.js";
2
+ import { ButtonShape, ButtonVariant } from "../../styles/button.js";
3
3
  import { ButtonIconProps } from "./types.js";
4
4
  //#region src/components/button/button-icon.vue.d.ts
5
5
  declare const __VLS_export: import("vue").DefineComponent<ButtonIconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ButtonIconProps> & Readonly<{}>, {
@@ -1,4 +1,4 @@
1
- import { ButtonVariant } from "./variants.js";
1
+ import { ButtonVariant } from "../../styles/button.js";
2
2
  import { ButtonLinkProps } from "./types.js";
3
3
 
4
4
  //#region src/components/button/button-link.vue.d.ts
@@ -11,9 +11,9 @@ type __VLS_Slots = {} & {
11
11
  default?: (props: typeof __VLS_14) => any;
12
12
  };
13
13
  declare const __VLS_base: import("vue").DefineComponent<ButtonLinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ButtonLinkProps> & Readonly<{}>, {
14
+ replace: boolean;
14
15
  variant: ButtonVariant;
15
16
  disabled: boolean;
16
- replace: boolean;
17
17
  external: boolean;
18
18
  viewTransition: boolean;
19
19
  noRel: boolean;
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonVariants as t}from"./variants.js";import{useButtonGroupContext as n}from"./context.js";import{computed as r,createBlock as i,defineComponent as a,mergeProps 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{Button as f}from"@soybeanjs/headless/button";const p=a({name:`SButton`,__name:`button`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},shadow:{},fitContent:{type:Boolean},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`click`],setup(a,{emit:p}){let m=a,h=p,g=n(),_=d(m,[`class`,`size`,`color`,`variant`,`shape`,`shadow`,`disabled`,`fitContent`]),v=r(()=>{let{size:n,color:r,variant:i,shape:a,shadow:o,fitContent:s}=g||{};return e(t({size:m.size||n?.value,color:m.color||r?.value,variant:m.variant||i?.value,shape:m.shape||a?.value,shadow:m.shadow||o?.value,fitContent:m.fitContent||s?.value}),m.class)}),y=r(()=>m.disabled||g?.disabled.value);return(e,t)=>(s(),i(l(f),o(l(_),{class:v.value,disabled:y.value,onClick:t[0]||=e=>h(`click`,e)}),{default:u(()=>[c(e.$slots,`leading`),c(e.$slots,`default`),c(e.$slots,`trailing`)]),_:3},16,[`class`,`disabled`]))}});export{p as default};
1
+ import{buttonVariants as e}from"../../styles/button.js";import{useButtonGroupContext as t}from"./context.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{useOmitProps as u}from"@soybeanjs/headless/composables";import{Button as d}from"@soybeanjs/headless/button";const f=i({name:`SButton`,__name:`button`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},shadow:{},fitContent:{type:Boolean},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`click`],setup(i,{emit:f}){let p=i,m=f,h=t(),g=u(p,[`class`,`size`,`color`,`variant`,`shape`,`shadow`,`disabled`,`fitContent`]),_=n(()=>{let{size:t,color:n,variant:r,shape:i,shadow:a,fitContent:o}=h||{};return e({size:p.size||t?.value,color:p.color||n?.value,variant:p.variant||r?.value,shape:p.shape||i?.value,shadow:p.shadow||a?.value,fitContent:p.fitContent||o?.value},p.class)}),v=n(()=>p.disabled||h?.disabled.value);return(e,t)=>(o(),r(c(d),a(c(g),{class:_.value,disabled:v.value,onClick:t[0]||=e=>m(`click`,e)}),{default:l(()=>[s(e.$slots,`leading`),s(e.$slots,`default`),s(e.$slots,`trailing`)]),_:3},16,[`class`,`disabled`]))}});export{f as default};
@@ -1,4 +1,4 @@
1
- import { ButtonShadow, ButtonShape, ButtonVariant } from "./variants.js";
1
+ import { ButtonShadow, ButtonShape, ButtonVariant } from "../../styles/button.js";
2
2
  import { ButtonEmits, ButtonGroupProps, ButtonIconProps, ButtonLinkProps, ButtonLoadingProps, ButtonProps } from "./types.js";
3
3
  import { _default } from "./button.vue.js";
4
4
  import { _default as _default$1 } from "./button-loading.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
+ import { ButtonShadow, ButtonShape, ButtonVariant } from "../../styles/button.js";
2
3
  import { IconProps } from "../icon/types.js";
3
4
  import { LinkProps } from "../link/types.js";
4
- import { ButtonShadow, ButtonShape, ButtonVariant } from "./variants.js";
5
5
  import { ButtonEmits, ButtonProps } from "@soybeanjs/headless/button";
6
6
  import { Align, ClassValue, DataOrientation, Direction } from "@soybeanjs/headless/types";
7
7
 
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import r from"../icon/icon.js";import i from"../select/select.js";import{calendarVariants as a}from"./variants.js";import{computed as o,createBlock as s,createSlots as c,createTextVNode as l,createVNode as u,defineComponent as d,guardReactiveProps as f,mergeProps as p,normalizeProps as m,openBlock as h,renderSlot as g,toDisplayString as _,toHandlers as v,unref as y,withCtx as b}from"vue";import{useForwardListeners as x,useOmitProps as S}from"@soybeanjs/headless/composables";import{useLocaleMessages as C}from"@soybeanjs/headless";import{CalendarCompact as w,provideCalendarUi as T}from"@soybeanjs/headless/calendar";const E=d({name:`SCalendar`,__name:`calendar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},dir:{},locale:{},modelValue:{},defaultValue:{},multiple:{},placeholder:{},defaultPlaceholder:{},disabled:{type:Boolean},readonly:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},numberOfMonths:{},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},nextPage:{type:Function},prevPage:{type:Function},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`],setup(d,{emit:E}){let D=d,O=E,k=S(D,[`class`,`size`,`ui`]),A=x(O),j=C(),M=o(()=>({"aria-label":j.value.calendar.selectMonth})),N=o(()=>({"aria-label":j.value.calendar.selectYear})),P=o(()=>{let r=t[D.size||`md`];return e(Object.assign(a({size:D.size}),{$base:{prev:n({size:r,variant:`pure`}),next:n({size:r,variant:`pure`})}}),D.ui,{root:D.class})}),F=o(()=>t[D.size||`md`]);return T(P),(e,t)=>(h(),s(y(w),p(y(k),v(y(A))),c({prev:b(t=>[g(e.$slots,`prev`,m(f(t)),()=>[u(r,{icon:`lucide:chevron-left`})])]),next:b(t=>[g(e.$slots,`next`,m(f(t)),()=>[u(r,{icon:`lucide:chevron-right`})])]),"head-cell":b(t=>[g(e.$slots,`head-cell`,m(f(t)),()=>[l(_(t.label),1)])]),day:b(t=>[g(e.$slots,`day`,m(f(t)),()=>[l(_(t.dayValue),1)])]),default:b(t=>[g(e.$slots,`default`,m(f(t)))]),_:2},[e.$slots.heading?{name:`heading`,fn:b(t=>[g(e.$slots,`heading`,m(f(t)))]),key:`0`}:{name:`heading`,fn:b(({monthOptions:e,yearOptions:t,selectedMonth:n,selectedYear:r,onMonthChange:a,onYearChange:o})=>[u(i,{size:F.value,disabled:d.disabled,clearable:!1,items:e,"model-value":n,"trigger-props":M.value,ui:{trigger:`w-fit`},"onUpdate:modelValue":a},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`]),u(i,{size:F.value,disabled:d.disabled,clearable:!1,items:t,"model-value":r,"trigger-props":N.value,ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":o},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{E as default};
1
+ import{miniSizeMap as e}from"../../theme/config.js";import"../../theme/index.js";import t from"../icon/icon.js";import{calendarVariants as n}from"../../styles/calendar.js";import r from"../select/select.js";import{computed as i,createBlock as a,createSlots as o,createTextVNode as s,createVNode as c,defineComponent as l,guardReactiveProps as u,mergeProps as d,normalizeProps as f,openBlock as p,renderSlot as m,toDisplayString as h,toHandlers as g,unref as _,withCtx as v}from"vue";import{useForwardListeners as y,useOmitProps as b}from"@soybeanjs/headless/composables";import{useLocaleMessages as x}from"@soybeanjs/headless";import{CalendarCompact as S,provideCalendarUi as C}from"@soybeanjs/headless/calendar";const w=l({name:`SCalendar`,__name:`calendar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},dir:{},locale:{},modelValue:{},defaultValue:{},multiple:{},placeholder:{},defaultPlaceholder:{},disabled:{type:Boolean},readonly:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},numberOfMonths:{},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},nextPage:{type:Function},prevPage:{type:Function},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`],setup(l,{emit:w}){let T=l,E=w,D=b(T,[`class`,`size`,`ui`]),O=y(E),k=x(),A=i(()=>({"aria-label":k.value.calendar.selectMonth})),j=i(()=>({"aria-label":k.value.calendar.selectYear})),M=i(()=>n({size:T.size},T.ui,{root:T.class})),N=i(()=>e[T.size||`md`]);return C(M),(e,n)=>(p(),a(_(S),d(_(D),g(_(O))),o({prev:v(n=>[m(e.$slots,`prev`,f(u(n)),()=>[c(t,{icon:`lucide:chevron-left`})])]),next:v(n=>[m(e.$slots,`next`,f(u(n)),()=>[c(t,{icon:`lucide:chevron-right`})])]),"head-cell":v(t=>[m(e.$slots,`head-cell`,f(u(t)),()=>[s(h(t.label),1)])]),day:v(t=>[m(e.$slots,`day`,f(u(t)),()=>[s(h(t.dayValue),1)])]),default:v(t=>[m(e.$slots,`default`,f(u(t)))]),_:2},[e.$slots.heading?{name:`heading`,fn:v(t=>[m(e.$slots,`heading`,f(u(t)))]),key:`0`}:{name:`heading`,fn:v(({monthOptions:e,yearOptions:t,selectedMonth:n,selectedYear:i,onMonthChange:a,onYearChange:o})=>[c(r,{size:N.value,disabled:l.disabled,clearable:!1,items:e,"model-value":n,"trigger-props":A.value,ui:{trigger:`w-fit`},"onUpdate:modelValue":a},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`]),c(r,{size:N.value,disabled:l.disabled,clearable:!1,items:t,"model-value":i,"trigger-props":j.value,ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":o},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{w as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as n}from"../button/variants.js";import r from"../select/select.js";import{calendarRangeVariants as i}from"./variants.js";import{computed as a,createBlock as o,createCommentVNode as s,createSlots as c,createVNode as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,toHandlers as _,unref as v,useSlots as y,withCtx as b}from"vue";import{useForwardListeners as x,useOmitProps as S}from"@soybeanjs/headless/composables";import{keysOf as C}from"@soybeanjs/utils";import{useLocaleMessages as w}from"@soybeanjs/headless";import{CalendarRangeCompact as T,provideCalendarRangeUi as E}from"@soybeanjs/headless/calendar-range";const D=u({name:`SCalendarRange`,__name:`calendar-range`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},defaultValue:{},defaultPlaceholder:{},placeholder:{},modelValue:{},allowNonContiguousRanges:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},maximumDays:{},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},locale:{},numberOfMonths:{},disabled:{type:Boolean},readonly:{type:Boolean},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},isDateHighlightable:{type:Function},dir:{},nextPage:{type:Function},prevPage:{type:Function},disableDaysOutsideCurrentView:{type:Boolean},fixedDate:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`,`update:startValue`],setup(u,{emit:D}){let O=u,k=D,A=y(),j=S(O,[`class`,`ui`,`size`]),M=x(k),N=w(),P=a(()=>({"aria-label":N.value.calendar.selectMonth})),F=a(()=>({"aria-label":N.value.calendar.selectYear})),I=a(()=>C(A).filter(e=>e!==`heading`)),L=a(()=>e(Object.assign(i({size:O.size}),{$base:{prev:n({size:O.size,variant:`pure`,fitContent:!0}),next:n({size:O.size,variant:`pure`,fitContent:!0})}}),O.ui,{root:O.class})),R=a(()=>t[O.size||`md`]);return E(L),(e,t)=>(m(),o(v(T),f(v(j),_(v(M))),c({_:2},[h(I.value,t=>({name:t,fn:b(n=>[s(` @vue-expect-error ignore slot props type `),g(e.$slots,t,p(d(n)))])})),e.$slots.heading?{name:`heading`,fn:b(t=>[g(e.$slots,`heading`,p(d(t)))]),key:`0`}:{name:`heading`,fn:b(({monthOptions:e,yearOptions:t,selectedMonth:n,selectedYear:i,onMonthChange:a,onYearChange:o})=>[l(r,{size:R.value,disabled:u.disabled,clearable:!1,items:e,"model-value":n,"trigger-props":P.value,ui:{trigger:`w-fit`},"onUpdate:modelValue":a},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`]),l(r,{size:R.value,disabled:u.disabled,clearable:!1,items:t,"model-value":i,"trigger-props":F.value,ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":o},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{D as default};
1
+ import{miniSizeMap as e}from"../../theme/config.js";import"../../theme/index.js";import t from"../select/select.js";import{calendarRangeVariants as n}from"../../styles/calendar-range.js";import{computed as r,createBlock as i,createCommentVNode as a,createSlots as o,createVNode as s,defineComponent as c,guardReactiveProps as l,mergeProps as u,normalizeProps as d,openBlock as f,renderList as p,renderSlot as m,toHandlers as h,unref as g,useSlots as _,withCtx as v}from"vue";import{useForwardListeners as y,useOmitProps as b}from"@soybeanjs/headless/composables";import{keysOf as x}from"@soybeanjs/utils";import{useLocaleMessages as S}from"@soybeanjs/headless";import{CalendarRangeCompact as C,provideCalendarRangeUi as w}from"@soybeanjs/headless/calendar-range";const T=c({name:`SCalendarRange`,__name:`calendar-range`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},defaultValue:{},defaultPlaceholder:{},placeholder:{},modelValue:{},allowNonContiguousRanges:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},maximumDays:{},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},locale:{},numberOfMonths:{},disabled:{type:Boolean},readonly:{type:Boolean},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},isDateHighlightable:{type:Function},dir:{},nextPage:{type:Function},prevPage:{type:Function},disableDaysOutsideCurrentView:{type:Boolean},fixedDate:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`,`update:startValue`],setup(c,{emit:T}){let E=c,D=T,O=_(),k=b(E,[`class`,`ui`,`size`]),A=y(D),j=S(),M=r(()=>({"aria-label":j.value.calendar.selectMonth})),N=r(()=>({"aria-label":j.value.calendar.selectYear})),P=r(()=>x(O).filter(e=>e!==`heading`)),F=r(()=>n({size:E.size},E.ui,{root:E.class})),I=r(()=>e[E.size||`md`]);return w(F),(e,n)=>(f(),i(g(C),u(g(k),h(g(A))),o({_:2},[p(P.value,t=>({name:t,fn:v(n=>[a(` @vue-expect-error ignore slot props type `),m(e.$slots,t,d(l(n)))])})),e.$slots.heading?{name:`heading`,fn:v(t=>[m(e.$slots,`heading`,d(l(t)))]),key:`0`}:{name:`heading`,fn:v(({monthOptions:e,yearOptions:n,selectedMonth:r,selectedYear:i,onMonthChange:a,onYearChange:o})=>[s(t,{size:I.value,disabled:c.disabled,clearable:!1,items:e,"model-value":r,"trigger-props":M.value,ui:{trigger:`w-fit`},"onUpdate:modelValue":a},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`]),s(t,{size:I.value,disabled:c.disabled,clearable:!1,items:n,"model-value":i,"trigger-props":N.value,ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":o},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{T as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{cardVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{CardCompact as m,provideCardUi as h}from"@soybeanjs/headless/card";const g=a({name:`SCard`,__name:`card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},scrollable:{type:Boolean,default:!0},split:{type:Boolean},title:{},description:{},headerProps:{},contentProps:{},footerProps:{},titleRootProps:{},titleProps:{},descriptionProps:{},defaultOpen:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},setup(a){let g=a,_=p(g,[`class`,`size`,`ui`,`scrollable`,`split`]),v=d();return h(n(()=>e(t({size:g.size,scrollable:g.scrollable,split:g.split}),g.ui,{root:g.class}))),(e,t)=>(c(),r(u(m),s(o(u(_))),i({default:f(()=>[l(e.$slots,`default`)]),_:2},[v.header?{name:`header`,fn:f(()=>[l(e.$slots,`header`)]),key:`0`}:void 0,v[`title-leading`]?{name:`title-leading`,fn:f(()=>[l(e.$slots,`title-leading`)]),key:`1`}:void 0,v.title?{name:`title`,fn:f(()=>[l(e.$slots,`title`)]),key:`2`}:void 0,v[`title-trailing`]?{name:`title-trailing`,fn:f(()=>[l(e.$slots,`title-trailing`)]),key:`3`}:void 0,v.extra?{name:`extra`,fn:f(()=>[l(e.$slots,`extra`)]),key:`4`}:void 0,v.description?{name:`description`,fn:f(()=>[l(e.$slots,`description`)]),key:`5`}:void 0,v.footer?{name:`footer`,fn:f(()=>[l(e.$slots,`footer`)]),key:`6`}:void 0]),1040))}});export{g as default};
1
+ import{cardVariants as e}from"../../styles/card.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,normalizeProps as o,openBlock as s,renderSlot as c,unref as l,useSlots as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{CardCompact as p,provideCardUi as m}from"@soybeanjs/headless/card";const h=i({name:`SCard`,__name:`card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},scrollable:{type:Boolean,default:!0},split:{type:Boolean},title:{},description:{},headerProps:{},contentProps:{},footerProps:{},titleRootProps:{},titleProps:{},descriptionProps:{},defaultOpen:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},setup(i){let h=i,g=f(h,[`class`,`size`,`ui`,`scrollable`,`split`]),_=u();return m(t(()=>e({size:h.size,scrollable:h.scrollable,split:h.split},h.ui,{root:h.class}))),(e,t)=>(s(),n(l(p),o(a(l(g))),r({default:d(()=>[c(e.$slots,`default`)]),_:2},[_.header?{name:`header`,fn:d(()=>[c(e.$slots,`header`)]),key:`0`}:void 0,_[`title-leading`]?{name:`title-leading`,fn:d(()=>[c(e.$slots,`title-leading`)]),key:`1`}:void 0,_.title?{name:`title`,fn:d(()=>[c(e.$slots,`title`)]),key:`2`}:void 0,_[`title-trailing`]?{name:`title-trailing`,fn:d(()=>[c(e.$slots,`title-trailing`)]),key:`3`}:void 0,_.extra?{name:`extra`,fn:d(()=>[c(e.$slots,`extra`)]),key:`4`}:void 0,_.description?{name:`description`,fn:d(()=>[c(e.$slots,`description`)]),key:`5`}:void 0,_.footer?{name:`footer`,fn:d(()=>[c(e.$slots,`footer`)]),key:`6`}:void 0]),1040))}});export{h as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{buttonIconVariants as t}from"../button/variants.js";import{carouselVariants as n}from"./variants.js";import{computed as r,createBlock as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";import{CarouselCompact as b,provideCarouselUi as x}from"@soybeanjs/headless/carousel";const S=o({name:`SCarousel`,__name:`carousel`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},size:{},floatNav:{type:Boolean},slides:{},contentProps:{},containerProps:{},itemProps:{},controlProps:{},navigationProps:{},previousProps:{},nextProps:{},dir:{},orientation:{},options:{},plugins:{}},emits:[`init`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`ui`,`size`,`floatNav`]),D=_(w),O=r(()=>y(T).filter(e=>e!==`item`));return x(r(()=>e(Object.assign(n({size:C.size,orientation:C.orientation,floatNav:C.floatNav}),{$base:{previous:t({size:C.size,variant:`pure`,shape:`circle`}),next:t({size:C.size,variant:`pure`,shape:`circle`})}}),C.ui,{root:C.class}))),(e,t)=>(u(),i(m(b),c(m(E),p(m(D))),a({item:g(t=>[f(e.$slots,`item`,l(s(t)))]),_:2},[d(O.value,t=>({name:t,fn:g(n=>[f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
1
+ import{carouselVariants as e}from"../../styles/carousel.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{keysOf as _}from"@soybeanjs/utils";import{CarouselCompact as v,provideCarouselUi as y}from"@soybeanjs/headless/carousel";const b=i({name:`SCarousel`,__name:`carousel`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},size:{},floatNav:{type:Boolean},slides:{},contentProps:{},containerProps:{},itemProps:{},controlProps:{},navigationProps:{},previousProps:{},nextProps:{},dir:{},orientation:{},options:{},plugins:{}},emits:[`init`],setup(i,{emit:b}){let x=i,S=b,C=p(),w=g(x,[`class`,`ui`,`size`,`floatNav`]),T=h(S),E=t(()=>_(C).filter(e=>e!==`item`));return y(t(()=>e({size:x.size,orientation:x.orientation,floatNav:x.floatNav},x.ui,{root:x.class}))),(e,t)=>(c(),n(f(v),o(f(w),d(f(T))),r({item:m(t=>[u(e.$slots,`item`,s(a(t)))]),_:2},[l(E.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{b as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxCardVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,unref as s}from"vue";import{useOmitProps as c}from"@soybeanjs/headless/composables";import{CheckboxCardGroupCompact as l,provideCheckboxCardUi as u}from"@soybeanjs/headless/checkbox";const d=i({name:`SCheckboxCardGroup`,__name:`checkbox-card-group`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},items:{},rootProps:{},controlProps:{},indicatorProps:{},labelProps:{},modelValue:{},defaultValue:{},rovingFocus:{type:Boolean,default:!0},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:d}){let f=i,p=d,m=c(f,[`class`,`ui`,`color`,`size`,`shape`]),h=n(()=>e(t({color:f.color,size:f.size,shape:f.shape}),f.ui,{groupRoot:f.class}));return u(h),(e,t)=>(o(),r(s(l),a(s(m),{"content-class":h.value.content,"text-content-class":h.value.textContent,"icon-class":h.value.icon,"description-class":h.value.description,"onUpdate:modelValue":t[0]||=e=>p(`update:modelValue`,e)}),null,16,[`content-class`,`text-content-class`,`icon-class`,`description-class`]))}});export{d as default};
1
+ import{checkboxCardVariants as e}from"../../styles/checkbox.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,unref as o}from"vue";import{useOmitProps as s}from"@soybeanjs/headless/composables";import{CheckboxCardGroupCompact as c,provideCheckboxCardUi as l}from"@soybeanjs/headless/checkbox";const u=r({name:`SCheckboxCardGroup`,__name:`checkbox-card-group`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},items:{},rootProps:{},controlProps:{},indicatorProps:{},labelProps:{},modelValue:{},defaultValue:{},rovingFocus:{type:Boolean,default:!0},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(r,{emit:u}){let d=r,f=u,p=s(d,[`class`,`ui`,`color`,`size`,`shape`]),m=t(()=>e({color:d.color,size:d.size,shape:d.shape},d.ui,{groupRoot:d.class}));return l(m),(e,t)=>(a(),n(o(c),i(o(p),{"content-class":m.value.content,"text-content-class":m.value.textContent,"icon-class":m.value.icon,"description-class":m.value.description,"onUpdate:modelValue":t[0]||=e=>f(`update:modelValue`,e)}),null,16,[`content-class`,`text-content-class`,`icon-class`,`description-class`]))}});export{u as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxCardVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{useOmitProps as u}from"@soybeanjs/headless/composables";import{CheckboxCardCompact as d,provideCheckboxCardUi as f}from"@soybeanjs/headless/checkbox";const p=i({name:`SCheckboxCard`,__name:`checkbox-card`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},icon:{},description:{},label:{},controlProps:{},indicatorProps:{},labelProps:{},id:{},modelValue:{type:[Boolean,String,null],default:void 0},defaultValue:{type:[Boolean,String]},value:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`class`,`ui`,`color`,`size`,`shape`]);return f(n(()=>e(t({color:m.color,size:m.size,shape:m.shape}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{"onUpdate:modelValue":t[0]||=e=>h(`update:modelValue`,e)}),{description:l(()=>[s(e.$slots,`description`)]),default:l(()=>[s(e.$slots,`default`)]),_:3},16))}});export{p as default};
1
+ import{checkboxCardVariants as e}from"../../styles/checkbox.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,renderSlot as o,unref as s,withCtx as c}from"vue";import{useOmitProps as l}from"@soybeanjs/headless/composables";import{CheckboxCardCompact as u,provideCheckboxCardUi as d}from"@soybeanjs/headless/checkbox";const f=r({name:`SCheckboxCard`,__name:`checkbox-card`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},icon:{},description:{},label:{},controlProps:{},indicatorProps:{},labelProps:{},id:{},modelValue:{type:[Boolean,String,null],default:void 0},defaultValue:{type:[Boolean,String]},value:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(r,{emit:f}){let p=r,m=f,h=l(p,[`class`,`ui`,`color`,`size`,`shape`]);return d(t(()=>e({color:p.color,size:p.size,shape:p.shape},p.ui,{root:p.class}))),(e,t)=>(a(),n(s(u),i(s(h),{"onUpdate:modelValue":t[0]||=e=>m(`update:modelValue`,e)}),{description:c(()=>[o(e.$slots,`description`)]),default:c(()=>[o(e.$slots,`default`)]),_:3},16))}});export{f as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,unref as s}from"vue";import{useOmitProps as c}from"@soybeanjs/headless/composables";import{CheckboxGroupCompact as l,provideCheckboxUi as u}from"@soybeanjs/headless/checkbox";const d=i({name:`SCheckboxGroup`,__name:`checkbox-group`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},items:{},rootProps:{},controlProps:{},indicatorProps:{},labelProps:{},modelValue:{},defaultValue:{},rovingFocus:{type:Boolean,default:!0},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:d}){let f=i,p=d,m=c(f,[`class`,`ui`,`color`,`size`,`shape`]);return u(n(()=>e(t({color:f.color,size:f.size,shape:f.shape,orientation:f.orientation}),f.ui,{groupRoot:f.class}))),(e,t)=>(o(),r(s(l),a(s(m),{"onUpdate:modelValue":t[0]||=e=>p(`update:modelValue`,e)}),null,16))}});export{d as default};
1
+ import{checkboxVariants as e}from"../../styles/checkbox.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,unref as o}from"vue";import{useOmitProps as s}from"@soybeanjs/headless/composables";import{CheckboxGroupCompact as c,provideCheckboxUi as l}from"@soybeanjs/headless/checkbox";const u=r({name:`SCheckboxGroup`,__name:`checkbox-group`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},items:{},rootProps:{},controlProps:{},indicatorProps:{},labelProps:{},modelValue:{},defaultValue:{},rovingFocus:{type:Boolean,default:!0},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(r,{emit:u}){let d=r,f=u,p=s(d,[`class`,`ui`,`color`,`size`,`shape`]);return l(t(()=>e({color:d.color,size:d.size,shape:d.shape,orientation:d.orientation},d.ui,{groupRoot:d.class}))),(e,t)=>(a(),n(o(c),i(o(p),{"onUpdate:modelValue":t[0]||=e=>f(`update:modelValue`,e)}),null,16))}});export{u as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{useOmitProps as u}from"@soybeanjs/headless/composables";import{CheckboxCompact as d,provideCheckboxUi as f}from"@soybeanjs/headless/checkbox";const p=i({name:`SCheckbox`,__name:`checkbox`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},label:{},controlProps:{},indicatorProps:{},labelProps:{},id:{},modelValue:{type:[Boolean,String,null],default:void 0},defaultValue:{type:[Boolean,String]},value:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`class`,`ui`,`color`,`size`,`shape`]);return f(n(()=>e(t({color:m.color,size:m.size,shape:m.shape}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{"onUpdate:modelValue":t[0]||=e=>h(`update:modelValue`,e)}),{default:l(()=>[s(e.$slots,`default`)]),_:3},16))}});export{p as default};
1
+ import{checkboxVariants as e}from"../../styles/checkbox.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,renderSlot as o,unref as s,withCtx as c}from"vue";import{useOmitProps as l}from"@soybeanjs/headless/composables";import{CheckboxCompact as u,provideCheckboxUi as d}from"@soybeanjs/headless/checkbox";const f=r({name:`SCheckbox`,__name:`checkbox`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},label:{},controlProps:{},indicatorProps:{},labelProps:{},id:{},modelValue:{type:[Boolean,String,null],default:void 0},defaultValue:{type:[Boolean,String]},value:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(r,{emit:f}){let p=r,m=f,h=l(p,[`class`,`ui`,`color`,`size`,`shape`]);return d(t(()=>e({color:p.color,size:p.size,shape:p.shape},p.ui,{root:p.class}))),(e,t)=>(a(),n(s(u),i(s(h),{"onUpdate:modelValue":t[0]||=e=>m(`update:modelValue`,e)}),{default:c(()=>[o(e.$slots,`default`)]),_:3},16))}});export{f as default};
@@ -1,5 +1,5 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { CheckboxShape } from "./variants.js";
2
+ import { CheckboxShape } from "../../styles/checkbox.js";
3
3
  import { CheckboxCardCompactEmits, CheckboxCardCompactProps, CheckboxCardGroupCompactEmits, CheckboxCardGroupCompactProps, CheckboxCardGroupOptionData, CheckboxCardUi, CheckboxCompactEmits, CheckboxCompactProps, CheckboxGroupCompactEmits, CheckboxGroupCompactProps, CheckboxGroupOptionData, CheckboxUi } from "@soybeanjs/headless/checkbox";
4
4
  import { ClassValue, DefinedValue } from "@soybeanjs/headless/types";
5
5
 
@@ -1 +1 @@
1
- import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonVariants as t}from"../button/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{Clipboard as h}from"@soybeanjs/headless/clipboard";const g=i({name:`SClipboard`,__name:`clipboard`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},fitContent:{type:Boolean},value:{},copiedDuration:{},legacy:{type:Boolean},copyIcon:{},copiedIcon:{},copyText:{},copiedText:{},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`click`,`copied`,`copyError`],setup(i,{emit:g}){let _=i,v=p(g),y=m(_,[`class`,`color`,`size`,`variant`,`shape`,`fitContent`]),b=n(()=>e(t({color:_.color,size:_.size,variant:_.variant,shape:_.shape,fitContent:_.fitContent}),_.class));return(e,t)=>(c(),r(d(h),o(d(y),{class:b.value},u(d(v))),{leading:f(t=>[l(e.$slots,`leading`,s(a(t)))]),default:f(t=>[l(e.$slots,`default`,s(a(t)))]),trailing:f(t=>[l(e.$slots,`trailing`,s(a(t)))]),_:3},16,[`class`]))}});export{g as default};
1
+ import{buttonVariants as e}from"../../styles/button.js";import"../../styles/clipboard.js";import{computed as t,createBlock as n,defineComponent as r,guardReactiveProps as i,mergeProps as a,normalizeProps as o,openBlock 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{Clipboard as m}from"@soybeanjs/headless/clipboard";const h=r({name:`SClipboard`,__name:`clipboard`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},fitContent:{type:Boolean},value:{},copiedDuration:{},legacy:{type:Boolean},copyIcon:{},copiedIcon:{},copyText:{},copiedText:{},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`click`,`copied`,`copyError`],setup(r,{emit:h}){let g=r,_=f(h),v=p(g,[`class`,`color`,`size`,`variant`,`shape`,`fitContent`]),y=t(()=>e({color:g.color,size:g.size,variant:g.variant,shape:g.shape,fitContent:g.fitContent},g.class));return(e,t)=>(s(),n(u(m),a(u(v),{class:y.value},l(u(_))),{leading:d(t=>[c(e.$slots,`leading`,o(i(t)))]),default:d(t=>[c(e.$slots,`default`,o(i(t)))]),trailing:d(t=>[c(e.$slots,`trailing`,o(i(t)))]),_:3},16,[`class`]))}});export{h as default};
@@ -1,4 +1,4 @@
1
- import { ButtonShape, ButtonVariant } from "../button/variants.js";
1
+ import { ButtonShape, ButtonVariant } from "../../styles/button.js";
2
2
  import { ClipboardEmits, ClipboardProps, ClipboardSlotProps } from "./types.js";
3
3
  import { _default } from "./clipboard.vue.js";
4
4
  export type * from "@soybeanjs/headless/clipboard";
@@ -1,5 +1,5 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { ButtonShape, ButtonVariant } from "../button/variants.js";
2
+ import { ButtonShape, ButtonVariant } from "../../styles/button.js";
3
3
  import { ClipboardEmits, ClipboardProps, ClipboardSlotProps } from "@soybeanjs/headless/clipboard";
4
4
  import { ClassValue } from "@soybeanjs/headless/types";
5
5
 
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{collapsibleVariants 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{CollapsibleRoot as p,provideCollapsibleUi as m}from"@soybeanjs/headless/collapsible";const h=i({name:`SCollapsible`,__name:`collapsible`,props:{size:{},ui:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean,default:!0},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(i,{emit:h}){let g=i,_=h,v=f(g,[`class`,`size`,`ui`]);return m(n(()=>e(t({size:g.size}),g.ui))),(e,t)=>(c(),r(u(p),o(u(v),{"onUpdate:open":t[0]||=e=>_(`update:open`,e)}),{default:d(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{h as default};
1
+ import{collapsibleVariants as e}from"../../styles/collapsible.js";import{computed as t,createBlock as n,defineComponent as r,guardReactiveProps as i,mergeProps 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{CollapsibleRoot as f,provideCollapsibleUi as p}from"@soybeanjs/headless/collapsible";const m=r({name:`SCollapsible`,__name:`collapsible`,props:{size:{},ui:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean,default:!0},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(r,{emit:m}){let h=r,g=m,_=d(h,[`class`,`size`,`ui`]);return p(t(()=>e({size:h.size},h.ui))),(e,t)=>(s(),n(l(f),a(l(_),{"onUpdate:open":t[0]||=e=>g(`update:open`,e)}),{default:u(t=>[c(e.$slots,`default`,o(i(t)))]),_:3},16))}});export{m as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{colorAreaVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ColorAreaCompact as d,provideColorAreaUi as f}from"@soybeanjs/headless/color-area";const p=i({name:`SColorArea`,__name:`color-area`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},areaProps:{},thumbProps:{},modelValue:{},defaultValue:{},colorSpace:{},format:{},xChannel:{},yChannel:{},disabled:{type:Boolean},xName:{},yName:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:color`,`change`,`changeEnd`],setup(i,{emit:p}){let m=i,h=l(p),g=u(m,[`class`,`size`,`ui`]);return f(n(()=>e(t({size:m.size}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),s(c(h))),null,16))}});export{p as default};
1
+ import{colorAreaVariants as e}from"../../styles/color-area.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,toHandlers as o,unref as s}from"vue";import{useForwardListeners as c,useOmitProps as l}from"@soybeanjs/headless/composables";import{ColorAreaCompact as u,provideColorAreaUi as d}from"@soybeanjs/headless/color-area";const f=r({name:`SColorArea`,__name:`color-area`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},areaProps:{},thumbProps:{},modelValue:{},defaultValue:{},colorSpace:{},format:{},xChannel:{},yChannel:{},disabled:{type:Boolean},xName:{},yName:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:color`,`change`,`changeEnd`],setup(r,{emit:f}){let p=r,m=c(f),h=l(p,[`class`,`size`,`ui`]);return d(t(()=>e({size:p.size},p.ui,{root:p.class}))),(e,t)=>(a(),n(s(u),i(s(h),o(s(m))),null,16))}});export{f as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{colorFieldVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ColorFieldCompact as d,provideColorFieldUi as f}from"@soybeanjs/headless/color-field";const p=i({name:`SColorField`,__name:`color-field`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},inputProps:{},modelValue:{},defaultValue:{},colorSpace:{},channel:{},format:{},placeholder:{},disabled:{type:Boolean},readonly:{type:Boolean},disableWheelChange:{type:Boolean},step:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:color`],setup(i,{emit:p}){let m=i,h=l(p),g=u(m,[`class`,`size`,`ui`]);return f(n(()=>e(t({size:m.size}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),s(c(h))),null,16))}});export{p as default};
1
+ import{colorFieldVariants as e}from"../../styles/color-field.js";import{computed as t,createBlock as n,defineComponent as r,mergeProps as i,openBlock as a,toHandlers as o,unref as s}from"vue";import{useForwardListeners as c,useOmitProps as l}from"@soybeanjs/headless/composables";import{ColorFieldCompact as u,provideColorFieldUi as d}from"@soybeanjs/headless/color-field";const f=r({name:`SColorField`,__name:`color-field`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},inputProps:{},modelValue:{},defaultValue:{},colorSpace:{},channel:{},format:{},placeholder:{},disabled:{type:Boolean},readonly:{type:Boolean},disableWheelChange:{type:Boolean},step:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:color`],setup(r,{emit:f}){let p=r,m=c(f),h=l(p,[`class`,`size`,`ui`]);return d(t(()=>e({size:p.size},p.ui,{root:p.class}))),(e,t)=>(a(),n(s(u),i(s(h),o(s(m))),null,16))}});export{f as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n,buttonVariants as r}from"../button/variants.js";import{colorAreaVariants as i}from"../color-area/variants.js";import{colorFieldVariants as a}from"../color-field/variants.js";import{popoverVariants as o}from"../popover/variants.js";import{colorSwatchVariants as s}from"../color-swatch/variants.js";import{colorSwatchPickerVariants as c}from"../color-swatch-picker/variants.js";import{sliderVariants as l}from"../slider/variants.js";import{tabsVariants as u}from"../tabs/variants.js";import{colorPickerVariants as d}from"./variants.js";import{computed as f,createBlock as p,defineComponent as m,mergeProps as h,openBlock as g,toHandlers as _,unref as v}from"vue";import{useForwardListeners as y,useOmitProps as b}from"@soybeanjs/headless/composables";import{provideColorAreaUi as x}from"@soybeanjs/headless/color-area";import{provideColorFieldUi as S}from"@soybeanjs/headless/color-field";import{ColorPickerCompact as C,provideColorPickerUi as w}from"@soybeanjs/headless/color-picker";import{provideColorSwatchUi as T}from"@soybeanjs/headless/color-swatch";import{provideColorSwatchPickerUi as E}from"@soybeanjs/headless/color-swatch-picker";import{provideColorSliderUi as D}from"@soybeanjs/headless/color-slider";import{providePopoverUi as O}from"@soybeanjs/headless/popover";import{provideTabsUi as k}from"@soybeanjs/headless/tabs";const A=m({name:`SColorPicker`,__name:`color-picker`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},showAlpha:{type:Boolean,default:!0},showFields:{type:Boolean,default:!0},showSwatches:{type:Boolean,default:!0},swatches:{},swatchProps:{},segmentProps:{},areaProps:{},hueSliderProps:{},alphaSliderProps:{},alphaFieldProps:{},fieldProps:{},swatchPickerProps:{},modelValue:{},defaultValue:{},format:{},defaultFormat:{},colorSpace:{},disabled:{type:Boolean},name:{},required:{type:Boolean},placement:{},showArrow:{type:Boolean,default:!0},triggerProps:{},portalProps:{},positionerProps:{},popupProps:{},arrowProps:{},closeProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:modelValue`,`update:color`,`update:format`,`change`,`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(m,{emit:A}){let j=m,M=A,N=b(j,[`class`,`size`,`ui`]),P=y(M),F=f(()=>t[j.size??`md`]),I=f(()=>{let t=d({size:j.size});return e(Object.assign(t,{$base:{trigger:r({size:j.size,variant:`pure`}),close:n({size:F.value})}}),j.ui,{trigger:j.class})}),L=f(()=>e(Object.assign(o({size:j.size}),{$base:{close:n({size:F.value})}}),j.ui)),R=f(()=>e(i({size:j.size}))),z=f(()=>e(a({size:j.size}))),B=f(()=>e(s({size:j.size,shape:`square`}))),V=f(()=>e(c({size:j.size,shape:`square`}))),H=f(()=>e(l({size:j.size}))),U=f(()=>e(u({size:j.size,orientation:`horizontal`,shape:`square`,fill:`auto`,enableIndicator:!0})));return w(I),O(L),x(R),S(z),E(V),D(H),T(B),k(U),(e,t)=>(g(),p(v(C),h(v(N),_(v(P))),null,16))}});export{A as default};
1
+ import{colorAreaVariants as e}from"../../styles/color-area.js";import{colorFieldVariants as t}from"../../styles/color-field.js";import{popoverVariants as n}from"../../styles/popover.js";import{colorSwatchVariants as r}from"../../styles/color-swatch.js";import{colorSwatchPickerVariants as i}from"../../styles/color-swatch-picker.js";import{sliderVariants as a}from"../../styles/slider.js";import{tabsVariants as o}from"../../styles/tabs.js";import{colorPickerVariants as s}from"../../styles/color-picker.js";import{computed as c,createBlock as l,defineComponent as u,mergeProps as d,openBlock as f,toHandlers as p,unref as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{provideColorAreaUi as _}from"@soybeanjs/headless/color-area";import{provideColorFieldUi as v}from"@soybeanjs/headless/color-field";import{ColorPickerCompact as y,provideColorPickerUi as b}from"@soybeanjs/headless/color-picker";import{provideColorSwatchUi as x}from"@soybeanjs/headless/color-swatch";import{provideColorSwatchPickerUi as S}from"@soybeanjs/headless/color-swatch-picker";import{provideColorSliderUi as C}from"@soybeanjs/headless/color-slider";import{providePopoverUi as w}from"@soybeanjs/headless/popover";import{provideTabsUi as T}from"@soybeanjs/headless/tabs";const E=u({name:`SColorPicker`,__name:`color-picker`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},showAlpha:{type:Boolean,default:!0},showFields:{type:Boolean,default:!0},showSwatches:{type:Boolean,default:!0},swatches:{},swatchProps:{},segmentProps:{},areaProps:{},hueSliderProps:{},alphaSliderProps:{},alphaFieldProps:{},fieldProps:{},swatchPickerProps:{},modelValue:{},defaultValue:{},format:{},defaultFormat:{},colorSpace:{},disabled:{type:Boolean},name:{},required:{type:Boolean},placement:{},showArrow:{type:Boolean,default:!0},triggerProps:{},portalProps:{},positionerProps:{},popupProps:{},arrowProps:{},closeProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:modelValue`,`update:color`,`update:format`,`change`,`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(u,{emit:E}){let D=u,O=E,k=g(D,[`class`,`size`,`ui`]),A=h(O),j=c(()=>s({size:D.size},D.ui,{trigger:D.class})),M=c(()=>n({size:D.size},{popup:D.ui?.popup})),N=c(()=>e({size:D.size})),P=c(()=>t({size:D.size})),F=c(()=>r({size:D.size,shape:`square`})),I=c(()=>i({size:D.size,shape:`square`})),L=c(()=>a({size:D.size})),R=c(()=>o({size:D.size,orientation:`horizontal`,shape:`square`,fill:`auto`,enableIndicator:!0}));return b(j),w(M),_(N),v(P),S(I),C(L),x(F),T(R),(e,t)=>(f(),l(m(y),d(m(k),p(m(A))),null,16))}});export{E as default};