@justanarthur/modo-ui 0.6.0-canary.9 → 0.6.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 (490) hide show
  1. package/README.md +66 -164
  2. package/dist/base.css +4 -141
  3. package/dist/blocks/sidebar-app/index.js +26 -40
  4. package/dist/components/AI/input-message/index.js +16 -23
  5. package/dist/components/AI/thinking-indicator/index.js +6 -9
  6. package/dist/components/accordion/index.d.ts +11 -39
  7. package/dist/components/accordion/index.js +13 -18
  8. package/dist/components/badge/index.d.ts +11 -18
  9. package/dist/components/badge/index.js +7 -12
  10. package/dist/components/button/index.d.ts +17 -53
  11. package/dist/components/button/index.js +6 -11
  12. package/dist/components/card/index.d.ts +9 -32
  13. package/dist/components/card/index.js +11 -17
  14. package/dist/components/copy/index.d.ts +8 -41
  15. package/dist/components/copy/index.js +9 -15
  16. package/dist/components/inputs/checkbox/index.d.ts +9 -28
  17. package/dist/components/inputs/checkbox/index.js +13 -18
  18. package/dist/components/inputs/color-picker/index.d.ts +14 -22
  19. package/dist/components/inputs/color-picker/index.js +18 -26
  20. package/dist/components/inputs/combobox/index.d.ts +20 -85
  21. package/dist/components/inputs/combobox/index.js +18 -27
  22. package/dist/components/inputs/date-time/calendar/index.d.ts +18 -24
  23. package/dist/components/inputs/date-time/calendar/index.js +11 -15
  24. package/dist/components/inputs/date-time/date-picker/index.d.ts +16 -105
  25. package/dist/components/inputs/date-time/date-picker/index.js +25 -35
  26. package/dist/components/inputs/date-time/date-range-picker/index.d.ts +12 -106
  27. package/dist/components/inputs/date-time/date-range-picker/index.js +24 -35
  28. package/dist/components/inputs/date-time/duration-picker/index.d.ts +13 -66
  29. package/dist/components/inputs/date-time/duration-picker/index.js +24 -33
  30. package/dist/components/inputs/date-time/month-picker/index.d.ts +10 -60
  31. package/dist/components/inputs/date-time/month-picker/index.js +23 -32
  32. package/dist/components/inputs/date-time/time-picker/index.d.ts +10 -58
  33. package/dist/components/inputs/date-time/time-picker/index.js +24 -33
  34. package/dist/components/inputs/input/index.d.ts +13 -95
  35. package/dist/components/inputs/input/index.js +9 -18
  36. package/dist/components/inputs/radio/index.d.ts +5 -20
  37. package/dist/components/inputs/radio/index.js +12 -16
  38. package/dist/components/inputs/search/index.d.ts +3 -3
  39. package/dist/components/inputs/search/index.js +18 -26
  40. package/dist/components/inputs/select/index.d.ts +23 -99
  41. package/dist/components/inputs/select/index.js +14 -29
  42. package/dist/components/inputs/slider/index.d.ts +0 -9
  43. package/dist/components/inputs/slider/index.js +5 -8
  44. package/dist/components/inputs/switch/index.d.ts +2 -8
  45. package/dist/components/inputs/switch/index.js +12 -15
  46. package/dist/components/inputs/textarea/index.d.ts +1 -20
  47. package/dist/components/inputs/textarea/index.js +6 -9
  48. package/dist/components/navigation/sidebar/index.d.ts +21 -44
  49. package/dist/components/navigation/sidebar/index.js +31 -42
  50. package/dist/components/navigation/tabs/index.d.ts +2 -8
  51. package/dist/components/navigation/tabs/index.js +10 -15
  52. package/dist/components/navigation/tabs-subtle/index.js +10 -13
  53. package/dist/components/overlays/alert-dialog/index.d.ts +16 -135
  54. package/dist/components/overlays/alert-dialog/index.js +13 -23
  55. package/dist/components/overlays/command/index.d.ts +20 -25
  56. package/dist/components/overlays/command/index.js +17 -25
  57. package/dist/components/overlays/context-menu/index.d.ts +17 -39
  58. package/dist/components/overlays/context-menu/index.js +18 -29
  59. package/dist/components/overlays/dialog/index.d.ts +16 -42
  60. package/dist/components/overlays/dialog/index.js +12 -20
  61. package/dist/components/overlays/dropdown/index.d.ts +34 -304
  62. package/dist/components/overlays/dropdown/index.js +17 -44
  63. package/dist/components/overlays/popover/index.d.ts +12 -38
  64. package/dist/components/overlays/popover/index.js +9 -13
  65. package/dist/components/overlays/preview-card/index.js +8 -12
  66. package/dist/components/overlays/sheet/index.d.ts +8 -25
  67. package/dist/components/overlays/sheet/index.js +13 -19
  68. package/dist/components/overlays/toast/index.d.ts +50 -209
  69. package/dist/components/overlays/toast/index.js +10 -23
  70. package/dist/components/overlays/tooltip/index.d.ts +21 -123
  71. package/dist/components/overlays/tooltip/index.js +6 -16
  72. package/dist/components/table/index.d.ts +8 -63
  73. package/dist/components/table/index.js +9 -20
  74. package/dist/index.d.ts +1048 -2999
  75. package/dist/index.js +82 -231
  76. package/dist/preset.d.ts +0 -22
  77. package/dist/preset.js +2 -24
  78. package/dist/primitives/code/index.js +5 -8
  79. package/dist/primitives/craft/index.js +6 -10
  80. package/dist/primitives/fluid-hover/index.js +8 -10
  81. package/dist/primitives/morph/index.js +10 -16
  82. package/dist/primitives/motion/index.js +8 -11
  83. package/dist/primitives/scroll-area/index.js +3 -5
  84. package/dist/primitives/sizes/index.js +4 -6
  85. package/dist/primitives/surface/index.js +4 -6
  86. package/dist/shared/{components-c7rwx0ap.js → components-0q0sqfh4.js} +49 -27
  87. package/dist/shared/components-0sn7ypjw.js +61 -0
  88. package/dist/shared/{components-vc864c51.js → components-11da9ajg.js} +5 -8
  89. package/dist/shared/components-1434p1mh.js +123 -0
  90. package/dist/shared/{components-c74gf16d.js → components-1z6tdadk.js} +24 -40
  91. package/dist/shared/{components-bae8sbjx.js → components-27nnvrwe.js} +14 -15
  92. package/dist/shared/{components-qh1cvj6p.js → components-2dxkv6zm.js} +7 -8
  93. package/dist/shared/{components-y0kfy2g4.js → components-2ecg8svx.js} +152 -234
  94. package/dist/shared/{components-c5w5zk0s.js → components-2ph6t61s.js} +34 -37
  95. package/dist/shared/{components-4j3t39dd.js → components-39jq9va1.js} +24 -29
  96. package/dist/shared/components-3ky44908.js +9 -0
  97. package/dist/shared/{components-syynwm1r.js → components-3mkepka5.js} +25 -28
  98. package/dist/shared/{components-wgtjt2af.js → components-4700p9kz.js} +22 -24
  99. package/dist/shared/{components-yhgq0qxx.js → components-59efxjd9.js} +12 -13
  100. package/dist/shared/{components-91zw3d9f.js → components-5vgpnxgy.js} +27 -51
  101. package/dist/shared/{components-kz5q11pp.js → components-5xc2j8jz.js} +18 -19
  102. package/dist/shared/{components-zkk3fmw8.js → components-6p8tfcd6.js} +29 -57
  103. package/dist/shared/{components-4nck8acq.js → components-7r3etddy.js} +54 -19
  104. package/dist/shared/{components-svkt577j.js → components-8snj490h.js} +32 -78
  105. package/dist/shared/{components-ctqmge8t.js → components-b0eac83j.js} +30 -9
  106. package/dist/shared/{components-9sttq78t.js → components-b2wyq2cq.js} +59 -41
  107. package/dist/shared/{components-pv1dyrtn.js → components-b3c5et5b.js} +38 -49
  108. package/dist/shared/{components-rrbpmfx4.js → components-c6s6b43g.js} +2 -3
  109. package/dist/shared/{components-pwayrkw9.js → components-chacnk61.js} +19 -19
  110. package/dist/shared/{components-71nbt03m.js → components-cv16mryv.js} +7 -26
  111. package/dist/shared/{components-hgv6tygd.js → components-d6xtjht3.js} +30 -35
  112. package/dist/shared/{components-z8fedth5.js → components-dk0gjr5a.js} +18 -19
  113. package/dist/shared/{components-cet3jpa0.js → components-fzrq6tr3.js} +34 -37
  114. package/dist/shared/{components-cnead5qm.js → components-gc5vtq2f.js} +30 -66
  115. package/dist/shared/components-gf5s6ap9.js +42 -0
  116. package/dist/shared/{components-0h78g3b5.js → components-gz8zf3ec.js} +55 -56
  117. package/dist/shared/{components-mattt5jp.js → components-h2ajmhwn.js} +35 -107
  118. package/dist/shared/{components-m06yq8wk.js → components-hqeq3w9q.js} +23 -38
  119. package/dist/shared/{components-7qx17na9.js → components-hw9yk32z.js} +24 -36
  120. package/dist/shared/components-hyq23phv.js +310 -0
  121. package/dist/shared/{components-9jmjnkqd.js → components-jbbmdr74.js} +22 -41
  122. package/dist/shared/{components-dcc02hs2.js → components-jjw69c4c.js} +4 -7
  123. package/dist/shared/{components-303jf96s.js → components-jthe1pwb.js} +420 -139
  124. package/dist/shared/{components-dtca4s6b.js → components-jwst3vtj.js} +76 -224
  125. package/dist/shared/{components-dc5q749x.js → components-kvr7f9hy.js} +10 -19
  126. package/dist/shared/{components-s8yqk2dc.js → components-kwa6mrf9.js} +11 -46
  127. package/dist/shared/{components-de99ykt7.js → components-men63rwj.js} +2 -3
  128. package/dist/shared/{components-qx27excf.js → components-mjthm1kf.js} +9 -13
  129. package/dist/shared/{components-1e64t8aj.js → components-n42c79bz.js} +22 -23
  130. package/dist/shared/{components-tz1fv35x.js → components-n7mjr357.js} +2 -3
  131. package/dist/shared/components-ng72k97e.js +128 -0
  132. package/dist/shared/{components-w2jqa6hx.js → components-pbmqctfa.js} +65 -169
  133. package/dist/shared/{components-px2zm7dc.js → components-q5xj5c16.js} +8 -9
  134. package/dist/shared/components-raknhppb.js +64 -0
  135. package/dist/shared/{components-2a7hcand.js → components-rr7a6ja9.js} +27 -59
  136. package/dist/shared/{components-005jt2nz.js → components-s083f38z.js} +34 -164
  137. package/dist/shared/components-s5ngg32c.js +267 -0
  138. package/dist/shared/components-sn1rxx1d.js +143 -0
  139. package/dist/shared/{components-r8eqs7gz.js → components-ta7shw28.js} +4 -4
  140. package/dist/shared/{components-9as3rf68.js → components-vc7vq5nz.js} +3 -6
  141. package/dist/shared/{components-ft3zdc79.js → components-vfbhxf5r.js} +5 -6
  142. package/dist/shared/components-vynjtrk6.js +19 -0
  143. package/dist/shared/{components-p0fm0bab.js → components-w1r67ag9.js} +149 -294
  144. package/dist/shared/{components-xd3emmy4.js → components-w90endve.js} +72 -71
  145. package/dist/shared/{components-t5pk5nmc.js → components-wvp1m52g.js} +102 -149
  146. package/dist/shared/components-wy9jpqny.js +146 -0
  147. package/dist/shared/{components-yxmxn2jp.js → components-y9y0g8er.js} +28 -52
  148. package/dist/shared/components-ypp01w3p.js +986 -0
  149. package/dist/shared/{components-czdvj1a8.js → components-zfnmn5d4.js} +36 -82
  150. package/dist/shared/{components-jqpefjsn.js → components-zrkzcayz.js} +6 -54
  151. package/dist/shared/{components-vf45j12c.js → components-zx6b6yby.js} +18 -4
  152. package/dist/styles.css +32 -320
  153. package/dist/tailwind.css +0 -16
  154. package/dist/tokens.css +0 -67
  155. package/package.json +4 -227
  156. package/DESIGN.md +0 -623
  157. package/blocks/sidebar-app/examples.mdx +0 -33
  158. package/blocks/sidebar-app/index.tsx +0 -218
  159. package/blocks/sidebar-app/inset-topbar.tsx +0 -25
  160. package/blocks/sidebar-app/menu-grid.ts +0 -26
  161. package/blocks/sidebar-app/nav-data.ts +0 -36
  162. package/blocks/sidebar-app/search-field.tsx +0 -48
  163. package/blocks/sidebar-app/user-footer.tsx +0 -67
  164. package/blocks/sidebar-app/workspace-header.tsx +0 -129
  165. package/components/AI/input-message/examples.mdx +0 -130
  166. package/components/AI/input-message/file-thumbnail.tsx +0 -173
  167. package/components/AI/input-message/index.tsx +0 -1385
  168. package/components/AI/thinking-indicator/examples.mdx +0 -27
  169. package/components/AI/thinking-indicator/index.tsx +0 -210
  170. package/components/accordion/examples.mdx +0 -233
  171. package/components/accordion/index.tsx +0 -1071
  172. package/components/avatar/examples.mdx +0 -95
  173. package/components/avatar/index.tsx +0 -129
  174. package/components/badge/change-demo.tsx +0 -29
  175. package/components/badge/examples.mdx +0 -124
  176. package/components/badge/index.tsx +0 -225
  177. package/components/badge/variants.ts +0 -73
  178. package/components/button/examples.mdx +0 -168
  179. package/components/button/index.tsx +0 -424
  180. package/components/button/loading-demo.tsx +0 -25
  181. package/components/button/variants.ts +0 -168
  182. package/components/card/examples.mdx +0 -251
  183. package/components/card/index.tsx +0 -1070
  184. package/components/copy/examples.mdx +0 -125
  185. package/components/copy/index.tsx +0 -662
  186. package/components/inputs/checkbox/examples.mdx +0 -87
  187. package/components/inputs/checkbox/index.tsx +0 -611
  188. package/components/inputs/checkbox/select-all-demo.tsx +0 -48
  189. package/components/inputs/color-picker/examples.mdx +0 -111
  190. package/components/inputs/color-picker/index.tsx +0 -1981
  191. package/components/inputs/color-picker/variants.ts +0 -401
  192. package/components/inputs/combobox/examples.mdx +0 -366
  193. package/components/inputs/combobox/index.tsx +0 -1527
  194. package/components/inputs/combobox/remote-demo.tsx +0 -105
  195. package/components/inputs/date-time/calendar/examples.mdx +0 -45
  196. package/components/inputs/date-time/calendar/index.tsx +0 -370
  197. package/components/inputs/date-time/calendar/use-month-window.ts +0 -173
  198. package/components/inputs/date-time/date-picker/examples.mdx +0 -243
  199. package/components/inputs/date-time/date-picker/index.tsx +0 -476
  200. package/components/inputs/date-time/date-picker/masked-date-input.tsx +0 -348
  201. package/components/inputs/date-time/date-range-picker/examples.mdx +0 -93
  202. package/components/inputs/date-time/date-range-picker/index.tsx +0 -525
  203. package/components/inputs/date-time/duration-picker/examples.mdx +0 -40
  204. package/components/inputs/date-time/duration-picker/index.tsx +0 -253
  205. package/components/inputs/date-time/month-picker/examples.mdx +0 -45
  206. package/components/inputs/date-time/month-picker/index.tsx +0 -254
  207. package/components/inputs/date-time/picker-shell.tsx +0 -581
  208. package/components/inputs/date-time/time-columns.tsx +0 -94
  209. package/components/inputs/date-time/time-picker/examples.mdx +0 -57
  210. package/components/inputs/date-time/time-picker/index.tsx +0 -227
  211. package/components/inputs/field/examples.mdx +0 -117
  212. package/components/inputs/field/index.tsx +0 -268
  213. package/components/inputs/file-dropzone/examples.mdx +0 -83
  214. package/components/inputs/file-dropzone/file-row.tsx +0 -201
  215. package/components/inputs/file-dropzone/index.tsx +0 -316
  216. package/components/inputs/file-dropzone/upload-demo.tsx +0 -67
  217. package/components/inputs/file-dropzone/variants.ts +0 -94
  218. package/components/inputs/input/examples.mdx +0 -166
  219. package/components/inputs/input/index.tsx +0 -494
  220. package/components/inputs/input/password-demo.tsx +0 -30
  221. package/components/inputs/label/examples.mdx +0 -67
  222. package/components/inputs/label/index.tsx +0 -85
  223. package/components/inputs/number-input/examples.mdx +0 -69
  224. package/components/inputs/number-input/index.tsx +0 -221
  225. package/components/inputs/radio/examples.mdx +0 -77
  226. package/components/inputs/radio/index.tsx +0 -636
  227. package/components/inputs/search/examples.mdx +0 -74
  228. package/components/inputs/search/index.tsx +0 -333
  229. package/components/inputs/select/examples.mdx +0 -296
  230. package/components/inputs/select/index.tsx +0 -1044
  231. package/components/inputs/select/variants.ts +0 -32
  232. package/components/inputs/slider/examples.mdx +0 -153
  233. package/components/inputs/slider/index.tsx +0 -1867
  234. package/components/inputs/switch/examples.mdx +0 -96
  235. package/components/inputs/switch/index.tsx +0 -504
  236. package/components/inputs/textarea/examples.mdx +0 -126
  237. package/components/inputs/textarea/index.tsx +0 -207
  238. package/components/navigation/navigation-menu/examples.mdx +0 -136
  239. package/components/navigation/navigation-menu/index.tsx +0 -704
  240. package/components/navigation/pagination/examples.mdx +0 -74
  241. package/components/navigation/pagination/index.tsx +0 -401
  242. package/components/navigation/sidebar/examples.mdx +0 -325
  243. package/components/navigation/sidebar/index.tsx +0 -453
  244. package/components/navigation/sidebar/sidebar-core.tsx +0 -1408
  245. package/components/navigation/sidebar/sidebar-menu.tsx +0 -1495
  246. package/components/navigation/sidebar/sidebar.css +0 -74
  247. package/components/navigation/sidebar/variants.ts +0 -55
  248. package/components/navigation/tabs/examples.mdx +0 -89
  249. package/components/navigation/tabs/index.tsx +0 -494
  250. package/components/navigation/tabs-subtle/examples.mdx +0 -49
  251. package/components/navigation/tabs-subtle/index.tsx +0 -512
  252. package/components/overlays/alert-dialog/examples.mdx +0 -123
  253. package/components/overlays/alert-dialog/index.tsx +0 -276
  254. package/components/overlays/alert-dialog/pending-demo.tsx +0 -36
  255. package/components/overlays/command/examples.mdx +0 -113
  256. package/components/overlays/command/index.tsx +0 -425
  257. package/components/overlays/context-menu/examples.mdx +0 -56
  258. package/components/overlays/context-menu/index.tsx +0 -279
  259. package/components/overlays/dialog/examples.mdx +0 -165
  260. package/components/overlays/dialog/index.tsx +0 -451
  261. package/components/overlays/dropdown/dropdown-search.tsx +0 -395
  262. package/components/overlays/dropdown/examples.mdx +0 -444
  263. package/components/overlays/dropdown/index.tsx +0 -1241
  264. package/components/overlays/dropdown/menu-item.tsx +0 -510
  265. package/components/overlays/dropdown/menu-parts.tsx +0 -725
  266. package/components/overlays/popover/anchored-demo.tsx +0 -59
  267. package/components/overlays/popover/examples.mdx +0 -203
  268. package/components/overlays/popover/index.tsx +0 -317
  269. package/components/overlays/preview-card/examples.mdx +0 -61
  270. package/components/overlays/preview-card/index.tsx +0 -204
  271. package/components/overlays/sheet/examples.mdx +0 -101
  272. package/components/overlays/sheet/index.tsx +0 -307
  273. package/components/overlays/toast/examples.mdx +0 -85
  274. package/components/overlays/toast/global-demo.tsx +0 -72
  275. package/components/overlays/toast/index.tsx +0 -544
  276. package/components/overlays/toast/manager.ts +0 -193
  277. package/components/overlays/tooltip/examples.mdx +0 -106
  278. package/components/overlays/tooltip/index.tsx +0 -539
  279. package/components/progress/examples.mdx +0 -59
  280. package/components/progress/index.tsx +0 -174
  281. package/components/progress/progress.css +0 -49
  282. package/components/progress/step-demo.tsx +0 -27
  283. package/components/table/examples.mdx +0 -188
  284. package/components/table/index.tsx +0 -535
  285. package/components/table/sort-demo.tsx +0 -61
  286. package/dist/components/avatar/index.d.ts +0 -46
  287. package/dist/components/avatar/index.js +0 -19
  288. package/dist/components/badge/variants.d.ts +0 -33
  289. package/dist/components/badge/variants.js +0 -10
  290. package/dist/components/button/variants.d.ts +0 -39
  291. package/dist/components/button/variants.js +0 -8
  292. package/dist/components/inputs/color-picker/variants.d.ts +0 -61
  293. package/dist/components/inputs/color-picker/variants.js +0 -28
  294. package/dist/components/inputs/field/index.d.ts +0 -116
  295. package/dist/components/inputs/field/index.js +0 -29
  296. package/dist/components/inputs/file-dropzone/index.d.ts +0 -167
  297. package/dist/components/inputs/file-dropzone/index.js +0 -33
  298. package/dist/components/inputs/file-dropzone/variants.d.ts +0 -35
  299. package/dist/components/inputs/file-dropzone/variants.js +0 -12
  300. package/dist/components/inputs/label/index.d.ts +0 -32
  301. package/dist/components/inputs/label/index.js +0 -11
  302. package/dist/components/inputs/number-input/index.d.ts +0 -87
  303. package/dist/components/inputs/number-input/index.js +0 -21
  304. package/dist/components/inputs/select/variants.d.ts +0 -5
  305. package/dist/components/inputs/select/variants.js +0 -6
  306. package/dist/components/navigation/navigation-menu/index.d.ts +0 -126
  307. package/dist/components/navigation/navigation-menu/index.js +0 -41
  308. package/dist/components/navigation/pagination/index.d.ts +0 -75
  309. package/dist/components/navigation/pagination/index.js +0 -41
  310. package/dist/components/navigation/sidebar/variants.d.ts +0 -25
  311. package/dist/components/navigation/sidebar/variants.js +0 -28
  312. package/dist/components/progress/index.d.ts +0 -56
  313. package/dist/components/progress/index.js +0 -15
  314. package/dist/docs/index.d.ts +0 -83
  315. package/dist/docs/index.js +0 -288
  316. package/dist/docs/vite.d.ts +0 -31
  317. package/dist/docs/vite.js +0 -45
  318. package/dist/lib/date-locale.d.ts +0 -26
  319. package/dist/lib/date-locale.js +0 -24
  320. package/dist/lib/field-classes.d.ts +0 -149
  321. package/dist/lib/field-classes.js +0 -41
  322. package/dist/lib/field-variants.d.ts +0 -47
  323. package/dist/lib/field-variants.js +0 -26
  324. package/dist/lib/fluid-hover-highlight.d.ts +0 -112
  325. package/dist/lib/fluid-hover-highlight.js +0 -17
  326. package/dist/lib/focus-ring.d.ts +0 -18
  327. package/dist/lib/focus-ring.js +0 -11
  328. package/dist/lib/goo-indicator.d.ts +0 -46
  329. package/dist/lib/goo-indicator.js +0 -14
  330. package/dist/lib/icon-context.d.ts +0 -30
  331. package/dist/lib/icon-context.js +0 -12
  332. package/dist/lib/inert.d.ts +0 -9
  333. package/dist/lib/inert.js +0 -8
  334. package/dist/lib/morph-layers.d.ts +0 -93
  335. package/dist/lib/morph-layers.js +0 -13
  336. package/dist/lib/morph-part.d.ts +0 -21
  337. package/dist/lib/morph-part.js +0 -12
  338. package/dist/lib/popup.d.ts +0 -20
  339. package/dist/lib/popup.js +0 -12
  340. package/dist/lib/reduced-motion.d.ts +0 -9
  341. package/dist/lib/reduced-motion.js +0 -6
  342. package/dist/lib/row-index.d.ts +0 -10
  343. package/dist/lib/row-index.js +0 -8
  344. package/dist/lib/row-order.d.ts +0 -28
  345. package/dist/lib/row-order.js +0 -10
  346. package/dist/lib/scroll-column.d.ts +0 -31
  347. package/dist/lib/scroll-column.js +0 -19
  348. package/dist/lib/shape-context.d.ts +0 -30
  349. package/dist/lib/shape-context.js +0 -13
  350. package/dist/lib/shape-radius.d.ts +0 -19
  351. package/dist/lib/shape-radius.js +0 -6
  352. package/dist/lib/size-context.d.ts +0 -94
  353. package/dist/lib/size-context.js +0 -20
  354. package/dist/lib/size-scale.d.ts +0 -79
  355. package/dist/lib/size-scale.js +0 -8
  356. package/dist/lib/slot.d.ts +0 -39
  357. package/dist/lib/slot.js +0 -14
  358. package/dist/lib/springs.d.ts +0 -44
  359. package/dist/lib/springs.js +0 -8
  360. package/dist/lib/surface-classes.d.ts +0 -19
  361. package/dist/lib/surface-classes.js +0 -10
  362. package/dist/lib/surface-context.d.ts +0 -9
  363. package/dist/lib/surface-context.js +0 -8
  364. package/dist/lib/use-controllable-state.d.ts +0 -2
  365. package/dist/lib/use-controllable-state.js +0 -6
  366. package/dist/lib/use-fluid-hover.d.ts +0 -138
  367. package/dist/lib/use-fluid-hover.js +0 -14
  368. package/dist/lib/use-is-mobile.d.ts +0 -2
  369. package/dist/lib/use-is-mobile.js +0 -6
  370. package/dist/lib/use-keyboard-nav-gate.d.ts +0 -20
  371. package/dist/lib/use-keyboard-nav-gate.js +0 -7
  372. package/dist/lib/use-merge-split.d.ts +0 -47
  373. package/dist/lib/use-merge-split.js +0 -15
  374. package/dist/lib/use-morph.d.ts +0 -101
  375. package/dist/lib/use-morph.js +0 -20
  376. package/dist/lib/use-touch-primary.d.ts +0 -2
  377. package/dist/lib/use-touch-primary.js +0 -6
  378. package/dist/lib/utils.d.ts +0 -3
  379. package/dist/lib/utils.js +0 -6
  380. package/dist/primitives/separator/index.d.ts +0 -25
  381. package/dist/primitives/separator/index.js +0 -9
  382. package/dist/primitives/skeleton/index.d.ts +0 -35
  383. package/dist/primitives/skeleton/index.js +0 -13
  384. package/dist/shared/components-01w9qcfa.js +0 -277
  385. package/dist/shared/components-124epb7f.js +0 -53
  386. package/dist/shared/components-26snnbs9.js +0 -322
  387. package/dist/shared/components-2krsc300.js +0 -254
  388. package/dist/shared/components-2qbqqpgq.js +0 -1545
  389. package/dist/shared/components-34txk9rj.js +0 -35
  390. package/dist/shared/components-3h92d94m.js +0 -23
  391. package/dist/shared/components-4vfm04wq.js +0 -82
  392. package/dist/shared/components-54nq988h.js +0 -123
  393. package/dist/shared/components-7s7pykk5.js +0 -281
  394. package/dist/shared/components-868v7scv.js +0 -399
  395. package/dist/shared/components-8jrk5eye.js +0 -448
  396. package/dist/shared/components-adkarj8n.js +0 -35
  397. package/dist/shared/components-b1e239g3.js +0 -28
  398. package/dist/shared/components-b94t6qtj.js +0 -143
  399. package/dist/shared/components-bsqynhaj.js +0 -179
  400. package/dist/shared/components-c9yr4ed1.js +0 -44
  401. package/dist/shared/components-d3shbwqq.js +0 -95
  402. package/dist/shared/components-dhgk6mbt.js +0 -16
  403. package/dist/shared/components-drxrtnp2.js +0 -25
  404. package/dist/shared/components-f7h57m6t.js +0 -59
  405. package/dist/shared/components-g3eafs70.js +0 -337
  406. package/dist/shared/components-gx4h5rbb.js +0 -40
  407. package/dist/shared/components-gyt7my41.js +0 -328
  408. package/dist/shared/components-h6p86be3.js +0 -19
  409. package/dist/shared/components-h83az0bz.js +0 -33
  410. package/dist/shared/components-hdzrqqpx.js +0 -55
  411. package/dist/shared/components-krtx3m5b.js +0 -84
  412. package/dist/shared/components-kswxnm3h.js +0 -24
  413. package/dist/shared/components-mhza2wdn.js +0 -482
  414. package/dist/shared/components-mrbaxt8q.js +0 -62
  415. package/dist/shared/components-pt5ftm4p.js +0 -38
  416. package/dist/shared/components-rtadhd9j.js +0 -64
  417. package/dist/shared/components-tv7b8tet.js +0 -271
  418. package/dist/shared/components-tz4gaf1v.js +0 -23
  419. package/dist/shared/components-wbbckbw8.js +0 -34
  420. package/dist/shared/components-wknae3m4.js +0 -298
  421. package/dist/shared/components-xdqmt6ed.js +0 -20
  422. package/dist/shared/components-xjkdvnbg.js +0 -107
  423. package/dist/shared/components-z3v0n0de.js +0 -11
  424. package/dist/tokens/colors.css +0 -230
  425. package/dist/tokens/motion.css +0 -40
  426. package/dist/tokens/radius.css +0 -10
  427. package/dist/tokens/spacing.css +0 -9
  428. package/dist/tokens/typography.css +0 -119
  429. package/docs/chrome.css +0 -120
  430. package/docs/chrome.tsx +0 -283
  431. package/docs/index.ts +0 -9
  432. package/docs/vite.ts +0 -85
  433. package/index.ts +0 -60
  434. package/lib/date-locale.ts +0 -195
  435. package/lib/field-classes.ts +0 -121
  436. package/lib/field-variants.ts +0 -117
  437. package/lib/fluid-hover-highlight.tsx +0 -139
  438. package/lib/focus-ring.tsx +0 -46
  439. package/lib/goo-indicator.tsx +0 -261
  440. package/lib/icon-context.tsx +0 -310
  441. package/lib/inert.ts +0 -22
  442. package/lib/morph-layers.tsx +0 -102
  443. package/lib/morph-part.tsx +0 -49
  444. package/lib/popup.ts +0 -52
  445. package/lib/reduced-motion.ts +0 -19
  446. package/lib/row-index.tsx +0 -29
  447. package/lib/row-order.tsx +0 -126
  448. package/lib/scroll-column.tsx +0 -273
  449. package/lib/shape-context.tsx +0 -138
  450. package/lib/shape-radius.ts +0 -67
  451. package/lib/size-context.tsx +0 -66
  452. package/lib/size-scale.ts +0 -115
  453. package/lib/slot.ts +0 -115
  454. package/lib/springs.ts +0 -62
  455. package/lib/surface-classes.ts +0 -58
  456. package/lib/surface-context.tsx +0 -21
  457. package/lib/use-controllable-state.ts +0 -44
  458. package/lib/use-fluid-hover.ts +0 -541
  459. package/lib/use-is-mobile.ts +0 -25
  460. package/lib/use-keyboard-nav-gate.ts +0 -45
  461. package/lib/use-merge-split.tsx +0 -209
  462. package/lib/use-morph.ts +0 -575
  463. package/lib/use-touch-primary.tsx +0 -43
  464. package/lib/utils.ts +0 -37
  465. package/preset.ts +0 -199
  466. package/primitives/code/examples.mdx +0 -27
  467. package/primitives/code/index.tsx +0 -80
  468. package/primitives/craft/demos.tsx +0 -173
  469. package/primitives/craft/examples.mdx +0 -142
  470. package/primitives/craft/index.tsx +0 -76
  471. package/primitives/fluid-hover/examples.mdx +0 -84
  472. package/primitives/fluid-hover/index.tsx +0 -316
  473. package/primitives/morph/examples.mdx +0 -139
  474. package/primitives/morph/index.tsx +0 -192
  475. package/primitives/motion/examples.mdx +0 -100
  476. package/primitives/motion/index.tsx +0 -160
  477. package/primitives/scroll-area/examples.mdx +0 -58
  478. package/primitives/scroll-area/index.tsx +0 -204
  479. package/primitives/separator/examples.mdx +0 -30
  480. package/primitives/separator/index.tsx +0 -53
  481. package/primitives/sizes/examples.mdx +0 -167
  482. package/primitives/sizes/index.tsx +0 -89
  483. package/primitives/skeleton/examples.mdx +0 -51
  484. package/primitives/skeleton/index.tsx +0 -72
  485. package/primitives/skeleton/skeleton.css +0 -15
  486. package/primitives/surface/examples.mdx +0 -173
  487. package/primitives/surface/index.tsx +0 -109
  488. package/primitives/surface/surface.css +0 -176
  489. /package/dist/shared/{components-3ey0hzpb.js → components-1v7rxytx.js} +0 -0
  490. /package/dist/shared/{components-jcnjay5g.js → components-ezxhrmer.js} +0 -0
