@accelint/design-system 0.2.1 → 0.3.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 (370) hide show
  1. package/dist/chunk-4CPMP3H7.js +418 -0
  2. package/dist/chunk-4CPMP3H7.js.map +1 -0
  3. package/dist/{styles.css → index.css} +1163 -1057
  4. package/dist/index.css.map +1 -0
  5. package/dist/index.d.ts +871 -8
  6. package/dist/index.js +5278 -66
  7. package/dist/index.js.map +1 -1
  8. package/dist/vanilla-DUNpoS8t.d.ts +2514 -0
  9. package/dist/vanilla.d.ts +9 -30
  10. package/dist/vanilla.js +3 -27
  11. package/dist/vanilla.js.map +1 -0
  12. package/package.json +10 -13
  13. package/dist/assets/components/button/button.css +0 -55
  14. package/dist/assets/components/checkbox/checkbox.css +0 -73
  15. package/dist/assets/components/chip/chip.css +0 -62
  16. package/dist/assets/components/combo-box/combo-box.css +0 -66
  17. package/dist/assets/components/dialog/dialog.css +0 -51
  18. package/dist/assets/components/drawer/drawer.css +0 -135
  19. package/dist/assets/components/group/group.css +0 -33
  20. package/dist/assets/components/icon/icon.css +0 -19
  21. package/dist/assets/components/input/input.css +0 -29
  22. package/dist/assets/components/menu/menu.css +0 -85
  23. package/dist/assets/components/options/options.css +0 -82
  24. package/dist/assets/components/picker/picker.css +0 -47
  25. package/dist/assets/components/popover/popover.css +0 -26
  26. package/dist/assets/components/query-builder/query-builder.css +0 -129
  27. package/dist/assets/components/radio/radio.css +0 -67
  28. package/dist/assets/components/search-field/search-field.css +0 -62
  29. package/dist/assets/components/select/select.css +0 -33
  30. package/dist/assets/components/switch/switch.css +0 -62
  31. package/dist/assets/components/tabs/tabs.css +0 -144
  32. package/dist/assets/components/textarea/textarea.css +0 -32
  33. package/dist/assets/components/tooltip/tooltip.css +0 -54
  34. package/dist/assets/components/tree/tree.css +0 -157
  35. package/dist/assets/hooks/use-theme/use-theme.css +0 -6
  36. package/dist/assets/src/components/button/button.css.ts.vanilla-9uttMYGm.css +0 -55
  37. package/dist/assets/src/components/checkbox/checkbox.css.ts.vanilla-Bewmypyn.css +0 -73
  38. package/dist/assets/src/components/chip/chip.css.ts.vanilla-CsGhxrlu.css +0 -62
  39. package/dist/assets/src/components/combo-box/combo-box.css.ts.vanilla-BNEPKjPm.css +0 -66
  40. package/dist/assets/src/components/dialog/dialog.css.ts.vanilla-CG0m-NJD.css +0 -51
  41. package/dist/assets/src/components/drawer/drawer.css.ts.vanilla-DEfHnoNS.css +0 -135
  42. package/dist/assets/src/components/group/group.css.ts.vanilla-DR69xgQy.css +0 -33
  43. package/dist/assets/src/components/icon/icon.css.ts.vanilla-CoUAfp2F.css +0 -19
  44. package/dist/assets/src/components/input/input.css.ts.vanilla-DoK5h9SX.css +0 -29
  45. package/dist/assets/src/components/menu/menu.css.ts.vanilla-LoWLg-jE.css +0 -85
  46. package/dist/assets/src/components/options/options.css.ts.vanilla-CWWFBTou.css +0 -82
  47. package/dist/assets/src/components/picker/picker.css.ts.vanilla-Fe0YXv-c.css +0 -47
  48. package/dist/assets/src/components/popover/popover.css.ts.vanilla-C5YGwwVD.css +0 -26
  49. package/dist/assets/src/components/query-builder/query-builder.css.ts.vanilla-B3P9cbCv.css +0 -129
  50. package/dist/assets/src/components/radio/radio.css.ts.vanilla-gi-KedQc.css +0 -67
  51. package/dist/assets/src/components/search-field/search-field.css.ts.vanilla-B_JL53f8.css +0 -62
  52. package/dist/assets/src/components/select/select.css.ts.vanilla-C94A60jf.css +0 -33
  53. package/dist/assets/src/components/switch/switch.css.ts.vanilla-DkQwtRa6.css +0 -62
  54. package/dist/assets/src/components/tabs/tabs.css.ts.vanilla-BygIflpl.css +0 -144
  55. package/dist/assets/src/components/textarea/textarea.css.ts.vanilla-Ba6E5HFc.css +0 -32
  56. package/dist/assets/src/components/tooltip/tooltip.css.ts.vanilla-BntxAlwN.css +0 -54
  57. package/dist/assets/src/components/tree/tree.css.ts.vanilla-SLmhk0zZ.css +0 -157
  58. package/dist/assets/src/hooks/use-theme/use-theme.css.ts.vanilla-zkVHnGkP.css +0 -6
  59. package/dist/assets/src/styles/layers.css.ts.vanilla-B2GUgnOF.css +0 -21
  60. package/dist/assets/src/styles/reset.css.ts.vanilla-C8PShXm0.css +0 -31
  61. package/dist/assets/src/styles/space.css.ts.vanilla-Md6Whc4G.css +0 -18
  62. package/dist/assets/src/styles/surfaces.css.ts.vanilla-Ckztx7VT.css +0 -24
  63. package/dist/assets/src/styles/theme.css.ts.vanilla-aDPSIzBK.css +0 -208
  64. package/dist/assets/src/styles/typography.css.ts.vanilla-DRT9H7rd.css +0 -150
  65. package/dist/assets/styles/layers.css +0 -21
  66. package/dist/assets/styles/reset.css +0 -31
  67. package/dist/assets/styles/space.css +0 -18
  68. package/dist/assets/styles/surfaces.css +0 -24
  69. package/dist/assets/styles/theme.css +0 -208
  70. package/dist/assets/styles/typography.css +0 -150
  71. package/dist/components/aria/aria.d.ts +0 -19
  72. package/dist/components/aria/aria.js +0 -36
  73. package/dist/components/aria/aria.js.map +0 -1
  74. package/dist/components/aria/index.d.ts +0 -1
  75. package/dist/components/button/button.css.d.ts +0 -33
  76. package/dist/components/button/button.d.ts +0 -39
  77. package/dist/components/button/button.js +0 -71
  78. package/dist/components/button/button.js.map +0 -1
  79. package/dist/components/button/button.vanilla.js +0 -8
  80. package/dist/components/button/button.vanilla.js.map +0 -1
  81. package/dist/components/button/index.d.ts +0 -3
  82. package/dist/components/button/types.d.ts +0 -28
  83. package/dist/components/checkbox/checkbox.css.d.ts +0 -35
  84. package/dist/components/checkbox/checkbox.d.ts +0 -21
  85. package/dist/components/checkbox/checkbox.js +0 -68
  86. package/dist/components/checkbox/checkbox.js.map +0 -1
  87. package/dist/components/checkbox/checkbox.vanilla.js +0 -9
  88. package/dist/components/checkbox/checkbox.vanilla.js.map +0 -1
  89. package/dist/components/checkbox/index.d.ts +0 -3
  90. package/dist/components/checkbox/types.d.ts +0 -38
  91. package/dist/components/chip/chip.css.d.ts +0 -31
  92. package/dist/components/chip/chip.d.ts +0 -30
  93. package/dist/components/chip/chip.js +0 -106
  94. package/dist/components/chip/chip.js.map +0 -1
  95. package/dist/components/chip/chip.vanilla.js +0 -8
  96. package/dist/components/chip/chip.vanilla.js.map +0 -1
  97. package/dist/components/chip/index.d.ts +0 -3
  98. package/dist/components/chip/types.d.ts +0 -31
  99. package/dist/components/collection/collection.d.ts +0 -13
  100. package/dist/components/collection/collection.js +0 -15
  101. package/dist/components/collection/collection.js.map +0 -1
  102. package/dist/components/collection/index.d.ts +0 -1
  103. package/dist/components/combo-box/combo-box.css.d.ts +0 -22
  104. package/dist/components/combo-box/combo-box.d.ts +0 -8
  105. package/dist/components/combo-box/combo-box.js +0 -87
  106. package/dist/components/combo-box/combo-box.js.map +0 -1
  107. package/dist/components/combo-box/combo-box.vanilla.js +0 -8
  108. package/dist/components/combo-box/combo-box.vanilla.js.map +0 -1
  109. package/dist/components/combo-box/index.d.ts +0 -3
  110. package/dist/components/combo-box/types.d.ts +0 -32
  111. package/dist/components/dialog/dialog.css.d.ts +0 -34
  112. package/dist/components/dialog/dialog.d.ts +0 -18
  113. package/dist/components/dialog/dialog.js +0 -146
  114. package/dist/components/dialog/dialog.js.map +0 -1
  115. package/dist/components/dialog/dialog.vanilla.js +0 -8
  116. package/dist/components/dialog/dialog.vanilla.js.map +0 -1
  117. package/dist/components/dialog/index.d.ts +0 -3
  118. package/dist/components/dialog/types.d.ts +0 -48
  119. package/dist/components/drawer/drawer.css.d.ts +0 -33
  120. package/dist/components/drawer/drawer.d.ts +0 -13
  121. package/dist/components/drawer/drawer.js +0 -199
  122. package/dist/components/drawer/drawer.js.map +0 -1
  123. package/dist/components/drawer/drawer.vanilla.js +0 -10
  124. package/dist/components/drawer/drawer.vanilla.js.map +0 -1
  125. package/dist/components/drawer/index.d.ts +0 -3
  126. package/dist/components/drawer/types.d.ts +0 -71
  127. package/dist/components/element/element.d.ts +0 -11
  128. package/dist/components/element/element.js +0 -21
  129. package/dist/components/element/element.js.map +0 -1
  130. package/dist/components/element/index.d.ts +0 -2
  131. package/dist/components/element/types.d.ts +0 -21
  132. package/dist/components/group/group.css.d.ts +0 -14
  133. package/dist/components/group/group.d.ts +0 -10
  134. package/dist/components/group/group.js +0 -44
  135. package/dist/components/group/group.js.map +0 -1
  136. package/dist/components/group/group.vanilla.js +0 -7
  137. package/dist/components/group/group.vanilla.js.map +0 -1
  138. package/dist/components/group/index.d.ts +0 -3
  139. package/dist/components/group/types.d.ts +0 -35
  140. package/dist/components/icon/icon.css.d.ts +0 -18
  141. package/dist/components/icon/icon.d.ts +0 -12
  142. package/dist/components/icon/icon.js +0 -26
  143. package/dist/components/icon/icon.js.map +0 -1
  144. package/dist/components/icon/icon.vanilla.js +0 -8
  145. package/dist/components/icon/icon.vanilla.js.map +0 -1
  146. package/dist/components/icon/index.d.ts +0 -3
  147. package/dist/components/icon/types.d.ts +0 -13
  148. package/dist/components/index.d.ts +0 -26
  149. package/dist/components/input/index.d.ts +0 -3
  150. package/dist/components/input/input.css.d.ts +0 -29
  151. package/dist/components/input/input.d.ts +0 -8
  152. package/dist/components/input/input.js +0 -93
  153. package/dist/components/input/input.js.map +0 -1
  154. package/dist/components/input/input.vanilla.js +0 -8
  155. package/dist/components/input/input.vanilla.js.map +0 -1
  156. package/dist/components/input/types.d.ts +0 -44
  157. package/dist/components/menu/index.d.ts +0 -3
  158. package/dist/components/menu/menu.css.d.ts +0 -75
  159. package/dist/components/menu/menu.d.ts +0 -24
  160. package/dist/components/menu/menu.js +0 -155
  161. package/dist/components/menu/menu.js.map +0 -1
  162. package/dist/components/menu/menu.vanilla.js +0 -8
  163. package/dist/components/menu/menu.vanilla.js.map +0 -1
  164. package/dist/components/menu/types.d.ts +0 -48
  165. package/dist/components/merge-provider/index.d.ts +0 -2
  166. package/dist/components/merge-provider/merge-provider.d.ts +0 -14
  167. package/dist/components/merge-provider/merge-provider.js +0 -40
  168. package/dist/components/merge-provider/merge-provider.js.map +0 -1
  169. package/dist/components/merge-provider/types.d.ts +0 -5
  170. package/dist/components/options/index.d.ts +0 -3
  171. package/dist/components/options/options.css.d.ts +0 -79
  172. package/dist/components/options/options.d.ts +0 -20
  173. package/dist/components/options/options.js +0 -152
  174. package/dist/components/options/options.js.map +0 -1
  175. package/dist/components/options/options.vanilla.js +0 -10
  176. package/dist/components/options/options.vanilla.js.map +0 -1
  177. package/dist/components/options/types.d.ts +0 -49
  178. package/dist/components/picker/index.d.ts +0 -3
  179. package/dist/components/picker/picker.css.d.ts +0 -32
  180. package/dist/components/picker/picker.d.ts +0 -18
  181. package/dist/components/picker/picker.js +0 -46
  182. package/dist/components/picker/picker.js.map +0 -1
  183. package/dist/components/picker/picker.stories.css.d.ts +0 -3
  184. package/dist/components/picker/picker.vanilla.js +0 -9
  185. package/dist/components/picker/picker.vanilla.js.map +0 -1
  186. package/dist/components/picker/types.d.ts +0 -28
  187. package/dist/components/popover/index.d.ts +0 -3
  188. package/dist/components/popover/popover.css.d.ts +0 -31
  189. package/dist/components/popover/popover.d.ts +0 -8
  190. package/dist/components/popover/popover.js +0 -110
  191. package/dist/components/popover/popover.js.map +0 -1
  192. package/dist/components/popover/popover.vanilla.js +0 -7
  193. package/dist/components/popover/popover.vanilla.js.map +0 -1
  194. package/dist/components/popover/types.d.ts +0 -32
  195. package/dist/components/query-builder/action-element.d.ts +0 -2
  196. package/dist/components/query-builder/action-element.js +0 -12
  197. package/dist/components/query-builder/action-element.js.map +0 -1
  198. package/dist/components/query-builder/constants.d.ts +0 -4
  199. package/dist/components/query-builder/constants.js +0 -20
  200. package/dist/components/query-builder/constants.js.map +0 -1
  201. package/dist/components/query-builder/dataset-sample.d.ts +0 -91
  202. package/dist/components/query-builder/group.d.ts +0 -5
  203. package/dist/components/query-builder/group.js +0 -87
  204. package/dist/components/query-builder/group.js.map +0 -1
  205. package/dist/components/query-builder/index.d.ts +0 -5
  206. package/dist/components/query-builder/query-builder.css.d.ts +0 -91
  207. package/dist/components/query-builder/query-builder.d.ts +0 -2
  208. package/dist/components/query-builder/query-builder.js +0 -129
  209. package/dist/components/query-builder/query-builder.js.map +0 -1
  210. package/dist/components/query-builder/query-builder.vanilla.js +0 -10
  211. package/dist/components/query-builder/query-builder.vanilla.js.map +0 -1
  212. package/dist/components/query-builder/rule.d.ts +0 -3
  213. package/dist/components/query-builder/rule.js +0 -112
  214. package/dist/components/query-builder/rule.js.map +0 -1
  215. package/dist/components/query-builder/types.d.ts +0 -128
  216. package/dist/components/query-builder/utils.d.ts +0 -29
  217. package/dist/components/query-builder/utils.js +0 -22
  218. package/dist/components/query-builder/utils.js.map +0 -1
  219. package/dist/components/query-builder/value-editor.d.ts +0 -4
  220. package/dist/components/query-builder/value-editor.js +0 -74
  221. package/dist/components/query-builder/value-editor.js.map +0 -1
  222. package/dist/components/query-builder/value-selector.d.ts +0 -2
  223. package/dist/components/query-builder/value-selector.js +0 -28
  224. package/dist/components/query-builder/value-selector.js.map +0 -1
  225. package/dist/components/radio/index.d.ts +0 -3
  226. package/dist/components/radio/radio.css.d.ts +0 -34
  227. package/dist/components/radio/radio.d.ts +0 -16
  228. package/dist/components/radio/radio.js +0 -63
  229. package/dist/components/radio/radio.js.map +0 -1
  230. package/dist/components/radio/radio.vanilla.js +0 -8
  231. package/dist/components/radio/radio.vanilla.js.map +0 -1
  232. package/dist/components/radio/types.d.ts +0 -29
  233. package/dist/components/search-field/index.d.ts +0 -3
  234. package/dist/components/search-field/search-field.css.d.ts +0 -16
  235. package/dist/components/search-field/search-field.d.ts +0 -9
  236. package/dist/components/search-field/search-field.js +0 -60
  237. package/dist/components/search-field/search-field.js.map +0 -1
  238. package/dist/components/search-field/search-field.vanilla.js +0 -7
  239. package/dist/components/search-field/search-field.vanilla.js.map +0 -1
  240. package/dist/components/search-field/types.d.ts +0 -29
  241. package/dist/components/select/index.d.ts +0 -3
  242. package/dist/components/select/select.css.d.ts +0 -25
  243. package/dist/components/select/select.d.ts +0 -8
  244. package/dist/components/select/select.js +0 -80
  245. package/dist/components/select/select.js.map +0 -1
  246. package/dist/components/select/select.vanilla.js +0 -8
  247. package/dist/components/select/select.vanilla.js.map +0 -1
  248. package/dist/components/select/types.d.ts +0 -30
  249. package/dist/components/switch/index.d.ts +0 -3
  250. package/dist/components/switch/switch.css.d.ts +0 -25
  251. package/dist/components/switch/switch.d.ts +0 -4
  252. package/dist/components/switch/switch.js +0 -34
  253. package/dist/components/switch/switch.js.map +0 -1
  254. package/dist/components/switch/switch.vanilla.js +0 -8
  255. package/dist/components/switch/switch.vanilla.js.map +0 -1
  256. package/dist/components/switch/types.d.ts +0 -17
  257. package/dist/components/tabs/index.d.ts +0 -3
  258. package/dist/components/tabs/tabs.css.d.ts +0 -49
  259. package/dist/components/tabs/tabs.d.ts +0 -68
  260. package/dist/components/tabs/tabs.js +0 -108
  261. package/dist/components/tabs/tabs.js.map +0 -1
  262. package/dist/components/tabs/tabs.vanilla.js +0 -11
  263. package/dist/components/tabs/tabs.vanilla.js.map +0 -1
  264. package/dist/components/tabs/types.d.ts +0 -82
  265. package/dist/components/textarea/index.d.ts +0 -3
  266. package/dist/components/textarea/textarea.css.d.ts +0 -31
  267. package/dist/components/textarea/textarea.d.ts +0 -14
  268. package/dist/components/textarea/textarea.js +0 -86
  269. package/dist/components/textarea/textarea.js.map +0 -1
  270. package/dist/components/textarea/textarea.vanilla.js +0 -8
  271. package/dist/components/textarea/textarea.vanilla.js.map +0 -1
  272. package/dist/components/textarea/types.d.ts +0 -39
  273. package/dist/components/tooltip/index.d.ts +0 -3
  274. package/dist/components/tooltip/tooltip.css.d.ts +0 -23
  275. package/dist/components/tooltip/tooltip.d.ts +0 -23
  276. package/dist/components/tooltip/tooltip.js +0 -69
  277. package/dist/components/tooltip/tooltip.js.map +0 -1
  278. package/dist/components/tooltip/tooltip.vanilla.js +0 -8
  279. package/dist/components/tooltip/tooltip.vanilla.js.map +0 -1
  280. package/dist/components/tooltip/types.d.ts +0 -39
  281. package/dist/components/tree/index.d.ts +0 -3
  282. package/dist/components/tree/tree.css.d.ts +0 -73
  283. package/dist/components/tree/tree.d.ts +0 -5
  284. package/dist/components/tree/tree.js +0 -337
  285. package/dist/components/tree/tree.js.map +0 -1
  286. package/dist/components/tree/tree.vanilla.js +0 -11
  287. package/dist/components/tree/tree.vanilla.js.map +0 -1
  288. package/dist/components/tree/types.d.ts +0 -114
  289. package/dist/components/tree/utils.d.ts +0 -8
  290. package/dist/components/tree/utils.js +0 -75
  291. package/dist/components/tree/utils.js.map +0 -1
  292. package/dist/hooks/index.d.ts +0 -8
  293. package/dist/hooks/use-collection-render/index.d.ts +0 -1
  294. package/dist/hooks/use-collection-render/use-collection-render.d.ts +0 -9
  295. package/dist/hooks/use-collection-render/use-collection-render.js +0 -20
  296. package/dist/hooks/use-collection-render/use-collection-render.js.map +0 -1
  297. package/dist/hooks/use-context-props/index.d.ts +0 -1
  298. package/dist/hooks/use-context-props/use-context-props.d.ts +0 -7
  299. package/dist/hooks/use-context-props/use-context-props.js +0 -15
  300. package/dist/hooks/use-context-props/use-context-props.js.map +0 -1
  301. package/dist/hooks/use-defaults/index.d.ts +0 -2
  302. package/dist/hooks/use-defaults/types.d.ts +0 -67
  303. package/dist/hooks/use-defaults/use-defaults.d.ts +0 -56
  304. package/dist/hooks/use-defaults/use-defaults.js +0 -21
  305. package/dist/hooks/use-defaults/use-defaults.js.map +0 -1
  306. package/dist/hooks/use-propagating-press/index.d.ts +0 -1
  307. package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +0 -9
  308. package/dist/hooks/use-propagating-press/use-propagating-press.js +0 -14
  309. package/dist/hooks/use-propagating-press/use-propagating-press.js.map +0 -1
  310. package/dist/hooks/use-slot/index.d.ts +0 -1
  311. package/dist/hooks/use-slot/use-slot.d.ts +0 -13
  312. package/dist/hooks/use-slot/use-slot.js +0 -18
  313. package/dist/hooks/use-slot/use-slot.js.map +0 -1
  314. package/dist/hooks/use-theme/index.d.ts +0 -2
  315. package/dist/hooks/use-theme/types.d.ts +0 -86
  316. package/dist/hooks/use-theme/use-theme.css.d.ts +0 -1
  317. package/dist/hooks/use-theme/use-theme.d.ts +0 -13
  318. package/dist/hooks/use-theme/use-theme.js +0 -64
  319. package/dist/hooks/use-theme/use-theme.js.map +0 -1
  320. package/dist/hooks/use-theme/use-theme.vanilla.js +0 -4
  321. package/dist/hooks/use-theme/use-theme.vanilla.js.map +0 -1
  322. package/dist/hooks/use-tree/index.d.ts +0 -1
  323. package/dist/hooks/use-tree/use-tree.d.ts +0 -2
  324. package/dist/hooks/use-tree/use-tree.js +0 -217
  325. package/dist/hooks/use-tree/use-tree.js.map +0 -1
  326. package/dist/hooks/use-tree/utils.d.ts +0 -6
  327. package/dist/hooks/use-tree/utils.js +0 -77
  328. package/dist/hooks/use-tree/utils.js.map +0 -1
  329. package/dist/hooks/use-update-effect/index.d.ts +0 -1
  330. package/dist/hooks/use-update-effect/use-update-effect.d.ts +0 -1
  331. package/dist/hooks/use-update-effect/use-update-effect.js +0 -20
  332. package/dist/hooks/use-update-effect/use-update-effect.js.map +0 -1
  333. package/dist/ladle/actions.d.ts +0 -1
  334. package/dist/ladle/index.d.ts +0 -1
  335. package/dist/styles/index.d.ts +0 -6
  336. package/dist/styles/layers.css.d.ts +0 -16
  337. package/dist/styles/layers.vanilla.js +0 -4
  338. package/dist/styles/layers.vanilla.js.map +0 -1
  339. package/dist/styles/reset.css.d.ts +0 -1
  340. package/dist/styles/space.css.d.ts +0 -1
  341. package/dist/styles/surfaces.css.d.ts +0 -4
  342. package/dist/styles/surfaces.vanilla.js +0 -4
  343. package/dist/styles/surfaces.vanilla.js.map +0 -1
  344. package/dist/styles/theme.css.d.ts +0 -334
  345. package/dist/styles/theme.vanilla.js +0 -31
  346. package/dist/styles/theme.vanilla.js.map +0 -1
  347. package/dist/styles/typography.css.d.ts +0 -17
  348. package/dist/styles/typography.vanilla.js +0 -8
  349. package/dist/styles/typography.vanilla.js.map +0 -1
  350. package/dist/test/setup.d.ts +0 -1
  351. package/dist/types/deckgl.d.ts +0 -1
  352. package/dist/types/generic.d.ts +0 -3
  353. package/dist/types/index.d.ts +0 -6
  354. package/dist/types/props.d.ts +0 -4
  355. package/dist/types/react-aria.d.ts +0 -91
  356. package/dist/types/use-tree.d.ts +0 -52
  357. package/dist/types/vanilla-extract.d.ts +0 -15
  358. package/dist/utils/css.d.ts +0 -139
  359. package/dist/utils/css.js +0 -145
  360. package/dist/utils/css.js.map +0 -1
  361. package/dist/utils/events.d.ts +0 -10
  362. package/dist/utils/events.js +0 -5
  363. package/dist/utils/events.js.map +0 -1
  364. package/dist/utils/index.d.ts +0 -4
  365. package/dist/utils/props.d.ts +0 -29
  366. package/dist/utils/props.js +0 -108
  367. package/dist/utils/props.js.map +0 -1
  368. package/dist/utils/validators.d.ts +0 -49
  369. package/dist/utils/validators.js +0 -37
  370. package/dist/utils/validators.js.map +0 -1
