@techsio/ui-kit 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) 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 +7 -7
  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 +6 -6
  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 +41 -28
  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/tokens-only.css +1 -64
  436. package/dist/atoms/error-text.js +0 -38
  437. package/dist/atoms/extra-text.js +0 -27
  438. package/dist/molecules/checkbox.js +0 -98
  439. package/dist/src/atoms/error-text.d.ts +0 -29
  440. package/dist/src/atoms/error-text.d.ts.map +0 -1
  441. package/dist/src/atoms/extra-text.d.ts +0 -27
  442. package/dist/src/atoms/extra-text.d.ts.map +0 -1
  443. package/dist/src/molecules/checkbox.d.ts +0 -19
  444. package/dist/src/molecules/checkbox.d.ts.map +0 -1
  445. package/src/tokens/components/molecules/_checkbox.css +0 -34
  446. package/src/tokens/components/molecules/index.css +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual.spec.d.ts","sourceRoot":"","sources":["../../test/visual.spec.ts"],"names":[],"mappings":""}
package/dist/utils.js CHANGED
@@ -15,6 +15,6 @@ const tv = createTV({
15
15
  }
16
16
  });
17
17
  function slugify(str) {
18
- return str.toString().toLowerCase().replace(WHITESPACE_REGEX, '-').replace(NON_WORD_REGEX, '').replace(MULTIPLE_DASHES_REGEX, '-').replace(LEADING_DASHES_REGEX, '').replace(TRAILING_DASHES_REGEX, '');
18
+ return str.toString().toLowerCase().replace(WHITESPACE_REGEX, "-").replace(NON_WORD_REGEX, "").replace(MULTIPLE_DASHES_REGEX, "-").replace(LEADING_DASHES_REGEX, "").replace(TRAILING_DASHES_REGEX, "");
19
19
  }
20
20
  export { slugify, tv };
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@techsio/ui-kit",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "https://github.com/NMIT-WR/new-engine",
7
+ "url": "git+https://github.com/TechsioCZ/new-engine.git",
8
8
  "directory": "libs/ui"
9
9
  },
10
10
  "exports": {
@@ -13,13 +13,16 @@
13
13
  "import": "./dist/types/zag.js"
14
14
  },
15
15
  "./tokens": {
16
- "import": "./src/tokens/tokens-only.css"
16
+ "style": "./src/tokens/tokens-only.css",
17
+ "default": "./src/tokens/tokens-only.css"
17
18
  },
18
19
  "./tokens-with-tailwind": {
19
- "import": "./src/tokens/index.css"
20
+ "style": "./src/tokens/index.css",
21
+ "default": "./src/tokens/index.css"
20
22
  },
21
23
  "./tokens/*": {
22
- "import": "./src/tokens/*.css"
24
+ "style": "./src/tokens/*.css",
25
+ "default": "./src/tokens/*.css"
23
26
  },
24
27
  "./atoms/*": {
25
28
  "types": "./dist/src/atoms/*.d.ts",
@@ -51,6 +54,12 @@
51
54
  "build:storybook": "storybook build",
52
55
  "dev": "rslib build --watch",
53
56
  "storybook": "storybook dev",
57
+ "figma:connect:parse": "figma connect parse --config figma.config.json",
58
+ "figma:connect:publish": "figma connect publish --config figma.config.json",
59
+ "test-storybook": "test-storybook",
60
+ "storybook:a11y": "bash scripts/storybook-a11y.sh",
61
+ "test:components": "node scripts/run-component-tests.mjs",
62
+ "test:components:update": "node scripts/run-component-tests.mjs --update-snapshots",
54
63
  "lint:tailwind": "eslint \"**/*.{js,jsx,ts,tsx}\" --config eslint.config.js",
55
64
  "lint:tailwind:fix": "eslint \"**/*.{js,jsx,ts,tsx}\" --config eslint.config.js --fix",
56
65
  "prepare": "pnpm build && pnpm build:storybook",
@@ -61,30 +70,33 @@
61
70
  "semantic-release": "semantic-release"
62
71
  },
