@a-type/ui 2.8.13 → 3.0.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 (504) hide show
  1. package/dist/cjs/colors.stories.js +3 -3
  2. package/dist/cjs/colors.stories.js.map +1 -1
  3. package/dist/cjs/components/actions/ActionBar.stories.js +2 -2
  4. package/dist/cjs/components/actions/ActionBar.stories.js.map +1 -1
  5. package/dist/cjs/components/box/Box.d.ts +5 -2
  6. package/dist/cjs/components/box/Box.js +12 -10
  7. package/dist/cjs/components/box/Box.js.map +1 -1
  8. package/dist/cjs/components/box/Box.stories.d.ts +3 -8
  9. package/dist/cjs/components/box/Box.stories.js +25 -10
  10. package/dist/cjs/components/box/Box.stories.js.map +1 -1
  11. package/dist/cjs/components/button/Button.d.ts +5 -6
  12. package/dist/cjs/components/button/Button.js +25 -37
  13. package/dist/cjs/components/button/Button.js.map +1 -1
  14. package/dist/cjs/components/button/Button.stories.d.ts +8 -2
  15. package/dist/cjs/components/button/Button.stories.js +18 -6
  16. package/dist/cjs/components/button/Button.stories.js.map +1 -1
  17. package/dist/cjs/components/button/classes.d.ts +4 -13
  18. package/dist/cjs/components/button/classes.js +21 -40
  19. package/dist/cjs/components/button/classes.js.map +1 -1
  20. package/dist/cjs/components/camera/Camera.js +4 -4
  21. package/dist/cjs/components/camera/Camera.js.map +1 -1
  22. package/dist/cjs/components/card/Card.js +6 -6
  23. package/dist/cjs/components/card/Card.js.map +1 -1
  24. package/dist/cjs/components/card/Card.stories.js +7 -7
  25. package/dist/cjs/components/card/Card.stories.js.map +1 -1
  26. package/dist/cjs/components/checkbox/Checkbox.js +3 -3
  27. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
  28. package/dist/cjs/components/chip/Chip.d.ts +3 -2
  29. package/dist/cjs/components/chip/Chip.js +2 -5
  30. package/dist/cjs/components/chip/Chip.js.map +1 -1
  31. package/dist/cjs/components/chip/Chip.stories.d.ts +20 -0
  32. package/dist/cjs/components/chip/Chip.stories.js +36 -0
  33. package/dist/cjs/components/chip/Chip.stories.js.map +1 -0
  34. package/dist/cjs/components/colorPicker/ColorPicker.js +2 -1
  35. package/dist/cjs/components/colorPicker/ColorPicker.js.map +1 -1
  36. package/dist/cjs/components/colorPicker/ColorPicker.stories.d.ts +15 -0
  37. package/dist/cjs/components/colorPicker/ColorPicker.stories.js +21 -0
  38. package/dist/cjs/components/colorPicker/ColorPicker.stories.js.map +1 -0
  39. package/dist/cjs/components/contextMenu/contextMenu.js +2 -2
  40. package/dist/cjs/components/contextMenu/contextMenu.js.map +1 -1
  41. package/dist/cjs/components/datePicker/DatePicker.d.ts +3 -1
  42. package/dist/cjs/components/datePicker/DatePicker.js +7 -7
  43. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  44. package/dist/cjs/components/dialog/Dialog.js +4 -5
  45. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  46. package/dist/cjs/components/dropdownMenu/DropdownMenu.d.ts +6 -3
  47. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +15 -9
  48. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  49. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.d.ts +2 -1
  50. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.js +2 -1
  51. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.js.map +1 -1
  52. package/dist/cjs/components/dropdownMenu/DropdownTriggerContext.d.ts +5 -0
  53. package/dist/cjs/components/dropdownMenu/DropdownTriggerContext.js +15 -0
  54. package/dist/cjs/components/dropdownMenu/DropdownTriggerContext.js.map +1 -0
  55. package/dist/cjs/components/editableText/EditableText.js +1 -1
  56. package/dist/cjs/components/editableText/EditableText.js.map +1 -1
  57. package/dist/cjs/components/emojiPicker/EmojiPicker.d.ts +2 -2
  58. package/dist/cjs/components/emojiPicker/EmojiPicker.js +4 -4
  59. package/dist/cjs/components/emojiPicker/EmojiPicker.js.map +1 -1
  60. package/dist/cjs/components/emojiPicker/EmojiPicker.stories.d.ts +1 -1
  61. package/dist/cjs/components/forms/CheckboxField.js +1 -1
  62. package/dist/cjs/components/forms/CheckboxField.js.map +1 -1
  63. package/dist/cjs/components/forms/FieldLabel.d.ts +1 -0
  64. package/dist/cjs/components/forms/FieldLabel.js +7 -0
  65. package/dist/cjs/components/forms/FieldLabel.js.map +1 -0
  66. package/dist/cjs/components/forms/Form.js +1 -2
  67. package/dist/cjs/components/forms/Form.js.map +1 -1
  68. package/dist/cjs/components/forms/NumberStepperField.js +2 -2
  69. package/dist/cjs/components/forms/NumberStepperField.js.map +1 -1
  70. package/dist/cjs/components/forms/TextField.d.ts +0 -1
  71. package/dist/cjs/components/forms/TextField.js +5 -5
  72. package/dist/cjs/components/forms/TextField.js.map +1 -1
  73. package/dist/cjs/components/horizontalList/HorizontalList.js +2 -2
  74. package/dist/cjs/components/horizontalList/HorizontalList.js.map +1 -1
  75. package/dist/cjs/components/imageUploader/ImageUploader.js +6 -7
  76. package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
  77. package/dist/cjs/components/input/Input.js +1 -1
  78. package/dist/cjs/components/input/Input.js.map +1 -1
  79. package/dist/cjs/components/layouts/PageNav.js +1 -1
  80. package/dist/cjs/components/layouts/PageNav.js.map +1 -1
  81. package/dist/cjs/components/layouts/layouts.stories.js +2 -2
  82. package/dist/cjs/components/layouts/layouts.stories.js.map +1 -1
  83. package/dist/cjs/components/masonry/masonry.stories.js +1 -1
  84. package/dist/cjs/components/masonry/masonry.stories.js.map +1 -1
  85. package/dist/cjs/components/navBar/NavBar.d.ts +1 -1
  86. package/dist/cjs/components/navBar/NavBar.js +6 -10
  87. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  88. package/dist/cjs/components/note/Note.d.ts +3 -1
  89. package/dist/cjs/components/note/Note.js +2 -2
  90. package/dist/cjs/components/note/Note.js.map +1 -1
  91. package/dist/cjs/components/numberStepper/NumberStepper.js +2 -2
  92. package/dist/cjs/components/numberStepper/NumberStepper.js.map +1 -1
  93. package/dist/cjs/components/peek/Peek.js +1 -1
  94. package/dist/cjs/components/peek/Peek.js.map +1 -1
  95. package/dist/cjs/components/popover/Popover.js +1 -1
  96. package/dist/cjs/components/popover/Popover.js.map +1 -1
  97. package/dist/cjs/components/progress/Progress.d.ts +3 -2
  98. package/dist/cjs/components/progress/Progress.js +9 -3
  99. package/dist/cjs/components/progress/Progress.js.map +1 -1
  100. package/dist/cjs/components/progress/Progress.stories.d.ts +2 -2
  101. package/dist/cjs/components/richEditor/index.js +1 -1
  102. package/dist/cjs/components/richEditor/index.js.map +1 -1
  103. package/dist/cjs/components/select/Select.js +4 -4
  104. package/dist/cjs/components/select/Select.js.map +1 -1
  105. package/dist/cjs/components/skeletons/TextSkeleton.stories.js +1 -1
  106. package/dist/cjs/components/skeletons/TextSkeleton.stories.js.map +1 -1
  107. package/dist/cjs/components/slider/Slider.d.ts +3 -2
  108. package/dist/cjs/components/slider/Slider.js +9 -5
  109. package/dist/cjs/components/slider/Slider.js.map +1 -1
  110. package/dist/cjs/components/slider/Slider.stories.d.ts +1 -1
  111. package/dist/cjs/components/switch/Switch.js +2 -2
  112. package/dist/cjs/components/switch/Switch.js.map +1 -1
  113. package/dist/cjs/components/tabs/tabs.js +4 -4
  114. package/dist/cjs/components/tabs/tabs.js.map +1 -1
  115. package/dist/cjs/components/tabs/tabs.stories.d.ts +1 -0
  116. package/dist/cjs/components/tabs/tabs.stories.js +7 -1
  117. package/dist/cjs/components/tabs/tabs.stories.js.map +1 -1
  118. package/dist/cjs/components/toggleGroup/toggleGroup.js +2 -2
  119. package/dist/cjs/components/toggleGroup/toggleGroup.js.map +1 -1
  120. package/dist/cjs/components/viewport/Viewport.stories.js +1 -1
  121. package/dist/cjs/components/viewport/Viewport.stories.js.map +1 -1
  122. package/dist/cjs/components/viewport/ViewportZoomControls.js +1 -1
  123. package/dist/cjs/components/viewport/ViewportZoomControls.js.map +1 -1
  124. package/dist/cjs/themes.stories.js +10 -14
  125. package/dist/cjs/themes.stories.js.map +1 -1
  126. package/dist/cjs/uno/logic/color.d.ts +29 -0
  127. package/dist/cjs/uno/logic/color.js +61 -0
  128. package/dist/cjs/uno/logic/color.js.map +1 -0
  129. package/dist/cjs/uno/preflights/_util.d.ts +2 -0
  130. package/dist/cjs/uno/preflights/_util.js +12 -0
  131. package/dist/cjs/uno/preflights/_util.js.map +1 -0
  132. package/dist/cjs/uno/preflights/base.d.ts +2 -0
  133. package/dist/cjs/uno/preflights/base.js +19 -0
  134. package/dist/cjs/uno/preflights/base.js.map +1 -0
  135. package/dist/cjs/uno/preflights/colors.d.ts +1 -0
  136. package/dist/cjs/uno/preflights/colors.js +167 -0
  137. package/dist/cjs/uno/preflights/colors.js.map +1 -0
  138. package/dist/cjs/uno/preflights/customization.d.ts +10 -0
  139. package/dist/cjs/uno/preflights/customization.js +30 -0
  140. package/dist/cjs/uno/preflights/customization.js.map +1 -0
  141. package/dist/cjs/uno/preflights/dark.d.ts +1 -0
  142. package/dist/cjs/uno/preflights/dark.js +49 -0
  143. package/dist/cjs/uno/preflights/dark.js.map +1 -0
  144. package/dist/cjs/uno/preflights/globals.d.ts +2 -0
  145. package/dist/cjs/uno/preflights/globals.js +58 -0
  146. package/dist/cjs/uno/preflights/globals.js.map +1 -0
  147. package/dist/cjs/uno/preflights/index.d.ts +3 -0
  148. package/dist/cjs/uno/preflights/index.js +20 -0
  149. package/dist/cjs/uno/preflights/index.js.map +1 -0
  150. package/dist/cjs/uno/preflights/layers.d.ts +2 -0
  151. package/dist/cjs/uno/preflights/layers.js +9 -0
  152. package/dist/cjs/uno/preflights/layers.js.map +1 -0
  153. package/dist/cjs/uno/rules/anchor.d.ts +2 -0
  154. package/dist/cjs/uno/rules/anchor.js +25 -0
  155. package/dist/cjs/uno/rules/anchor.js.map +1 -0
  156. package/dist/cjs/uno/rules/color.d.ts +2 -0
  157. package/dist/cjs/uno/rules/color.js +153 -0
  158. package/dist/cjs/uno/rules/color.js.map +1 -0
  159. package/dist/cjs/uno/rules/index.d.ts +1 -0
  160. package/dist/cjs/uno/rules/index.js +17 -0
  161. package/dist/cjs/uno/rules/index.js.map +1 -0
  162. package/dist/cjs/uno/rules/overflow.d.ts +2 -0
  163. package/dist/cjs/uno/rules/overflow.js +44 -0
  164. package/dist/cjs/uno/rules/overflow.js.map +1 -0
  165. package/dist/cjs/uno/rules/shadow.d.ts +2 -0
  166. package/dist/cjs/uno/rules/shadow.js +19 -0
  167. package/dist/cjs/uno/rules/shadow.js.map +1 -0
  168. package/dist/cjs/uno/rules/util.d.ts +2 -0
  169. package/dist/cjs/uno/rules/util.js +34 -0
  170. package/dist/cjs/uno/rules/util.js.map +1 -0
  171. package/dist/cjs/uno/shortcuts/index.d.ts +2 -0
  172. package/dist/cjs/uno/shortcuts/index.js +22 -0
  173. package/dist/cjs/uno/shortcuts/index.js.map +1 -0
  174. package/dist/cjs/uno/theme/animations.d.ts +3 -0
  175. package/dist/cjs/uno/theme/animations.js +213 -0
  176. package/dist/cjs/uno/theme/animations.js.map +1 -0
  177. package/dist/cjs/uno/theme/borders.d.ts +3 -0
  178. package/dist/cjs/uno/theme/borders.js +19 -0
  179. package/dist/cjs/uno/theme/borders.js.map +1 -0
  180. package/dist/cjs/uno/theme/colors.d.ts +55 -0
  181. package/dist/cjs/uno/theme/colors.js +29 -0
  182. package/dist/cjs/uno/theme/colors.js.map +1 -0
  183. package/dist/cjs/uno/theme/index.d.ts +2 -0
  184. package/dist/cjs/uno/theme/index.js +36 -0
  185. package/dist/cjs/uno/theme/index.js.map +1 -0
  186. package/dist/cjs/uno/theme/shadows.d.ts +2 -0
  187. package/dist/cjs/uno/theme/shadows.js +18 -0
  188. package/dist/cjs/uno/theme/shadows.js.map +1 -0
  189. package/dist/cjs/uno/theme/sizes.d.ts +3 -0
  190. package/dist/cjs/uno/theme/sizes.js +17 -0
  191. package/dist/cjs/uno/theme/sizes.js.map +1 -0
  192. package/dist/cjs/uno/theme/spacing.d.ts +2 -0
  193. package/dist/cjs/uno/theme/spacing.js +12 -0
  194. package/dist/cjs/uno/theme/spacing.js.map +1 -0
  195. package/dist/cjs/uno/theme/typography.d.ts +3 -0
  196. package/dist/cjs/uno/theme/typography.js +27 -0
  197. package/dist/cjs/uno/theme/typography.js.map +1 -0
  198. package/dist/cjs/uno/uno.preset.d.ts +2 -17
  199. package/dist/cjs/uno/uno.preset.js +14 -937
  200. package/dist/cjs/uno/uno.preset.js.map +1 -1
  201. package/dist/cjs/uno/variants/index.d.ts +2 -0
  202. package/dist/cjs/uno/variants/index.js +16 -0
  203. package/dist/cjs/uno/variants/index.js.map +1 -0
  204. package/dist/cjs/utilities.stories.js +1 -1
  205. package/dist/cjs/utilities.stories.js.map +1 -1
  206. package/dist/css/main.css +13 -1216
  207. package/dist/esm/colors.stories.js +3 -3
  208. package/dist/esm/colors.stories.js.map +1 -1
  209. package/dist/esm/components/actions/ActionBar.stories.js +2 -2
  210. package/dist/esm/components/actions/ActionBar.stories.js.map +1 -1
  211. package/dist/esm/components/box/Box.d.ts +5 -2
  212. package/dist/esm/components/box/Box.js +12 -10
  213. package/dist/esm/components/box/Box.js.map +1 -1
  214. package/dist/esm/components/box/Box.stories.d.ts +3 -8
  215. package/dist/esm/components/box/Box.stories.js +24 -9
  216. package/dist/esm/components/box/Box.stories.js.map +1 -1
  217. package/dist/esm/components/button/Button.d.ts +5 -6
  218. package/dist/esm/components/button/Button.js +26 -5
  219. package/dist/esm/components/button/Button.js.map +1 -1
  220. package/dist/esm/components/button/Button.stories.d.ts +8 -2
  221. package/dist/esm/components/button/Button.stories.js +17 -5
  222. package/dist/esm/components/button/Button.stories.js.map +1 -1
  223. package/dist/esm/components/button/classes.d.ts +4 -13
  224. package/dist/esm/components/button/classes.js +21 -39
  225. package/dist/esm/components/button/classes.js.map +1 -1
  226. package/dist/esm/components/camera/Camera.js +4 -4
  227. package/dist/esm/components/camera/Camera.js.map +1 -1
  228. package/dist/esm/components/card/Card.js +6 -6
  229. package/dist/esm/components/card/Card.js.map +1 -1
  230. package/dist/esm/components/card/Card.stories.js +7 -7
  231. package/dist/esm/components/card/Card.stories.js.map +1 -1
  232. package/dist/esm/components/checkbox/Checkbox.js +3 -3
  233. package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
  234. package/dist/esm/components/chip/Chip.d.ts +2 -1
  235. package/dist/esm/components/chip/Chip.js +2 -5
  236. package/dist/esm/components/chip/Chip.js.map +1 -1
  237. package/dist/esm/components/chip/Chip.stories.d.ts +20 -0
  238. package/dist/esm/components/chip/Chip.stories.js +33 -0
  239. package/dist/esm/components/chip/Chip.stories.js.map +1 -0
  240. package/dist/esm/components/colorPicker/ColorPicker.js +2 -1
  241. package/dist/esm/components/colorPicker/ColorPicker.js.map +1 -1
  242. package/dist/esm/components/colorPicker/ColorPicker.stories.d.ts +15 -0
  243. package/dist/esm/components/colorPicker/ColorPicker.stories.js +18 -0
  244. package/dist/esm/components/colorPicker/ColorPicker.stories.js.map +1 -0
  245. package/dist/esm/components/contextMenu/contextMenu.js +2 -2
  246. package/dist/esm/components/contextMenu/contextMenu.js.map +1 -1
  247. package/dist/esm/components/datePicker/DatePicker.d.ts +3 -1
  248. package/dist/esm/components/datePicker/DatePicker.js +7 -7
  249. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  250. package/dist/esm/components/dialog/Dialog.js +4 -5
  251. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  252. package/dist/esm/components/dropdownMenu/DropdownMenu.d.ts +6 -3
  253. package/dist/esm/components/dropdownMenu/DropdownMenu.js +13 -8
  254. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  255. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.d.ts +2 -1
  256. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.js +2 -1
  257. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.js.map +1 -1
  258. package/dist/esm/components/dropdownMenu/DropdownTriggerContext.d.ts +5 -0
  259. package/dist/esm/components/dropdownMenu/DropdownTriggerContext.js +11 -0
  260. package/dist/esm/components/dropdownMenu/DropdownTriggerContext.js.map +1 -0
  261. package/dist/esm/components/editableText/EditableText.js +1 -1
  262. package/dist/esm/components/editableText/EditableText.js.map +1 -1
  263. package/dist/esm/components/emojiPicker/EmojiPicker.d.ts +2 -2
  264. package/dist/esm/components/emojiPicker/EmojiPicker.js +4 -4
  265. package/dist/esm/components/emojiPicker/EmojiPicker.js.map +1 -1
  266. package/dist/esm/components/emojiPicker/EmojiPicker.stories.d.ts +1 -1
  267. package/dist/esm/components/forms/CheckboxField.js +1 -1
  268. package/dist/esm/components/forms/CheckboxField.js.map +1 -1
  269. package/dist/esm/components/forms/FieldLabel.d.ts +1 -0
  270. package/dist/esm/components/forms/FieldLabel.js +4 -0
  271. package/dist/esm/components/forms/FieldLabel.js.map +1 -0
  272. package/dist/esm/components/forms/Form.js +1 -2
  273. package/dist/esm/components/forms/Form.js.map +1 -1
  274. package/dist/esm/components/forms/NumberStepperField.js +1 -1
  275. package/dist/esm/components/forms/NumberStepperField.js.map +1 -1
  276. package/dist/esm/components/forms/TextField.d.ts +0 -1
  277. package/dist/esm/components/forms/TextField.js +2 -2
  278. package/dist/esm/components/forms/TextField.js.map +1 -1
  279. package/dist/esm/components/horizontalList/HorizontalList.js +2 -2
  280. package/dist/esm/components/horizontalList/HorizontalList.js.map +1 -1
  281. package/dist/esm/components/imageUploader/ImageUploader.js +6 -7
  282. package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
  283. package/dist/esm/components/input/Input.js +1 -1
  284. package/dist/esm/components/input/Input.js.map +1 -1
  285. package/dist/esm/components/layouts/PageNav.js +1 -1
  286. package/dist/esm/components/layouts/PageNav.js.map +1 -1
  287. package/dist/esm/components/layouts/layouts.stories.js +2 -2
  288. package/dist/esm/components/layouts/layouts.stories.js.map +1 -1
  289. package/dist/esm/components/masonry/masonry.stories.js +1 -1
  290. package/dist/esm/components/masonry/masonry.stories.js.map +1 -1
  291. package/dist/esm/components/navBar/NavBar.d.ts +1 -1
  292. package/dist/esm/components/navBar/NavBar.js +6 -10
  293. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  294. package/dist/esm/components/note/Note.d.ts +3 -1
  295. package/dist/esm/components/note/Note.js +2 -2
  296. package/dist/esm/components/note/Note.js.map +1 -1
  297. package/dist/esm/components/numberStepper/NumberStepper.js +2 -2
  298. package/dist/esm/components/numberStepper/NumberStepper.js.map +1 -1
  299. package/dist/esm/components/peek/Peek.js +1 -1
  300. package/dist/esm/components/peek/Peek.js.map +1 -1
  301. package/dist/esm/components/popover/Popover.js +1 -1
  302. package/dist/esm/components/popover/Popover.js.map +1 -1
  303. package/dist/esm/components/progress/Progress.d.ts +3 -2
  304. package/dist/esm/components/progress/Progress.js +6 -3
  305. package/dist/esm/components/progress/Progress.js.map +1 -1
  306. package/dist/esm/components/progress/Progress.stories.d.ts +2 -2
  307. package/dist/esm/components/richEditor/index.js +1 -1
  308. package/dist/esm/components/richEditor/index.js.map +1 -1
  309. package/dist/esm/components/select/Select.js +4 -4
  310. package/dist/esm/components/select/Select.js.map +1 -1
  311. package/dist/esm/components/skeletons/TextSkeleton.stories.js +1 -1
  312. package/dist/esm/components/skeletons/TextSkeleton.stories.js.map +1 -1
  313. package/dist/esm/components/slider/Slider.d.ts +3 -2
  314. package/dist/esm/components/slider/Slider.js +6 -5
  315. package/dist/esm/components/slider/Slider.js.map +1 -1
  316. package/dist/esm/components/slider/Slider.stories.d.ts +1 -1
  317. package/dist/esm/components/switch/Switch.js +2 -2
  318. package/dist/esm/components/switch/Switch.js.map +1 -1
  319. package/dist/esm/components/tabs/tabs.js +4 -4
  320. package/dist/esm/components/tabs/tabs.js.map +1 -1
  321. package/dist/esm/components/tabs/tabs.stories.d.ts +1 -0
  322. package/dist/esm/components/tabs/tabs.stories.js +6 -0
  323. package/dist/esm/components/tabs/tabs.stories.js.map +1 -1
  324. package/dist/esm/components/toggleGroup/toggleGroup.js +2 -2
  325. package/dist/esm/components/toggleGroup/toggleGroup.js.map +1 -1
  326. package/dist/esm/components/viewport/Viewport.stories.js +1 -1
  327. package/dist/esm/components/viewport/Viewport.stories.js.map +1 -1
  328. package/dist/esm/components/viewport/ViewportZoomControls.js +1 -1
  329. package/dist/esm/components/viewport/ViewportZoomControls.js.map +1 -1
  330. package/dist/esm/themes.stories.js +10 -14
  331. package/dist/esm/themes.stories.js.map +1 -1
  332. package/dist/esm/uno/logic/color.d.ts +29 -0
  333. package/dist/esm/uno/logic/color.js +53 -0
  334. package/dist/esm/uno/logic/color.js.map +1 -0
  335. package/dist/esm/uno/preflights/_util.d.ts +2 -0
  336. package/dist/esm/uno/preflights/_util.js +9 -0
  337. package/dist/esm/uno/preflights/_util.js.map +1 -0
  338. package/dist/esm/uno/preflights/base.d.ts +2 -0
  339. package/dist/esm/uno/preflights/base.js +16 -0
  340. package/dist/esm/uno/preflights/base.js.map +1 -0
  341. package/dist/esm/uno/preflights/colors.d.ts +1 -0
  342. package/dist/esm/uno/preflights/colors.js +164 -0
  343. package/dist/esm/uno/preflights/colors.js.map +1 -0
  344. package/dist/esm/uno/preflights/customization.d.ts +10 -0
  345. package/dist/esm/uno/preflights/customization.js +26 -0
  346. package/dist/esm/uno/preflights/customization.js.map +1 -0
  347. package/dist/esm/uno/preflights/dark.d.ts +1 -0
  348. package/dist/esm/uno/preflights/dark.js +46 -0
  349. package/dist/esm/uno/preflights/dark.js.map +1 -0
  350. package/dist/esm/uno/preflights/globals.d.ts +2 -0
  351. package/dist/esm/uno/preflights/globals.js +55 -0
  352. package/dist/esm/uno/preflights/globals.js.map +1 -0
  353. package/dist/esm/uno/preflights/index.d.ts +3 -0
  354. package/dist/esm/uno/preflights/index.js +16 -0
  355. package/dist/esm/uno/preflights/index.js.map +1 -0
  356. package/dist/esm/uno/preflights/layers.d.ts +2 -0
  357. package/dist/esm/uno/preflights/layers.js +6 -0
  358. package/dist/esm/uno/preflights/layers.js.map +1 -0
  359. package/dist/esm/uno/rules/anchor.d.ts +2 -0
  360. package/dist/esm/uno/rules/anchor.js +22 -0
  361. package/dist/esm/uno/rules/anchor.js.map +1 -0
  362. package/dist/esm/uno/rules/color.d.ts +2 -0
  363. package/dist/esm/uno/rules/color.js +150 -0
  364. package/dist/esm/uno/rules/color.js.map +1 -0
  365. package/dist/esm/uno/rules/index.d.ts +1 -0
  366. package/dist/esm/uno/rules/index.js +14 -0
  367. package/dist/esm/uno/rules/index.js.map +1 -0
  368. package/dist/esm/uno/rules/overflow.d.ts +2 -0
  369. package/dist/esm/uno/rules/overflow.js +41 -0
  370. package/dist/esm/uno/rules/overflow.js.map +1 -0
  371. package/dist/esm/uno/rules/shadow.d.ts +2 -0
  372. package/dist/esm/uno/rules/shadow.js +16 -0
  373. package/dist/esm/uno/rules/shadow.js.map +1 -0
  374. package/dist/esm/uno/rules/util.d.ts +2 -0
  375. package/dist/esm/uno/rules/util.js +31 -0
  376. package/dist/esm/uno/rules/util.js.map +1 -0
  377. package/dist/esm/uno/shortcuts/index.d.ts +2 -0
  378. package/dist/esm/uno/shortcuts/index.js +19 -0
  379. package/dist/esm/uno/shortcuts/index.js.map +1 -0
  380. package/dist/esm/uno/theme/animations.d.ts +3 -0
  381. package/dist/esm/uno/theme/animations.js +210 -0
  382. package/dist/esm/uno/theme/animations.js.map +1 -0
  383. package/dist/esm/uno/theme/borders.d.ts +3 -0
  384. package/dist/esm/uno/theme/borders.js +16 -0
  385. package/dist/esm/uno/theme/borders.js.map +1 -0
  386. package/dist/esm/uno/theme/colors.d.ts +55 -0
  387. package/dist/esm/uno/theme/colors.js +26 -0
  388. package/dist/esm/uno/theme/colors.js.map +1 -0
  389. package/dist/esm/uno/theme/index.d.ts +2 -0
  390. package/dist/esm/uno/theme/index.js +33 -0
  391. package/dist/esm/uno/theme/index.js.map +1 -0
  392. package/dist/esm/uno/theme/shadows.d.ts +2 -0
  393. package/dist/esm/uno/theme/shadows.js +15 -0
  394. package/dist/esm/uno/theme/shadows.js.map +1 -0
  395. package/dist/esm/uno/theme/sizes.d.ts +3 -0
  396. package/dist/esm/uno/theme/sizes.js +14 -0
  397. package/dist/esm/uno/theme/sizes.js.map +1 -0
  398. package/dist/esm/uno/theme/spacing.d.ts +2 -0
  399. package/dist/esm/uno/theme/spacing.js +9 -0
  400. package/dist/esm/uno/theme/spacing.js.map +1 -0
  401. package/dist/esm/uno/theme/typography.d.ts +3 -0
  402. package/dist/esm/uno/theme/typography.js +24 -0
  403. package/dist/esm/uno/theme/typography.js.map +1 -0
  404. package/dist/esm/uno/uno.preset.d.ts +2 -17
  405. package/dist/esm/uno/uno.preset.js +14 -937
  406. package/dist/esm/uno/uno.preset.js.map +1 -1
  407. package/dist/esm/uno/variants/index.d.ts +2 -0
  408. package/dist/esm/uno/variants/index.js +13 -0
  409. package/dist/esm/uno/variants/index.js.map +1 -0
  410. package/dist/esm/utilities.stories.js +1 -1
  411. package/dist/esm/utilities.stories.js.map +1 -1
  412. package/package.json +9 -9
  413. package/src/colors.stories.tsx +6 -6
  414. package/src/components/actions/ActionBar.stories.tsx +2 -2
  415. package/src/components/box/Box.stories.tsx +74 -19
  416. package/src/components/box/Box.tsx +23 -13
  417. package/src/components/button/Button.stories.tsx +45 -11
  418. package/src/components/button/Button.tsx +45 -12
  419. package/src/components/button/classes.tsx +65 -59
  420. package/src/components/camera/Camera.tsx +7 -4
  421. package/src/components/card/Card.stories.tsx +9 -9
  422. package/src/components/card/Card.tsx +12 -9
  423. package/src/components/checkbox/Checkbox.tsx +6 -5
  424. package/src/components/chip/Chip.stories.tsx +58 -0
  425. package/src/components/chip/Chip.tsx +8 -13
  426. package/src/components/colorPicker/ColorPicker.stories.tsx +21 -0
  427. package/src/components/colorPicker/ColorPicker.tsx +2 -1
  428. package/src/components/contextMenu/contextMenu.tsx +6 -4
  429. package/src/components/datePicker/DatePicker.tsx +17 -13
  430. package/src/components/dialog/Dialog.tsx +10 -9
  431. package/src/components/dropdownMenu/DropdownMenu.stories.tsx +5 -2
  432. package/src/components/dropdownMenu/DropdownMenu.tsx +30 -15
  433. package/src/components/dropdownMenu/DropdownTriggerContext.tsx +19 -0
  434. package/src/components/editableText/EditableText.tsx +3 -3
  435. package/src/components/emojiPicker/EmojiPicker.tsx +5 -5
  436. package/src/components/forms/CheckboxField.tsx +1 -1
  437. package/src/components/forms/FieldLabel.tsx +6 -0
  438. package/src/components/forms/Form.tsx +1 -3
  439. package/src/components/forms/NumberStepperField.tsx +1 -5
  440. package/src/components/forms/TextField.tsx +2 -5
  441. package/src/components/horizontalList/HorizontalList.tsx +3 -3
  442. package/src/components/imageUploader/ImageUploader.tsx +12 -7
  443. package/src/components/input/Input.tsx +1 -1
  444. package/src/components/layouts/PageNav.tsx +1 -1
  445. package/src/components/layouts/layouts.stories.tsx +2 -2
  446. package/src/components/masonry/masonry.stories.tsx +2 -1
  447. package/src/components/navBar/NavBar.tsx +12 -19
  448. package/src/components/note/Note.tsx +15 -7
  449. package/src/components/numberStepper/NumberStepper.tsx +3 -3
  450. package/src/components/peek/Peek.tsx +1 -1
  451. package/src/components/popover/Popover.tsx +1 -1
  452. package/src/components/progress/Progress.tsx +13 -6
  453. package/src/components/richEditor/index.tsx +1 -1
  454. package/src/components/select/Select.tsx +6 -6
  455. package/src/components/skeletons/TextSkeleton.stories.tsx +1 -1
  456. package/src/components/slider/Slider.tsx +14 -10
  457. package/src/components/switch/Switch.tsx +8 -2
  458. package/src/components/tabs/tabs.stories.tsx +22 -0
  459. package/src/components/tabs/tabs.tsx +14 -7
  460. package/src/components/toggleGroup/toggleGroup.tsx +6 -4
  461. package/src/components/viewport/Viewport.stories.tsx +1 -1
  462. package/src/components/viewport/ViewportZoomControls.tsx +3 -3
  463. package/src/themes.stories.tsx +43 -29
  464. package/src/uno/logic/color.ts +99 -0
  465. package/src/uno/preflights/_util.ts +10 -0
  466. package/src/uno/preflights/base.ts +17 -0
  467. package/src/uno/preflights/colors.ts +165 -0
  468. package/src/uno/preflights/customization.ts +44 -0
  469. package/src/uno/preflights/dark.ts +47 -0
  470. package/src/uno/preflights/globals.ts +55 -0
  471. package/src/uno/preflights/index.ts +21 -0
  472. package/src/uno/preflights/layers.ts +7 -0
  473. package/src/uno/rules/anchor.ts +22 -0
  474. package/src/uno/rules/color.ts +153 -0
  475. package/src/uno/rules/index.ts +13 -0
  476. package/src/uno/rules/overflow.ts +45 -0
  477. package/src/uno/rules/shadow.ts +16 -0
  478. package/src/uno/rules/util.ts +31 -0
  479. package/src/uno/shortcuts/index.ts +21 -0
  480. package/src/uno/theme/animations.ts +211 -0
  481. package/src/uno/theme/borders.ts +17 -0
  482. package/src/uno/theme/colors.ts +35 -0
  483. package/src/uno/theme/index.ts +33 -0
  484. package/src/uno/theme/shadows.ts +15 -0
  485. package/src/uno/theme/sizes.ts +15 -0
  486. package/src/uno/theme/spacing.ts +9 -0
  487. package/src/uno/theme/typography.ts +24 -0
  488. package/src/uno/uno.preset.ts +21 -1036
  489. package/src/uno/variants/index.ts +12 -0
  490. package/src/utilities.stories.tsx +4 -2
  491. package/dist/cjs/uno/colors.d.ts +0 -65
  492. package/dist/cjs/uno/colors.js +0 -138
  493. package/dist/cjs/uno/colors.js.map +0 -1
  494. package/dist/cjs/uno/shadows.d.ts +0 -6
  495. package/dist/cjs/uno/shadows.js +0 -20
  496. package/dist/cjs/uno/shadows.js.map +0 -1
  497. package/dist/esm/uno/colors.d.ts +0 -65
  498. package/dist/esm/uno/colors.js +0 -131
  499. package/dist/esm/uno/colors.js.map +0 -1
  500. package/dist/esm/uno/shadows.d.ts +0 -6
  501. package/dist/esm/uno/shadows.js +0 -17
  502. package/dist/esm/uno/shadows.js.map +0 -1
  503. package/src/uno/colors.ts +0 -154
  504. package/src/uno/shadows.ts +0 -15