@@ -1,139 +0,0 @@
1
- import type { GlobalStyleRule, StyleRule } from '@vanilla-extract/css';
2
- import type { Contract, CssVarFunction, MapLeafNodes, PartialMapLeafNodes, Primitive, RGBA } from '../types';
3
- /**
4
- * Parse out CSS var name from CSS var implementation
5
- *
6
- * @example
7
- * unwrapCssVar('var(--foo)')
8
- * // returns '--foo'
9
- *
10
- * @example
11
- * unwrapCssVar('var(--foo, blue)')
12
- * // returns '--foo'
13
- *
14
- * @example
15
- * unwrapCssVar('var(--foo, var(--bar))')
16
- * // returns '--foo'
17
- */
18
- export declare function unwrapCssVar(cssVar: string): string;
19
- type FulfilledContract<T> = MapLeafNodes<T, null | number | string | RGBA>;
20
- /**
21
- * Convert contract to nested object of identical shape with computed CSS values
22
- * Pixel values are converted to numbers
23
- * RGB(A) values are converted to DeckGL compatible tuples
24
- * All other values are left unconverted
25
- */
26
- export declare function computeContract<T extends Contract>(contract: T, css: CSSStyleDeclaration): FulfilledContract<T>;
27
- /**
28
- * Convert potentially nested contract and values pair into flattened CSS var record
29
- * The contract provides a lookup for CSS vars
30
- * The values are expected to partially match the contract shapeForm
31
- */
32
- export declare function reduceContract<T extends Contract, U>(contract: T, values: PartialMapLeafNodes<T, U>): Record<`var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`, U>;
33
- /**
34
- * Reduce contract and values into Vanilla Extract friendly CSS vars
35
- */
36
- export declare function assignPartialVars<T extends Contract>(contract: T, values: PartialMapLeafNodes<T, Primitive>): {
37
- [k: string]: string;
38
- };
39
- type CssVarValues = {
40
- [key: string]: CssVarValues | Primitive;
41
- };
42
- type CssVarValueOptions<T extends object> = {
43
- [P in keyof T]?: T[P] extends object ? CssVarValueOptions<T[P]> : T[P] | T[P][];
44
- };
45
- type Operators = 'and' | 'or';
46
- type ContainerQueryOptions = {
47
- container?: string;
48
- operator?: Operators;
49
- maxHeight?: string;
50
- minHeight?: string;
51
- maxWidth?: string;
52
- minWidth?: string;
53
- };
54
- type ContainerQueryValues<T extends CssVarValues> = CssVarValueOptions<T> & ContainerQueryOptions;
55
- type MultiContainerQuery<T extends CssVarValues> = {
56
- operator?: Operators;
57
- groups: ContainerQueryValues<T>[];
58
- };
59
- /**
60
- * Create simple or complex container queries with and/or operators.
61
- *
62
- * To provide type safety and ease of use, this function accepts a generic and a contract
63
- * The generic type defines the possible values for the parameters defined within the contract
64
- *
65
- * Ex: containerQuery<{ foo: boolean }>({ foo: 'var(--foo)' }, { foo: true })
66
- *
67
- * By providing the type constraint and contract, the query parameters will have intellisense
68
- * on which parameters exist and what their possible values can be
69
- *
70
- * @example
71
- * containerQuery(contract, { a: true })
72
- * // returns (a: true)
73
- *
74
- * @example
75
- * containerQuery(contract, { a: true, b: true })
76
- * // returns (a: true) and (b: true)
77
- *
78
- * @example
79
- * containerQuery(contract, { operator: 'or', a: true, b: true })
80
- * // returns (a: true) or (b: true)
81
- *
82
- * @example
83
- * containerQuery(contract, { groups: [{ a: true }, { b: true }] })
84
- * // returns (a: true) or (b: true)
85
- *
86
- * @example
87
- * containerQuery(contract, { a: ['foo', 'bar'] })
88
- * // returns (a: 'foo') or (a: 'bar')
89
- *
90
- * @example
91
- * containerQuery(contract, { a: ['foo', 'bar'], b: true })
92
- * // returns ((a: 'foo') or (a: 'bar')) and (b: true)
93
- *
94
- * @example
95
- * containerQuery(contract, { operator: 'or', a: ['foo', 'bar'], b: true })
96
- * // returns ((a: 'foo') or (a: 'bar')) or (b: true)
97
- *
98
- * @example
99
- * containerQuery(contract, { groups: [{ a: true, b: true }, { c: true, d: true }] })
100
- * // returns ((a: true) and (b: true)) or ((c: true) and (d: true))
101
- *
102
- * @example
103
- * containerQuery(contract, { operator: 'and', groups: [{ operator: 'or', a: true, b: true }, { c: true, d: true }] })
104
- * // returns ((a: true) or (b: true)) and ((c: true) and (d: true))
105
- *
106
- * @example
107
- * containerQuery(contract, { operator: 'and', groups: [{ operator: 'or', a: true, b: true }, { operator: 'or', c: true, d: true }] })
108
- * // returns ((a: true) or (b: true)) and ((c: true) or (d: true))
109
- */
110
- export declare function containerQuery<T extends CssVarValues = CssVarValues>(contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>, query: ContainerQueryValues<T> | MultiContainerQuery<T>): string;
111
- type ContainerStyle = Exclude<StyleRule['@container'], undefined>[string];
112
- type ContainerQuery<T extends CssVarValues> = {
113
- query: ContainerQueryValues<T> | MultiContainerQuery<T>;
114
- };
115
- type ContainerQueries<T extends CssVarValues> = ContainerStyle & ContainerQuery<T>;
116
- type GlobalContainerStyle = Exclude<GlobalStyleRule['@container'], undefined>[string];
117
- type GlobalContainerQueries<T extends CssVarValues> = GlobalContainerStyle & ContainerQuery<T>;
118
- /**
119
- * Bulk container query creation based on the same contract
120
- */
121
- export declare function containerQueries<T extends CssVarValues = CssVarValues>(contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>, ...styles: ContainerQueries<T>[]): Record<string, ContainerStyle>;
122
- export declare function containerQueries<T extends CssVarValues = CssVarValues>(contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>, ...styles: GlobalContainerQueries<T>[]): Record<string, GlobalContainerStyle>;
123
- type VarsOnlyContainerQuery<T extends CssVarValues> = Required<Pick<ContainerQueries<T>, 'query' | 'vars'>>;
124
- type QueryOptionalVarsOnlyContainerQuery<T extends CssVarValues> = Partial<Pick<VarsOnlyContainerQuery<T>, 'query'>> & Pick<VarsOnlyContainerQuery<T>, 'vars'>;
125
- /**
126
- * Helper for establishing global theme variables with the restriction that
127
- * only variables may be set (and are required). All other styles must be
128
- * established using alternative utils
129
- *
130
- * The first style rule has an optional query. If the query is missing, the vars
131
- * are set outside of a container query
132
- */
133
- export declare function applyThemeVars<T extends CssVarValues = CssVarValues>(contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>, styles: [QueryOptionalVarsOnlyContainerQuery<T>, ...VarsOnlyContainerQuery<T>[]] | VarsOnlyContainerQuery<T>[], layer?: string): StyleRule;
134
- /**
135
- * Runtime creation of inline style CSS vars that enable CSS container queries
136
- */
137
- export declare function inlineVars(vars: Record<string, Primitive>): Record<string, string>;
138
- export declare function inlineVars<T extends Contract>(contract: T, values: PartialMapLeafNodes<T, Primitive>): Record<string, string>;
139
- export {};
package/dist/utils/css.js DELETED
@@ -1,145 +0,0 @@
1
- import { assignInlineVars } from '@vanilla-extract/dynamic';
2
- import { kebabCase } from 'lodash';
3
- import { layers } from '../styles/layers.vanilla.js';
4
- import { pixelValueAsStringValidator, rgbaAsStringValidator } from './validators.js';
5
-
6
- function unwrapCssVar(cssVar) {
7
- return cssVar.replace(/^var\((--[\w-]+)[^\w-]+.*/i, "$1");
8
- }
9
- function computeContract(contract, css) {
10
- return Object.entries(contract).reduce((acc, [key, cssVarOrContract]) => {
11
- if (cssVarOrContract == null) {
12
- acc[key] = null;
13
- return acc;
14
- }
15
- if (typeof cssVarOrContract === "object") {
16
- acc[key] = computeContract(cssVarOrContract, css);
17
- return acc;
18
- }
19
- const cssVar = unwrapCssVar(cssVarOrContract);
20
- const value = css.getPropertyValue(cssVar);
21
- const pixel = pixelValueAsStringValidator.safeParse(value);
22
- if (pixel.success) {
23
- acc[key] = pixel.data;
24
- return acc;
25
- }
26
- const rgba = rgbaAsStringValidator.safeParse(value);
27
- if (rgba.success) {
28
- acc[key] = rgba.data;
29
- return acc;
30
- }
31
- acc[key] = value ?? null;
32
- return acc;
33
- }, {});
34
- }
35
- function reduceContract(contract, values) {
36
- const nodes = [
37
- { contract, values }
38
- ];
39
- const vars = {};
40
- for (let node of nodes) {
41
- Object.entries(node.values).forEach(([key, value]) => {
42
- const cssVarOrSubContract = node.contract[key];
43
- if (cssVarOrSubContract == null || value == null) {
44
- return;
45
- }
46
- if (typeof cssVarOrSubContract === "string" && (typeof value !== "object" || Array.isArray(value))) {
47
- vars[cssVarOrSubContract] = value;
48
- return;
49
- }
50
- if (typeof cssVarOrSubContract === "object" && typeof value === "object") {
51
- nodes.push({ contract: cssVarOrSubContract, values: value });
52
- }
53
- });
54
- }
55
- return vars;
56
- }
57
- function assignPartialVars(contract, values) {
58
- return Object.fromEntries(Object.entries(reduceContract(contract, values)).map(([key, value]) => [
59
- key,
60
- `${value}`
61
- ]));
62
- }
63
- function processConditions(contract, values) {
64
- return Object.entries(reduceContract({
65
- ...contract,
66
- maxHeight: "maxHeight",
67
- // NOTE: Passthrough these values not as CSS vars
68
- minHeight: "minHeight",
69
- maxWidth: "maxWidth",
70
- minWidth: "minWidth"
71
- }, values)).reduce((acc, [key, value]) => {
72
- if (key === "container" || key === "operator" || value == null) {
73
- return acc;
74
- }
75
- const isStyle = !/^(?:max|min)(?:Height|Width)$/.test(key);
76
- const prefix = isStyle ? "style" : "";
77
- const prop = isStyle ? unwrapCssVar(key) : kebabCase(key);
78
- if (Array.isArray(value)) {
79
- const group = value.reduce((ac, val) => {
80
- if (val != null) {
81
- ac.push(`${prefix}(${prop}: ${val})`);
82
- }
83
- return ac;
84
- }, []);
85
- acc.push(`(${group.join(" or ")})`);
86
- } else {
87
- acc.push(`${prefix}(${prop}: ${value})`);
88
- }
89
- return acc;
90
- }, []);
91
- }
92
- function isMultiQuery(value) {
93
- return value != null && typeof value === "object" && (!("operator" in value) || "operator" in value && (value.operator === "and" || value.operator === "or")) && "groups" in value && Array.isArray(value.groups) && value.groups.every((group) => group != null && typeof group === "object");
94
- }
95
- function containerQuery(contract, query) {
96
- const isMultiGroup = isMultiQuery(query);
97
- const groups = isMultiGroup ? query.groups : [query];
98
- const groupsOperator = ` ${(isMultiGroup ? query.operator : null) ?? "or"} `;
99
- return groups.map((group, index) => {
100
- const operator = ` ${group.operator ?? "and"} `;
101
- let container = group.container ?? "";
102
- if (index) {
103
- container = "";
104
- }
105
- const conditions = processConditions(contract, group);
106
- const isMultiCondition = groups.length > 1 && conditions.length > 1;
107
- return [
108
- container,
109
- container && " ",
110
- isMultiCondition ? "(" : "",
111
- conditions.join(operator),
112
- isMultiCondition ? ")" : ""
113
- ].join("");
114
- }).join(groupsOperator);
115
- }
116
- function containerQueries(contract, ...styles) {
117
- return Object.fromEntries(styles.map(({ query, ...style }) => [
118
- containerQuery(contract, query),
119
- style
120
- ]));
121
- }
122
- function applyThemeVars(contract, styles, layer = layers.variables.l1) {
123
- const [style, ...rest] = styles;
124
- const stylesWithQueries = !style.query ? rest : styles;
125
- return {
126
- "@layer": {
127
- [layer]: {
128
- ...!style.query ? { vars: style.vars } : {},
129
- ...stylesWithQueries.length ? {
130
- "@container": containerQueries(contract, ...stylesWithQueries)
131
- } : {}
132
- }
133
- }
134
- };
135
- }
136
- function inlineVars(varsOrContract, values) {
137
- return assignInlineVars(!values ? Object.entries(varsOrContract).reduce((acc, [key, value]) => {
138
- if (value != null) {
139
- acc[key] = `${value}`;
140
- }
141
- return acc;
142
- }, {}) : assignPartialVars(varsOrContract, values));
143
- }
144
-
145
- export { applyThemeVars, assignPartialVars, computeContract, containerQueries, containerQuery, inlineVars, reduceContract, unwrapCssVar };
@@ -1 +0,0 @@
1
- {"version":3,"file":"css.js","sources":["../../src/utils/css.ts"],"sourcesContent":["import { assignInlineVars } from '@vanilla-extract/dynamic';\nimport { kebabCase } from 'lodash';\nimport { layers } from '../styles';\nimport type { GlobalStyleRule, StyleRule } from '@vanilla-extract/css';\nimport type {\n Contract,\n CssVarFunction,\n MapLeafNodes,\n PartialMapLeafNodes,\n Primitive,\n RGBA,\n} from '../types';\nimport {\n pixelValueAsStringValidator,\n rgbaAsStringValidator,\n} from './validators';\n\n/**\n * Parse out CSS var name from CSS var implementation\n *\n * @example\n * unwrapCssVar('var(--foo)')\n * // returns '--foo'\n *\n * @example\n * unwrapCssVar('var(--foo, blue)')\n * // returns '--foo'\n *\n * @example\n * unwrapCssVar('var(--foo, var(--bar))')\n * // returns '--foo'\n */\nexport function unwrapCssVar(cssVar: string) {\n return cssVar.replace(/^var\\((--[\\w-]+)[^\\w-]+.*/i, '$1');\n}\n\ntype FulfilledContract<T> = MapLeafNodes<T, null | number | string | RGBA>;\n\n// TODO: remove if possible\n// NOTE: had to create a generic version not bound to type of T because of type issues around setting values on accumulator\ntype GenericFulfilledContract = {\n [key: string]: GenericFulfilledContract | null | number | string | RGBA;\n};\n\n/**\n * Convert contract to nested object of identical shape with computed CSS values\n * Pixel values are converted to numbers\n * RGB(A) values are converted to DeckGL compatible tuples\n * All other values are left unconverted\n */\nexport function computeContract<T extends Contract>(\n contract: T,\n css: CSSStyleDeclaration,\n): FulfilledContract<T> {\n return Object.entries(contract).reduce<GenericFulfilledContract>(\n (acc, [key, cssVarOrContract]) => {\n if (cssVarOrContract == null) {\n acc[key] = null;\n\n return acc;\n }\n\n if (typeof cssVarOrContract === 'object') {\n acc[key] = computeContract(cssVarOrContract, css);\n\n return acc;\n }\n\n const cssVar = unwrapCssVar(cssVarOrContract);\n const value = css.getPropertyValue(cssVar);\n const pixel = pixelValueAsStringValidator.safeParse(value);\n\n if (pixel.success) {\n acc[key] = pixel.data;\n\n return acc;\n }\n\n const rgba = rgbaAsStringValidator.safeParse(value);\n\n if (rgba.success) {\n acc[key] = rgba.data;\n\n return acc;\n }\n\n acc[key] = value ?? null;\n\n return acc;\n },\n {},\n ) as FulfilledContract<T>;\n}\n\n/**\n * Convert potentially nested contract and values pair into flattened CSS var record\n * The contract provides a lookup for CSS vars\n * The values are expected to partially match the contract shapeForm\n */\nexport function reduceContract<T extends Contract, U>(\n contract: T,\n values: PartialMapLeafNodes<T, U>,\n) {\n const nodes: { contract: Contract; values: PartialMapLeafNodes<T, U> }[] = [\n { contract, values },\n ];\n\n const vars: Record<CssVarFunction, U> = {};\n\n for (let node of nodes) {\n Object.entries(node.values).forEach(([key, value]: [string, U]) => {\n const cssVarOrSubContract = node.contract[key];\n\n if (cssVarOrSubContract == null || value == null) {\n return;\n }\n\n if (\n typeof cssVarOrSubContract === 'string' &&\n (typeof value !== 'object' || Array.isArray(value))\n ) {\n vars[cssVarOrSubContract] = value;\n\n return;\n }\n\n if (\n typeof cssVarOrSubContract === 'object' &&\n typeof value === 'object'\n ) {\n nodes.push({ contract: cssVarOrSubContract, values: value });\n }\n });\n }\n\n return vars;\n}\n\n/**\n * Reduce contract and values into Vanilla Extract friendly CSS vars\n */\nexport function assignPartialVars<T extends Contract>(\n contract: T,\n values: PartialMapLeafNodes<T, Primitive>,\n) {\n return Object.fromEntries(\n Object.entries(reduceContract(contract, values)).map(([key, value]) => [\n key,\n `${value}`,\n ]),\n );\n}\n\ntype CssVarValues = {\n [key: string]: CssVarValues | Primitive;\n};\n\ntype CssVarValueOptions<T extends object> = {\n [P in keyof T]?: T[P] extends object\n ? CssVarValueOptions<T[P]>\n : T[P] | T[P][];\n};\n\ntype Operators = 'and' | 'or';\n\ntype ContainerQueryOptions = {\n container?: string;\n operator?: Operators;\n maxHeight?: string;\n minHeight?: string;\n maxWidth?: string;\n minWidth?: string;\n};\n\ntype ContainerQueryValues<T extends CssVarValues> = CssVarValueOptions<T> &\n ContainerQueryOptions;\n\ntype MultiContainerQuery<T extends CssVarValues> = {\n operator?: Operators;\n groups: ContainerQueryValues<T>[];\n};\n\n/**\n * Handle creation of query groups based on options and values\n * Internal to containerQueries\n */\nfunction processConditions<T extends CssVarValues>(\n contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n values: ContainerQueryValues<T>,\n) {\n return Object.entries(\n reduceContract(\n {\n ...contract,\n maxHeight: 'maxHeight', // NOTE: Passthrough these values not as CSS vars\n minHeight: 'minHeight',\n maxWidth: 'maxWidth',\n minWidth: 'minWidth',\n },\n values as PartialMapLeafNodes<\n MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n ContainerQueryValues<T>[string]\n >,\n ),\n ).reduce<string[]>((acc, [key, value]) => {\n if (key === 'container' || key === 'operator' || value == null) {\n return acc;\n }\n\n const isStyle = !/^(?:max|min)(?:Height|Width)$/.test(key);\n const prefix = isStyle ? 'style' : '';\n const prop = isStyle ? unwrapCssVar(key) : kebabCase(key);\n\n if (Array.isArray(value)) {\n const group = value.reduce<string[]>((ac, val) => {\n if (val != null) {\n ac.push(`${prefix}(${prop}: ${val})`);\n }\n\n return ac;\n }, []);\n\n acc.push(`(${group.join(' or ')})`);\n } else {\n acc.push(`${prefix}(${prop}: ${value})`);\n }\n\n return acc;\n }, []);\n}\n\nfunction isMultiQuery<T extends CssVarValues>(\n value: unknown,\n): value is MultiContainerQuery<T> {\n return (\n value != null &&\n typeof value === 'object' &&\n (!('operator' in value) ||\n ('operator' in value &&\n (value.operator === 'and' || value.operator === 'or'))) &&\n 'groups' in value &&\n Array.isArray(value.groups) &&\n value.groups.every((group) => group != null && typeof group === 'object')\n );\n}\n\n/**\n * Create simple or complex container queries with and/or operators.\n *\n * To provide type safety and ease of use, this function accepts a generic and a contract\n * The generic type defines the possible values for the parameters defined within the contract\n *\n * Ex: containerQuery<{ foo: boolean }>({ foo: 'var(--foo)' }, { foo: true })\n *\n * By providing the type constraint and contract, the query parameters will have intellisense\n * on which parameters exist and what their possible values can be\n *\n * @example\n * containerQuery(contract, { a: true })\n * // returns (a: true)\n *\n * @example\n * containerQuery(contract, { a: true, b: true })\n * // returns (a: true) and (b: true)\n *\n * @example\n * containerQuery(contract, { operator: 'or', a: true, b: true })\n * // returns (a: true) or (b: true)\n *\n * @example\n * containerQuery(contract, { groups: [{ a: true }, { b: true }] })\n * // returns (a: true) or (b: true)\n *\n * @example\n * containerQuery(contract, { a: ['foo', 'bar'] })\n * // returns (a: 'foo') or (a: 'bar')\n *\n * @example\n * containerQuery(contract, { a: ['foo', 'bar'], b: true })\n * // returns ((a: 'foo') or (a: 'bar')) and (b: true)\n *\n * @example\n * containerQuery(contract, { operator: 'or', a: ['foo', 'bar'], b: true })\n * // returns ((a: 'foo') or (a: 'bar')) or (b: true)\n *\n * @example\n * containerQuery(contract, { groups: [{ a: true, b: true }, { c: true, d: true }] })\n * // returns ((a: true) and (b: true)) or ((c: true) and (d: true))\n *\n * @example\n * containerQuery(contract, { operator: 'and', groups: [{ operator: 'or', a: true, b: true }, { c: true, d: true }] })\n * // returns ((a: true) or (b: true)) and ((c: true) and (d: true))\n *\n * @example\n * containerQuery(contract, { operator: 'and', groups: [{ operator: 'or', a: true, b: true }, { operator: 'or', c: true, d: true }] })\n * // returns ((a: true) or (b: true)) and ((c: true) or (d: true))\n */\nexport function containerQuery<T extends CssVarValues = CssVarValues>(\n contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n query: ContainerQueryValues<T> | MultiContainerQuery<T>,\n) {\n const isMultiGroup = isMultiQuery<T>(query);\n const groups = isMultiGroup ? query.groups : [query];\n const groupsOperator = ` ${(isMultiGroup ? query.operator : null) ?? 'or'} `;\n\n return groups\n .map((group, index) => {\n const operator = ` ${group.operator ?? 'and'} `;\n\n let container = group.container ?? '';\n\n if (index) {\n // Multiple container specifiers is not yet supported: https://github.com/w3c/csswg-drafts/issues/6876\n container = '';\n }\n\n const conditions = processConditions(contract, group);\n const isMultiCondition = groups.length > 1 && conditions.length > 1;\n\n return [\n container,\n container && ' ',\n isMultiCondition ? '(' : '',\n conditions.join(operator),\n isMultiCondition ? ')' : '',\n ].join('');\n })\n .join(groupsOperator);\n}\n\ntype ContainerStyle = Exclude<StyleRule['@container'], undefined>[string];\n\ntype ContainerQuery<T extends CssVarValues> = {\n query: ContainerQueryValues<T> | MultiContainerQuery<T>;\n};\n\ntype ContainerQueries<T extends CssVarValues> = ContainerStyle &\n ContainerQuery<T>;\n\ntype GlobalContainerStyle = Exclude<\n GlobalStyleRule['@container'],\n undefined\n>[string];\n\ntype GlobalContainerQueries<T extends CssVarValues> = GlobalContainerStyle &\n ContainerQuery<T>;\n\n/**\n * Bulk container query creation based on the same contract\n */\nexport function containerQueries<T extends CssVarValues = CssVarValues>(\n contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n ...styles: ContainerQueries<T>[]\n): Record<string, ContainerStyle>;\n\nexport function containerQueries<T extends CssVarValues = CssVarValues>(\n contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n ...styles: GlobalContainerQueries<T>[]\n): Record<string, GlobalContainerStyle>;\n\nexport function containerQueries<T extends CssVarValues = CssVarValues>(\n contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n ...styles: ContainerQueries<T>[] | GlobalContainerQueries<T>[]\n): Record<string, ContainerStyle | GlobalContainerStyle> {\n return Object.fromEntries(\n styles.map(({ query, ...style }) => [\n containerQuery<T>(contract, query),\n style,\n ]),\n );\n}\n\ntype VarsOnlyContainerQuery<T extends CssVarValues> = Required<\n Pick<ContainerQueries<T>, 'query' | 'vars'>\n>;\n\ntype QueryOptionalVarsOnlyContainerQuery<T extends CssVarValues> = Partial<\n Pick<VarsOnlyContainerQuery<T>, 'query'>\n> &\n Pick<VarsOnlyContainerQuery<T>, 'vars'>;\n\n/**\n * Helper for establishing global theme variables with the restriction that\n * only variables may be set (and are required). All other styles must be\n * established using alternative utils\n *\n * The first style rule has an optional query. If the query is missing, the vars\n * are set outside of a container query\n */\nexport function applyThemeVars<T extends CssVarValues = CssVarValues>(\n contract: MapLeafNodes<Omit<T, keyof ContainerQueryOptions>, CssVarFunction>,\n styles:\n | [QueryOptionalVarsOnlyContainerQuery<T>, ...VarsOnlyContainerQuery<T>[]]\n | VarsOnlyContainerQuery<T>[],\n layer = layers.variables.l1,\n): StyleRule {\n const [style, ...rest] = styles;\n\n const stylesWithQueries = (\n !style.query ? rest : styles\n ) as VarsOnlyContainerQuery<T>[];\n\n return {\n '@layer': {\n [layer]: {\n ...(!style.query ? { vars: style.vars } : {}),\n ...(stylesWithQueries.length\n ? {\n '@container': containerQueries<T>(contract, ...stylesWithQueries),\n }\n : {}),\n },\n },\n };\n}\n\n/**\n * Runtime creation of inline style CSS vars that enable CSS container queries\n */\nexport function inlineVars(\n vars: Record<string, Primitive>,\n): Record<string, string>;\n\nexport function inlineVars<T extends Contract>(\n contract: T,\n values: PartialMapLeafNodes<T, Primitive>,\n): Record<string, string>;\n\nexport function inlineVars<T extends Contract>(\n varsOrContract: Record<string, Primitive> | T,\n values?: PartialMapLeafNodes<T, Primitive>,\n): Record<string, string> {\n return assignInlineVars(\n !values\n ? Object.entries(varsOrContract).reduce<Record<string, string>>(\n (acc, [key, value]) => {\n if (value != null) {\n acc[key] = `${value}`;\n }\n\n return acc;\n },\n {},\n )\n : assignPartialVars(varsOrContract as T, values),\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- type ContinuableEvent = {
2
- continuePropagation: () => void;
3
- };
4
- /**
5
- * The default behavior of events within React Aria is to stop progagation
6
- *
7
- * To reenable propagation, continuePropagation must be called
8
- */
9
- export declare function continuePropagation(event: ContinuableEvent): void;
10
- export {};
@@ -1,5 +0,0 @@
1
- function continuePropagation(event) {
2
- event.continuePropagation();
3
- }
4
-
5
- export { continuePropagation };
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sources":["../../src/utils/events.ts"],"sourcesContent":["// Support React Aria's BaseEvent & PressEvent (and any others the might share the same interface)\ntype ContinuableEvent = {\n continuePropagation: () => void;\n};\n\n/**\n * The default behavior of events within React Aria is to stop progagation\n *\n * To reenable propagation, continuePropagation must be called\n */\nexport function continuePropagation(event: ContinuableEvent) {\n event.continuePropagation();\n}\n"],"names":[],"mappings":";AAUO,SAAS,oBAAoB,KAAyB,EAAA;AAC3D,EAAA,KAAA,CAAM,mBAAoB,EAAA,CAAA;AAC5B;;;;"}
@@ -1,4 +0,0 @@
1
- export { applyThemeVars, assignPartialVars, computeContract, containerQuery, containerQueries, inlineVars, unwrapCssVar, } from './css';
2
- export { continuePropagation } from './events';
3
- export { callRenderProps, mergeClassNames, mergeProps, wrapRenderProps, } from './props';
4
- export { alphaChannelAsNumberValidator, alphaChannelAsStringValidator, colorChannelAsNumberValidator, colorChannelAsStringValidator, pixelValueAsNumberValidator, pixelValueAsStringValidator, rgbaAsStringValidator, rgbaAsTupleValidator, } from './validators';
@@ -1,29 +0,0 @@
1
- import type { ClassNames, AsType } from '../types';
2
- type Props<T extends object> = AsType<T> | null | undefined;
3
- /**
4
- * Deep merges classNames objects by concatenating class values
5
- *
6
- * @example
7
- * mergeClassNames({ foo: 'foo' }, { foo: 'FOO', bar: 'bar' })
8
- * // returns { foo: 'foo FOO', bar: 'bar' }
9
- */
10
- export declare function mergeClassNames<T extends ClassNames>(...classNamesToMerge: (T | null | undefined)[]): T | undefined;
11
- /**
12
- * Extends the base margeProps functionality to also merge styles and handle class/style render props
13
- */
14
- export declare function mergeProps<T extends object>(...propsToMerge: Props<T>[]): T;
15
- /**
16
- * A helper for not having to reimplement the type check for a renderProp value being a function or not everywhere
17
- */
18
- export declare function callRenderProps<T extends object, R>(value: R | ((renderProps: T) => R), values: T): R;
19
- /**
20
- * A helper function to pair with React Aria's render props. Typically
21
- * implemented with children, className and styles
22
- *
23
- * Allows for the injection of additional renderProps that a component
24
- * from React Aria may not already provide
25
- *
26
- * If the value isn't a renderProp function, then it is passed through unchanged
27
- */
28
- export declare function wrapRenderProps<T extends object, U extends object, R>(value: R | ((renderProps: T & U) => R), inject?: U): R | ((renderProps: T) => R);
29
- export {};
@@ -1,108 +0,0 @@
1
- import { clsx } from 'clsx';
2
- import { mergeWith } from 'lodash';
3
- import { mergeProps as mergeProps$1 } from 'react-aria';
4
- import { composeRenderProps } from 'react-aria-components';
5
- import { z } from 'zod';
6
-
7
- function processClassNameRenderProps(value, renderProps, ...propsToMerge) {
8
- if (!propsToMerge.length) {
9
- return "";
10
- }
11
- const [props, ...rest] = propsToMerge;
12
- return clsx(value, composeRenderProps(props?.className ?? "", (prev) => processClassNameRenderProps(prev, renderProps, ...rest))(renderProps));
13
- }
14
- function mergeRenderClassName(...propsToMerge) {
15
- return composeRenderProps((renderProps) => renderProps.defaultClassName ?? "", (prev, renderProps) => processClassNameRenderProps(prev, renderProps, ...propsToMerge));
16
- }
17
- function mergeStaticClassName(...propsToMerge) {
18
- return clsx(propsToMerge.reduce((acc, props) => {
19
- if (typeof props?.className !== "string") {
20
- return acc;
21
- }
22
- return [...acc, props.className];
23
- }, []));
24
- }
25
- function mergeClassNameProps(...propsToMerge) {
26
- const anyFunctions = propsToMerge.some((props) => typeof props?.className === "function");
27
- const anyPrimitives = propsToMerge.some((props) => typeof props?.className === "string");
28
- if (!(anyFunctions || anyPrimitives)) {
29
- return void 0;
30
- }
31
- return anyFunctions ? mergeRenderClassName(...propsToMerge) : mergeStaticClassName(...propsToMerge);
32
- }
33
- const classNamesValidator = z.record(z.string(), z.union([z.string(), z.lazy(() => classNamesValidator)]));
34
- const propsValidator = z.object({
35
- classNames: classNamesValidator
36
- });
37
- function mergeClassNamesProps(...propsToMerge) {
38
- return propsToMerge.reduce((acc, props) => {
39
- const result = propsValidator.safeParse(props);
40
- if (result.success) {
41
- return acc ? mergeWith(acc, result.data.classNames, (accValue, srcValue) => (!accValue || typeof accValue === "string") && (!srcValue || typeof srcValue === "string") ? clsx(accValue, srcValue) : void 0) : result.data.classNames;
42
- }
43
- return acc;
44
- }, void 0);
45
- }
46
- function mergeClassNames(...classNamesToMerge) {
47
- return mergeClassNamesProps(...classNamesToMerge.map((classNames) => ({ classNames })));
48
- }
49
- function processStyleRenderProps(value, renderProps, ...propsToMerge) {
50
- if (!propsToMerge.length) {
51
- return {};
52
- }
53
- const [props, ...rest] = propsToMerge;
54
- return {
55
- ...value,
56
- ...composeRenderProps(props?.style ?? {}, (prev) => processStyleRenderProps(prev, renderProps, ...rest))(renderProps)
57
- };
58
- }
59
- function mergeRenderStyle(...propsToMerge) {
60
- return composeRenderProps((renderProps) => renderProps.defaultStyle ?? {}, (prev, renderProps) => processStyleRenderProps(prev, renderProps, ...propsToMerge));
61
- }
62
- function mergeStaticStyle(...propsToMerge) {
63
- return propsToMerge.reduce((acc, props) => {
64
- if (!props?.style) {
65
- return acc;
66
- }
67
- return {
68
- ...acc,
69
- ...props.style
70
- };
71
- }, {});
72
- }
73
- function mergeStyleProps(...propsToMerge) {
74
- const anyFunctions = propsToMerge.some((props) => typeof props?.style === "function");
75
- const anyObjects = propsToMerge.some((props) => typeof props?.style === "object" && props.style != null);
76
- if (!(anyFunctions || anyObjects)) {
77
- return void 0;
78
- }
79
- return anyFunctions ? mergeRenderStyle(...propsToMerge) : mergeStaticStyle(...propsToMerge);
80
- }
81
- function mergeProps(...propsToMerge) {
82
- const className = mergeClassNameProps(...propsToMerge);
83
- const classNames = mergeClassNamesProps(...propsToMerge);
84
- const style = mergeStyleProps(...propsToMerge);
85
- return {
86
- ...mergeProps$1(...propsToMerge),
87
- ...className ? { className } : {},
88
- ...classNames ? { classNames } : {},
89
- ...style ? { style } : {}
90
- };
91
- }
92
- function callRenderProps(value, values) {
93
- if (typeof value === "function") {
94
- return value(values);
95
- }
96
- return value;
97
- }
98
- function wrapRenderProps(value, inject) {
99
- if (typeof value === "function") {
100
- return (renderProps) => value({
101
- ...renderProps,
102
- ...inject
103
- });
104
- }
105
- return value;
106
- }
107
-
108
- export { callRenderProps, mergeClassNames, mergeProps, wrapRenderProps };
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.js","sources":["../../src/utils/props.ts"],"sourcesContent":["import { clsx } from 'clsx';\nimport { mergeWith } from 'lodash';\nimport type { CSSProperties } from 'react';\nimport { mergeProps as mergePropsWithoutStyles } from 'react-aria';\nimport { composeRenderProps } from 'react-aria-components';\nimport { z } from 'zod';\nimport type {\n ClassNameRenderProps,\n ClassNames,\n RenderProps,\n StylePropRenderProps,\n AsType,\n} from '../types';\n\ntype Props<T extends object> = AsType<T> | null | undefined;\n\n/**\n * Recursively process merging of all class name render props\n */\nfunction processClassNameRenderProps<T extends RenderProps<object>>(\n value: string,\n renderProps: ClassNameRenderProps<object>,\n ...propsToMerge: Props<T>[]\n): string {\n if (!propsToMerge.length) {\n return '';\n }\n\n const [props, ...rest] = propsToMerge;\n\n return clsx(\n value,\n composeRenderProps<string, ClassNameRenderProps<object>, string>(\n props?.className ?? '',\n (prev) => processClassNameRenderProps(prev, renderProps, ...rest),\n )(renderProps),\n );\n}\n\n/**\n * Compose class name render props to be processed and merged\n */\nfunction mergeRenderClassName<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return composeRenderProps<string, ClassNameRenderProps<object>, string>(\n (renderProps) => renderProps.defaultClassName ?? '',\n (prev, renderProps) =>\n processClassNameRenderProps(prev, renderProps, ...propsToMerge),\n );\n}\n\n/**\n * Merge static class names\n */\nfunction mergeStaticClassName<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return clsx(\n propsToMerge.reduce<string[]>((acc, props) => {\n if (typeof props?.className !== 'string') {\n return acc;\n }\n\n return [...acc, props.className];\n }, []),\n );\n}\n\n/**\n * Determine if a static or composed merge of class names is necesary based on the presence of functions\n */\nfunction mergeClassNameProps<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n const anyFunctions = propsToMerge.some(\n (props) => typeof props?.className === 'function',\n );\n\n const anyPrimitives = propsToMerge.some(\n (props) => typeof props?.className === 'string',\n );\n\n if (!(anyFunctions || anyPrimitives)) {\n return undefined;\n }\n\n return anyFunctions\n ? mergeRenderClassName(...propsToMerge)\n : mergeStaticClassName(...propsToMerge);\n}\n\nconst classNamesValidator: z.ZodType<ClassNames> = z.record(\n z.string(),\n z.union([z.string(), z.lazy(() => classNamesValidator)]),\n);\n\nconst propsValidator = z.object({\n classNames: classNamesValidator,\n});\n\n/**\n * Deep merges classNames objects within props\n */\nfunction mergeClassNamesProps<T extends object>(...propsToMerge: Props<T>[]) {\n return propsToMerge.reduce<ClassNames | undefined>((acc, props) => {\n const result = propsValidator.safeParse(props);\n\n if (result.success) {\n return acc\n ? mergeWith(acc, result.data.classNames, (accValue, srcValue) =>\n (!accValue || typeof accValue === 'string') &&\n (!srcValue || typeof srcValue === 'string')\n ? clsx(accValue, srcValue)\n : undefined,\n )\n : result.data.classNames;\n }\n\n return acc;\n }, undefined);\n}\n\n/**\n * Deep merges classNames objects by concatenating class values\n *\n * @example\n * mergeClassNames({ foo: 'foo' }, { foo: 'FOO', bar: 'bar' })\n * // returns { foo: 'foo FOO', bar: 'bar' }\n */\nexport function mergeClassNames<T extends ClassNames>(\n ...classNamesToMerge: (T | null | undefined)[]\n) {\n return mergeClassNamesProps(\n ...classNamesToMerge.map((classNames) => ({ classNames })),\n ) as T | undefined;\n}\n\n/**\n * Recursively process merging of all style render props\n */\nfunction processStyleRenderProps<T extends RenderProps<object>>(\n value: CSSProperties,\n renderProps: StylePropRenderProps<object>,\n ...propsToMerge: Props<T>[]\n): CSSProperties {\n if (!propsToMerge.length) {\n return {};\n }\n\n const [props, ...rest] = propsToMerge;\n\n return {\n ...value,\n ...composeRenderProps<\n CSSProperties,\n StylePropRenderProps<object>,\n CSSProperties\n >(props?.style ?? {}, (prev) =>\n processStyleRenderProps(prev, renderProps, ...rest),\n )(renderProps),\n };\n}\n\n/**\n * Compose style render props to be processed and merged\n */\nfunction mergeRenderStyle<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return composeRenderProps<\n CSSProperties,\n StylePropRenderProps<object>,\n CSSProperties\n >(\n (renderProps) => renderProps.defaultStyle ?? {},\n (prev, renderProps) =>\n processStyleRenderProps(prev, renderProps, ...propsToMerge),\n );\n}\n\n/**\n * Merge static styles\n */\nfunction mergeStaticStyle<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n return propsToMerge.reduce<CSSProperties>((acc, props) => {\n if (!props?.style) {\n return acc;\n }\n\n return {\n ...acc,\n ...props.style,\n };\n }, {});\n}\n\n/**\n * Determine if a static or composed merge of styles is necesary based on the presence of functions\n */\nfunction mergeStyleProps<T extends RenderProps<object>>(\n ...propsToMerge: Props<T>[]\n) {\n const anyFunctions = propsToMerge.some(\n (props) => typeof props?.style === 'function',\n );\n\n const anyObjects = propsToMerge.some(\n (props) => typeof props?.style === 'object' && props.style != null,\n );\n\n if (!(anyFunctions || anyObjects)) {\n return undefined;\n }\n\n return anyFunctions\n ? mergeRenderStyle(...propsToMerge)\n : mergeStaticStyle(...propsToMerge);\n}\n\n/**\n * Extends the base margeProps functionality to also merge styles and handle class/style render props\n */\nexport function mergeProps<T extends object>(...propsToMerge: Props<T>[]): T {\n const className = mergeClassNameProps(...propsToMerge);\n const classNames = mergeClassNamesProps(...propsToMerge);\n const style = mergeStyleProps(...propsToMerge);\n\n return {\n ...(mergePropsWithoutStyles(...propsToMerge) as T),\n ...(className ? { className } : {}),\n ...(classNames ? { classNames } : {}),\n ...(style ? { style } : {}),\n };\n}\n\n/**\n * A helper for not having to reimplement the type check for a renderProp value being a function or not everywhere\n */\nexport function callRenderProps<T extends object, R>(\n value: R | ((renderProps: T) => R),\n values: T,\n) {\n if (typeof value === 'function') {\n return (value as (renderProps: T) => R)(values);\n }\n\n return value;\n}\n\n/**\n * A helper function to pair with React Aria's render props. Typically\n * implemented with children, className and styles\n *\n * Allows for the injection of additional renderProps that a component\n * from React Aria may not already provide\n *\n * If the value isn't a renderProp function, then it is passed through unchanged\n */\nexport function wrapRenderProps<T extends object, U extends object, R>(\n value: R | ((renderProps: T & U) => R),\n inject?: U,\n) {\n if (typeof value === 'function') {\n return (renderProps: T) =>\n (value as (renderProps: T & U) => R)({\n ...renderProps,\n ...inject,\n } as T & U);\n }\n\n return value;\n}\n"],"names":["mergePropsWithoutStyles"],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- import { z } from 'zod';
2
- import type { RGBA } from '../types';
3
- /**
4
- * Test for any safe number that could represent a pixel value
5
- */
6
- export declare const pixelValueAsNumberValidator: z.ZodNumber;
7
- /**
8
- * Test for and capture numeric pixel values
9
- * Will allow decimals and negative numbers
10
- *
11
- * Examples:
12
- * 0 -> 0
13
- * 1px -> 1
14
- * 20.5px -> 20.5
15
- */
16
- export declare const pixelValueAsStringValidator: z.ZodPipeline<z.ZodPipeline<z.ZodUnion<[z.ZodLiteral<"0">, z.ZodEffects<z.ZodString, string, string>]>, z.ZodNumber>, z.ZodNumber>;
17
- /**
18
- * Test for an integer in the range of 0-255 as a representation of an RGB color channel value
19
- */
20
- export declare const colorChannelAsNumberValidator: z.ZodNumber;
21
- /**
22
- * Test for and convert CSS RGB color channel to numeric value (0-255)
23
- */
24
- export declare const colorChannelAsStringValidator: z.ZodPipeline<z.ZodPipeline<z.ZodString, z.ZodNumber>, z.ZodNumber>;
25
- /**
26
- * DeckGL treats alpha channel the same as color channels (0-255)
27
- */
28
- export declare const alphaChannelAsNumberValidator: z.ZodNumber;
29
- /**
30
- * Test for and convert CSS RGBA alpha channel to DeckGL numeric value
31
- */
32
- export declare const alphaChannelAsStringValidator: z.ZodEffects<z.ZodPipeline<z.ZodString, z.ZodNumber>, number, string>;
33
- /**
34
- * Test for and convert CSS RGB(A) values to numeric RGBA tuple
35
- * Will only allow for rgb with 3 valid numbers (0-255){3, intergers only}
36
- * Will only allow for rgba with 4 valid numbers (0-255){3, intergers only} + (0-1){1, decimals allowed}
37
- * Will allow for whitespace spread throughout
38
- *
39
- * Examples:
40
- * rgb( 0, 0, 0 ) -> [0, 0, 0, 255]
41
- * rgba(203,117,98,0.4) -> [203, 117, 98, 102]
42
- */
43
- export declare const rgbaAsStringValidator: z.ZodPipeline<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEffects<z.ZodString, string, string>]>, string[], string>, z.ZodTuple<[z.ZodPipeline<z.ZodPipeline<z.ZodString, z.ZodNumber>, z.ZodNumber>, z.ZodPipeline<z.ZodPipeline<z.ZodString, z.ZodNumber>, z.ZodNumber>, z.ZodPipeline<z.ZodPipeline<z.ZodString, z.ZodNumber>, z.ZodNumber>, z.ZodEffects<z.ZodPipeline<z.ZodString, z.ZodNumber>, number, string>], null>>;
44
- /**
45
- * Test for numeric RGB(A) tuple
46
- *
47
- * Will return RGB as RGBA with 100% alpha channel
48
- */
49
- export declare const rgbaAsTupleValidator: z.ZodUnion<[z.ZodEffects<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, RGBA, [number, number, number]>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
@@ -1,37 +0,0 @@
1
- import { clamp } from 'lodash';
2
- import { z } from 'zod';
3
-
4
- const pixelValueAsNumberValidator = z.number().safe();
5
- const pixelValueAsStringValidator = z.union([
6
- z.literal("0"),
7
- z.string().endsWith("px").transform((value) => value.replace(/px$/, ""))
8
- ]).pipe(z.coerce.number()).pipe(pixelValueAsNumberValidator);
9
- const colorChannelAsNumberValidator = z.number().safe().int().min(0).max(255);
10
- const colorChannelAsStringValidator = z.string().trim().pipe(z.coerce.number()).pipe(colorChannelAsNumberValidator);
11
- const alphaChannelAsNumberValidator = colorChannelAsNumberValidator;
12
- const alphaChannelAsStringValidator = z.string().trim().pipe(z.coerce.number().safe().min(0)).transform((value) => Math.round(clamp(value, 0, 1) * 255));
13
- const rgbaAsStringValidator = z.union([
14
- z.string().startsWith("rgb(").endsWith(")").transform((value) => value.replace(/\)$/, ",1")),
15
- // Add on 100% alpha channel
16
- z.string().startsWith("rgba(").endsWith(")").transform((value) => value.replace(/\)$/, ""))
17
- ]).transform((value) => value.replace(/^rgba?\(/, "").split(",")).pipe(z.tuple([
18
- colorChannelAsStringValidator,
19
- colorChannelAsStringValidator,
20
- colorChannelAsStringValidator,
21
- alphaChannelAsStringValidator
22
- ]));
23
- const rgbaAsTupleValidator = z.union([
24
- z.tuple([
25
- colorChannelAsNumberValidator,
26
- colorChannelAsNumberValidator,
27
- colorChannelAsNumberValidator
28
- ]).transform((rgb) => [...rgb, 255]),
29
- z.tuple([
30
- colorChannelAsNumberValidator,
31
- colorChannelAsNumberValidator,
32
- colorChannelAsNumberValidator,
33
- alphaChannelAsNumberValidator
34
- ])
35
- ]);
36
-
37
- export { alphaChannelAsNumberValidator, alphaChannelAsStringValidator, colorChannelAsNumberValidator, colorChannelAsStringValidator, pixelValueAsNumberValidator, pixelValueAsStringValidator, rgbaAsStringValidator, rgbaAsTupleValidator };
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sources":["../../src/utils/validators.ts"],"sourcesContent":["import { clamp } from 'lodash';\nimport { z } from 'zod';\nimport type { RGBA } from '../types';\n\n/**\n * Test for any safe number that could represent a pixel value\n */\nexport const pixelValueAsNumberValidator = z.number().safe();\n\n/**\n * Test for and capture numeric pixel values\n * Will allow decimals and negative numbers\n *\n * Examples:\n * 0 -> 0\n * 1px -> 1\n * 20.5px -> 20.5\n */\nexport const pixelValueAsStringValidator = z\n .union([\n z.literal('0'),\n z\n .string()\n .endsWith('px')\n .transform((value) => value.replace(/px$/, '')),\n ])\n .pipe(z.coerce.number())\n .pipe(pixelValueAsNumberValidator);\n\n/**\n * Test for an integer in the range of 0-255 as a representation of an RGB color channel value\n */\nexport const colorChannelAsNumberValidator = z\n .number()\n .safe()\n .int()\n .min(0)\n .max(255);\n\n/**\n * Test for and convert CSS RGB color channel to numeric value (0-255)\n */\nexport const colorChannelAsStringValidator = z\n .string()\n .trim()\n .pipe(z.coerce.number())\n .pipe(colorChannelAsNumberValidator);\n\n/**\n * DeckGL treats alpha channel the same as color channels (0-255)\n */\nexport const alphaChannelAsNumberValidator = colorChannelAsNumberValidator;\n\n/**\n * Test for and convert CSS RGBA alpha channel to DeckGL numeric value\n */\nexport const alphaChannelAsStringValidator = z\n .string()\n .trim()\n .pipe(z.coerce.number().safe().min(0)) // CSS allows for values greater than 1\n .transform((value) => Math.round(clamp(value, 0, 1) * 255));\n\n/**\n * Test for and convert CSS RGB(A) values to numeric RGBA tuple\n * Will only allow for rgb with 3 valid numbers (0-255){3, intergers only}\n * Will only allow for rgba with 4 valid numbers (0-255){3, intergers only} + (0-1){1, decimals allowed}\n * Will allow for whitespace spread throughout\n *\n * Examples:\n * rgb( 0, 0, 0 ) -> [0, 0, 0, 255]\n * rgba(203,117,98,0.4) -> [203, 117, 98, 102]\n */\nexport const rgbaAsStringValidator = z\n .union([\n z\n .string()\n .startsWith('rgb(')\n .endsWith(')')\n .transform((value) => value.replace(/\\)$/, ',1')), // Add on 100% alpha channel\n z\n .string()\n .startsWith('rgba(')\n .endsWith(')')\n .transform((value) => value.replace(/\\)$/, '')),\n ])\n .transform((value) => value.replace(/^rgba?\\(/, '').split(','))\n .pipe(\n z.tuple([\n colorChannelAsStringValidator,\n colorChannelAsStringValidator,\n colorChannelAsStringValidator,\n alphaChannelAsStringValidator,\n ]),\n );\n\n/**\n * Test for numeric RGB(A) tuple\n *\n * Will return RGB as RGBA with 100% alpha channel\n */\nexport const rgbaAsTupleValidator = z.union([\n z\n .tuple([\n colorChannelAsNumberValidator,\n colorChannelAsNumberValidator,\n colorChannelAsNumberValidator,\n ])\n .transform<RGBA>((rgb) => [...rgb, 255]),\n z.tuple([\n colorChannelAsNumberValidator,\n colorChannelAsNumberValidator,\n colorChannelAsNumberValidator,\n alphaChannelAsNumberValidator,\n ]),\n]);\n"],"names":[],"mappings":";;;;AAOO,MAAM,2BAA8B,GAAA,CAAA,CAAE,MAAO,EAAA,CAAE,IAAK,GAAA;AAW9C,MAAA,2BAAA,GAA8B,EACxC,KAAM,CAAA;AAAA,EACL,CAAA,CAAE,QAAQ,GAAG,CAAA;AAAA,EACb,CACG,CAAA,MAAA,EACA,CAAA,QAAA,CAAS,IAAI,CAAA,CACb,SAAU,CAAA,CAAC,KAAU,KAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAC,CAAA;AAClD,CAAC,CAAA,CACA,KAAK,CAAE,CAAA,MAAA,CAAO,QAAQ,CAAA,CACtB,KAAK,2BAA2B,EAAA;AAK5B,MAAM,6BAAgC,GAAA,CAAA,CAC1C,MAAO,EAAA,CACP,IAAK,EAAA,CACL,GAAI,EAAA,CACJ,GAAI,CAAA,CAAC,CACL,CAAA,GAAA,CAAI,GAAG,EAAA;AAKH,MAAM,6BAAgC,GAAA,CAAA,CAC1C,MAAO,EAAA,CACP,IAAK,EAAA,CACL,IAAK,CAAA,CAAA,CAAE,MAAO,CAAA,MAAA,EAAQ,CAAA,CACtB,KAAK,6BAA6B,EAAA;AAK9B,MAAM,6BAAgC,GAAA,8BAAA;AAKtC,MAAM,6BAAgC,GAAA,CAAA,CAC1C,MAAO,EAAA,CACP,IAAK,EAAA,CACL,IAAK,CAAA,CAAA,CAAE,MAAO,CAAA,MAAA,EAAS,CAAA,IAAA,EAAO,CAAA,GAAA,CAAI,CAAC,CAAC,CACpC,CAAA,SAAA,CAAU,CAAC,KAAA,KAAU,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,KAAA,EAAO,CAAG,EAAA,CAAC,CAAI,GAAA,GAAG,CAAC,EAAA;AAY/C,MAAA,qBAAA,GAAwB,EAClC,KAAM,CAAA;AAAA,EACL,EACG,MAAO,EAAA,CACP,UAAW,CAAA,MAAM,EACjB,QAAS,CAAA,GAAG,CACZ,CAAA,SAAA,CAAU,CAAC,KAAU,KAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,EAAO,IAAI,CAAC,CAAA;AAAA;AAAA,EAClD,EACG,MAAO,EAAA,CACP,UAAW,CAAA,OAAO,EAClB,QAAS,CAAA,GAAG,CACZ,CAAA,SAAA,CAAU,CAAC,KAAU,KAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAC,CAAA;AAClD,CAAC,CACA,CAAA,SAAA,CAAU,CAAC,KAAA,KAAU,KAAM,CAAA,OAAA,CAAQ,UAAY,EAAA,EAAE,CAAE,CAAA,KAAA,CAAM,GAAG,CAAC,CAC7D,CAAA,IAAA;AAAA,EACC,EAAE,KAAM,CAAA;AAAA,IACN,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,GACD,CAAA;AACH,EAAA;AAOW,MAAA,oBAAA,GAAuB,EAAE,KAAM,CAAA;AAAA,EAC1C,EACG,KAAM,CAAA;AAAA,IACL,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,GACD,EACA,SAAgB,CAAA,CAAC,QAAQ,CAAC,GAAG,GAAK,EAAA,GAAG,CAAC,CAAA;AAAA,EACzC,EAAE,KAAM,CAAA;AAAA,IACN,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,GACD,CAAA;AACH,CAAC;;;;"}