63
72
  "dependencies": {
64
- "@zag-js/accordion": "^1.29.1",
65
- "@zag-js/carousel": "^1.29.1",
66
- "@zag-js/checkbox": "^1.29.1",
67
- "@zag-js/combobox": "^1.29.1",
68
- "@zag-js/dialog": "^1.29.1",
69
- "@zag-js/i18n-utils": "^1.29.1",
70
- "@zag-js/menu": "^1.29.1",
71
- "@zag-js/number-input": "^1.29.1",
72
- "@zag-js/pagination": "^1.29.1",
73
- "@zag-js/popover": "^1.29.1",
74
- "@zag-js/rating-group": "^1.29.1",
75
- "@zag-js/react": "^1.29.1",
76
- "@zag-js/select": "^1.29.1",
77
- "@zag-js/slider": "^1.29.1",
78
- "@zag-js/steps": "^1.29.1",
79
- "@zag-js/switch": "^1.29.1",
80
- "@zag-js/tabs": "^1.29.1",
81
- "@zag-js/toast": "^1.29.1",
82
- "@zag-js/tooltip": "^1.29.1",
83
- "@zag-js/tree-view": "^1.29.1",
73
+ "@zag-js/accordion": "^1.31.1",
74
+ "@zag-js/carousel": "^1.31.1",
75
+ "@zag-js/checkbox": "^1.31.1",
76
+ "@zag-js/combobox": "^1.31.1",
77
+ "@zag-js/dialog": "^1.31.1",
78
+ "@zag-js/i18n-utils": "^1.31.1",
79
+ "@zag-js/menu": "^1.31.1",
80
+ "@zag-js/number-input": "^1.31.1",
81
+ "@zag-js/pagination": "^1.31.1",
82
+ "@zag-js/popover": "^1.31.1",
83
+ "@zag-js/radio-group": "^1.31.1",
84
+ "@zag-js/rating-group": "^1.31.1",
85
+ "@zag-js/react": "^1.31.1",
86
+ "@zag-js/select": "^1.31.1",
87
+ "@zag-js/slider": "^1.31.1",
88
+ "@zag-js/steps": "^1.31.1",
89
+ "@zag-js/switch": "^1.31.1",
90
+ "@zag-js/tabs": "^1.31.1",
91
+ "@zag-js/toast": "^1.31.1",
92
+ "@zag-js/tooltip": "^1.31.1",
93
+ "@zag-js/tree-view": "^1.31.1",
94
+ "libphonenumber-js": "^1.13.2",
84
95
  "tailwind-variants": "^3.1.1"
85
96
  },
