@a-type/ui 4.0.8 → 4.1.0-beta.2

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 (386) hide show
  1. package/dist/cjs/colors.stories.js +2 -2
  2. package/dist/cjs/components/actions/ActionBar.js +1 -1
  3. package/dist/cjs/components/actions/ActionBar.js.map +1 -1
  4. package/dist/cjs/components/actions/ActionButton.js +1 -1
  5. package/dist/cjs/components/autocomplete/Autocomplete.d.ts +112 -0
  6. package/dist/cjs/components/autocomplete/Autocomplete.js +119 -0
  7. package/dist/cjs/components/autocomplete/Autocomplete.js.map +1 -0
  8. package/dist/cjs/components/autocomplete/Autocomplete.stories.d.ts +52 -0
  9. package/dist/cjs/components/autocomplete/Autocomplete.stories.js +93 -0
  10. package/dist/cjs/components/autocomplete/Autocomplete.stories.js.map +1 -0
  11. package/dist/cjs/components/avatar/Avatar.js +2 -2
  12. package/dist/cjs/components/box/Box.js +5 -5
  13. package/dist/cjs/components/box/Box.stories.js +1 -1
  14. package/dist/cjs/components/button/Button.js +2 -2
  15. package/dist/cjs/components/button/ConfirmedButton.js +1 -1
  16. package/dist/cjs/components/button/ConfirmedButton.js.map +1 -1
  17. package/dist/cjs/components/button/classes.js +10 -10
  18. package/dist/cjs/components/camera/Camera.d.ts +3 -2
  19. package/dist/cjs/components/camera/Camera.js +44 -13
  20. package/dist/cjs/components/camera/Camera.js.map +1 -1
  21. package/dist/cjs/components/camera/Camera.stories.d.ts +1 -1
  22. package/dist/cjs/components/camera/Camera.stories.js +1 -1
  23. package/dist/cjs/components/card/Card.js +2 -2
  24. package/dist/cjs/components/card/Card.stories.js +2 -2
  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/chip/Chip.d.ts +3 -4
  28. package/dist/cjs/components/chip/Chip.js +1 -1
  29. package/dist/cjs/components/chip/Chip.js.map +1 -1
  30. package/dist/cjs/components/chip/Chip.stories.js +1 -1
  31. package/dist/cjs/components/chip/Chip.stories.js.map +1 -1
  32. package/dist/cjs/components/colorPicker/ColorPicker.js +1 -1
  33. package/dist/cjs/components/contextMenu/contextMenu.js +1 -1
  34. package/dist/cjs/components/datePicker/DatePicker.d.ts +1 -1
  35. package/dist/cjs/components/datePicker/DatePicker.js +2 -2
  36. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  37. package/dist/cjs/components/datePicker/DatePicker.stories.d.ts +1 -1
  38. package/dist/cjs/components/dialog/Dialog.d.ts +4 -4
  39. package/dist/cjs/components/dialog/Dialog.js +15 -15
  40. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  41. package/dist/cjs/components/dialog/Dialog.stories.d.ts +2 -2
  42. package/dist/cjs/components/dialog/Dialog.stories.js +3 -3
  43. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +11 -44
  44. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  45. package/dist/cjs/components/editableText/EditableText.js +1 -1
  46. package/dist/cjs/components/emojiPicker/EmojiPicker.js +4 -4
  47. package/dist/cjs/components/emojiPicker/EmojiPicker.js.map +1 -1
  48. package/dist/cjs/components/forms/CheckboxField.js +1 -1
  49. package/dist/cjs/components/forms/CheckboxField.js.map +1 -1
  50. package/dist/cjs/components/forms/EmojiField.js +1 -1
  51. package/dist/cjs/components/forms/FormikForm.stories.js +1 -1
  52. package/dist/cjs/components/forms/FormikForm.stories.js.map +1 -1
  53. package/dist/cjs/components/forms/NumberStepperField.d.ts +1 -2
  54. package/dist/cjs/components/forms/NumberStepperField.js +1 -1
  55. package/dist/cjs/components/forms/NumberStepperField.js.map +1 -1
  56. package/dist/cjs/components/forms/SwitchField.js +1 -1
  57. package/dist/cjs/components/forms/SwitchField.js.map +1 -1
  58. package/dist/cjs/components/forms/ToggleGroupField.js +1 -1
  59. package/dist/cjs/components/forms/ToggleGroupField.js.map +1 -1
  60. package/dist/cjs/components/horizontalList/HorizontalList.js +2 -2
  61. package/dist/cjs/components/horizontalList/HorizontalList.stories.js +3 -3
  62. package/dist/cjs/components/icon/Icon.stories.js +1 -1
  63. package/dist/cjs/components/imageUploader/ImageUploader.js +6 -6
  64. package/dist/cjs/components/imageUploader/ImageUploader.stories.js +1 -1
  65. package/dist/cjs/components/index.d.ts +2 -0
  66. package/dist/cjs/components/index.js +2 -0
  67. package/dist/cjs/components/index.js.map +1 -1
  68. package/dist/cjs/components/input/Input.d.ts +7 -2
  69. package/dist/cjs/components/input/Input.js +26 -12
  70. package/dist/cjs/components/input/Input.js.map +1 -1
  71. package/dist/cjs/components/input/Input.stories.d.ts +5 -1
  72. package/dist/cjs/components/input/Input.stories.js +6 -2
  73. package/dist/cjs/components/input/Input.stories.js.map +1 -1
  74. package/dist/cjs/components/layouts/PageContent.js +1 -1
  75. package/dist/cjs/components/layouts/PageContent.js.map +1 -1
  76. package/dist/cjs/components/layouts/PageFixedArea.js +1 -1
  77. package/dist/cjs/components/layouts/PageNav.js +1 -1
  78. package/dist/cjs/components/layouts/PageNowPlaying.d.ts +1 -2
  79. package/dist/cjs/components/layouts/PageNowPlaying.js +3 -5
  80. package/dist/cjs/components/layouts/PageNowPlaying.js.map +1 -1
  81. package/dist/cjs/components/layouts/PageRoot.js +1 -1
  82. package/dist/cjs/components/layouts/layouts.stories.js +2 -2
  83. package/dist/cjs/components/lightbox/Lightbox.js +1 -1
  84. package/dist/cjs/components/marquee/marquee.js +1 -1
  85. package/dist/cjs/components/marquee/marquee.stories.js +1 -1
  86. package/dist/cjs/components/navBar/NavBar.js +1 -1
  87. package/dist/cjs/components/note/Note.js +1 -1
  88. package/dist/cjs/components/numberStepper/NumberStepper.js +3 -3
  89. package/dist/cjs/components/particles/ParticleLayer.js +1 -1
  90. package/dist/cjs/components/particles/ParticleLayer.stories.js +2 -2
  91. package/dist/cjs/components/particles/particlesState.js +2 -4
  92. package/dist/cjs/components/particles/particlesState.js.map +1 -1
  93. package/dist/cjs/components/peek/Peek.js +2 -2
  94. package/dist/cjs/components/popover/Popover.d.ts +2 -4
  95. package/dist/cjs/components/popover/Popover.js +7 -6
  96. package/dist/cjs/components/popover/Popover.js.map +1 -1
  97. package/dist/cjs/components/primitives/menus.d.ts +5 -0
  98. package/dist/cjs/components/primitives/menus.js +14 -0
  99. package/dist/cjs/components/primitives/menus.js.map +1 -0
  100. package/dist/cjs/components/progress/Progress.d.ts +2 -2
  101. package/dist/cjs/components/progress/Progress.js +2 -2
  102. package/dist/cjs/components/progress/Progress.js.map +1 -1
  103. package/dist/cjs/components/progress/Progress.stories.d.ts +1 -1
  104. package/dist/cjs/components/pwaInstall/PwaInstall.d.ts +2 -2
  105. package/dist/cjs/components/pwaInstall/PwaInstall.js +2 -2
  106. package/dist/cjs/components/pwaInstall/PwaInstall.js.map +1 -1
  107. package/dist/cjs/components/quickAction/QuickAction.d.ts +17 -0
  108. package/dist/cjs/components/quickAction/QuickAction.js +63 -0
  109. package/dist/cjs/components/quickAction/QuickAction.js.map +1 -0
  110. package/dist/cjs/components/quickAction/QuickAction.stories.d.ts +22 -0
  111. package/dist/cjs/components/quickAction/QuickAction.stories.js +61 -0
  112. package/dist/cjs/components/quickAction/QuickAction.stories.js.map +1 -0
  113. package/dist/cjs/components/richEditor/index.js +2 -2
  114. package/dist/cjs/components/richEditor/index.js.map +1 -1
  115. package/dist/cjs/components/scrollArea/ScrollArea.stories.js +1 -1
  116. package/dist/cjs/components/select/Select.js +3 -3
  117. package/dist/cjs/components/select/Select.js.map +1 -1
  118. package/dist/cjs/components/select/Select.stories.js +1 -1
  119. package/dist/cjs/components/select/Select.stories.js.map +1 -1
  120. package/dist/cjs/components/skeletons/skeletons.js +1 -1
  121. package/dist/cjs/components/slider/Slider.d.ts +1 -2
  122. package/dist/cjs/components/slider/Slider.js +1 -2
  123. package/dist/cjs/components/slider/Slider.js.map +1 -1
  124. package/dist/cjs/components/slider/Slider.stories.d.ts +1 -1
  125. package/dist/cjs/components/slider/Slider.stories.js +1 -1
  126. package/dist/cjs/components/spinner/Spinner.js +2 -2
  127. package/dist/cjs/components/textArea/TextArea.js +1 -1
  128. package/dist/cjs/components/toasts/toasts.js +5 -5
  129. package/dist/cjs/components/tooltip/Tooltip.js +4 -4
  130. package/dist/cjs/components/viewport/Viewport.js +3 -3
  131. package/dist/cjs/components/viewport/ViewportContent.js +1 -1
  132. package/dist/cjs/components/viewport/useViewportGestures.js +2 -1
  133. package/dist/cjs/components/viewport/useViewportGestures.js.map +1 -1
  134. package/dist/cjs/hooks/useStorage.js +4 -4
  135. package/dist/cjs/hooks/useStorage.js.map +1 -1
  136. package/dist/cjs/hooks/useTitleBarColor.js +1 -1
  137. package/dist/cjs/hooks/useTitleBarColor.stories.js +1 -1
  138. package/dist/cjs/hooks/withProps.d.ts +2 -2
  139. package/dist/cjs/systems/inputs.d.ts +3 -0
  140. package/dist/cjs/systems/inputs.js +14 -0
  141. package/dist/cjs/systems/inputs.js.map +1 -0
  142. package/dist/cjs/themes.stories.js +1 -1
  143. package/dist/cjs/uno/logic/color.js +0 -9
  144. package/dist/cjs/uno/logic/color.js.map +1 -1
  145. package/dist/cjs/uno/preflights/layers.js +1 -1
  146. package/dist/cjs/uno/preflights/layers.js.map +1 -1
  147. package/dist/cjs/uno/rules/color.js +10 -10
  148. package/dist/cjs/uno/rules/color.js.map +1 -1
  149. package/dist/cjs/utilities.stories.js +1 -1
  150. package/dist/css/main.css +7 -6
  151. package/dist/esm/colors.stories.js +2 -2
  152. package/dist/esm/components/actions/ActionBar.js +1 -1
  153. package/dist/esm/components/actions/ActionBar.js.map +1 -1
  154. package/dist/esm/components/actions/ActionButton.js +1 -1
  155. package/dist/esm/components/autocomplete/Autocomplete.d.ts +112 -0
  156. package/dist/esm/components/autocomplete/Autocomplete.js +113 -0
  157. package/dist/esm/components/autocomplete/Autocomplete.js.map +1 -0
  158. package/dist/esm/components/autocomplete/Autocomplete.stories.d.ts +52 -0
  159. package/dist/esm/components/autocomplete/Autocomplete.stories.js +90 -0
  160. package/dist/esm/components/autocomplete/Autocomplete.stories.js.map +1 -0
  161. package/dist/esm/components/avatar/Avatar.js +2 -2
  162. package/dist/esm/components/box/Box.js +5 -5
  163. package/dist/esm/components/box/Box.stories.js +1 -1
  164. package/dist/esm/components/button/Button.js +2 -2
  165. package/dist/esm/components/button/ConfirmedButton.js +1 -1
  166. package/dist/esm/components/button/ConfirmedButton.js.map +1 -1
  167. package/dist/esm/components/button/classes.js +10 -10
  168. package/dist/esm/components/camera/Camera.d.ts +3 -2
  169. package/dist/esm/components/camera/Camera.js +11 -10
  170. package/dist/esm/components/camera/Camera.js.map +1 -1
  171. package/dist/esm/components/camera/Camera.stories.d.ts +1 -1
  172. package/dist/esm/components/camera/Camera.stories.js +1 -1
  173. package/dist/esm/components/card/Card.js +2 -2
  174. package/dist/esm/components/card/Card.stories.js +2 -2
  175. package/dist/esm/components/card/Card.stories.js.map +1 -1
  176. package/dist/esm/components/checkbox/Checkbox.js +3 -3
  177. package/dist/esm/components/chip/Chip.d.ts +3 -4
  178. package/dist/esm/components/chip/Chip.js +1 -1
  179. package/dist/esm/components/chip/Chip.js.map +1 -1
  180. package/dist/esm/components/chip/Chip.stories.js +1 -1
  181. package/dist/esm/components/chip/Chip.stories.js.map +1 -1
  182. package/dist/esm/components/colorPicker/ColorPicker.js +1 -1
  183. package/dist/esm/components/contextMenu/contextMenu.js +1 -1
  184. package/dist/esm/components/datePicker/DatePicker.d.ts +1 -1
  185. package/dist/esm/components/datePicker/DatePicker.js +2 -2
  186. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  187. package/dist/esm/components/datePicker/DatePicker.stories.d.ts +1 -1
  188. package/dist/esm/components/dialog/Dialog.d.ts +4 -4
  189. package/dist/esm/components/dialog/Dialog.js +15 -15
  190. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  191. package/dist/esm/components/dialog/Dialog.stories.d.ts +2 -2
  192. package/dist/esm/components/dialog/Dialog.stories.js +3 -3
  193. package/dist/esm/components/dropdownMenu/DropdownMenu.js +8 -8
  194. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  195. package/dist/esm/components/editableText/EditableText.js +1 -1
  196. package/dist/esm/components/emojiPicker/EmojiPicker.js +4 -4
  197. package/dist/esm/components/emojiPicker/EmojiPicker.js.map +1 -1
  198. package/dist/esm/components/forms/CheckboxField.js +1 -1
  199. package/dist/esm/components/forms/CheckboxField.js.map +1 -1
  200. package/dist/esm/components/forms/EmojiField.js +1 -1
  201. package/dist/esm/components/forms/FormikForm.stories.js +1 -1
  202. package/dist/esm/components/forms/FormikForm.stories.js.map +1 -1
  203. package/dist/esm/components/forms/NumberStepperField.d.ts +1 -2
  204. package/dist/esm/components/forms/NumberStepperField.js +1 -1
  205. package/dist/esm/components/forms/NumberStepperField.js.map +1 -1
  206. package/dist/esm/components/forms/SwitchField.js +1 -1
  207. package/dist/esm/components/forms/SwitchField.js.map +1 -1
  208. package/dist/esm/components/forms/ToggleGroupField.js +1 -1
  209. package/dist/esm/components/forms/ToggleGroupField.js.map +1 -1
  210. package/dist/esm/components/horizontalList/HorizontalList.js +2 -2
  211. package/dist/esm/components/horizontalList/HorizontalList.stories.js +3 -3
  212. package/dist/esm/components/icon/Icon.stories.js +1 -1
  213. package/dist/esm/components/imageUploader/ImageUploader.js +6 -6
  214. package/dist/esm/components/imageUploader/ImageUploader.stories.js +1 -1
  215. package/dist/esm/components/index.d.ts +2 -0
  216. package/dist/esm/components/index.js +2 -0
  217. package/dist/esm/components/index.js.map +1 -1
  218. package/dist/esm/components/input/Input.d.ts +7 -2
  219. package/dist/esm/components/input/Input.js +29 -14
  220. package/dist/esm/components/input/Input.js.map +1 -1
  221. package/dist/esm/components/input/Input.stories.d.ts +5 -1
  222. package/dist/esm/components/input/Input.stories.js +5 -1
  223. package/dist/esm/components/input/Input.stories.js.map +1 -1
  224. package/dist/esm/components/layouts/PageContent.js +1 -1
  225. package/dist/esm/components/layouts/PageContent.js.map +1 -1
  226. package/dist/esm/components/layouts/PageFixedArea.js +1 -1
  227. package/dist/esm/components/layouts/PageNav.js +1 -1
  228. package/dist/esm/components/layouts/PageNowPlaying.d.ts +1 -2
  229. package/dist/esm/components/layouts/PageNowPlaying.js +3 -5
  230. package/dist/esm/components/layouts/PageNowPlaying.js.map +1 -1
  231. package/dist/esm/components/layouts/PageRoot.js +1 -1
  232. package/dist/esm/components/layouts/layouts.stories.js +2 -2
  233. package/dist/esm/components/lightbox/Lightbox.js +1 -1
  234. package/dist/esm/components/marquee/marquee.js +1 -1
  235. package/dist/esm/components/marquee/marquee.stories.js +1 -1
  236. package/dist/esm/components/navBar/NavBar.js +1 -1
  237. package/dist/esm/components/note/Note.js +1 -1
  238. package/dist/esm/components/numberStepper/NumberStepper.js +3 -3
  239. package/dist/esm/components/particles/ParticleLayer.js +1 -1
  240. package/dist/esm/components/particles/ParticleLayer.stories.js +2 -2
  241. package/dist/esm/components/particles/particlesState.js +2 -4
  242. package/dist/esm/components/particles/particlesState.js.map +1 -1
  243. package/dist/esm/components/peek/Peek.js +2 -2
  244. package/dist/esm/components/popover/Popover.d.ts +2 -4
  245. package/dist/esm/components/popover/Popover.js +7 -6
  246. package/dist/esm/components/popover/Popover.js.map +1 -1
  247. package/dist/esm/components/primitives/menus.d.ts +5 -0
  248. package/dist/esm/components/primitives/menus.js +8 -0
  249. package/dist/esm/components/primitives/menus.js.map +1 -0
  250. package/dist/esm/components/progress/Progress.d.ts +2 -2
  251. package/dist/esm/components/progress/Progress.js +2 -2
  252. package/dist/esm/components/progress/Progress.js.map +1 -1
  253. package/dist/esm/components/progress/Progress.stories.d.ts +1 -1
  254. package/dist/esm/components/pwaInstall/PwaInstall.d.ts +2 -2
  255. package/dist/esm/components/pwaInstall/PwaInstall.js +2 -2
  256. package/dist/esm/components/pwaInstall/PwaInstall.js.map +1 -1
  257. package/dist/esm/components/quickAction/QuickAction.d.ts +17 -0
  258. package/dist/esm/components/quickAction/QuickAction.js +56 -0
  259. package/dist/esm/components/quickAction/QuickAction.js.map +1 -0
  260. package/dist/esm/components/quickAction/QuickAction.stories.d.ts +22 -0
  261. package/dist/esm/components/quickAction/QuickAction.stories.js +55 -0
  262. package/dist/esm/components/quickAction/QuickAction.stories.js.map +1 -0
  263. package/dist/esm/components/richEditor/index.js +2 -2
  264. package/dist/esm/components/richEditor/index.js.map +1 -1
  265. package/dist/esm/components/scrollArea/ScrollArea.stories.js +1 -1
  266. package/dist/esm/components/select/Select.js +3 -3
  267. package/dist/esm/components/select/Select.js.map +1 -1
  268. package/dist/esm/components/select/Select.stories.js +1 -1
  269. package/dist/esm/components/select/Select.stories.js.map +1 -1
  270. package/dist/esm/components/skeletons/skeletons.js +1 -1
  271. package/dist/esm/components/slider/Slider.d.ts +1 -2
  272. package/dist/esm/components/slider/Slider.js +1 -2
  273. package/dist/esm/components/slider/Slider.js.map +1 -1
  274. package/dist/esm/components/slider/Slider.stories.d.ts +1 -1
  275. package/dist/esm/components/slider/Slider.stories.js +1 -1
  276. package/dist/esm/components/spinner/Spinner.js +2 -2
  277. package/dist/esm/components/textArea/TextArea.js +1 -1
  278. package/dist/esm/components/toasts/toasts.js +5 -5
  279. package/dist/esm/components/tooltip/Tooltip.js +4 -4
  280. package/dist/esm/components/viewport/Viewport.js +3 -3
  281. package/dist/esm/components/viewport/ViewportContent.js +1 -1
  282. package/dist/esm/components/viewport/useViewportGestures.js +2 -1
  283. package/dist/esm/components/viewport/useViewportGestures.js.map +1 -1
  284. package/dist/esm/hooks/useStorage.js +4 -4
  285. package/dist/esm/hooks/useStorage.js.map +1 -1
  286. package/dist/esm/hooks/useTitleBarColor.js +1 -1
  287. package/dist/esm/hooks/useTitleBarColor.stories.js +1 -1
  288. package/dist/esm/hooks/withProps.d.ts +2 -2
  289. package/dist/esm/systems/inputs.d.ts +3 -0
  290. package/dist/esm/systems/inputs.js +11 -0
  291. package/dist/esm/systems/inputs.js.map +1 -0
  292. package/dist/esm/themes.stories.js +1 -1
  293. package/dist/esm/uno/logic/color.js +0 -9
  294. package/dist/esm/uno/logic/color.js.map +1 -1
  295. package/dist/esm/uno/preflights/layers.js +1 -1
  296. package/dist/esm/uno/preflights/layers.js.map +1 -1
  297. package/dist/esm/uno/rules/color.js +10 -10
  298. package/dist/esm/uno/rules/color.js.map +1 -1
  299. package/dist/esm/utilities.stories.js +1 -1
  300. package/package.json +18 -2
  301. package/src/colors.stories.tsx +11 -11
  302. package/src/components/actions/ActionBar.tsx +3 -3
  303. package/src/components/actions/ActionButton.tsx +1 -1
  304. package/src/components/autocomplete/Autocomplete.stories.tsx +212 -0
  305. package/src/components/autocomplete/Autocomplete.tsx +336 -0
  306. package/src/components/avatar/Avatar.tsx +3 -3
  307. package/src/components/box/Box.stories.tsx +1 -1
  308. package/src/components/box/Box.tsx +5 -5
  309. package/src/components/button/Button.tsx +3 -3
  310. package/src/components/button/ConfirmedButton.tsx +1 -1
  311. package/src/components/button/classes.tsx +18 -18
  312. package/src/components/camera/Camera.stories.tsx +1 -1
  313. package/src/components/camera/Camera.tsx +26 -13
  314. package/src/components/card/Card.stories.tsx +2 -8
  315. package/src/components/card/Card.tsx +5 -5
  316. package/src/components/checkbox/Checkbox.tsx +5 -5
  317. package/src/components/chip/Chip.stories.tsx +1 -4
  318. package/src/components/chip/Chip.tsx +6 -8
  319. package/src/components/colorPicker/ColorPicker.tsx +1 -1
  320. package/src/components/contextMenu/contextMenu.tsx +3 -3
  321. package/src/components/datePicker/DatePicker.tsx +3 -2
  322. package/src/components/dialog/Dialog.stories.tsx +3 -3
  323. package/src/components/dialog/Dialog.tsx +535 -537
  324. package/src/components/dropdownMenu/DropdownMenu.tsx +173 -190
  325. package/src/components/editableText/EditableText.tsx +2 -2
  326. package/src/components/emojiPicker/EmojiPicker.tsx +9 -4
  327. package/src/components/forms/CheckboxField.tsx +1 -1
  328. package/src/components/forms/EmojiField.tsx +1 -1
  329. package/src/components/forms/FormikForm.stories.tsx +1 -1
  330. package/src/components/forms/NumberStepperField.tsx +0 -2
  331. package/src/components/forms/SwitchField.tsx +1 -1
  332. package/src/components/forms/ToggleGroupField.tsx +1 -1
  333. package/src/components/horizontalList/HorizontalList.stories.tsx +8 -8
  334. package/src/components/horizontalList/HorizontalList.tsx +5 -5
  335. package/src/components/icon/Icon.stories.tsx +2 -2
  336. package/src/components/imageUploader/ImageUploader.stories.tsx +1 -1
  337. package/src/components/imageUploader/ImageUploader.tsx +6 -6
  338. package/src/components/index.ts +2 -0
  339. package/src/components/input/Input.stories.tsx +14 -1
  340. package/src/components/input/Input.tsx +107 -74
  341. package/src/components/layouts/PageContent.tsx +1 -1
  342. package/src/components/layouts/PageFixedArea.tsx +1 -1
  343. package/src/components/layouts/PageNav.tsx +3 -3
  344. package/src/components/layouts/PageNowPlaying.tsx +3 -7
  345. package/src/components/layouts/PageRoot.tsx +3 -3
  346. package/src/components/layouts/layouts.stories.tsx +3 -3
  347. package/src/components/lightbox/Lightbox.tsx +1 -1
  348. package/src/components/marquee/marquee.stories.tsx +1 -1
  349. package/src/components/marquee/marquee.tsx +2 -2
  350. package/src/components/navBar/NavBar.tsx +3 -3
  351. package/src/components/note/Note.tsx +6 -6
  352. package/src/components/numberStepper/NumberStepper.tsx +3 -3
  353. package/src/components/particles/ParticleLayer.stories.tsx +2 -2
  354. package/src/components/particles/ParticleLayer.tsx +1 -1
  355. package/src/components/particles/particlesState.ts +2 -4
  356. package/src/components/peek/Peek.tsx +4 -4
  357. package/src/components/popover/Popover.tsx +123 -134
  358. package/src/components/primitives/menus.tsx +44 -0
  359. package/src/components/progress/Progress.tsx +2 -2
  360. package/src/components/pwaInstall/PwaInstall.tsx +4 -4
  361. package/src/components/quickAction/QuickAction.stories.tsx +106 -0
  362. package/src/components/quickAction/QuickAction.tsx +107 -0
  363. package/src/components/richEditor/index.tsx +13 -13
  364. package/src/components/scrollArea/ScrollArea.stories.tsx +1 -1
  365. package/src/components/select/Select.stories.tsx +1 -1
  366. package/src/components/select/Select.tsx +20 -20
  367. package/src/components/skeletons/skeletons.tsx +1 -1
  368. package/src/components/slider/Slider.stories.tsx +1 -1
  369. package/src/components/slider/Slider.tsx +1 -2
  370. package/src/components/spinner/Spinner.tsx +3 -3
  371. package/src/components/textArea/TextArea.tsx +1 -1
  372. package/src/components/toasts/toasts.tsx +13 -13
  373. package/src/components/tooltip/Tooltip.tsx +6 -6
  374. package/src/components/viewport/Viewport.tsx +3 -3
  375. package/src/components/viewport/ViewportContent.tsx +1 -1
  376. package/src/components/viewport/useViewportGestures.ts +1 -1
  377. package/src/hooks/useStorage.ts +4 -4
  378. package/src/hooks/useTitleBarColor.stories.tsx +1 -1
  379. package/src/hooks/useTitleBarColor.ts +1 -1
  380. package/src/hooks/withProps.tsx +2 -2
  381. package/src/systems/inputs.ts +11 -0
  382. package/src/themes.stories.tsx +1 -1
  383. package/src/uno/logic/color.ts +0 -12
  384. package/src/uno/preflights/layers.ts +1 -1
  385. package/src/uno/rules/color.ts +10 -10
  386. package/src/utilities.stories.tsx +3 -3
