@techsio/ui-kit 0.3.2 → 0.4.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 (447) hide show
  1. package/README.md +59 -6
  2. package/dist/.storybook/decorator.d.ts +12 -0
  3. package/dist/.storybook/decorator.d.ts.map +1 -0
  4. package/dist/.storybook/main.d.ts +4 -0
  5. package/dist/.storybook/main.d.ts.map +1 -0
  6. package/dist/.storybook/preview.d.ts +5 -0
  7. package/dist/.storybook/preview.d.ts.map +1 -0
  8. package/dist/.storybook/test-runner.d.ts +12 -0
  9. package/dist/.storybook/test-runner.d.ts.map +1 -0
  10. package/dist/atoms/badge.js +37 -19
  11. package/dist/atoms/button.js +167 -154
  12. package/dist/atoms/checkbox.js +52 -0
  13. package/dist/atoms/figma/badge.figma.js +33 -0
  14. package/dist/atoms/figma/button.figma.js +76 -0
  15. package/dist/atoms/figma/checkbox.figma.js +35 -0
  16. package/dist/atoms/figma/icon.figma.js +33 -0
  17. package/dist/atoms/figma/image.figma.js +21 -0
  18. package/dist/atoms/figma/input.figma.js +34 -0
  19. package/dist/atoms/figma/label.figma.js +25 -0
  20. package/dist/atoms/figma/link-button.figma.js +42 -0
  21. package/dist/atoms/figma/link.figma.js +15 -0
  22. package/dist/atoms/figma/numeric-input.figma.js +52 -0
  23. package/dist/atoms/figma/rating.figma.js +38 -0
  24. package/dist/atoms/figma/skeleton.figma.js +119 -0
  25. package/dist/atoms/figma/status-text.figma.js +27 -0
  26. package/dist/atoms/figma/textarea.figma.js +38 -0
  27. package/dist/atoms/figma/tooltip.figma.js +47 -0
  28. package/dist/atoms/icon.js +17 -17
  29. package/dist/atoms/image.js +22 -4
  30. package/dist/atoms/input.js +40 -34
  31. package/dist/atoms/label.js +10 -10
  32. package/dist/atoms/link-button.js +19 -18
  33. package/dist/atoms/link.js +6 -4
  34. package/dist/atoms/numeric-input.js +98 -70
  35. package/dist/atoms/rating.js +30 -30
  36. package/dist/atoms/skeleton.js +47 -47
  37. package/dist/atoms/status-text.js +75 -0
  38. package/dist/atoms/textarea.js +48 -42
  39. package/dist/atoms/tooltip.js +17 -17
  40. package/dist/molecules/accordion.js +58 -60
  41. package/dist/molecules/breadcrumb.js +206 -124
  42. package/dist/molecules/carousel.js +139 -87
  43. package/dist/molecules/color-select.js +56 -56
  44. package/dist/molecules/combobox.js +131 -104
  45. package/dist/molecules/dialog.js +97 -97
  46. package/dist/molecules/figma/accordion.figma.js +41 -0
  47. package/dist/molecules/figma/breadcrumb.figma.js +31 -0
  48. package/dist/molecules/figma/carousel.figma.js +34 -0
  49. package/dist/molecules/figma/combobox.figma.js +38 -0
  50. package/dist/molecules/figma/dialog.figma.js +24 -0
  51. package/dist/molecules/figma/form-checkbox.figma.js +41 -0
  52. package/dist/molecules/figma/form-input.figma.js +38 -0
  53. package/dist/molecules/figma/form-numeric-input.figma.js +67 -0
  54. package/dist/molecules/figma/form-textarea.figma.js +38 -0
  55. package/dist/molecules/figma/menu.figma.js +26 -0
  56. package/dist/molecules/figma/pagination.figma.js +22 -0
  57. package/dist/molecules/figma/popover.figma.js +38 -0
  58. package/dist/molecules/figma/product-card.figma.js +34 -0
  59. package/dist/molecules/figma/radio-card.figma.js +35 -0
  60. package/dist/molecules/figma/radio-group.figma.js +45 -0
  61. package/dist/molecules/figma/search-form.figma.js +24 -0
  62. package/dist/molecules/figma/select.figma.js +46 -0
  63. package/dist/molecules/figma/slider.figma.js +30 -0
  64. package/dist/molecules/figma/steps.figma.js +33 -0
  65. package/dist/molecules/figma/switch.figma.js +33 -0
  66. package/dist/molecules/figma/tabs.figma.js +46 -0
  67. package/dist/molecules/figma/toast.figma.js +34 -0
  68. package/dist/molecules/figma/tree-view.figma.js +30 -0
  69. package/dist/molecules/form-checkbox.js +121 -48
  70. package/dist/molecules/form-input.js +15 -27
  71. package/dist/molecules/form-numeric-input.js +11 -24
  72. package/dist/molecules/form-textarea.js +15 -27
  73. package/dist/molecules/menu.js +69 -67
  74. package/dist/molecules/pagination.js +112 -76
  75. package/dist/molecules/phone-input.js +654 -0
  76. package/dist/molecules/popover.js +221 -96
  77. package/dist/molecules/product-card.js +38 -37
  78. package/dist/molecules/radio-card.js +517 -0
  79. package/dist/molecules/radio-group.js +341 -0
  80. package/dist/molecules/search-form.js +170 -91
  81. package/dist/molecules/select.js +369 -141
  82. package/dist/molecules/slider.js +72 -85
  83. package/dist/molecules/steps.js +517 -152
  84. package/dist/molecules/switch.js +37 -43
  85. package/dist/molecules/tabs.js +63 -61
  86. package/dist/molecules/toast.js +32 -32
  87. package/dist/molecules/tree-view.js +89 -83
  88. package/dist/organisms/footer.js +50 -52
  89. package/dist/organisms/gallery.js +244 -0
  90. package/dist/organisms/header.js +60 -58
  91. package/dist/organisms/table.js +52 -52
  92. package/dist/src/atoms/badge.d.ts +27 -7
  93. package/dist/src/atoms/badge.d.ts.map +1 -1
  94. package/dist/src/atoms/button.d.ts +7 -6
  95. package/dist/src/atoms/button.d.ts.map +1 -1
  96. package/dist/src/atoms/checkbox.d.ts +11 -0
  97. package/dist/src/atoms/checkbox.d.ts.map +1 -0
  98. package/dist/src/atoms/figma/badge.figma.d.ts +2 -0
  99. package/dist/src/atoms/figma/badge.figma.d.ts.map +1 -0
  100. package/dist/src/atoms/figma/button.figma.d.ts +2 -0
  101. package/dist/src/atoms/figma/button.figma.d.ts.map +1 -0
  102. package/dist/src/atoms/figma/checkbox.figma.d.ts +2 -0
  103. package/dist/src/atoms/figma/checkbox.figma.d.ts.map +1 -0
  104. package/dist/src/atoms/figma/icon.figma.d.ts +2 -0
  105. package/dist/src/atoms/figma/icon.figma.d.ts.map +1 -0
  106. package/dist/src/atoms/figma/image.figma.d.ts +2 -0
  107. package/dist/src/atoms/figma/image.figma.d.ts.map +1 -0
  108. package/dist/src/atoms/figma/input.figma.d.ts +2 -0
  109. package/dist/src/atoms/figma/input.figma.d.ts.map +1 -0
  110. package/dist/src/atoms/figma/label.figma.d.ts +2 -0
  111. package/dist/src/atoms/figma/label.figma.d.ts.map +1 -0
  112. package/dist/src/atoms/figma/link-button.figma.d.ts +2 -0
  113. package/dist/src/atoms/figma/link-button.figma.d.ts.map +1 -0
  114. package/dist/src/atoms/figma/link.figma.d.ts +2 -0
  115. package/dist/src/atoms/figma/link.figma.d.ts.map +1 -0
  116. package/dist/src/atoms/figma/numeric-input.figma.d.ts +2 -0
  117. package/dist/src/atoms/figma/numeric-input.figma.d.ts.map +1 -0
  118. package/dist/src/atoms/figma/rating.figma.d.ts +2 -0
  119. package/dist/src/atoms/figma/rating.figma.d.ts.map +1 -0
  120. package/dist/src/atoms/figma/skeleton.figma.d.ts +2 -0
  121. package/dist/src/atoms/figma/skeleton.figma.d.ts.map +1 -0
  122. package/dist/src/atoms/figma/status-text.figma.d.ts +2 -0
  123. package/dist/src/atoms/figma/status-text.figma.d.ts.map +1 -0
  124. package/dist/src/atoms/figma/textarea.figma.d.ts +2 -0
  125. package/dist/src/atoms/figma/textarea.figma.d.ts.map +1 -0
  126. package/dist/src/atoms/figma/tooltip.figma.d.ts +2 -0
  127. package/dist/src/atoms/figma/tooltip.figma.d.ts.map +1 -0
  128. package/dist/src/atoms/icon.d.ts +6 -6
  129. package/dist/src/atoms/image.d.ts +35 -9
  130. package/dist/src/atoms/image.d.ts.map +1 -1
  131. package/dist/src/atoms/input.d.ts +3 -3
  132. package/dist/src/atoms/input.d.ts.map +1 -1
  133. package/dist/src/atoms/label.d.ts +2 -2
  134. package/dist/src/atoms/link-button.d.ts +71 -12
  135. package/dist/src/atoms/link-button.d.ts.map +1 -1
  136. package/dist/src/atoms/link.d.ts +5 -5
  137. package/dist/src/atoms/link.d.ts.map +1 -1
  138. package/dist/src/atoms/numeric-input.d.ts +23 -22
  139. package/dist/src/atoms/numeric-input.d.ts.map +1 -1
  140. package/dist/src/atoms/rating.d.ts +6 -5
  141. package/dist/src/atoms/rating.d.ts.map +1 -1
  142. package/dist/src/atoms/skeleton.d.ts +15 -15
  143. package/dist/src/atoms/skeleton.d.ts.map +1 -1
  144. package/dist/src/atoms/status-text.d.ts +97 -0
  145. package/dist/src/atoms/status-text.d.ts.map +1 -0
  146. package/dist/src/atoms/textarea.d.ts +3 -3
  147. package/dist/src/atoms/textarea.d.ts.map +1 -1
  148. package/dist/src/atoms/tooltip.d.ts +3 -3
  149. package/dist/src/atoms/tooltip.d.ts.map +1 -1
  150. package/dist/src/molecules/accordion.d.ts +14 -13
  151. package/dist/src/molecules/accordion.d.ts.map +1 -1
  152. package/dist/src/molecules/breadcrumb.d.ts +132 -35
  153. package/dist/src/molecules/breadcrumb.d.ts.map +1 -1
  154. package/dist/src/molecules/carousel.d.ts +67 -16
  155. package/dist/src/molecules/carousel.d.ts.map +1 -1
  156. package/dist/src/molecules/color-select.d.ts +4 -4
  157. package/dist/src/molecules/combobox.d.ts +36 -9
  158. package/dist/src/molecules/combobox.d.ts.map +1 -1
  159. package/dist/src/molecules/dialog.d.ts +3 -3
  160. package/dist/src/molecules/dialog.d.ts.map +1 -1
  161. package/dist/src/molecules/figma/accordion.figma.d.ts +2 -0
  162. package/dist/src/molecules/figma/accordion.figma.d.ts.map +1 -0
  163. package/dist/src/molecules/figma/breadcrumb.figma.d.ts +2 -0
  164. package/dist/src/molecules/figma/breadcrumb.figma.d.ts.map +1 -0
  165. package/dist/src/molecules/figma/carousel.figma.d.ts +2 -0
  166. package/dist/src/molecules/figma/carousel.figma.d.ts.map +1 -0
  167. package/dist/src/molecules/figma/combobox.figma.d.ts +2 -0
  168. package/dist/src/molecules/figma/combobox.figma.d.ts.map +1 -0
  169. package/dist/src/molecules/figma/dialog.figma.d.ts +2 -0
  170. package/dist/src/molecules/figma/dialog.figma.d.ts.map +1 -0
  171. package/dist/src/molecules/figma/form-checkbox.figma.d.ts +2 -0
  172. package/dist/src/molecules/figma/form-checkbox.figma.d.ts.map +1 -0
  173. package/dist/src/molecules/figma/form-input.figma.d.ts +2 -0
  174. package/dist/src/molecules/figma/form-input.figma.d.ts.map +1 -0
  175. package/dist/src/molecules/figma/form-numeric-input.figma.d.ts +2 -0
  176. package/dist/src/molecules/figma/form-numeric-input.figma.d.ts.map +1 -0
  177. package/dist/src/molecules/figma/form-textarea.figma.d.ts +2 -0
  178. package/dist/src/molecules/figma/form-textarea.figma.d.ts.map +1 -0
  179. package/dist/src/molecules/figma/menu.figma.d.ts +2 -0
  180. package/dist/src/molecules/figma/menu.figma.d.ts.map +1 -0
  181. package/dist/src/molecules/figma/pagination.figma.d.ts +2 -0
  182. package/dist/src/molecules/figma/pagination.figma.d.ts.map +1 -0
  183. package/dist/src/molecules/figma/popover.figma.d.ts +2 -0
  184. package/dist/src/molecules/figma/popover.figma.d.ts.map +1 -0
  185. package/dist/src/molecules/figma/product-card.figma.d.ts +2 -0
  186. package/dist/src/molecules/figma/product-card.figma.d.ts.map +1 -0
  187. package/dist/src/molecules/figma/radio-card.figma.d.ts +2 -0
  188. package/dist/src/molecules/figma/radio-card.figma.d.ts.map +1 -0
  189. package/dist/src/molecules/figma/radio-group.figma.d.ts +2 -0
  190. package/dist/src/molecules/figma/radio-group.figma.d.ts.map +1 -0
  191. package/dist/src/molecules/figma/search-form.figma.d.ts +2 -0
  192. package/dist/src/molecules/figma/search-form.figma.d.ts.map +1 -0
  193. package/dist/src/molecules/figma/select.figma.d.ts +2 -0
  194. package/dist/src/molecules/figma/select.figma.d.ts.map +1 -0
  195. package/dist/src/molecules/figma/slider.figma.d.ts +2 -0
  196. package/dist/src/molecules/figma/slider.figma.d.ts.map +1 -0
  197. package/dist/src/molecules/figma/steps.figma.d.ts +2 -0
  198. package/dist/src/molecules/figma/steps.figma.d.ts.map +1 -0
  199. package/dist/src/molecules/figma/switch.figma.d.ts +2 -0
  200. package/dist/src/molecules/figma/switch.figma.d.ts.map +1 -0
  201. package/dist/src/molecules/figma/tabs.figma.d.ts +2 -0
  202. package/dist/src/molecules/figma/tabs.figma.d.ts.map +1 -0
  203. package/dist/src/molecules/figma/toast.figma.d.ts +2 -0
  204. package/dist/src/molecules/figma/toast.figma.d.ts.map +1 -0
  205. package/dist/src/molecules/figma/tree-view.figma.d.ts +2 -0
  206. package/dist/src/molecules/figma/tree-view.figma.d.ts.map +1 -0
  207. package/dist/src/molecules/form-checkbox.d.ts +22 -12
  208. package/dist/src/molecules/form-checkbox.d.ts.map +1 -1
  209. package/dist/src/molecules/form-input.d.ts +8 -6
  210. package/dist/src/molecules/form-input.d.ts.map +1 -1
  211. package/dist/src/molecules/form-numeric-input.d.ts +6 -6
  212. package/dist/src/molecules/form-numeric-input.d.ts.map +1 -1
  213. package/dist/src/molecules/form-textarea.d.ts +8 -6
  214. package/dist/src/molecules/form-textarea.d.ts.map +1 -1
  215. package/dist/src/molecules/menu.d.ts +11 -11
  216. package/dist/src/molecules/menu.d.ts.map +1 -1
  217. package/dist/src/molecules/pagination.d.ts +37 -9
  218. package/dist/src/molecules/pagination.d.ts.map +1 -1
  219. package/dist/src/molecules/phone-input.d.ts +246 -0
  220. package/dist/src/molecules/phone-input.d.ts.map +1 -0
  221. package/dist/src/molecules/popover.d.ts +76 -24
  222. package/dist/src/molecules/popover.d.ts.map +1 -1
  223. package/dist/src/molecules/product-card.d.ts +11 -10
  224. package/dist/src/molecules/product-card.d.ts.map +1 -1
  225. package/dist/src/molecules/radio-card.d.ts +429 -0
  226. package/dist/src/molecules/radio-card.d.ts.map +1 -0
  227. package/dist/src/molecules/radio-group.d.ts +245 -0
  228. package/dist/src/molecules/radio-group.d.ts.map +1 -0
  229. package/dist/src/molecules/search-form.d.ts +94 -27
  230. package/dist/src/molecules/search-form.d.ts.map +1 -1
  231. package/dist/src/molecules/select.d.ts +124 -30
  232. package/dist/src/molecules/select.d.ts.map +1 -1
  233. package/dist/src/molecules/slider.d.ts +9 -12
  234. package/dist/src/molecules/slider.d.ts.map +1 -1
  235. package/dist/src/molecules/steps.d.ts +236 -64
  236. package/dist/src/molecules/steps.d.ts.map +1 -1
  237. package/dist/src/molecules/switch.d.ts +25 -25
  238. package/dist/src/molecules/switch.d.ts.map +1 -1
  239. package/dist/src/molecules/tabs.d.ts +10 -10
  240. package/dist/src/molecules/tabs.d.ts.map +1 -1
  241. package/dist/src/molecules/toast.d.ts +27 -27
  242. package/dist/src/molecules/tree-view.d.ts +14 -14
  243. package/dist/src/molecules/tree-view.d.ts.map +1 -1
  244. package/dist/src/organisms/footer.d.ts +15 -6
  245. package/dist/src/organisms/footer.d.ts.map +1 -1
  246. package/dist/src/organisms/gallery.d.ts +147 -0
  247. package/dist/src/organisms/gallery.d.ts.map +1 -0
  248. package/dist/src/organisms/header.d.ts +9 -9
  249. package/dist/src/organisms/header.d.ts.map +1 -1
  250. package/dist/src/organisms/table.d.ts +10 -10
  251. package/dist/src/organisms/table.d.ts.map +1 -1
  252. package/dist/src/templates/accordion.d.ts +3 -3
  253. package/dist/src/templates/breadcrumb.d.ts +28 -0
  254. package/dist/src/templates/breadcrumb.d.ts.map +1 -0
  255. package/dist/src/templates/carousel.d.ts +4 -4
  256. package/dist/src/templates/carousel.d.ts.map +1 -1
  257. package/dist/src/templates/gallery.d.ts +43 -0
  258. package/dist/src/templates/gallery.d.ts.map +1 -0
  259. package/dist/src/templates/numeric-input.d.ts +5 -5
  260. package/dist/src/templates/popover.d.ts +19 -0
  261. package/dist/src/templates/popover.d.ts.map +1 -0
  262. package/dist/src/templates/product-card.d.ts +4 -4
  263. package/dist/src/templates/select.d.ts +22 -0
  264. package/dist/src/templates/select.d.ts.map +1 -0
  265. package/dist/src/templates/tabs.d.ts +4 -4
  266. package/dist/src/types/zag.d.ts +19 -18
  267. package/dist/src/types/zag.d.ts.map +1 -1
  268. package/dist/src/utils.d.ts +1 -1
  269. package/dist/src/utils.d.ts.map +1 -1
  270. package/dist/stories/atoms/badge.stories.d.ts +12 -0
  271. package/dist/stories/atoms/badge.stories.d.ts.map +1 -0
  272. package/dist/stories/atoms/button.stories.d.ts +12 -0
  273. package/dist/stories/atoms/button.stories.d.ts.map +1 -0
  274. package/dist/stories/atoms/checkbox.stories.d.ts +56 -0
  275. package/dist/stories/atoms/checkbox.stories.d.ts.map +1 -0
  276. package/dist/stories/atoms/icon.stories.d.ts +11 -0
  277. package/dist/stories/atoms/icon.stories.d.ts.map +1 -0
  278. package/dist/stories/atoms/image.stories.d.ts +8 -0
  279. package/dist/stories/atoms/image.stories.d.ts.map +1 -0
  280. package/dist/stories/atoms/input.stories.d.ts +8 -0
  281. package/dist/stories/atoms/input.stories.d.ts.map +1 -0
  282. package/dist/stories/atoms/numeric-input.stories.d.ts +23 -0
  283. package/dist/stories/atoms/numeric-input.stories.d.ts.map +1 -0
  284. package/dist/stories/atoms/rating.stories.d.ts +10 -0
  285. package/dist/stories/atoms/rating.stories.d.ts.map +1 -0
  286. package/dist/stories/atoms/skeleton.stories.d.ts +34 -0
  287. package/dist/stories/atoms/skeleton.stories.d.ts.map +1 -0
  288. package/dist/stories/atoms/status-text.stories.d.ts +15 -0
  289. package/dist/stories/atoms/status-text.stories.d.ts.map +1 -0
  290. package/dist/stories/atoms/textarea.stories.d.ts +12 -0
  291. package/dist/stories/atoms/textarea.stories.d.ts.map +1 -0
  292. package/dist/stories/atoms/tooltip.stories.d.ts +28 -0
  293. package/dist/stories/atoms/tooltip.stories.d.ts.map +1 -0
  294. package/dist/stories/helpers/icon-options.d.ts +4 -0
  295. package/dist/stories/helpers/icon-options.d.ts.map +1 -0
  296. package/dist/stories/molecules/accordion.stories.d.ts +14 -0
  297. package/dist/stories/molecules/accordion.stories.d.ts.map +1 -0
  298. package/dist/stories/molecules/breadcrumb.stories.d.ts +14 -0
  299. package/dist/stories/molecules/breadcrumb.stories.d.ts.map +1 -0
  300. package/dist/stories/molecules/carousel.stories.d.ts +19 -0
  301. package/dist/stories/molecules/carousel.stories.d.ts.map +1 -0
  302. package/dist/stories/molecules/color-select.stories.d.ts +12 -0
  303. package/dist/stories/molecules/color-select.stories.d.ts.map +1 -0
  304. package/dist/stories/molecules/combobox.stories.d.ts +11 -0
  305. package/dist/stories/molecules/combobox.stories.d.ts.map +1 -0
  306. package/dist/stories/molecules/dialog.stories.d.ts +19 -0
  307. package/dist/stories/molecules/dialog.stories.d.ts.map +1 -0
  308. package/dist/stories/molecules/form-checkbox.stories.d.ts +17 -0
  309. package/dist/stories/molecules/form-checkbox.stories.d.ts.map +1 -0
  310. package/dist/stories/molecules/form-input.stories.d.ts +12 -0
  311. package/dist/stories/molecules/form-input.stories.d.ts.map +1 -0
  312. package/dist/stories/molecules/form-numeric-input.stories.d.ts +17 -0
  313. package/dist/stories/molecules/form-numeric-input.stories.d.ts.map +1 -0
  314. package/dist/stories/molecules/form-textarea.stories.d.ts +12 -0
  315. package/dist/stories/molecules/form-textarea.stories.d.ts.map +1 -0
  316. package/dist/stories/molecules/menu.stories.d.ts +22 -0
  317. package/dist/stories/molecules/menu.stories.d.ts.map +1 -0
  318. package/dist/stories/molecules/pagination.stories.d.ts +13 -0
  319. package/dist/stories/molecules/pagination.stories.d.ts.map +1 -0
  320. package/dist/stories/molecules/phone-input.stories.d.ts +19 -0
  321. package/dist/stories/molecules/phone-input.stories.d.ts.map +1 -0
  322. package/dist/stories/molecules/popover.stories.d.ts +140 -0
  323. package/dist/stories/molecules/popover.stories.d.ts.map +1 -0
  324. package/dist/stories/molecules/product-card.stories.d.ts +41 -0
  325. package/dist/stories/molecules/product-card.stories.d.ts.map +1 -0
  326. package/dist/stories/molecules/radio-card.stories.d.ts +13 -0
  327. package/dist/stories/molecules/radio-card.stories.d.ts.map +1 -0
  328. package/dist/stories/molecules/radio-group.stories.d.ts +13 -0
  329. package/dist/stories/molecules/radio-group.stories.d.ts.map +1 -0
  330. package/dist/stories/molecules/search-form.stories.d.ts +16 -0
  331. package/dist/stories/molecules/search-form.stories.d.ts.map +1 -0
  332. package/dist/stories/molecules/select.stories.d.ts +19 -0
  333. package/dist/stories/molecules/select.stories.d.ts.map +1 -0
  334. package/dist/stories/molecules/slider.stories.d.ts +19 -0
  335. package/dist/stories/molecules/slider.stories.d.ts.map +1 -0
  336. package/dist/stories/molecules/steps.stories.d.ts +19 -0
  337. package/dist/stories/molecules/steps.stories.d.ts.map +1 -0
  338. package/dist/stories/molecules/switch.stories.d.ts +13 -0
  339. package/dist/stories/molecules/switch.stories.d.ts.map +1 -0
  340. package/dist/stories/molecules/tabs.stories.d.ts +18 -0
  341. package/dist/stories/molecules/tabs.stories.d.ts.map +1 -0
  342. package/dist/stories/molecules/toast.stories.d.ts +11 -0
  343. package/dist/stories/molecules/toast.stories.d.ts.map +1 -0
  344. package/dist/stories/molecules/tree-view.stories.d.ts +17 -0
  345. package/dist/stories/molecules/tree-view.stories.d.ts.map +1 -0
  346. package/dist/stories/organisms/footer.stories.d.ts +12 -0
  347. package/dist/stories/organisms/footer.stories.d.ts.map +1 -0
  348. package/dist/stories/organisms/gallery.stories.d.ts +73 -0
  349. package/dist/stories/organisms/gallery.stories.d.ts.map +1 -0
  350. package/dist/stories/organisms/header.stories.d.ts +12 -0
  351. package/dist/stories/organisms/header.stories.d.ts.map +1 -0
  352. package/dist/stories/organisms/table.stories.d.ts +56 -0
  353. package/dist/stories/organisms/table.stories.d.ts.map +1 -0
  354. package/dist/stories/overview/apca-contrast-test.stories.d.ts +8 -0
  355. package/dist/stories/overview/apca-contrast-test.stories.d.ts.map +1 -0
  356. package/dist/stories/overview/color-palette.stories.d.ts +8 -0
  357. package/dist/stories/overview/color-palette.stories.d.ts.map +1 -0
  358. package/dist/stories/overview/component-comparison.stories.d.ts +6 -0
  359. package/dist/stories/overview/component-comparison.stories.d.ts.map +1 -0
  360. package/dist/stories/templates/accordion.stories.d.ts +8 -0
  361. package/dist/stories/templates/accordion.stories.d.ts.map +1 -0
  362. package/dist/stories/templates/breadcrumb.stories.d.ts +12 -0
  363. package/dist/stories/templates/breadcrumb.stories.d.ts.map +1 -0
  364. package/dist/stories/templates/carousel.stories.d.ts +8 -0
  365. package/dist/stories/templates/carousel.stories.d.ts.map +1 -0
  366. package/dist/stories/templates/comprehensive-form.stories.d.ts +26 -0
  367. package/dist/stories/templates/comprehensive-form.stories.d.ts.map +1 -0
  368. package/dist/stories/templates/gallery.stories.d.ts +7 -0
  369. package/dist/stories/templates/gallery.stories.d.ts.map +1 -0
  370. package/dist/stories/templates/numeric-input.stories.d.ts +8 -0
  371. package/dist/stories/templates/numeric-input.stories.d.ts.map +1 -0
  372. package/dist/stories/templates/popover.stories.d.ts +55 -0
  373. package/dist/stories/templates/popover.stories.d.ts.map +1 -0
  374. package/dist/stories/templates/product-card.stories.d.ts +10 -0
  375. package/dist/stories/templates/product-card.stories.d.ts.map +1 -0
  376. package/dist/stories/templates/select.stories.d.ts +10 -0
  377. package/dist/stories/templates/select.stories.d.ts.map +1 -0
  378. package/dist/stories/templates/tabs.stories.d.ts +8 -0
  379. package/dist/stories/templates/tabs.stories.d.ts.map +1 -0
  380. package/dist/templates/accordion.js +9 -9
  381. package/dist/templates/breadcrumb.js +78 -0
  382. package/dist/templates/carousel.js +13 -15
  383. package/dist/templates/gallery.js +89 -0
  384. package/dist/templates/numeric-input.js +4 -4
  385. package/dist/templates/popover.js +35 -0
  386. package/dist/templates/product-card.js +10 -10
  387. package/dist/templates/select.js +43 -0
  388. package/dist/templates/tabs.js +8 -8
  389. package/dist/test/visual.spec.d.ts +2 -0
  390. package/dist/test/visual.spec.d.ts.map +1 -0
  391. package/dist/utils.js +1 -1
  392. package/package.json +52 -32
  393. package/src/tokens/_base.css +3 -3
  394. package/src/tokens/_layout.css +4 -0
  395. package/src/tokens/_semantic.css +49 -10
  396. package/src/tokens/_tokens-base.css +67 -0
  397. package/src/tokens/_typography.css +36 -6
  398. package/src/tokens/components/_form-control.css +67 -0
  399. package/src/tokens/components/atoms/_badge.css +16 -5
  400. package/src/tokens/components/atoms/_button.css +16 -10
  401. package/src/tokens/components/atoms/_checkbox.css +52 -0
  402. package/src/tokens/components/atoms/_icon.css +90 -2
  403. package/src/tokens/components/atoms/_image.css +5 -0
  404. package/src/tokens/components/atoms/_input.css +11 -32
  405. package/src/tokens/components/atoms/_label.css +11 -0
  406. package/src/tokens/components/atoms/_numeric-input.css +27 -13
  407. package/src/tokens/components/atoms/_rating.css +2 -2
  408. package/src/tokens/components/atoms/_status-text.css +32 -0
  409. package/src/tokens/components/atoms/_textarea.css +15 -17
  410. package/src/tokens/components/components.css +10 -1
  411. package/src/tokens/components/molecules/_accordion.css +1 -8
  412. package/src/tokens/components/molecules/_breadcrumb.css +42 -20
  413. package/src/tokens/components/molecules/_carousel.css +10 -2
  414. package/src/tokens/components/molecules/_color-select.css +3 -3
  415. package/src/tokens/components/molecules/_combobox.css +15 -21
  416. package/src/tokens/components/molecules/_dialog.css +0 -1
  417. package/src/tokens/components/molecules/_menu.css +0 -1
  418. package/src/tokens/components/molecules/_pagination.css +3 -3
  419. package/src/tokens/components/molecules/_phone-input.css +63 -0
  420. package/src/tokens/components/molecules/_popover.css +3 -0
  421. package/src/tokens/components/molecules/_product-card.css +9 -1
  422. package/src/tokens/components/molecules/_radio-card.css +197 -0
  423. package/src/tokens/components/molecules/_radio-group.css +150 -0
  424. package/src/tokens/components/molecules/_search-form.css +7 -3
  425. package/src/tokens/components/molecules/_select.css +41 -20
  426. package/src/tokens/components/molecules/_steps.css +115 -34
  427. package/src/tokens/components/molecules/_toast.css +5 -5
  428. package/src/tokens/components/molecules/_tree-view.css +5 -6
  429. package/src/tokens/components/organisms/_footer.css +1 -6
  430. package/src/tokens/components/organisms/_gallery.css +35 -0
  431. package/src/tokens/components/organisms/_header.css +8 -0
  432. package/src/tokens/figma/dark/variables.css +1406 -0
  433. package/src/tokens/figma/light/variables.css +1406 -0
  434. package/src/tokens/index.css +1 -65
  435. package/src/tokens/theme.css +95 -0
  436. package/src/tokens/tokens-only.css +1 -64
  437. package/dist/atoms/error-text.js +0 -38
  438. package/dist/atoms/extra-text.js +0 -27
  439. package/dist/molecules/checkbox.js +0 -98
  440. package/dist/src/atoms/error-text.d.ts +0 -29
  441. package/dist/src/atoms/error-text.d.ts.map +0 -1
  442. package/dist/src/atoms/extra-text.d.ts +0 -27
  443. package/dist/src/atoms/extra-text.d.ts.map +0 -1
  444. package/dist/src/molecules/checkbox.d.ts +0 -19
  445. package/dist/src/molecules/checkbox.d.ts.map +0 -1
  446. package/src/tokens/components/molecules/_checkbox.css +0 -34
  447. package/src/tokens/components/molecules/index.css +0 -2