86
97
  "devDependencies": {
87
98
  "@eslint/js": "^9.39.1",
99
+ "@figma/code-connect": "^1.4.3",
88
100
  "@iconify/json": "^2.2.409",
89
101
  "@iconify/tailwind4": "^1.1.0",
90
102
  "@rsbuild/core": "1.6.7",
@@ -101,14 +113,15 @@
101
113
  "@storybook/addon-onboarding": "^10.0.2",
102
114
  "@storybook/addon-themes": "^10.0.2",
103
115
  "@storybook/react": "^10.0.2",
116
+ "@storybook/test-runner": "^0.24.2",
104
117
  "@tailwindcss/postcss": "^4.1.17",
118
+ "@techsio/storybook-a11y-reporter": "0.1.3",
119
+ "@techsio/storybook-better-a11y": "0.1.3",
105
120
  "@typescript-eslint/parser": "^8.47.0",
106
- "class-variance-authority": "^0.7.1",
107
- "clsx": "^2.1.1",
108
121
  "eslint": "^9.39.1",
109
122
  "eslint-plugin-tailwindcss": "beta",
110
123
  "glob": "^11.0.2",
111
- "next": "^16.0.3",
124
+ "postcss": "^8.5.6",
112
125
  "rsbuild-plugin-publint": "^0.3.3",
113
126
  "semantic-release": "^25.0.2",
114
127
  "storybook": "^10.0.2",
@@ -13,9 +13,9 @@
13
13
  --offset-shadow-2: 0px 5px 6px 0px;
14
14
  --offset-shadow-3: 1px 1px 20px 0px;
15
15
 
16
- --shadow-primary: var(--offset-shadow-1) var(--color-shadow-1),
17
- var(--offset-shadow-2) var(--color-shadow-2), var(--offset-shadow-3)
18
- var(--color-shadow-3);
16
+ --shadow-primary:
17
+ var(--offset-shadow-1) var(--color-shadow-1), var(--offset-shadow-2)
18
+ var(--color-shadow-2), var(--offset-shadow-3) var(--color-shadow-3);
19
19
 
20
20
  /* Shadows */
21
21
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -1,4 +1,8 @@
1
1
  @theme static {
2
+ /* === RUNTIME POSITIONING FALLBACKS (Zag.js) === */
3
+ --reference-width: 100%;
4
+ --z-index: 1;
5
+
2
6
  /* === BREAKPOINTS === */
3
7
  --breakpoint-xs: 30rem;
4
8
  --breakpoint-sm: 40rem;
@@ -15,13 +15,13 @@
15
15
  --state-border: 15%;
16
16
  --state-placeholder: 0.25;
17
17
  --max-lightness: 0.97;
18
- --opacity-ring: 80%;
19
18
  --opacity-disabled: 60%;
20
19
  --opacity-placeholder: 60%;
21
20
  --opacity-text-secondary: 70%;
22
21
  --opacity-disabled-placeholder: 30%;
23
22
  --fill-increment: 5%;
24
23
  --surface-increment: 0.05;
24
+ --state-fg-lightness: 0.42; /* Accent color lightness for text - WCAG AAA on light bg */
25
25
  }
26
26
 
27
27
  /* Explicit Dark class(es) */
@@ -31,6 +31,7 @@
31
31
  --state-secondary-text: -0.15;
32
32
  --state-placeholder: -0.25;
33
33
  --surface-increment: -0.05;
34
+ --state-fg-lightness: 0.85;
34
35
  }
35
36
 
36
37
  /* System Dark preference (when no explicit class forces light) */
@@ -41,6 +42,7 @@
41
42
  --state-secondary-text: -0.15;
42
43
  --state-placeholder: -0.25;
43
44
  --surface-increment: -0.05;
45
+ --state-fg-lightness: 0.85;
44
46
  }
45
47
  }
46
48
 
@@ -51,6 +53,7 @@
51
53
  --state-secondary-text: -0.15;
52
54
  --state-placeholder: -0.25;
53
55
  --surface-increment: -0.05;
56
+ --state-fg-lightness: 0.85;
54
57
  }
55
58
 
56
59
  :is(.dark, .always-dark) .reverse {
@@ -59,6 +62,7 @@
59
62
  --state-secondary-text: 0.15;
60
63
  --state-placeholder: 0.25;
61
64
  --surface-increment: 0.05;
65
+ --state-fg-lightness: 0.42;
62
66
  }
63
67
 
64
68
  /* Reverse on System Light/Dark preference (when no explicit theme class is present) */
@@ -69,6 +73,7 @@
69
73
  --state-secondary-text: -0.15;
70
74
  --state-placeholder: -0.25;
71
75
  --surface-increment: -0.05;
76
+ --state-fg-lightness: 0.85;
72
77
  }
73
78
  }
74
79
 
@@ -79,6 +84,7 @@
79
84
  --state-secondary-text: 0.15;
80
85
  --state-placeholder: 0.25;
81
86
  --surface-increment: 0.05;
87
+ --state-fg-lightness: 0.42;
82
88
  }
83
89
  }
84
90
 
@@ -86,7 +92,7 @@
86
92
  @theme static {
87
93
  /* Colors */
88
94
  /* User interface main tone and interactive colors, usually used for main operation button, etc */
89
- --color-primary: light-dark(var(--color-blue-500), var(--color-sky-300));
95
+ --color-primary: light-dark(var(--color-blue-300), var(--color-sky-300));
90
96
  --color-primary-hover: oklch(
91
97
  from var(--color-primary) calc(l + var(--state-hover)) c h
92
98
  );
@@ -112,7 +118,10 @@
112
118
  );
113
119
 
114
120
  /*Secondary colors. Less important than primary colors, but still serve as accents.*/
