@soybeanjs/ui 0.14.0 → 0.15.0-beta.1

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 (298) hide show
  1. package/README.md +79 -147
  2. package/README.zh-CN.md +79 -147
  3. package/dist/components/accordion/accordion.js +1 -1
  4. package/dist/components/accordion/accordion.vue.d.ts +3 -31
  5. package/dist/components/accordion/index.d.ts +3 -3
  6. package/dist/components/accordion/types.d.ts +6 -25
  7. package/dist/components/affix/affix.js +1 -0
  8. package/dist/components/affix/affix.vue.d.ts +22 -0
  9. package/dist/components/affix/index.d.ts +4 -0
  10. package/dist/components/affix/index.js +1 -0
  11. package/dist/components/affix/types.d.ts +15 -0
  12. package/dist/components/affix/variants.js +1 -0
  13. package/dist/components/alert/alert.js +1 -1
  14. package/dist/components/anchor/anchor-item.js +1 -0
  15. package/dist/components/anchor/anchor.js +1 -0
  16. package/dist/components/anchor/anchor.vue.d.ts +23 -0
  17. package/dist/components/anchor/context.js +1 -0
  18. package/dist/components/anchor/index.d.ts +4 -0
  19. package/dist/components/anchor/index.js +1 -0
  20. package/dist/components/anchor/types.d.ts +34 -0
  21. package/dist/components/anchor/variants.js +1 -0
  22. package/dist/components/autocomplete/autocomplete-group-option.js +1 -0
  23. package/dist/components/autocomplete/autocomplete-option.js +1 -0
  24. package/dist/components/autocomplete/autocomplete-single-option.js +1 -0
  25. package/dist/components/autocomplete/autocomplete.js +1 -0
  26. package/dist/components/autocomplete/autocomplete.vue.d.ts +47 -0
  27. package/dist/components/autocomplete/context.js +1 -0
  28. package/dist/components/autocomplete/index.d.ts +4 -0
  29. package/dist/components/autocomplete/index.js +1 -0
  30. package/dist/components/autocomplete/shared.js +1 -0
  31. package/dist/components/autocomplete/types.d.ts +94 -0
  32. package/dist/components/autocomplete/variants.js +1 -0
  33. package/dist/components/bottom-sheet/bottom-sheet-close.js +1 -0
  34. package/dist/components/bottom-sheet/bottom-sheet-close.vue.d.ts +18 -0
  35. package/dist/components/bottom-sheet/bottom-sheet.js +1 -0
  36. package/dist/components/bottom-sheet/bottom-sheet.vue.d.ts +72 -0
  37. package/dist/components/bottom-sheet/index.d.ts +3 -0
  38. package/dist/components/bottom-sheet/index.js +1 -0
  39. package/dist/components/bottom-sheet/types.d.ts +31 -0
  40. package/dist/components/bottom-sheet/variants.js +1 -0
  41. package/dist/components/button/button-link.vue.d.ts +1 -1
  42. package/dist/components/carousel/carousel-content.js +1 -0
  43. package/dist/components/carousel/carousel-content.vue.d.ts +18 -0
  44. package/dist/components/carousel/carousel-item.js +1 -0
  45. package/dist/components/carousel/carousel-item.vue.d.ts +18 -0
  46. package/dist/components/carousel/carousel-next.js +1 -0
  47. package/dist/components/carousel/carousel-next.vue.d.ts +22 -0
  48. package/dist/components/carousel/carousel-previous.js +1 -0
  49. package/dist/components/carousel/carousel-previous.vue.d.ts +22 -0
  50. package/dist/components/carousel/carousel.js +1 -0
  51. package/dist/components/carousel/carousel.vue.d.ts +15 -0
  52. package/dist/components/carousel/index.d.ts +8 -0
  53. package/dist/components/carousel/index.js +1 -0
  54. package/dist/components/carousel/types.d.ts +10 -0
  55. package/dist/components/carousel/variants.js +1 -0
  56. package/dist/components/color-area/color-area.js +1 -0
  57. package/dist/components/color-area/color-area.vue.d.ts +19 -0
  58. package/dist/components/color-area/index.d.ts +4 -0
  59. package/dist/components/color-area/index.js +1 -0
  60. package/dist/components/color-area/types.d.ts +14 -0
  61. package/dist/components/color-area/variants.js +1 -0
  62. package/dist/components/color-field/color-field.js +1 -0
  63. package/dist/components/color-field/color-field.vue.d.ts +15 -0
  64. package/dist/components/color-field/index.d.ts +4 -0
  65. package/dist/components/color-field/index.js +1 -0
  66. package/dist/components/color-field/types.d.ts +13 -0
  67. package/dist/components/color-field/variants.js +1 -0
  68. package/dist/components/color-picker/color-picker.js +1 -0
  69. package/dist/components/color-picker/color-picker.vue.d.ts +55 -0
  70. package/dist/components/color-picker/index.d.ts +2 -0
  71. package/dist/components/color-picker/index.js +1 -0
  72. package/dist/components/color-picker/shared.js +1 -0
  73. package/dist/components/color-picker/types.d.ts +47 -0
  74. package/dist/components/color-picker/variants.js +1 -0
  75. package/dist/components/color-slider/color-slider.js +1 -0
  76. package/dist/components/color-slider/color-slider.vue.d.ts +23 -0
  77. package/dist/components/color-slider/index.d.ts +4 -0
  78. package/dist/components/color-slider/index.js +1 -0
  79. package/dist/components/color-slider/types.d.ts +16 -0
  80. package/dist/components/color-swatch/color-swatch.js +1 -0
  81. package/dist/components/color-swatch/color-swatch.vue.d.ts +18 -0
  82. package/dist/components/color-swatch/index.d.ts +5 -0
  83. package/dist/components/color-swatch/index.js +1 -0
  84. package/dist/components/color-swatch/types.d.ts +16 -0
  85. package/dist/components/color-swatch/variants.d.ts +108 -0
  86. package/dist/components/color-swatch/variants.js +1 -0
  87. package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -0
  88. package/dist/components/color-swatch-picker/color-swatch-picker.vue.d.ts +39 -0
  89. package/dist/components/color-swatch-picker/index.d.ts +5 -0
  90. package/dist/components/color-swatch-picker/index.js +1 -0
  91. package/dist/components/color-swatch-picker/types.d.ts +20 -0
  92. package/dist/components/color-swatch-picker/variants.d.ts +153 -0
  93. package/dist/components/color-swatch-picker/variants.js +1 -0
  94. package/dist/components/combobox/combobox-group-option.js +1 -0
  95. package/dist/components/combobox/combobox-option.js +1 -0
  96. package/dist/components/combobox/combobox-single-option.js +1 -0
  97. package/dist/components/combobox/combobox.js +1 -0
  98. package/dist/components/combobox/combobox.vue.d.ts +76 -0
  99. package/dist/components/combobox/index.d.ts +4 -0
  100. package/dist/components/combobox/index.js +1 -0
  101. package/dist/components/combobox/shared.js +1 -0
  102. package/dist/components/combobox/types.d.ts +68 -0
  103. package/dist/components/combobox/variants.js +1 -0
  104. package/dist/components/config-provider/config-provider.js +1 -1
  105. package/dist/components/config-provider/context.js +1 -1
  106. package/dist/components/config-provider/types.d.ts +14 -2
  107. package/dist/components/context-menu/context-menu-checkbox.js +1 -1
  108. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +8 -15
  109. package/dist/components/context-menu/context-menu-radio.js +1 -1
  110. package/dist/components/context-menu/context-menu-radio.vue.d.ts +8 -15
  111. package/dist/components/context-menu/context-menu-wrapper.js +1 -1
  112. package/dist/components/context-menu/context-menu-wrapper.vue.d.ts +5 -5
  113. package/dist/components/context-menu/context-menu.js +1 -1
  114. package/dist/components/context-menu/context-menu.vue.d.ts +7 -15
  115. package/dist/components/context-menu/index.d.ts +5 -7
  116. package/dist/components/context-menu/types.d.ts +14 -42
  117. package/dist/components/dialog/dialog-pure.vue.d.ts +1 -1
  118. package/dist/components/dialog/dialog.vue.d.ts +1 -1
  119. package/dist/components/drawer/drawer.vue.d.ts +1 -1
  120. package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
  121. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +8 -15
  122. package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
  123. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +8 -15
  124. package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
  125. package/dist/components/dropdown-menu/dropdown-menu-wrapper.vue.d.ts +5 -5
  126. package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
  127. package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +7 -15
  128. package/dist/components/dropdown-menu/index.d.ts +2 -4
  129. package/dist/components/dropdown-menu/index.js +1 -1
  130. package/dist/components/dropdown-menu/types.d.ts +14 -38
  131. package/dist/components/editable/editable.js +1 -0
  132. package/dist/components/editable/editable.vue.d.ts +85 -0
  133. package/dist/components/editable/index.d.ts +4 -0
  134. package/dist/components/editable/index.js +1 -0
  135. package/dist/components/editable/types.d.ts +20 -0
  136. package/dist/components/editable/variants.js +1 -0
  137. package/dist/components/empty/empty.js +1 -0
  138. package/dist/components/empty/empty.vue.d.ts +21 -0
  139. package/dist/components/empty/index.d.ts +5 -0
  140. package/dist/components/empty/index.js +1 -0
  141. package/dist/components/empty/types.d.ts +20 -0
  142. package/dist/components/empty/variants.d.ts +57 -0
  143. package/dist/components/empty/variants.js +1 -0
  144. package/dist/components/hover-card/hover-card.js +1 -0
  145. package/dist/components/hover-card/hover-card.vue.d.ts +35 -0
  146. package/dist/components/hover-card/index.d.ts +4 -0
  147. package/dist/components/hover-card/index.js +1 -0
  148. package/dist/components/hover-card/types.d.ts +22 -0
  149. package/dist/components/hover-card/variants.js +1 -0
  150. package/dist/components/icon/types.d.ts +3 -4
  151. package/dist/components/link/link.vue.d.ts +1 -1
  152. package/dist/components/menu/context.js +1 -1
  153. package/dist/components/menu/index.d.ts +2 -7
  154. package/dist/components/menu/index.js +1 -1
  155. package/dist/components/menu/types.d.ts +9 -86
  156. package/dist/components/menu/variants.js +1 -1
  157. package/dist/components/menubar/index.d.ts +2 -0
  158. package/dist/components/menubar/index.js +1 -0
  159. package/dist/components/menubar/menubar.js +1 -0
  160. package/dist/components/{menu/menu-option.vue.d.ts → menubar/menubar.vue.d.ts} +8 -24
  161. package/dist/components/menubar/types.d.ts +17 -0
  162. package/dist/components/menubar/variants.js +1 -0
  163. package/dist/components/navigation-menu/navigation-menu.vue.d.ts +2 -2
  164. package/dist/components/page-tabs/page-tabs.vue.d.ts +2 -2
  165. package/dist/components/page-tabs/types.d.ts +1 -1
  166. package/dist/components/popconfirm/popconfirm-cancel.js +1 -1
  167. package/dist/components/popconfirm/popconfirm-confirm.js +1 -1
  168. package/dist/components/popconfirm/popconfirm.vue.d.ts +1 -1
  169. package/dist/components/popover/popover.js +1 -1
  170. package/dist/components/progress/context.d.ts +5 -0
  171. package/dist/components/progress/context.js +1 -0
  172. package/dist/components/progress/index.d.ts +8 -0
  173. package/dist/components/progress/index.js +1 -0
  174. package/dist/components/progress/loading-bar.js +1 -0
  175. package/dist/components/progress/loading-bar.vue.d.ts +25 -0
  176. package/dist/components/progress/progress-circle.js +1 -0
  177. package/dist/components/progress/progress-circle.vue.d.ts +29 -0
  178. package/dist/components/progress/progress.js +1 -0
  179. package/dist/components/progress/progress.vue.d.ts +30 -0
  180. package/dist/components/progress/shared.d.ts +7 -0
  181. package/dist/components/progress/shared.js +1 -0
  182. package/dist/components/progress/types.d.ts +43 -0
  183. package/dist/components/progress/variants.js +1 -0
  184. package/dist/components/scroll-area/index.d.ts +4 -0
  185. package/dist/components/scroll-area/index.js +1 -0
  186. package/dist/components/scroll-area/scroll-area.js +1 -0
  187. package/dist/components/scroll-area/scroll-area.vue.d.ts +18 -0
  188. package/dist/components/scroll-area/types.d.ts +15 -0
  189. package/dist/components/scroll-area/variants.js +1 -0
  190. package/dist/components/select/select.vue.d.ts +2 -2
  191. package/dist/components/skeleton/index.d.ts +3 -0
  192. package/dist/components/skeleton/index.js +1 -0
  193. package/dist/components/skeleton/skeleton.js +1 -0
  194. package/dist/components/skeleton/skeleton.vue.d.ts +20 -0
  195. package/dist/components/skeleton/types.d.ts +16 -0
  196. package/dist/components/skeleton/variants.d.ts +60 -0
  197. package/dist/components/skeleton/variants.js +1 -0
  198. package/dist/components/slider/index.d.ts +4 -0
  199. package/dist/components/slider/index.js +1 -0
  200. package/dist/components/slider/slider.js +1 -0
  201. package/dist/components/slider/slider.vue.d.ts +28 -0
  202. package/dist/components/slider/types.d.ts +16 -0
  203. package/dist/components/slider/variants.js +1 -0
  204. package/dist/components/spinner/index.d.ts +2 -0
  205. package/dist/components/spinner/index.js +1 -0
  206. package/dist/components/spinner/spinner.js +1 -0
  207. package/dist/components/spinner/spinner.vue.d.ts +10 -0
  208. package/dist/components/spinner/types.d.ts +19 -0
  209. package/dist/components/spinner/variants.js +1 -0
  210. package/dist/components/splitter/index.d.ts +5 -0
  211. package/dist/components/splitter/index.js +1 -0
  212. package/dist/components/splitter/splitter-group.js +1 -0
  213. package/dist/components/splitter/splitter-group.vue.d.ts +22 -0
  214. package/dist/components/splitter/splitter-panel.js +1 -0
  215. package/dist/components/splitter/splitter-panel.vue.d.ts +32 -0
  216. package/dist/components/splitter/splitter-resize-handle.js +1 -0
  217. package/dist/components/splitter/splitter-resize-handle.vue.d.ts +415 -0
  218. package/dist/components/splitter/types.d.ts +12 -0
  219. package/dist/components/splitter/variants.js +1 -0
  220. package/dist/components/stepper/index.d.ts +4 -0
  221. package/dist/components/stepper/index.js +1 -0
  222. package/dist/components/stepper/stepper.js +1 -0
  223. package/dist/components/stepper/stepper.vue.d.ts +121 -0
  224. package/dist/components/stepper/types.d.ts +26 -0
  225. package/dist/components/stepper/variants.js +1 -0
  226. package/dist/components/table/hooks.d.ts +5 -5
  227. package/dist/components/table/hooks.js +1 -1
  228. package/dist/components/table/index.d.ts +1 -1
  229. package/dist/components/table/table-filter-popover.js +1 -0
  230. package/dist/components/table/table-radio.js +1 -1
  231. package/dist/components/table/table.js +1 -1
  232. package/dist/components/table/table.vue.d.ts +7 -3
  233. package/dist/components/table/types.d.ts +25 -83
  234. package/dist/components/table/variants.js +1 -1
  235. package/dist/components/tags-input/index.d.ts +5 -0
  236. package/dist/components/tags-input/index.js +1 -0
  237. package/dist/components/tags-input/tags-input-item-delete.js +1 -0
  238. package/dist/components/tags-input/tags-input-item-delete.vue.d.ts +18 -0
  239. package/dist/components/tags-input/tags-input.js +1 -0
  240. package/dist/components/tags-input/tags-input.vue.d.ts +29 -0
  241. package/dist/components/tags-input/types.d.ts +12 -0
  242. package/dist/components/tags-input/variants.js +1 -0
  243. package/dist/components/toast/index.d.ts +4 -5
  244. package/dist/components/toast/index.js +1 -1
  245. package/dist/components/toast/styles.js +274 -0
  246. package/dist/components/toast/toaster.js +1 -0
  247. package/dist/components/toast/toaster.vue.d.ts +22 -0
  248. package/dist/components/toast/types.d.ts +5 -55
  249. package/dist/components/toast/variants.js +1 -1
  250. package/dist/components/toggle/index.d.ts +3 -0
  251. package/dist/components/toggle/index.js +1 -0
  252. package/dist/components/toggle/toggle.js +1 -0
  253. package/dist/components/toggle/toggle.vue.d.ts +30 -0
  254. package/dist/components/toggle/types.d.ts +14 -0
  255. package/dist/components/toggle/variants.d.ts +100 -0
  256. package/dist/components/toggle/variants.js +1 -0
  257. package/dist/components/toggle-group/index.d.ts +6 -0
  258. package/dist/components/toggle-group/index.js +1 -0
  259. package/dist/components/toggle-group/toggle-group-item.js +1 -0
  260. package/dist/components/toggle-group/toggle-group-item.vue.d.ts +22 -0
  261. package/dist/components/toggle-group/toggle-group.js +1 -0
  262. package/dist/components/toggle-group/toggle-group.vue.d.ts +24 -0
  263. package/dist/components/toggle-group/types.d.ts +15 -0
  264. package/dist/components/toggle-group/variants.d.ts +216 -0
  265. package/dist/components/toggle-group/variants.js +1 -0
  266. package/dist/components/toolbar/index.d.ts +4 -0
  267. package/dist/components/toolbar/index.js +1 -0
  268. package/dist/components/toolbar/toolbar.js +1 -0
  269. package/dist/components/toolbar/toolbar.vue.d.ts +18 -0
  270. package/dist/components/toolbar/types.d.ts +9 -0
  271. package/dist/components/toolbar/variants.js +1 -0
  272. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -1
  273. package/dist/components/tree-menu/types.d.ts +1 -1
  274. package/dist/components/tree-menu/variants.js +1 -1
  275. package/dist/constants/components.d.ts +27 -0
  276. package/dist/constants/components.js +1 -1
  277. package/dist/index.d.ts +179 -94
  278. package/dist/index.js +1 -1
  279. package/dist/styles.css +597 -111
  280. package/dist/theme/config.js +1 -1
  281. package/package.json +21 -18
  282. package/dist/components/menu/menu-checkbox-options.js +0 -1
  283. package/dist/components/menu/menu-checkbox-options.vue.d.ts +0 -28
  284. package/dist/components/menu/menu-item-slot.js +0 -1
  285. package/dist/components/menu/menu-option.js +0 -1
  286. package/dist/components/menu/menu-options.js +0 -1
  287. package/dist/components/menu/menu-options.vue.d.ts +0 -48
  288. package/dist/components/menu/menu-radio-options.js +0 -1
  289. package/dist/components/menu/menu-radio-options.vue.d.ts +0 -28
  290. package/dist/components/menu/shared.js +0 -1
  291. package/dist/components/table/shared.js +0 -1
  292. package/dist/components/toast/context.d.ts +0 -5
  293. package/dist/components/toast/context.js +0 -1
  294. package/dist/components/toast/shared.js +0 -1
  295. package/dist/components/toast/toast-provider.js +0 -1
  296. package/dist/components/toast/toast.js +0 -1
  297. package/dist/components/toast/toast.vue.d.ts +0 -21
  298. package/dist/components/toast/variants.d.ts +0 -60