@@ -1,80 +1,86 @@
1
1
  import clsx from 'clsx';
2
+ import { PaletteName } from '../../uno/logic/color.js';
2
3
  import { type ButtonProps } from './Button.jsx';
3
4
 
4
- const sizeMap = {
5
- default: 'default',
6
- small: 'small',
7
- icon: 'default',
8
- 'icon-small': 'small',
9
- } satisfies Record<string, 'default' | 'small'>;
10
-
11
5
  export function getButtonClassName({
12
6
  color,
13
- size: rawSize,
7
+ emphasis = 'default',
8
+ size = 'default',
14
9
  toggleable,
15
10
  align,
16
11
  disableIconMode,
17
12
  }: {
18
- color?: ButtonProps['color'];
13
+ color?: PaletteName;
14
+ emphasis?: ButtonProps['emphasis'];
19
15
  size?: ButtonProps['size'];
20
16
  toggleable?: boolean;
21
17
  align?: ButtonProps['align'];
22
18
  disableIconMode?: boolean;
23
19
  }) {
24
- const size = sizeMap[rawSize ?? 'default'];
20
+ if (emphasis === 'unstyled') {
21
+ return clsx(
22
+ 'layer-components:(p-0 m-0 border-none bg-transparent appearance-none)',
23
+ 'layer-components:(cursor-pointer)',
24
+ 'layer-components:focus:outline-off',
25
+ );
26
+ }
25
27
 
26
28
  return clsx(
27
- 'layer-components:(px-4 py-2 bg-[var(--bg-neutral,var(--bg))] [--webkit-tap-highlight-color:transparent] [line-height:1] text-size-md font-inherit border-solid border-thin border-transparent rounded-lg cursor-pointer font-bold flex flex-row gap-sm items-center relative overflow-visible select-none all:transition duration-200 whitespace-nowrap ring-bg)',
28
- 'layer-components:hover:(bg-[var(--bg)] bg-darken-1 ring-4)',
29
+ color && `palette-${color}`,
30
+ 'layer-components:(px-4 py-2)',
31
+ 'layer-components:(leading-none text-md font-inherit font-bold select-none)',
32
+ 'layer-components:(border-solid border-thin border-color rounded-lg)',
33
+ 'layer-components:(cursor-pointer)',
34
+ 'layer-components:(flex flex-row gap-sm items-center)',
35
+ 'layer-components:(relative overflow-visible whitespace-nowrap)',
36
+ 'layer-components:(transition-all duration-200)',
37
+ 'layer-components:(shadow-sm ring-bg)',
38
+ 'layer-components:(color-contrast)',
39
+
40
+ emphasis === 'ghost' && 'layer-variants:(shadow-none border-none)',
41
+ emphasis === 'contrast' && 'layer-variants:(border-bg hover:bg-gray-ink)',
42
+
43
+ {
44
+ 'layer-components:bg-main': emphasis === 'primary',
45
+ 'layer-components:(bg-main-light color-main-ink)': emphasis === 'light',
46
+ 'layer-components:bg-white layer-variants:focus-visible:bg-white':
47
+ emphasis === 'default',
48
+ 'layer-components:(bg-transparent aria-pressed:bg-main-wash)':
49
+ emphasis === 'ghost',
50
+ 'layer-components:(bg-black)': emphasis === 'contrast',
51
+ },
52
+ color === 'gray' && '[--l-saturation:0] hov',
53
+
54
+ {
55
+ 'layer-components:(px-4 py-1 text-sm rounded-md)': size === 'small',
56
+ 'layer-components:[&[data-has-icon=true][data-has-label=false]]:(p-2.35 text-sm rounded-lg)':
57
+ size === 'default' && !disableIconMode,
58
+ 'layer-components:[&[data-has-icon=true][data-has-label=false]]:(p-2 text-xs rounded-lg -m-y-0.5)':
59
+ size === 'small' && !disableIconMode,
60
+ },
61
+
62
+ 'layer-components:hover:(bg-main bg-lighten-2 ring-4)',
63
+
29
64
  'layer-components:focus:outline-off',
30
- 'layer-components:focus-visible:(bg-[var(--bg)] outline-off bg-darken-1 ring-6)',
31
- 'layer-components:[&[data-focus=true]]:(bg-[var(--bg)] ring-6 bg-darken-1)',
32
- 'layer-components:active:(bg-[var(--bg)] bg-darken-1 ring-8)',
33
- 'layer-components:disabled:(opacity-50 cursor-default bg-[var(--bg)] shadow-none ring-none)',
34
- 'layer-components:[&[data-disabled=true]]:(opacity-50 cursor-default bg-[var(--bg)] shadow-none)',
35
- colors[color ?? 'default'],
36
- `btn-color-${color ?? 'default'}`,
37
- sizes[size ?? 'default'],
38
- disableIconMode ? '' : iconModeSizes[size ?? 'default'],
39
- `size-${size ?? 'default'}`,
40
- toggleable && toggledClass,
41
- align && aligns[align],
42
- // compound variants
43
- color === 'ghost' &&
44
- toggleable &&
45
- 'layer-variants:[aria-pressed="true"]:[--bg:var(--color-primary-wash)]',
46
- );
47
- }
65
+ 'layer-components:focus-visible:(outline-off ring-accent ring-6)',
66
+ 'layer-components:[&[data-focus=true]]:(ring-6 ring-accent outline-off)',
67
+
68
+ 'layer-components:active:(bg-darken-1 ring-8)',
48
69
 