115
- --color-secondary: light-dark(var(--color-orange-500), var(--color-amber-400));
121
+ --color-secondary: light-dark(
122
+ var(--color-orange-500),
123
+ var(--color-amber-400)
124
+ );
116
125
  --color-secondary-hover: oklch(
117
126
  from var(--color-secondary) calc(l + var(--state-hover)) c h
118
127
  );
@@ -138,7 +147,7 @@
138
147
  );
139
148
 
140
149
  /* In the user interface, non emphasis color and interactive color are usually used for general and non emphasis function operation buttons */
141
- --color-tertiary: light-dark(var(--color-pink-500), var(--color-rose-400));
150
+ --color-tertiary: light-dark(var(--color-pink-300), var(--color-rose-400));
142
151
  --color-tertiary-hover: oklch(
143
152
  from var(--color-tertiary) calc(l + var(--state-hover)) c h
144
153
  );
@@ -245,7 +254,7 @@
245
254
  );
246
255
 
247
256
  /* It is usually used to express the dangerous state, and is used in the scene with the above semantics */
248
- --color-danger: light-dark(var(--color-red-500), var(--color-red-400));
257
+ --color-danger: light-dark(var(--color-red-400), var(--color-red-300));
249
258
  --color-danger-hover: oklch(
250
259
  from var(--color-danger) calc(l + var(--state-hover)) c h
251
260
  );
@@ -270,9 +279,30 @@
270
279
  from var(--color-danger-light) l var(--state-disabled-chroma) h
271
280
  );
272
281
 
273
- /* Text colors and Icon colors*/
282
+ /* Text colors and Icon colors */
283
+ /* semantic text color for better contrast WCAG AAA - uses absolute lightness */
284
+ --color-primary-accent-fg: oklch(
285
+ from var(--color-primary) var(--state-fg-lightness) c h
286
+ );
287
+ --color-secondary-accent-fg: oklch(
288
+ from var(--color-secondary) var(--state-fg-lightness) c h
289
+ );
290
+ --color-tertiary-accent-fg: oklch(
291
+ from var(--color-tertiary) var(--state-fg-lightness) c h
292
+ );
293
+ --color-success-fg: oklch(
294
+ from var(--color-success) var(--state-fg-lightness) c h
295
+ );
296
+ --color-info-fg: oklch(from var(--color-info) var(--state-fg-lightness) c h);
297
+ --color-warning-fg: oklch(
298
+ from var(--color-warning) var(--state-fg-lightness) c h
299
+ );
300
+ --color-danger-fg: oklch(
301
+ from var(--color-danger) var(--state-fg-lightness) c h
302
+ );
303
+
274
304
  /* Four different levels of text / icon colors represent the most important, secondary, minor and minor contents in the product interface */
275
- --color-fg-light: var(--color-slate-800); /* Light mode */
305
+ --color-fg-light: var(--color-slate-950); /* Light mode */
276
306
  --color-fg-dark: var(--color-white); /* Dark mode */
277
307
  --color-fg-primary: light-dark(var(--color-fg-light), var(--color-fg-dark));
278
308
 
@@ -288,7 +318,10 @@
288
318
  /* All levels of background color in the application, including container, menu, navigation bar, etc. In dark mode, we usually use the background color to distinguish the front and back levels */
289
319
  --color-base-light: var(--color-white);
290
320
  --color-base-dark: var(--color-gray-950);
291
- --color-base: light-dark(var(--color-base-light), var(--color-base-dark)); /*bottom page*/
321
+ --color-base: light-dark(
322
+ var(--color-base-light),
323
+ var(--color-base-dark)
324
+ ); /*bottom page*/
292
325
  --color-surface: oklch(
293
326
  from var(--color-base) calc(l - var(--surface-increment)) c h
294
327
  ); /* content that needs to be promoted on the page*/
@@ -319,6 +352,7 @@
319
352
  --border-width-sm: 1px;
320
353
  --border-width-md: 2px;
321
354
  --border-width-lg: 3px;
355
+ --border-width-validation: var(--border-width-lg);
322
356
 
323
357
  /* Links */
324
358
  --color-link: light-dark(var(--color-blue-500), var(--color-sky-300));
@@ -353,7 +387,10 @@
353
387
  );
354
388
 
