@charcoal-ui/react 6.0.0-rc.7 → 6.0.0-rc.9

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 (285) hide show
  1. package/dist/_lib/createDivComponent.cjs +20 -0
  2. package/dist/_lib/createDivComponent.cjs.map +1 -0
  3. package/dist/_lib/createDivComponent.js +19 -0
  4. package/dist/_lib/createDivComponent.js.map +1 -0
  5. package/dist/_lib/index.cjs +22 -0
  6. package/dist/_lib/index.cjs.map +1 -0
  7. package/dist/_lib/index.js +20 -0
  8. package/dist/_lib/index.js.map +1 -0
  9. package/dist/_lib/useClassNames.cjs +15 -0
  10. package/dist/_lib/useClassNames.cjs.map +1 -0
  11. package/dist/_lib/useClassNames.js +14 -0
  12. package/dist/_lib/useClassNames.js.map +1 -0
  13. package/dist/_lib/useForwardedRef.cjs +19 -0
  14. package/dist/_lib/useForwardedRef.cjs.map +1 -0
  15. package/dist/_lib/useForwardedRef.js +17 -0
  16. package/dist/_lib/useForwardedRef.js.map +1 -0
  17. package/dist/_lib/useIsomorphicLayoutEffect.cjs +13 -0
  18. package/dist/_lib/useIsomorphicLayoutEffect.cjs.map +1 -0
  19. package/dist/_lib/useIsomorphicLayoutEffect.js +12 -0
  20. package/dist/_lib/useIsomorphicLayoutEffect.js.map +1 -0
  21. package/dist/_virtual/_rolldown/runtime.cjs +30 -0
  22. package/dist/components/Button/index2.cjs +26 -0
  23. package/dist/components/Button/index2.cjs.map +1 -0
  24. package/dist/components/Button/index2.js +24 -0
  25. package/dist/components/Button/index2.js.map +1 -0
  26. package/dist/components/Carousel/CarouselItem.cjs +46 -0
  27. package/dist/components/Carousel/CarouselItem.cjs.map +1 -0
  28. package/dist/components/Carousel/CarouselItem.js +45 -0
  29. package/dist/components/Carousel/CarouselItem.js.map +1 -0
  30. package/dist/components/Carousel/carouselStore.cjs +38 -0
  31. package/dist/components/Carousel/carouselStore.cjs.map +1 -0
  32. package/dist/components/Carousel/carouselStore.js +37 -0
  33. package/dist/components/Carousel/carouselStore.js.map +1 -0
  34. package/dist/components/Carousel/index2.cjs +145 -0
  35. package/dist/components/Carousel/index2.cjs.map +1 -0
  36. package/dist/components/Carousel/index2.js +144 -0
  37. package/dist/components/Carousel/index2.js.map +1 -0
  38. package/dist/components/Carousel/intersectionObserver.cjs +46 -0
  39. package/dist/components/Carousel/intersectionObserver.cjs.map +1 -0
  40. package/dist/components/Carousel/intersectionObserver.js +45 -0
  41. package/dist/components/Carousel/intersectionObserver.js.map +1 -0
  42. package/dist/components/Carousel/resizeObserver.cjs +34 -0
  43. package/dist/components/Carousel/resizeObserver.cjs.map +1 -0
  44. package/dist/components/Carousel/resizeObserver.js +33 -0
  45. package/dist/components/Carousel/resizeObserver.js.map +1 -0
  46. package/dist/components/Carousel/store.cjs +24 -0
  47. package/dist/components/Carousel/store.cjs.map +1 -0
  48. package/dist/components/Carousel/store.js +23 -0
  49. package/dist/components/Carousel/store.js.map +1 -0
  50. package/dist/components/Carousel/useCarouselScroller.cjs +149 -0
  51. package/dist/components/Carousel/useCarouselScroller.cjs.map +1 -0
  52. package/dist/components/Carousel/useCarouselScroller.js +148 -0
  53. package/dist/components/Carousel/useCarouselScroller.js.map +1 -0
  54. package/dist/components/Checkbox/CheckboxInput/index2.cjs +29 -0
  55. package/dist/components/Checkbox/CheckboxInput/index2.cjs.map +1 -0
  56. package/dist/components/Checkbox/CheckboxInput/index2.js +28 -0
  57. package/dist/components/Checkbox/CheckboxInput/index2.js.map +1 -0
  58. package/dist/components/Checkbox/CheckboxWithLabel.cjs +23 -0
  59. package/dist/components/Checkbox/CheckboxWithLabel.cjs.map +1 -0
  60. package/dist/components/Checkbox/CheckboxWithLabel.js +21 -0
  61. package/dist/components/Checkbox/CheckboxWithLabel.js.map +1 -0
  62. package/dist/components/Checkbox/index2.cjs +34 -0
  63. package/dist/components/Checkbox/index2.cjs.map +1 -0
  64. package/dist/components/Checkbox/index2.js +33 -0
  65. package/dist/components/Checkbox/index2.js.map +1 -0
  66. package/dist/components/Clickable/index2.cjs +21 -0
  67. package/dist/components/Clickable/index2.cjs.map +1 -0
  68. package/dist/components/Clickable/index2.js +19 -0
  69. package/dist/components/Clickable/index2.js.map +1 -0
  70. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs +44 -0
  71. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs.map +1 -0
  72. package/dist/components/DropdownSelector/DropdownMenuItem/index2.js +43 -0
  73. package/dist/components/DropdownSelector/DropdownMenuItem/index2.js.map +1 -0
  74. package/dist/components/DropdownSelector/DropdownPopover.cjs +41 -0
  75. package/dist/components/DropdownSelector/DropdownPopover.cjs.map +1 -0
  76. package/dist/components/DropdownSelector/DropdownPopover.js +40 -0
  77. package/dist/components/DropdownSelector/DropdownPopover.js.map +1 -0
  78. package/dist/components/DropdownSelector/ListItem/index2.cjs +19 -0
  79. package/dist/components/DropdownSelector/ListItem/index2.cjs.map +1 -0
  80. package/dist/components/DropdownSelector/ListItem/index2.js +18 -0
  81. package/dist/components/DropdownSelector/ListItem/index2.js.map +1 -0
  82. package/dist/components/DropdownSelector/MenuItem/index.cjs +30 -0
  83. package/dist/components/DropdownSelector/MenuItem/index.cjs.map +1 -0
  84. package/dist/components/DropdownSelector/MenuItem/index.js +29 -0
  85. package/dist/components/DropdownSelector/MenuItem/index.js.map +1 -0
  86. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs +30 -0
  87. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs.map +1 -0
  88. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js +29 -0
  89. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js.map +1 -0
  90. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs +53 -0
  91. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs.map +1 -0
  92. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js +52 -0
  93. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js.map +1 -0
  94. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs +20 -0
  95. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs.map +1 -0
  96. package/dist/components/DropdownSelector/MenuItemGroup/index2.js +19 -0
  97. package/dist/components/DropdownSelector/MenuItemGroup/index2.js.map +1 -0
  98. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs +15 -0
  99. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs.map +1 -0
  100. package/dist/components/DropdownSelector/MenuList/MenuListContext.js +14 -0
  101. package/dist/components/DropdownSelector/MenuList/MenuListContext.js.map +1 -0
  102. package/dist/components/DropdownSelector/MenuList/index2.cjs +32 -0
  103. package/dist/components/DropdownSelector/MenuList/index2.cjs.map +1 -0
  104. package/dist/components/DropdownSelector/MenuList/index2.js +31 -0
  105. package/dist/components/DropdownSelector/MenuList/index2.js.map +1 -0
  106. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs +34 -0
  107. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs.map +1 -0
  108. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js +32 -0
  109. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js.map +1 -0
  110. package/dist/components/DropdownSelector/Popover/index2.cjs +71 -0
  111. package/dist/components/DropdownSelector/Popover/index2.cjs.map +1 -0
  112. package/dist/components/DropdownSelector/Popover/index2.js +70 -0
  113. package/dist/components/DropdownSelector/Popover/index2.js.map +1 -0
  114. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs +27 -0
  115. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs.map +1 -0
  116. package/dist/components/DropdownSelector/Popover/usePreventScroll.js +26 -0
  117. package/dist/components/DropdownSelector/Popover/usePreventScroll.js.map +1 -0
  118. package/dist/components/DropdownSelector/index2.cjs +113 -0
  119. package/dist/components/DropdownSelector/index2.cjs.map +1 -0
  120. package/dist/components/DropdownSelector/index2.js +111 -0
  121. package/dist/components/DropdownSelector/index2.js.map +1 -0
  122. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs +34 -0
  123. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs.map +1 -0
  124. package/dist/components/DropdownSelector/utils/findPreviewRecursive.js +32 -0
  125. package/dist/components/DropdownSelector/utils/findPreviewRecursive.js.map +1 -0
  126. package/dist/components/FieldLabel/index2.cjs +35 -0
  127. package/dist/components/FieldLabel/index2.cjs.map +1 -0
  128. package/dist/components/FieldLabel/index2.js +33 -0
  129. package/dist/components/FieldLabel/index2.js.map +1 -0
  130. package/dist/components/HintText/index2.cjs +25 -0
  131. package/dist/components/HintText/index2.cjs.map +1 -0
  132. package/dist/components/HintText/index2.js +24 -0
  133. package/dist/components/HintText/index2.js.map +1 -0
  134. package/dist/components/Icon/index.cjs +39 -0
  135. package/dist/components/Icon/index.cjs.map +1 -0
  136. package/dist/components/Icon/index.js +37 -0
  137. package/dist/components/Icon/index.js.map +1 -0
  138. package/dist/components/IconButton/index2.cjs +46 -0
  139. package/dist/components/IconButton/index2.cjs.map +1 -0
  140. package/dist/components/IconButton/index2.js +44 -0
  141. package/dist/components/IconButton/index2.js.map +1 -0
  142. package/dist/components/LoadingSpinner/index2.cjs +43 -0
  143. package/dist/components/LoadingSpinner/index2.cjs.map +1 -0
  144. package/dist/components/LoadingSpinner/index2.js +41 -0
  145. package/dist/components/LoadingSpinner/index2.js.map +1 -0
  146. package/dist/components/Modal/Dialog/index2.cjs +30 -0
  147. package/dist/components/Modal/Dialog/index2.cjs.map +1 -0
  148. package/dist/components/Modal/Dialog/index2.js +28 -0
  149. package/dist/components/Modal/Dialog/index2.js.map +1 -0
  150. package/dist/components/Modal/ModalBackgroundContext.cjs +14 -0
  151. package/dist/components/Modal/ModalBackgroundContext.cjs.map +1 -0
  152. package/dist/components/Modal/ModalBackgroundContext.js +12 -0
  153. package/dist/components/Modal/ModalBackgroundContext.js.map +1 -0
  154. package/dist/components/Modal/ModalPlumbing2.cjs +30 -0
  155. package/dist/components/Modal/ModalPlumbing2.cjs.map +1 -0
  156. package/dist/components/Modal/ModalPlumbing2.js +26 -0
  157. package/dist/components/Modal/ModalPlumbing2.js.map +1 -0
  158. package/dist/components/Modal/index2.cjs +121 -0
  159. package/dist/components/Modal/index2.cjs.map +1 -0
  160. package/dist/components/Modal/index2.js +118 -0
  161. package/dist/components/Modal/index2.js.map +1 -0
  162. package/dist/components/Modal/useCustomModalOverlay.cjs +48 -0
  163. package/dist/components/Modal/useCustomModalOverlay.cjs.map +1 -0
  164. package/dist/components/Modal/useCustomModalOverlay.js +45 -0
  165. package/dist/components/Modal/useCustomModalOverlay.js.map +1 -0
  166. package/dist/components/Modal/useTransitionPresence.cjs +57 -0
  167. package/dist/components/Modal/useTransitionPresence.cjs.map +1 -0
  168. package/dist/components/Modal/useTransitionPresence.js +56 -0
  169. package/dist/components/Modal/useTransitionPresence.js.map +1 -0
  170. package/dist/components/MultiSelect/context.cjs +19 -0
  171. package/dist/components/MultiSelect/context.cjs.map +1 -0
  172. package/dist/components/MultiSelect/context.js +18 -0
  173. package/dist/components/MultiSelect/context.js.map +1 -0
  174. package/dist/components/MultiSelect/index2.cjs +97 -0
  175. package/dist/components/MultiSelect/index2.cjs.map +1 -0
  176. package/dist/components/MultiSelect/index2.js +93 -0
  177. package/dist/components/MultiSelect/index2.js.map +1 -0
  178. package/dist/components/Pagination/PaginationContext.cjs +16 -0
  179. package/dist/components/Pagination/PaginationContext.cjs.map +1 -0
  180. package/dist/components/Pagination/PaginationContext.js +14 -0
  181. package/dist/components/Pagination/PaginationContext.js.map +1 -0
  182. package/dist/components/Pagination/helper.cjs +63 -0
  183. package/dist/components/Pagination/helper.cjs.map +1 -0
  184. package/dist/components/Pagination/helper.js +61 -0
  185. package/dist/components/Pagination/helper.js.map +1 -0
  186. package/dist/components/Pagination/index2.cjs +301 -0
  187. package/dist/components/Pagination/index2.cjs.map +1 -0
  188. package/dist/components/Pagination/index2.js +288 -0
  189. package/dist/components/Pagination/index2.js.map +1 -0
  190. package/dist/components/Radio/RadioGroup/index2.cjs +49 -0
  191. package/dist/components/Radio/RadioGroup/index2.cjs.map +1 -0
  192. package/dist/components/Radio/RadioGroup/index2.js +47 -0
  193. package/dist/components/Radio/RadioGroup/index2.js.map +1 -0
  194. package/dist/components/Radio/RadioGroupContext.cjs +20 -0
  195. package/dist/components/Radio/RadioGroupContext.cjs.map +1 -0
  196. package/dist/components/Radio/RadioGroupContext.js +18 -0
  197. package/dist/components/Radio/RadioGroupContext.js.map +1 -0
  198. package/dist/components/Radio/RadioInput/index2.cjs +27 -0
  199. package/dist/components/Radio/RadioInput/index2.cjs.map +1 -0
  200. package/dist/components/Radio/RadioInput/index2.js +26 -0
  201. package/dist/components/Radio/RadioInput/index2.js.map +1 -0
  202. package/dist/components/Radio/index2.cjs +42 -0
  203. package/dist/components/Radio/index2.cjs.map +1 -0
  204. package/dist/components/Radio/index2.js +39 -0
  205. package/dist/components/Radio/index2.js.map +1 -0
  206. package/dist/components/SegmentedControl/RadioGroupContext.cjs +24 -0
  207. package/dist/components/SegmentedControl/RadioGroupContext.cjs.map +1 -0
  208. package/dist/components/SegmentedControl/RadioGroupContext.js +21 -0
  209. package/dist/components/SegmentedControl/RadioGroupContext.js.map +1 -0
  210. package/dist/components/SegmentedControl/index2.cjs +72 -0
  211. package/dist/components/SegmentedControl/index2.cjs.map +1 -0
  212. package/dist/components/SegmentedControl/index2.js +70 -0
  213. package/dist/components/SegmentedControl/index2.js.map +1 -0
  214. package/dist/components/Switch/SwitchInput/index2.cjs +25 -0
  215. package/dist/components/Switch/SwitchInput/index2.cjs.map +1 -0
  216. package/dist/components/Switch/SwitchInput/index2.js +24 -0
  217. package/dist/components/Switch/SwitchInput/index2.js.map +1 -0
  218. package/dist/components/Switch/SwitchWithLabel.cjs +23 -0
  219. package/dist/components/Switch/SwitchWithLabel.cjs.map +1 -0
  220. package/dist/components/Switch/SwitchWithLabel.js +21 -0
  221. package/dist/components/Switch/SwitchWithLabel.js.map +1 -0
  222. package/dist/components/Switch/index2.cjs +37 -0
  223. package/dist/components/Switch/index2.cjs.map +1 -0
  224. package/dist/components/Switch/index2.js +36 -0
  225. package/dist/components/Switch/index2.js.map +1 -0
  226. package/dist/components/TagItem/index2.cjs +57 -0
  227. package/dist/components/TagItem/index2.cjs.map +1 -0
  228. package/dist/components/TagItem/index2.js +55 -0
  229. package/dist/components/TagItem/index2.js.map +1 -0
  230. package/dist/components/TextArea/index2.cjs +134 -0
  231. package/dist/components/TextArea/index2.cjs.map +1 -0
  232. package/dist/components/TextArea/index2.js +133 -0
  233. package/dist/components/TextArea/index2.js.map +1 -0
  234. package/dist/components/TextEllipsis/helper.cjs +31 -0
  235. package/dist/components/TextEllipsis/helper.cjs.map +1 -0
  236. package/dist/components/TextEllipsis/helper.js +30 -0
  237. package/dist/components/TextEllipsis/helper.js.map +1 -0
  238. package/dist/components/TextEllipsis/index2.cjs +119 -0
  239. package/dist/components/TextEllipsis/index2.cjs.map +1 -0
  240. package/dist/components/TextEllipsis/index2.js +114 -0
  241. package/dist/components/TextEllipsis/index2.js.map +1 -0
  242. package/dist/components/TextField/AssistiveText/index2.cjs +10 -0
  243. package/dist/components/TextField/AssistiveText/index2.cjs.map +1 -0
  244. package/dist/components/TextField/AssistiveText/index2.js +10 -0
  245. package/dist/components/TextField/AssistiveText/index2.js.map +1 -0
  246. package/dist/components/TextField/index2.cjs +101 -0
  247. package/dist/components/TextField/index2.cjs.map +1 -0
  248. package/dist/components/TextField/index2.js +100 -0
  249. package/dist/components/TextField/index2.js.map +1 -0
  250. package/dist/components/TextField/useFocusWithClick.cjs +23 -0
  251. package/dist/components/TextField/useFocusWithClick.cjs.map +1 -0
  252. package/dist/components/TextField/useFocusWithClick.js +22 -0
  253. package/dist/components/TextField/useFocusWithClick.js.map +1 -0
  254. package/dist/core/CharcoalProvider.cjs +16 -0
  255. package/dist/core/CharcoalProvider.cjs.map +1 -0
  256. package/dist/core/CharcoalProvider.js +14 -0
  257. package/dist/core/CharcoalProvider.js.map +1 -0
  258. package/dist/core/OverlayProvider.js +4 -0
  259. package/dist/core/SSRProvider.cjs +15 -0
  260. package/dist/core/SSRProvider.cjs.map +1 -0
  261. package/dist/core/SSRProvider.js +14 -0
  262. package/dist/core/SSRProvider.js.map +1 -0
  263. package/dist/core/SetThemeScript.cjs +45 -0
  264. package/dist/core/SetThemeScript.cjs.map +1 -0
  265. package/dist/core/SetThemeScript.js +43 -0
  266. package/dist/core/SetThemeScript.js.map +1 -0
  267. package/dist/core/themeHelper.cjs +154 -0
  268. package/dist/core/themeHelper.cjs.map +1 -0
  269. package/dist/core/themeHelper.js +143 -0
  270. package/dist/core/themeHelper.js.map +1 -0
  271. package/dist/index.cjs +81 -12
  272. package/dist/index.css +1536 -1530
  273. package/dist/index.js +31 -12
  274. package/dist/layered.css +1508 -1502
  275. package/dist/layered.css.map +1 -1
  276. package/package.json +5 -5
  277. package/src/__tests__/css-shorthand-safety.test.ts +150 -0
  278. package/src/components/Button/__snapshots__/index.css.snap +8 -3
  279. package/src/components/Button/index.css +8 -3
  280. package/src/components/LoadingSpinner/__snapshots__/index.css.snap +1 -2
  281. package/src/components/LoadingSpinner/index.css +1 -2
  282. package/src/components/Pagination/__snapshots__/index.css.snap +3 -1
  283. package/src/components/Pagination/index.css +3 -1
  284. package/dist/index.cjs.map +0 -1
  285. package/dist/index.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { createContext } from "react";