49
- const colors = {
50
- primary: `layer-variants:[&.btn-color-primary]:([--bg:var(--color-primary)] shadow-sm color-black border-primary-dark)`,
51
- accent: `layer-variants:[&.btn-color-accent]:([--bg-neutral:var(--color-accent-wash)] [--bg:var(--color-accent-light)] shadow-sm color-black border-accent-dark)`,
52
- default: `layer-variants:[&.btn-color-default]:([--bg-neutral:var(--color-white)] [--bg:var(--color-gray)] bg-lighten-1 shadow-sm color-black border-gray-dark focus-visible:bg-lighten-1 hover:bg-lighten-1)`,
53
- ghost: `layer-variants:[&.btn-color-ghost]:([--bg-neutral:transparent] [--bg:oklch(from_var(--color-gray)_l_c_h/50%)] color-dark-blend)`,
54
- destructive: `layer-variants:[&.btn-color-destructive]:([--bg:var(--color-attention)] shadow-sm border-attention-dark color-black)`,
55
- ghostDestructive: `layer-variants:[&.btn-color-ghostDestructive]:([--bg-neutral:transparent] [--bg:var(--color-attention-light)] color-attention-dark hover:(color-black) focus-visible:(color-black))`,
56
- ghostAccent: `layer-variants:[&.btn-color-ghostAccent]:([--bg-neutral:transparent] [--bg:var(--color-accent-light)] color-accent-dark hover:color-black focus-visible:color-black)`,
57
- contrast: `layer-variants:[&.btn-color-contrast]:([--bg:var(--color-black)] color-white border-black hover:bg-lighten-1 focus-visible:bg-lighten-1 active:bg-lighten-1)`,
58
- unstyled: `layer-variants:(bg-transparent hover:(bg-transparent) focus:(bg-transparent) active:(bg-transparent) color-inherit border-transparent shadow-none hover:(shadow-none) focus:(shadow-none) active:(shadow-none) p-0 items-start font-inherit font-normal rounded-none text-size-inherit transition-none)`,
59
- };
60
- export const buttonColorClasses = colors;
70
+ 'layer-components:disabled:(opacity-50 cursor-default shadow-none ring-none)',
71
+ 'layer-components:[&[data-disabled=true]]:(opacity-50 cursor-default shadow-none)',
61
72
 