355
389
  /* Disabled fill for form controls and interactive elements */
356
- --color-fill-disabled: light-dark(var(--color-gray-50), var(--color-gray-850));
390
+ --color-fill-disabled: light-dark(
391
+ var(--color-gray-50),
392
+ var(--color-gray-850)
393
+ );
357
394
 
358
395
  /* Spacing */
359
396
  --spacing: 0.25rem;
@@ -361,5 +398,7 @@
361
398
  /* Focus ring */
362
399
  --default-ring-color: light-dark(var(--color-black), var(--color-white));
363
400
  --color-ring: var(--default-ring-color);
364
- --default-ring-width: 3px;
401
+ --default-ring-width: 2px;
402
+ --default-ring-offset: 2px;
403
+ --default-ring-style: solid;
365
404
  }
@@ -0,0 +1,67 @@
1
+ /* Shared tokens (with or without Tailwind) */
2
+
3
+ /* Primitive tokens */
4
+ @import "./_base.css";
5
+ @import "./_colors.css";
6
+ @import "./_spacing.css";
7
+ @import "./_typography.css";
8
+ @import "./_layout.css";
9
+
10
+ /* Semantic tokens (dependent on primitives) */
11
+ @import "./_semantic.css";
12
+
13
+ /* Component tokens (dependent on semantic) */
14
+ @import "./components/components.css";
15
+
16
+ /* Base styles */
17
+ :root {
18
+ color-scheme: light dark;
19
+ }
20
+
21
+ .light {
22
+ color-scheme: light;
23
+ }
24
+
25
+ .dark {
26
+ color-scheme: dark;
27
+ }
28
+
29
+ .always-light {
30
+ color-scheme: light;
31
+ }
32
+
33
+ .always-dark {
34
+ color-scheme: dark;
35
+ }
36
+
37
+ @media (prefers-color-scheme: light) {
38
+ .reverse {
39
+ color-scheme: dark;
40
+ }
41
+ }
42
+
43
+ @media (prefers-color-scheme: dark) {
44
+ .reverse {
45
+ color-scheme: light;
46
+ }
47
+ }
48
+
49
+ .light .reverse {
50
+ color-scheme: dark;
51
+ }
52
+
53
+ .dark .reverse {
54
+ color-scheme: light;
55
+ }
56
+
57
+ body {
58
+ background-color: var(--color-base);
59
+ color: var(--color-fg-primary);
60
+
61
+ font-family: system-ui, sans-serif;
62
+ }
63
+
64
+ .sbdocs-preview {
65
+ background-color: var(--color-base) !important;
66
+ color: var(--color-fg-primary) !important;
67
+ }
@@ -1,13 +1,43 @@
1
1
  @theme static {
2
2
  /* Primitive Typography Tokens - Utopia fluid typography */
3
- --text-xs: clamp(0.7813rem, 0.7747rem + 0.0326vw, 0.8rem); /* 12.5px - 12.8px */
3
+ --text-xs: clamp(
4
+ 0.7813rem,
5
+ 0.7747rem +
6
+ 0.0326vw,
7
+ 0.8rem
8
+ ); /* 12.5px - 12.8px */
4
9
  --text-sm: clamp(0.9375rem, 0.9158rem + 0.1087vw, 1rem); /* 15px - 16px */
5
10
  --text-md: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem); /* 18px - 20px */