@@ -1,401 +0,0 @@
1
- // biome-ignore-all lint: vendored upstream code keeps its own patterns (see the header)
2
- /*
3
- * Ported from Fluid Functionalism — github.com/mickadesign/fluid-functionalism
4
- * `registry/default/color-picker.tsx` @ b3587bdbd83fc66c2a6aae3817ffb856cb09260b
5
- * MIT License © 2026 Micka Touillaud — fluidfunctionalism.com (notice: LICENSE.fluid-functionalism)
6
- * Local modifications: the color types and the color math (`parseColor`,
7
- * `buildParsed`, the conversions and formatting), split out of `index.tsx`
8
- * unchanged into a module with no JSX, hooks or contexts, so server code can
9
- * parse and format colors; `index.tsx` re-exports `parseColor` / `buildParsed`
10
- * and the types. `resolveCssColor` reads a canvas, so it still runs only from
11
- * handlers or effects.
12
- */
13
-
14
- type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'oklch'
15
-
16
- interface ParsedColor {
17
- // HSV (canonical, 0..360 / 0..1 / 0..1)
18
- h: number
19
- s: number
20
- v: number
21
- a: number
22
- // sRGB 0..255
23
- r: number
24
- g: number
25
- b: number
26
- // Formatted strings
27
- hex: string
28
- rgb: string
29
- hsl: string
30
- oklch: string
31
- }
32
-
33
- // ---------------------------------------------------------------------------
34
- // Color math (no deps)
35
- // ---------------------------------------------------------------------------
36
-
37
- function clamp01(n: number) {
38
- return Math.max(0, Math.min(1, n))
39
- }
40
-
41
- function clamp255(n: number) {
42
- return Math.max(0, Math.min(255, n))
43
- }
44
-
45
- function hsvToRgb(h: number, s: number, v: number): { r: number; g: number; b: number } {
46
- const c = v * s
47
- const hh = (((h % 360) + 360) % 360) / 60
48
- const x = c * (1 - Math.abs((hh % 2) - 1))
49
- let r = 0,
50
- g = 0,
51
- b = 0
52
- if (hh < 1) {
53
- r = c
54
- g = x
55
- b = 0
56
- } else if (hh < 2) {
57
- r = x
58
- g = c
59
- b = 0
60
- } else if (hh < 3) {
61
- r = 0
62
- g = c
63
- b = x
64
- } else if (hh < 4) {
65
- r = 0
66
- g = x
67
- b = c
68
- } else if (hh < 5) {
69
- r = x
70
- g = 0
71
- b = c
72
- } else {
73
- r = c
74
- g = 0
75
- b = x
76
- }
77
- const m = v - c
78
- return { r: (r + m) * 255, g: (g + m) * 255, b: (b + m) * 255 }
79
- }
80
-
81
- function rgbToHsv(r: number, g: number, b: number): { h: number; s: number; v: number } {
82
- r /= 255
83
- g /= 255
84
- b /= 255
85
- const max = Math.max(r, g, b)
86
- const min = Math.min(r, g, b)
87
- const v = max
88
- const d = max - min
89
- const s = max === 0 ? 0 : d / max
90
- let h = 0
91
- if (d > 0) {
92
- if (max === r) h = ((g - b) / d) % 6
93
- else if (max === g) h = (b - r) / d + 2
94
- else h = (r - g) / d + 4
95
- h *= 60
96
- if (h < 0) h += 360
97
- }
98
- return { h, s, v }
99
- }
100
-
101
- function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {
102
- r /= 255
103
- g /= 255
104
- b /= 255
105
- const max = Math.max(r, g, b)
106
- const min = Math.min(r, g, b)
107
- const l = (max + min) / 2
108
- const d = max - min
109
- let h = 0,
110
- s = 0
111
- if (d > 0) {
112
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
113
- if (max === r) h = ((g - b) / d) % 6
114
- else if (max === g) h = (b - r) / d + 2
115
- else h = (r - g) / d + 4
116
- h *= 60
117
- if (h < 0) h += 360
118
- }
119
- return { h, s, l }
120
- }
121
-
122
- function hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number } {
123
- const c = (1 - Math.abs(2 * l - 1)) * s
124
- const hh = (((h % 360) + 360) % 360) / 60
125
- const x = c * (1 - Math.abs((hh % 2) - 1))
126
- let r = 0,
127
- g = 0,
128
- b = 0
129
- if (hh < 1) {
130
- r = c
131
- g = x
132
- } else if (hh < 2) {
133
- r = x
134
- g = c
135
- } else if (hh < 3) {
136
- g = c
137
- b = x
138
- } else if (hh < 4) {
139
- g = x
140
- b = c
141
- } else if (hh < 5) {
142
- r = x
143
- b = c
144
- } else {
145
- r = c
146
- b = x
147
- }
148
- const m = l - c / 2
149
- return { r: (r + m) * 255, g: (g + m) * 255, b: (b + m) * 255 }
150
- }
151
-
152
- function srgbToLinear(c: number): number {
153
- c = c / 255
154
- return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4
155
- }
156
-
157
- function linearToSrgb(c: number): number {
158
- const v = c <= 0.0031308 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - 0.055
159
- return clamp01(v) * 255
160
- }
161
-
162
- function linearRgbToOklab(r: number, g: number, b: number): { L: number; a: number; b: number } {
163
- const l = 0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b
164
- const m = 0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b
165
- const s = 0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b
166
- const l_ = Math.cbrt(l)
167
- const m_ = Math.cbrt(m)
168
- const s_ = Math.cbrt(s)
169
- return {
170
- L: 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_,
171
- a: 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_,
172
- b: 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_,
173
- }
174
- }
175
-
176
- function oklabToLinearRgb(L: number, a: number, b: number): { r: number; g: number; b: number } {
177
- const l_ = L + 0.3963377774 * a + 0.2158037573 * b
178
- const m_ = L - 0.1055613458 * a - 0.0638541728 * b
179
- const s_ = L - 0.0894841775 * a - 1.291485548 * b
180
- const l = l_ * l_ * l_
181
- const m = m_ * m_ * m_
182
- const s = s_ * s_ * s_
183
- return {
184
- r: 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,
185
- g: -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,
186
- b: -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s,
187
- }
188
- }
189
-
190
- function rgbToOklch(r: number, g: number, b: number): { L: number; C: number; H: number } {
191
- const lr = srgbToLinear(r)
192
- const lg = srgbToLinear(g)
193
- const lb = srgbToLinear(b)
194
- const lab = linearRgbToOklab(lr, lg, lb)
195
- const C = Math.sqrt(lab.a * lab.a + lab.b * lab.b)
196
- let H = (Math.atan2(lab.b, lab.a) * 180) / Math.PI
197
- if (H < 0) H += 360
198
- return { L: lab.L, C, H }
199
- }
200
-
201
- function oklchToRgb(L: number, C: number, H: number): { r: number; g: number; b: number } {
202
- const a = C * Math.cos((H * Math.PI) / 180)
203
- const b = C * Math.sin((H * Math.PI) / 180)
204
- const lin = oklabToLinearRgb(L, a, b)
205
- // Clamp to sRGB silently (option a from plan)
206
- return {
207
- r: clamp255(linearToSrgb(lin.r)),
208
- g: clamp255(linearToSrgb(lin.g)),
209
- b: clamp255(linearToSrgb(lin.b)),
210
- }
211
- }
212
-
213
- function to2hex(n: number): string {
214
- return Math.round(clamp255(n)).toString(16).padStart(2, '0')
215
- }
216
-
217
- function rgbToHexStr(r: number, g: number, b: number, a: number): string {
218
- if (a >= 1) return `#${to2hex(r)}${to2hex(g)}${to2hex(b)}`
219
- return `#${to2hex(r)}${to2hex(g)}${to2hex(b)}${to2hex(a * 255)}`
220
- }
221
-
222
- function expandShortHex(h: string): string {
223
- if (h.length === 3)
224
- return h
225
- .split('')
226
- .map(c => c + c)
227
- .join('')
228
- if (h.length === 4)
229
- return h
230
- .split('')
231
- .map(c => c + c)
232
- .join('')
233
- return h
234
- }
235
-
236
- function parseHex(input: string): { r: number; g: number; b: number; a: number } | null {
237
- const m = input.trim().match(/^#?([0-9a-fA-F]{3,8})$/)
238
- if (!m) return null
239
- let h = m[1]!
240
- if (h.length === 3 || h.length === 4) h = expandShortHex(h)
241
- if (h.length === 6) {
242
- return {
243
- r: parseInt(h.slice(0, 2), 16),
244
- g: parseInt(h.slice(2, 4), 16),
245
- b: parseInt(h.slice(4, 6), 16),
246
- a: 1,
247
- }
248
- }
249
- if (h.length === 8) {
250
- return {
251
- r: parseInt(h.slice(0, 2), 16),
252
- g: parseInt(h.slice(2, 4), 16),
253
- b: parseInt(h.slice(4, 6), 16),
254
- a: parseInt(h.slice(6, 8), 16) / 255,
255
- }
256
- }
257
- return null
258
- }
259
-
260
- // `parts[n]` reads are asserted after the explicit length guard, and the
261
- // optional alpha part goes through a local so `noUncheckedIndexedAccess`
262
- // narrows it — the only shape change from upstream in this function.
263
- function parseAlphaPart(part: string | undefined): number {
264
- if (part === undefined) return 1
265
- return part.endsWith('%') ? parseFloat(part) / 100 : parseFloat(part)
266
- }
267
-
268
- function parseColor(input: string): { r: number; g: number; b: number; a: number } | null {
269
- const s = input.trim()
270
- if (!s) return null
271
- if (s.startsWith('#') || /^[0-9a-fA-F]{3,8}$/.test(s)) {
272
- return parseHex(s)
273
- }
274
- const rgbM = s.match(/^rgba?\(\s*([^)]+)\)$/i)
275
- if (rgbM) {
276
- const parts = rgbM[1]!.split(/[\s,/]+/).filter(Boolean)
277
- if (parts.length < 3) return null
278
- const r = parseFloat(parts[0]!)
279
- const g = parseFloat(parts[1]!)
280
- const b = parseFloat(parts[2]!)
281
- const a = parseAlphaPart(parts[3])
282
- if ([r, g, b, a].some(Number.isNaN)) return null
283
- return { r: clamp255(r), g: clamp255(g), b: clamp255(b), a: clamp01(a) }
284
- }
285
- const hslM = s.match(/^hsla?\(\s*([^)]+)\)$/i)
286
- if (hslM) {
287
- const parts = hslM[1]!.split(/[\s,/]+/).filter(Boolean)
288
- if (parts.length < 3) return null
289
- const h = parseFloat(parts[0]!)
290
- const sat = parts[1]!.endsWith('%') ? parseFloat(parts[1]!) / 100 : parseFloat(parts[1]!)
291
- const l = parts[2]!.endsWith('%') ? parseFloat(parts[2]!) / 100 : parseFloat(parts[2]!)
292
- const a = parseAlphaPart(parts[3])
293
- if ([h, sat, l, a].some(Number.isNaN)) return null
294
- const rgb = hslToRgb(h, clamp01(sat), clamp01(l))
295
- return { r: clamp255(rgb.r), g: clamp255(rgb.g), b: clamp255(rgb.b), a: clamp01(a) }
296
- }
297
- const oklchM = s.match(/^oklch\(\s*([^)]+)\)$/i)
298
- if (oklchM) {
299
- const parts = oklchM[1]!.split(/[\s,/]+/).filter(Boolean)
300
- if (parts.length < 3) return null
301
- const L = parts[0]!.endsWith('%') ? parseFloat(parts[0]!) / 100 : parseFloat(parts[0]!)
302
- const C = parseFloat(parts[1]!)
303
- const H = parseFloat(parts[2]!)
304
- const a = parseAlphaPart(parts[3])
305
- if ([L, C, H, a].some(Number.isNaN)) return null
306
- const rgb = oklchToRgb(clamp01(L), Math.max(0, C), H)
307
- return { r: clamp255(rgb.r), g: clamp255(rgb.g), b: clamp255(rgb.b), a: clamp01(a) }
308
- }
309
- return null
310
- }
311
-
312
- // Browser-assisted fallback for color strings the manual parser doesn't cover
313
- // (named CSS colors like "red" / "tomato", etc.). A canvas 2d context
314
- // round-trips any valid CSS color through `fillStyle`, which serializes to a
315
- // hex or rgba() string that parseColor understands. Must only be called from
316
- // event handlers or effects — never at module scope or during render — so SSR
317
- // stays safe.
318
- let cssColorCtx: CanvasRenderingContext2D | null = null
319
-
320
- function resolveCssColor(input: string): { r: number; g: number; b: number; a: number } | null {
321
- const direct = parseColor(input)
322
- if (direct) return direct
323
- const s = input.trim()
324
- if (!s || typeof document === 'undefined') return null
325
- if (!cssColorCtx) {
326
- cssColorCtx = document.createElement('canvas').getContext('2d')
327
- if (!cssColorCtx) return null
328
- }
329
- const ctx = cssColorCtx
330
- // An invalid color assignment leaves fillStyle untouched, so round-trip from
331
- // two different starting values to detect rejection.
332
- ctx.fillStyle = '#000000'
333
- ctx.fillStyle = s
334
- const first = String(ctx.fillStyle)
335
- ctx.fillStyle = '#ffffff'
336
- ctx.fillStyle = s
337
- const second = String(ctx.fillStyle)
338
- if (first !== second) return null
339
- return parseColor(first)
340
- }
341
-
342
- function buildParsed(h: number, s: number, v: number, a: number): ParsedColor {
343
- const { r, g, b } = hsvToRgb(h, s, v)
344
- const hsl = rgbToHsl(r, g, b)
345
- const oklch = rgbToOklch(r, g, b)
346
- const hex = rgbToHexStr(r, g, b, a)
347
- const rgbStr =
348
- a >= 1
349
- ? `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`
350
- : `rgba(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)}, ${Number(a.toFixed(3))})`
351
- const hslStr =
352
- a >= 1
353
- ? `hsl(${Math.round(hsl.h)}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%)`
354
- : `hsla(${Math.round(hsl.h)}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%, ${Number(a.toFixed(3))})`
355
- const oklchStr =
356
- a >= 1
357
- ? `oklch(${(oklch.L * 100).toFixed(1)}% ${oklch.C.toFixed(3)} ${oklch.H.toFixed(1)})`
358
- : `oklch(${(oklch.L * 100).toFixed(1)}% ${oklch.C.toFixed(3)} ${oklch.H.toFixed(1)} / ${Number(a.toFixed(3))})`
359
- return {
360
- h,
361
- s,
362
- v,
363
- a,
364
- r: Math.round(r),
365
- g: Math.round(g),
366
- b: Math.round(b),
367
- hex,
368
- rgb: rgbStr,
369
- hsl: hslStr,
370
- oklch: oklchStr,
371
- }
372
- }
373
-
374
- function formatValueByFormat(parsed: ParsedColor, fmt: ColorFormat): string {
375
- switch (fmt) {
376
- case 'hex':
377
- return parsed.hex
378
- case 'rgb':
379
- return parsed.rgb
380
- case 'hsl':
381
- return parsed.hsl
382
- case 'oklch':
383
- return parsed.oklch
384
- }
385
- }
386
-
387
- export type { ColorFormat, ParsedColor }
388
- export {
389
- buildParsed,
390
- clamp01,
391
- formatValueByFormat,
392
- hslToRgb,
393
- hsvToRgb,
394
- oklchToRgb,
395
- parseColor,
396
- resolveCssColor,
397
- rgbToHexStr,
398
- rgbToHsl,
399
- rgbToHsv,
400
- rgbToOklch,
401
- }