62
- const sizes = {
63
- default: '',
64
- small: 'layer-variants:[&.size-small]:(px-4 py-1 text-sm rounded-md)',
65
- };
66
- const iconModeSizes = {
67
- default:
68
- 'layer-variants:[&[data-has-icon=true][data-has-label=false]]:(p-2.35 text-sm rounded-lg)',
69
- small:
70
- 'layer-variants:[&.size-small[data-has-icon=true][data-has-label=false]]:(p-2 text-xs rounded-lg -m-y-0.5)',
71
- };
73
+ {
74
+ 'layer-variants:[&[aria-pressed=false]]:[&:not(:hover)]:bg-transparent':
75
+ toggleable,
76
+ },
72
77
 
73
- const toggledClass =
74
- 'layer-variants:(bg-transparent aria-pressed:bg-[var(--bg)] hover:(filter-brightness-[1.1]))';
78
+ {
79
+ 'layer-components:self-start': align === 'start',
80
+ 'layer-components:self-stretch': align === 'stretch',
81
+ 'layer-components:self-end': align === 'end',
82
+ },
75
83
 
76
- const aligns = {
77
- start: 'self-start',
78
- stretch: 'self-stretch',
79
- end: 'self-end',
80
- };
84
+ `size-${size ?? 'default'}`,
85
+ );
86
+ }
@@ -217,7 +217,7 @@ const StyledShutterButton = withClassName(
217
217
  'absolute bottom-3 left-1/2 -translate-x-1/2 w-16 h-16 bg-white rounded-full cursor-pointer border-2 border-black border-solid ring-2 ring-white opacity-80',
218
218
  'hover:bg-gray-wash hover:opacity-100',
219
219
  'focus-visible:bg-lighten-1',
220
- 'focus:ring-primary focus:outline-none focus:opacity-100',
220
+ 'focus:ring-accent focus:outline-none focus:opacity-100',
221
221
  'sm:w-8 sm:h-8',
222
222
  );