6
- --text-lg: clamp(1.35rem, 1.2761rem + 0.3696vw, 1.5625rem); /* 21.6px - 25px */
7
- --text-xl: clamp(1.62rem, 1.5041rem + 0.5793vw, 1.9531rem); /* 25.92px - 31.25px */
8
- --text-2xl: clamp(1.944rem, 1.771rem + 0.8651vw, 2.4414rem); /* 31.1px - 39.06px */
9
- --text-3xl: clamp(2.3328rem, 2.0827rem + 1.2504vw, 3.0518rem); /* 37.32px - 48.83px */
10
- --text-4xl: clamp(2.7994rem, 2.4462rem + 1.7658vw, 3.8147rem); /* 44.79px - 61.04px */
11
+ --text-lg: clamp(
12
+ 1.35rem,
13
+ 1.2761rem +
14
+ 0.3696vw,
15
+ 1.5625rem
16
+ ); /* 21.6px - 25px */
17
+ --text-xl: clamp(
18
+ 1.62rem,
19
+ 1.5041rem +
20
+ 0.5793vw,
21
+ 1.9531rem
22
+ ); /* 25.92px - 31.25px */
23
+ --text-2xl: clamp(
24
+ 1.944rem,
25
+ 1.771rem +
26
+ 0.8651vw,
27
+ 2.4414rem
28
+ ); /* 31.1px - 39.06px */
29
+ --text-3xl: clamp(
30
+ 2.3328rem,
31
+ 2.0827rem +
32
+ 1.2504vw,
33
+ 3.0518rem
34
+ ); /* 37.32px - 48.83px */
35
+ --text-4xl: clamp(
36
+ 2.7994rem,
37
+ 2.4462rem +
38
+ 1.7658vw,
39
+ 3.8147rem
40
+ ); /* 44.79px - 61.04px */
11
41
 
12
42
  /* === TEXT WEIGHT === */
13
43
  --font-weight-normal: 400;
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Shared form-control foundation tokens.
3
+ * All box-style form controls (Input, NumericInput, Combobox, Select, SearchForm)
4
+ * alias their visual tokens to these to maintain a single source of truth.
5
+ *
6
+ * To change the design of every form control at once, edit these tokens.
7
+ * To diverge a specific component, override its own alias token in its own CSS file.
8
+ */
9
+ @theme static {
10
+ /* Border */
11
+ --border-width-form-control: var(--border-width-input); /* 2px */
12
+
13
+ /* Shape */
14
+ --radius-form-control-sm: var(--radius-button-sm);
15
+ --radius-form-control-md: var(--radius-button-md);
16
+ --radius-form-control-lg: var(--radius-button-lg);
17
+ --radius-form-control: var(--radius-form-control-md); /* default md */
18
+
19
+ /* Colors */
20
+ --color-form-control-bg: var(--color-fill-base);
21
+ --color-form-control-border: var(--color-border-primary);
22
+ --color-form-control-border-hover: oklch(
23
+ from var(--color-form-control-border) calc(l + var(--state-hover)) c h
24
+ );
25
+ --color-form-control-border-focus: var(--color-primary);
26
+ --color-form-control-ring: var(--color-ring);
27
+
28
+ /* Disabled */
29
+ --color-form-control-bg-disabled: var(--color-bg-disabled);
30
+ --color-form-control-fg-disabled: var(--color-fg-disabled);
31
+ --color-form-control-border-disabled: var(--color-border-disabled);
32
+
33
+ /* Placeholder */
34
+ --color-form-control-placeholder: var(--color-fg-placeholder);
35
+
36
+ /*
37
+ * Shared heights for sm/md form controls + buttons.
38
+ * Formula: border×2 + button-padding-y×2 + 1lh
39
+ * (1lh resolves to the element's computed line-height at usage time)
40
+ * Apply h-form-control-sm / h-form-control-md to both buttons and
41
+ * form-control wrappers so they share an identical rendered height.
42
+ */
43
+ --height-form-control-sm: calc(
44
+ var(--border-width-form-control) * 2 + var(--spacing-50) * 2 + 1lh
45
+ );
46
+ --height-form-control-md: calc(
47
+ var(--border-width-form-control) * 2 + var(--spacing-100) * 2 + 1lh
48
+ );
49
+ --height-form-control-lg: calc(
50
+ var(--border-width-form-control) * 2 + var(--spacing-200) * 2 + 1lh
51
+ );
52
+ }
53
+
54
+ /*
55
+ * Shared base utility for box-style form controls.
56
+ * Covers the static visual foundation (border, radius, background).
57
+ * Interactive states (hover border, focus ring, disabled, validation) are applied
58
+ * per-component via Tailwind classes in their tv() slots because focus behaviour
59
+ * differs (focus-within vs data-focus vs focus-visible) across components.
60
+ */
61
+ @utility form-control-base {
62
+ border-width: var(--border-width-form-control);
63
+ border-style: solid;
64
+ border-color: var(--color-form-control-border);
65
+ border-radius: var(--radius-form-control);
66
+ background-color: var(--color-form-control-bg);
67
+ }
@@ -21,7 +21,7 @@
21
21
  --color-badge-bg-discount: var(--color-badge-danger); /* Alias for discount */