@@ -1,5 +1,6 @@
1
1
  export * from '@base-ui/react/use-render';
2
2
  export * from './actions/index.js';
3
+ export * from './autocomplete/Autocomplete.js';
3
4
  export * from './avatar/index.js';
4
5
  export * from './box/Box.js';
5
6
  export * from './button/index.js';
@@ -38,6 +39,7 @@ export * from './popover/index.js';
38
39
  export * from './progress/Progress.js';
39
40
  export * from './provider/Provider.js';
40
41
  export * from './pwaInstall/index.js';
42
+ export * from './quickAction/QuickAction.js';
41
43
  export * from './relativeTime/index.js';
42
44
  export * from './richEditor/index.js';
43
45
  export * from './scrollArea/ScrollArea.js';
@@ -1,6 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { Box } from '../box/Box.js';
3
3
  import { Button } from '../button/Button.js';
4
+ import { Icon } from '../icon/Icon.js';
4
5
  import { Input } from './Input.js';
5
6
 
6
7
  const meta = {
@@ -24,7 +25,19 @@ export const ButtonAndInput: Story = {
24
25
  render: (args) => (
25
26
  <Box gap items="center">
26
27
  <Input placeholder="Type something..." {...args} />
27
- <Button size={args.sizeVariant}>Submit</Button>
28
+ <Button>Submit</Button>
28
29
  </Box>
29
30
  ),
30
31
  };
32
+
33
+ export const WithAccessories: Story = {
34
+ render: (args) => (
35
+ <Input.Border>
36
+ <Icon name="search" />
37
+ <Input.Input placeholder="Search..." {...args} />
38
+ <Button emphasis="ghost">
39
+ <Icon name="arrowRight" />
40
+ </Button>
41
+ </Input.Border>
42
+ ),
43
+ };
@@ -1,74 +1,107 @@
1
- import { Input as BaseUIInput } from '@base-ui/react/input';
2
- import classNames from 'clsx';
3
- import {
4
- ChangeEvent,
5
- ComponentPropsWithRef,
6
- FocusEvent,
7
- useCallback,
8
- } from 'react';
9
- import { useRotatingShuffledValue } from '../../hooks/useRotatingShuffledValue.js';
10
-
11
- export const inputClassName = classNames(
12
- 'layer-components:(px-5 py-1.25 text-md font-inherit rounded-lg bg-white select-auto min-w-60px color-black border-solid border-width-thin border-gray-dark shadow-sm shadow-inset transition-shadow)',
13
- 'layer-components:focus:(outline-none bg-lighten-3 ring-4 ring-white)',
14
- 'layer-components:focus-visible:(outline-none ring-accent ring-4)',
15
- 'layer-components:disabled:(bg-transparent border-gray placeholder-gray-dark shadow-none)',
16
- 'layer-components:md:(min-w-120px)',
17
- 'layer-variants:[&[data-size="small"]]:(px-md py-xs text-sm rounded-md min-w-40px)',
18
- );
19
-
20
- export interface InputProps extends ComponentPropsWithRef<'input'> {
21
- autoSelect?: boolean;
22
- /** Shuffle between random placeholders */
23
- placeholders?: string[];
24
- placeholdersIntervalMs?: number;
25
- onValueChange?: (value: string) => void;
26
- sizeVariant?: 'default' | 'small';
27
- }
28
-
29
- export const Input = function Input({
30
- className,
31
- autoSelect,
32
- onFocus,
33
- onChange,
34
- onValueChange,
35
- placeholders,
36
- placeholder,
37
- placeholdersIntervalMs = 5000,
38
- sizeVariant,
39
- ...props
40
- }: InputProps) {
41
- const handleFocus = useCallback(
42
- (ev: FocusEvent<HTMLInputElement>) => {
43
- if (autoSelect) {
44
- ev.target.select();
45
- }
46
- onFocus?.(ev);
47
- },
48
- [onFocus, autoSelect],
49
- );
50
-
51
- const handleChange = useCallback(
52
- (ev: ChangeEvent<HTMLInputElement>) => {
53
- onValueChange?.(ev.target.value);
54
- onChange?.(ev);
55
- },
56
- [onChange, onValueChange],
57
- );
58
-
59
- const randomPlaceholder = useRotatingShuffledValue(
60
- placeholders ?? [],
61
- placeholdersIntervalMs,
62
- );
63
-
64
- return (
65
- <BaseUIInput
66
- onFocus={handleFocus}
67
- onChange={handleChange}
68
- className={classNames(inputClassName, className)}
69
- placeholder={placeholder ?? randomPlaceholder}
70
- data-size={sizeVariant ?? 'default'}
71
- {...props}
72
- />
73
- );
74
- };
1
+ import { Input as BaseInput } from '@base-ui/react/input';
2
+ import clsx from 'clsx';
3
+ import { ComponentPropsWithRef, FocusEvent, FocusEventHandler } from 'react';
4
+ import { withClassName } from '../../hooks.js';
5
+ import { useRotatingShuffledValue } from '../../hooks/useRotatingShuffledValue.js';
6
+ import { inputInfo } from '../../systems/inputs.js';
7
+
8
+ export const inputClassName = clsx(
9
+ 'layer-components:(min-w-60px flex-1 select-auto border-none px-0 py-1.25 text-md font-inherit bg-transparent)',
10
+ 'layer-components:md:(min-w-120px)',
11
+ 'layer-components:placeholder:(color-gray-dark)',
12
+ 'layer-components:focus:(outline-none)',
13
+ 'layer-components:focus-visible:(outline-none)',
14
+ 'layer-components:first:(rounded-l-inherit pl-md)',
15
+ 'layer-components:last:(rounded-r-inherit pr-md)',
16
+ );
17
+
18
+ const inputBorderClassName = clsx(
19
+ 'layer-components:(flex flex-row items-center gap-xs border-1 rounded-lg border-solid text-md shadow-sm shadow-inset transition-shadow color-black bg-white border-gray-dark)',
20
+ 'layer-components:(w-max-content overflow-clip)',
21
+ 'layer-components:[&:has(input:disabled)]:(shadow-none bg-transparent border-gray placeholder-gray-dark)',
22
+ 'layer-components:[&:has(input:focus-visible)]:(outline-none ring ring-4 ring-accent)',
23
+ 'layer-variants:[&:has(input:focus[data-focus-clicked])]:(outline-none ring ring-4 bg-lighten-3 ring-main-light)',
24
+ 'layer-components:[&:has(input:hover)]:(border-black)',
25
+ 'layer-components:[&>.icon]:(mx-sm)',
26
+ );
27
+
28
+ const InputBorder = withClassName('div', inputBorderClassName);
29
+
30
+ const InnerInput = function InnerInput({
31
+ autoSelect,
32
+ onFocus,
33
+ onBlur,
34
+ className,
35
+ placeholders,
36
+ placeholder,
37
+ placeholdersIntervalMs = 5000,
38
+ onValueChange,
39
+
40
+ ...props
41
+ }: InputProps) {
42
+ const handleFocus: FocusEventHandler<HTMLInputElement> = (
43
+ ev: FocusEvent<HTMLInputElement>,
44
+ ) => {
45
+ if (autoSelect) {
46
+ ev.target.select();
47
+ }
48
+ if (
49
+ inputInfo.lastPointerDown &&
50
+ Date.now() - inputInfo.lastPointerDown < 200
51
+ ) {
52
+ ev.currentTarget.setAttribute('data-focus-clicked', 'true');
53
+ }
54
+ onFocus?.(ev);
55
+ };
56
+ const handleBlur: FocusEventHandler<HTMLInputElement> = (ev) => {
57
+ onBlur?.(ev);
58
+ ev.currentTarget.removeAttribute('data-focus-clicked');
59
+ };
60
+ const randomPlaceholder = useRotatingShuffledValue(
61
+ placeholders ?? [],
62
+ placeholdersIntervalMs,
63
+ );
64
+
65
+ return (
66
+ <BaseInput
67
+ placeholder={placeholder ?? randomPlaceholder}
68
+ onFocus={handleFocus}
69
+ onValueChange={onValueChange}
70
+ onBlur={handleBlur}
71
+ className={clsx(inputClassName, className)}
72
+ {...props}
73
+ />
74
+ );
75
+ };
76
+
77
+ export interface InputProps extends ComponentPropsWithRef<'input'> {
78
+ autoSelect?: boolean;
79
+ /** Shuffle between random placeholders */
80
+ placeholders?: string[];
81
+ placeholdersIntervalMs?: number;
82
+ onValueChange?: (value: string) => void;
83
+ borderRef?: React.Ref<HTMLDivElement>;
84
+ startAccessory?: React.ReactNode;
85
+ endAccessory?: React.ReactNode;
86
+ }
87
+
88
+ const InputDefault = function InputDefault({
89
+ className,
90
+ borderRef,
91
+ startAccessory,
92
+ endAccessory,
93
+ ...props
94
+ }: InputProps) {
95
+ return (
96
+ <InputBorder ref={borderRef} className={className}>
97
+ {startAccessory}
98
+ <InnerInput {...props} />
99
+ {endAccessory}
100
+ </InputBorder>
101
+ );
102
+ };
103
+
104
+ export const Input = Object.assign(InputDefault, {
105
+ Border: InputBorder,
106
+ Input: InnerInput,
107
+ });
@@ -36,7 +36,7 @@ export function PageContent({
36
36
  container="reset"
37
37
  className={classNames(
38
38
  '[grid-area:content]',
39
- 'layer-components:(max-w-full min-w-0 flex-1-0-auto mx-auto)',
39
+ 'layer-components:flex-1-0-auto layer-components:(mx-auto max-w-full min-w-0)',
40
40
  className,
41
41
  )}
42
42
  ref={finalRef}
@@ -9,7 +9,7 @@ export function PageFixedArea({
9
9
  <div
10
10
  {...props}
11
11
  className={classNames(
12
- 'layer-components:(sticky top-0 z-nav bg-wash w-full items-stretch gap-2 flex flex-col)',
12
+ 'layer-components:(sticky top-0 z-nav w-full flex flex-col items-stretch gap-2 bg-wash)',
13
13
  className,
14
14
  )}
15
15
  />
@@ -26,9 +26,9 @@ export function PageNav({
26
26
  <HideWhileKeyboardOpen
27
27
  {...props}
28
28
  className={classNames(
29
- 'layer-components:([grid-area:nav] sticky bottom-0 bg-inherit z-[var(--z-nav)] pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))])',
30
- 'layer-components:before:(content-[""] absolute inset-x-4 top-0 h-px bg-gray-dark/80)',
31
- 'layer-components:md:([grid-area:nav] sticky top-lg h-auto bottom-auto left-auto right-auto) layer-components:md:before:(hidden)',
29
+ 'layer-components:([grid-area:nav] sticky bottom-0 z-[var(--z-nav)] pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))] bg-inherit)',
30
+ 'layer-components:before:(absolute inset-x-4 top-0 h-px content-[""] bg-gray-dark/80)',
31
+ 'layer-components:md:([grid-area:nav] sticky bottom-auto left-auto right-auto top-lg h-auto) layer-components:md:before:(hidden)',
32
32
  className,
33
33
  )}
34
34
  ref={ref}
@@ -7,11 +7,9 @@ import { useConfig } from '../provider/Provider.js';
7
7
 
8
8
  export function PageNowPlaying({
9
9
  className,
10
- unstyled,
11
10
  keepAboveKeyboard,
12
11
  ...props
13
12
  }: HTMLAttributes<HTMLDivElement> & {
14
- unstyled?: boolean;
15
13
  keepAboveKeyboard?: boolean;
16
14
  }) {
17
15
  const { virtualKeyboardBehavior } = useConfig();
@@ -21,15 +19,13 @@ export function PageNowPlaying({
21
19
  <div
22
20
  {...props}
23
21
  className={classNames(
24
- 'layer-components:(fixed left-0 right-0 z-[var(--z-now-playing)] flex flex-col gap-2 items-end)',
22
+ 'layer-components:(fixed left-0 right-0 z-[var(--z-now-playing)] flex flex-col items-end gap-2)',
25
23
  // on mobile, this must be positioned above any nav bar that's present,
26
24
  // or at minimum in the safe area
27
25
  'layer-components:bottom-[var(--nav-height,env(safe-area-inset-bottom,0px))]',
28
26
  'layer-components:transition-bottom',
29
- 'layer-components:md:(fixed bottom-3 left-[var(--content-left,20%)] transition-opacity top-auto items-end w-[var(--content-width,100%)] p-0 opacity-[var(--content-ready,0)])',
30
- unstyled
31
- ? 'layer-variants:p-2'
32
- : 'layer-components:(bg-wash p-2px rounded-xl border-light shadow-md min-w-32px items-center justify-center m-2 w-auto)',
27
+ 'layer-components:md:(fixed bottom-3 left-[var(--content-left,20%)] top-auto w-[var(--content-width,100%)] items-end p-0 opacity-[var(--content-ready,0)] transition-opacity)',
28
+ 'layer-variants:p-2',
33
29
  keepAboveKeyboard &&
34
30
  virtualKeyboardBehavior === 'overlay' &&
35
31
  'layer-variants:lt-md:bottom-[max(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px),var(--nav-height,env(safe-area-inset-bottom,0px))))]',
@@ -7,9 +7,9 @@ export function PageRoot({ className, children, ...rest }: PageRootProps) {
7
7
  return (
8
8
  <div
9
9
  className={clsx(
10
- 'layer-components:(flex-grow-1 flex-shrink-1 flex-basis-0 min-h-100dvh bg-wash)',
11
- 'layer-components:(grid grid-areas-[content]-[nav] grid-cols-[1fr] grid-rows-[1fr_auto] items-start justify-center)',
12
- 'md:layer-responsive:(grid-areas-[gutter1_nav_content_gutter2] grid-cols-[1fr_auto_20fr_1fr] min-h-auto h-auto bg-wash)',
10
+ 'layer-components:(min-h-100dvh flex-shrink-1 flex-grow-1 flex-basis-0 bg-wash)',
11
+ 'layer-components:(grid grid-cols-[1fr] grid-rows-[1fr_auto] grid-areas-[content]-[nav] items-start justify-center)',
12
+ 'md:layer-responsive:(grid-cols-[1fr_auto_20fr_1fr] grid-areas-[gutter1_nav_content_gutter2] h-auto min-h-auto bg-wash)',
13
13
  'lg:layer-responsive:(grid-cols-[1fr_auto_min(800px,70vw)_1fr])',
14
14
  className,
15
15
  )}
@@ -135,7 +135,7 @@ export const ManualWidth: Story = {
135
135
 
136
136
  export const WithoutNav: Story = {
137
137
  render: () => (
138
- <PageRoot className="w-full h-full">
138
+ <PageRoot className="h-full w-full">
139
139
  <PageContent>
140
140
  <div className="text-center">
141
141
  <h1 className="text-3xl font-bold">Hello, World!</h1>
@@ -170,7 +170,7 @@ export const WithVirtualKeyboard: Story = {
170
170
  }, [keyboard]);
171
171
 
172
172
  return (
173
- <PageRoot className="w-full h-full">
173
+ <PageRoot className="h-full w-full">
174
174
  <PageContent>
175
175
  <div className="text-center">
176
176
  <h1 className="text-3xl font-bold">Hello, World!</h1>
@@ -200,7 +200,7 @@ export const WithVirtualKeyboard: Story = {
200
200
  </NavBarItem>
201
201
  </NavBarRoot>
202
202
  </PageNav>
203
- <div className="fixed bottom-0 h-[var(--mock-virtual-keyboard-height,0)] bg-black w-full transition-height left-0 right-0" />
203
+ <div className="fixed bottom-0 left-0 right-0 h-[var(--mock-virtual-keyboard-height,0)] w-full transition-height bg-black" />
204
204
  </PageRoot>
205
205
  );
206
206
  },
@@ -30,7 +30,7 @@ export const LightboxClose = (props: DialogCloseProps) => (
30
30
  <Icon name="x" />
31
31
  </Button>
32
32
  }
33
- className="absolute top-md right-md"
33
+ className="absolute right-md top-md"
34
34
  />
35
35
  );
36
36
 
@@ -21,7 +21,7 @@ export const Default: Story = {
21
21
  <Marquee.Item>
22
22
  <img src="https://resources.biscuits.club/images/pashka.jpg" />
23
23
  </Marquee.Item>
24
- <Marquee.Item className="flex items-center justify-center bg-primary-wash color-primary-dark text-lg">
24
+ <Marquee.Item className="flex items-center justify-center text-lg color-primary-dark bg-primary-wash">
25
25
  Hello, world
26
26
  </Marquee.Item>
27
27
  <Marquee.Item
@@ -26,12 +26,12 @@ export function Marquee({ className, children, timeout = 5000 }: MarqueeProps) {
26
26
  return (
27
27
  <div
28
28
  className={clsx(
29
- 'layer-components:(relative overflow-hidden w-full h-full)',
29
+ 'layer-components:(relative h-full w-full overflow-hidden)',
30
30
  className,
31
31
  )}
32
32
  >
33
33
  <div
34
- className="layer-components:(absolute top-0 left-0 h-full w-full overflow-visible flex flex-row transition-transform duration-300)"
34
+ className="layer-components:(absolute left-0 top-0 h-full w-full flex flex-row overflow-visible transition-transform duration-300)"
35
35
  style={{ transform: `translateX(${offset})` }}
36
36
  >
37
37
  {children}
@@ -6,12 +6,12 @@ import { withClassName } from '../../hooks.js';
6
6
  import { Icon, IconProps } from '../icon/index.js';
7
7
 
8
8
  export const navBarItemClass = classNames(
9
- 'layer-components:(flex flex-col items-center justify-center whitespace-nowrap py-1 px-3 bg-transparent rounded-sm border-none cursor-pointer text-sm transition-colors h-full gap-6px relative color-black select-none)',
9
+ 'layer-components:(relative h-full flex flex-col cursor-pointer select-none items-center justify-center gap-6px whitespace-nowrap rounded-sm border-none px-3 py-1 text-sm transition-colors color-black bg-transparent)',
10
10
  'layer-components:active:bg-darken-2',
11
11
  'layer-components:hover:(bg-main-light)',
12
12
  'layer-components:focus-visible:(outline-none ring-2 ring-accent)',
13
- 'layer-components:[&[data-active=true]]:(bg-main-light/50 color-lighten-2 color-black)',
14
- 'layer-responsive:md:(flex-row-reverse h-auto justify-start gap-2 overflow-visible active:bg-darken-2)',
13
+ 'layer-components:[&[data-active=true]]:(color-black color-lighten-2 bg-main-light/50)',
14
+ 'layer-responsive:md:(h-auto flex-row-reverse justify-start gap-2 overflow-visible active:bg-darken-2)',
15
15
  );
16
16
 
17
17
  export interface NavBarItemProps extends UseRenderComponentProps<'button'> {
@@ -16,27 +16,27 @@ export function Note({ className, color, children, ...rest }: NoteProps) {
16
16
  <div className="layer-components:(flex flex-row)">
17
17
  <div
18
18
  className={clsx(
19
- 'layer-components:(flex-1 p-2 border border-solid border-main-dark bg-main-wash bg-darken-1 color-black relative text-sm italic) layer-variants:border-r-0',
19
+ 'layer-components:(relative flex-1 border border-solid p-2 text-sm italic color-black bg-main-wash bg-darken-1 border-main-dark) layer-variants:border-r-0',
20
20
  'layer-variants:[&_input,&_textarea]:shadow-none',
21
21
  )}
22
22
  >
23
23
  {children}
24
24
  </div>
25
25
  <div
26
- className="layer-components:(flex flex-col items-stretch justify-stretch flex-[0_0_20px])"
26
+ className="layer-components:(flex flex-[0_0_20px] flex-col items-stretch justify-stretch)"
27
27
  aria-hidden
28
28
  >
29
29
  {/* folded corner */}
30
- <div className="layer-components:(border-0 border-solid border-main-dark flex-[0_0_20px] w-[20px] h-[20px] relative) layer-variants:(border-b-1px border-l-1px)">
30
+ <div className="layer-components:(relative h-[20px] w-[20px] flex-[0_0_20px] border-0 border-solid border-main-dark) layer-variants:(border-b-1px border-l-1px)">
31
31
  {/* top corner */}
32
32
  <div
33
- className={`layer-components:(border-solid box-content border-transparent border-r-main-wash border-r-darken-1 border-13px w-0 h-0 rotate--45 translate--7px transform-origin-br)`}
33
+ className={`layer-components:(box-content h-0 w-0 transform-origin-br translate--7px rotate--45 border-13px border-solid border-transparent border-r-main-wash border-r-darken-1)`}
34
34
  />
35
35
  {/* diagonal line */}
36
- <div className="layer-components:(absolute w-0.5px bg-main-dark h-27px rotate--45 left-9px top--3px transform-origin-cc)" />
36
+ <div className="layer-components:(absolute left-9px top--3px h-27px w-0.5px transform-origin-cc rotate--45 bg-main-dark)" />
37
37
  </div>
38
38
  {/* bottom right corner */}
39
- <div className="layer-components:(bg-main-wash bg-darken-1 flex-1 border-0 border-solid border-main-dark) layer-variants:(border-r-1px border-b-1px)" />
39
+ <div className="layer-components:(flex-1 border-0 border-solid bg-main-wash bg-darken-1 border-main-dark) layer-variants:(border-b-1px border-r-1px)" />
40
40
  </div>
41
41
  </div>
42
42
  </div>
@@ -67,11 +67,11 @@ export function NumberStepper({
67
67
  return (
68
68
  <div
69
69
  className={classNames(
70
- 'layer-components:(flex items-center border-solid border border-gray-dark rounded-lg overflow-hidden w-min-content flex-shrink-0 bg-white shadow-sm)',
70
+ 'layer-components:(w-min-content flex flex-shrink-0 items-center overflow-hidden border rounded-lg border-solid shadow-sm bg-white border-gray-dark)',
71
71
  disabled &&
72
- 'layer-variants:(border-gray-dark/80 bg-transparent shadow-none)',
72
+ 'layer-variants:(shadow-none bg-transparent border-gray-dark/80)',
73
73
  {
74
- 'layer-variants:(bg-accent-wash color-black)':
74
+ 'layer-variants:(color-black bg-accent-wash)':
75
75
  !!highlightChange && value !== 1,
76
76
  },
77
77
  className,
@@ -20,7 +20,7 @@ type Story = StoryObj<typeof ParticleLayer>;
20
20
  export const Default: Story = {
21
21
  render() {
22
22
  return (
23
- <div className="w-full h-[100vh] relative flex flex-col items-center justify-center">
23
+ <div className="relative h-[100vh] w-full flex flex-col items-center justify-center">
24
24
  <ExplodeButton />
25
25
  </div>
26
26
  );
@@ -54,7 +54,7 @@ export const HiddenTest: Story = {
54
54
  return (
55
55
  <>
56
56
  <div
57
- className="w-full relative flex flex-col items-center justify-center p-10"
57
+ className="relative w-full flex flex-col items-center justify-center p-10"
58
58
  style={{ visibility: hide ? 'hidden' : 'visible' }}
59
59
  >
60
60
  <Icon name="placeholder" ref={targetRef} />
@@ -27,7 +27,7 @@ export function ParticleLayer({
27
27
  const canvas = (
28
28
  <canvas
29
29
  ref={particles.setCanvas}
30
- className="fixed inset-0 w-full h-full z-[1000000] pointer-events-none"
30
+ className="pointer-events-none fixed inset-0 z-[1000000] h-full w-full"
31
31
  />
32
32
  );
33
33
 
@@ -108,13 +108,11 @@ export class Particles {
108
108
  };
109
109
 
110
110
  private renderParticles = (ctx: CanvasRenderingContext2D, delta: number) => {
111
- let freed = 0;
112
111
  for (let i = 0; i < this.particles.length; i++) {
113
112
  const particle = this.particles[i];
114
113
  if (particle.render(ctx, delta)) {
115
114
  particle.dispose();
116
115
  this.freeParticles.push(particle);
117
- freed++;
118
116
  }
119
117
  }
120
118
  };
@@ -300,7 +298,7 @@ export const createElementBorderInitializer = ({
300
298
  // randomly spawn particles around the border of the element by 'unwrapping' the selected borders as
301
299
  // a single theoretical line, picking a random point on the line, and then converting that point
302
300
  // back to a point on the border.
303
- return (index: number) => {
301
+ return (_index: number) => {
304
302
  // check that element is not hidden
305
303
  if (
306
304
  element instanceof HTMLElement &&
@@ -472,7 +470,7 @@ export const createWindowBorderInitializer = ({
472
470
  border?: BorderName;
473
471
  lifespan?: number;
474
472
  }): ParticleInitializer => {
475
- return (index: number) => {
473
+ return (_index: number) => {
476
474
  const rect = document.body.getBoundingClientRect();
477
475
  let x = 0;
478
476
  let y = 0;
@@ -58,7 +58,7 @@ export function Peek({ peekHeight = 120, children, className }: PeekProps) {
58
58
  <div
59
59
  className={classNames(
60
60
  'relative',
61
- '[&[data-state=closed]]:max-h-[var(--peek-height,120px)] overflow-hidden',
61
+ 'overflow-hidden [&[data-state=closed]]:max-h-[var(--peek-height,120px)]',
62
62
  hasInteracted.current &&
63
63
  'animate-ease-default animate-forwards [&[data-state=closed]]:(animate-keyframes-peek-close animate-duration-300) [&[data-state=open]]:(animate-keyframes-peek-open animate-duration-600 animate-forwards)',
64
64
  className,
@@ -79,10 +79,10 @@ export function Peek({ peekHeight = 120, children, className }: PeekProps) {
79
79
  <button
80
80
  data-state={open ? 'open' : 'closed'}
81
81
  className={classNames(
82
- 'h-80px absolute bottom-0 z-1 bg-transparent border-none w-full cursor-pointer border-b border-b-solid border-white',
82
+ 'absolute bottom-0 z-1 h-80px w-full cursor-pointer border-b border-none border-b-solid bg-transparent border-white',
83
83
  'animate-fade-in',
84
- 'focus-visible:(outline-none bg-gradient-to-b from-transparent to-primary-wash border-b border-b-solid border-main',
85
- 'after:(content-["-_tap_to_expand_-"] p-3 color-gray-dark text-xs flex flex-col justify-end items-center absolute inset-0 top-auto h-80px bg-gradient-to-b from-transparent to-white)',
84
+ 'focus-visible:(outline-none border-b border-b-solid from-transparent to-primary-wash bg-gradient-to-b border-main',
85
+ 'after:(absolute inset-0 top-auto h-80px flex flex-col items-center justify-end from-transparent to-white bg-gradient-to-b p-3 text-xs content-["-_tap_to_expand_-"] color-gray-dark)',
86
86
  'after:[&[data-state=open]]:content-["-_tap_to_collapse_-"]',
87
87
  )}
88
88
  onClick={toggle}