@@ -1,105 +1,161 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Portal, normalizeProps, useMachine } from "@zag-js/react";
3
3
  import { collection as select_collection, connect, machine } from "@zag-js/select";
4
- import { useId } from "react";
4
+ import { createContext, useContext, useId } from "react";
5
5
  import { tv } from "tailwind-variants";
6
6
  import { Button } from "../atoms/button.js";
7
- import { ErrorText } from "../atoms/error-text.js";
8
- import { ExtraText } from "../atoms/extra-text.js";
9
7
  import { Icon } from "../atoms/icon.js";
10
8
  import { Label } from "../atoms/label.js";
9
+ import { StatusText } from "../atoms/status-text.js";
11
10
  const selectVariants = tv({
12
11
  slots: {
13
12
  root: [
14
- 'relative',
15
- 'flex flex-col gap-select-root',
16
- 'w-full'
13
+ "relative",
14
+ "flex flex-col gap-select-root",
15
+ "w-full"
17
16
  ],
18
17
  control: [
19
- 'flex relative items-center justify-between',
20
- 'w-full'
18
+ "relative flex items-center justify-between",
19
+ "w-full"
21
20
  ],
22
21
  positioner: [
23
- 'w-(--reference-width)',
24
- 'isolate z-(--z-index)'
22
+ "w-(--reference-width)",
23
+ "isolate z-(--z-index)"
25
24
  ],
26
25
  trigger: [
27
- 'w-full',
28
- 'p-select-trigger',
29
- 'border border-select-trigger-border rounded-select',
30
- 'text-select-trigger-size text-left',
31
- 'hover:bg-select-trigger-bg-hover',
32
- 'focus:outline-none focus:border-select-trigger-border-focus',
33
- 'data-[disabled]:cursor-not-allowed',
34
- 'data-[disabled]:bg-select-bg-disabled',
35
- 'data-[disabled]:text-select-fg-disabled',
36
- 'data-[disabled]:border-select-border-disabled',
37
- 'data-[invalid]:border-select-danger data-[invalid]:ring-select-danger'
26
+ "form-control-base w-full",
27
+ "border-select-trigger-border",
28
+ "group",
29
+ "flex items-center justify-between gap-0",
30
+ "font-normal",
31
+ "text-left",
32
+ "hover:bg-select-trigger-bg-hover",
33
+ "hover:border-select-trigger-border-hover",
34
+ "focus:border-select-trigger-border-focus",
35
+ "focus-visible:outline-(style:--default-ring-style) focus-visible:outline-(length:--default-ring-width)",
36
+ "focus-visible:outline-select-ring",
37
+ "focus-visible:outline-offset-(length:--default-ring-offset)",
38
+ "data-[disabled]:cursor-not-allowed",
39
+ "data-[disabled]:bg-select-bg-disabled",
40
+ "data-[disabled]:text-select-fg-disabled",
41
+ "data-[disabled]:border-select-border-disabled",
42
+ "data-[validation=error]:border-(length:--border-width-validation)",
43
+ "data-[validation=error]:border-select-danger data-[validation=error]:outline-select-danger",
44
+ "data-[validation=error]:outline-(style:--default-ring-style) data-[validation=error]:outline-(length:--default-ring-width)",
45
+ "data-[validation=error]:outline-offset-(length:--default-ring-offset)",
46
+ "data-[validation=success]:border-(length:--border-width-validation)",
47
+ "data-[validation=success]:border-select-success data-[validation=success]:outline-select-success",
48
+ "data-[validation=success]:outline-(style:--default-ring-style) data-[validation=success]:outline-(length:--default-ring-width)",
49
+ "data-[validation=success]:outline-offset-(length:--default-ring-offset)",
50
+ "data-[validation=warning]:border-(length:--border-width-validation)",
51
+ "data-[validation=warning]:border-select-warning data-[validation=warning]:outline-select-warning",
52
+ "data-[validation=warning]:outline-(style:--default-ring-style) data-[validation=warning]:outline-(length:--default-ring-width)",
53
+ "data-[validation=warning]:outline-offset-(length:--default-ring-offset)",
54
+ "transition-colors duration-200 motion-reduce:transition-none"
38
55
  ],
39
56
  clearTrigger: [
40
- 'absolute right-select-right h-full',
41
- 'p-select-clear-trigger',
42
- 'hover:bg-select-clear-trigger-bg',
43
- 'text-select-clear-trigger-fg hover:text-select-danger',
44
- 'focus:text-select-danger',
45
- 'focus:outline-none focus:ring-offset-transparent focus:ring-transparent'
57
+ "absolute right-select-right h-full",
58
+ "p-select-clear-trigger",
59
+ "hover:bg-select-clear-trigger-bg",
60
+ "text-select-clear-trigger-fg hover:text-select-danger",
61
+ "focus:text-select-danger",
62
+ "focus-visible:outline-(style:--default-ring-style) focus-visible:outline-(length:--default-ring-width)",
63
+ "focus-visible:outline-ring",
64
+ "focus-visible:outline-offset-(length:--default-ring-offset)",
65
+ "transition-colors duration-200 motion-reduce:transition-none"
46
66
  ],
47
67
  content: [
48
- 'bg-select-content-bg border border-select-content-border',
49
- 'rounded-select shadow-select-content max-h-fit',
50
- 'h-[calc(var(--available-height)-var(--spacing-content))]',
51
- 'overflow-auto z-(--z-content)'
68
+ "border border-select-content-border bg-select-content-bg",
69
+ "max-h-fit rounded-select shadow-select-content",
70
+ "h-[calc(var(--available-height)-var(--spacing-content))]",
71
+ "z-(--z-content) overflow-auto",
72
+ "duration-200 ease-out motion-safe:transition-[opacity,display,translate]",
73
+ "transition-discrete",
74
+ "starting:-translate-y-2 starting:opacity-0",
75
+ "data-[state=open]:starting:-translate-y-2 data-[state=open]:starting:opacity-0",
76
+ "data-[state=open]:translate-y-0 data-[state=open]:opacity-100",
77
+ "data-[state=closed]:-translate-y-2 data-[state=closed]:opacity-0"
52
78
  ],
53
79
  item: [
54
- 'flex items-center justify-between',
55
- 'bg-select-item-bg cursor-pointer',
56
- 'p-select-item',
57
- 'text-select-item-fg',
58
- 'hover:bg-select-item-bg-hover',
59
- 'data-[state=checked]:bg-select-item-bg-selected',
60
- 'data-[state=checked]:text-select-item-selected-fg',
61
- 'data-[disabled]:text-select-fg-disabled data-[disabled]:cursor-not-allowed'
80
+ "flex items-center justify-between",
81
+ "cursor-pointer bg-select-item-bg",
82
+ "p-select-item",
83
+ "text-select-item-fg",
84
+ "hover:bg-select-item-bg-hover",
85
+ "data-[highlighted]:bg-select-item-bg-hover",
86
+ "data-[state=checked]:bg-select-item-bg-selected",
87
+ "data-[state=checked]:text-select-item-selected-fg",
88
+ "data-[disabled]:cursor-not-allowed data-[disabled]:text-select-fg-disabled",
89
+ "transition-colors duration-200 motion-reduce:transition-none"
62
90
  ],
63
91
  itemIndicator: [
64
- 'text-select-indicator'
92
+ "text-select-indicator"
65
93
  ],
66
- value: [
67
- 'flex-grow truncate data-[placeholder]:text-select-placeholder'
94
+ itemText: [
95
+ "flex-grow"
96
+ ],
97
+ itemGroup: [
98
+ ""
99
+ ],
100
+ itemGroupLabel: [
101
+ "px-select-item",
102
+ "font-medium text-select-fg-disabled"
103
+ ],
104
+ valueText: [
105
+ "flex-grow truncate font-normal",
106
+ "data-[placeholder]:font-normal data-[placeholder]:text-select-placeholder"
68
107
  ]
69
108
  },
70
109
  variants: {
71
110
  size: {
72
111
  xs: {
73
- trigger: 'text-select-xs',
74
- item: 'text-select-xs',
75
- value: 'text-select-xs'
112
+ trigger: "p-select-trigger-sm text-select-trigger-xs",
113
+ item: "text-select-item-xs",
114
+ valueText: "text-select-value-xs",
115
+ itemGroupLabel: "text-select-item-group-label-xs"
76
116
  },
77
117
  sm: {
78
- trigger: 'text-select-sm',
79
- item: 'text-select-sm',
80
- value: 'text-select-sm'
118
+ trigger: "h-form-control-sm rounded-select-sm p-select-trigger-sm text-select-trigger-sm",
119
+ item: "text-select-item-sm",
120
+ valueText: "text-select-value-sm",
121
+ itemGroupLabel: "text-select-item-group-label-sm"
81
122
  },
82
123
  md: {
83
- trigger: 'text-select-md',
84
- item: 'text-select-md',
85
- value: 'text-select-md'
124
+ trigger: "h-form-control-md rounded-select-md p-select-trigger-md text-select-trigger-md",
125
+ item: "text-select-item-md",
126
+ valueText: "text-select-value-md",
127
+ itemGroupLabel: "text-select-item-group-label-md"
86
128
  },
87
129
  lg: {
88
- trigger: 'text-select-lg',
89
- item: 'text-select-lg',
90
- value: 'text-select-lg'
130
+ trigger: "p-select-trigger-md text-select-trigger-lg",
131
+ item: "text-select-item-lg",
132
+ valueText: "text-select-value-lg",
133
+ itemGroupLabel: "text-select-item-group-label-lg"
91
134
  }
92
135
  }
93
136
  },
94
137
  defaultVariants: {
95
- size: 'md'
138
+ size: "md"
96
139
  }
97
140
  });
98
- function Select({ options, label, placeholder = 'Select an option', size = 'md', value, defaultValue, multiple = false, clearIcon = true, disabled = false, invalid = false, required = false, readOnly = false, errorText, helperText, closeOnSelect = true, loopFocus = true, name, form, onValueChange, onOpenChange, onHighlightChange, onSelect, className, id: providedId }) {
141
+ const SelectContext = /*#__PURE__*/ createContext(null);
142
+ function useSelectContext() {
143
+ const context = useContext(SelectContext);
144
+ if (!context) throw new Error("Select components must be used within Select.Root");
145
+ return context;
146
+ }
147
+ const SelectItemContext = /*#__PURE__*/ createContext(null);
148
+ function useSelectItemContext() {
149
+ const context = useContext(SelectItemContext);
150
+ if (!context) throw new Error("Select.Item components must be used within Select.Item");
151
+ return context;
152
+ }
153
+ function Select({ items, id: providedId, size = "md", value, defaultValue, multiple = false, disabled = false, validateStatus = "default", required = false, readOnly = false, closeOnSelect = true, loopFocus = true, name, form, onValueChange, onOpenChange, onHighlightChange, className, children, ref }) {
99
154
  const generatedId = useId();
100
155
  const id = providedId || generatedId;
156
+ const invalid = "error" === validateStatus;
101
157
  const collection = select_collection({
102
- items: options,
158
+ items,
103
159
  itemToString: (item)=>item.displayValue || item.value,
104
160
  itemToValue: (item)=>item.value,
105
161
  isItemDisabled: (item)=>!!item.disabled
@@ -120,101 +176,273 @@ function Select({ options, label, placeholder = 'Select an option', size = 'md',
120
176
  value,
121
177
  onValueChange,
122
178
  onOpenChange,
123
- onHighlightChange,
124
- onSelect
179
+ onHighlightChange
125
180
  });
126
181
  const api = connect(service, normalizeProps);
127
- const { root, control, trigger, clearTrigger, content, positioner, item, itemIndicator, value: valueSlot } = selectVariants({
182
+ const styles = selectVariants({
128
183
  size
129
184
  });
130
- return /*#__PURE__*/ jsxs(Fragment, {
185
+ return /*#__PURE__*/ jsxs(SelectContext.Provider, {
186
+ value: {
187
+ api,
188
+ size,
189
+ items,
190
+ validateStatus
191
+ },
131
192
  children: [
132
193
  /*#__PURE__*/ jsx("select", {
133
194
  ...api.getHiddenSelectProps(),
134
- children: options.map((option)=>/*#__PURE__*/ jsx("option", {
135
- value: option.value,
136
- disabled: option.disabled,
137
- children: option.displayValue || option.value
138
- }, option.value))
195
+ children: items.map((item)=>/*#__PURE__*/ jsx("option", {
196
+ disabled: item.disabled,
197
+ value: item.value,
198
+ children: item.displayValue || item.value
199
+ }, item.value))
139
200
  }),
140
- /*#__PURE__*/ jsxs("div", {
141
- className: root({
201
+ /*#__PURE__*/ jsx("div", {
202
+ className: styles.root({
142
203
  className
143
204
  }),
205
+ ref: ref,
144
206
  ...api.getRootProps(),
145
- children: [
146
- label && /*#__PURE__*/ jsx(Label, {
147
- ...api.getLabelProps(),
148
- children: label
149
- }),
150
- /*#__PURE__*/ jsxs("div", {
151
- className: control(),
152
- ...api.getControlProps(),
153
- children: [
154
- /*#__PURE__*/ jsx(Button, {
155
- theme: "borderless",
156
- className: trigger(),
157
- ...api.getTriggerProps(),
158
- icon: api.open ? 'token-icon-select-indicator-open' : 'token-icon-select-indicator',
159
- iconPosition: "right",
160
- children: /*#__PURE__*/ jsx("span", {
161
- className: valueSlot(),
162
- "data-placeholder": 0 === api.value.length,
163
- children: api.value.length > 0 ? options.find((option)=>option.value === api.value[0])?.label : placeholder
164
- })
165
- }),
166
- clearIcon && /*#__PURE__*/ jsx(Button, {
167
- theme: "borderless",
168
- ...api.getClearTriggerProps(),
169
- className: clearTrigger(),
170
- "aria-label": "Clear selection",
171
- icon: "token-icon-select-clear"
172
- })
173
- ]
174
- }),
175
- /*#__PURE__*/ jsx(Portal, {
176
- children: /*#__PURE__*/ jsx("div", {
177
- className: positioner(),
178
- ...api.getPositionerProps(),
179
- children: /*#__PURE__*/ jsx("ul", {
180
- className: content(),
181
- ...api.getContentProps(),
182
- children: options.map((option)=>/*#__PURE__*/ jsxs("li", {
183
- className: item(),
184
- ...api.getItemProps({
185
- item: option
186
- }),
187
- children: [
188
- /*#__PURE__*/ jsx("span", {
189
- ...api.getItemTextProps({
190
- item: option
191
- }),
192
- children: option.label
193
- }),
194
- /*#__PURE__*/ jsx("span", {
195
- className: itemIndicator(),
196
- ...api.getItemIndicatorProps({
197
- item: option
198
- }),
199
- children: /*#__PURE__*/ jsx(Icon, {
200
- icon: "token-icon-select-check"
201
- })
202
- })
203
- ]
204
- }, option.value))
205
- })
206
- })
207
- }),
208
- invalid && /*#__PURE__*/ jsx(ErrorText, {
209
- children: errorText
210
- }),
211
- !invalid && helperText && /*#__PURE__*/ jsx(ExtraText, {
212
- children: helperText
213
- })
214
- ]
207
+ children: children
215
208
  })
216
209
  ]
217
210
  });
218
211
  }
219
- Select.displayName = 'Select';
220
- export { Select };
212
+ Select.Label = function({ children, ...props }) {
213
+ const { api } = useSelectContext();
214
+ return /*#__PURE__*/ jsx(Label, {
215
+ ...api.getLabelProps(),
216
+ ...props,
217
+ children: children
218
+ });
219
+ };
220
+ Select.Control = function({ children, className, ref, ...props }) {
221
+ const { api, size } = useSelectContext();
222
+ const styles = selectVariants({
223
+ size
224
+ });
225
+ return /*#__PURE__*/ jsx("div", {
226
+ className: styles.control({
227
+ className
228
+ }),
229
+ ref: ref,
230
+ ...api.getControlProps(),
231
+ ...props,
232
+ children: children
233
+ });
234
+ };
235
+ Select.Trigger = function({ children, className, size: sizeProp, iconSize, ref, ...props }) {
236
+ const { api, size: contextSize, validateStatus } = useSelectContext();
237
+ const effectiveSize = sizeProp ?? contextSize;
238
+ const styles = selectVariants({
239
+ size: effectiveSize
240
+ });
241
+ const chevronIconSize = "sm" === effectiveSize ? "sm" : "md";
242
+ const validationDataAttrs = "default" !== validateStatus ? {
243
+ "data-validation": validateStatus
244
+ } : {};
245
+ return /*#__PURE__*/ jsxs(Button, {
246
+ className: styles.trigger({
247
+ className
248
+ }),
249
+ ref: ref,
250
+ size: "current",
251
+ theme: "unstyled",
252
+ ...api.getTriggerProps(),
253
+ ...validationDataAttrs,
254
+ ...props,
255
+ children: [
256
+ children,
257
+ /*#__PURE__*/ jsx(Icon, {
258
+ className: `text-select-trigger group-hover:text-select-trigger-hover motion-safe:transition-[transform,color] motion-safe:duration-200 motion-reduce:transition-none ${api.open ? "rotate-180" : "rotate-0"}`,
259
+ icon: "token-icon-select-indicator",
260
+ size: iconSize ?? chevronIconSize
261
+ })
262
+ ]
263
+ });
264
+ };
265
+ Select.ValueText = function({ placeholder = "Select an option", className, size: sizeProp, ref, children, ...props }) {
266
+ const { api, size: contextSize, items } = useSelectContext();
267
+ const effectiveSize = sizeProp ?? contextSize;
268
+ const styles = selectVariants({
269
+ size: effectiveSize
270
+ });
271
+ const hasValue = api.value.length > 0;
272
+ const selectedItems = api.value.map((v)=>items.find((item)=>item.value === v)).filter(Boolean);
273
+ const renderContent = ()=>{
274
+ if (!hasValue) return placeholder;
275
+ if ("function" == typeof children) return children(selectedItems);
276
+ return selectedItems[0]?.label;
277
+ };
278
+ return /*#__PURE__*/ jsx("span", {
279
+ className: styles.valueText({
280
+ className
281
+ }),
282
+ "data-placeholder": !hasValue || void 0,
283
+ ref: ref,
284
+ ...props,
285
+ children: renderContent()
286
+ });
287
+ };
288
+ Select.ClearTrigger = function({ className, iconSize, ref, ...props }) {
289
+ const { api, size } = useSelectContext();
290
+ const styles = selectVariants({
291
+ size
292
+ });
293
+ return /*#__PURE__*/ jsx(Button, {
294
+ className: styles.clearTrigger({
295
+ className
296
+ }),
297
+ ref: ref,
298
+ size: "current",
299
+ theme: "unstyled",
300
+ ...api.getClearTriggerProps(),
301
+ "aria-label": "Clear selection",
302
+ icon: "token-icon-select-clear",
303
+ iconSize: iconSize,
304
+ ...props
305
+ });
306
+ };
307
+ Select.Positioner = function({ children, className, ref, ...props }) {
308
+ const { api, size } = useSelectContext();
309
+ const styles = selectVariants({
310
+ size
311
+ });
312
+ return /*#__PURE__*/ jsx(Portal, {
313
+ children: /*#__PURE__*/ jsx("div", {
314
+ className: styles.positioner({
315
+ className
316
+ }),
317
+ ref: ref,
318
+ ...api.getPositionerProps(),
319
+ ...props,
320
+ children: children
321
+ })
322
+ });
323
+ };
324
+ Select.Content = function({ children, className, ref, ...props }) {
325
+ const { api, size } = useSelectContext();
326
+ const styles = selectVariants({
327
+ size
328
+ });
329
+ return /*#__PURE__*/ jsx("ul", {
330
+ className: styles.content({
331
+ className
332
+ }),
333
+ ref: ref,
334
+ ...api.getContentProps(),
335
+ ...props,
336
+ children: children
337
+ });
338
+ };
339
+ Select.ItemGroup = function({ id, children, className, ref, ...props }) {
340
+ const { api, size } = useSelectContext();
341
+ const styles = selectVariants({
342
+ size
343
+ });
344
+ return /*#__PURE__*/ jsx("div", {
345
+ className: styles.itemGroup({
346
+ className
347
+ }),
348
+ ref: ref,
349
+ ...api.getItemGroupProps({
350
+ id
351
+ }),
352
+ ...props,
353
+ children: children
354
+ });
355
+ };
356
+ Select.ItemGroupLabel = function({ htmlFor, children, className, ref, ...props }) {
357
+ const { api, size } = useSelectContext();
358
+ const styles = selectVariants({
359
+ size
360
+ });
361
+ return /*#__PURE__*/ jsx("div", {
362
+ className: styles.itemGroupLabel({
363
+ className
364
+ }),
365
+ ref: ref,
366
+ ...api.getItemGroupLabelProps({
367
+ htmlFor
368
+ }),
369
+ ...props,
370
+ children: children
371
+ });
372
+ };
373
+ Select.Item = function({ item, children, className, size: sizeProp, ref, ...props }) {
374
+ const { api, size: contextSize } = useSelectContext();
375
+ const effectiveSize = sizeProp ?? contextSize;
376
+ const styles = selectVariants({
377
+ size: effectiveSize
378
+ });
379
+ return /*#__PURE__*/ jsx(SelectItemContext.Provider, {
380
+ value: {
381
+ item
382
+ },
383
+ children: /*#__PURE__*/ jsx("li", {
384
+ className: styles.item({
385
+ className
386
+ }),
387
+ ref: ref,
388
+ ...api.getItemProps({
389
+ item
390
+ }),
391
+ ...props,
392
+ children: children
393
+ })
394
+ });
395
+ };
396
+ Select.ItemText = function({ children, className, ref, ...props }) {
397
+ const { api, size } = useSelectContext();
398
+ const { item } = useSelectItemContext();
399
+ const styles = selectVariants({
400
+ size
401
+ });
402
+ return /*#__PURE__*/ jsx("span", {
403
+ className: styles.itemText({
404
+ className
405
+ }),
406
+ ref: ref,
407
+ ...api.getItemTextProps({
408
+ item
409
+ }),
410
+ ...props,
411
+ children: children || item.label
412
+ });
413
+ };
414
+ Select.ItemIndicator = function({ className, iconSize, ref, ...props }) {
415
+ const { api, size } = useSelectContext();
416
+ const { item } = useSelectItemContext();
417
+ const styles = selectVariants({
418
+ size
419
+ });
420
+ return /*#__PURE__*/ jsx("span", {
421
+ className: styles.itemIndicator({
422
+ className
423
+ }),
424
+ ref: ref,
425
+ ...api.getItemIndicatorProps({
426
+ item
427
+ }),
428
+ ...props,
429
+ children: /*#__PURE__*/ jsx(Icon, {
430
+ icon: "token-icon-select-check",
431
+ size: iconSize
432
+ })
433
+ });
434
+ };
435
+ Select.StatusText = function({ status: statusProp, size: sizeProp, showIcon, children, ...props }) {
436
+ const { size: contextSize, validateStatus: contextValidateStatus } = useSelectContext();
437
+ const effectiveSize = sizeProp ?? contextSize;
438
+ const effectiveStatus = statusProp ?? contextValidateStatus;
439
+ return /*#__PURE__*/ jsx(StatusText, {
440
+ showIcon: showIcon,
441
+ size: "xs" === effectiveSize ? "sm" : effectiveSize,
442
+ status: effectiveStatus,
443
+ ...props,
444
+ children: children
445
+ });
446
+ };
447
+ Select.displayName = "Select";
448
+ export { Select, selectVariants, useSelectContext };