22
22
 
23
23
  /* Foreground colors */
24
- --color-badge-fg: var(--color-fg-reverse);
24
+ --color-badge-fg: var(--color-fg-light);
25
25
  --color-badge-fg-primary: var(--color-badge-fg);
26
26
  --color-badge-fg-secondary: var(--color-badge-fg);
27
27
  --color-badge-fg-tertiary: var(--color-badge-fg);
@@ -29,7 +29,9 @@
29
29
  --color-badge-fg-success: var(--color-badge-fg);
30
30
  --color-badge-fg-warning: var(--color-badge-fg);
31
31
  --color-badge-fg-danger: var(--color-badge-fg);
32
- --color-badge-fg-discount: var(--color-fg-dark); /* Keep original for discount */
32
+ --color-badge-fg-discount: var(
33
+ --color-badge-fg
34
+ ); /* Keep original for discount */
33
35
 
34
36
  /* Border colors */
35
37
  --color-badge-border: var(--color-border-primary);
@@ -49,12 +51,21 @@
49
51
  --color-badge-border-outline: var(--color-badge-border);
50
52
 
51
53
  /* === SPACING === */
52
- --padding-badge: var(--spacing-100) var(--spacing-100);
54
+ --spacing-badge-sm: var(--spacing-50);
55
+ --spacing-badge-md: var(--spacing-100);
56
+ --spacing-badge-lg: var(--spacing-150);
57
+ --spacing-badge-xl: var(--spacing-200);
53
58
 
54
59
  /* === TYPOGRAPHY === */
55
- --text-badge-size: var(--text-xs);
56
- --font-weight-badge: var(--font-weight-normal);
60
+ --text-badge-sm: var(--text-xs);
61
+ --text-badge-md: var(--text-xs);
62
+ --text-badge-lg: var(--text-sm);
63
+ --text-badge-xl: var(--text-md);
57
64
 
65
+ --font-weight-badge-sm: var(--font-weight-light);
66
+ --font-weight-badge-md: var(--font-weight-medium);
67
+ --font-weight-badge-lg: var(--font-weight-semibold);
68
+ --font-weight-badge-xl: var(--font-weight-bold);
58
69
  /* === BORDERS & RADIUS === */
59
70
  --radius-badge: var(--radius-sm);
60
71
  --border-width-badge: var(--border-width-sm);
@@ -22,8 +22,8 @@
22
22
  --color-button-bg-danger: var(--color-button-danger);
23
23
 
24
24
  /* Foreground colors */
25
- --color-button-fg: var(--color-fg-reverse);
26
- --color-button-fg-light: var(--color-fg-reverse);
25
+ --color-button-fg: var(--color-fg-light);
26
+ --color-button-fg-light: var(--color-fg-light);
27
27
  --color-button-fg-outlined: var(--color-fg-primary);
28
28
  --color-button-fg-primary: var(--color-button-fg);
29
29
  --color-button-fg-secondary: var(--color-button-fg);
@@ -40,11 +40,11 @@
40
40
  --color-button-fg-outlined-tertiary: var(--color-button-fg-outlined);
41
41
  --color-button-fg-outlined-warning: var(--color-button-fg-outlined);
42
42
  --color-button-fg-outlined-danger: var(--color-button-fg-outlined);
43
- --color-button-fg-primary-borderless: var(--color-button-primary);
44
- --color-button-fg-secondary-borderless: var(--color-button-secondary);
45
- --color-button-fg-tertiary-borderless: var(--color-button-tertiary);
46
- --color-button-fg-warning-borderless: var(--color-button-warning);
47
- --color-button-fg-danger-borderless: var(--color-button-danger);
43
+ --color-button-fg-primary-borderless: var(--color-primary-accent-fg);
44
+ --color-button-fg-secondary-borderless: var(--color-secondary-accent-fg);
45
+ --color-button-fg-tertiary-borderless: var(--color-tertiary-accent-fg);
46
+ --color-button-fg-warning-borderless: var(--color-warning-fg);
47
+ --color-button-fg-danger-borderless: var(--color-danger-fg);
48
48
 
