@accelint/design-system 0.1.0 → 0.1.1

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 (365) hide show
  1. package/dist/assets/components/button/button.css +55 -0
  2. package/dist/assets/components/checkbox/checkbox.css +73 -0
  3. package/dist/assets/components/chip/chip.css +62 -0
  4. package/dist/assets/components/combo-box/combo-box.css +66 -0
  5. package/dist/assets/components/dialog/dialog.css +51 -0
  6. package/dist/assets/components/drawer/drawer.css +135 -0
  7. package/dist/assets/components/group/group.css +33 -0
  8. package/dist/assets/components/icon/icon.css +19 -0
  9. package/dist/assets/components/input/input.css +29 -0
  10. package/dist/assets/components/menu/menu.css +83 -0
  11. package/dist/assets/components/options/options.css +80 -0
  12. package/dist/assets/components/picker/picker.css +47 -0
  13. package/dist/assets/components/popover/popover.css +26 -0
  14. package/dist/assets/components/query-builder/query-builder.css +129 -0
  15. package/dist/assets/components/radio/radio.css +67 -0
  16. package/dist/assets/components/search-field/search-field.css +62 -0
  17. package/dist/assets/components/select/select.css +33 -0
  18. package/dist/assets/components/switch/switch.css +62 -0
  19. package/dist/assets/components/tabs/tabs.css +144 -0
  20. package/dist/assets/components/textarea/textarea.css +32 -0
  21. package/dist/assets/components/tooltip/tooltip.css +54 -0
  22. package/dist/assets/components/tree/tree.css +157 -0
  23. package/dist/assets/hooks/use-theme/use-theme.css +6 -0
  24. package/dist/assets/src/components/button/button.css.ts.vanilla-9uttMYGm.css +55 -0
  25. package/dist/assets/src/components/checkbox/checkbox.css.ts.vanilla-Bewmypyn.css +73 -0
  26. package/dist/assets/src/components/chip/chip.css.ts.vanilla-CsGhxrlu.css +62 -0
  27. package/dist/assets/src/components/combo-box/combo-box.css.ts.vanilla-BNEPKjPm.css +66 -0
  28. package/dist/assets/src/components/dialog/dialog.css.ts.vanilla-CG0m-NJD.css +51 -0
  29. package/dist/assets/src/components/drawer/drawer.css.ts.vanilla-DEfHnoNS.css +135 -0
  30. package/dist/assets/src/components/group/group.css.ts.vanilla-DR69xgQy.css +33 -0
  31. package/dist/assets/src/components/icon/icon.css.ts.vanilla-CoUAfp2F.css +19 -0
  32. package/dist/assets/src/components/input/input.css.ts.vanilla-DoK5h9SX.css +29 -0
  33. package/dist/assets/src/components/menu/menu.css.ts.vanilla-CSnDqc5E.css +83 -0
  34. package/dist/assets/src/components/options/options.css.ts.vanilla-ngVt12W4.css +80 -0
  35. package/dist/assets/src/components/picker/picker.css.ts.vanilla-Fe0YXv-c.css +47 -0
  36. package/dist/assets/src/components/popover/popover.css.ts.vanilla-C5YGwwVD.css +26 -0
  37. package/dist/assets/src/components/query-builder/query-builder.css.ts.vanilla-B3P9cbCv.css +129 -0
  38. package/dist/assets/src/components/radio/radio.css.ts.vanilla-gi-KedQc.css +67 -0
  39. package/dist/assets/src/components/search-field/search-field.css.ts.vanilla-B_JL53f8.css +62 -0
  40. package/dist/assets/src/components/select/select.css.ts.vanilla-C94A60jf.css +33 -0
  41. package/dist/assets/src/components/switch/switch.css.ts.vanilla-DkQwtRa6.css +62 -0
  42. package/dist/assets/src/components/tabs/tabs.css.ts.vanilla-BygIflpl.css +144 -0
  43. package/dist/assets/src/components/textarea/textarea.css.ts.vanilla-Ba6E5HFc.css +32 -0
  44. package/dist/assets/src/components/tooltip/tooltip.css.ts.vanilla-BntxAlwN.css +54 -0
  45. package/dist/assets/src/components/tree/tree.css.ts.vanilla-SLmhk0zZ.css +157 -0
  46. package/dist/assets/src/hooks/use-theme/use-theme.css.ts.vanilla-zkVHnGkP.css +6 -0
  47. package/dist/assets/src/styles/layers.css.ts.vanilla-B2GUgnOF.css +21 -0
  48. package/dist/assets/src/styles/reset.css.ts.vanilla-C8PShXm0.css +31 -0
  49. package/dist/assets/src/styles/space.css.ts.vanilla-Md6Whc4G.css +18 -0
  50. package/dist/assets/src/styles/surfaces.css.ts.vanilla-Ckztx7VT.css +24 -0
  51. package/dist/assets/src/styles/theme.css.ts.vanilla-aDPSIzBK.css +208 -0
  52. package/dist/assets/src/styles/typography.css.ts.vanilla-DRT9H7rd.css +150 -0
  53. package/dist/assets/styles/layers.css +21 -0
  54. package/dist/assets/styles/reset.css +31 -0
  55. package/dist/assets/styles/space.css +18 -0
  56. package/dist/assets/styles/surfaces.css +24 -0
  57. package/dist/assets/styles/theme.css +208 -0
  58. package/dist/assets/styles/typography.css +150 -0
  59. package/dist/components/aria/aria.d.ts +19 -0
  60. package/dist/components/aria/aria.js +36 -0
  61. package/dist/components/aria/aria.js.map +1 -0
  62. package/dist/components/aria/index.d.ts +1 -0
  63. package/dist/components/button/button.css.d.ts +33 -0
  64. package/dist/components/button/button.d.ts +39 -0
  65. package/dist/components/button/button.js +71 -0
  66. package/dist/components/button/button.js.map +1 -0
  67. package/dist/components/button/button.vanilla.js +8 -0
  68. package/dist/components/button/button.vanilla.js.map +1 -0
  69. package/dist/components/button/index.d.ts +3 -0
  70. package/dist/components/button/types.d.ts +28 -0
  71. package/dist/components/checkbox/checkbox.css.d.ts +35 -0
  72. package/dist/components/checkbox/checkbox.d.ts +21 -0
  73. package/dist/components/checkbox/checkbox.js +68 -0
  74. package/dist/components/checkbox/checkbox.js.map +1 -0
  75. package/dist/components/checkbox/checkbox.vanilla.js +9 -0
  76. package/dist/components/checkbox/checkbox.vanilla.js.map +1 -0
  77. package/dist/components/checkbox/index.d.ts +3 -0
  78. package/dist/components/checkbox/types.d.ts +38 -0
  79. package/dist/components/chip/chip.css.d.ts +31 -0
  80. package/dist/components/chip/chip.d.ts +30 -0
  81. package/dist/components/chip/chip.js +106 -0
  82. package/dist/components/chip/chip.js.map +1 -0
  83. package/dist/components/chip/chip.vanilla.js +8 -0
  84. package/dist/components/chip/chip.vanilla.js.map +1 -0
  85. package/dist/components/chip/index.d.ts +3 -0
  86. package/dist/components/chip/types.d.ts +31 -0
  87. package/dist/components/collection/collection.d.ts +13 -0
  88. package/dist/components/collection/collection.js +15 -0
  89. package/dist/components/collection/collection.js.map +1 -0
  90. package/dist/components/collection/index.d.ts +1 -0
  91. package/dist/components/combo-box/combo-box.css.d.ts +22 -0
  92. package/dist/components/combo-box/combo-box.d.ts +8 -0
  93. package/dist/components/combo-box/combo-box.js +87 -0
  94. package/dist/components/combo-box/combo-box.js.map +1 -0
  95. package/dist/components/combo-box/combo-box.vanilla.js +8 -0
  96. package/dist/components/combo-box/combo-box.vanilla.js.map +1 -0
  97. package/dist/components/combo-box/index.d.ts +3 -0
  98. package/dist/components/combo-box/types.d.ts +32 -0
  99. package/dist/components/dialog/dialog.css.d.ts +34 -0
  100. package/dist/components/dialog/dialog.d.ts +18 -0
  101. package/dist/components/dialog/dialog.js +146 -0
  102. package/dist/components/dialog/dialog.js.map +1 -0
  103. package/dist/components/dialog/dialog.vanilla.js +8 -0
  104. package/dist/components/dialog/dialog.vanilla.js.map +1 -0
  105. package/dist/components/dialog/index.d.ts +3 -0
  106. package/dist/components/dialog/types.d.ts +48 -0
  107. package/dist/components/drawer/drawer.css.d.ts +33 -0
  108. package/dist/components/drawer/drawer.d.ts +13 -0
  109. package/dist/components/drawer/drawer.js +199 -0
  110. package/dist/components/drawer/drawer.js.map +1 -0
  111. package/dist/components/drawer/drawer.vanilla.js +10 -0
  112. package/dist/components/drawer/drawer.vanilla.js.map +1 -0
  113. package/dist/components/drawer/index.d.ts +3 -0
  114. package/dist/components/drawer/types.d.ts +71 -0
  115. package/dist/components/element/element.d.ts +11 -0
  116. package/dist/components/element/element.js +21 -0
  117. package/dist/components/element/element.js.map +1 -0
  118. package/dist/components/element/index.d.ts +2 -0
  119. package/dist/components/element/types.d.ts +21 -0
  120. package/dist/components/group/group.css.d.ts +14 -0
  121. package/dist/components/group/group.d.ts +10 -0
  122. package/dist/components/group/group.js +44 -0
  123. package/dist/components/group/group.js.map +1 -0
  124. package/dist/components/group/group.vanilla.js +7 -0
  125. package/dist/components/group/group.vanilla.js.map +1 -0
  126. package/dist/components/group/index.d.ts +3 -0
  127. package/dist/components/group/types.d.ts +35 -0
  128. package/dist/components/icon/icon.css.d.ts +18 -0
  129. package/dist/components/icon/icon.d.ts +12 -0
  130. package/dist/components/icon/icon.js +26 -0
  131. package/dist/components/icon/icon.js.map +1 -0
  132. package/dist/components/icon/icon.vanilla.js +8 -0
  133. package/dist/components/icon/icon.vanilla.js.map +1 -0
  134. package/dist/components/icon/index.d.ts +3 -0
  135. package/dist/components/icon/types.d.ts +13 -0
  136. package/dist/components/index.d.ts +26 -0
  137. package/dist/components/input/index.d.ts +3 -0
  138. package/dist/components/input/input.css.d.ts +29 -0
  139. package/dist/components/input/input.d.ts +8 -0
  140. package/dist/components/input/input.js +93 -0
  141. package/dist/components/input/input.js.map +1 -0
  142. package/dist/components/input/input.vanilla.js +8 -0
  143. package/dist/components/input/input.vanilla.js.map +1 -0
  144. package/dist/components/input/types.d.ts +44 -0
  145. package/dist/components/menu/index.d.ts +3 -0
  146. package/dist/components/menu/menu.css.d.ts +71 -0
  147. package/dist/components/menu/menu.d.ts +24 -0
  148. package/dist/components/menu/menu.js +155 -0
  149. package/dist/components/menu/menu.js.map +1 -0
  150. package/dist/components/menu/menu.vanilla.js +8 -0
  151. package/dist/components/menu/menu.vanilla.js.map +1 -0
  152. package/dist/components/menu/types.d.ts +48 -0
  153. package/dist/components/merge-provider/index.d.ts +2 -0
  154. package/dist/components/merge-provider/merge-provider.d.ts +14 -0
  155. package/dist/components/merge-provider/merge-provider.js +40 -0
  156. package/dist/components/merge-provider/merge-provider.js.map +1 -0
  157. package/dist/components/merge-provider/types.d.ts +5 -0
  158. package/dist/components/options/index.d.ts +3 -0
  159. package/dist/components/options/options.css.d.ts +75 -0
  160. package/dist/components/options/options.d.ts +20 -0
  161. package/dist/components/options/options.js +152 -0
  162. package/dist/components/options/options.js.map +1 -0
  163. package/dist/components/options/options.vanilla.js +10 -0
  164. package/dist/components/options/options.vanilla.js.map +1 -0
  165. package/dist/components/options/types.d.ts +49 -0
  166. package/dist/components/picker/index.d.ts +3 -0
  167. package/dist/components/picker/picker.css.d.ts +32 -0
  168. package/dist/components/picker/picker.d.ts +18 -0
  169. package/dist/components/picker/picker.js +46 -0
  170. package/dist/components/picker/picker.js.map +1 -0
  171. package/dist/components/picker/picker.stories.css.d.ts +3 -0
  172. package/dist/components/picker/picker.vanilla.js +9 -0
  173. package/dist/components/picker/picker.vanilla.js.map +1 -0
  174. package/dist/components/picker/types.d.ts +28 -0
  175. package/dist/components/popover/index.d.ts +3 -0
  176. package/dist/components/popover/popover.css.d.ts +31 -0
  177. package/dist/components/popover/popover.d.ts +8 -0
  178. package/dist/components/popover/popover.js +110 -0
  179. package/dist/components/popover/popover.js.map +1 -0
  180. package/dist/components/popover/popover.vanilla.js +7 -0
  181. package/dist/components/popover/popover.vanilla.js.map +1 -0
  182. package/dist/components/popover/types.d.ts +32 -0
  183. package/dist/components/query-builder/action-element.d.ts +2 -0
  184. package/dist/components/query-builder/action-element.js +12 -0
  185. package/dist/components/query-builder/action-element.js.map +1 -0
  186. package/dist/components/query-builder/constants.d.ts +4 -0
  187. package/dist/components/query-builder/constants.js +20 -0
  188. package/dist/components/query-builder/constants.js.map +1 -0
  189. package/dist/components/query-builder/dataset-sample.d.ts +91 -0
  190. package/dist/components/query-builder/group.d.ts +5 -0
  191. package/dist/components/query-builder/group.js +87 -0
  192. package/dist/components/query-builder/group.js.map +1 -0
  193. package/dist/components/query-builder/index.d.ts +5 -0
  194. package/dist/components/query-builder/query-builder.css.d.ts +91 -0
  195. package/dist/components/query-builder/query-builder.d.ts +2 -0
  196. package/dist/components/query-builder/query-builder.js +129 -0
  197. package/dist/components/query-builder/query-builder.js.map +1 -0
  198. package/dist/components/query-builder/query-builder.vanilla.js +10 -0
  199. package/dist/components/query-builder/query-builder.vanilla.js.map +1 -0
  200. package/dist/components/query-builder/rule.d.ts +3 -0
  201. package/dist/components/query-builder/rule.js +112 -0
  202. package/dist/components/query-builder/rule.js.map +1 -0
  203. package/dist/components/query-builder/types.d.ts +128 -0
  204. package/dist/components/query-builder/utils.d.ts +29 -0
  205. package/dist/components/query-builder/utils.js +22 -0
  206. package/dist/components/query-builder/utils.js.map +1 -0
  207. package/dist/components/query-builder/value-editor.d.ts +4 -0
  208. package/dist/components/query-builder/value-editor.js +74 -0
  209. package/dist/components/query-builder/value-editor.js.map +1 -0
  210. package/dist/components/query-builder/value-selector.d.ts +2 -0
  211. package/dist/components/query-builder/value-selector.js +28 -0
  212. package/dist/components/query-builder/value-selector.js.map +1 -0
  213. package/dist/components/radio/index.d.ts +3 -0
  214. package/dist/components/radio/radio.css.d.ts +34 -0
  215. package/dist/components/radio/radio.d.ts +16 -0
  216. package/dist/components/radio/radio.js +63 -0
  217. package/dist/components/radio/radio.js.map +1 -0
  218. package/dist/components/radio/radio.vanilla.js +8 -0
  219. package/dist/components/radio/radio.vanilla.js.map +1 -0
  220. package/dist/components/radio/types.d.ts +29 -0
  221. package/dist/components/search-field/index.d.ts +3 -0
  222. package/dist/components/search-field/search-field.css.d.ts +16 -0
  223. package/dist/components/search-field/search-field.d.ts +9 -0
  224. package/dist/components/search-field/search-field.js +60 -0
  225. package/dist/components/search-field/search-field.js.map +1 -0
  226. package/dist/components/search-field/search-field.vanilla.js +7 -0
  227. package/dist/components/search-field/search-field.vanilla.js.map +1 -0
  228. package/dist/components/search-field/types.d.ts +29 -0
  229. package/dist/components/select/index.d.ts +3 -0
  230. package/dist/components/select/select.css.d.ts +25 -0
  231. package/dist/components/select/select.d.ts +8 -0
  232. package/dist/components/select/select.js +80 -0
  233. package/dist/components/select/select.js.map +1 -0
  234. package/dist/components/select/select.vanilla.js +8 -0
  235. package/dist/components/select/select.vanilla.js.map +1 -0
  236. package/dist/components/select/types.d.ts +30 -0
  237. package/dist/components/switch/index.d.ts +3 -0
  238. package/dist/components/switch/switch.css.d.ts +25 -0
  239. package/dist/components/switch/switch.d.ts +4 -0
  240. package/dist/components/switch/switch.js +34 -0
  241. package/dist/components/switch/switch.js.map +1 -0
  242. package/dist/components/switch/switch.vanilla.js +8 -0
  243. package/dist/components/switch/switch.vanilla.js.map +1 -0
  244. package/dist/components/switch/types.d.ts +17 -0
  245. package/dist/components/tabs/index.d.ts +3 -0
  246. package/dist/components/tabs/tabs.css.d.ts +49 -0
  247. package/dist/components/tabs/tabs.d.ts +68 -0
  248. package/dist/components/tabs/tabs.js +108 -0
  249. package/dist/components/tabs/tabs.js.map +1 -0
  250. package/dist/components/tabs/tabs.vanilla.js +11 -0
  251. package/dist/components/tabs/tabs.vanilla.js.map +1 -0
  252. package/dist/components/tabs/types.d.ts +82 -0
  253. package/dist/components/textarea/index.d.ts +3 -0
  254. package/dist/components/textarea/textarea.css.d.ts +31 -0
  255. package/dist/components/textarea/textarea.d.ts +14 -0
  256. package/dist/components/textarea/textarea.js +86 -0
  257. package/dist/components/textarea/textarea.js.map +1 -0
  258. package/dist/components/textarea/textarea.vanilla.js +8 -0
  259. package/dist/components/textarea/textarea.vanilla.js.map +1 -0
  260. package/dist/components/textarea/types.d.ts +39 -0
  261. package/dist/components/tooltip/index.d.ts +3 -0
  262. package/dist/components/tooltip/tooltip.css.d.ts +23 -0
  263. package/dist/components/tooltip/tooltip.d.ts +23 -0
  264. package/dist/components/tooltip/tooltip.js +69 -0
  265. package/dist/components/tooltip/tooltip.js.map +1 -0
  266. package/dist/components/tooltip/tooltip.vanilla.js +8 -0
  267. package/dist/components/tooltip/tooltip.vanilla.js.map +1 -0
  268. package/dist/components/tooltip/types.d.ts +39 -0
  269. package/dist/components/tree/index.d.ts +3 -0
  270. package/dist/components/tree/tree.css.d.ts +73 -0
  271. package/dist/components/tree/tree.d.ts +5 -0
  272. package/dist/components/tree/tree.js +337 -0
  273. package/dist/components/tree/tree.js.map +1 -0
  274. package/dist/components/tree/tree.vanilla.js +11 -0
  275. package/dist/components/tree/tree.vanilla.js.map +1 -0
  276. package/dist/components/tree/types.d.ts +114 -0
  277. package/dist/components/tree/utils.d.ts +8 -0
  278. package/dist/components/tree/utils.js +75 -0
  279. package/dist/components/tree/utils.js.map +1 -0
  280. package/dist/hooks/index.d.ts +8 -0
  281. package/dist/hooks/use-collection-render/index.d.ts +1 -0
  282. package/dist/hooks/use-collection-render/use-collection-render.d.ts +9 -0
  283. package/dist/hooks/use-collection-render/use-collection-render.js +20 -0
  284. package/dist/hooks/use-collection-render/use-collection-render.js.map +1 -0
  285. package/dist/hooks/use-context-props/index.d.ts +1 -0
  286. package/dist/hooks/use-context-props/use-context-props.d.ts +7 -0
  287. package/dist/hooks/use-context-props/use-context-props.js +15 -0
  288. package/dist/hooks/use-context-props/use-context-props.js.map +1 -0
  289. package/dist/hooks/use-defaults/index.d.ts +2 -0
  290. package/dist/hooks/use-defaults/types.d.ts +67 -0
  291. package/dist/hooks/use-defaults/use-defaults.d.ts +56 -0
  292. package/dist/hooks/use-defaults/use-defaults.js +21 -0
  293. package/dist/hooks/use-defaults/use-defaults.js.map +1 -0
  294. package/dist/hooks/use-propagating-press/index.d.ts +1 -0
  295. package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +9 -0
  296. package/dist/hooks/use-propagating-press/use-propagating-press.js +14 -0
  297. package/dist/hooks/use-propagating-press/use-propagating-press.js.map +1 -0
  298. package/dist/hooks/use-slot/index.d.ts +1 -0
  299. package/dist/hooks/use-slot/use-slot.d.ts +13 -0
  300. package/dist/hooks/use-slot/use-slot.js +18 -0
  301. package/dist/hooks/use-slot/use-slot.js.map +1 -0
  302. package/dist/hooks/use-theme/index.d.ts +2 -0
  303. package/dist/hooks/use-theme/types.d.ts +86 -0
  304. package/dist/hooks/use-theme/use-theme.css.d.ts +1 -0
  305. package/dist/hooks/use-theme/use-theme.d.ts +13 -0
  306. package/dist/hooks/use-theme/use-theme.js +64 -0
  307. package/dist/hooks/use-theme/use-theme.js.map +1 -0
  308. package/dist/hooks/use-theme/use-theme.vanilla.js +4 -0
  309. package/dist/hooks/use-theme/use-theme.vanilla.js.map +1 -0
  310. package/dist/hooks/use-tree/index.d.ts +1 -0
  311. package/dist/hooks/use-tree/use-tree.d.ts +2 -0
  312. package/dist/hooks/use-tree/use-tree.js +217 -0
  313. package/dist/hooks/use-tree/use-tree.js.map +1 -0
  314. package/dist/hooks/use-tree/utils.d.ts +6 -0
  315. package/dist/hooks/use-tree/utils.js +77 -0
  316. package/dist/hooks/use-tree/utils.js.map +1 -0
  317. package/dist/hooks/use-update-effect/index.d.ts +1 -0
  318. package/dist/hooks/use-update-effect/use-update-effect.d.ts +1 -0
  319. package/dist/hooks/use-update-effect/use-update-effect.js +20 -0
  320. package/dist/hooks/use-update-effect/use-update-effect.js.map +1 -0
  321. package/dist/index.d.ts +10 -0
  322. package/dist/index.js +66 -0
  323. package/dist/index.js.map +1 -0
  324. package/dist/ladle/actions.d.ts +1 -0
  325. package/dist/ladle/index.d.ts +1 -0
  326. package/dist/styles/index.d.ts +6 -0
  327. package/dist/styles/layers.css.d.ts +16 -0
  328. package/dist/styles/layers.vanilla.js +4 -0
  329. package/dist/styles/layers.vanilla.js.map +1 -0
  330. package/dist/styles/reset.css.d.ts +1 -0
  331. package/dist/styles/space.css.d.ts +1 -0
  332. package/dist/styles/surfaces.css.d.ts +4 -0
  333. package/dist/styles/surfaces.vanilla.js +4 -0
  334. package/dist/styles/surfaces.vanilla.js.map +1 -0
  335. package/dist/styles/theme.css.d.ts +334 -0
  336. package/dist/styles/theme.vanilla.js +31 -0
  337. package/dist/styles/theme.vanilla.js.map +1 -0
  338. package/dist/styles/typography.css.d.ts +17 -0
  339. package/dist/styles/typography.vanilla.js +8 -0
  340. package/dist/styles/typography.vanilla.js.map +1 -0
  341. package/dist/styles.css +2014 -0
  342. package/dist/test/setup.d.ts +1 -0
  343. package/dist/types/deckgl.d.ts +1 -0
  344. package/dist/types/generic.d.ts +3 -0
  345. package/dist/types/index.d.ts +6 -0
  346. package/dist/types/props.d.ts +4 -0
  347. package/dist/types/react-aria.d.ts +91 -0
  348. package/dist/types/use-tree.d.ts +52 -0
  349. package/dist/types/vanilla-extract.d.ts +15 -0
  350. package/dist/utils/css.d.ts +139 -0
  351. package/dist/utils/css.js +145 -0
  352. package/dist/utils/css.js.map +1 -0
  353. package/dist/utils/events.d.ts +10 -0
  354. package/dist/utils/events.js +5 -0
  355. package/dist/utils/events.js.map +1 -0
  356. package/dist/utils/index.d.ts +4 -0
  357. package/dist/utils/props.d.ts +29 -0
  358. package/dist/utils/props.js +108 -0
  359. package/dist/utils/props.js.map +1 -0
  360. package/dist/utils/validators.d.ts +49 -0
  361. package/dist/utils/validators.js +37 -0
  362. package/dist/utils/validators.js.map +1 -0
  363. package/dist/vanilla.d.ts +27 -0
  364. package/dist/vanilla.js +27 -0
  365. package/package.json +5 -5
