@accelint/design-system 0.8.1 → 0.9.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 (287) hide show
  1. package/dist/components/aria/index.d.ts +32 -3
  2. package/dist/components/aria/index.js +36 -1
  3. package/dist/components/aria/index.js.map +1 -1
  4. package/dist/components/button/index.d.ts +45 -6
  5. package/dist/components/button/index.js +105 -3
  6. package/dist/components/button/index.js.map +1 -1
  7. package/dist/components/checkbox/index.d.ts +28 -7
  8. package/dist/components/checkbox/index.js +124 -3
  9. package/dist/components/checkbox/index.js.map +1 -1
  10. package/dist/components/chip/index.d.ts +36 -6
  11. package/dist/components/chip/index.js +171 -3
  12. package/dist/components/chip/index.js.map +1 -1
  13. package/dist/components/collection/index.d.ts +16 -5
  14. package/dist/components/collection/index.js +19 -1
  15. package/dist/components/collection/index.js.map +1 -1
  16. package/dist/components/combo-box/index.d.ts +13 -5
  17. package/dist/components/combo-box/index.js +116 -3
  18. package/dist/components/combo-box/index.js.map +1 -1
  19. package/dist/components/date-field/index.d.ts +13 -5
  20. package/dist/components/date-field/index.js +106 -2
  21. package/dist/components/date-field/index.js.map +1 -1
  22. package/dist/components/date-input/index.d.ts +19 -7
  23. package/dist/components/date-input/index.js +134 -2
  24. package/dist/components/date-input/index.js.map +1 -1
  25. package/dist/components/dialog/index.d.ts +24 -6
  26. package/dist/components/dialog/index.js +187 -3
  27. package/dist/components/dialog/index.js.map +1 -1
  28. package/dist/components/drawer/index.d.ts +19 -7
  29. package/dist/components/drawer/index.js +306 -3
  30. package/dist/components/drawer/index.js.map +1 -1
  31. package/dist/components/element/index.d.ts +15 -4
  32. package/dist/components/element/index.js +21 -2
  33. package/dist/components/element/index.js.map +1 -1
  34. package/dist/components/group/index.d.ts +15 -5
  35. package/dist/components/group/index.js +60 -3
  36. package/dist/components/group/index.js.map +1 -1
  37. package/dist/components/icon/index.d.ts +17 -5
  38. package/dist/components/icon/index.js +39 -3
  39. package/dist/components/icon/index.js.map +1 -1
  40. package/dist/components/index.d.ts +35 -35
  41. package/dist/components/index.js +58 -28
  42. package/dist/components/input/index.d.ts +12 -5
  43. package/dist/components/input/index.js +141 -3
  44. package/dist/components/input/index.js.map +1 -1
  45. package/dist/components/menu/index.d.ts +29 -5
  46. package/dist/components/menu/index.js +253 -3
  47. package/dist/components/menu/index.js.map +1 -1
  48. package/dist/components/merge-provider/index.d.ts +18 -3
  49. package/dist/components/merge-provider/index.js +43 -2
  50. package/dist/components/merge-provider/index.js.map +1 -1
  51. package/dist/components/number-field/index.d.ts +14 -6
  52. package/dist/components/number-field/index.js +127 -2
  53. package/dist/components/number-field/index.js.map +1 -1
  54. package/dist/components/number-field/number-field.css.d.ts +1 -1
  55. package/dist/components/number-field/types.d.ts +1 -1
  56. package/dist/components/options/index.d.ts +25 -5
  57. package/dist/components/options/index.js +254 -3
  58. package/dist/components/options/index.js.map +1 -1
  59. package/dist/components/picker/index.d.ts +23 -5
  60. package/dist/components/picker/index.js +113 -3
  61. package/dist/components/picker/index.js.map +1 -1
  62. package/dist/components/popover/index.d.ts +14 -6
  63. package/dist/components/popover/index.js +140 -3
  64. package/dist/components/popover/index.js.map +1 -1
  65. package/dist/components/query-builder/group.js +1 -1
  66. package/dist/components/query-builder/group.js.map +1 -1
  67. package/dist/components/query-builder/index.d.ts +7 -7
  68. package/dist/components/query-builder/index.js +198 -5
  69. package/dist/components/query-builder/index.js.map +1 -1
  70. package/dist/components/query-builder/rule.js +1 -1
  71. package/dist/components/query-builder/rule.js.map +1 -1
  72. package/dist/components/query-builder/value-editor.js.map +1 -1
  73. package/dist/components/query-builder/value-selector.js +1 -1
  74. package/dist/components/query-builder/value-selector.js.map +1 -1
  75. package/dist/components/radio/index.d.ts +22 -6
  76. package/dist/components/radio/index.js +114 -3
  77. package/dist/components/radio/index.js.map +1 -1
  78. package/dist/components/search-field/index.d.ts +15 -6
  79. package/dist/components/search-field/index.js +92 -3
  80. package/dist/components/search-field/index.js.map +1 -1
  81. package/dist/components/select/index.d.ts +13 -5
  82. package/dist/components/select/index.js +109 -3
  83. package/dist/components/select/index.js.map +1 -1
  84. package/dist/components/slider/index.d.ts +41 -7
  85. package/dist/components/slider/index.js +232 -3
  86. package/dist/components/slider/index.js.map +1 -1
  87. package/dist/components/slider/slider.css.d.ts +1 -1
  88. package/dist/components/slider/types.d.ts +1 -1
  89. package/dist/components/switch/index.d.ts +9 -5
  90. package/dist/components/switch/index.js +60 -3
  91. package/dist/components/switch/index.js.map +1 -1
  92. package/dist/components/tabs/index.d.ts +74 -7
  93. package/dist/components/tabs/index.js +259 -3
  94. package/dist/components/tabs/index.js.map +1 -1
  95. package/dist/components/text-field/index.d.ts +61 -6
  96. package/dist/components/text-field/index.js +93 -2
  97. package/dist/components/text-field/index.js.map +1 -1
  98. package/dist/components/textarea/index.d.ts +18 -5
  99. package/dist/components/textarea/index.js +134 -3
  100. package/dist/components/textarea/index.js.map +1 -1
  101. package/dist/components/time-field/index.d.ts +14 -6
  102. package/dist/components/time-field/index.js +103 -2
  103. package/dist/components/time-field/index.js.map +1 -1
  104. package/dist/components/tooltip/index.d.ts +29 -6
  105. package/dist/components/tooltip/index.js +112 -3
  106. package/dist/components/tooltip/index.js.map +1 -1
  107. package/dist/components/tree/index.d.ts +17 -5
  108. package/dist/components/tree/index.js +491 -3
  109. package/dist/components/tree/index.js.map +1 -1
  110. package/dist/components/tree/utils.js.map +1 -1
  111. package/dist/hooks/index.d.ts +12 -12
  112. package/dist/hooks/use-collection-render/index.d.ts +11 -3
  113. package/dist/hooks/use-collection-render/index.js +25 -1
  114. package/dist/hooks/use-collection-render/index.js.map +1 -1
  115. package/dist/hooks/use-context-props/index.d.ts +10 -3
  116. package/dist/hooks/use-context-props/index.js +15 -1
  117. package/dist/hooks/use-context-props/index.js.map +1 -1
  118. package/dist/hooks/use-defaults/index.d.ts +99 -31
  119. package/dist/hooks/use-defaults/index.js +33 -2
  120. package/dist/hooks/use-defaults/index.js.map +1 -1
  121. package/dist/hooks/use-defaults/types.d.ts +6 -6
  122. package/dist/hooks/use-propagating-press/index.d.ts +13 -2
  123. package/dist/hooks/use-propagating-press/index.js +19 -1
  124. package/dist/hooks/use-propagating-press/index.js.map +1 -1
  125. package/dist/hooks/use-slot/index.d.ts +16 -2
  126. package/dist/hooks/use-slot/index.js +18 -1
  127. package/dist/hooks/use-slot/index.js.map +1 -1
  128. package/dist/hooks/use-theme/index.d.ts +37 -8
  129. package/dist/hooks/use-theme/index.js +105 -2
  130. package/dist/hooks/use-theme/index.js.map +1 -1
  131. package/dist/hooks/use-theme/types.d.ts +2 -2
  132. package/dist/hooks/use-tree/index.d.ts +5 -2
  133. package/dist/hooks/use-tree/index.js +259 -1
  134. package/dist/hooks/use-tree/index.js.map +1 -1
  135. package/dist/hooks/use-tree/utils.js.map +1 -1
  136. package/dist/hooks/use-update-effect/index.d.ts +3 -1
  137. package/dist/hooks/use-update-effect/index.js +20 -1
  138. package/dist/hooks/use-update-effect/index.js.map +1 -1
  139. package/dist/index.css +119 -119
  140. package/dist/index.d.ts +47 -47
  141. package/dist/ladle/actions.js.map +1 -1
  142. package/dist/styles/layers.css.d.ts +3 -3
  143. package/dist/styles/surfaces.css.d.ts +1 -1
  144. package/dist/test/setup.js +78 -8
  145. package/dist/test/setup.js.map +1 -1
  146. package/dist/utils/{css.d.ts → css/index.d.ts} +2 -2
  147. package/dist/utils/{css.js → css/index.js} +5 -5
  148. package/dist/utils/css/index.js.map +1 -0
  149. package/dist/utils/events/index.js +10 -0
  150. package/dist/utils/events/index.js.map +1 -0
  151. package/dist/utils/index.d.ts +4 -4
  152. package/dist/utils/index.js +4 -4
  153. package/dist/utils/{props.d.ts → props/index.d.ts} +2 -2
  154. package/dist/utils/{props.js → props/index.js} +3 -3
  155. package/dist/utils/props/index.js.map +1 -0
  156. package/dist/utils/{validators.d.ts → validators/index.d.ts} +1 -1
  157. package/dist/utils/{validators.js → validators/index.js} +3 -3
  158. package/dist/utils/validators/index.js.map +1 -0
  159. package/dist/vanilla.d.ts +1 -1
  160. package/dist/vanilla.js +1 -1
  161. package/package.json +7 -8
  162. package/dist/components/aria/aria.d.ts +0 -32
  163. package/dist/components/aria/aria.js +0 -39
  164. package/dist/components/aria/aria.js.map +0 -1
  165. package/dist/components/button/button.d.ts +0 -47
  166. package/dist/components/button/button.js +0 -104
  167. package/dist/components/button/button.js.map +0 -1
  168. package/dist/components/checkbox/checkbox.d.ts +0 -30
  169. package/dist/components/checkbox/checkbox.js +0 -123
  170. package/dist/components/checkbox/checkbox.js.map +0 -1
  171. package/dist/components/chip/chip.d.ts +0 -41
  172. package/dist/components/chip/chip.js +0 -171
  173. package/dist/components/chip/chip.js.map +0 -1
  174. package/dist/components/collection/collection.d.ts +0 -17
  175. package/dist/components/collection/collection.js +0 -22
  176. package/dist/components/collection/collection.js.map +0 -1
  177. package/dist/components/combo-box/combo-box.d.ts +0 -21
  178. package/dist/components/combo-box/combo-box.js +0 -116
  179. package/dist/components/combo-box/combo-box.js.map +0 -1
  180. package/dist/components/date-field/date-field.d.ts +0 -20
  181. package/dist/components/date-field/date-field.js +0 -106
  182. package/dist/components/date-field/date-field.js.map +0 -1
  183. package/dist/components/date-input/date-input.d.ts +0 -42
  184. package/dist/components/date-input/date-input.js +0 -128
  185. package/dist/components/date-input/date-input.js.map +0 -1
  186. package/dist/components/dialog/dialog.d.ts +0 -29
  187. package/dist/components/dialog/dialog.js +0 -186
  188. package/dist/components/dialog/dialog.js.map +0 -1
  189. package/dist/components/drawer/drawer.d.ts +0 -28
  190. package/dist/components/drawer/drawer.js +0 -305
  191. package/dist/components/drawer/drawer.js.map +0 -1
  192. package/dist/components/element/element.d.ts +0 -16
  193. package/dist/components/element/element.js +0 -24
  194. package/dist/components/element/element.js.map +0 -1
  195. package/dist/components/group/group.d.ts +0 -16
  196. package/dist/components/group/group.js +0 -61
  197. package/dist/components/group/group.js.map +0 -1
  198. package/dist/components/icon/icon.d.ts +0 -17
  199. package/dist/components/icon/icon.js +0 -39
  200. package/dist/components/icon/icon.js.map +0 -1
  201. package/dist/components/input/input.d.ts +0 -13
  202. package/dist/components/input/input.js +0 -141
  203. package/dist/components/input/input.js.map +0 -1
  204. package/dist/components/menu/menu.d.ts +0 -32
  205. package/dist/components/menu/menu.js +0 -252
  206. package/dist/components/menu/menu.js.map +0 -1
  207. package/dist/components/merge-provider/merge-provider.d.ts +0 -20
  208. package/dist/components/merge-provider/merge-provider.js +0 -46
  209. package/dist/components/merge-provider/merge-provider.js.map +0 -1
  210. package/dist/components/number-field/number-field.d.ts +0 -20
  211. package/dist/components/number-field/number-field.js +0 -125
  212. package/dist/components/number-field/number-field.js.map +0 -1
  213. package/dist/components/options/options.d.ts +0 -28
  214. package/dist/components/options/options.js +0 -253
  215. package/dist/components/options/options.js.map +0 -1
  216. package/dist/components/picker/picker.d.ts +0 -24
  217. package/dist/components/picker/picker.js +0 -113
  218. package/dist/components/picker/picker.js.map +0 -1
  219. package/dist/components/popover/popover.d.ts +0 -22
  220. package/dist/components/popover/popover.js +0 -139
  221. package/dist/components/popover/popover.js.map +0 -1
  222. package/dist/components/query-builder/query-builder.d.ts +0 -23
  223. package/dist/components/query-builder/query-builder.js +0 -200
  224. package/dist/components/query-builder/query-builder.js.map +0 -1
  225. package/dist/components/radio/radio.d.ts +0 -23
  226. package/dist/components/radio/radio.js +0 -114
  227. package/dist/components/radio/radio.js.map +0 -1
  228. package/dist/components/search-field/search-field.d.ts +0 -21
  229. package/dist/components/search-field/search-field.js +0 -92
  230. package/dist/components/search-field/search-field.js.map +0 -1
  231. package/dist/components/select/select.d.ts +0 -20
  232. package/dist/components/select/select.js +0 -109
  233. package/dist/components/select/select.js.map +0 -1
  234. package/dist/components/slider/slider.d.ts +0 -49
  235. package/dist/components/slider/slider.js +0 -230
  236. package/dist/components/slider/slider.js.map +0 -1
  237. package/dist/components/switch/switch.d.ts +0 -10
  238. package/dist/components/switch/switch.js +0 -60
  239. package/dist/components/switch/switch.js.map +0 -1
  240. package/dist/components/tabs/tabs.d.ts +0 -75
  241. package/dist/components/tabs/tabs.js +0 -258
  242. package/dist/components/tabs/tabs.js.map +0 -1
  243. package/dist/components/text-field/text-field.d.ts +0 -64
  244. package/dist/components/text-field/text-field.js +0 -92
  245. package/dist/components/text-field/text-field.js.map +0 -1
  246. package/dist/components/textarea/textarea.d.ts +0 -19
  247. package/dist/components/textarea/textarea.js +0 -134
  248. package/dist/components/textarea/textarea.js.map +0 -1
  249. package/dist/components/time-field/time-field.d.ts +0 -21
  250. package/dist/components/time-field/time-field.js +0 -106
  251. package/dist/components/time-field/time-field.js.map +0 -1
  252. package/dist/components/tooltip/tooltip.d.ts +0 -30
  253. package/dist/components/tooltip/tooltip.js +0 -112
  254. package/dist/components/tooltip/tooltip.js.map +0 -1
  255. package/dist/components/tree/tree.d.ts +0 -29
  256. package/dist/components/tree/tree.js +0 -491
  257. package/dist/components/tree/tree.js.map +0 -1
  258. package/dist/hooks/use-collection-render/use-collection-render.d.ts +0 -11
  259. package/dist/hooks/use-collection-render/use-collection-render.js +0 -28
  260. package/dist/hooks/use-collection-render/use-collection-render.js.map +0 -1
  261. package/dist/hooks/use-context-props/use-context-props.d.ts +0 -10
  262. package/dist/hooks/use-context-props/use-context-props.js +0 -18
  263. package/dist/hooks/use-context-props/use-context-props.js.map +0 -1
  264. package/dist/hooks/use-defaults/use-defaults.d.ts +0 -110
  265. package/dist/hooks/use-defaults/use-defaults.js +0 -36
  266. package/dist/hooks/use-defaults/use-defaults.js.map +0 -1
  267. package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +0 -13
  268. package/dist/hooks/use-propagating-press/use-propagating-press.js +0 -21
  269. package/dist/hooks/use-propagating-press/use-propagating-press.js.map +0 -1
  270. package/dist/hooks/use-slot/use-slot.d.ts +0 -16
  271. package/dist/hooks/use-slot/use-slot.js +0 -21
  272. package/dist/hooks/use-slot/use-slot.js.map +0 -1
  273. package/dist/hooks/use-theme/use-theme.d.ts +0 -77
  274. package/dist/hooks/use-theme/use-theme.js +0 -108
  275. package/dist/hooks/use-theme/use-theme.js.map +0 -1
  276. package/dist/hooks/use-tree/use-tree.d.ts +0 -7
  277. package/dist/hooks/use-tree/use-tree.js +0 -262
  278. package/dist/hooks/use-tree/use-tree.js.map +0 -1
  279. package/dist/hooks/use-update-effect/use-update-effect.d.ts +0 -3
  280. package/dist/hooks/use-update-effect/use-update-effect.js +0 -23
  281. package/dist/hooks/use-update-effect/use-update-effect.js.map +0 -1
  282. package/dist/utils/css.js.map +0 -1
  283. package/dist/utils/events.js +0 -10
  284. package/dist/utils/events.js.map +0 -1
  285. package/dist/utils/props.js.map +0 -1
  286. package/dist/utils/validators.js.map +0 -1
  287. /package/dist/utils/{events.d.ts → events/index.d.ts} +0 -0