@@ -0,0 +1,153 @@
1
+ import * as _$tailwind_variants0 from "tailwind-variants";
2
+ import { VariantProps } from "tailwind-variants";
3
+
4
+ //#region src/components/color-swatch-picker/variants.d.ts
5
+ declare const colorSwatchPickerVariants: _$tailwind_variants0.TVReturnType<{
6
+ size: {
7
+ xs: {
8
+ root: string;
9
+ item: string;
10
+ itemIndicator: string;
11
+ };
12
+ sm: {
13
+ root: string;
14
+ item: string;
15
+ itemIndicator: string;
16
+ };
17
+ md: {
18
+ root: string;
19
+ item: string;
20
+ itemIndicator: string;
21
+ };
22
+ lg: {
23
+ root: string;
24
+ item: string;
25
+ itemIndicator: string;
26
+ };
27
+ xl: {
28
+ root: string;
29
+ item: string;
30
+ itemIndicator: string;
31
+ };
32
+ '2xl': {
33
+ root: string;
34
+ item: string;
35
+ itemIndicator: string;
36
+ };
37
+ };
38
+ shape: {
39
+ square: {
40
+ item: string;
41
+ };
42
+ circle: {
43
+ item: string;
44
+ };
45
+ };
46
+ }, {
47
+ root: string;
48
+ item: string[];
49
+ itemIndicator: string;
50
+ swatch: string[];
51
+ checker: string;
52
+ fill: string;
53
+ }, undefined, {
54
+ size: {
55
+ xs: {
56
+ root: string;
57
+ item: string;
58
+ itemIndicator: string;
59
+ };
60
+ sm: {
61
+ root: string;
62
+ item: string;
63
+ itemIndicator: string;
64
+ };
65
+ md: {
66
+ root: string;
67
+ item: string;
68
+ itemIndicator: string;
69
+ };
70
+ lg: {
71
+ root: string;
72
+ item: string;
73
+ itemIndicator: string;
74
+ };
75
+ xl: {
76
+ root: string;
77
+ item: string;
78
+ itemIndicator: string;
79
+ };
80
+ '2xl': {
81
+ root: string;
82
+ item: string;
83
+ itemIndicator: string;
84
+ };
85
+ };
86
+ shape: {
87
+ square: {
88
+ item: string;
89
+ };
90
+ circle: {
91
+ item: string;
92
+ };
93
+ };
94
+ }, {
95
+ root: string;
96
+ item: string[];
97
+ itemIndicator: string;
98
+ swatch: string[];
99
+ checker: string;
100
+ fill: string;
101
+ }, _$tailwind_variants0.TVReturnType<{
102
+ size: {
103
+ xs: {
104
+ root: string;
105
+ item: string;
106
+ itemIndicator: string;
107
+ };
108
+ sm: {
109
+ root: string;
110
+ item: string;
111
+ itemIndicator: string;
112
+ };
113
+ md: {
114
+ root: string;
115
+ item: string;
116
+ itemIndicator: string;
117
+ };
118
+ lg: {
119
+ root: string;
120
+ item: string;
121
+ itemIndicator: string;
122
+ };
123
+ xl: {
124
+ root: string;
125
+ item: string;
126
+ itemIndicator: string;
127
+ };
128
+ '2xl': {
129
+ root: string;
130
+ item: string;
131
+ itemIndicator: string;
132
+ };
133
+ };
134
+ shape: {
135
+ square: {
136
+ item: string;
137
+ };
138
+ circle: {
139
+ item: string;
140
+ };
141
+ };
142
+ }, {
143
+ root: string;
144
+ item: string[];
145
+ itemIndicator: string;
146
+ swatch: string[];
147
+ checker: string;
148
+ fill: string;
149
+ }, undefined, unknown, unknown, undefined>>;
150
+ type ColorSwatchPickerVariants = VariantProps<typeof colorSwatchPickerVariants>;
151
+ type ColorSwatchPickerShape = NonNullable<ColorSwatchPickerVariants['shape']>;
152
+ //#endregion
153
+ export { ColorSwatchPickerShape };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`grid`,item:[`relative inline-flex items-center justify-center rounded-full outline-none transition-[transform,box-shadow] duration-150`,`hover:scale-110 data-[highlighted]:scale-105 data-[disabled]:opacity-50`],itemIndicator:`pointer-events-none absolute inset-0 flex justify-center items-center text-muted`,swatch:[`relative isolate inline-flex size-full overflow-hidden rounded-[inherit] border border-input bg-background shadow-sm`,`data-[no-color]:bg-muted/40`],checker:`absolute inset-0 bg-[linear-gradient(45deg,rgba(0,0,0,0.08)_25%,transparent_25%,transparent_75%,rgba(0,0,0,0.08)_75%),linear-gradient(45deg,rgba(0,0,0,0.08)_25%,transparent_25%,transparent_75%,rgba(0,0,0,0.08)_75%)] bg-[length:8px_8px] bg-[position:0_0,4px_4px]`,fill:`absolute inset-0 bg-[var(--soybean-color-swatch-color)]`},variants:{size:{xs:{root:`grid-cols-[repeat(auto-fill,minmax(1.25rem,1fr))] gap-1.5 text-2xs`,item:`size-5`,itemIndicator:`text-4xs`},sm:{root:`grid-cols-[repeat(auto-fill,minmax(1.375rem,1fr))] gap-1.75 text-xs`,item:`size-5.5`,itemIndicator:`text-3xs`},md:{root:`grid-cols-[repeat(auto-fill,minmax(1.5rem,1fr))] gap-2 text-sm`,item:`size-6`,itemIndicator:`text-2xs`},lg:{root:`grid-cols-[repeat(auto-fill,minmax(1.625rem,1fr))] gap-2.5 text-base`,item:`size-6.5`,itemIndicator:`text-xs`},xl:{root:`grid-cols-[repeat(auto-fill,minmax(1.75rem,1fr))] gap-3 text-lg`,item:`size-7`,itemIndicator:`text-sm`},"2xl":{root:`grid-cols-[repeat(auto-fill,minmax(2rem,1fr))] gap-4 text-xl`,item:`size-8`,itemIndicator:`text-base`}},shape:{square:{item:`rounded-md`},circle:{item:`rounded-full`}}},defaultVariants:{size:`md`,shape:`square`}});export{t as colorSwatchPickerVariants};
@@ -0,0 +1 @@
1
+ import e from"./combobox-single-option.js";import{Fragment as t,createBlock as n,createCommentVNode as r,createElementBlock as i,createTextVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,toDisplayString as m,unref as h,withCtx as g}from"vue";import{ComboboxGroup as _,ComboboxGroupLabel as v,ComboboxSeparator as y}from"@soybeanjs/headless";const b=s({name:`SComboboxGroupOption`,__name:`combobox-group-option`,props:{item:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{}},emits:[`itemSelect`],setup(s,{emit:b}){let x=b,S=e=>{x(`itemSelect`,e)};return(b,x)=>(d(),i(t,null,[s.item.separator?(d(),n(h(y),u(l({key:0},s.separatorProps)),null,16)):r(`v-if`,!0),o(h(_),u(c(b.$attrs)),{default:g(()=>[o(h(v),u(c(s.groupLabelProps)),{default:g(()=>[p(b.$slots,`group-label`,{item:s.item},()=>[a(m(s.item.label),1)])]),_:3},16),(d(!0),i(t,null,f(s.item.items,t=>(d(),n(e,l({ref_for:!0},s.itemProps,{key:t.value,item:t,"item-indicator-props":s.itemIndicatorProps,"separator-props":s.separatorProps,onItemSelect:S}),{"item-leading":g(e=>[p(b.$slots,`item-leading`,{item:e.item})]),"item-text":g(e=>[p(b.$slots,`item-text`,{item:e.item})]),"item-trailing":g(e=>[p(b.$slots,`item-trailing`,{item:e.item})]),"item-indicator":g(e=>[p(b.$slots,`item-indicator`,{item:e.item})]),_:3},16,[`item`,`item-indicator-props`,`separator-props`]))),128))]),_:3},16)],64))}});export{b as default};
@@ -0,0 +1 @@
1
+ import e from"./combobox-single-option.js";import t from"./combobox-group-option.js";import{isGroupOption as n}from"./shared.js";import{computed as r,createBlock as i,createSlots as a,createTextVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,toDisplayString as m,unref as h,useSlots as g,withCtx as _}from"vue";const v=s({name:`SComboboxOption`,__name:`combobox-option`,props:{item:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{}},emits:[`itemSelect`],setup(s,{emit:v}){let y=v,b=g(),x=r(()=>Object.keys(b).filter(e=>e!==`group-label`)),S=e=>{y(`itemSelect`,e)};return(r,g)=>h(n)(s.item)?(d(),i(t,l({key:0},s.groupProps,{item:s.item,"group-label-props":s.groupLabelProps,"item-props":s.itemProps,"item-indicator-props":s.itemIndicatorProps,"separator-props":s.separatorProps,onItemSelect:S}),a({"group-label":_(()=>[p(r.$slots,`group-label`,{item:s.item},()=>[o(m(s.item.label),1)])]),_:2},[f(x.value,e=>({name:e,fn:_(t=>[p(r.$slots,e,u(c(t)))])}))]),1040,[`item`,`group-label-props`,`item-props`,`item-indicator-props`,`separator-props`])):(d(),i(e,l({key:1},s.itemProps,{item:s.item,"item-indicator-props":s.itemIndicatorProps,"separator-props":s.separatorProps,onItemSelect:S}),a({_:2},[f(x.value,e=>({name:e,fn:_(()=>[p(r.$slots,e,{item:s.item})])}))]),1040,[`item`,`item-indicator-props`,`separator-props`]))}});export{v as default};
@@ -0,0 +1 @@
1
+ import e from"../icon/icon.js";import{Fragment as t,createBlock as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toDisplayString as p,unref as m,useAttrs as h,withCtx as g}from"vue";import{ComboboxItem as _,ComboboxItemIndicator as v,ComboboxSeparator as y}from"@soybeanjs/headless";const b={class:`truncate`},x=s({name:`SComboboxSingleOption`,inheritAttrs:!1,__name:`combobox-single-option`,props:{item:{},itemIndicatorProps:{},separatorProps:{}},emits:[`itemSelect`],setup(s,{emit:x}){let S=x,C=h();return(h,x)=>(d(),i(t,null,[s.item.separator?(d(),n(m(y),u(l({key:0},s.separatorProps)),null,16)):r(`v-if`,!0),o(m(_),l(m(C),{value:s.item.value,"text-value":s.item.textValue??s.item.label,disabled:s.item.disabled,onSelect:x[0]||=e=>S(`itemSelect`,e)}),{default:g(()=>[f(h.$slots,`item-leading`,{item:s.item},()=>[s.item.icon?(d(),n(e,{key:0,icon:s.item.icon,"aria-hidden":!0},null,8,[`icon`])):r(`v-if`,!0)]),f(h.$slots,`item-text`,{item:s.item},()=>[a(`span`,b,p(s.item.label),1)]),f(h.$slots,`item-trailing`,{item:s.item}),o(m(v),u(c(s.itemIndicatorProps)),{default:g(()=>[f(h.$slots,`item-indicator`,{item:s.item},()=>[o(e,{icon:`lucide:check`,"aria-hidden":!0})])]),_:3},16)]),_:3},16,[`value`,`text-value`,`disabled`])],64))}});export{x as default};
@@ -0,0 +1 @@
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{getSelectedLabels as n}from"./shared.js";import r from"./combobox-option.js";import{comboboxVariants as i}from"./variants.js";import{Fragment as a,computed as o,createBlock as s,createElementBlock as c,createElementVNode as l,createTextVNode as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps as m,normalizeClass as h,normalizeProps as g,openBlock as _,renderList as v,renderSlot as y,toDisplayString as b,toHandlers as x,unref as S,withCtx as C}from"vue";import{useForwardListeners as w,useOmitProps as T}from"@soybeanjs/headless/composables";import{ComboboxContent as E,ComboboxEmpty as D,ComboboxInput as O,ComboboxPortal as k,ComboboxRoot as A,ComboboxTrigger as j,ComboboxViewport as M,provideComboboxUi as N}from"@soybeanjs/headless";const P={class:`grow truncate text-left`},F=f({name:`SCombobox`,__name:`combobox`,props:{class:{},size:{},ui:{},items:{},placeholder:{},searchPlaceholder:{},emptyLabel:{default:`No results found.`},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},inputProps:{},emptyProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!1},dir:{},ignoreFilter:{type:Boolean},resetSearchTermOnBlur:{type:Boolean},resetSearchTermOnSelect:{type:Boolean},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},singleClearable:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`select`],setup(f,{emit:F}){let I=f,L=F,R=T(I,[`class`,`size`,`ui`,`items`,`placeholder`,`searchPlaceholder`,`emptyLabel`,`triggerProps`,`portalProps`,`contentProps`,`viewportProps`,`inputProps`,`emptyProps`,`groupProps`,`groupLabelProps`,`itemProps`,`itemIndicatorProps`,`separatorProps`]),z=w(L),B=o(()=>e(i({size:I.size}),I.ui,{trigger:I.class})),V=o(()=>n(I.modelValue,I.items)),H=o(()=>V.value.length?V.value.join(`, `):I.placeholder),U=o(()=>({...I.inputProps,controlProps:{...I.inputProps?.controlProps,"aria-label":I.inputProps?.controlProps?.[`aria-label`]??I.searchPlaceholder??I.placeholder??`Search`},placeholder:I.searchPlaceholder??I.inputProps?.placeholder,autofocus:I.inputProps?.autofocus??!0})),W=o(()=>({...I.viewportProps,"aria-label":I.viewportProps?.[`aria-label`]??I.placeholder??`Options`})),G=o(()=>({...I.triggerProps,"aria-label":I.triggerProps?.[`aria-label`]??H.value,"data-placeholder":V.value.length?void 0:``}));return N(B),(e,n)=>(_(),s(S(A),m(S(R),x(S(z))),{default:C(()=>[d(S(j),g(p(G.value)),{default:C(()=>[y(e.$slots,`trigger-leading`),y(e.$slots,`trigger-value`,{modelValue:f.modelValue,selectedLabels:V.value,slotText:H.value},()=>[l(`span`,P,b(H.value),1)]),y(e.$slots,`trigger-trailing`),y(e.$slots,`trigger-icon`,{},()=>[d(t,{icon:`lucide:chevrons-up-down`,class:h(B.value.triggerIcon),"aria-hidden":!0},null,8,[`class`])])]),_:3},16),d(S(k),g(p(f.portalProps)),{default:C(()=>[d(S(E),m(f.contentProps,{onCloseAutoFocus:n[1]||=e=>L(`closeAutoFocus`,e),onEscapeKeyDown:n[2]||=e=>L(`escapeKeyDown`,e),onPointerDownOutside:n[3]||=e=>L(`pointerDownOutside`,e),onFocusOutside:n[4]||=e=>L(`focusOutside`,e),onInteractOutside:n[5]||=e=>L(`interactOutside`,e)}),{default:C(()=>[d(S(O),g(p(U.value)),{leading:C(n=>[y(e.$slots,`input-leading`,g(p(n)),()=>[d(t,{icon:`lucide:search`,class:`mr-2 shrink-0 opacity-50`,"aria-hidden":!0})])]),trailing:C(t=>[y(e.$slots,`input-trailing`,g(p(t)))]),_:3},16),d(S(D),g(p(f.emptyProps)),{default:C(()=>[y(e.$slots,`empty`,{},()=>[u(b(f.emptyLabel),1)])]),_:3},16),d(S(M),g(p(W.value)),{default:C(()=>[(_(!0),c(a,null,v(f.items,t=>(_(),s(r,{key:`items`in t?`group-${t.label}`:t.value,item:t,"group-props":f.groupProps,"group-label-props":f.groupLabelProps,"item-props":f.itemProps,"item-indicator-props":f.itemIndicatorProps,"separator-props":f.separatorProps,onItemSelect:n[0]||=e=>L(`select`,e)},{"group-label":C(t=>[y(e.$slots,`group-label`,m({ref_for:!0},t))]),"item-leading":C(t=>[y(e.$slots,`item-leading`,m({ref_for:!0},t))]),"item-text":C(t=>[y(e.$slots,`item-text`,m({ref_for:!0},t))]),"item-trailing":C(t=>[y(e.$slots,`item-trailing`,m({ref_for:!0},t))]),"item-indicator":C(t=>[y(e.$slots,`item-indicator`,m({ref_for:!0},t))]),_:3},8,[`item`,`group-props`,`group-label-props`,`item-props`,`item-indicator-props`,`separator-props`]))),128))]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16))}});export{F as default};
@@ -0,0 +1,76 @@
1
+ import { ComboboxGroupOptionData, ComboboxProps, ComboboxSingleOptionData } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_soybeanjs_headless_composables0 from "@soybeanjs/headless/composables";
4
+ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
+
6
+ //#region src/components/combobox/combobox.vue.d.ts
7
+ declare const __VLS_export: <M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<ComboboxProps<M> & {
9
+ onSelect?: ((event: _$_soybeanjs_headless0.SelectEvent<string>) => any) | undefined;
10
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
12
+ onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
13
+ onFocusOutside?: ((event: _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
14
+ onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
15
+ onOpenAutoFocus?: ((event: Event) => any) | undefined;
16
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
+ "onUpdate:modelValue"?: ((value: M extends true ? string[] : string) => any) | undefined;
18
+ onHighlight?: ((payload?: _$_soybeanjs_headless_composables0.CollectionItemData<_$_soybeanjs_headless0.ListboxCollectionItemData> | undefined) => any) | undefined;
19
+ onEntryFocus?: ((event: CustomEvent<any>) => any) | undefined;
20
+ onLeave?: ((event: Event) => any) | undefined;
21
+ }> & (typeof globalThis extends {
22
+ __VLS_PROPS_FALLBACK: infer P;
23
+ } ? P : {});
24
+ expose: (exposed: {}) => void;
25
+ attrs: any;
26
+ slots: {
27
+ 'trigger-leading'?: (props: {}) => any;
28
+ } & {
29
+ 'trigger-value'?: (props: {
30
+ modelValue: (M extends true ? string[] : string) | undefined;
31
+ selectedLabels: string[];
32
+ slotText: string | undefined;
33
+ }) => any;
34
+ } & {
35
+ 'trigger-trailing'?: (props: {}) => any;
36
+ } & {
37
+ 'trigger-icon'?: (props: {}) => any;
38
+ } & {
39
+ 'input-leading'?: (props: {
40
+ clear: () => void;
41
+ }) => any;
42
+ } & {
43
+ 'input-trailing'?: (props: {
44
+ clear: () => void;
45
+ }) => any;
46
+ } & {
47
+ empty?: (props: {}) => any;
48
+ } & {
49
+ 'group-label'?: (props: {
50
+ item: ComboboxGroupOptionData;
51
+ }) => any;
52
+ } & {
53
+ 'item-leading'?: (props: {
54
+ item: ComboboxSingleOptionData;
55
+ }) => any;
56
+ } & {
57
+ 'item-text'?: (props: {
58
+ item: ComboboxSingleOptionData;
59
+ }) => any;
60
+ } & {
61
+ 'item-trailing'?: (props: {
62
+ item: ComboboxSingleOptionData;
63
+ }) => any;
64
+ } & {
65
+ 'item-indicator'?: (props: {
66
+ item: ComboboxSingleOptionData;
67
+ }) => any;
68
+ };
69
+ emit: ((evt: "select", event: _$_soybeanjs_headless0.SelectEvent<string>) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "update:modelValue", value: M extends true ? string[] : string) => void) & ((evt: "highlight", payload?: _$_soybeanjs_headless_composables0.CollectionItemData<_$_soybeanjs_headless0.ListboxCollectionItemData> | undefined) => void) & ((evt: "entryFocus", event: CustomEvent<any>) => void) & ((evt: "leave", event: Event) => void);
70
+ }>) => _$vue.VNode & {
71
+ __ctx?: Awaited<typeof __VLS_setup>;
72
+ };
73
+ declare const _default: typeof __VLS_export;
74
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
75
+ //#endregion
76
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { ComboboxEmits, ComboboxGroupOptionData, ComboboxGroupOptionEmits, ComboboxGroupOptionProps, ComboboxOptionData, ComboboxOptionEmits, ComboboxOptionProps, ComboboxProps, ComboboxSingleOptionData, ComboboxSingleOptionEmits, ComboboxSingleOptionProps } from "./types.js";
2
+ import { _default } from "./combobox.vue.js";
3
+ import { ComboboxContentEmits, ComboboxContentProps, ComboboxEmptyProps, ComboboxGroupLabelProps, ComboboxGroupProps, ComboboxInputEmits, ComboboxInputProps, ComboboxItemEmits, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxPortalProps, ComboboxRootEmits, ComboboxRootProps, ComboboxSeparatorProps, ComboboxTriggerProps, ComboboxUi, ComboboxUiSlot, ComboboxViewportProps } from "@soybeanjs/headless/combobox";
4
+ export { type ComboboxContentEmits, type ComboboxContentProps, type ComboboxEmptyProps, type ComboboxGroupLabelProps, type ComboboxGroupProps, type ComboboxInputEmits, type ComboboxInputProps, type ComboboxItemEmits, type ComboboxItemIndicatorProps, type ComboboxItemProps, type ComboboxPortalProps, type ComboboxRootEmits, type ComboboxRootProps, type ComboboxSeparatorProps, type ComboboxTriggerProps, type ComboboxUi, type ComboboxUiSlot, type ComboboxViewportProps };
@@ -0,0 +1 @@
1
+ import"./combobox.js";
@@ -0,0 +1 @@
1
+ function e(e){return`items`in e}function t(t){return t.flatMap(t=>e(t)?t.items:t)}function n(e,n){let r=Array.isArray(e)?e:e?[e]:[],i=new Map;return t(n).forEach(e=>{i.set(e.value,e.label)}),r.map(e=>i.get(e)??e)}export{n as getSelectedLabels,e as isGroupOption};
@@ -0,0 +1,68 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { IconValue } from "../icon/types.js";
3
+ import { HTMLAttributes } from "vue";
4
+ import { ClassValue, ComboboxContentEmits, ComboboxContentProps, ComboboxEmptyProps, ComboboxGroupLabelProps, ComboboxGroupProps, ComboboxInputProps, ComboboxItemEmits, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxPortalProps, ComboboxRootEmits, ComboboxRootProps, ComboboxSeparatorProps, ComboboxTriggerProps, ComboboxUi, ComboboxViewportProps } from "@soybeanjs/headless";
5
+
6
+ //#region src/components/combobox/types.d.ts
7
+ interface ComboboxSingleOptionData extends Pick<ComboboxItemProps, 'disabled' | 'textValue'> {
8
+ value: string;
9
+ icon?: IconValue;
10
+ label: string;
11
+ separator?: boolean;
12
+ }
13
+ interface ComboboxGroupOptionData extends Pick<ComboboxSingleOptionData, 'label' | 'separator'> {
14
+ items: ComboboxSingleOptionData[];
15
+ }
16
+ type ComboboxOptionData = ComboboxSingleOptionData | ComboboxGroupOptionData;
17
+ interface ComboboxSingleOptionProps extends /** @vue-ignore */Omit<HTMLAttributes, 'onSelect'> {
18
+ item: ComboboxSingleOptionData;
19
+ itemIndicatorProps?: ComboboxItemIndicatorProps;
20
+ separatorProps?: ComboboxSeparatorProps;
21
+ }
22
+ type ComboboxSingleOptionEmits = {
23
+ itemSelect: [event: ComboboxItemEmits['select'][0]];
24
+ };
25
+ interface ComboboxGroupOptionProps extends ComboboxGroupProps {
26
+ item: ComboboxGroupOptionData;
27
+ groupLabelProps?: ComboboxGroupLabelProps;
28
+ itemProps?: ComboboxItemProps;
29
+ itemIndicatorProps?: ComboboxItemIndicatorProps;
30
+ separatorProps?: ComboboxSeparatorProps;
31
+ }
32
+ type ComboboxGroupOptionEmits = {
33
+ itemSelect: [event: ComboboxItemEmits['select'][0]];
34
+ };
35
+ interface ComboboxOptionProps extends /** @vue-ignore */Omit<HTMLAttributes, 'onSelect'> {
36
+ item: ComboboxOptionData;
37
+ groupProps?: ComboboxGroupProps;
38
+ groupLabelProps?: ComboboxGroupLabelProps;
39
+ itemProps?: ComboboxItemProps;
40
+ itemIndicatorProps?: ComboboxItemIndicatorProps;
41
+ separatorProps?: ComboboxSeparatorProps;
42
+ }
43
+ type ComboboxOptionEmits = {
44
+ itemSelect: [event: ComboboxItemEmits['select'][0]];
45
+ };
46
+ interface ComboboxProps<M extends boolean = false> extends ComboboxRootProps<M> {
47
+ class?: ClassValue;
48
+ size?: ThemeSize;
49
+ ui?: Partial<ComboboxUi>;
50
+ items: ComboboxOptionData[];
51
+ placeholder?: string;
52
+ searchPlaceholder?: string;
53
+ emptyLabel?: string;
54
+ triggerProps?: ComboboxTriggerProps;
55
+ portalProps?: ComboboxPortalProps;
56
+ contentProps?: ComboboxContentProps;
57
+ viewportProps?: ComboboxViewportProps;
58
+ inputProps?: ComboboxInputProps;
59
+ emptyProps?: ComboboxEmptyProps;
60
+ groupProps?: ComboboxGroupProps;
61
+ groupLabelProps?: ComboboxGroupLabelProps;
62
+ itemProps?: ComboboxItemProps;
63
+ itemIndicatorProps?: ComboboxItemIndicatorProps;
64
+ separatorProps?: ComboboxSeparatorProps;
65
+ }
66
+ type ComboboxEmits<M extends boolean = false> = ComboboxRootEmits<M> & ComboboxContentEmits & ComboboxItemEmits;
67
+ //#endregion
68
+ export { ComboboxEmits, ComboboxGroupOptionData, ComboboxGroupOptionEmits, ComboboxGroupOptionProps, ComboboxOptionData, ComboboxOptionEmits, ComboboxOptionProps, ComboboxProps, ComboboxSingleOptionData, ComboboxSingleOptionEmits, ComboboxSingleOptionProps };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{trigger:[`flex w-full items-center justify-between rounded-md border border-input bg-background transition-all-150`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30 focus:ring-3 focus:ring-offset-background focus:ring-primary/30 disabled:pointer-events-none disabled:opacity-50`,`data-[placeholder]:text-muted-foreground`],triggerIcon:`shrink-0 text-muted-foreground opacity-70`,positioner:``,popup:[`relative z-50 min-w-32 rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`overflow-x-hidden overflow-y-auto`,inputRoot:`group flex items-center border-b`,inputControl:`flex w-full rounded-md bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,group:`overflow-hidden text-foreground`,groupLabel:`font-medium text-muted-foreground`,item:[`relative flex w-full cursor-default select-none items-center rounded-sm outline-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],itemIndicator:`ml-auto shrink-0 text-muted-foreground`,empty:`py-4 text-center text-sm text-muted-foreground`,separator:`h-px bg-muted`},variants:{size:{xs:{trigger:`h-6 gap-1 px-1.5 text-2xs`,triggerIcon:`text-3xs`,popup:`w-[--soybean-combobox-trigger-width] text-2xs`,inputRoot:`px-1.5 py-0.5`,inputControl:`h-6`,viewport:`max-h-70 p-0.75`,groupLabel:`p-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.375`},sm:{trigger:`h-7 gap-1.5 px-2 text-xs`,triggerIcon:`text-2xs`,popup:`w-[--soybean-combobox-trigger-width] text-xs`,inputRoot:`px-2 py-0.625`,inputControl:`h-7`,viewport:`max-h-75 p-0.875`,groupLabel:`p-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1`,separator:`-mx-0.875 my-0.4375`},md:{trigger:`h-8 gap-2 px-2.5 text-sm`,triggerIcon:`text-xs`,popup:`w-[--soybean-combobox-trigger-width] text-sm`,inputRoot:`px-2.5 py-0.75`,inputControl:`h-8`,viewport:`max-h-80 p-1`,groupLabel:`p-1.75 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-0.5`},lg:{trigger:`h-9 gap-2.5 px-3 text-base`,triggerIcon:`text-sm`,popup:`w-[--soybean-combobox-trigger-width] text-base`,inputRoot:`px-3 py-0.875`,inputControl:`h-9`,viewport:`max-h-90 p-1.25`,groupLabel:`p-2 text-sm`,item:`gap-2.5 px-2.5 py-1.5`,separator:`-mx-1.25 my-0.625`},xl:{trigger:`h-10 gap-3 px-3.5 text-lg`,triggerIcon:`text-base`,popup:`w-[--soybean-combobox-trigger-width] text-lg`,inputRoot:`px-3.5 py-1`,inputControl:`h-10`,viewport:`max-h-100 p-1.5`,groupLabel:`p-2.5 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-0.75`},"2xl":{trigger:`h-12 gap-3.5 px-4 text-xl`,triggerIcon:`text-lg`,popup:`w-[--soybean-combobox-trigger-width] text-xl`,inputRoot:`px-4 py-1.25`,inputControl:`h-12`,viewport:`max-h-115 p-1.75`,groupLabel:`p-3 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-0.875`}}},defaultVariants:{size:`md`}});export{t as comboboxVariants};
@@ -1 +1 @@
1
- import{themeSizes as e}from"../../constants/common.js";import t from"../alert-dialog/dialog-provider.js";import{provideConfigProviderContext as n}from"./context.js";import r from"../toast/toast-provider.js";import{createBlock as i,createTextVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,normalizeProps as l,openBlock as u,renderSlot as d,toDisplayString as f,unref as p,watch as m,watchEffect as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{ConfigProvider as v,Primitive as y}from"@soybeanjs/headless";import{useStorage as b}from"@vueuse/core";import{isClient as x,transformPropsToContext as S}from"@soybeanjs/headless/shared";import{createShadcnTheme as C}from"@soybeanjs/shadcn-theme";const w=s({name:`SConfigProvider`,__name:`config-provider`,props:{theme:{default:()=>({})},size:{default:`md`},iconify:{default:()=>({width:`1.25em`,height:`1.25em`})},toast:{},dir:{default:`ltr`},locale:{},nonce:{},tooltip:{},nuxt:{type:Boolean}},setup(s){let w=s,T=_(w,[`theme`,`size`,`iconify`,`toast`]);n(S(w));let{getCss:E}=C(w.theme),D=()=>E(w.theme,w.theme.radius),O=b(`__SoybeanUI_themeVars`,D());function k(t){if(!x)return;document.documentElement.classList.add(`size-${t}`);let n=e.filter(e=>e!==t).map(e=>`size-${e}`);document.documentElement.classList.remove(...n)}return m(()=>w.size,e=>{k(e)},{immediate:!0,flush:`sync`}),h(()=>{O.value=D()}),(e,n)=>(u(),i(p(v),l(c(p(T))),{default:g(()=>[o(p(y),{id:`__SoybeanUI_themeVars`,as:`style`},{default:g(()=>[a(f(p(O)),1)]),_:1}),o(t,null,{default:g(()=>[o(r,l(c(s.toast)),{default:g(()=>[d(e.$slots,`default`)]),_:3},16)]),_:3})]),_:3},16))}});export{w as default};
1
+ import{themeSizes as e}from"../../constants/common.js";import t from"../alert-dialog/dialog-provider.js";import n from"../progress/loading-bar.js";import r from"../toast/toaster.js";import{provideConfigProviderContext as i}from"./context.js";import a from"../icon/icon.js";import{createBlock as o,createCommentVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,guardReactiveProps as d,h as f,mergeProps as p,normalizeProps as m,openBlock as h,renderSlot as g,toDisplayString as _,unref as v,watch as y,watchEffect as b,withCtx as x}from"vue";import{useOmitProps as S}from"@soybeanjs/headless/composables";import{ConfigProvider as C,Primitive as w}from"@soybeanjs/headless";import{useStorage as T}from"@vueuse/core";import{isClient as E,transformPropsToContext as D}from"@soybeanjs/headless/shared";import{createShadcnTheme as O}from"@soybeanjs/shadcn-theme";const k=u({name:`SConfigProvider`,__name:`config-provider`,props:{theme:{default:()=>({})},size:{default:`md`},iconify:{default:()=>({width:`1.25em`,height:`1.25em`})},loadingBar:{},toast:{},customToast:{type:Boolean},dir:{default:`ltr`},locale:{},nonce:{},tooltip:{},nuxt:{type:Boolean},iconRender:{}},setup(u){let k=u,A=S(k,[`iconRender`,`theme`,`size`,`iconify`,`loadingBar`,`toast`,`customToast`]),j=k.iconRender??(e=>f(a,{icon:e}));i({...D(k),iconRender:j});let{getCss:M}=O(k.theme),N=()=>M(k.theme,k.theme.radius),P=T(`__SoybeanUI_themeVars`,N());function F(t){if(!E)return;document.documentElement.classList.add(`size-${t}`);let n=e.filter(e=>e!==t).map(e=>`size-${e}`);document.documentElement.classList.remove(...n)}return y(()=>k.size,e=>{F(e)},{immediate:!0,flush:`sync`}),b(()=>{P.value=N()}),(e,i)=>(h(),o(v(C),p(v(A),{"icon-render":v(j)}),{default:x(()=>[l(v(w),{id:`__SoybeanUI_themeVars`,as:`style`},{default:x(()=>[c(_(v(P)),1)]),_:1}),l(t,null,{default:x(()=>[l(n,m(d(u.loadingBar)),{default:x(()=>[g(e.$slots,`default`)]),_:3},16)]),_:3}),k.customToast?s(`v-if`,!0):(h(),o(r,m(p({key:0},k.toast)),null,16))]),_:3},16,[`icon-render`]))}});export{k as default};
@@ -1 +1 @@
1
- import{computed as e,toValue as t}from"vue";import{useContext as n}from"@soybeanjs/headless/composables";const[r,i]=n(`UiConfigProvider`);function a(n){let r=i();return e(()=>t(n)||r?.size?.value||`md`)}export{r as provideConfigProviderContext,i as useConfigProvider,a as useThemeSize};
1
+ import"vue";import{useContext as e}from"@soybeanjs/headless/composables";const[t,n]=e(`UiConfigProvider`);export{t as provideConfigProviderContext,n as useConfigProvider};
@@ -1,5 +1,6 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { ToastProviderProps as ToastProviderProps$1 } from "../toast/types.js";
2
+ import { LoadingBarProviderProps } from "../progress/types.js";
3
+ import { ToasterProps as ToasterProps$1 } from "../toast/types.js";
3
4
  import { ConfigProviderProps, PropsToContext } from "@soybeanjs/headless";
4
5
  import { ThemeOptions } from "@soybeanjs/shadcn-theme";
5
6
 
@@ -24,7 +25,18 @@ interface ConfigProviderProps$1 extends ConfigProviderProps {
24
25
  */
25
26
  height?: string;
26
27
  };
27
- toast?: ToastProviderProps$1;
28
+ loadingBar?: LoadingBarProviderProps;
29
+ /** The global toast configuration of your application. This will be inherited by the related components. */
30
+ toast?: Partial<ToasterProps$1>;
31
+ /**
32
+ * Whether to use custom toast rendering. If set to `true`, the `Toaster` will not render the default toast UI, and you can import `Toaster` component to render custom toast UI.
33
+ *
34
+ * [是否使用自定义吐司渲染。如果设置为 `true`,`Toaster` 将不会渲染默认的吐司 UI,你可以导入 `Toaster` 组件来渲染自定义的吐司 UI。]
35
+ *
36
+ * @default false
37
+ * @type boolean
38
+ */
39
+ customToast?: boolean;
28
40
  }
29
41
  //#endregion
30
42
  export { ConfigProviderProps$1 as ConfigProviderProps, type ThemeOptions };
@@ -1 +1 @@
1
- import e from"./context-menu-wrapper.js";import t from"../menu/menu-checkbox-options.js";import{computed as n,createBlock as r,createSlots as i,createVNode 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,usePickProps as y}from"@soybeanjs/headless/composables";const b=o({name:`SContextMenuCheckbox`,__name:`context-menu-checkbox`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},indicatorPosition:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{default:()=>[]},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(o,{emit:b}){let x=o,S=b,C=h(),w=[`dir`,`modal`,`size`,`ui`,`disabled`,`showArrow`,`indicatorPosition`,`triggerProps`,`portalProps`,`contentProps`,`popupProps`,`arrowProps`],T=y(x,[...w]),E=v(x,[...w]),D=_(S),O=n(()=>Object.keys(C).filter(e=>e!==`trigger`));return(n,h)=>(u(),r(e,c(m(T),p(m(D))),{trigger:g(()=>[f(n.$slots,`trigger`)]),default:g(()=>[a(t,c(m(E),{"portal-props":o.portalProps},p(m(D))),i({_:2},[d(O.value,e=>({name:e,fn:g(t=>[f(n.$slots,e,l(s(t)))])}))]),1040,[`portal-props`])]),_:3},16))}});export{b as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuCheckboxCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenuCheckbox`,__name:`context-menu-checkbox`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{default:()=>[]},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`,`indicatorPosition`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
@@ -1,15 +1,12 @@
1
- import { MenuCheckboxOptionData } from "../menu/types.js";
2
- import { ContextMenuCheckboxProps } from "./types.js";
1
+ import { ContextMenuCheckboxProps, ContextMenuCheckboxSlots } from "./types.js";
3
2
  import * as _$vue from "vue";
4
3
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
4
  import { DefinedValue } from "@soybeanjs/headless";
6
5
 
7
6
  //#region src/components/context-menu/context-menu-checkbox.vue.d.ts
8
- declare const __VLS_export: <T extends DefinedValue = DefinedValue, S extends MenuCheckboxOptionData<T> = MenuCheckboxOptionData<T>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
9
- props: _$vue.PublicProps & __VLS_PrettifyLocal<ContextMenuCheckboxProps<T, S> & {
10
- onSelect?: ((item: S, event: Event) => any) | undefined;
11
- "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
12
- onEntryFocus?: ((event: Event) => any) | undefined;
7
+ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<ContextMenuCheckboxProps<T> & {
9
+ onSelect?: ((item: _$_soybeanjs_headless0.MenuCheckboxOptionData<T>, event: Event) => any) | undefined;
13
10
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
14
11
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
15
12
  onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
@@ -17,19 +14,15 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue, S extends Me
17
14
  onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
18
15
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
19
16
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
+ "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
18
+ onEntryFocus?: ((event: Event) => any) | undefined;
20
19
  }> & (typeof globalThis extends {
21
20
  __VLS_PROPS_FALLBACK: infer P;
22
21
  } ? P : {});
23
22
  expose: (exposed: {}) => void;
24
23
  attrs: any;
25
- slots: {
26
- trigger: () => any;
27
- item: (props: S) => any;
28
- 'item-leading': (props: S) => any;
29
- 'item-trailing': (props: S) => any;
30
- 'item-indicator-icon': (props: S) => any;
31
- };
32
- emit: ((evt: "select", item: S, event: Event) => void) & ((evt: "update:modelValue", value: T[]) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
24
+ slots: ContextMenuCheckboxSlots<T>;
25
+ emit: ((evt: "select", item: _$_soybeanjs_headless0.MenuCheckboxOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "update:modelValue", value: T[]) => void) & ((evt: "entryFocus", event: Event) => void);
33
26
  }>) => _$vue.VNode & {
34
27
  __ctx?: Awaited<typeof __VLS_setup>;
35
28
  };
@@ -1 +1 @@
1
- import e from"./context-menu-wrapper.js";import t from"../menu/menu-radio-options.js";import{computed as n,createBlock as r,createSlots as i,createVNode 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,usePickProps as y}from"@soybeanjs/headless/composables";const b=o({name:`SContextMenuRadio`,__name:`context-menu-radio`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},indicatorPosition:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(o,{emit:b}){let x=o,S=b,C=h(),w=[`dir`,`modal`,`size`,`ui`,`disabled`,`indicatorPosition`,`showArrow`,`triggerProps`,`portalProps`,`contentProps`,`popupProps`,`arrowProps`],T=y(x,[...w]),E=v(x,[...w]),D=_(S),O=n(()=>Object.keys(C).filter(e=>e!==`trigger`));return(n,h)=>(u(),r(e,c(m(T),p(m(D))),{trigger:g(()=>[f(n.$slots,`trigger`)]),default:g(()=>[a(t,c(m(E),{"portal-props":o.portalProps},p(m(D))),i({_:2},[d(O.value,e=>({name:e,fn:g(t=>[f(n.$slots,e,l(s(t)))])}))]),1040,[`portal-props`])]),_:3},16))}});export{b as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuRadioCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenuRadio`,__name:`context-menu-radio`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{default:void 0},defaultValue:{},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:modelValue`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`,`indicatorPosition`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};
@@ -1,15 +1,12 @@
1
- import { MenuRadioOptionData } from "../menu/types.js";
2
- import { ContextMenuRadioProps } from "./types.js";
1
+ import { ContextMenuRadioProps, ContextMenuRadioSlots } from "./types.js";
3
2
  import * as _$vue from "vue";
4
3
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
4
  import { AcceptableBooleanValue } from "@soybeanjs/headless";
6
5
 
7
6
  //#region src/components/context-menu/context-menu-radio.vue.d.ts
8
- declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBooleanValue, S extends MenuRadioOptionData<T> = MenuRadioOptionData<T>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
9
- props: _$vue.PublicProps & __VLS_PrettifyLocal<ContextMenuRadioProps<T, S> & {
10
- onSelect?: ((item: S, event: Event) => any) | undefined;
11
- "onUpdate:modelValue"?: ((payload: NonNullable<T>) => any) | undefined;
12
- onEntryFocus?: ((event: Event) => any) | undefined;
7
+ declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBooleanValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<ContextMenuRadioProps<T> & {
9
+ onSelect?: ((item: _$_soybeanjs_headless0.MenuRadioOptionData<T>, event: Event) => any) | undefined;
13
10
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
14
11
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
15
12
  onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
@@ -17,19 +14,15 @@ declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBoolea
17
14
  onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
18
15
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
19
16
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
17
+ "onUpdate:modelValue"?: ((payload: NonNullable<T>) => any) | undefined;
18
+ onEntryFocus?: ((event: Event) => any) | undefined;
20
19
  }> & (typeof globalThis extends {
21
20
  __VLS_PROPS_FALLBACK: infer P;
22
21
  } ? P : {});
23
22
  expose: (exposed: {}) => void;
24
23
  attrs: any;
25
- slots: {
26
- trigger: () => any;
27
- item: (props: S) => any;
28
- 'item-leading': (props: S) => any;
29
- 'item-trailing': (props: S) => any;
30
- 'item-indicator-icon': (props: S) => any;
31
- };
32
- emit: ((evt: "select", item: S, event: Event) => void) & ((evt: "update:modelValue", payload: NonNullable<T>) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
24
+ slots: ContextMenuRadioSlots<T>;
25
+ emit: ((evt: "select", item: _$_soybeanjs_headless0.MenuRadioOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "interactOutside", event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void) & ((evt: "update:modelValue", payload: NonNullable<T>) => void) & ((evt: "entryFocus", event: Event) => void);
33
26
  }>) => _$vue.VNode & {
34
27
  __ctx?: Awaited<typeof __VLS_setup>;
35
28
  };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideMenuExtraUi as t}from"../menu/context.js";import{menuVariants as n}from"../menu/variants.js";import{computed as r,createBlock as i,createCommentVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toHandlers as p,unref as m,withCtx as h}from"vue";import{useForwardListeners as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{ContextMenuArrow as v,ContextMenuContent as y,ContextMenuPortal as b,ContextMenuRoot as x,ContextMenuTrigger as S,Slot as C,provideMenuUi as w}from"@soybeanjs/headless";const T=s({name:`SContextMenuWrapper`,__name:`context-menu-wrapper`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},indicatorPosition:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(s,{emit:T}){let E=s,D=T,O=_(E,[`class`,`size`,`ui`,`disabled`,`indicatorPosition`,`showArrow`,`triggerProps`,`portalProps`,`contentProps`,`popupProps`,`arrowProps`]),k=g(D),A=r(()=>({...E.contentProps,popupProps:E.popupProps??E.contentProps?.popupProps})),j=r(()=>e(n({size:E.size,indicatorPosition:E.indicatorPosition}),E.ui,{popup:E.class}));return w(j),t(j),(e,t)=>(d(),i(m(x),l(m(O),{"onUpdate:open":t[0]||=e=>D(`update:open`,e)}),{default:h(()=>[o(m(S),l(s.triggerProps,{"as-child":``,disabled:s.disabled}),{default:h(()=>[o(m(C),{size:s.size},{default:h(()=>[f(e.$slots,`trigger`)]),_:3},8,[`size`])]),_:3},16,[`disabled`]),o(m(b),u(c(s.portalProps)),{default:h(()=>[o(m(y),l(A.value,p(m(k))),{default:h(()=>[f(e.$slots,`default`),s.showArrow?(d(),i(m(v),u(l({key:0},s.arrowProps)),null,16)):a(`v-if`,!0)]),_:3},16)]),_:3},16)]),_:3},16))}});export{T as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{createBlock as t,defineComponent as n,mergeProps as r,openBlock as i,renderSlot as a,toHandlers as o,unref as s,withCtx as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ContextMenuWrapperCompact as d}from"@soybeanjs/headless";const f=n({name:`SContextMenuWrapper`,__name:`context-menu-wrapper`,props:{class:{},size:{},ui:{},indicatorPosition:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(n,{emit:f}){let p=n,m=f,h=u(p,[`class`,`size`,`ui`,`indicatorPosition`]),g=l(m);return e(()=>p),(e,n)=>(i(),t(s(d),r(s(h),o(s(g))),{trigger:c(()=>[a(e.$slots,`trigger`)]),default:c(()=>[a(e.$slots,`default`)]),_:3},16))}});export{f as default};
@@ -3,14 +3,13 @@ import * as _$vue from "vue";
3
3
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
4
 
5
5
  //#region src/components/context-menu/context-menu-wrapper.vue.d.ts
6
- declare var __VLS_22: {}, __VLS_36: {};
6
+ declare var __VLS_9: {}, __VLS_11: {};
7
7
  type __VLS_Slots = {} & {
8
- trigger?: (props: typeof __VLS_22) => any;
8
+ trigger?: (props: typeof __VLS_9) => any;
9
9
  } & {
10
- default?: (props: typeof __VLS_36) => any;
10
+ default?: (props: typeof __VLS_11) => any;
11
11
  };
12
12
  declare const __VLS_base: _$vue.DefineComponent<ContextMenuWrapperProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
13
- entryFocus: (event: Event) => any;
14
13
  "update:open": (value: boolean) => any;
15
14
  escapeKeyDown: (event: KeyboardEvent) => any;
16
15
  pointerDownOutside: (event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any;
@@ -18,8 +17,8 @@ declare const __VLS_base: _$vue.DefineComponent<ContextMenuWrapperProps, {}, {},
18
17
  interactOutside: (event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any;
19
18
  openAutoFocus: (event: Event) => any;
20
19
  closeAutoFocus: (event: Event) => any;
20
+ entryFocus: (event: Event) => any;
21
21
  }, string, _$vue.PublicProps, Readonly<ContextMenuWrapperProps> & Readonly<{
22
- onEntryFocus?: ((event: Event) => any) | undefined;
23
22
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
24
23
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
25
24
  onPointerDownOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent) => any) | undefined;
@@ -27,6 +26,7 @@ declare const __VLS_base: _$vue.DefineComponent<ContextMenuWrapperProps, {}, {},
27
26
  onInteractOutside?: ((event: _$_soybeanjs_headless0.PointerDownOutsideEvent | _$_soybeanjs_headless0.FocusOutsideEvent) => any) | undefined;
28
27
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
29
28
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
29
+ onEntryFocus?: ((event: Event) => any) | undefined;
30
30
  }>, {
31
31
  modal: boolean;
32
32
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
@@ -1 +1 @@
1
- import e from"../menu/menu-options.js";import t from"./context-menu-wrapper.js";import{computed as n,createBlock as r,createSlots as i,createVNode 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,usePickProps as y}from"@soybeanjs/headless/composables";const b=o({name:`SContextMenu`,__name:`context-menu`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(o,{emit:b}){let x=o,S=b,C=h(),w=[`class`,`dir`,`modal`,`size`,`ui`,`disabled`,`showArrow`,`triggerProps`,`portalProps`,`contentProps`,`popupProps`,`arrowProps`],T=y(x,[...w]),E=v(x,[...w]),D=_(S),O=n(()=>Object.keys(C).filter(e=>e!==`trigger`));return(n,h)=>(u(),r(t,c(m(T),p(m(D))),{trigger:g(()=>[f(n.$slots,`trigger`)]),default:g(()=>[a(e,c(m(E),{"portal-props":o.portalProps},p(m(D))),i({_:2},[d(O.value,e=>({name:e,fn:g(t=>[f(n.$slots,e,l(s(t)))])}))]),1040,[`portal-props`])]),_:3},16))}});export{b as default};
1
+ import{provideMenuUi as e}from"../menu/context.js";import{computed as t,createBlock as n,createSlots as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderList as l,renderSlot as u,toHandlers as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{ContextMenuCompact as _}from"@soybeanjs/headless";import{keysOf as v}from"@soybeanjs/utils";const y=i({name:`SContextMenu`,__name:`context-menu`,props:{class:{},size:{},ui:{},disabled:{type:Boolean},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},pressOpenDelay:{},dir:{},modal:{type:Boolean,default:!0},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(i,{emit:y}){let b=i,x=y,S=p(),C=g(b,[`class`,`size`,`ui`]),w=h(x),T=t(()=>v(S).filter(e=>e!==`trigger`));return e(()=>b),(e,t)=>(c(),n(f(_),o(f(C),d(f(w))),r({trigger:m(()=>[u(e.$slots,`trigger`)]),_:2},[l(T.value,t=>({name:t,fn:m(n=>[u(e.$slots,t,s(a(n)))])}))]),1040))}});export{y as default};