@@ -0,0 +1,71 @@
1
+ import type { MenuClassNames } from './types';
2
+ export declare const menuContainers: {
3
+ menu: string;
4
+ list: string;
5
+ item: string;
6
+ };
7
+ export declare const menuStateVars: {
8
+ placement: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
9
+ size: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
10
+ isExiting: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
11
+ isEntering: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
12
+ };
13
+ export declare const menuItemStateVars: {
14
+ selectionMode: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
15
+ selectionBehavior: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
16
+ size: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
17
+ hasDescription: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
18
+ hasSubmenu: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
19
+ isOpen: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
20
+ isDisabled: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
21
+ isHovered: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
22
+ isPressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
23
+ isSelected: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
24
+ isFocused: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
25
+ isFocusVisible: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
26
+ };
27
+ export declare const menuColorVars: {
28
+ list: {
29
+ background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
30
+ border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
31
+ color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
32
+ };
33
+ header: {
34
+ background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
35
+ border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
36
+ color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
37
+ };
38
+ separator: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
39
+ item: {
40
+ background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
41
+ border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
42
+ color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
43
+ };
44
+ label: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
45
+ description: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
46
+ };
47
+ export declare const menuSpaceVars: {
48
+ menu: {
49
+ minWidth: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
50
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
51
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
52
+ };
53
+ section: {
54
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
55
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
56
+ };
57
+ header: {
58
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
59
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
60
+ };
61
+ separator: {
62
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
63
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
64
+ };
65
+ item: {
66
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
67
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
68
+ gap: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
69
+ };
70
+ };
71
+ export declare const menuClassNames: MenuClassNames;
@@ -0,0 +1,24 @@
1
+ import { type ContextValue } from 'react-aria-components';
2
+ import type { MenuItemProps, MenuListProps, MenuMapping, MenuProps } from './types';
3
+ export declare const MenuContext: import("react").Context<ContextValue<MenuProps, HTMLElement>>;
4
+ /**
5
+ * Menu component that supports display and selection of menu items via a trigger (right-click or click)
6
+ * Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html
7
+ */
8
+ export declare const Menu: (props: Omit<import("react-aria-components").PopoverProps, "className" | "style"> & {
9
+ classNames?: import("./types").MenuClassNames;
10
+ mapping?: Partial<MenuMapping>;
11
+ size?: import("./types").MenuSizes;
12
+ } & import("react").RefAttributes<HTMLElement>) => import("react").ReactElement | null;
13
+ export declare const MenuListContext: import("react").Context<ContextValue<MenuListProps<unknown>, HTMLDivElement>>;
14
+ export declare const MenuList: <T extends object>(props: Omit<import("react-aria-components").MenuProps<T>, "className" | "style"> & {
15
+ classNames?: import("./types").MenuClassNames;
16
+ mapping?: Partial<MenuMapping>;
17
+ size?: import("./types").MenuSizes;
18
+ } & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement | null;
19
+ export declare const MenuItemContext: import("react").Context<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>;
20
+ export declare const MenuItem: <T extends object>(props: Omit<import("react-aria-components").MenuItemProps<T>, "className" | "style"> & {
21
+ classNames?: import("./types").MenuClassNames;
22
+ mapping?: Partial<MenuMapping>;
23
+ size?: import("./types").MenuSizes;
24
+ } & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement | null;
@@ -0,0 +1,155 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, forwardRef, useMemo, useCallback } from 'react';
3
+ import { Provider, Popover, Collection, UNSTABLE_CollectionRendererContext, Menu as Menu$1, DEFAULT_SLOT, MenuItem as MenuItem$1, MenuStateContext } from 'react-aria-components';
4
+ import { useContextProps } from '../../hooks/use-context-props/use-context-props.js';
5
+ import { useDefaultProps } from '../../hooks/use-defaults/use-defaults.js';
6
+ import { inlineVars } from '../../utils/css.js';
7
+ import { mergeClassNames, callRenderProps } from '../../utils/props.js';
8
+ import { useSlot } from '../../hooks/use-slot/use-slot.js';
9
+ import { useTheme } from '../../hooks/use-theme/use-theme.js';
10
+ import { bodies, headings } from '../../styles/typography.vanilla.js';
11
+ import { AriaSectionContext, AriaHeaderContext, AriaSeparatorContext, AriaSection, AriaTextContext, AriaKeyboardContext, AriaText } from '../aria/aria.js';
12
+ import { createCollectionRenderer } from '../collection/collection.js';
13
+ import { IconContext } from '../icon/icon.js';
14
+ import { menuClassNames, menuStateVars, menuItemStateVars } from './menu.vanilla.js';
15
+
16
+ const defaultMapping = {
17
+ description: {
18
+ sm: bodies.xs,
19
+ lg: bodies.xs
20
+ },
21
+ header: {
22
+ sm: headings.v4,
23
+ lg: headings.v5
24
+ },
25
+ label: {
26
+ sm: bodies.sm,
27
+ lg: bodies.sm
28
+ },
29
+ shortcut: {
30
+ sm: bodies.xs,
31
+ lg: bodies.xs
32
+ }
33
+ };
34
+ const defaultSize = "lg";
35
+ const MenuContext = createContext(null);
36
+ const Menu = forwardRef(function Menu2(props, ref) {
37
+ [props, ref] = useContextProps(props, ref, MenuContext);
38
+ props = useDefaultProps(props, "Menu");
39
+ const { children: childrenProp, classNames: classNamesProp, mapping: mappingProp, size = defaultSize, ...rest } = props;
40
+ const theme = useTheme();
41
+ const classNames = useMemo(() => mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {
42
+ menu: { container: theme.className }
43
+ // required to consume global theme within Popover
44
+ }), [classNamesProp, theme.Menu, theme.className]);
45
+ const mapping = useMemo(() => ({
46
+ ...defaultMapping,
47
+ ...mappingProp
48
+ }), [mappingProp]);
49
+ const style = useCallback((renderProps) => ({
50
+ ...theme.style,
51
+ // required to consume global styles within Popover
52
+ ...inlineVars(menuStateVars, {
53
+ ...renderProps,
54
+ size
55
+ })
56
+ }), [theme.style, size]);
57
+ const values = useMemo(() => [[MenuListContext, { classNames, mapping, size }]], [classNames, mapping, size]);
58
+ const children = useCallback((renderProps) => jsx(Provider, { values, children: jsx("div", { className: classNames?.menu?.menu, children: callRenderProps(childrenProp, {
59
+ ...renderProps,
60
+ size,
61
+ defaultChildren: null
62
+ }) }) }), [childrenProp, classNames?.menu?.menu, size, values]);
63
+ return jsx(Popover, { ...rest, ref, className: classNames?.menu?.container, style, children });
64
+ });
65
+ const MenuListContext = createContext(null);
66
+ const MenuList = forwardRef(function MenuList2(props, ref) {
67
+ [props, ref] = useContextProps(props, ref, MenuListContext);
68
+ props = useDefaultProps(props, "Menu");
69
+ const { children: childrenProp, classNames: classNamesProp, items, mapping: mappingProp, selectionMode = "single", size = defaultSize, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...rest } = props;
70
+ const theme = useTheme();
71
+ const mapping = useMemo(() => ({
72
+ ...defaultMapping,
73
+ ...mappingProp
74
+ }), [mappingProp]);
75
+ const classNames = useMemo(() => mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {
76
+ list: { header: mapping.header[size] }
77
+ }), [theme.Menu, classNamesProp, mapping.header, size]);
78
+ const values = useMemo(() => [
79
+ [MenuItemContext, { classNames, mapping, size }],
80
+ [AriaSectionContext, { className: classNames?.list?.section }],
81
+ [AriaHeaderContext, { className: classNames?.list?.header }],
82
+ [AriaSeparatorContext, { className: classNames?.list?.separator }]
83
+ ], [classNames, mapping, size]);
84
+ const children = useMemo(() => {
85
+ if (!(childrenProp || items)) {
86
+ return null;
87
+ }
88
+ return jsx(AriaSection, { className: classNames?.list?.list, children: typeof childrenProp === "function" ? jsx(Collection, { items, children: childrenProp }) : childrenProp });
89
+ }, [childrenProp, classNames?.list?.list, items]);
90
+ const renderer = useMemo(() => createCollectionRenderer(MenuStateContext, values), [values]);
91
+ return jsx(UNSTABLE_CollectionRendererContext.Provider, { value: renderer, children: jsx(Provider, { values, children: jsx(Menu$1, { ...rest, ref, className: classNames?.list?.container, items, selectionMode, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children }) }) });
92
+ });
93
+ const MenuItemContext = createContext(null);
94
+ const MenuItem = forwardRef(function MenuItem2(props, ref) {
95
+ [props, ref] = useContextProps(props, ref, MenuItemContext);
96
+ props = useDefaultProps(props, "MenuItem");
97
+ const { id, children: childrenProp, classNames: classNamesProp, mapping: mappingProp, size = defaultSize, textValue = typeof childrenProp === "string" ? childrenProp : void 0, ...rest } = props;
98
+ const theme = useTheme();
99
+ const mapping = useMemo(() => ({
100
+ ...defaultMapping,
101
+ ...mappingProp
102
+ }), [mappingProp]);
103
+ const classNames = useMemo(() => mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {
104
+ item: {
105
+ description: mapping.description[size],
106
+ label: mapping.label[size],
107
+ shortcut: mapping.shortcut[size]
108
+ }
109
+ }), [theme.Menu, classNamesProp, mapping, size]);
110
+ const [descriptionRef, hasDescription] = useSlot();
111
+ const style = useCallback((renderProps) => inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }), [hasDescription, size]);
112
+ const values = useMemo(() => [
113
+ [
114
+ AriaTextContext,
115
+ {
116
+ slots: {
117
+ [DEFAULT_SLOT]: {},
118
+ label: { className: classNames?.item?.label },
119
+ description: {
120
+ ref: descriptionRef,
121
+ className: classNames?.item?.description
122
+ }
123
+ }
124
+ }
125
+ ],
126
+ [
127
+ IconContext,
128
+ {
129
+ slots: {
130
+ [DEFAULT_SLOT]: { classNames: classNames?.item?.icon },
131
+ more: { classNames: classNames?.item?.more }
132
+ }
133
+ }
134
+ ],
135
+ [AriaKeyboardContext, { className: classNames?.item?.shortcut }]
136
+ ], [
137
+ classNames?.item?.label,
138
+ descriptionRef,
139
+ classNames?.item?.description,
140
+ classNames?.item?.icon,
141
+ classNames?.item?.more,
142
+ classNames?.item?.shortcut
143
+ ]);
144
+ const children = useCallback((renderProps) => {
145
+ const content = callRenderProps(childrenProp, {
146
+ ...renderProps,
147
+ size,
148
+ defaultChildren: null
149
+ });
150
+ return jsx(Provider, { values, children: jsx("div", { className: classNames?.item?.item, children: typeof content === "string" ? jsx(AriaText, { slot: "label", children: content }) : content }) });
151
+ }, [childrenProp, classNames?.item?.item, size, values]);
152
+ return jsx(MenuItem$1, { ...rest, id: id ?? textValue, ref, className: classNames?.item?.container, style, textValue, children });
153
+ });
154
+
155
+ export { Menu, MenuContext, MenuItem, MenuItemContext, MenuList, MenuListContext };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","sources":["../../../src/components/menu/menu.tsx"],"sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n type ForwardedRef,\n type HTMLAttributes,\n} from 'react';\nimport {\n Collection,\n DEFAULT_SLOT,\n MenuStateContext,\n Popover,\n Provider,\n Menu as RACMenu,\n MenuItem as RACMenuItem,\n UNSTABLE_CollectionRendererContext,\n type CollectionRenderer,\n type ContextValue,\n type PopoverRenderProps,\n type MenuItemRenderProps as RACMenuItemRenderProps,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport {\n useContextProps,\n useDefaultProps,\n useSlot,\n useTheme,\n} from '../../hooks';\nimport { bodies, headings } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext, type IconProps } from '../icon';\nimport { menuClassNames, menuItemStateVars, menuStateVars } from './menu.css';\nimport type {\n MenuItemProps,\n MenuListProps,\n MenuMapping,\n MenuProps,\n} from './types';\n\nconst defaultMapping: MenuMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const MenuContext =\n createContext<ContextValue<MenuProps, HTMLElement>>(null);\n\n/**\n * Menu component that supports display and selection of menu items via a trigger (right-click or click)\n * Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n menu: { container: theme.className }, // required to consume global theme within Popover\n }),\n [classNamesProp, theme.Menu, theme.className],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n (renderProps: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(menuStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof MenuListContext,\n ContextValue<MenuListProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[MenuListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.menu?.menu}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.menu?.menu, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.menu?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const MenuListContext =\n createContext<ContextValue<MenuListProps<unknown>, HTMLDivElement>>(null);\n\ntype MenuListContexts = [\n [\n typeof MenuItemContext,\n ContextValue<MenuItemProps<unknown>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const MenuList = forwardRef(function MenuList<T extends object>(\n props: MenuListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuListContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Menu, classNamesProp, mapping.header, size],\n );\n\n const values = useMemo<MenuListContexts>(\n () => [\n [MenuItemContext, { classNames, mapping, size }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [childrenProp, classNames?.list?.list, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n () => createCollectionRenderer(MenuStateContext, values),\n [values],\n );\n\n return (\n <UNSTABLE_CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <RACMenu<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </RACMenu>\n </Provider>\n </UNSTABLE_CollectionRendererContext.Provider>\n );\n});\n\nexport const MenuItemContext =\n createContext<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>(null);\n\nexport const MenuItem = forwardRef(function MenuItem<T extends object>(\n props: MenuItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuItemContext);\n props = useDefaultProps(props, 'MenuItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Menu, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: RACMenuItemRenderProps) =>\n inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [\n IconContext,\n {\n slots: {\n [DEFAULT_SLOT]: { classNames: classNames?.item?.icon },\n more: { classNames: classNames?.item?.more },\n },\n },\n ],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.more,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: RACMenuItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <RACMenuItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref as ForwardedRef<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </RACMenuItem>\n );\n});\n"],"names":["Menu","MenuList","RACMenu","MenuItem","RACMenuItem"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+
2
+ var menuClassNames = { menu: { container: "menu_menuClassNames_menu_container__dpszds17", menu: "menu_menuClassNames_menu_menu__dpszds18 surfaces_proud__15mw6jf5 surfaces_flush__15mw6jf4" }, list: { container: "menu_menuClassNames_list_container__dpszds19", list: "menu_menuClassNames_list_list__dpszds1a", section: "menu_menuClassNames_list_section__dpszds1b", header: "menu_menuClassNames_list_header__dpszds1c", separator: "menu_menuClassNames_list_separator__dpszds1d" }, item: { container: "menu_menuClassNames_item_container__dpszds1e", item: "menu_menuClassNames_item_item__dpszds1f", icon: { icon: "menu_menuClassNames_item_icon_icon__dpszds1g" }, label: "menu_menuClassNames_item_label__dpszds1h", description: "menu_menuClassNames_item_description__dpszds1i", more: { icon: "menu_menuClassNames_item_more_icon__dpszds1j" }, shortcut: "menu_menuClassNames_item_shortcut__dpszds1k" } };
3
+ var menuColorVars = { list: { background: "var(--list-background__dpszdsj)", border: "var(--list-border__dpszdsk)", color: "var(--list-color__dpszdsl)" }, header: { background: "var(--header-background__dpszdsm)", border: "var(--header-border__dpszdsn)", color: "var(--header-color__dpszdso)" }, separator: "var(--separator__dpszdsp)", item: { background: "var(--item-background__dpszdsq)", border: "var(--item-border__dpszdsr)", color: "var(--item-color__dpszdss)" }, label: "var(--label__dpszdst)", description: "var(--description__dpszdsu)" };
4
+ var menuItemStateVars = { selectionMode: "var(--selectionMode__dpszds7)", selectionBehavior: "var(--selectionBehavior__dpszds8)", size: "var(--size__dpszds9)", hasDescription: "var(--hasDescription__dpszdsa)", hasSubmenu: "var(--hasSubmenu__dpszdsb)", isOpen: "var(--isOpen__dpszdsc)", isDisabled: "var(--isDisabled__dpszdsd)", isHovered: "var(--isHovered__dpszdse)", isPressed: "var(--isPressed__dpszdsf)", isSelected: "var(--isSelected__dpszdsg)", isFocused: "var(--isFocused__dpszdsh)", isFocusVisible: "var(--isFocusVisible__dpszdsi)" };
5
+ var menuSpaceVars = { menu: { minWidth: "var(--menu-minWidth__dpszdsv)", x: "var(--menu-x__dpszdsw)", y: "var(--menu-y__dpszdsx)" }, section: { x: "var(--section-x__dpszdsy)", y: "var(--section-y__dpszdsz)" }, header: { x: "var(--header-x__dpszds10)", y: "var(--header-y__dpszds11)" }, separator: { x: "var(--separator-x__dpszds12)", y: "var(--separator-y__dpszds13)" }, item: { x: "var(--item-x__dpszds14)", y: "var(--item-y__dpszds15)", gap: "var(--item-gap__dpszds16)" } };
6
+ var menuStateVars = { placement: "var(--placement__dpszds3)", size: "var(--size__dpszds4)", isExiting: "var(--isExiting__dpszds5)", isEntering: "var(--isEntering__dpszds6)" };
7
+
8
+ export { menuClassNames, menuColorVars, menuItemStateVars, menuSpaceVars, menuStateVars };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.vanilla.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -0,0 +1,48 @@
1
+ import type { AsType } from '../../types';
2
+ import type { PopoverRenderProps, MenuItemProps as RACMenuItemProps, MenuItemRenderProps as RACMenuItemRenderProps, MenuProps as RACMenuProps, PopoverProps as RACPopoverProps } from 'react-aria-components';
3
+ import type { PartialDeep } from 'type-fest';
4
+ import type { IconClassNames } from '../icon/types';
5
+ export type MenuClassNames = PartialDeep<{
6
+ menu: {
7
+ container: string;
8
+ menu: string;
9
+ };
10
+ list: {
11
+ container: string;
12
+ list: string;
13
+ section: string;
14
+ header: string;
15
+ separator: string;
16
+ };
17
+ item: {
18
+ container: string;
19
+ item: string;
20
+ icon: IconClassNames;
21
+ label: string;
22
+ description: string;
23
+ more: IconClassNames;
24
+ shortcut: string;
25
+ };
26
+ }>;
27
+ export type MenuSizes = 'sm' | 'lg';
28
+ export type MenuMapping = {
29
+ description: Partial<Record<MenuSizes, string>>;
30
+ header: Partial<Record<MenuSizes, string>>;
31
+ label: Partial<Record<MenuSizes, string>>;
32
+ shortcut: Partial<Record<MenuSizes, string>>;
33
+ };
34
+ type BaseMenuProps = {
35
+ classNames?: MenuClassNames;
36
+ mapping?: Partial<MenuMapping>;
37
+ size?: MenuSizes;
38
+ };
39
+ export type MenuProps = Omit<RACPopoverProps, 'className' | 'style'> & BaseMenuProps;
40
+ export type MenuListProps<T> = Omit<RACMenuProps<T>, 'className' | 'style'> & BaseMenuProps;
41
+ export type MenuItemProps<T> = Omit<RACMenuItemProps<T>, 'className' | 'style'> & BaseMenuProps;
42
+ export type MenuRenderProps = AsType<PopoverRenderProps> & Required<Pick<BaseMenuProps, 'size'>>;
43
+ export type MenuItemRenderProps = AsType<RACMenuItemRenderProps> & Required<Pick<BaseMenuProps, 'size'>>;
44
+ export type MenuState = Omit<MenuRenderProps, 'trigger'>;
45
+ export type MenuItemState = Omit<MenuItemRenderProps, 'allowsDragging' | 'isDragging' | 'isDropTarget'> & {
46
+ hasDescription: boolean;
47
+ };
48
+ export {};
@@ -0,0 +1,2 @@
1
+ export { MergeProvider } from './merge-provider';
2
+ export { type MergeProviderProps } from './types';
@@ -0,0 +1,14 @@
1
+ import type { MergeProviderProps } from './types';
2
+ /**
3
+ * Merges provided contexts with parent contexts, if available and of the same structure
4
+ * If parent context doesn't exist or differs in structure (slotted vs non-slotted) from
5
+ * the context being provided, the provided context will override the parent context
6
+ *
7
+ * This is typically used in conjunction with React Aria Component's contexts, where a
8
+ * RAC may provide a slotted context (ex: ButtonContext, with a slot of "remove") where
9
+ * that slot has a number of attributes and event listeners, but we want to merge in our
10
+ * own to supplement things for stylistic or additional functionality purposes
11
+ *
12
+ * See tests for examples
13
+ */
14
+ export declare function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({ values, children, }: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,40 @@
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import { mergeProps } from '../../utils/props.js';
3
+
4
+ function merge(context, next, children) {
5
+ return function Consumer(prev) {
6
+ let merged = next;
7
+ if (prev != null && next != null && typeof prev === "object" && typeof next === "object") {
8
+ const prevSlots = "slots" in prev && prev.slots;
9
+ const nextSlots = "slots" in next && next.slots;
10
+ if (prevSlots && nextSlots) {
11
+ merged = {
12
+ ...prev,
13
+ ...next,
14
+ slots: {
15
+ ...prevSlots,
16
+ ...nextSlots,
17
+ ...Reflect.ownKeys(nextSlots).reduce((acc, key) => {
18
+ const value = nextSlots[key];
19
+ if (Object.hasOwn(prevSlots, key)) {
20
+ acc[key] = mergeProps(prevSlots[key], value);
21
+ }
22
+ return acc;
23
+ }, {})
24
+ }
25
+ };
26
+ } else if (!prevSlots && !nextSlots) {
27
+ merged = mergeProps(prev, next);
28
+ }
29
+ }
30
+ return jsx(context.Provider, { value: merged, children });
31
+ };
32
+ }
33
+ function MergeProvider({ values, children }) {
34
+ for (let [context, next] of values) {
35
+ children = jsx(context.Consumer, { children: merge(context, next, children) });
36
+ }
37
+ return jsx(Fragment, { children });
38
+ }
39
+
40
+ export { MergeProvider };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-provider.js","sources":["../../../src/components/merge-provider/merge-provider.tsx"],"sourcesContent":["import type { Context, ReactNode } from 'react';\nimport { mergeProps } from '../../utils';\nimport type { MergeProviderProps } from './types';\n\nfunction merge<T>(context: Context<T>, next: T, children: ReactNode) {\n return function Consumer(prev: T) {\n let merged = next;\n\n if (\n prev != null &&\n next != null &&\n typeof prev === 'object' &&\n typeof next === 'object'\n ) {\n const prevSlots =\n 'slots' in prev && (prev.slots as Record<string | symbol, object>);\n\n const nextSlots =\n 'slots' in next && (next.slots as Record<string | symbol, object>);\n\n if (prevSlots && nextSlots) {\n merged = {\n ...prev,\n ...next,\n slots: {\n ...prevSlots,\n ...nextSlots,\n ...Reflect.ownKeys(nextSlots).reduce<\n Record<string | symbol, object>\n >((acc, key) => {\n const value = nextSlots[key];\n\n if (Object.hasOwn(prevSlots, key)) {\n acc[key] = mergeProps(prevSlots[key], value);\n }\n\n return acc;\n }, {}),\n },\n } as T;\n } else if (!prevSlots && !nextSlots) {\n merged = mergeProps(prev as object, next as object) as T;\n }\n }\n\n return <context.Provider value={merged}>{children}</context.Provider>;\n };\n}\n\n/**\n * Merges provided contexts with parent contexts, if available and of the same structure\n * If parent context doesn't exist or differs in structure (slotted vs non-slotted) from\n * the context being provided, the provided context will override the parent context\n *\n * This is typically used in conjunction with React Aria Component's contexts, where a\n * RAC may provide a slotted context (ex: ButtonContext, with a slot of \"remove\") where\n * that slot has a number of attributes and event listeners, but we want to merge in our\n * own to supplement things for stylistic or additional functionality purposes\n *\n * See tests for examples\n */\nexport function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({\n values,\n children,\n}: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>) {\n for (let [context, next] of values) {\n children = (\n <context.Consumer>\n {merge(context as Context<typeof next>, next, children)}\n </context.Consumer>\n );\n }\n\n return <>{children}</>;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA,SAAS,KAAA,CAAS,OAAqB,EAAA,IAAA,EAAS,QAAqB,EAAA;AACnE,EAAO,OAAA,SAAS,SAAS,IAAS,EAAA;AAChC,IAAA,IAAI,MAAS,GAAA,IAAA,CAAA;AAEb,IACE,IAAA,IAAA,IAAQ,QACR,IAAQ,IAAA,IAAA,IACR,OAAO,IAAS,KAAA,QAAA,IAChB,OAAO,IAAA,KAAS,QAChB,EAAA;AACA,MAAM,MAAA,SAAA,GACJ,OAAW,IAAA,IAAA,IAAS,IAAK,CAAA,KAAA,CAAA;AAE3B,MAAM,MAAA,SAAA,GACJ,OAAW,IAAA,IAAA,IAAS,IAAK,CAAA,KAAA,CAAA;AAE3B,MAAA,IAAI,aAAa,SAAW,EAAA;AAC1B,QAAS,MAAA,GAAA;AAAA,UACP,GAAG,IAAA;AAAA,UACH,GAAG,IAAA;AAAA,UACH,KAAO,EAAA;AAAA,YACL,GAAG,SAAA;AAAA,YACH,GAAG,SAAA;AAAA,YACH,GAAG,QAAQ,OAAQ,CAAA,SAAS,EAAE,MAE5B,CAAA,CAAC,KAAK,GAAQ,KAAA;AACd,cAAM,MAAA,KAAA,GAAQ,UAAU,GAAG,CAAA,CAAA;AAE3B,cAAA,IAAI,MAAO,CAAA,MAAA,CAAO,SAAW,EAAA,GAAG,CAAG,EAAA;AACjC,gBAAA,GAAA,CAAI,GAAG,CAAI,GAAA,UAAA,CAAW,SAAU,CAAA,GAAG,GAAG,KAAK,CAAA,CAAA;AAAA,eAC7C;AAEA,cAAO,OAAA,GAAA,CAAA;AAAA,aACT,EAAG,EAAE,CAAA;AAAA,WACP;AAAA,SACF,CAAA;AAAA,OACS,MAAA,IAAA,CAAC,SAAa,IAAA,CAAC,SAAW,EAAA;AACnC,QAAS,MAAA,GAAA,UAAA,CAAW,MAAgB,IAAc,CAAA,CAAA;AAAA,OACpD;AAAA,KACF;AAEA,IAAA,2BAAQ,OAAQ,CAAA,QAAA,EAAR,EAAiB,KAAA,EAAO,QAAS,QAAS,EAAA,CAAA,CAAA;AAAA,GACpD,CAAA;AACF,CAAA;AAcO,SAAS,aAA+C,CAAA;AAAA,EAC7D,MAAA;AAAA,EACA,QAAA;AACF,CAAwD,EAAA;AACtD,EAAA,KAAA,IAAS,CAAC,OAAA,EAAS,IAAI,CAAA,IAAK,MAAQ,EAAA;AAClC,IACE,QAAA,mBAAA,GAAA,CAAC,QAAQ,QAAR,EAAA,EACE,gBAAM,OAAiC,EAAA,IAAA,EAAM,QAAQ,CACxD,EAAA,CAAA,CAAA;AAAA,GAEJ;AAEA,EAAA,uCAAU,QAAS,EAAA,CAAA,CAAA;AACrB;;;;"}
@@ -0,0 +1,5 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ import type { ProviderValues } from '../../types';
3
+ export type MergeProviderProps<A = any, B = any, C = any, D = any, E = any, F = any, G = any, H = any, I = any, J = any, K = any> = PropsWithChildren<{
4
+ values: ProviderValues<A, B, C, D, E, F, G, H, I, J, K>;
5
+ }>;
@@ -0,0 +1,3 @@
1
+ export { Options, OptionsContext, OptionsItem, OptionsItemContext, OptionsList, OptionsListContext, } from './options';
2
+ export { optionsClassNames, optionsColorVars, optionsContainers, optionsItemStateVars, optionsListStateVars, optionsSpaceVars, optionsStateVars, } from './options.css';
3
+ export { type OptionsClassNames, type OptionsItemProps, type OptionsItemState, type OptionsListProps, type OptionsListState, type OptionsMapping, type OptionsProps, type OptionsSizes, type OptionsState, } from './types';
@@ -0,0 +1,75 @@
1
+ import type { OptionsClassNames } from './types';
2
+ export declare const optionsContainers: {
3
+ options: string;
4
+ list: string;
5
+ item: string;
6
+ };
7
+ export declare const optionsStateVars: {
8
+ size: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
9
+ isEntering: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
10
+ isExiting: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
11
+ placement: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
12
+ };
13
+ export declare const optionsListStateVars: {
14
+ size: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
15
+ isEmpty: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
16
+ isFocused: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
17
+ isFocusVisible: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
18
+ };
19
+ export declare const optionsItemStateVars: {
20
+ selectionBehavior: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
21
+ selectionMode: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
22
+ size: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
23
+ hasDescription: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
24
+ isDisabled: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
25
+ isHovered: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
26
+ isPressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
27
+ isSelected: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
28
+ isFocused: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
29
+ isFocusVisible: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
30
+ };
31
+ export declare const optionsColorVars: {
32
+ list: {
33
+ background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
34
+ border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
35
+ color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
36
+ };
37
+ header: {
38
+ background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
39
+ border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
40
+ color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
41
+ };
42
+ separator: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
43
+ item: {
44
+ background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
45
+ border: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
46
+ color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
47
+ };
48
+ label: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
49
+ description: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
50
+ };
51
+ export declare const optionsSpaceVars: {
52
+ options: {
53
+ minWidth: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
54
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
55
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
56
+ };
57
+ section: {
58
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
59
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
60
+ };
61
+ header: {
62
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
63
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
64
+ };
65
+ separator: {
66
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
67
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
68
+ };
69
+ item: {
70
+ x: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
71
+ y: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
72
+ gap: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
73
+ };
74
+ };
75
+ export declare const optionsClassNames: OptionsClassNames;
@@ -0,0 +1,20 @@
1
+ import { type ContextValue } from 'react-aria-components';
2
+ import type { OptionsItemProps, OptionsListProps, OptionsMapping, OptionsProps } from './types';
3
+ export declare const OptionsContext: import("react").Context<ContextValue<OptionsProps, HTMLElement>>;
4
+ export declare const Options: (props: Omit<import("react-aria-components").PopoverProps, "className" | "style"> & {
5
+ classNames?: import("./types").OptionsClassNames;
6
+ mapping?: Partial<OptionsMapping>;
7
+ size?: import("./types").OptionsSizes;
8
+ } & import("react").RefAttributes<HTMLElement>) => import("react").ReactElement | null;
9
+ export declare const OptionsListContext: import("react").Context<ContextValue<OptionsListProps<object>, HTMLDivElement>>;
10
+ export declare const OptionsList: <T extends object>(props: Omit<import("react-aria-components").ListBoxProps<T>, "className" | "style" | "orientation" | "dragAndDropHooks"> & {
11
+ classNames?: import("./types").OptionsClassNames;
12
+ mapping?: Partial<OptionsMapping>;
13
+ size?: import("./types").OptionsSizes;
14
+ } & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement | null;
15
+ export declare const OptionsItemContext: import("react").Context<ContextValue<OptionsItemProps<object>, HTMLDivElement>>;
16
+ export declare const OptionsItem: <T extends object>(props: Omit<import("react-aria-components").ListBoxItemProps<T>, "className" | "style"> & {
17
+ classNames?: import("./types").OptionsClassNames;
18
+ mapping?: Partial<OptionsMapping>;
19
+ size?: import("./types").OptionsSizes;
20
+ } & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement | null;