223
223
 
@@ -244,7 +244,7 @@ export const CameraDeviceSelector = (props: CameraDeviceSelectorProps) => {
244
244
  if (devices.length === 2) {
245
245
  return (
246
246
  <Button
247
- color="ghost"
247
+ emphasis="ghost"
248
248
  className="absolute bottom-2 left-2 color-white"
249
249
  onClick={swapCamera}
250
250
  >
@@ -259,7 +259,10 @@ export const CameraDeviceSelector = (props: CameraDeviceSelectorProps) => {
259
259
  onValueChange={selectDeviceId}
260
260
  >
261
261
  <Select.Trigger asChild>
262
- <Button color="ghost" className="absolute bottom-2 left-2 color-white">
262
+ <Button
263
+ emphasis="ghost"
264
+ className="absolute bottom-2 left-2 color-white"
265
+ >
263
266
  <Icon name="refresh" />
264
267
  </Button>
265
268
  </Select.Trigger>
@@ -279,7 +282,7 @@ export const CameraFullscreenButton = (props: ButtonProps) => {
279
282
  return (
280
283
  <Button
281
284
  {...props}
282
- color="ghost"
285
+ emphasis="ghost"
283
286
  className="absolute top-2 right-2 color-white"
284
287
  onClick={() => setFullscreen(!fullscreen)}
285
288
  >
@@ -51,7 +51,7 @@ export const Default: Story = {
51
51
  </Button>
52
52
  </CardActions>
53
53
  <CardMenu>
54
- <Button size="small" color="ghost">
54
+ <Button size="small" emphasis="ghost">
55
55
  <Icon name="dots" />
56
56
  </Button>
57
57
  </CardMenu>
@@ -68,7 +68,7 @@ export const Default: Story = {
68
68
  <CardFooter>
69
69
  <CardActions>
70
70
  <Button size="small">Button</Button>
71
- <Button size="small" color="ghost">
71
+ <Button size="small" emphasis="ghost">
72
72
  <Icon name="placeholder" />
73
73
  </Button>
74
74
  </CardActions>
@@ -89,7 +89,7 @@ export const Compact: Story = {
89
89
  <CardFooter>
90
90
  <CardActions>
91
91
  <Button size="small">Button</Button>
92
- <Button size="small" color="ghost">
92
+ <Button size="small" emphasis="ghost">
93
93
  <Icon name="placeholder" />
94
94
  </Button>
95
95
  </CardActions>
@@ -108,7 +108,7 @@ export const NonInteractive: Story = {
108
108
  <CardFooter>
109
109
  <CardActions>
110
110
  <Button size="small">Button</Button>
111
- <Button color="ghost">
111
+ <Button emphasis="ghost">
112
112
  <Icon name="placeholder" />
113
113
  </Button>
114
114
  </CardActions>
@@ -129,7 +129,7 @@ export const AsChild: Story = {
129
129
  <CardFooter>
130
130
  <CardActions>
131
131
  <Button size="small">Button</Button>
132
- <Button color="ghost">
132
+ <Button emphasis="ghost">
133
133
  <Icon name="placeholder" />
134
134
  </Button>
135
135
  </CardActions>
@@ -150,7 +150,7 @@ export const AsChildNonInteractive: Story = {
150
150
  <CardFooter>
151
151
  <CardActions>
152
152
  <Button size="small">Button</Button>
153
- <Button color="ghost">
153
+ <Button emphasis="ghost">
154
154
  <Icon name="placeholder" />
155
155
  </Button>
156
156
  </CardActions>
@@ -249,7 +249,7 @@ export const VisuallyFocused: Story = {
249
249
  <CardFooter>
250
250
  <CardActions>
251
251
  <Button size="small">Button</Button>
252
- <Button color="ghost">
252
+ <Button emphasis="ghost">
253
253
  <Icon name="placeholder" />
254
254
  </Button>
255
255
  </CardActions>
@@ -270,7 +270,7 @@ export const CardsInBox: Story = {
270
270
  <CardFooter>
271
271
  <CardActions>
272
272
  <Button size="small">Button</Button>
273
- <Button color="ghost">
273
+ <Button emphasis="ghost">
274
274
  <Icon name="placeholder" />
275
275
  </Button>
276
276
  </CardActions>
@@ -284,7 +284,7 @@ export const CardsInBox: Story = {
284
284
  <CardFooter>
285
285
  <CardActions>
286
286
  <Button size="small">Button</Button>
287
- <Button color="ghost">
287
+ <Button emphasis="ghost">
288
288
  <Icon name="placeholder" />
289
289
  </Button>
290
290
  </CardActions>
@@ -8,7 +8,7 @@ import { SlotDiv } from '../utility/SlotDiv.js';
8
8
 
9
9
  export const CardRoot = withClassName(
10
10
  withProps(Box, { container: 'reset' }),
11
- 'layer-components:(flex flex-col border-light rounded-lg text-lg overflow-hidden h-max-content relative bg-wash bg-darken-1 color-black shadow-sm)',
11
+ 'layer-components:(flex flex-col border-light rounded-lg text-lg overflow-hidden h-max-content relative bg-wash bg-darken-0.5 color-black shadow-sm)',
12
12
  'layer-variants:[&[data-borderless=true]]:(border-none shadow-md)',
13
13
  );
14
14
 
@@ -41,10 +41,13 @@ export function CardMain({
41
41
  !!compact && 'layer-variants:(pb-0)',
42
42
  isInteractive &&
43
43
  classNames(
44
- 'layer-components:cursor-pointer layer-components:hover:(bg-gray-blend color-black shadow-sm-inset) layer-components:focus:outline-none',
45
- 'layer-components:focus-visible:(outline-none ring-inset ring-4 ring-gray)',
46
- 'layer-components:[&[data-visually-focused=true]]:(ring-inset ring-4 ring-gray)',
47
- 'layer-components:[&[data-visually-disabled=true]]:(cursor-default) layer-components:disabled:(cursor-default)',
44
+ 'layer-components:cursor-pointer',
45
+ 'layer-components:hover:(bg-black/10 color-black)',
46
+ 'layer-components:focus:outline-none',
47
+ 'layer-components:focus-visible:(outline-none bg-black/10 ring-inset ring-4 ring-accent)',
48
+ 'layer-components:[&[data-visually-focused=true]]:(bg-black/10 ring-inset ring-4 ring-accent)',
49
+ 'layer-components:disabled:(cursor-default)',
50
+ 'layer-components:[&[data-visually-disabled=true]]:(cursor-default)',
48
51
  ),
49
52
  className,
50
53
  )}
@@ -59,14 +62,14 @@ export function CardMain({
59
62
 
60
63
  export const CardTitle = withClassName(
61
64
  'div',
62
- 'layer-components:(flex flex-col gap-1 mt-0 bg-white py-2 px-3 rounded-lg rounded-bl-none rounded-tr-none w-auto mr-auto border border-solid border-gray-dark-blend text-md max-h-80px overflow-hidden text-ellipsis max-w-full text-inherit font-semibold relative z-1 transition-colors)',
65
+ 'layer-components:(flex flex-col gap-1 mt-0 bg-white py-2 px-3 rounded-lg rounded-bl-none rounded-tr-none w-auto mr-auto border border-solid border-gray-dark/50 border-t-none border-l-none text-md max-h-80px overflow-hidden text-ellipsis max-w-full text-inherit font-semibold relative z-1 transition-colors)',
63
66
  'layer-components:[[data-compact=true]_&]:(py-1 text-sm)',
64
67
  'layer-components:[[data-interactive=true]:hover>&]:(bg-darken-2)',
65
68
  );
66
69
 
67
70
  const CardContentRoot = withClassName(
68
71
  'div',
69
- 'layer-components:(flex flex-col gap-1 px-2 py-1 bg-light-blend color-black rounded-md mx-2 my-0.5 border border-solid border-gray-dark-blend text-xs relative z-1)',
72
+ 'layer-components:(flex flex-col gap-1 px-2 py-1 bg-white/80 color-black rounded-md mx-2 my-0.5 border border-solid border-gray-dark/50 text-xs relative z-1)',
70
73
  'layer-variants:[[data-compact=true]_&]:(py-0 px-1 my-0 text-xs)',
71
74
  'layer-variants:[&[data-unstyled=true]]:(p-0 [background:unset] border-none)',
72
75
  );
@@ -90,12 +93,12 @@ export const CardFooter = withClassName(
90
93
 
91
94
  export const CardActions = withClassName(
92
95
  'div',
93
- 'layer-components:(ml-0 mr-auto flex flex-row gap-2 items-center bg-white rounded-lg p-0 border border-solid border-gray-dark-blend)',
96
+ 'layer-components:(ml-0 mr-auto flex flex-row gap-2 items-center bg-white/50 rounded-lg p-0 border border-solid border-gray-dark/50)',
94
97
  );
95
98
 
96
99
  export const CardMenu = withClassName(
97
100
  'div',
98
- 'layer-components:(mr-0 ml-auto my-auto flex flex-row gap-1 items-center bg-overlay py-0.5 rounded-lg p-0)',
101
+ 'layer-components:(mr-0 ml-auto my-auto flex flex-row gap-1 items-center bg-white/50 py-0.5 rounded-lg p-0)',
99
102
  );
100
103
 
101
104
  export const cardGridColumns = {
@@ -25,12 +25,13 @@ export function CheckboxRoot({
25
25
  <CheckboxPrimitive.Root
26
26
  {...props}
27
27
  className={classNames(
28
- 'layer-components:(w-28px h-28px flex-shrink-0 relative bg-white border-default transition rounded-lg shadow-sm)',
29
- 'layer-components:focus-visible:(outline-off ring-4 ring-primary)',
28
+ 'layer-components:(w-28px h-28px flex-shrink-0 relative bg-white border border-default transition-all rounded-lg shadow-sm cursor-pointer)',
29
+ 'layer-components:focus-visible:(outline-off ring-4 ring-accent)',
30
30
  checkedMode === 'faded'
31
- ? 'layer-components:[&[data-state=checked]]:(bg-primary animate-checkbox-fade animate-forwards)'
32
- : 'layer-components:[&[data-state=checked]]:(bg-primary border-primary-dark)',
33
- 'layer-components:[&:hover:not(:disabled)]:shadow-[0_0_0_1px_var(--color-black)]',
31
+ ? 'layer-components:[&[data-state=checked]]:(bg-main animate-checkbox-fade animate-forwards)'
32
+ : 'layer-components:[&[data-state=checked]]:(bg-main border-main-ink)',
33
+ 'layer-components:[&:hover:not(:disabled)]:(bg-lighten-2 ring-bg ring-2)',
34
+ 'layer-components:[&:active:not(:disabled)]:(bg-darken-1 ring-4)',
34
35
  'layer-components:[&:disabled]:(bg-transparent border-gray-light shadow-none)',
35
36
  className,
36
37
  )}
@@ -0,0 +1,58 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Box } from '../box/Box.js';
3
+ import { Button } from '../button/Button.js';
4
+ import { Chip } from './Chip.js';
5
+
6
+ const meta = {
7
+ title: 'Components/Chip',
8
+ component: Chip,
9
+ argTypes: {},
10
+ args: {
11
+ children: 'Chip',
12
+ },
13
+ parameters: {
14
+ controls: { expanded: true },
15
+ },
16
+ } satisfies Meta<typeof Chip>;
17
+
18
+ export default meta;
19
+
20
+ type Story = StoryObj<typeof Chip>;
21
+
22
+ export const Default: Story = {
23
+ render(args) {
24
+ return <Chip {...args} />;
25
+ },
26
+ };
27
+
28
+ export const Colors: Story = {
29
+ render() {
30
+ return (
31
+ <div style={{ display: 'flex', gap: '12px' }}>
32
+ <Chip color="gray">Gray</Chip>
33
+ <Chip color="primary">Primary</Chip>
34
+ <Chip color="accent">Accent</Chip>
35
+ <Chip color="attention">Attention</Chip>
36
+ <Chip color="success">Success</Chip>
37
+ <Chip color="lemon">Lemon</Chip>
38
+ <Chip color="leek">Leek</Chip>
39
+ <Chip color="tomato">Tomato</Chip>
40
+ <Chip color="blueberry">Blueberry</Chip>
41
+ <Chip color="eggplant">Eggplant</Chip>
42
+ </div>
43
+ );
44
+ },
45
+ };
46
+
47
+ export const AsButton: Story = {
48
+ render() {
49
+ return (
50
+ <Box gap items="center">
51
+ <Button asChild>
52
+ <Chip color="primary">Clickable Chip</Chip>
53
+ </Button>
54
+ <Chip>Non-clickable Chip</Chip>
55
+ </Box>
56
+ );
57
+ },
58
+ };
@@ -1,32 +1,27 @@
1
1
  import { Slot } from '@radix-ui/react-slot';
2
2
  import classNames from 'clsx';
3
3
  import { HTMLAttributes, Ref } from 'react';
4
+ import { PaletteName } from '../../uno/logic/color.js';
4
5
 
5
6
  export interface ChipProps extends HTMLAttributes<HTMLElement> {
6
- color?: 'neutral' | 'primary' | 'accent';
7
+ color?: PaletteName;
7
8
  asChild?: boolean;
8
9
  ref?: Ref<any>;
9
10
  }
10
11
 
11
- export function Chip({
12
- className,
13
- color = 'neutral',
14
- asChild,
15
- ref,
16
- ...rest
17
- }: ChipProps) {
12
+ export function Chip({ className, color, asChild, ref, ...rest }: ChipProps) {
18
13
  const Component = asChild ? Slot : 'div';
19
14
  return (
20
15
  <Component
21
16
  ref={ref}
22
17
  className={classNames(
23
- 'layer-components:(inline-flex flex-row gap-1 items-center whitespace-nowrap border-light border-solid border rounded-lg px-2 py-1 clor-black)',
24
- {
25
- 'layer-variants:bg-primary-wash': color === 'primary',
26
- 'layer-variants:bg-accent-wash': color === 'accent',
27
- },
18
+ color && `palette-${color}`,
19
+ 'layer-composed:(inline-flex flex-row gap-1 items-center whitespace-nowrap)',
20
+ 'layer-composed:(bg-main-wash color-contrast border-light border-solid border rounded-lg)',
21
+ 'layer-composed:(px-sm py-xs text-xs)',
28
22
  className,
29
23
  )}
24
+ role={rest.onClick ? 'button' : undefined}
30
25
  {...rest}
31
26
  />
32
27
  );
@@ -0,0 +1,21 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { ColorPicker } from './ColorPicker.js';
3
+
4
+ const meta = {
5
+ title: 'Components/ColorPicker',
6
+ component: ColorPicker,
7
+ argTypes: {},
8
+ parameters: {
9
+ controls: { expanded: true },
10
+ },
11
+ } satisfies Meta<typeof ColorPicker>;
12
+
13
+ export default meta;
14
+
15
+ type Story = StoryObj<typeof ColorPicker>;
16
+
17
+ export const Default: Story = {
18
+ render(args) {
19
+ return <ColorPicker {...args} />;
20
+ },
21
+ };
@@ -32,13 +32,14 @@ export function ColorPicker({ value, onChange, showSalt }: ColorPickerProps) {
32
32
  'leek',
33
33
  'blueberry',
34
34
  'eggplant',
35
+ 'salt',
35
36
  ].includes(value || '')
36
37
  ? (value as ThemeName)
37
38
  : 'lemon';
38
39
 
39
40
  return (
40
41
  <Select value={resolvedValue} onValueChange={onChange}>
41
- <SelectTrigger>
42
+ <SelectTrigger className="layer-composed:p-sm">
42
43
  <SelectValue />
43
44
  </SelectTrigger>
44
45
  <SelectContent className="z-[calc(var(--z-dialog)+1)]">
@@ -23,7 +23,7 @@ export const ContextMenuContent = function Content({
23
23
  'layer-components:transform-origin-[var(--radix-context-menu-transform-origin)]',
24
24
  'layer-components:[&[data-state=open]]:animate-popover-in',
25
25
  'layer-components:[&[data-state=closed]]:animate-popover-out',
26
- 'layer-components:(max-h-[var(--radix-context-menu-content-available-height)] overflow-y-auto)',
26
+ 'layer-components:(max-h-[var(--radix-context-menu-content-available-height)] overflow-y-auto overflow-unstable)',
27
27
  'important:motion-reduce:animate-none',
28
28
  className,
29
29
  )}
@@ -42,13 +42,15 @@ export const ContextMenuContent = function Content({
42
42
 
43
43
  export const ContextMenuArrow = withClassName(
44
44
  ContextMenuPrimitive.Arrow,
45
- 'layer-components:(arrow)',
45
+ 'layer-components:arrow',
46
46
  );
47
47
 
48
48
  export const ContextMenuItem = withClassName(
49
49
  ContextMenuPrimitive.Item,
50
- 'layer-components:(flex items-center py-1 px-2 relative pl-25px select-none outline-none cursor-pointer)',
51
- 'layer-components:(hover:(bg-gray bg-lighten-3) [&[data-highlighted=true]]:(bg-gray bg-lighten-3) [&[data-disabled=true]]:(opacity-50 cursor-default) disabled:(opacity-50 cursor-default))',
50
+ 'palette-gray',
51
+ 'layer-components:(flex items-center overflow-hidden min-h-touch py-sm px-2 relative pl-25px select-none outline-none cursor-pointer)',
52
+ 'layer-components:hover:bg-main-light layer-components:[&[data-highlighted=true]]:bg-main-light',
53
+ 'layer-components:[&[data-disabled=true]]:(opacity-50 cursor-default) layer-components:disabled:(opacity-50 cursor-default))',
52
54
  );
53
55
 
54
56
  export const ContextMenuTrigger = withClassName(
@@ -6,6 +6,7 @@ import {
6
6
  import classNames from 'clsx';
7
7
  import { useCallback, useState } from 'react';
8
8
  import { withClassName } from '../../hooks.js';
9
+ import { PaletteName } from '../../uno/logic/color.js';
9
10
  import { Button } from '../button/index.js';
10
11
  import { Icon } from '../icon/index.js';
11
12
 
@@ -13,12 +14,14 @@ export interface DatePickerProps {
13
14
  value: Date | null;
14
15
  onChange: (date: Date | null) => void;
15
16
  className?: string;
17
+ color?: PaletteName;
16
18
  }
17
19
 
18
20
  export function DatePicker({
19
21
  value,
20
22
  onChange,
21
23
  className,
24
+ color,
22
25
  ...rest
23
26
  }: DatePickerProps) {
24
27
  const [{ month, year }, setDisplay] = useState(() => ({
@@ -33,14 +36,15 @@ export function DatePicker({
33
36
  return (
34
37
  <div
35
38
  className={classNames(
36
- 'flex flex-col items-center justify-center w-[calc(var(--day-size,32px)*7)]',
39
+ color && `palette-${color}`,
40
+ 'layer-components:(flex flex-col items-center justify-center w-[calc(var(--day-size,32px)*7)])',
37
41
  className,
38
42
  )}
39
43
  {...rest}
40
44
  >
41
45
  <MonthRow>
42
46
  <MonthButton
43
- color="ghost"
47
+ emphasis="ghost"
44
48
  onClick={() =>
45
49
  setDisplay((cur) => ({
46
50
  month: cur.month - 1,
@@ -52,7 +56,7 @@ export function DatePicker({
52
56
  </MonthButton>
53
57
  <MonthLabel>{monthLabel}</MonthLabel>
54
58
  <MonthButton
55
- color="ghost"
59
+ emphasis="ghost"
56
60
  onClick={() =>
57
61
  setDisplay((cur) => ({
58
62
  month: cur.month + 1,
@@ -141,7 +145,7 @@ export function DateRangePicker({
141
145
  >
142
146
  <RangeLayout>
143
147
  <MonthButton
144
- color="ghost"
148
+ emphasis="ghost"
145
149
  className="[grid-area:prevMonth]"
146
150
  onClick={() =>
147
151
  setDisplay((cur) => ({
@@ -157,7 +161,7 @@ export function DateRangePicker({
157
161
  {nextMonthLabel}
158
162
  </MonthLabel>
159
163
  <MonthButton
160
- color="ghost"
164
+ emphasis="ghost"
161
165
  className="[grid-area:nextMonth]"
162
166
  onClick={() =>
163
167
  setDisplay((cur) => ({
@@ -208,16 +212,16 @@ const CalendarDay = withClassName(
208
212
  BaseCalendarDay,
209
213
  'border border-solid border-transparent bg-white mr--1px mb--1px relative color-black',
210
214
  'flex items-center justify-center transition cursor-pointer',
211
- '[&[data-highlighted]]:(z-1 outline-accent)',
212
- 'hover:(z-1 outline-accent)',
213
- 'active:(bg-accent-light rounded)',
214
- '[&[data-selected]]:(bg-accent z-2 rounded)',
215
- '[&[data-in-range]]:(bg-accent-wash bg-darken-2 rounded-none z-1)',
216
- '[&[data-range-start]]:(bg-accent rounded-l rounded-r-none z-1)',
217
- '[&[data-range-end]]:(bg-accent rounded-r rounded-l-none z-1)',
215
+ '[&[data-highlighted]]:(z-1 ring-2 ring-accent)',
216
+ 'hover:(z-1 ring-2 ring-accent)',
217
+ 'active:(bg-main-light rounded)',
218
+ '[&[data-selected]]:(bg-main z-2 rounded)',
219
+ '[&[data-in-range]]:(bg-main-light rounded-none z-1)',
220
+ '[&[data-range-start]]:(bg-main rounded-l rounded-r-none z-1)',
221
+ '[&[data-range-end]]:(bg-main rounded-r rounded-l-none z-1)',
218
222
  'disabled:(opacity-50 cursor-default)',
219
223
  // today dot
220
- "[&[data-today]]:before:(content-[''] absolute left-[2px] top-[2px] w-[6px] h-[6px] rounded-lg bg-primary)",
224
+ "[&[data-today]]:before:(content-[''] absolute left-[1px] top-[1px] w-[6px] h-[6px] rounded-lg bg-attention border-1 border-solid border-black)",
221
225
  // calendar edges
222
226
  '[&[data-top-edge]]:(border-t-gray)',
223
227
  '[&[data-bottom-edge]]:(border-b-gray)',
@@ -1,5 +1,3 @@
1
- 'use client';
2
-
3
1
  import * as DialogPrimitive from '@radix-ui/react-dialog';
4
2
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
5
3
  import { useDrag } from '@use-gesture/react';
@@ -25,7 +23,7 @@ import { selectTriggerClassName } from '../select/index.js';
25
23
 
26
24
  const StyledOverlay = withClassName(
27
25
  DialogPrimitive.Overlay,
28
- 'layer-components:(fixed inset-0 z-dialog-backdrop animate-fade-in animate-duration-200 bg-overlay [box-shadow:inset_0_30px_60px_0px_var(--color-overlay)] border-top-1 border-top-solid border-top-gray)',
26
+ 'layer-components:(fixed inset-0 z-backdrop animate-fade-in animate-duration-200 bg-black/15 [box-shadow:inset_0_30px_60px_0px_var(--color-overlay)] border-top-1 border-top-solid border-top-gray)',
29
27
  'layer-components:[&[data-state=closed]]:animate-fade-out',
30
28
  'motion-reduce:animate-none',
31
29
  );
@@ -33,14 +31,17 @@ const StyledOverlay = withClassName(
33
31
  const StyledContent = withClassName(
34
32
  DialogPrimitive.Content,
35
33
  'layer-components:(z-dialog fixed shadow-xl shadow-up bg-white overflow-y-auto border border-gray flex flex-col border border-gray-dark)',
36
- 'layer-components:sm:(shadow-down)',
34
+ 'layer-components:sm:shadow-down',
37
35
  'transform-gpu !motion-reduce:animate-none',
38
36
  'layer-components:(left-50% top-50% translate-[-50%] w-90vw max-w-450px max-h-85vh p-6 pt-8 rounded-lg border-b-1 pt-6)',
39
- 'layer-components:(animate-dialog-in [&[data-state=closed]]:animate-dialog-out motion-reduce:animate-none)',
37
+ 'layer-components:animate-dialog-in',
38
+ 'layer-components:[&[data-state=closed]]:animate-dialog-out',
40
39
  );
41
40
  const sheetClassNames = classNames(
42
- 'layer-variants:lt-sm:(translate-0 left-0 right-0 top-auto h-min-content rounded-tl-xl rounded-tr-xl rounded-b-0 p-6 pt-8 w-full max-w-none pb-[calc(3rem+env(safe-area-inset-bottom,0px))] border-b-0)',
43
- 'layer-variants:lt-sm:(animate-ease-in animate-fade-in-up [&[data-state=closed]]:animate-fade-out-down)',
41
+ 'layer-variants:lt-sm:(translate-0 left-0 right-0 top-auto h-min-content rounded-tl-xl rounded-tr-xl rounded-b-0 border-b-0 p-6 pt-8 w-full max-w-none)',
42
+ 'layer-variants:lt-sm:pb-[calc(3rem+env(safe-area-inset-bottom,0px))]',
43
+ 'layer-variants:lt-sm:(animate-fade-in-up)',
44
+ 'layer-variants:lt-sm:[&[data-state=closed]]:animate-fade-out-down',
44
45
  );
45
46
  const sheetClassNameWithOverlayKeyboard = classNames(
46
47
  'layer-variants:lt-sm:(bottom-[calc(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px))+var(--gesture-y,0px))] max-h-[calc(95vh-var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px)))])',
@@ -324,8 +325,8 @@ export const DialogSelectList = withClassName(
324
325
 
325
326
  export const DialogSelectItemRoot = withClassName(
326
327
  RadioGroupPrimitive.Item,
327
- 'layer-components:(color-black flex items-center gap-3 w-full py-3 px-4 text-left border-none rounded-lg font-normal bg-gray-blend cursor-pointer transition-all)',
328
- 'layer-components:[&[data-state=checked]]:(bg-primary-wash color-primary-dark)',
328
+ 'layer-components:(color-black flex items-center border-1 border-solid border-bg gap-3 w-full py-3 px-4 text-left border-none rounded-lg font-normal bg-gray-light cursor-pointer transition-all)',
329
+ 'layer-components:[&[data-state=checked]]:(bg-main-wash color-main-ink border-color)',
329
330
  );
330
331
 
331
332
  export const DialogSelectItem = function DialogSelectItem({