@@ -1,6 +1,257 @@
1
1
  import '../../chunk-PZ5AY32C.js';
2
- export { Options, OptionsContext, OptionsItem, OptionsItemContext, OptionsList, OptionsListContext } from './options.js';
3
- export { optionsClassNames, optionsColorVars, optionsContainers, optionsItemStateVars, optionsListStateVars, optionsSpaceVars, optionsStateVars } from './options.css.js';
4
- import './types.js';
2
+ import { createContext, forwardRef, useMemo, useCallback } from 'react';
3
+ import { Provider, Popover, Collection, ListStateContext, UNSTABLE_CollectionRendererContext, ListBox, ListBoxItem } from 'react-aria-components';
4
+ import { useContextProps } from '../../hooks/use-context-props/index.js';
5
+ import { useDefaultProps } from '../../hooks/use-defaults/index.js';
6
+ import { useSlot } from '../../hooks/use-slot/index.js';
7
+ import { useTheme } from '../../hooks/use-theme/index.js';
8
+ import { bodies, headings } from '../../styles/typography.css.js';
9
+ import { inlineVars } from '../../utils/css/index.js';
10
+ import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
11
+ import { AriaSectionContext, AriaHeaderContext, AriaSeparatorContext, AriaSection, AriaTextContext, AriaKeyboardContext, AriaText } from '../aria/index.js';
12
+ import { createCollectionRenderer } from '../collection/index.js';
13
+ import { IconContext } from '../icon/index.js';
14
+ import { optionsClassNames, optionsStateVars, optionsItemStateVars } from './options.css.js';
15
+ import { jsx } from 'react/jsx-runtime';
16
+
17
+ var defaultMapping = {
18
+ description: {
19
+ sm: bodies.xs,
20
+ lg: bodies.xs
21
+ },
22
+ header: {
23
+ sm: headings.v4,
24
+ lg: headings.v5
25
+ },
26
+ label: {
27
+ sm: bodies.sm,
28
+ lg: bodies.sm
29
+ },
30
+ shortcut: {
31
+ sm: bodies.xs,
32
+ lg: bodies.xs
33
+ }
34
+ };
35
+ var defaultSize = "lg";
36
+ var OptionsContext = createContext(null);
37
+ var Options = forwardRef(function Options2(props, ref) {
38
+ [props, ref] = useContextProps(props, ref, OptionsContext);
39
+ props = useDefaultProps(props, "Options");
40
+ const {
41
+ children: childrenProp,
42
+ classNames: classNamesProp,
43
+ mapping: mappingProp,
44
+ size = defaultSize,
45
+ ...rest
46
+ } = props;
47
+ const theme = useTheme();
48
+ const classNames = useMemo(
49
+ () => mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {
50
+ options: {
51
+ container: theme.className
52
+ // required to consume global theme within Popover
53
+ }
54
+ }),
55
+ [theme.className, theme.Options, classNamesProp]
56
+ );
57
+ const mapping = useMemo(
58
+ () => ({
59
+ ...defaultMapping,
60
+ ...mappingProp
61
+ }),
62
+ [mappingProp]
63
+ );
64
+ const style = useCallback(
65
+ ({ ...renderProps }) => ({
66
+ ...theme.style,
67
+ // required to consume global styles within Popover
68
+ ...inlineVars(optionsStateVars, {
69
+ ...renderProps,
70
+ size
71
+ })
72
+ }),
73
+ [theme.style, size]
74
+ );
75
+ const values = useMemo(
76
+ () => [[OptionsListContext, { classNames, mapping, size }]],
77
+ [classNames, mapping, size]
78
+ );
79
+ const children = useCallback(
80
+ (renderProps) => /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.options?.options, children: callRenderProps(childrenProp, {
81
+ ...renderProps,
82
+ size,
83
+ defaultChildren: null
84
+ }) }) }),
85
+ [childrenProp, classNames?.options?.options, size, values]
86
+ );
87
+ return /* @__PURE__ */ jsx(
88
+ Popover,
89
+ {
90
+ ...rest,
91
+ ref,
92
+ className: classNames?.options?.container,
93
+ style,
94
+ children
95
+ }
96
+ );
97
+ });
98
+ var OptionsListContext = createContext(null);
99
+ var OptionsList = forwardRef(function OptionList(props, ref) {
100
+ [props, ref] = useContextProps(props, ref, OptionsListContext);
101
+ props = useDefaultProps(props, "OptionsList");
102
+ const {
103
+ children: childrenProp,
104
+ classNames: classNamesProp,
105
+ items,
106
+ mapping: mappingProp,
107
+ selectionMode = "single",
108
+ size = defaultSize,
109
+ "aria-label": ariaLabel,
110
+ "aria-labelledby": ariaLabelledBy,
111
+ ...rest
112
+ } = props;
113
+ const theme = useTheme();
114
+ const mapping = useMemo(
115
+ () => ({
116
+ ...defaultMapping,
117
+ ...mappingProp
118
+ }),
119
+ [mappingProp]
120
+ );
121
+ const classNames = useMemo(
122
+ () => mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {
123
+ list: { header: mapping.header[size] }
124
+ }),
125
+ [theme.Options, classNamesProp, mapping, size]
126
+ );
127
+ const values = useMemo(
128
+ () => [
129
+ [OptionsItemContext, { classNames, size, mapping }],
130
+ [AriaSectionContext, { className: classNames?.list?.section }],
131
+ [AriaHeaderContext, { className: classNames?.list?.header }],
132
+ [AriaSeparatorContext, { className: classNames?.list?.separator }]
133
+ ],
134
+ [classNames, size, mapping]
135
+ );
136
+ const style = useCallback(
137
+ (renderProps) => inlineVars(optionsItemStateVars, { ...renderProps, size }),
138
+ [size]
139
+ );
140
+ const children = useMemo(() => {
141
+ if (!(childrenProp || items)) {
142
+ return null;
143
+ }
144
+ return /* @__PURE__ */ jsx(AriaSection, { className: classNames?.list?.list, children: typeof childrenProp === "function" ? /* @__PURE__ */ jsx(Collection, { items, children: childrenProp }) : childrenProp });
145
+ }, [classNames?.list?.list, childrenProp, items]);
146
+ const renderer = useMemo(
147
+ () => createCollectionRenderer(ListStateContext, values),
148
+ [values]
149
+ );
150
+ return /* @__PURE__ */ jsx(UNSTABLE_CollectionRendererContext.Provider, { value: renderer, children: /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx(
151
+ ListBox,
152
+ {
153
+ ...rest,
154
+ ref,
155
+ className: classNames?.list?.container,
156
+ items,
157
+ selectionMode,
158
+ style,
159
+ "aria-label": ariaLabel,
160
+ "aria-labelledby": ariaLabelledBy,
161
+ children
162
+ }
163
+ ) }) });
164
+ });
165
+ var OptionsItemContext = createContext(null);
166
+ var OptionsItem = forwardRef(function OptionItem(props, ref) {
167
+ [props, ref] = useContextProps(props, ref, OptionsItemContext);
168
+ props = useDefaultProps(props, "OptionsItem");
169
+ const {
170
+ id,
171
+ children: childrenProp,
172
+ classNames: classNamesProp,
173
+ mapping: mappingProp,
174
+ size = defaultSize,
175
+ textValue = typeof childrenProp === "string" ? childrenProp : void 0,
176
+ ...rest
177
+ } = props;
178
+ const theme = useTheme();
179
+ const mapping = useMemo(
180
+ () => ({
181
+ ...defaultMapping,
182
+ ...mappingProp
183
+ }),
184
+ [mappingProp]
185
+ );
186
+ const classNames = useMemo(
187
+ () => mergeClassNames(optionsClassNames, classNamesProp, theme.Options, {
188
+ item: {
189
+ description: mapping.description[size],
190
+ label: mapping.label[size],
191
+ shortcut: mapping.shortcut[size]
192
+ }
193
+ }),
194
+ [theme.Options, classNamesProp, mapping, size]
195
+ );
196
+ const [descriptionRef, hasDescription] = useSlot();
197
+ const style = useCallback(
198
+ (renderProps) => inlineVars(optionsItemStateVars, {
199
+ ...renderProps,
200
+ size,
201
+ hasDescription
202
+ }),
203
+ [hasDescription, size]
204
+ );
205
+ const values = useMemo(
206
+ () => [
207
+ [
208
+ AriaTextContext,
209
+ {
210
+ slots: {
211
+ label: { className: classNames?.item?.label },
212
+ description: {
213
+ ref: descriptionRef,
214
+ className: classNames?.item?.description
215
+ }
216
+ }
217
+ }
218
+ ],
219
+ [IconContext, { classNames: classNames?.item?.icon }],
220
+ [AriaKeyboardContext, { className: classNames?.item?.shortcut }]
221
+ ],
222
+ [
223
+ classNames?.item?.label,
224
+ descriptionRef,
225
+ classNames?.item?.description,
226
+ classNames?.item?.icon,
227
+ classNames?.item?.shortcut
228
+ ]
229
+ );
230
+ const children = useCallback(
231
+ (renderProps) => {
232
+ const content = callRenderProps(childrenProp, {
233
+ ...renderProps,
234
+ size,
235
+ defaultChildren: null
236
+ });
237
+ return /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx("div", { className: classNames?.item?.item, children: typeof content === "string" ? /* @__PURE__ */ jsx(AriaText, { slot: "label", children: content }) : content }) });
238
+ },
239
+ [childrenProp, classNames?.item?.item, size, values]
240
+ );
241
+ return /* @__PURE__ */ jsx(
242
+ ListBoxItem,
243
+ {
244
+ ...rest,
245
+ id: id ?? textValue,
246
+ ref,
247
+ className: classNames?.item?.container,
248
+ style,
249
+ textValue,
250
+ children
251
+ }
252
+ );
253
+ });
254
+
255
+ export { Options, OptionsContext, OptionsItem, OptionsItemContext, OptionsList, OptionsListContext };
5
256
  //# sourceMappingURL=index.js.map