3
+
4
+ //#region src/components/DropdownSelector/MenuList/MenuListContext.ts
5
+ const MenuListContext = createContext({
6
+ root: void 0,
7
+ value: "",
8
+ propsArray: [],
9
+ setValue: (_v) => {}
10
+ });
11
+
12
+ //#endregion
13
+ export { MenuListContext };
14
+ //# sourceMappingURL=MenuListContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuListContext.js","names":["RefObject","createContext","DropdownMenuItemProps","MenuListContextType","root","HTMLUListElement","value","propsArray","setValue","v","MenuListContext","undefined","_v"],"sources":["../../../../src/components/DropdownSelector/MenuList/MenuListContext.ts"],"sourcesContent":["import { RefObject, createContext } from 'react'\nimport { DropdownMenuItemProps } from '../DropdownMenuItem'\n\ntype MenuListContextType = {\n root?: RefObject<HTMLUListElement | null>\n value?: string\n propsArray?: DropdownMenuItemProps[]\n setValue: (v: string) => void\n}\n\nexport const MenuListContext = createContext<MenuListContextType>({\n root: undefined,\n value: '',\n propsArray: [],\n setValue: (_v: string) => {\n // empty\n },\n})\n"],"mappings":";;;;AAUA,MAAaU,kBAAkBT,cAAmC;CAChEG,MAAMO;CACNL,OAAO;CACPC,YAAY,EAAE;CACdC,WAAWI,OAAe;CAG3B,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
3
+ require('./index.cjs');
4
+ const require_MenuListContext = require('./MenuListContext.cjs');
5
+ const require_getValuesRecursive = require('./internals/getValuesRecursive.cjs');
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+
9
+ //#region src/components/DropdownSelector/MenuList/index.tsx
10
+ function MenuList(props) {
11
+ const root = (0, react.useRef)(null);
12
+ const propsArray = (0, react.useMemo)(() => require_getValuesRecursive.getValuesRecursive(props.children), [props.children]);
13
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
14
+ className: "charcoal-menu-list",
15
+ ref: root,
16
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuListContext.MenuListContext.Provider, {
17
+ value: {
18
+ value: props.value ?? "",
19
+ root,
20
+ propsArray,
21
+ setValue: (v) => {
22
+ props.onChange?.(v);
23
+ }
24
+ },
25
+ children: props.children
26
+ })
27
+ });
28
+ }
29
+
30
+ //#endregion
31
+ exports.default = MenuList;
32
+ //# sourceMappingURL=index2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.cjs","names":["useMemo","useRef","MenuListContext","getValuesRecursive","MenuItem","Divider","MenuItemGroup","MenuListChild","React","ReactElement","MenuListChildren","MenuListProps","children","value","onChange","v","MenuList","props","root","propsArray","setValue"],"sources":["../../../../src/components/DropdownSelector/MenuList/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { useMemo, useRef } from 'react'\nimport { MenuListContext } from './MenuListContext'\nimport { getValuesRecursive } from './internals/getValuesRecursive'\nimport MenuItem from '../MenuItem'\nimport { Divider } from '../Divider'\nimport MenuItemGroup from '../MenuItemGroup'\n\ntype MenuListChild = React.ReactElement<\n typeof MenuItem | typeof MenuItemGroup | typeof Divider\n>\n\nexport type MenuListChildren = MenuListChild | MenuListChild[]\n\nexport type MenuListProps = {\n children: MenuListChildren\n value?: string\n onChange?: (v: string) => void\n}\n\nexport default function MenuList(props: MenuListProps) {\n const root = useRef(null)\n const propsArray = useMemo(\n () => getValuesRecursive(props.children),\n [props.children],\n )\n\n return (\n <ul className=\"charcoal-menu-list\" ref={root}>\n <MenuListContext.Provider\n value={{\n value: props.value ?? '',\n root,\n propsArray,\n setValue: (v) => {\n props.onChange?.(v)\n },\n }}\n >\n {props.children}\n </MenuListContext.Provider>\n </ul>\n )\n}\n"],"mappings":";;;;;;;;;AAqBA,SAAwBgB,SAASC,OAAsB;CACrD,MAAMC,yBAAc,KAAK;CACzB,MAAMC,sCACEhB,8CAAmBc,MAAML,SAAS,EACxC,CAACK,MAAML,SACT,CAAC;CAED,OACE,2CAAC,MAAD;EAAI,WAAU;EAAqB,KAAKM;YACtC,2CAAC,wCAAgB,UAAjB;GACE,OAAO;IACLL,OAAOI,MAAMJ,SAAS;IACtBK;IACAC;IACAC,WAAWL,MAAM;KACfE,MAAMH,WAAWC,EAAE;;IAEtB;aAEAE,MAAML;GACiB;EACvB"}
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ /* empty css */
3
+ import { MenuListContext } from "./MenuListContext.js";
4
+ import { getValuesRecursive } from "./internals/getValuesRecursive.js";
5
+ import { useMemo, useRef } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+
8
+ //#region src/components/DropdownSelector/MenuList/index.tsx
9
+ function MenuList(props) {
10
+ const root = useRef(null);
11
+ const propsArray = useMemo(() => getValuesRecursive(props.children), [props.children]);
12
+ return /* @__PURE__ */ jsx("ul", {
13
+ className: "charcoal-menu-list",
14
+ ref: root,
15
+ children: /* @__PURE__ */ jsx(MenuListContext.Provider, {
16
+ value: {
17
+ value: props.value ?? "",
18
+ root,
19
+ propsArray,
20
+ setValue: (v) => {
21
+ props.onChange?.(v);
22
+ }
23
+ },
24
+ children: props.children
25
+ })
26
+ });
27
+ }
28
+
29
+ //#endregion
30
+ export { MenuList as default };
31
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","names":["useMemo","useRef","MenuListContext","getValuesRecursive","MenuItem","Divider","MenuItemGroup","MenuListChild","React","ReactElement","MenuListChildren","MenuListProps","children","value","onChange","v","MenuList","props","root","propsArray","setValue"],"sources":["../../../../src/components/DropdownSelector/MenuList/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { useMemo, useRef } from 'react'\nimport { MenuListContext } from './MenuListContext'\nimport { getValuesRecursive } from './internals/getValuesRecursive'\nimport MenuItem from '../MenuItem'\nimport { Divider } from '../Divider'\nimport MenuItemGroup from '../MenuItemGroup'\n\ntype MenuListChild = React.ReactElement<\n typeof MenuItem | typeof MenuItemGroup | typeof Divider\n>\n\nexport type MenuListChildren = MenuListChild | MenuListChild[]\n\nexport type MenuListProps = {\n children: MenuListChildren\n value?: string\n onChange?: (v: string) => void\n}\n\nexport default function MenuList(props: MenuListProps) {\n const root = useRef(null)\n const propsArray = useMemo(\n () => getValuesRecursive(props.children),\n [props.children],\n )\n\n return (\n <ul className=\"charcoal-menu-list\" ref={root}>\n <MenuListContext.Provider\n value={{\n value: props.value ?? '',\n root,\n propsArray,\n setValue: (v) => {\n props.onChange?.(v)\n },\n }}\n >\n {props.children}\n </MenuListContext.Provider>\n </ul>\n )\n}\n"],"mappings":";;;;;;;;AAqBA,SAAwBgB,SAASC,OAAsB;CACrD,MAAMC,OAAOjB,OAAO,KAAK;CACzB,MAAMkB,aAAanB,cACXG,mBAAmBc,MAAML,SAAS,EACxC,CAACK,MAAML,SACT,CAAC;CAED,OACE,oBAAC,MAAD;EAAI,WAAU;EAAqB,KAAKM;YACtC,oBAAC,gBAAgB,UAAjB;GACE,OAAO;IACLL,OAAOI,MAAMJ,SAAS;IACtBK;IACAC;IACAC,WAAWL,MAAM;KACfE,MAAMH,WAAWC,EAAE;;IAEtB;aAEAE,MAAML;GACiB;EACvB"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ const require_runtime = require('../../../../_virtual/_rolldown/runtime.cjs');
3
+ let react = require("react");
4
+ react = require_runtime.__toESM(react);
5
+
6
+ //#region src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx
7
+ /**
8
+ * valueというpropsを持つ子要素の値を再起的に探索して配列にする
9
+ *
10
+ * @param children
11
+ * @param value
12
+ * @param values
13
+ * @returns
14
+ */
15
+ function getValuesRecursive(children) {
16
+ const childArray = react.Children.toArray(children);
17
+ const propsArray = [];
18
+ for (let i = 0; i < childArray.length; i++) {
19
+ const child = childArray[i];
20
+ if (react.isValidElement(child)) {
21
+ const props = child.props;
22
+ if ("value" in props && typeof props.value === "string") propsArray.push({
23
+ disabled: props.disabled,
24
+ value: props.value
25
+ });
26
+ if ("children" in props && props.children) propsArray.push(...getValuesRecursive(props.children));
27
+ }
28
+ }
29
+ return propsArray;
30
+ }
31
+
32
+ //#endregion
33
+ exports.getValuesRecursive = getValuesRecursive;
34
+ //# sourceMappingURL=getValuesRecursive.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getValuesRecursive.cjs","names":["React","MenuItem","MenuListChildren","MenuItemGroup","DropdownMenuItemProps","getValuesRecursive","children","childArray","Children","toArray","propsArray","i","length","child","isValidElement","props","value","disabled","ReactElement","push"],"sources":["../../../../../src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx"],"sourcesContent":["import * as React from 'react'\nimport MenuItem from '../../MenuItem'\nimport { MenuListChildren } from '..'\nimport MenuItemGroup from '../../MenuItemGroup'\nimport { DropdownMenuItemProps } from '../../DropdownMenuItem'\n\n/**\n * valueというpropsを持つ子要素の値を再起的に探索して配列にする\n *\n * @param children\n * @param value\n * @param values\n * @returns\n */\nexport function getValuesRecursive(children: MenuListChildren) {\n const childArray = React.Children.toArray(children)\n const propsArray: DropdownMenuItemProps[] = []\n for (let i = 0; i < childArray.length; i++) {\n const child = childArray[i]\n if (React.isValidElement(child)) {\n const props = child.props as {\n value?: string\n disabled?: boolean\n children?: React.ReactElement<typeof MenuItem | typeof MenuItemGroup>[]\n }\n if ('value' in props && typeof props.value === 'string') {\n propsArray.push({\n disabled: props.disabled,\n value: props.value,\n })\n }\n if ('children' in props && props.children) {\n propsArray.push(...getValuesRecursive(props.children))\n }\n }\n }\n return propsArray\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,SAAgBK,mBAAmBC,UAA4B;CAC7D,MAAMC,aAAaP,MAAMQ,SAASC,QAAQH,SAAS;CACnD,MAAMI,aAAsC,EAAE;CAC9C,KAAK,IAAIC,IAAI,GAAGA,IAAIJ,WAAWK,QAAQD,KAAK;EAC1C,MAAME,QAAQN,WAAWI;EACzB,IAAIX,MAAMc,eAAeD,MAAM,EAAE;GAC/B,MAAME,QAAQF,MAAME;GAKpB,IAAI,WAAWA,SAAS,OAAOA,MAAMC,UAAU,UAC7CN,WAAWS,KAAK;IACdF,UAAUF,MAAME;IAChBD,OAAOD,MAAMC;IACd,CAAC;GAEJ,IAAI,cAAcD,SAASA,MAAMT,UAC/BI,WAAWS,KAAK,GAAGd,mBAAmBU,MAAMT,SAAS,CAAC;;;CAI5D,OAAOI"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import * as React$1 from "react";
3
+
4
+ //#region src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx
5
+ /**
6
+ * valueというpropsを持つ子要素の値を再起的に探索して配列にする
7
+ *
8
+ * @param children
9
+ * @param value
10
+ * @param values
11
+ * @returns
12
+ */
13
+ function getValuesRecursive(children) {
14
+ const childArray = React$1.Children.toArray(children);
15
+ const propsArray = [];
16
+ for (let i = 0; i < childArray.length; i++) {
17
+ const child = childArray[i];
18
+ if (React$1.isValidElement(child)) {
19
+ const props = child.props;
20
+ if ("value" in props && typeof props.value === "string") propsArray.push({
21
+ disabled: props.disabled,
22
+ value: props.value
23
+ });
24
+ if ("children" in props && props.children) propsArray.push(...getValuesRecursive(props.children));
25
+ }
26
+ }
27
+ return propsArray;
28
+ }
29
+
30
+ //#endregion
31
+ export { getValuesRecursive };
32
+ //# sourceMappingURL=getValuesRecursive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getValuesRecursive.js","names":["React","MenuItem","MenuListChildren","MenuItemGroup","DropdownMenuItemProps","getValuesRecursive","children","childArray","Children","toArray","propsArray","i","length","child","isValidElement","props","value","disabled","ReactElement","push"],"sources":["../../../../../src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx"],"sourcesContent":["import * as React from 'react'\nimport MenuItem from '../../MenuItem'\nimport { MenuListChildren } from '..'\nimport MenuItemGroup from '../../MenuItemGroup'\nimport { DropdownMenuItemProps } from '../../DropdownMenuItem'\n\n/**\n * valueというpropsを持つ子要素の値を再起的に探索して配列にする\n *\n * @param children\n * @param value\n * @param values\n * @returns\n */\nexport function getValuesRecursive(children: MenuListChildren) {\n const childArray = React.Children.toArray(children)\n const propsArray: DropdownMenuItemProps[] = []\n for (let i = 0; i < childArray.length; i++) {\n const child = childArray[i]\n if (React.isValidElement(child)) {\n const props = child.props as {\n value?: string\n disabled?: boolean\n children?: React.ReactElement<typeof MenuItem | typeof MenuItemGroup>[]\n }\n if ('value' in props && typeof props.value === 'string') {\n propsArray.push({\n disabled: props.disabled,\n value: props.value,\n })\n }\n if ('children' in props && props.children) {\n propsArray.push(...getValuesRecursive(props.children))\n }\n }\n }\n return propsArray\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgBK,mBAAmBC,UAA4B;CAC7D,MAAMC,aAAaP,QAAMQ,SAASC,QAAQH,SAAS;CACnD,MAAMI,aAAsC,EAAE;CAC9C,KAAK,IAAIC,IAAI,GAAGA,IAAIJ,WAAWK,QAAQD,KAAK;EAC1C,MAAME,QAAQN,WAAWI;EACzB,IAAIX,QAAMc,eAAeD,MAAM,EAAE;GAC/B,MAAME,QAAQF,MAAME;GAKpB,IAAI,WAAWA,SAAS,OAAOA,MAAMC,UAAU,UAC7CN,WAAWS,KAAK;IACdF,UAAUF,MAAME;IAChBD,OAAOD,MAAMC;IACd,CAAC;GAEJ,IAAI,cAAcD,SAASA,MAAMT,UAC/BI,WAAWS,KAAK,GAAGd,mBAAmBU,MAAMT,SAAS,CAAC;;;CAI5D,OAAOI"}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
3
+ const require_ModalBackgroundContext = require('../../Modal/ModalBackgroundContext.cjs');
4
+ const require_usePreventScroll = require('./usePreventScroll.cjs');
5
+ require('./index.cjs');
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let react_aria_Overlay = require("react-aria/Overlay");
9
+ let react_aria_usePopover = require("react-aria/usePopover");
10
+
11
+ //#region src/components/DropdownSelector/Popover/index.tsx
12
+ const _empty = () => null;
13
+ /**
14
+ * 画面の全面に動的に開くことができるコンテナ要素
15
+ * 外の要素をクリックしたり、内部からフォーカスを移動した場合に自動的に閉じる
16
+ *
17
+ * triggerRefの付近に画面内に収まるように表示される
18
+ */
19
+ function Popover(props) {
20
+ const defaultPopoverRef = (0, react.useRef)(null);
21
+ const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
22
+ const { popoverProps, underlayProps } = (0, react_aria_usePopover.usePopover)({
23
+ triggerRef: props.triggerRef,
24
+ popoverRef: finalPopoverRef,
25
+ containerPadding: 16
26
+ }, {
27
+ close: props.onClose,
28
+ isOpen: props.isOpen,
29
+ open: _empty,
30
+ setOpen: _empty,
31
+ toggle: _empty
32
+ });
33
+ require_usePreventScroll.usePreventScroll((0, react.useContext)(require_ModalBackgroundContext.ModalBackgroundContext), props.isOpen);
34
+ if (!props.isOpen) return null;
35
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_aria_Overlay.Overlay, {
36
+ portalContainer: document.body,
37
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
38
+ ...underlayProps,
39
+ ...props.inertWorkaround ? {
40
+ "data-react-aria-top-layer": true,
41
+ onClick: props.onClose
42
+ } : {},
43
+ style: {
44
+ position: "fixed",
45
+ zIndex: typeof popoverProps.style?.zIndex === "number" ? popoverProps.style.zIndex - 1 : 99999,
46
+ inset: 0
47
+ }
48
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
49
+ ...popoverProps,
50
+ ref: finalPopoverRef,
51
+ className: "charcoal-popover",
52
+ children: [
53
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_Overlay.DismissButton, { onDismiss: () => props.onClose() }),
54
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
55
+ tabIndex: 0,
56
+ onFocus: props.onClose
57
+ }),
58
+ props.children,
59
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
60
+ tabIndex: 0,
61
+ onFocus: props.onClose
62
+ }),
63
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_Overlay.DismissButton, { onDismiss: () => props.onClose() })
64
+ ]
65
+ })]
66
+ });
67
+ }
68
+
69
+ //#endregion
70
+ exports.default = Popover;
71
+ //# sourceMappingURL=index2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.cjs","names":["RefObject","useContext","useRef","ReactNode","ModalBackgroundContext","usePreventScroll","DismissButton","Overlay","usePopover","PopoverProps","isOpen","onClose","children","triggerRef","Element","popoverRef","HTMLDivElement","inertWorkaround","_empty","Popover","props","defaultPopoverRef","finalPopoverRef","undefined","popoverProps","underlayProps","containerPadding","close","open","setOpen","toggle","modalBackground","document","body","onClick","position","zIndex","style","inset"],"sources":["../../../../src/components/DropdownSelector/Popover/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { RefObject, useContext, useRef, ReactNode } from 'react'\nimport { ModalBackgroundContext } from '../../Modal/ModalBackgroundContext'\nimport { usePreventScroll } from './usePreventScroll'\nimport { DismissButton, Overlay } from 'react-aria/Overlay'\nimport { usePopover } from 'react-aria/usePopover'\n\nexport type PopoverProps = {\n isOpen: boolean\n onClose: () => void\n children: ReactNode\n triggerRef: RefObject<Element | null>\n popoverRef?: RefObject<HTMLDivElement | null>\n /**\n * A tmp workaround for react-aria above 3.27.3 setting overlay element to inert and causing background to be clickable.\n * This may become default at next major.\n * https://github.com/adobe/react-spectrum/pull/8796\n * https://github.com/adobe/react-spectrum/issues/8784\n *\n * @default false\n */\n inertWorkaround?: boolean\n}\n\nconst _empty = () => null\n\n/**\n * 画面の全面に動的に開くことができるコンテナ要素\n * 外の要素をクリックしたり、内部からフォーカスを移動した場合に自動的に閉じる\n *\n * triggerRefの付近に画面内に収まるように表示される\n */\nexport default function Popover(props: PopoverProps) {\n const defaultPopoverRef = useRef<HTMLDivElement>(null)\n const finalPopoverRef =\n props.popoverRef === undefined ? defaultPopoverRef : props.popoverRef\n const { popoverProps, underlayProps } = usePopover(\n {\n triggerRef: props.triggerRef,\n popoverRef: finalPopoverRef,\n containerPadding: 16,\n },\n {\n close: props.onClose,\n isOpen: props.isOpen,\n // never used\n open: _empty,\n setOpen: _empty,\n toggle: _empty,\n },\n )\n\n const modalBackground = useContext(ModalBackgroundContext)\n usePreventScroll(modalBackground, props.isOpen)\n\n if (!props.isOpen) return null\n\n return (\n <Overlay portalContainer={document.body}>\n <div\n {...underlayProps}\n // https://github.com/adobe/react-spectrum/issues/8784#issuecomment-3234771154\n {...(props.inertWorkaround\n ? { 'data-react-aria-top-layer': true, onClick: props.onClose }\n : {})}\n style={{\n position: 'fixed',\n zIndex:\n typeof popoverProps.style?.zIndex === 'number'\n ? popoverProps.style.zIndex - 1\n : 99999,\n inset: 0,\n }}\n />\n {/* @ts-expect-error react types we use does not support react 19 types yet */}\n <div {...popoverProps} ref={finalPopoverRef} className=\"charcoal-popover\">\n <DismissButton onDismiss={() => props.onClose()} />\n <div tabIndex={0} onFocus={props.onClose} />\n {props.children}\n <div tabIndex={0} onFocus={props.onClose} />\n <DismissButton onDismiss={() => props.onClose()} />\n </div>\n </Overlay>\n )\n}\n"],"mappings":";;;;;;;;;;;AAyBA,MAAMkB,eAAe;;;;;;;AAQrB,SAAwBC,QAAQC,OAAqB;CACnD,MAAMC,sCAA2C,KAAK;CACtD,MAAMC,kBACJF,MAAML,eAAeQ,SAAYF,oBAAoBD,MAAML;CAC7D,MAAM,EAAES,cAAcC,wDACpB;EACEZ,YAAYO,MAAMP;EAClBE,YAAYO;EACZI,kBAAkB;EACnB,EACD;EACEC,OAAOP,MAAMT;EACbD,QAAQU,MAAMV;EAEdkB,MAAMV;EACNW,SAASX;EACTY,QAAQZ;EAEZ,CAAC;CAGDb,gEADmCD,sDACH,EAAEgB,MAAMV,OAAO;CAE/C,IAAI,CAACU,MAAMV,QAAQ,OAAO;CAE1B,OACE,4CAAC,4BAAD;EAAS,iBAAiBsB,SAASC;YAAnC,CACE,2CAAC,OAAD;GACE,GAAIR;GAEJ,GAAKL,MAAMH,kBACP;IAAE,6BAA6B;IAAMiB,SAASd,MAAMT;IAAS,GAC7D,EAAG;GACP,OAAO;IACLwB,UAAU;IACVC,QACE,OAAOZ,aAAaa,OAAOD,WAAW,WAClCZ,aAAaa,MAAMD,SAAS,IAC5B;IACNE,OAAO;IACR;GAAC,GAGJ,4CAAC,OAAD;GAAK,GAAId;GAAc,KAAKF;GAAiB,WAAU;aAAvD;IACE,2CAAC,kCAAD,EAAe,iBAAiBF,MAAMT,SAAS,EAAC;IAChD,2CAAC,OAAD;KAAK,UAAU;KAAG,SAASS,MAAMT;KAAQ;IACxCS,MAAMR;IACP,2CAAC,OAAD;KAAK,UAAU;KAAG,SAASQ,MAAMT;KAAQ;IACzC,2CAAC,kCAAD,EAAe,iBAAiBS,MAAMT,SAAS,EAAC;IAC7C;KACG"}
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { ModalBackgroundContext } from "../../Modal/ModalBackgroundContext.js";
3
+ import { usePreventScroll } from "./usePreventScroll.js";
4
+ /* empty css */
5
+ import { useContext, useRef } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { DismissButton, Overlay } from "react-aria/Overlay";
8
+ import { usePopover } from "react-aria/usePopover";
9
+
10
+ //#region src/components/DropdownSelector/Popover/index.tsx
11
+ const _empty = () => null;
12
+ /**
13
+ * 画面の全面に動的に開くことができるコンテナ要素
14
+ * 外の要素をクリックしたり、内部からフォーカスを移動した場合に自動的に閉じる
15
+ *
16
+ * triggerRefの付近に画面内に収まるように表示される
17
+ */
18
+ function Popover(props) {
19
+ const defaultPopoverRef = useRef(null);
20
+ const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
21
+ const { popoverProps, underlayProps } = usePopover({
22
+ triggerRef: props.triggerRef,
23
+ popoverRef: finalPopoverRef,
24
+ containerPadding: 16
25
+ }, {
26
+ close: props.onClose,
27
+ isOpen: props.isOpen,
28
+ open: _empty,
29
+ setOpen: _empty,
30
+ toggle: _empty
31
+ });
32
+ usePreventScroll(useContext(ModalBackgroundContext), props.isOpen);
33
+ if (!props.isOpen) return null;
34
+ return /* @__PURE__ */ jsxs(Overlay, {
35
+ portalContainer: document.body,
36
+ children: [/* @__PURE__ */ jsx("div", {
37
+ ...underlayProps,
38
+ ...props.inertWorkaround ? {
39
+ "data-react-aria-top-layer": true,
40
+ onClick: props.onClose
41
+ } : {},
42
+ style: {
43
+ position: "fixed",
44
+ zIndex: typeof popoverProps.style?.zIndex === "number" ? popoverProps.style.zIndex - 1 : 99999,
45
+ inset: 0
46
+ }
47
+ }), /* @__PURE__ */ jsxs("div", {
48
+ ...popoverProps,
49
+ ref: finalPopoverRef,
50
+ className: "charcoal-popover",
51
+ children: [
52
+ /* @__PURE__ */ jsx(DismissButton, { onDismiss: () => props.onClose() }),
53
+ /* @__PURE__ */ jsx("div", {
54
+ tabIndex: 0,
55
+ onFocus: props.onClose
56
+ }),
57
+ props.children,
58
+ /* @__PURE__ */ jsx("div", {
59
+ tabIndex: 0,
60
+ onFocus: props.onClose
61
+ }),
62
+ /* @__PURE__ */ jsx(DismissButton, { onDismiss: () => props.onClose() })
63
+ ]
64
+ })]
65
+ });
66
+ }
67
+
68
+ //#endregion
69
+ export { Popover as default };
70
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","names":["RefObject","useContext","useRef","ReactNode","ModalBackgroundContext","usePreventScroll","DismissButton","Overlay","usePopover","PopoverProps","isOpen","onClose","children","triggerRef","Element","popoverRef","HTMLDivElement","inertWorkaround","_empty","Popover","props","defaultPopoverRef","finalPopoverRef","undefined","popoverProps","underlayProps","containerPadding","close","open","setOpen","toggle","modalBackground","document","body","onClick","position","zIndex","style","inset"],"sources":["../../../../src/components/DropdownSelector/Popover/index.tsx"],"sourcesContent":["import './index.css'\n\nimport { RefObject, useContext, useRef, ReactNode } from 'react'\nimport { ModalBackgroundContext } from '../../Modal/ModalBackgroundContext'\nimport { usePreventScroll } from './usePreventScroll'\nimport { DismissButton, Overlay } from 'react-aria/Overlay'\nimport { usePopover } from 'react-aria/usePopover'\n\nexport type PopoverProps = {\n isOpen: boolean\n onClose: () => void\n children: ReactNode\n triggerRef: RefObject<Element | null>\n popoverRef?: RefObject<HTMLDivElement | null>\n /**\n * A tmp workaround for react-aria above 3.27.3 setting overlay element to inert and causing background to be clickable.\n * This may become default at next major.\n * https://github.com/adobe/react-spectrum/pull/8796\n * https://github.com/adobe/react-spectrum/issues/8784\n *\n * @default false\n */\n inertWorkaround?: boolean\n}\n\nconst _empty = () => null\n\n/**\n * 画面の全面に動的に開くことができるコンテナ要素\n * 外の要素をクリックしたり、内部からフォーカスを移動した場合に自動的に閉じる\n *\n * triggerRefの付近に画面内に収まるように表示される\n */\nexport default function Popover(props: PopoverProps) {\n const defaultPopoverRef = useRef<HTMLDivElement>(null)\n const finalPopoverRef =\n props.popoverRef === undefined ? defaultPopoverRef : props.popoverRef\n const { popoverProps, underlayProps } = usePopover(\n {\n triggerRef: props.triggerRef,\n popoverRef: finalPopoverRef,\n containerPadding: 16,\n },\n {\n close: props.onClose,\n isOpen: props.isOpen,\n // never used\n open: _empty,\n setOpen: _empty,\n toggle: _empty,\n },\n )\n\n const modalBackground = useContext(ModalBackgroundContext)\n usePreventScroll(modalBackground, props.isOpen)\n\n if (!props.isOpen) return null\n\n return (\n <Overlay portalContainer={document.body}>\n <div\n {...underlayProps}\n // https://github.com/adobe/react-spectrum/issues/8784#issuecomment-3234771154\n {...(props.inertWorkaround\n ? { 'data-react-aria-top-layer': true, onClick: props.onClose }\n : {})}\n style={{\n position: 'fixed',\n zIndex:\n typeof popoverProps.style?.zIndex === 'number'\n ? popoverProps.style.zIndex - 1\n : 99999,\n inset: 0,\n }}\n />\n {/* @ts-expect-error react types we use does not support react 19 types yet */}\n <div {...popoverProps} ref={finalPopoverRef} className=\"charcoal-popover\">\n <DismissButton onDismiss={() => props.onClose()} />\n <div tabIndex={0} onFocus={props.onClose} />\n {props.children}\n <div tabIndex={0} onFocus={props.onClose} />\n <DismissButton onDismiss={() => props.onClose()} />\n </div>\n </Overlay>\n )\n}\n"],"mappings":";;;;;;;;;;AAyBA,MAAMkB,eAAe;;;;;;;AAQrB,SAAwBC,QAAQC,OAAqB;CACnD,MAAMC,oBAAoBnB,OAAuB,KAAK;CACtD,MAAMoB,kBACJF,MAAML,eAAeQ,SAAYF,oBAAoBD,MAAML;CAC7D,MAAM,EAAES,cAAcC,kBAAkBjB,WACtC;EACEK,YAAYO,MAAMP;EAClBE,YAAYO;EACZI,kBAAkB;EACnB,EACD;EACEC,OAAOP,MAAMT;EACbD,QAAQU,MAAMV;EAEdkB,MAAMV;EACNW,SAASX;EACTY,QAAQZ;EAEZ,CAAC;CAGDb,iBADwBJ,WAAWG,uBACH,EAAEgB,MAAMV,OAAO;CAE/C,IAAI,CAACU,MAAMV,QAAQ,OAAO;CAE1B,OACE,qBAAC,SAAD;EAAS,iBAAiBsB,SAASC;YAAnC,CACE,oBAAC,OAAD;GACE,GAAIR;GAEJ,GAAKL,MAAMH,kBACP;IAAE,6BAA6B;IAAMiB,SAASd,MAAMT;IAAS,GAC7D,EAAG;GACP,OAAO;IACLwB,UAAU;IACVC,QACE,OAAOZ,aAAaa,OAAOD,WAAW,WAClCZ,aAAaa,MAAMD,SAAS,IAC5B;IACNE,OAAO;IACR;GAAC,GAGJ,qBAAC,OAAD;GAAK,GAAId;GAAc,KAAKF;GAAiB,WAAU;aAAvD;IACE,oBAAC,eAAD,EAAe,iBAAiBF,MAAMT,SAAS,EAAC;IAChD,oBAAC,OAAD;KAAK,UAAU;KAAG,SAASS,MAAMT;KAAQ;IACxCS,MAAMR;IACP,oBAAC,OAAD;KAAK,UAAU;KAAG,SAASQ,MAAMT;KAAQ;IACzC,oBAAC,eAAD,EAAe,iBAAiBS,MAAMT,SAAS,EAAC;IAC7C;KACG"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
3
+ let react = require("react");
4
+
5
+ //#region src/components/DropdownSelector/Popover/usePreventScroll.tsx
6
+ function usePreventScroll(element, isOpen, useClip = false) {
7
+ (0, react.useEffect)(() => {
8
+ if (isOpen && element) {
9
+ const defaultPaddingRight = element.style.paddingRight;
10
+ const defaultOverflow = element.style.overflow;
11
+ element.style.paddingRight = `${window.innerWidth - element.clientWidth}px`;
12
+ element.style.overflow = useClip ? "clip" : "hidden";
13
+ return () => {
14
+ element.style.paddingRight = defaultPaddingRight;
15
+ element.style.overflow = defaultOverflow;
16
+ };
17
+ }
18
+ }, [
19
+ element,
20
+ isOpen,
21
+ useClip
22
+ ]);
23
+ }
24
+
25
+ //#endregion
26
+ exports.usePreventScroll = usePreventScroll;
27
+ //# sourceMappingURL=usePreventScroll.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreventScroll.cjs","names":["useEffect","usePreventScroll","element","HTMLElement","isOpen","useClip","defaultPaddingRight","style","paddingRight","defaultOverflow","overflow","window","innerWidth","clientWidth"],"sources":["../../../../src/components/DropdownSelector/Popover/usePreventScroll.tsx"],"sourcesContent":["import { useEffect } from 'react'\n\nexport function usePreventScroll(\n element: HTMLElement | null,\n isOpen: boolean,\n useClip = false,\n) {\n useEffect(() => {\n if (isOpen && element) {\n const defaultPaddingRight = element.style.paddingRight\n const defaultOverflow = element.style.overflow\n // eslint-disable-next-line react-compiler/react-compiler\n element.style.paddingRight = `${\n window.innerWidth - element.clientWidth\n }px`\n element.style.overflow = useClip ? 'clip' : 'hidden'\n return () => {\n element.style.paddingRight = defaultPaddingRight\n element.style.overflow = defaultOverflow\n }\n }\n }, [element, isOpen, useClip])\n}\n"],"mappings":";;;;;AAEA,SAAgBC,iBACdC,SACAE,QACAC,UAAU,OACV;CACAL,2BAAgB;EACd,IAAII,UAAUF,SAAS;GACrB,MAAMI,sBAAsBJ,QAAQK,MAAMC;GAC1C,MAAMC,kBAAkBP,QAAQK,MAAMG;GAEtCR,QAAQK,MAAMC,eAAe,GAC3BG,OAAOC,aAAaV,QAAQW,YAAW;GAEzCX,QAAQK,MAAMG,WAAWL,UAAU,SAAS;GAC5C,aAAa;IACXH,QAAQK,MAAMC,eAAeF;IAC7BJ,QAAQK,MAAMG,WAAWD;;;IAG5B;EAACP;EAASE;EAAQC;EAAQ,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { useEffect } from "react";
3
+
4
+ //#region src/components/DropdownSelector/Popover/usePreventScroll.tsx
5
+ function usePreventScroll(element, isOpen, useClip = false) {
6
+ useEffect(() => {
7
+ if (isOpen && element) {
8
+ const defaultPaddingRight = element.style.paddingRight;
9
+ const defaultOverflow = element.style.overflow;
10
+ element.style.paddingRight = `${window.innerWidth - element.clientWidth}px`;
11
+ element.style.overflow = useClip ? "clip" : "hidden";
12
+ return () => {
13
+ element.style.paddingRight = defaultPaddingRight;
14
+ element.style.overflow = defaultOverflow;
15
+ };
16
+ }
17
+ }, [
18
+ element,
19
+ isOpen,
20
+ useClip
21
+ ]);
22
+ }
23
+
24
+ //#endregion
25
+ export { usePreventScroll };
26
+ //# sourceMappingURL=usePreventScroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreventScroll.js","names":["useEffect","usePreventScroll","element","HTMLElement","isOpen","useClip","defaultPaddingRight","style","paddingRight","defaultOverflow","overflow","window","innerWidth","clientWidth"],"sources":["../../../../src/components/DropdownSelector/Popover/usePreventScroll.tsx"],"sourcesContent":["import { useEffect } from 'react'\n\nexport function usePreventScroll(\n element: HTMLElement | null,\n isOpen: boolean,\n useClip = false,\n) {\n useEffect(() => {\n if (isOpen && element) {\n const defaultPaddingRight = element.style.paddingRight\n const defaultOverflow = element.style.overflow\n // eslint-disable-next-line react-compiler/react-compiler\n element.style.paddingRight = `${\n window.innerWidth - element.clientWidth\n }px`\n element.style.overflow = useClip ? 'clip' : 'hidden'\n return () => {\n element.style.paddingRight = defaultPaddingRight\n element.style.overflow = defaultOverflow\n }\n }\n }, [element, isOpen, useClip])\n}\n"],"mappings":";;;;AAEA,SAAgBC,iBACdC,SACAE,QACAC,UAAU,OACV;CACAL,gBAAgB;EACd,IAAII,UAAUF,SAAS;GACrB,MAAMI,sBAAsBJ,QAAQK,MAAMC;GAC1C,MAAMC,kBAAkBP,QAAQK,MAAMG;GAEtCR,QAAQK,MAAMC,eAAe,GAC3BG,OAAOC,aAAaV,QAAQW,YAAW;GAEzCX,QAAQK,MAAMG,WAAWL,UAAU,SAAS;GAC5C,aAAa;IACXH,QAAQK,MAAMC,eAAeF;IAC7BJ,QAAQK,MAAMG,WAAWD;;;IAG5B;EAACP;EAASE;EAAQC;EAAQ,CAAC"}
@@ -0,0 +1,113 @@
1
+ "use client";
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ const require_useClassNames = require('../../_lib/useClassNames.cjs');
4
+ const require_index = require('../Icon/index.cjs');
5
+ const require_index$1 = require('../FieldLabel/index2.cjs');
6
+ const require_index$2 = require('../TextField/AssistiveText/index2.cjs');
7
+ require('./index.cjs');
8
+ const require_DropdownPopover = require('./DropdownPopover.cjs');
9
+ const require_findPreviewRecursive = require('./utils/findPreviewRecursive.cjs');
10
+ const require_getValuesRecursive = require('./MenuList/internals/getValuesRecursive.cjs');
11
+ const require_index$4 = require('./MenuList/index2.cjs');
12
+ let react = require("react");
13
+ react = require_runtime.__toESM(react);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ let react_aria_useId = require("react-aria/useId");
16
+ let react_aria_VisuallyHidden = require("react-aria/VisuallyHidden");
17
+
18
+ //#region src/components/DropdownSelector/index.tsx
19
+ function DropdownSelector({ onChange, showLabel = false, selectRef, ...props }) {
20
+ const triggerRef = (0, react.useRef)(null);
21
+ const [isOpen, setIsOpen] = (0, react.useState)(false);
22
+ const preview = require_findPreviewRecursive.findPreviewRecursive(props.children, props.value);
23
+ const isPlaceholder = (0, react.useMemo)(() => props.placeholder !== void 0 && preview === void 0, [preview, props.placeholder]);
24
+ const propsArray = require_getValuesRecursive.getValuesRecursive(props.children);
25
+ const hasMatchedValue = (0, react.useMemo)(() => propsArray.some((itemProps) => itemProps.value === props.value), [propsArray, props.value]);
26
+ const { visuallyHiddenProps } = (0, react_aria_VisuallyHidden.useVisuallyHidden)();
27
+ const handleChange = (0, react.useCallback)((e) => {
28
+ onChange(e.target.value);
29
+ }, [onChange]);
30
+ const labelId = (0, react_aria_useId.useId)();
31
+ const describedbyId = (0, react_aria_useId.useId)();
32
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33
+ className: require_useClassNames.useClassNames("charcoal-dropdown-selector-root", props.className),
34
+ "aria-disabled": props.disabled,
35
+ children: [
36
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, {
37
+ id: labelId,
38
+ label: props.label,
39
+ required: props.required,
40
+ requiredText: props.requiredText,
41
+ subLabel: props.subLabel,
42
+ ...!showLabel ? visuallyHiddenProps : {}
43
+ }),
44
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
45
+ ...visuallyHiddenProps,
46
+ "aria-hidden": "true",
47
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
48
+ name: props.name,
49
+ value: props.value,
50
+ onChange: handleChange,
51
+ tabIndex: -1,
52
+ ref: selectRef,
53
+ children: [!hasMatchedValue && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
54
+ value: props.value,
55
+ children: props.value
56
+ }), propsArray.map((itemProps) => {
57
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
58
+ value: itemProps.value,
59
+ disabled: itemProps.disabled,
60
+ children: itemProps.value
61
+ }, itemProps.value);
62
+ })]
63
+ })
64
+ }),
65
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
66
+ className: "charcoal-dropdown-selector-button",
67
+ "aria-labelledby": labelId,
68
+ "aria-invalid": props.invalid,
69
+ "aria-describedby": props.assistiveText !== void 0 ? describedbyId : void 0,
70
+ disabled: props.disabled,
71
+ onClick: () => {
72
+ if (props.disabled === true) return;
73
+ setIsOpen(true);
74
+ },
75
+ ref: triggerRef,
76
+ type: "button",
77
+ "data-active": isOpen,
78
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
79
+ className: "charcoal-ui-dropdown-selector-text",
80
+ "data-placeholder": isPlaceholder,
81
+ children: isPlaceholder ? props.placeholder : preview
82
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
83
+ className: "charcoal-ui-dropdown-selector-icon",
84
+ name: "16/Menu"
85
+ })]
86
+ }),
87
+ isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DropdownPopover.DropdownPopover, {
88
+ isOpen,
89
+ onClose: () => setIsOpen(false),
90
+ triggerRef,
91
+ value: props.value,
92
+ inertWorkaround: props.inertWorkaround,
93
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$4.default, {
94
+ value: props.value,
95
+ onChange: (v) => {
96
+ onChange(v);
97
+ setIsOpen(false);
98
+ },
99
+ children: props.children
100
+ })
101
+ }),
102
+ props.assistiveText !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.AssistiveText, {
103
+ "data-invalid": props.invalid === true,
104
+ id: describedbyId,
105
+ children: props.assistiveText
106
+ })
107
+ ]
108
+ });
109
+ }
110
+
111
+ //#endregion
112
+ exports.default = DropdownSelector;
113
+ //# sourceMappingURL=index2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.cjs","names":["React","ReactNode","useState","useRef","useMemo","useCallback","Icon","FieldLabel","DropdownPopover","findPreviewRecursive","MenuList","MenuListChildren","getValuesRecursive","AssistiveText","useClassNames","PopoverProps","useVisuallyHidden","useId","DropdownSelectorProps","label","value","disabled","placeholder","showLabel","invalid","assistiveText","required","requiredText","subLabel","name","children","onChange","className","selectRef","Ref","HTMLSelectElement","Pick","DropdownSelector","props","triggerRef","HTMLButtonElement","isOpen","setIsOpen","preview","isPlaceholder","undefined","propsArray","hasMatchedValue","some","itemProps","visuallyHiddenProps","handleChange","e","ChangeEvent","target","labelId","describedbyId","classNames","map","inertWorkaround","v"],"sources":["../../../src/components/DropdownSelector/index.tsx"],"sourcesContent":["import './index.css'\n\nimport React, { ReactNode, useState, useRef, useMemo, useCallback } from 'react'\nimport Icon from '../Icon'\nimport FieldLabel from '../FieldLabel'\nimport { DropdownPopover } from './DropdownPopover'\nimport { findPreviewRecursive } from './utils/findPreviewRecursive'\nimport MenuList, { MenuListChildren } from './MenuList'\nimport { getValuesRecursive } from './MenuList/internals/getValuesRecursive'\nimport { AssistiveText } from '../TextField/AssistiveText'\nimport { useClassNames } from '../../_lib/useClassNames'\nimport { PopoverProps } from './Popover'\n\nimport { useVisuallyHidden } from 'react-aria/VisuallyHidden'\nimport { useId } from 'react-aria/useId'\n\nexport type DropdownSelectorProps = {\n label: string\n value: string\n disabled?: boolean\n placeholder?: string\n showLabel?: boolean\n invalid?: boolean\n assistiveText?: string\n required?: boolean\n requiredText?: string\n subLabel?: ReactNode\n /**\n * the name of hidden `<select />`\n */\n name?: string\n children: MenuListChildren\n onChange: (value: string) => void\n className?: string\n selectRef?: React.Ref<HTMLSelectElement>\n} & Pick<PopoverProps, 'inertWorkaround'>\n\nexport default function DropdownSelector({\n onChange,\n showLabel = false,\n selectRef,\n ...props\n}: DropdownSelectorProps) {\n const triggerRef = useRef<HTMLButtonElement>(null)\n const [isOpen, setIsOpen] = useState(false)\n const preview = findPreviewRecursive(props.children, props.value)\n\n const isPlaceholder = useMemo(\n () => props.placeholder !== undefined && preview === undefined,\n [preview, props.placeholder],\n )\n\n const propsArray = getValuesRecursive(props.children)\n const hasMatchedValue = useMemo(\n () => propsArray.some((itemProps) => itemProps.value === props.value),\n [propsArray, props.value],\n )\n\n const { visuallyHiddenProps } = useVisuallyHidden()\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLSelectElement>) => {\n onChange(e.target.value)\n },\n [onChange],\n )\n\n const labelId = useId()\n const describedbyId = useId()\n\n const classNames = useClassNames(\n 'charcoal-dropdown-selector-root',\n props.className,\n )\n\n return (\n <div className={classNames} aria-disabled={props.disabled}>\n <FieldLabel\n id={labelId}\n label={props.label}\n required={props.required}\n requiredText={props.requiredText}\n subLabel={props.subLabel}\n {...(!showLabel ? visuallyHiddenProps : {})}\n />\n <div {...visuallyHiddenProps} aria-hidden=\"true\">\n <select\n name={props.name}\n value={props.value}\n onChange={handleChange}\n tabIndex={-1}\n ref={selectRef}\n >\n {!hasMatchedValue && (\n <option value={props.value}>{props.value}</option>\n )}\n {propsArray.map((itemProps) => {\n return (\n <option\n key={itemProps.value}\n value={itemProps.value}\n disabled={itemProps.disabled}\n >\n {itemProps.value}\n </option>\n )\n })}\n </select>\n </div>\n {/* eslint-disable-next-line jsx-a11y/role-supports-aria-props */}\n <button\n className=\"charcoal-dropdown-selector-button\"\n aria-labelledby={labelId}\n aria-invalid={props.invalid}\n aria-describedby={\n props.assistiveText !== undefined ? describedbyId : undefined\n }\n disabled={props.disabled}\n onClick={() => {\n if (props.disabled === true) return\n setIsOpen(true)\n }}\n ref={triggerRef}\n type=\"button\"\n data-active={isOpen}\n >\n <span\n className=\"charcoal-ui-dropdown-selector-text\"\n data-placeholder={isPlaceholder}\n >\n {isPlaceholder ? props.placeholder : preview}\n </span>\n <Icon className=\"charcoal-ui-dropdown-selector-icon\" name=\"16/Menu\" />\n </button>\n {isOpen && (\n <DropdownPopover\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n triggerRef={triggerRef}\n value={props.value}\n inertWorkaround={props.inertWorkaround}\n >\n <MenuList\n value={props.value}\n onChange={(v) => {\n onChange(v)\n setIsOpen(false)\n }}\n >\n {props.children}\n </MenuList>\n </DropdownPopover>\n )}\n {props.assistiveText !== undefined && (\n <AssistiveText data-invalid={props.invalid === true} id={describedbyId}>\n {props.assistiveText}\n </AssistiveText>\n )}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAqCA,SAAwBqC,iBAAiB,EACvCN,UACAR,YAAY,OACZU,WACA,GAAGK,SACqB;CACxB,MAAMC,+BAAuC,KAAK;CAClD,MAAM,CAACE,QAAQC,iCAAsB,MAAM;CAC3C,MAAMC,UAAUlC,kDAAqB6B,MAAMR,UAAUQ,MAAMlB,MAAM;CAEjE,MAAMwB,yCACEN,MAAMhB,gBAAgBuB,UAAaF,YAAYE,QACrD,CAACF,SAASL,MAAMhB,YAClB,CAAC;CAED,MAAMwB,aAAalC,8CAAmB0B,MAAMR,SAAS;CACrD,MAAMiB,2CACED,WAAWE,MAAMC,cAAcA,UAAU7B,UAAUkB,MAAMlB,MAAM,EACrE,CAAC0B,YAAYR,MAAMlB,MACrB,CAAC;CAED,MAAM,EAAE8B,0EAA2C;CAEnD,MAAMC,uCACHC,MAA4C;EAC3CrB,SAASqB,EAAEE,OAAOlC,MAAM;IAE1B,CAACW,SACH,CAAC;CAED,MAAMwB,uCAAiB;CACvB,MAAMC,6CAAuB;CAO7B,OACE,4CAAC,OAAD;EAAK,WANY1C,oCACjB,mCACAwB,MAAMN,UAIoB;EAAE,iBAAeM,MAAMjB;YAAjD;GACE,2CAAC,yBAAD;IACE,IAAIkC;IACJ,OAAOjB,MAAMnB;IACb,UAAUmB,MAAMZ;IAChB,cAAcY,MAAMX;IACpB,UAAUW,MAAMV;IAChB,GAAK,CAACL,YAAY2B,sBAAsB,EAAG;IAAC;GAE9C,2CAAC,OAAD;IAAK,GAAIA;IAAqB,eAAY;cACxC,4CAAC,UAAD;KACE,MAAMZ,MAAMT;KACZ,OAAOS,MAAMlB;KACb,UAAU+B;KACV,UAAU;KACV,KAAKlB;eALP,CAOG,CAACc,mBACA,2CAAC,UAAD;MAAQ,OAAOT,MAAMlB;gBAAQkB,MAAMlB;MACpC,GACA0B,WAAWY,KAAKT,cAAc;MAC7B,OACE,2CAAC,UAAD;OAEE,OAAOA,UAAU7B;OACjB,UAAU6B,UAAU5B;iBAEnB4B,UAAU7B;OACJ,EALF6B,UAAU7B,MAKR;OAEX,CACI;;IACL;GAEL,4CAAC,UAAD;IACE,WAAU;IACV,mBAAiBmC;IACjB,gBAAcjB,MAAMd;IACpB,oBACEc,MAAMb,kBAAkBoB,SAAYW,gBAAgBX;IAEtD,UAAUP,MAAMjB;IAChB,eAAe;KACb,IAAIiB,MAAMjB,aAAa,MAAM;KAC7BqB,UAAU,KAAK;;IAEjB,KAAKH;IACL,MAAK;IACL,eAAaE;cAdf,CAgBE,2CAAC,QAAD;KACE,WAAU;KACV,oBAAkBG;eAEjBA,gBAAgBN,MAAMhB,cAAcqB;KACjC,GACN,2CAAC,uBAAD;KAAM,WAAU;KAAqC,MAAK;KAAS,EAC7D;;GACPF,UACC,2CAAC,yCAAD;IACUA;IACR,eAAeC,UAAU,MAAM;IACnBH;IACZ,OAAOD,MAAMlB;IACb,iBAAiBkB,MAAMqB;cAEvB,2CAAC,yBAAD;KACE,OAAOrB,MAAMlB;KACb,WAAWwC,MAAM;MACf7B,SAAS6B,EAAE;MACXlB,UAAU,MAAM;;eAGjBJ,MAAMR;KACC;IAEb;GACAQ,MAAMb,kBAAkBoB,UACvB,2CAAC,+BAAD;IAAe,gBAAcP,MAAMd,YAAY;IAAM,IAAIgC;cACtDlB,MAAMb;IAEV;GACG"}