49
49
  /* Border colors */
50
50
  --color-button-border-primary: var(--color-button-primary);
@@ -141,6 +141,7 @@
141
141
  );
142
142
 
143
143
  /* Outlined variants */
144
+ --color-button-bg-outlined: transparent;
144
145
  --color-button-bg-outlined-primary-hover: --alpha(
145
146
  var(--color-button-primary) /
146
147
  var(--opacity-outlined-hover)
@@ -192,9 +193,9 @@
192
193
  --spacing-button-md: var(--spacing-200);
193
194
  --spacing-button-lg: var(--spacing-250);
194
195
 
195
- --padding-button-sm: var(--spacing-150) var(--spacing-250);
196
- --padding-button-md: var(--spacing-200) var(--spacing-350);
197
- --padding-button-lg: var(--spacing-250) var(--spacing-450);
196
+ --padding-button-sm: var(--spacing-50) var(--spacing-200);
197
+ --padding-button-md: var(--spacing-100) var(--spacing-250);
198
+ --padding-button-lg: var(--spacing-150) var(--spacing-400);
198
199
 
199
200
  /* === TYPOGRAPHY === */
200
201
  --text-button-sm: var(--text-sm);
@@ -213,3 +214,8 @@
213
214
  /* === FOCUS RING === */
214
215
  --color-button-ring: var(--color-ring);
215
216
  }
217
+
218
+
219
+ @utility token-icon-button-spinner {
220
+ @apply token-icon-spinner;
221
+ }
@@ -0,0 +1,52 @@
1
+ @theme static {
2
+ /* === BASE COLOR MAPPING === */
3
+ /* Reference layer - single source of truth for theming */
4
+ --color-checkbox-primary: var(--color-primary);
5
+ --color-checkbox-success: var(--color-success);
6
+ --color-checkbox-danger: var(--color-danger);
7
+
8
+ /* === DERIVED COLORS === */
9
+ /* Background colors */
10
+ --color-checkbox-bg: var(--color-fill-active);
11
+ --color-checkbox-bg-checked: var(--color-checkbox-success);
12
+ --color-checkbox-bg-indeterminate: var(--color-checkbox-primary);
13
+
14
+ /* Foreground colors (icons/checkmarks) */
15
+ --color-checkbox-fg-checked: var(--color-fg-dark);
16
+ --color-checkbox-fg-indeterminate: var(--color-fg-dark);
17
+
18
+ /* Border colors */
19
+ --color-checkbox-border: var(--color-border-primary);
20
+ --color-checkbox-border-checked: var(--color-checkbox-success);
21
+ --color-checkbox-border-indeterminate: var(--color-checkbox-primary);
22
+
23
+ /* === VALIDATION STATES === */
24
+ --color-checkbox-border-error: var(--color-checkbox-danger);
25
+ --color-checkbox-ring-error: var(--color-checkbox-danger);
26
+
27
+ /* === DISABLED STATES === */
28
+ --color-checkbox-bg-disabled: var(--color-bg-disabled);
29
+ --color-checkbox-fg-disabled: var(--color-fg-disabled);
30
+ --color-checkbox-border-disabled: var(--color-border-disabled);
31
+
32
+ /* === FOCUS RINGS === */
33
+ --color-checkbox-ring-focus: var(--color-ring);
34
+
35
+ /* === SPACING === */
36
+ --spacing-checkbox: var(--spacing-200);
37
+ --spacing-checkbox-indeterminate-icon: 60%;
38
+
39
+ /* === BORDERS & RADIUS === */
40
+ --radius-checkbox: var(--radius-sm);
41
+
42
+ /* === FORM CHECKBOX MOLECULE === */
43
+ --spacing-form-checkbox-gap: var(--spacing-150);
44
+ --spacing-form-checkbox-text-offset: calc(
45
+ var(--spacing-checkbox) +
46
+ var(--spacing-form-checkbox-gap)
47
+ );
48
+ }
49
+
50
+ @utility token-icon-checkbox {
51
+ @apply token-icon-check-bold;
52
+ }