6
257
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
1
+ {"version":3,"sources":["../../../src/components/options/index.tsx"],"names":["Options"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type CollectionRenderer,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n ListStateContext,\n Popover,\n type PopoverRenderProps,\n Provider,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n UNSTABLE_CollectionRendererContext,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies, headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext } from '../icon';\nimport type { IconProps } from '../icon/types';\nimport {\n optionsClassNames,\n optionsItemStateVars,\n optionsStateVars,\n} from './options.css';\nimport type {\n OptionsItemProps,\n OptionsListProps,\n OptionsMapping,\n OptionsProps,\n} from './types';\n\nconst defaultMapping: OptionsMapping = {\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 OptionsContext =\n createContext<ContextValue<OptionsProps, HTMLElement>>(null);\n\nexport const Options = forwardRef(function Options(\n props: OptionsProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsContext);\n props = useDefaultProps(props, 'Options');\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(optionsClassNames, theme.Options, classNamesProp, {\n options: {\n container: theme.className, // required to consume global theme within Popover\n },\n }),\n [theme.className, theme.Options, classNamesProp],\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(optionsStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof OptionsListContext,\n ContextValue<OptionsListProps<object>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[OptionsListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.options?.options}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.options?.options, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.options?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const OptionsListContext =\n createContext<ContextValue<OptionsListProps<object>, HTMLDivElement>>(null);\n\ntype OptionsListContexts = [\n [\n typeof OptionsItemContext,\n ContextValue<OptionsItemProps<object>, 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 OptionsList = forwardRef(function OptionList<T extends object>(\n props: OptionsListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsListContext);\n props = useDefaultProps(props, 'OptionsList');\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(optionsClassNames, theme.Options, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const values = useMemo<OptionsListContexts>(\n () => [\n [OptionsItemContext, { classNames, size, mapping }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, size, mapping],\n );\n\n const style = useCallback(\n (renderProps: ListBoxRenderProps) =>\n inlineVars(optionsItemStateVars, { ...renderProps, size }),\n [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 }, [classNames?.list?.list, childrenProp, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n () => createCollectionRenderer(ListStateContext, values),\n [values],\n );\n\n return (\n <UNSTABLE_CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n </UNSTABLE_CollectionRendererContext.Provider>\n );\n});\n\nexport const OptionsItemContext =\n createContext<ContextValue<OptionsItemProps<object>, HTMLDivElement>>(null);\n\nexport const OptionsItem = forwardRef(function OptionItem<T extends object>(\n props: OptionsItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsItemContext);\n props = useDefaultProps(props, 'OptionsItem');\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(optionsClassNames, classNamesProp, theme.Options, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(optionsItemStateVars, {\n ...renderProps,\n size,\n hasDescription,\n }),\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 label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [IconContext, { classNames: classNames?.item?.icon }],\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?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => {\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 <ListBoxItem<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 </ListBoxItem>\n );\n});\n"]}
@@ -1,6 +1,24 @@
1
- export { Picker, PickerContext, PickerItem, PickerItemContext } from './picker.js';
2
- export { pickerClassNames, pickerContainers, pickerItemColorVars, pickerItemStateVars, pickerSpaceVars, pickerStateVars } from './picker.css.js';
3
- export { PickerClassNames, PickerItemProps, PickerItemRenderProps, PickerItemState, PickerProps, PickerState } from './types.js';
4
- import 'react-aria-components';
5
- import 'react';
1
+ import { PickerClassNames, PickerProps, PickerItemProps } from './types.js';
2
+ import * as react_aria_components from 'react-aria-components';
3
+ import { ContextValue } from 'react-aria-components';
4
+ import * as react from 'react';
6
5
  import 'type-fest';
6
+
7
+ declare const PickerContext: react.Context<ContextValue<PickerProps<unknown>, HTMLDivElement>>;
8
+ declare const PickerItemContext: react.Context<ContextValue<PickerItemProps<unknown>, HTMLDivElement>>;
9
+ /**
10
+ * Generic stylable picker that supports the functionality (sans drag and drop) of
11
+ * React Aria's ListBox: https://react-spectrum.adobe.com/react-aria/ListBox.html
12
+ *
13
+ * NOTE: The picker items does not support sections or separators
14
+ */
15
+ declare const Picker: <T extends object>(props: Omit<react_aria_components.ListBoxProps<T>, "className" | "style" | "dragAndDropHooks"> & {
16
+ classNames?: PickerClassNames;
17
+ } & {
18
+ columns?: number;
19
+ } & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
20
+ declare const PickerItem: <T extends object>(props: Omit<react_aria_components.ListBoxItemProps<T>, "className" | "style"> & {
21
+ classNames?: PickerClassNames;
22
+ } & react.RefAttributes<HTMLDivElement>) => react.ReactElement | null;
23
+
24
+ export { Picker, PickerContext, PickerItem, PickerItemContext };
@@ -1,6 +1,116 @@
1
1
  import '../../chunk-PZ5AY32C.js';
2
- export { Picker, PickerContext, PickerItem, PickerItemContext } from './picker.js';
3
- export { pickerClassNames, pickerContainers, pickerItemColorVars, pickerItemStateVars, pickerSpaceVars, pickerStateVars } from './picker.css.js';
4
- import './types.js';
2
+ import { createContext, forwardRef, useMemo, useCallback } from 'react';
3
+ import { Section, Collection, Provider, ListBox, ListBoxItem } from 'react-aria-components';
4
+ import { useContextProps } from '../../hooks/use-context-props/index.js';
5
+ import { useDefaultProps } from '../../hooks/use-defaults/index.js';
6
+ import { useTheme } from '../../hooks/use-theme/index.js';
7
+ import { inlineVars } from '../../utils/css/index.js';
8
+ import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
9
+ import { pickerClassNames, pickerStateVars, pickerItemStateVars } from './picker.css.js';
10
+ import { jsx } from 'react/jsx-runtime';
11
+
12
+ var PickerContext = createContext(null);
13
+ var PickerItemContext = createContext(null);
14
+ var Picker = forwardRef(function Picker2(props, ref) {
15
+ [props, ref] = useContextProps(props, ref, PickerContext);
16
+ props = useDefaultProps(props, "Picker");
17
+ const {
18
+ children: childrenProp,
19
+ classNames: classNamesProp,
20
+ columns,
21
+ items,
22
+ layout = "stack",
23
+ orientation = "horizontal",
24
+ selectionMode = "single",
25
+ "aria-label": ariaLabel,
26
+ "aria-labelledby": ariaLabelledBy,
27
+ ...rest
28
+ } = props;
29
+ const theme = useTheme();
30
+ const classNames = useMemo(
31
+ () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),
32
+ [theme.Picker, classNamesProp]
33
+ );
34
+ const values = useMemo(() => [[PickerItemContext, { classNames }]], [classNames]);
35
+ const style = useCallback(
36
+ ({ state, ...renderProps }) => inlineVars(pickerStateVars, {
37
+ ...renderProps,
38
+ columns,
39
+ layout,
40
+ orientation
41
+ }),
42
+ [columns, layout, orientation]
43
+ );
44
+ const children = useMemo(() => {
45
+ if (!(childrenProp || items)) {
46
+ return null;
47
+ }
48
+ return /* @__PURE__ */ jsx(
49
+ Section,
50
+ {
51
+ className: classNames?.list?.list,
52
+ "aria-label": ariaLabel,
53
+ "aria-labelledby": ariaLabelledBy,
54
+ children: typeof childrenProp === "function" ? /* @__PURE__ */ jsx(Collection, { items, children: childrenProp }) : childrenProp
55
+ }
56
+ );
57
+ }, [childrenProp, items, classNames?.list?.list, ariaLabel, ariaLabelledBy]);
58
+ return /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx(
59
+ ListBox,
60
+ {
61
+ ...rest,
62
+ ref,
63
+ className: classNames?.list?.container,
64
+ items,
65
+ layout,
66
+ orientation,
67
+ selectionMode,
68
+ style,
69
+ "aria-label": ariaLabel,
70
+ "aria-labelledby": ariaLabelledBy,
71
+ children
72
+ }
73
+ ) });
74
+ });
75
+ var PickerItem = forwardRef(function PickerItem2(props, ref) {
76
+ [props, ref] = useContextProps(props, ref, PickerItemContext);
77
+ const {
78
+ children: childrenProp,
79
+ id,
80
+ classNames: classNamesProp,
81
+ textValue = typeof childrenProp === "string" ? childrenProp : void 0,
82
+ ...rest
83
+ } = props;
84
+ const theme = useTheme();
85
+ const classNames = useMemo(
86
+ () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),
87
+ [theme.Picker, classNamesProp]
88
+ );
89
+ const style = useCallback(
90
+ (renderProps) => inlineVars(pickerItemStateVars, renderProps),
91
+ []
92
+ );
93
+ const children = useCallback(
94
+ (renderProps) => /* @__PURE__ */ jsx("div", { className: classNames?.item?.item, children: callRenderProps(childrenProp, {
95
+ ...renderProps,
96
+ defaultChildren: null
97
+ }) }),
98
+ [childrenProp, classNames?.item?.item]
99
+ );
100
+ return /* @__PURE__ */ jsx(
101
+ ListBoxItem,
102
+ {
103
+ ...rest,
104
+ ref,
105
+ id: id ?? textValue,
106
+ className: classNames?.item?.container,
107
+ style,
108
+ textValue,
109
+ children
110
+ }
111
+ );
112
+ });
113
+
114
+ export { Picker, PickerContext, PickerItem, PickerItemContext };
5
115
  //# sourceMappingURL=index.js.map
6
116
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
1
+ {"version":3,"sources":["../../../src/components/picker/index.tsx"],"names":["Picker","PickerItem"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n Provider,\n Section,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n pickerClassNames,\n pickerItemStateVars,\n pickerStateVars,\n} from './picker.css';\nimport type { PickerItemProps, PickerProps } from './types';\n\nexport const PickerContext =\n createContext<ContextValue<PickerProps<unknown>, HTMLDivElement>>(null);\n\nexport const PickerItemContext =\n createContext<ContextValue<PickerItemProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Generic stylable picker that supports the functionality (sans drag and drop) of\n * React Aria's ListBox: https://react-spectrum.adobe.com/react-aria/ListBox.html\n *\n * NOTE: The picker items does not support sections or separators\n */\nexport const Picker = forwardRef(function Picker<T extends object>(\n props: PickerProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerContext);\n\n props = useDefaultProps(props, 'Picker');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n columns,\n items,\n layout = 'stack',\n orientation = 'horizontal',\n selectionMode = 'single',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof PickerItemContext,\n ContextValue<PickerItemProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(() => [[PickerItemContext, { classNames }]], [classNames]);\n\n const style = useCallback(\n ({ state, ...renderProps }: ListBoxRenderProps) =>\n inlineVars(pickerStateVars, {\n ...renderProps,\n columns,\n layout,\n orientation,\n }),\n [columns, layout, orientation],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <Section\n className={classNames?.list?.list}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </Section>\n );\n }, [childrenProp, items, classNames?.list?.list, ariaLabel, ariaLabelledBy]);\n\n return (\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n layout={layout}\n orientation={orientation}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n );\n});\n\nexport const PickerItem = forwardRef(function PickerItem<T extends object>(\n props: PickerItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerItemContext);\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(pickerItemStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => (\n <div className={classNames?.item?.item}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.item?.item],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n ref={ref as ForwardedRef<T>}\n id={id ?? textValue}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
@@ -1,9 +1,8 @@
1
- export { Popover, PopoverContext } from './popover.js';
2
- export { popoverClassNames, popoverColorVars, popoverSpaceVars, popoverStateVars } from './popover.css.js';
3
- export { PopoverClassNames, PopoverProps, PopoverState } from './types.js';
4
- import 'react';
5
- import 'react-aria-components';
6
- import '../../types/react-aria.js';
1
+ import * as react from 'react';
2
+ import * as react_aria_components from 'react-aria-components';
3
+ import { ContextValue } from 'react-aria-components';
4
+ import { RenderPropsChildren } from '../../types/react-aria.js';
5
+ import { PopoverRenderProps, PopoverClassNames, PopoverMapping, PopoverProps } from './types.js';
7
6
  import '@react-stately/overlays';
8
7
  import 'type-fest';
9
8
  import '../../types/generic.js';
@@ -12,3 +11,12 @@ import '../button/types.js';
12
11
  import '../icon/types.js';
13
12
  import '../group/types.js';
14
13
  import '@react-types/shared';
14
+
15
+ declare const PopoverContext: react.Context<ContextValue<PopoverProps, HTMLElement>>;
16
+ declare const Popover: (props: Omit<react_aria_components.PopoverProps, "children" | "className" | "style"> & {
17
+ children?: RenderPropsChildren<PopoverRenderProps>;
18
+ classNames?: PopoverClassNames;
19
+ mapping?: Partial<PopoverMapping>;
20
+ } & react.RefAttributes<HTMLElement>) => react.ReactElement | null;
21
+
22
+ export { Popover, PopoverContext };
@@ -1,6 +1,143 @@
1
1
  import '../../chunk-PZ5AY32C.js';
2
- export { Popover, PopoverContext } from './popover.js';
3
- export { popoverClassNames, popoverColorVars, popoverSpaceVars, popoverStateVars } from './popover.css.js';
4
- import './types.js';
2
+ import { createContext, forwardRef, useMemo, useCallback } from 'react';
3
+ import { DEFAULT_SLOT, Provider, Dialog, Popover as Popover$1 } from 'react-aria-components';
4
+ import { useContextProps } from '../../hooks/use-context-props/index.js';
5
+ import { useDefaultProps } from '../../hooks/use-defaults/index.js';
6
+ import { useSlot } from '../../hooks/use-slot/index.js';
7
+ import { useTheme } from '../../hooks/use-theme/index.js';
8
+ import { headings } from '../../styles/typography.css.js';
9
+ import { inlineVars } from '../../utils/css/index.js';
10
+ import { mergeClassNames, callRenderProps } from '../../utils/props/index.js';
11
+ import { AriaHeadingContext } from '../aria/index.js';
12
+ import { ButtonContext } from '../button/index.js';
13
+ import { ElementContext } from '../element/index.js';
14
+ import { GroupContext } from '../group/index.js';
15
+ import { popoverClassNames, popoverStateVars } from './popover.css.js';
16
+ import { jsx } from 'react/jsx-runtime';
17
+
18
+ var defaultMapping = {
19
+ heading: headings.v4,
20
+ actions: {
21
+ context: ButtonContext,
22
+ orientation: "horizontal",
23
+ reverse: true
24
+ },
25
+ primary: {
26
+ size: "sm"
27
+ },
28
+ secondary: { size: "sm", variant: "bare" }
29
+ };
30
+ var PopoverContext = createContext(null);
31
+ var Popover = forwardRef(function Popover2(props, ref) {
32
+ [props, ref] = useContextProps(props, ref, PopoverContext);
33
+ props = useDefaultProps(props, "Popover");
34
+ const {
35
+ children: childrenProp,
36
+ classNames: classNamesProp,
37
+ mapping: mappingProp,
38
+ ...rest
39
+ } = props;
40
+ const theme = useTheme();
41
+ const mapping = useMemo(
42
+ () => ({ ...defaultMapping, ...mappingProp }),
43
+ [mappingProp]
44
+ );
45
+ const classNames = useMemo(
46
+ () => mergeClassNames(popoverClassNames, theme.Popover, classNamesProp, {
47
+ popover: {
48
+ container: theme.className
49
+ // required to consume global theme within Popover
50
+ }
51
+ }),
52
+ [theme.className, theme.Popover, classNamesProp]
53
+ );
54
+ const [headerRef, hasHeader] = useSlot();
55
+ const style = useCallback(
56
+ (renderProps) => inlineVars(popoverStateVars, {
57
+ ...theme.style,
58
+ // required to consume global styles within Popover
59
+ ...renderProps,
60
+ hasHeader
61
+ }),
62
+ [theme.style, hasHeader]
63
+ );
64
+ const values = useMemo(
65
+ () => [
66
+ [
67
+ ElementContext,
68
+ {
69
+ slots: {
70
+ [DEFAULT_SLOT]: {},
71
+ header: {
72
+ as: "header",
73
+ className: classNames?.header,
74
+ ref: headerRef,
75
+ values: [
76
+ [
77
+ AriaHeadingContext,
78
+ {
79
+ className: mapping.heading,
80
+ slot: "title"
81
+ }
82
+ ],
83
+ [GroupContext, null]
84
+ ]
85
+ },
86
+ content: { className: classNames?.content },
87
+ footer: {
88
+ as: "footer",
89
+ className: classNames?.footer,
90
+ values: [
91
+ [AriaHeadingContext, null],
92
+ [
93
+ GroupContext,
94
+ {
95
+ values: {
96
+ slots: {
97
+ [DEFAULT_SLOT]: mapping.primary ?? {},
98
+ secondary: mapping.secondary ?? {}
99
+ }
100
+ },
101
+ ...mapping.actions
102
+ }
103
+ ]
104
+ ]
105
+ }
106
+ }
107
+ }
108
+ ]
109
+ ],
110
+ [
111
+ classNames?.header,
112
+ classNames?.content,
113
+ classNames?.footer,
114
+ headerRef,
115
+ mapping.actions,
116
+ mapping.heading,
117
+ mapping.primary,
118
+ mapping.secondary
119
+ ]
120
+ );
121
+ const children = useCallback(
122
+ (renderProps) => /* @__PURE__ */ jsx(Provider, { values, children: /* @__PURE__ */ jsx(Dialog, { className: classNames?.popover?.popover, children: ({ close }) => callRenderProps(childrenProp, {
123
+ ...renderProps,
124
+ close,
125
+ defaultChildren: null
126
+ }) }) }),
127
+ [childrenProp, classNames?.popover?.popover, values]
128
+ );
129
+ return /* @__PURE__ */ jsx(
130
+ Popover$1,
131
+ {
132
+ ...rest,
133
+ ref,
134
+ className: classNames?.popover?.container,
135
+ style,
136
+ children
137
+ }
138
+ );
139
+ });
140
+
141
+ export { Popover, PopoverContext };
5
142
  //# sourceMappingURL=index.js.map
6
143
  //# sourceMappingURL=index.js.map