@clickhouse/click-ui 0.6.1-rc2 → 0.6.2-rc1

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 (243) hide show
  1. package/README.md +5 -0
  2. package/dist/cjs/click-ui.css +1021 -11
  3. package/dist/cjs/components/Accordion/Accordion.css +111 -0
  4. package/dist/cjs/components/Accordion/Accordion.module.css.cjs +33 -0
  5. package/dist/cjs/components/Accordion/Accordion.module.css.cjs.map +1 -0
  6. package/dist/cjs/components/Accordion/index.cjs +51 -54
  7. package/dist/cjs/components/Accordion/index.cjs.map +1 -1
  8. package/dist/cjs/components/Alert/Alert.css +169 -0
  9. package/dist/cjs/components/Alert/Alert.module.css.cjs +75 -0
  10. package/dist/cjs/components/Alert/Alert.module.css.cjs.map +1 -0
  11. package/dist/cjs/components/Alert/index.cjs +113 -69
  12. package/dist/cjs/components/Alert/index.cjs.map +1 -1
  13. package/dist/cjs/components/Assets/Icons/Check.cjs +1 -1
  14. package/dist/cjs/components/Assets/Icons/Check.cjs.map +1 -1
  15. package/dist/cjs/components/Assets/Icons/Dollar.cjs +10 -0
  16. package/dist/cjs/components/Assets/Icons/Dollar.cjs.map +1 -0
  17. package/dist/cjs/components/Assets/Icons/Pin.cjs +13 -0
  18. package/dist/cjs/components/Assets/Icons/Pin.cjs.map +1 -0
  19. package/dist/cjs/components/Assets/Icons/Unpin.cjs +17 -0
  20. package/dist/cjs/components/Assets/Icons/Unpin.cjs.map +1 -0
  21. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +6 -0
  22. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
  23. package/dist/cjs/components/AutoComplete/index.cjs +4 -1
  24. package/dist/cjs/components/AutoComplete/index.cjs.map +1 -1
  25. package/dist/cjs/components/Button/index.cjs +2 -1
  26. package/dist/cjs/components/Button/index.cjs.map +1 -1
  27. package/dist/cjs/components/ButtonGroup/ButtonGroup.css +37 -0
  28. package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs +8 -0
  29. package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs.map +1 -1
  30. package/dist/cjs/components/ButtonGroup/index.cjs +21 -2
  31. package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
  32. package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs +1 -0
  33. package/dist/cjs/components/Checkbox/index.cjs +1 -11
  34. package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
  35. package/dist/cjs/components/Collapsible/Collapsible.css +79 -0
  36. package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs +31 -0
  37. package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs.map +1 -0
  38. package/dist/cjs/components/Collapsible/IconWrapper.cjs +5 -11
  39. package/dist/cjs/components/Collapsible/IconWrapper.cjs.map +1 -1
  40. package/dist/cjs/components/Collapsible/index.cjs +36 -24
  41. package/dist/cjs/components/Collapsible/index.cjs.map +1 -1
  42. package/dist/cjs/components/Container/Container.css +3 -3
  43. package/dist/cjs/components/ContextMenu/index.cjs +4 -1
  44. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
  45. package/dist/cjs/components/DatePicker/Common.cjs +1 -1
  46. package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
  47. package/dist/cjs/components/DatePicker/index.cjs +4 -1
  48. package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
  49. package/dist/cjs/components/Dialog/Dialog.css +97 -0
  50. package/dist/cjs/components/Dialog/Dialog.module.css.cjs +27 -0
  51. package/dist/cjs/components/Dialog/Dialog.module.css.cjs.map +1 -0
  52. package/dist/cjs/components/Dialog/index.cjs +29 -71
  53. package/dist/cjs/components/Dialog/index.cjs.map +1 -1
  54. package/dist/cjs/components/Dropdown/index.cjs +4 -1
  55. package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
  56. package/dist/cjs/components/Flyout/index.cjs +23 -19
  57. package/dist/cjs/components/Flyout/index.cjs.map +1 -1
  58. package/dist/cjs/components/HoverCard/HoverCard.css +6 -0
  59. package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs +10 -0
  60. package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs.map +1 -0
  61. package/dist/cjs/components/HoverCard/index.cjs +8 -6
  62. package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
  63. package/dist/cjs/components/Icon/SvgImageElement.cjs +1 -0
  64. package/dist/cjs/components/Link/Link.css +12 -8
  65. package/dist/cjs/components/Link/Link.module.css.cjs +15 -4
  66. package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -1
  67. package/dist/cjs/components/Link/index.cjs +6 -6
  68. package/dist/cjs/components/Link/index.cjs.map +1 -1
  69. package/dist/cjs/components/MultiAccordion/MultiAccordion.css +200 -0
  70. package/dist/cjs/components/MultiAccordion/MultiAccordion.module.css.cjs +42 -0
  71. package/dist/cjs/components/MultiAccordion/MultiAccordion.module.css.cjs.map +1 -0
  72. package/dist/cjs/components/MultiAccordion/index.cjs +102 -92
  73. package/dist/cjs/components/MultiAccordion/index.cjs.map +1 -1
  74. package/dist/cjs/components/Popover/index.cjs +3 -1
  75. package/dist/cjs/components/Popover/index.cjs.map +1 -1
  76. package/dist/cjs/components/Select/common/InternalSelect.cjs +4 -2
  77. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  78. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
  79. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs +23 -0
  80. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs.map +1 -0
  81. package/dist/cjs/components/SidebarNavigationItem/index.cjs +60 -69
  82. package/dist/cjs/components/SidebarNavigationItem/index.cjs.map +1 -1
  83. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
  84. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs +19 -0
  85. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs.map +1 -0
  86. package/dist/cjs/components/SidebarNavigationTitle/index.cjs +35 -23
  87. package/dist/cjs/components/SidebarNavigationTitle/index.cjs.map +1 -1
  88. package/dist/cjs/components/Tabs/Tabs.css +54 -0
  89. package/dist/cjs/components/Tabs/Tabs.module.css.cjs +20 -0
  90. package/dist/cjs/components/Tabs/Tabs.module.css.cjs.map +1 -0
  91. package/dist/cjs/components/Tabs/index.cjs +45 -20
  92. package/dist/cjs/components/Tabs/index.cjs.map +1 -1
  93. package/dist/cjs/components/Tooltip/index.cjs +4 -1
  94. package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
  95. package/dist/cjs/index.cjs +5 -0
  96. package/dist/cjs/index.cjs.map +1 -1
  97. package/dist/cjs/providers/PortalContext.cjs +19 -0
  98. package/dist/cjs/providers/PortalContext.cjs.map +1 -0
  99. package/dist/cjs/providers/PortalProvider.cjs +16 -0
  100. package/dist/cjs/providers/PortalProvider.cjs.map +1 -0
  101. package/dist/cjs/theme/styles/tokens-dark.css +5 -0
  102. package/dist/cjs/theme/styles/tokens-light.css +5 -0
  103. package/dist/cjs/theme/tokens/variables.dark.cjs +15 -0
  104. package/dist/cjs/theme/tokens/variables.dark.cjs.map +1 -1
  105. package/dist/cjs/theme/tokens/variables.light.cjs +15 -0
  106. package/dist/cjs/theme/tokens/variables.light.cjs.map +1 -1
  107. package/dist/esm/click-ui.css +1021 -11
  108. package/dist/esm/components/Accordion/Accordion.css +111 -0
  109. package/dist/esm/components/Accordion/Accordion.module.css.js +22 -0
  110. package/dist/esm/components/Accordion/Accordion.module.css.js.map +1 -0
  111. package/dist/esm/components/Accordion/index.js +51 -54
  112. package/dist/esm/components/Accordion/index.js.map +1 -1
  113. package/dist/esm/components/Alert/Alert.css +169 -0
  114. package/dist/esm/components/Alert/Alert.module.css.js +53 -0
  115. package/dist/esm/components/Alert/Alert.module.css.js.map +1 -0
  116. package/dist/esm/components/Alert/index.js +113 -69
  117. package/dist/esm/components/Alert/index.js.map +1 -1
  118. package/dist/esm/components/Assets/Icons/Check.js +1 -1
  119. package/dist/esm/components/Assets/Icons/Check.js.map +1 -1
  120. package/dist/esm/components/Assets/Icons/Dollar.js +6 -0
  121. package/dist/esm/components/Assets/Icons/Dollar.js.map +1 -0
  122. package/dist/esm/components/Assets/Icons/Pin.js +9 -0
  123. package/dist/esm/components/Assets/Icons/Pin.js.map +1 -0
  124. package/dist/esm/components/Assets/Icons/Unpin.js +13 -0
  125. package/dist/esm/components/Assets/Icons/Unpin.js.map +1 -0
  126. package/dist/esm/components/Assets/Icons/system/IconsLight.js +6 -0
  127. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  128. package/dist/esm/components/AutoComplete/index.js +4 -1
  129. package/dist/esm/components/AutoComplete/index.js.map +1 -1
  130. package/dist/esm/components/Button/index.js +2 -1
  131. package/dist/esm/components/Button/index.js.map +1 -1
  132. package/dist/esm/components/ButtonGroup/ButtonGroup.css +37 -0
  133. package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js +7 -1
  134. package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -1
  135. package/dist/esm/components/ButtonGroup/index.js +21 -2
  136. package/dist/esm/components/ButtonGroup/index.js.map +1 -1
  137. package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js +1 -0
  138. package/dist/esm/components/Checkbox/index.js +1 -11
  139. package/dist/esm/components/Checkbox/index.js.map +1 -1
  140. package/dist/esm/components/Collapsible/Collapsible.css +79 -0
  141. package/dist/esm/components/Collapsible/Collapsible.module.css.js +21 -0
  142. package/dist/esm/components/Collapsible/Collapsible.module.css.js.map +1 -0
  143. package/dist/esm/components/Collapsible/IconWrapper.js +5 -11
  144. package/dist/esm/components/Collapsible/IconWrapper.js.map +1 -1
  145. package/dist/esm/components/Collapsible/index.js +36 -24
  146. package/dist/esm/components/Collapsible/index.js.map +1 -1
  147. package/dist/esm/components/Container/Container.css +3 -3
  148. package/dist/esm/components/ContextMenu/index.js +4 -1
  149. package/dist/esm/components/ContextMenu/index.js.map +1 -1
  150. package/dist/esm/components/DatePicker/Common.js +1 -1
  151. package/dist/esm/components/DatePicker/Common.js.map +1 -1
  152. package/dist/esm/components/DatePicker/index.js +4 -1
  153. package/dist/esm/components/DatePicker/index.js.map +1 -1
  154. package/dist/esm/components/Dialog/Dialog.css +97 -0
  155. package/dist/esm/components/Dialog/Dialog.module.css.js +18 -0
  156. package/dist/esm/components/Dialog/Dialog.module.css.js.map +1 -0
  157. package/dist/esm/components/Dialog/index.js +29 -71
  158. package/dist/esm/components/Dialog/index.js.map +1 -1
  159. package/dist/esm/components/Dropdown/index.js +4 -1
  160. package/dist/esm/components/Dropdown/index.js.map +1 -1
  161. package/dist/esm/components/Flyout/index.js +23 -19
  162. package/dist/esm/components/Flyout/index.js.map +1 -1
  163. package/dist/esm/components/HoverCard/HoverCard.css +6 -0
  164. package/dist/esm/components/HoverCard/HoverCard.module.css.js +6 -0
  165. package/dist/esm/components/HoverCard/HoverCard.module.css.js.map +1 -0
  166. package/dist/esm/components/HoverCard/index.js +8 -6
  167. package/dist/esm/components/HoverCard/index.js.map +1 -1
  168. package/dist/esm/components/Icon/SvgImageElement.js +1 -0
  169. package/dist/esm/components/Link/Link.css +12 -8
  170. package/dist/esm/components/Link/Link.module.css.js +11 -5
  171. package/dist/esm/components/Link/Link.module.css.js.map +1 -1
  172. package/dist/esm/components/Link/index.js +6 -6
  173. package/dist/esm/components/Link/index.js.map +1 -1
  174. package/dist/esm/components/MultiAccordion/MultiAccordion.css +200 -0
  175. package/dist/esm/components/MultiAccordion/MultiAccordion.module.css.js +38 -0
  176. package/dist/esm/components/MultiAccordion/MultiAccordion.module.css.js.map +1 -0
  177. package/dist/esm/components/MultiAccordion/index.js +102 -92
  178. package/dist/esm/components/MultiAccordion/index.js.map +1 -1
  179. package/dist/esm/components/Popover/index.js +3 -1
  180. package/dist/esm/components/Popover/index.js.map +1 -1
  181. package/dist/esm/components/Select/common/InternalSelect.js +4 -2
  182. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  183. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
  184. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js +16 -0
  185. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js.map +1 -0
  186. package/dist/esm/components/SidebarNavigationItem/index.js +60 -69
  187. package/dist/esm/components/SidebarNavigationItem/index.js.map +1 -1
  188. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
  189. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js +12 -0
  190. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js.map +1 -0
  191. package/dist/esm/components/SidebarNavigationTitle/index.js +35 -23
  192. package/dist/esm/components/SidebarNavigationTitle/index.js.map +1 -1
  193. package/dist/esm/components/Tabs/Tabs.css +54 -0
  194. package/dist/esm/components/Tabs/Tabs.module.css.js +14 -0
  195. package/dist/esm/components/Tabs/Tabs.module.css.js.map +1 -0
  196. package/dist/esm/components/Tabs/index.js +45 -20
  197. package/dist/esm/components/Tabs/index.js.map +1 -1
  198. package/dist/esm/components/Tooltip/index.js +4 -1
  199. package/dist/esm/components/Tooltip/index.js.map +1 -1
  200. package/dist/esm/index.js +2 -0
  201. package/dist/esm/index.js.map +1 -1
  202. package/dist/esm/providers/PortalContext.js +13 -0
  203. package/dist/esm/providers/PortalContext.js.map +1 -0
  204. package/dist/esm/providers/PortalProvider.js +12 -0
  205. package/dist/esm/providers/PortalProvider.js.map +1 -0
  206. package/dist/esm/theme/styles/tokens-dark.css +5 -0
  207. package/dist/esm/theme/styles/tokens-light.css +5 -0
  208. package/dist/esm/theme/tokens/variables.dark.js +15 -0
  209. package/dist/esm/theme/tokens/variables.dark.js.map +1 -1
  210. package/dist/esm/theme/tokens/variables.light.js +15 -0
  211. package/dist/esm/theme/tokens/variables.light.js.map +1 -1
  212. package/dist/types/components/Accordion/Accordion.d.ts +3 -3
  213. package/dist/types/components/Assets/Icons/Dollar.d.ts +3 -0
  214. package/dist/types/components/Assets/Icons/Pin.d.ts +3 -0
  215. package/dist/types/components/Assets/Icons/Unpin.d.ts +3 -0
  216. package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
  217. package/dist/types/components/AutoComplete/AutoComplete.d.ts +2 -1
  218. package/dist/types/components/Button/Button.d.ts +1 -24
  219. package/dist/types/components/Button/Button.types.d.ts +3 -0
  220. package/dist/types/components/ButtonGroup/ButtonGroup.types.d.ts +5 -0
  221. package/dist/types/components/ButtonGroup/index.d.ts +1 -1
  222. package/dist/types/components/Collapsible/Collapsible.d.ts +3 -3
  223. package/dist/types/components/ContextMenu/ContextMenu.d.ts +3 -1
  224. package/dist/types/components/DatePicker/DatePicker.d.ts +2 -1
  225. package/dist/types/components/Dialog/Dialog.d.ts +2 -2
  226. package/dist/types/components/Dropdown/Dropdown.d.ts +3 -1
  227. package/dist/types/components/Flyout/Flyout.d.ts +1 -1
  228. package/dist/types/components/Flyout/Flyout.types.d.ts +2 -0
  229. package/dist/types/components/HoverCard/HoverCard.d.ts +1 -1
  230. package/dist/types/components/MultiAccordion/MultiAccordion.d.ts +2 -2
  231. package/dist/types/components/SidebarNavigationItem/SidebarNavigationItem.d.ts +9 -5
  232. package/dist/types/components/SidebarNavigationTitle/SidebarNavigationTitle.d.ts +9 -4
  233. package/dist/types/components/Tabs/Tabs.d.ts +11 -21
  234. package/dist/types/components/Tooltip/Tooltip.d.ts +2 -10
  235. package/dist/types/components/Tooltip/Tooltip.types.d.ts +1 -0
  236. package/dist/types/index.d.ts +2 -1
  237. package/dist/types/providers/PortalContext.d.ts +4 -0
  238. package/dist/types/providers/PortalProvider.d.ts +7 -0
  239. package/dist/types/providers/index.d.ts +4 -0
  240. package/dist/types/theme/theme.core.d.ts +30 -0
  241. package/dist/types/theme/tokens/variables.dark.d.ts +15 -0
  242. package/dist/types/theme/tokens/variables.light.d.ts +15 -0
  243. package/package.json +2 -3
@@ -1,11 +1,14 @@
1
+ import "./MultiAccordion.css";
1
2
  import { jsx, jsxs } from 'react/jsx-runtime';
2
3
  import * as RadixAccordion from '@radix-ui/react-accordion';
3
- import { styled } from 'styled-components';
4
4
  import { createContext, useContext } from 'react';
5
+ import { cn } from '../../lib/cva.js';
6
+ import styles from './MultiAccordion.module.css.js';
5
7
  import { Icon as SvgImage } from '../Icon/index.js';
6
- import { Text } from '../Text/index.js';
7
8
  import { Container } from '../Container/index.js';
9
+ import { Text } from '../Text/index.js';
8
10
  import { Spacer } from '../Spacer/index.js';
11
+ import { cva } from 'class-variance-authority';
9
12
 
10
13
  const MultiAccordionContext = createContext({
11
14
  size: "md",
@@ -13,6 +16,28 @@ const MultiAccordionContext = createContext({
13
16
  showBorder: true,
14
17
  showCheck: false
15
18
  });
19
+ const rootVariants = cva(styles["multi-accordion"], {
20
+ variants: {
21
+ fillWidth: {
22
+ true: styles["multi-accordion_fill-width"],
23
+ false: ""
24
+ },
25
+ gap: {
26
+ none: styles["multi-accordion_gap_none"],
27
+ xxs: styles["multi-accordion_gap_xxs"],
28
+ xs: styles["multi-accordion_gap_xs"],
29
+ sm: styles["multi-accordion_gap_sm"],
30
+ md: styles["multi-accordion_gap_md"],
31
+ lg: styles["multi-accordion_gap_lg"],
32
+ xl: styles["multi-accordion_gap_xl"],
33
+ xxl: styles["multi-accordion_gap_xxl"]
34
+ }
35
+ },
36
+ defaultVariants: {
37
+ fillWidth: true,
38
+ gap: "md"
39
+ }
40
+ });
16
41
  const MultiAccordion = ({
17
42
  size = "md",
18
43
  children,
@@ -21,6 +46,7 @@ const MultiAccordion = ({
21
46
  showBorder = true,
22
47
  gap = "md",
23
48
  markAsCompleted,
49
+ className,
24
50
  ...delegated
25
51
  }) => {
26
52
  const contextValue = {
@@ -30,8 +56,64 @@ const MultiAccordion = ({
30
56
  showCheck,
31
57
  markAsCompleted
32
58
  };
33
- return /* @__PURE__ */ jsx(AccordionRoot, { $fillWidth: fillWidth, $gap: gap, ...delegated, children: /* @__PURE__ */ jsx(MultiAccordionContext.Provider, { value: contextValue, children }) });
59
+ return /* @__PURE__ */ jsx(RadixAccordion.Root, { ...delegated, className: cn(rootVariants({
60
+ fillWidth,
61
+ gap
62
+ }), className), children: /* @__PURE__ */ jsx(MultiAccordionContext.Provider, { value: contextValue, children }) });
34
63
  };
64
+ const itemVariants = cva(styles["multi-accordion__item"], {
65
+ variants: {
66
+ showBorder: {
67
+ true: "",
68
+ false: styles["multi-accordion__item_no-border"]
69
+ },
70
+ fillWidth: {
71
+ true: styles["multi-accordion__item_fill-width"],
72
+ false: ""
73
+ }
74
+ },
75
+ defaultVariants: {
76
+ showBorder: true,
77
+ fillWidth: true
78
+ }
79
+ });
80
+ const triggerVariants = cva(styles["multi-accordion__trigger"], {
81
+ variants: {
82
+ size: {
83
+ none: styles["multi-accordion__trigger_size_none"],
84
+ sm: styles["multi-accordion__trigger_size_sm"],
85
+ md: styles["multi-accordion__trigger_size_md"],
86
+ lg: styles["multi-accordion__trigger_size_lg"]
87
+ },
88
+ font: {
89
+ sm: styles["multi-accordion__trigger_font_sm"],
90
+ md: styles["multi-accordion__trigger_font_md"],
91
+ lg: styles["multi-accordion__trigger_font_lg"]
92
+ },
93
+ color: {
94
+ default: styles["multi-accordion__trigger_color_default"],
95
+ link: styles["multi-accordion__trigger_color_link"]
96
+ }
97
+ },
98
+ defaultVariants: {
99
+ size: "md",
100
+ font: "md",
101
+ color: "default"
102
+ }
103
+ });
104
+ const contentVariants = cva(styles["multi-accordion__content"], {
105
+ variants: {
106
+ size: {
107
+ none: styles["multi-accordion__content_padding_none"],
108
+ sm: styles["multi-accordion__content_padding_sm"],
109
+ md: styles["multi-accordion__content_padding_md"],
110
+ lg: styles["multi-accordion__content_padding_lg"]
111
+ }
112
+ },
113
+ defaultVariants: {
114
+ size: "md"
115
+ }
116
+ });
35
117
  const MultiAccordionItem = ({
36
118
  value,
37
119
  title,
@@ -41,6 +123,7 @@ const MultiAccordionItem = ({
41
123
  gap,
42
124
  children,
43
125
  isCompleted = false,
126
+ className,
44
127
  ...props
45
128
  }) => {
46
129
  const {
@@ -57,18 +140,27 @@ const MultiAccordionItem = ({
57
140
  }
58
141
  };
59
142
  const customSize = size === "none" ? "sm" : size;
60
- return /* @__PURE__ */ jsxs(AccordionItem, { value, $showBorder: showBorder, $fillWidth: fillWidth, ...props, children: [
61
- /* @__PURE__ */ jsxs(AccordionTrigger, { $size: size, color, children: [
62
- /* @__PURE__ */ jsxs(AccordionIconsWrapper, { children: [
63
- /* @__PURE__ */ jsx(AccordionIconWrapper, { children: /* @__PURE__ */ jsx(SvgImage, { name: "chevron-right", size: iconSize ?? customSize, "aria-label": "accordion icon" }) }),
143
+ return /* @__PURE__ */ jsxs(RadixAccordion.Item, { value, ...props, className: cn(itemVariants({
144
+ showBorder,
145
+ fillWidth
146
+ }), className), children: [
147
+ /* @__PURE__ */ jsxs(RadixAccordion.Trigger, { className: triggerVariants({
148
+ size,
149
+ font: customSize,
150
+ color: color ?? "default"
151
+ }), children: [
152
+ /* @__PURE__ */ jsxs("div", { className: styles["multi-accordion__icons-wrapper"], children: [
153
+ /* @__PURE__ */ jsx("div", { className: styles["multi-accordion__icon-wrapper"], children: /* @__PURE__ */ jsx(SvgImage, { name: "chevron-right", size: iconSize ?? customSize, "aria-label": "accordion icon" }) }),
64
154
  icon ? /* @__PURE__ */ jsx(SvgImage, { name: icon, size: iconSize ?? customSize }) : null
65
155
  ] }),
66
156
  /* @__PURE__ */ jsxs(Container, { isResponsive: false, gap: "sm", alignItems: "center", fillWidth: true, justifyContent: "space-between", component: "span", overflow: "hidden", children: [
67
- /* @__PURE__ */ jsx(AccordionItemTitle, { component: "span", size: customSize, fillWidth, children: title }),
68
- showCheck && /* @__PURE__ */ jsx(CustomIcon, { name: isCompleted ? "check-in-circle" : "circle", $isCompleted: isCompleted, size: iconSize ?? customSize, "aria-label": "accordion icon status", onClick: onClickStatus, "data-icon": "accordion-status", "data-testid": "accordion-status-icon" })
157
+ /* @__PURE__ */ jsx(Text, { className: styles["multi-accordion__title"], component: "span", size: customSize, fillWidth, children: title }),
158
+ showCheck && /* @__PURE__ */ jsx(SvgImage, { className: cn(styles["multi-accordion__status-icon"], isCompleted && styles["multi-accordion__status-icon_completed"]), name: isCompleted ? "check-in-circle" : "circle", size: iconSize ?? customSize, "aria-label": "accordion icon status", onClick: onClickStatus, "data-icon": "accordion-status", "data-testid": "accordion-status-icon" })
69
159
  ] })
70
160
  ] }),
71
- /* @__PURE__ */ jsxs(AccordionContent, { $padding: size, children: [
161
+ /* @__PURE__ */ jsxs(RadixAccordion.Content, { className: contentVariants({
162
+ size
163
+ }), children: [
72
164
  /* @__PURE__ */ jsx(Spacer, { size: gap }),
73
165
  children
74
166
  ] })
@@ -76,88 +168,6 @@ const MultiAccordionItem = ({
76
168
  };
77
169
  MultiAccordionItem.displayName = "MultiAccordion.Item";
78
170
  MultiAccordion.Item = MultiAccordionItem;
79
- const AccordionRoot = styled(RadixAccordion.Root).withConfig({
80
- componentId: "sc-1lb3204-0"
81
- })(["display:flex;flex-direction:column;justify-content:start;align-items:start;gap:", ";", ";"], ({
82
- theme,
83
- $gap
84
- }) => theme.click.container.gap[$gap], ({
85
- $fillWidth
86
- }) => $fillWidth && "width: 100%");
87
- const AccordionItem = styled(RadixAccordion.Item).withConfig({
88
- componentId: "sc-1lb3204-1"
89
- })(["", ";", ";"], ({
90
- theme,
91
- $showBorder
92
- }) => `
93
- border: ${$showBorder ? `1px solid ${theme.click.global.color.stroke.default}` : "none"};
94
- border-radius: ${theme.border.radii[1]};
95
- background-color: ${theme.click.global.color.background.default};
96
- `, ({
97
- $fillWidth
98
- }) => $fillWidth && "width: 100%");
99
- const AccordionTrigger = styled(RadixAccordion.Trigger).withConfig({
100
- componentId: "sc-1lb3204-2"
101
- })(["width:100%;border:none;padding:0;background-color:transparent;display:flex;align-items:center;", ";border-radius:inherit;&[data-state='open']{border-bottom-left-radius:0px;border-bottom-right-radius:0px;[data-icon='accordion-status']{color:", ";}}"], ({
102
- theme,
103
- $size = "md",
104
- color = "default"
105
- }) => {
106
- const size = $size === "none" ? "sm" : $size;
107
- return `
108
- padding: ${theme.click.container.space[$size]};
109
- gap: ${theme.click.accordion[size].space.gap};
110
- color: ${theme.click.accordion.color[color].label.default};
111
- font: ${theme.click.accordion[size].typography.label.default};
112
-
113
- &:active {
114
- color: ${theme.click.accordion.color[color].label.active};
115
- font: ${theme.click.accordion[size].typography.label.active};
116
- }
117
-
118
- &:hover {
119
- color: ${theme.click.accordion.color[color].label.hover};
120
- background: ${theme.click.global.color.stroke.default};
121
- font: ${theme.click.accordion[size].typography.label.hover};
122
- cursor: pointer;
123
- }
124
-
125
- [data-icon="accordion-status"] {
126
- color: ${theme.global.color.stroke.intense};
127
- }
128
- `;
129
- }, ({
130
- theme
131
- }) => theme.global.color.accent.default);
132
- const AccordionIconWrapper = styled.div.withConfig({
133
- componentId: "sc-1lb3204-3"
134
- })(["display:flex;align-items:center;justify-content:center;transition:transform 200ms cubic-bezier(0.87,0,0.13,1);", "[data-state='open'] &{transform:rotate(90deg);}"], AccordionTrigger);
135
- const AccordionIconsWrapper = styled.div.withConfig({
136
- componentId: "sc-1lb3204-4"
137
- })(["display:flex;align-items:center;justify-content:center;"]);
138
- const CustomIcon = styled(SvgImage).withConfig({
139
- componentId: "sc-1lb3204-5"
140
- })(["", ""], ({
141
- $isCompleted,
142
- theme
143
- }) => $isCompleted && `
144
- svg path {
145
- stroke: ${theme.global.color.background.default} !important;
146
- &:first-of-type {
147
- stroke: ${theme.global.color.accent.default} !important;
148
- }
149
- fill: ${theme.global.color.accent.default} !important;;
150
- }
151
- `);
152
- const AccordionContent = styled(RadixAccordion.Content).withConfig({
153
- componentId: "sc-1lb3204-6"
154
- })(["padding:", ";padding-top:0;"], ({
155
- theme,
156
- $padding
157
- }) => theme.click.container.space[$padding]);
158
- const AccordionItemTitle = styled(Text).withConfig({
159
- componentId: "sc-1lb3204-7"
160
- })(["overflow:hidden;"]);
161
171
 
162
172
  export { MultiAccordion };
163
173
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/MultiAccordion/MultiAccordion.tsx"],"sourcesContent":["import * as RadixAccordion from '@radix-ui/react-accordion';\nimport { styled } from 'styled-components';\nimport type { AssetSize } from '@/types';\nimport { Icon, type IconName } from '@/components/Icon';\n\nimport { Container } from '@/components/Container';\nimport { Spacer } from '@/components/Spacer';\nimport { Text } from '@/components/Text';\nimport {\n createContext,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n useContext,\n} from 'react';\nimport { GapOptions, PaddingOptions } from '@/components/Container';\nimport { SizeType as SpacerSizeType } from '@/components/Spacer';\n\ntype Size = 'none' | 'sm' | 'md' | 'lg';\ntype Color = 'default' | 'link';\n\ntype MarkAsCompletedFunctionType = (value: string) => void | Promise<void>;\n\ninterface MultiAccordionCommonProps {\n /** The accordion items to render */\n children: React.ReactNode;\n /** The size variant of the accordion */\n size?: Size;\n /** Whether the accordion should fill the full width of its container */\n fillWidth?: boolean;\n /** The gap between accordion items */\n gap?: GapOptions;\n /** Whether to show a border around each accordion item */\n showBorder?: boolean;\n /** Whether to show a check/completion indicator on items */\n showCheck?: boolean;\n /** Callback function to mark an item as completed */\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nexport type MultiAccordionProps = MultiAccordionCommonProps &\n (\n | Omit<RadixAccordion.AccordionMultipleProps, 'children'>\n | Omit<RadixAccordion.AccordionSingleProps, 'children'>\n );\n\ninterface MultiAccordionContextProps {\n size: Size;\n fillWidth: boolean;\n showBorder: boolean;\n showCheck: boolean;\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nconst MultiAccordionContext = createContext<MultiAccordionContextProps>({\n size: 'md',\n fillWidth: true,\n showBorder: true,\n showCheck: false,\n});\n\nexport const MultiAccordion = ({\n size = 'md',\n children,\n fillWidth = true,\n showCheck = false,\n showBorder = true,\n gap = 'md',\n markAsCompleted,\n ...delegated\n}: MultiAccordionProps) => {\n const contextValue = {\n size,\n fillWidth,\n showBorder,\n showCheck,\n markAsCompleted,\n };\n\n return (\n <AccordionRoot\n $fillWidth={fillWidth}\n $gap={gap}\n {...delegated}\n >\n <MultiAccordionContext.Provider value={contextValue}>\n {children}\n </MultiAccordionContext.Provider>\n </AccordionRoot>\n );\n};\ninterface MultiAccordionItemProps extends Omit<\n RadixAccordion.AccordionItemProps,\n 'title'\n> {\n /** The title text or element displayed in the accordion item header */\n title: ReactNode;\n /** The color variant of the item */\n color?: Color;\n /** Optional icon to display next to the title */\n icon?: IconName;\n /** Size of the optional icon */\n iconSize?: AssetSize;\n /** Gap size between the header and content */\n gap?: SpacerSizeType;\n /** Whether this item is marked as completed */\n isCompleted?: boolean;\n}\n\nconst MultiAccordionItem = ({\n value,\n title,\n color,\n icon,\n iconSize,\n gap,\n children,\n isCompleted = false,\n ...props\n}: MultiAccordionItemProps): ReactElement => {\n const { fillWidth, size, showBorder, showCheck, markAsCompleted } =\n useContext(MultiAccordionContext);\n\n const onClickStatus: MouseEventHandler<HTMLOrSVGElement> = e => {\n e.preventDefault();\n if (typeof markAsCompleted === 'function') {\n markAsCompleted(value);\n }\n };\n\n const customSize = size === 'none' ? 'sm' : size;\n\n return (\n <AccordionItem\n value={value}\n $showBorder={showBorder}\n $fillWidth={fillWidth}\n {...props}\n >\n <AccordionTrigger\n $size={size}\n color={color}\n >\n <AccordionIconsWrapper>\n <AccordionIconWrapper>\n <Icon\n name=\"chevron-right\"\n size={iconSize ?? customSize}\n aria-label=\"accordion icon\"\n />\n </AccordionIconWrapper>\n {icon ? (\n <Icon\n name={icon}\n size={iconSize ?? customSize}\n />\n ) : null}\n </AccordionIconsWrapper>\n <Container\n isResponsive={false}\n gap=\"sm\"\n alignItems=\"center\"\n fillWidth\n justifyContent=\"space-between\"\n component=\"span\"\n overflow=\"hidden\"\n >\n <AccordionItemTitle\n component=\"span\"\n size={customSize}\n fillWidth={fillWidth}\n >\n {title}\n </AccordionItemTitle>\n {showCheck && (\n <CustomIcon\n name={isCompleted ? 'check-in-circle' : 'circle'}\n $isCompleted={isCompleted}\n size={iconSize ?? customSize}\n aria-label=\"accordion icon status\"\n onClick={onClickStatus}\n data-icon=\"accordion-status\"\n data-testid=\"accordion-status-icon\"\n />\n )}\n </Container>\n </AccordionTrigger>\n <AccordionContent $padding={size}>\n <Spacer size={gap} />\n {children}\n </AccordionContent>\n </AccordionItem>\n );\n};\n\nMultiAccordionItem.displayName = 'MultiAccordion.Item';\nMultiAccordion.Item = MultiAccordionItem;\n\ninterface StyledAccordionRootProps {\n $fillWidth: boolean;\n $gap: GapOptions;\n}\n\nconst AccordionRoot = styled(RadixAccordion.Root)<StyledAccordionRootProps>`\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: start;\n gap: ${({ theme, $gap }) => theme.click.container.gap[$gap]};\n ${({ $fillWidth }) => $fillWidth && 'width: 100%'};\n`;\n\ninterface StyledAccordionItemProps {\n $fillWidth: boolean;\n $showBorder: boolean;\n}\n\nconst AccordionItem = styled(RadixAccordion.Item)<StyledAccordionItemProps>`\n ${({ theme, $showBorder }) => `\n border: ${\n $showBorder ? `1px solid ${theme.click.global.color.stroke.default}` : 'none'\n };\n border-radius: ${theme.border.radii[1]};\n background-color: ${theme.click.global.color.background.default};\n `};\n ${({ $fillWidth }) => $fillWidth && 'width: 100%'};\n`;\n\ninterface StyledAccordionTriggerProps {\n $size?: Size;\n color?: Color;\n}\n\nconst AccordionTrigger = styled(RadixAccordion.Trigger)<StyledAccordionTriggerProps>`\n width: 100%;\n border: none;\n padding: 0;\n background-color: transparent;\n display: flex;\n align-items: center;\n ${({ theme, $size = 'md', color = 'default' }) => {\n const size: Size = $size === 'none' ? 'sm' : $size;\n\n return `\n padding: ${theme.click.container.space[$size]};\n gap: ${theme.click.accordion[size].space.gap};\n color: ${theme.click.accordion.color[color].label.default};\n font: ${theme.click.accordion[size].typography.label.default};\n\n &:active {\n color: ${theme.click.accordion.color[color].label.active};\n font: ${theme.click.accordion[size].typography.label.active};\n }\n\n &:hover {\n color: ${theme.click.accordion.color[color].label.hover};\n background: ${theme.click.global.color.stroke.default};\n font: ${theme.click.accordion[size].typography.label.hover};\n cursor: pointer;\n }\n\n [data-icon=\"accordion-status\"] {\n color: ${theme.global.color.stroke.intense};\n }\n `;\n }};\n border-radius: inherit;\n &[data-state='open'] {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n [data-icon='accordion-status'] {\n color: ${({ theme }): string => theme.global.color.accent.default};\n }\n }\n`;\n\nconst AccordionIconWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 200ms cubic-bezier(0.87, 0, 0.13, 1);\n\n ${AccordionTrigger}[data-state='open'] & {\n transform: rotate(90deg);\n }\n`;\n\nconst AccordionIconsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst CustomIcon = styled(Icon)<{ $isCompleted: boolean }>`\n ${({ $isCompleted, theme }) =>\n $isCompleted &&\n `\n svg path {\n stroke: ${theme.global.color.background.default} !important;\n &:first-of-type {\n stroke: ${theme.global.color.accent.default} !important;\n }\n fill: ${theme.global.color.accent.default} !important;;\n }\n `}\n`;\n\nconst AccordionContent = styled(RadixAccordion.Content)<{ $padding: PaddingOptions }>`\n padding: ${({ theme, $padding }): string => theme.click.container.space[$padding]};\n padding-top: 0;\n`;\n\nconst AccordionItemTitle = styled(Text)`\n overflow: hidden;\n`;\n"],"names":["MultiAccordionContext","createContext","size","fillWidth","showBorder","showCheck","MultiAccordion","children","gap","markAsCompleted","delegated","contextValue","MultiAccordionItem","value","title","color","icon","iconSize","isCompleted","props","useContext","onClickStatus","e","preventDefault","customSize","Icon","displayName","Item","AccordionRoot","styled","RadixAccordion","Root","withConfig","componentId","theme","$gap","click","container","$fillWidth","AccordionItem","$showBorder","global","stroke","default","border","radii","background","AccordionTrigger","Trigger","$size","space","accordion","label","typography","active","hover","intense","accent","AccordionIconWrapper","div","AccordionIconsWrapper","CustomIcon","$isCompleted","AccordionContent","Content","$padding","AccordionItemTitle","Text"],"mappings":";;;;;;;;;AAsDA,MAAMA,wBAAwBC,aAAAA,CAA0C;AAAA,EACtEC,IAAAA,EAAM,IAAA;AAAA,EACNC,SAAAA,EAAW,IAAA;AAAA,EACXC,UAAAA,EAAY,IAAA;AAAA,EACZC,SAAAA,EAAW;AACb,CAAC,CAAA;AAEM,MAAMC,iBAAiBA,CAAC;AAAA,EAC7BJ,IAAAA,GAAO,IAAA;AAAA,EACPK,QAAAA;AAAAA,EACAJ,SAAAA,GAAY,IAAA;AAAA,EACZE,SAAAA,GAAY,KAAA;AAAA,EACZD,UAAAA,GAAa,IAAA;AAAA,EACbI,GAAAA,GAAM,IAAA;AAAA,EACNC,eAAAA;AAAAA,EACA,GAAGC;AACgB,CAAA,KAAM;AACzB,EAAA,MAAMC,YAAAA,GAAe;AAAA,IACnBT,IAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAI;AAAAA,GACF;AAEA,EAAA,uBACE,GAAA,CAAC,aAAA,EAAA,EACC,UAAA,EAAYN,SAAAA,EACZ,MAAMK,GAAAA,EACN,GAAIE,SAAAA,EAEJ,QAAA,kBAAA,GAAA,CAAC,sBAAsB,QAAA,EAAtB,EAA+B,KAAA,EAAOC,YAAAA,EACpCJ,UACH,CAAA,EACF,CAAA;AAEJ;AAmBA,MAAMK,qBAAqBA,CAAC;AAAA,EAC1BC,KAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAT,GAAAA;AAAAA,EACAD,QAAAA;AAAAA,EACAW,WAAAA,GAAc,KAAA;AAAA,EACd,GAAGC;AACoB,CAAA,KAAoB;AAC3C,EAAA,MAAM;AAAA,IAAEhB,SAAAA;AAAAA,IAAWD,IAAAA;AAAAA,IAAME,UAAAA;AAAAA,IAAYC,SAAAA;AAAAA,IAAWI;AAAAA,GAAgB,GAC9DW,WAAWpB,qBAAqB,CAAA;AAElC,EAAA,MAAMqB,gBAAqDC,CAAAA,CAAAA,KAAK;AAC9DA,IAAAA,CAAAA,CAAEC,cAAAA,EAAe;AACjB,IAAA,IAAI,OAAOd,oBAAoB,UAAA,EAAY;AACzCA,MAAAA,eAAAA,CAAgBI,KAAK,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAMW,UAAAA,GAAatB,IAAAA,KAAS,MAAA,GAAS,IAAA,GAAOA,IAAAA;AAE5C,EAAA,uBACE,IAAA,CAAC,iBACC,KAAA,EACA,WAAA,EAAaE,YACb,UAAA,EAAYD,SAAAA,EACZ,GAAIgB,KAAAA,EAEJ,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,gBAAA,EAAA,EACC,KAAA,EAAOjB,IAAAA,EACP,KAAA,EAEA,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,qBAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,oBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAACuB,QAAA,EAAA,EACC,IAAA,EAAK,eAAA,EACL,MAAMR,QAAAA,IAAYO,UAAAA,EAClB,YAAA,EAAW,gBAAA,EAAgB,CAAA,EAE/B,CAAA;AAAA,QACCR,IAAAA,uBACES,QAAA,EAAA,EACC,IAAA,EAAMT,MACN,IAAA,EAAMC,QAAAA,IAAYO,YAAW,CAAA,GAE7B;AAAA,OAAA,EACN,CAAA;AAAA,sBACA,IAAA,CAAC,SAAA,EAAA,EACC,YAAA,EAAc,KAAA,EACd,KAAI,IAAA,EACJ,UAAA,EAAW,QAAA,EACX,SAAA,EAAS,MACT,cAAA,EAAe,eAAA,EACf,SAAA,EAAU,MAAA,EACV,UAAS,QAAA,EAET,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,sBACC,SAAA,EAAU,MAAA,EACV,IAAA,EAAMA,UAAAA,EACN,WAECV,QAAAA,EAAAA,KAAAA,EACH,CAAA;AAAA,QACCT,6BACC,GAAA,CAAC,UAAA,EAAA,EACC,MAAMa,WAAAA,GAAc,iBAAA,GAAoB,UACxC,YAAA,EAAcA,WAAAA,EACd,MAAMD,QAAAA,IAAYO,UAAAA,EAClB,cAAW,uBAAA,EACX,OAAA,EAASH,eACT,WAAA,EAAU,kBAAA,EACV,eAAY,uBAAA,EAAuB;AAAA,OAAA,EAGzC;AAAA,KAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,gBAAA,EAAA,EAAiB,QAAA,EAAUnB,IAAAA,EAC1B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,MAAMM,GAAAA,EAAI,CAAA;AAAA,MACjBD;AAAAA,KAAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AAEAK,kBAAAA,CAAmBc,WAAAA,GAAc,qBAAA;AACjCpB,cAAAA,CAAeqB,IAAAA,GAAOf,kBAAAA;AAOtB,MAAMgB,aAAAA,GAAgBC,MAAAA,CAAOC,cAAAA,CAAeC,IAAI,EAACC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,iFAAA,EAAA,GAAA,EAAA,GAAA,GAKxC,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC;AAAK,CAAA,KAAMD,MAAME,KAAAA,CAAMC,SAAAA,CAAU7B,GAAAA,CAAI2B,IAAI,GACxD,CAAC;AAAA,EAAEG;AAAW,CAAA,KAAMA,cAAc,aAAa,CAAA;AAQnD,MAAMC,aAAAA,GAAgBV,MAAAA,CAAOC,cAAAA,CAAeH,IAAI,EAACK,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,GAC7C,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOM;AAAY,CAAA,KAAM;AAAA,YAAA,EAE1BA,WAAAA,GAAc,aAAaN,KAAAA,CAAME,KAAAA,CAAMK,OAAO1B,KAAAA,CAAM2B,MAAAA,CAAOC,OAAO,CAAA,CAAA,GAAK,MAAM,CAAA;AAAA,mBAAA,EAE9DT,KAAAA,CAAMU,MAAAA,CAAOC,KAAAA,CAAM,CAAC,CAAC,CAAA;AAAA,sBAAA,EAClBX,KAAAA,CAAME,KAAAA,CAAMK,MAAAA,CAAO1B,KAAAA,CAAM+B,WAAWH,OAAO,CAAA;AAAA,EAAA,CAAA,EAE/D,CAAC;AAAA,EAAEL;AAAW,CAAA,KAAMA,cAAc,aAAa,CAAA;AAQnD,MAAMS,gBAAAA,GAAmBlB,MAAAA,CAAOC,cAAAA,CAAekB,OAAO,EAAChB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,gGAAA,EAAA,gJAAA,EAAA,KAAA,GAOnD,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOe,KAAAA,GAAQ,IAAA;AAAA,EAAMlC,KAAAA,GAAQ;AAAU,CAAA,KAAM;AAChD,EAAA,MAAMb,IAAAA,GAAa+C,KAAAA,KAAU,MAAA,GAAS,IAAA,GAAOA,KAAAA;AAE7C,EAAA,OAAO;AAAA,aAAA,EACIf,KAAAA,CAAME,KAAAA,CAAMC,SAAAA,CAAUa,KAAAA,CAAMD,KAAK,CAAC,CAAA;AAAA,SAAA,EACtCf,MAAME,KAAAA,CAAMe,SAAAA,CAAUjD,IAAI,CAAA,CAAEgD,MAAM1C,GAAG,CAAA;AAAA,WAAA,EACnC0B,MAAME,KAAAA,CAAMe,SAAAA,CAAUpC,MAAMA,KAAK,CAAA,CAAEqC,MAAMT,OAAO,CAAA;AAAA,UAAA,EACjDT,MAAME,KAAAA,CAAMe,SAAAA,CAAUjD,IAAI,CAAA,CAAEmD,UAAAA,CAAWD,MAAMT,OAAO,CAAA;;AAAA;AAAA,aAAA,EAGjDT,MAAME,KAAAA,CAAMe,SAAAA,CAAUpC,MAAMA,KAAK,CAAA,CAAEqC,MAAME,MAAM,CAAA;AAAA,YAAA,EAChDpB,MAAME,KAAAA,CAAMe,SAAAA,CAAUjD,IAAI,CAAA,CAAEmD,UAAAA,CAAWD,MAAME,MAAM,CAAA;AAAA;;AAAA;AAAA,aAAA,EAIlDpB,MAAME,KAAAA,CAAMe,SAAAA,CAAUpC,MAAMA,KAAK,CAAA,CAAEqC,MAAMG,KAAK,CAAA;AAAA,kBAAA,EACzCrB,KAAAA,CAAME,KAAAA,CAAMK,MAAAA,CAAO1B,KAAAA,CAAM2B,OAAOC,OAAO,CAAA;AAAA,YAAA,EAC7CT,MAAME,KAAAA,CAAMe,SAAAA,CAAUjD,IAAI,CAAA,CAAEmD,UAAAA,CAAWD,MAAMG,KAAK,CAAA;AAAA;AAAA;;AAAA;AAAA,WAAA,EAKnDrB,KAAAA,CAAMO,MAAAA,CAAO1B,KAAAA,CAAM2B,MAAAA,CAAOc,OAAO,CAAA;AAAA;AAAA,EAAA,CAAA;AAG5C,CAAA,EAMa,CAAC;AAAA,EAAEtB;AAAM,CAAA,KAAcA,KAAAA,CAAMO,MAAAA,CAAO1B,KAAAA,CAAM0C,MAAAA,CAAOd,OAAO,CAAA;AAKvE,MAAMe,oBAAAA,GAAuB7B,MAAAA,CAAO8B,GAAAA,CAAG3B,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gHAAA,EAAA,iDAAA,GAMnCc,gBAAgB,CAAA;AAKpB,MAAMa,qBAAAA,GAAwB/B,MAAAA,CAAO8B,GAAAA,CAAG3B,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yDAAA,CAAA,CAAA;AAMxC,MAAM4B,UAAAA,GAAahC,MAAAA,CAAOJ,QAAI,CAAA,CAACO,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAC3B,CAAC;AAAA,EAAE6B,YAAAA;AAAAA,EAAc5B;AAAM,CAAA,KACvB4B,YAAAA,IACA;AAAA;AAAA,kBAAA,EAEgB5B,KAAAA,CAAMO,MAAAA,CAAO1B,KAAAA,CAAM+B,UAAAA,CAAWH,OAAO,CAAA;AAAA;AAAA,oBAAA,EAEnCT,KAAAA,CAAMO,MAAAA,CAAO1B,KAAAA,CAAM0C,MAAAA,CAAOd,OAAO,CAAA;AAAA;AAAA,gBAAA,EAErCT,KAAAA,CAAMO,MAAAA,CAAO1B,KAAAA,CAAM0C,MAAAA,CAAOd,OAAO,CAAA;AAAA;AAAA,MAAA,CAE5C,CAAA;AAGP,MAAMoB,gBAAAA,GAAmBlC,MAAAA,CAAOC,cAAAA,CAAekC,OAAO,EAAChC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAA,iBAAA,GAC1C,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAO+B;AAAS,CAAA,KAAc/B,KAAAA,CAAME,KAAAA,CAAMC,SAAAA,CAAUa,KAAAA,CAAMe,QAAQ,CAAC,CAAA;AAInF,MAAMC,kBAAAA,GAAqBrC,MAAAA,CAAOsC,IAAI,CAAA,CAACnC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/MultiAccordion/MultiAccordion.tsx"],"sourcesContent":["import * as RadixAccordion from '@radix-ui/react-accordion';\nimport type { AssetSize } from '@/types';\nimport { Icon, type IconName } from '@/components/Icon';\n\nimport { Container } from '@/components/Container';\nimport { Spacer } from '@/components/Spacer';\nimport { Text } from '@/components/Text';\nimport {\n createContext,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n useContext,\n} from 'react';\nimport { GapOptions } from '@/components/Container';\nimport { SizeType as SpacerSizeType } from '@/components/Spacer';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './MultiAccordion.module.css';\n\ntype Size = 'none' | 'sm' | 'md' | 'lg';\ntype Color = 'default' | 'link';\n\ntype MarkAsCompletedFunctionType = (value: string) => void | Promise<void>;\n\ninterface MultiAccordionCommonProps {\n /** The accordion items to render */\n children: React.ReactNode;\n /** The size variant of the accordion */\n size?: Size;\n /** Whether the accordion should fill the full width of its container */\n fillWidth?: boolean;\n /** The gap between accordion items */\n gap?: GapOptions;\n /** Whether to show a border around each accordion item */\n showBorder?: boolean;\n /** Whether to show a check/completion indicator on items */\n showCheck?: boolean;\n /** Callback function to mark an item as completed */\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nexport type MultiAccordionProps = MultiAccordionCommonProps &\n (\n | Omit<RadixAccordion.AccordionMultipleProps, 'children'>\n | Omit<RadixAccordion.AccordionSingleProps, 'children'>\n );\n\ninterface MultiAccordionContextProps {\n size: Size;\n fillWidth: boolean;\n showBorder: boolean;\n showCheck: boolean;\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nconst MultiAccordionContext = createContext<MultiAccordionContextProps>({\n size: 'md',\n fillWidth: true,\n showBorder: true,\n showCheck: false,\n});\n\nconst rootVariants = cva(styles['multi-accordion'], {\n variants: {\n fillWidth: {\n true: styles['multi-accordion_fill-width'],\n false: '',\n },\n gap: {\n none: styles['multi-accordion_gap_none'],\n xxs: styles['multi-accordion_gap_xxs'],\n xs: styles['multi-accordion_gap_xs'],\n sm: styles['multi-accordion_gap_sm'],\n md: styles['multi-accordion_gap_md'],\n lg: styles['multi-accordion_gap_lg'],\n xl: styles['multi-accordion_gap_xl'],\n xxl: styles['multi-accordion_gap_xxl'],\n },\n },\n defaultVariants: {\n fillWidth: true,\n gap: 'md',\n },\n});\n\nexport const MultiAccordion = ({\n size = 'md',\n children,\n fillWidth = true,\n showCheck = false,\n showBorder = true,\n gap = 'md',\n markAsCompleted,\n className,\n ...delegated\n}: MultiAccordionProps) => {\n const contextValue = {\n size,\n fillWidth,\n showBorder,\n showCheck,\n markAsCompleted,\n };\n\n return (\n <RadixAccordion.Root\n {...delegated}\n className={cn(rootVariants({ fillWidth, gap }), className)}\n >\n <MultiAccordionContext.Provider value={contextValue}>\n {children}\n </MultiAccordionContext.Provider>\n </RadixAccordion.Root>\n );\n};\ninterface MultiAccordionItemProps extends Omit<\n RadixAccordion.AccordionItemProps,\n 'title'\n> {\n /** The title text or element displayed in the accordion item header */\n title: ReactNode;\n /** The color variant of the item */\n color?: Color;\n /** Optional icon to display next to the title */\n icon?: IconName;\n /** Size of the optional icon */\n iconSize?: AssetSize;\n /** Gap size between the header and content */\n gap?: SpacerSizeType;\n /** Whether this item is marked as completed */\n isCompleted?: boolean;\n}\n\nconst itemVariants = cva(styles['multi-accordion__item'], {\n variants: {\n showBorder: {\n true: '',\n false: styles['multi-accordion__item_no-border'],\n },\n fillWidth: {\n true: styles['multi-accordion__item_fill-width'],\n false: '',\n },\n },\n defaultVariants: {\n showBorder: true,\n fillWidth: true,\n },\n});\n\nconst triggerVariants = cva(styles['multi-accordion__trigger'], {\n variants: {\n size: {\n none: styles['multi-accordion__trigger_size_none'],\n sm: styles['multi-accordion__trigger_size_sm'],\n md: styles['multi-accordion__trigger_size_md'],\n lg: styles['multi-accordion__trigger_size_lg'],\n },\n font: {\n sm: styles['multi-accordion__trigger_font_sm'],\n md: styles['multi-accordion__trigger_font_md'],\n lg: styles['multi-accordion__trigger_font_lg'],\n },\n color: {\n default: styles['multi-accordion__trigger_color_default'],\n link: styles['multi-accordion__trigger_color_link'],\n },\n },\n defaultVariants: {\n size: 'md',\n font: 'md',\n color: 'default',\n },\n});\n\nconst contentVariants = cva(styles['multi-accordion__content'], {\n variants: {\n size: {\n none: styles['multi-accordion__content_padding_none'],\n sm: styles['multi-accordion__content_padding_sm'],\n md: styles['multi-accordion__content_padding_md'],\n lg: styles['multi-accordion__content_padding_lg'],\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nconst MultiAccordionItem = ({\n value,\n title,\n color,\n icon,\n iconSize,\n gap,\n children,\n isCompleted = false,\n className,\n ...props\n}: MultiAccordionItemProps): ReactElement => {\n const { fillWidth, size, showBorder, showCheck, markAsCompleted } =\n useContext(MultiAccordionContext);\n\n const onClickStatus: MouseEventHandler<HTMLOrSVGElement> = e => {\n e.preventDefault();\n if (typeof markAsCompleted === 'function') {\n markAsCompleted(value);\n }\n };\n\n const customSize = size === 'none' ? 'sm' : size;\n\n return (\n <RadixAccordion.Item\n value={value}\n {...props}\n className={cn(itemVariants({ showBorder, fillWidth }), className)}\n >\n <RadixAccordion.Trigger\n className={triggerVariants({\n size,\n font: customSize,\n color: color ?? 'default',\n })}\n >\n <div className={styles['multi-accordion__icons-wrapper']}>\n <div className={styles['multi-accordion__icon-wrapper']}>\n <Icon\n name=\"chevron-right\"\n size={iconSize ?? customSize}\n aria-label=\"accordion icon\"\n />\n </div>\n {icon ? (\n <Icon\n name={icon}\n size={iconSize ?? customSize}\n />\n ) : null}\n </div>\n <Container\n isResponsive={false}\n gap=\"sm\"\n alignItems=\"center\"\n fillWidth\n justifyContent=\"space-between\"\n component=\"span\"\n overflow=\"hidden\"\n >\n <Text\n className={styles['multi-accordion__title']}\n component=\"span\"\n size={customSize}\n fillWidth={fillWidth}\n >\n {title}\n </Text>\n {showCheck && (\n <Icon\n className={cn(\n styles['multi-accordion__status-icon'],\n isCompleted && styles['multi-accordion__status-icon_completed']\n )}\n name={isCompleted ? 'check-in-circle' : 'circle'}\n size={iconSize ?? customSize}\n aria-label=\"accordion icon status\"\n onClick={onClickStatus}\n data-icon=\"accordion-status\"\n data-testid=\"accordion-status-icon\"\n />\n )}\n </Container>\n </RadixAccordion.Trigger>\n <RadixAccordion.Content className={contentVariants({ size })}>\n <Spacer size={gap} />\n {children}\n </RadixAccordion.Content>\n </RadixAccordion.Item>\n );\n};\n\nMultiAccordionItem.displayName = 'MultiAccordion.Item';\nMultiAccordion.Item = MultiAccordionItem;\n"],"names":["MultiAccordionContext","createContext","size","fillWidth","showBorder","showCheck","rootVariants","cva","styles","variants","true","false","gap","none","xxs","xs","sm","md","lg","xl","xxl","defaultVariants","MultiAccordion","children","markAsCompleted","className","delegated","contextValue","cn","itemVariants","triggerVariants","font","color","default","link","contentVariants","MultiAccordionItem","value","title","icon","iconSize","isCompleted","props","useContext","onClickStatus","e","preventDefault","customSize","Icon","displayName","Item"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { GenericMenuPanel, Arrow } from '../GenericMenu/index.js';
4
4
  import { styled } from 'styled-components';
5
5
  import { EmptyButton } from '../EmptyButton/index.js';
6
6
  import Popover_Arrow from '../Assets/Icons/Popover-Arrow.js';
7
+ import { useResolvedPortalContainer } from '../../providers/PortalContext.js';
7
8
  import { Icon as SvgImage } from '../Icon/index.js';
8
9
 
9
10
  const Popover = ({
@@ -63,7 +64,8 @@ const PopoverContent = ({
63
64
  container,
64
65
  ...props
65
66
  }) => {
66
- return /* @__PURE__ */ jsx(RadixPopover.Portal, { forceMount, container, children: /* @__PURE__ */ jsxs(MenuPanel, { as: RadixPopover.Content, $type: "popover", $showClose: showClose, $showArrow: showArrow, sideOffset: 4, ...props, children: [
67
+ const portalContainer = useResolvedPortalContainer(container);
68
+ return /* @__PURE__ */ jsx(RadixPopover.Portal, { forceMount, container: portalContainer, children: /* @__PURE__ */ jsxs(MenuPanel, { as: RadixPopover.Content, $type: "popover", $showClose: showClose, $showArrow: showArrow, sideOffset: 4, ...props, children: [
67
69
  showClose && /* @__PURE__ */ jsx(CloseButton, { as: RadixPopover.Close, asChild: true, children: /* @__PURE__ */ jsx(SvgImage, { name: "cross" }) }),
68
70
  showArrow && /* @__PURE__ */ jsx(Arrow, { asChild: true, as: RadixPopover.Arrow, width: 20, height: 10, children: /* @__PURE__ */ jsx(Popover_Arrow, {}) }),
69
71
  children
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as RadixPopover from '@radix-ui/react-popover';\nimport { Arrow, GenericMenuPanel } from '@/components/GenericMenu';\nimport { styled } from 'styled-components';\nimport { ReactNode } from 'react';\nimport { Icon } from '@/components/Icon';\nimport { EmptyButton } from '@/components/EmptyButton';\nimport Popover_Arrow from '@/components/Assets/Icons/Popover-Arrow';\n\nexport const Popover = ({ children, ...props }: RadixPopover.PopoverProps) => {\n return <RadixPopover.Root {...props}>{children}</RadixPopover.Root>;\n};\n\nconst Trigger = styled(RadixPopover.Trigger)`\n background: inherit;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n width: fit-content;\n`;\ninterface TriggerProps extends RadixPopover.PopoverTriggerProps {\n anchor?: ReactNode;\n}\n\nconst PopoverTrigger = ({ anchor, children, ...props }: TriggerProps) => {\n return (\n <>\n <Trigger\n asChild\n {...props}\n >\n <div>{children}</div>\n </Trigger>\n {anchor && <RadixPopover.Anchor asChild>{anchor}</RadixPopover.Anchor>}\n </>\n );\n};\nPopoverTrigger.displayName = 'PopoverTrigger';\nPopover.Trigger = PopoverTrigger;\n\ninterface PopoverContentProps extends RadixPopover.PopoverContentProps {\n /** Whether to show an arrow pointing to the trigger element */\n showArrow?: boolean;\n /** Whether to show a close button in the popover */\n showClose?: boolean;\n /** Forces the popover to mount in the DOM even when closed */\n forceMount?: true;\n /** Custom container element for the popover portal */\n container?: HTMLElement | null;\n}\n\nconst MenuPanel = styled(GenericMenuPanel)<{ $showClose?: boolean }>`\n display: block;\n padding: ${({ theme }) => theme.click.popover.space.y}\n ${({ theme }) => theme.click.popover.space.x};\n background-color: ${({ theme }) => theme.click.popover.color.panel.background.default};\n border: 1px solid ${({ theme }) => theme.click.popover.color.panel.stroke.default};\n border-radius: ${({ theme }) => theme.click.popover.radii.all};\n box-shadow: ${({ theme }) => theme.click.popover.shadow.default};\n\n ${({ $showClose }) => ($showClose ? 'padding-top: 1rem;' : '')};\n`;\n\nconst CloseButton = styled(EmptyButton)`\n position: absolute;\n top: ${({ theme }) => theme.click.popover.space.y};\n right: ${({ theme }) => theme.click.popover.space.x};\n width: ${({ theme }) => theme.click.popover.icon.size.width};\n height: ${({ theme }) => theme.click.popover.icon.size.height};\n`;\n\nconst PopoverContent = ({\n children,\n showArrow,\n showClose,\n forceMount,\n container,\n ...props\n}: PopoverContentProps) => {\n return (\n <RadixPopover.Portal\n forceMount={forceMount}\n container={container}\n >\n <MenuPanel\n as={RadixPopover.Content}\n $type=\"popover\"\n $showClose={showClose}\n $showArrow={showArrow}\n sideOffset={4}\n {...props}\n >\n {showClose && (\n <CloseButton\n as={RadixPopover.Close}\n asChild\n >\n <Icon name=\"cross\" />\n </CloseButton>\n )}\n {showArrow && (\n <Arrow\n asChild\n as={RadixPopover.Arrow}\n width={20}\n height={10}\n >\n <Popover_Arrow />\n </Arrow>\n )}\n {children}\n </MenuPanel>\n </RadixPopover.Portal>\n );\n};\nPopoverContent.displayName = 'PopoverContent';\nPopover.Content = PopoverContent;\n"],"names":["Popover","children","props","Trigger","styled","RadixPopover","withConfig","componentId","PopoverTrigger","anchor","displayName","MenuPanel","GenericMenuPanel","theme","click","popover","space","y","x","color","panel","background","default","stroke","radii","all","shadow","$showClose","CloseButton","EmptyButton","icon","size","width","height","PopoverContent","showArrow","showClose","forceMount","container","Content","Close","Icon","Arrow"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as RadixPopover from '@radix-ui/react-popover';\nimport { Arrow, GenericMenuPanel } from '@/components/GenericMenu';\nimport { styled } from 'styled-components';\nimport { ReactNode } from 'react';\nimport { Icon } from '@/components/Icon';\nimport { EmptyButton } from '@/components/EmptyButton';\nimport Popover_Arrow from '@/components/Assets/Icons/Popover-Arrow';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\n\nexport const Popover = ({ children, ...props }: RadixPopover.PopoverProps) => {\n return <RadixPopover.Root {...props}>{children}</RadixPopover.Root>;\n};\n\nconst Trigger = styled(RadixPopover.Trigger)`\n background: inherit;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n width: fit-content;\n`;\ninterface TriggerProps extends RadixPopover.PopoverTriggerProps {\n anchor?: ReactNode;\n}\n\nconst PopoverTrigger = ({ anchor, children, ...props }: TriggerProps) => {\n return (\n <>\n <Trigger\n asChild\n {...props}\n >\n <div>{children}</div>\n </Trigger>\n {anchor && <RadixPopover.Anchor asChild>{anchor}</RadixPopover.Anchor>}\n </>\n );\n};\nPopoverTrigger.displayName = 'PopoverTrigger';\nPopover.Trigger = PopoverTrigger;\n\ninterface PopoverContentProps extends RadixPopover.PopoverContentProps {\n /** Whether to show an arrow pointing to the trigger element */\n showArrow?: boolean;\n /** Whether to show a close button in the popover */\n showClose?: boolean;\n /** Forces the popover to mount in the DOM even when closed */\n forceMount?: true;\n /** Custom container element for the popover portal */\n container?: HTMLElement | null;\n}\n\nconst MenuPanel = styled(GenericMenuPanel)<{ $showClose?: boolean }>`\n display: block;\n padding: ${({ theme }) => theme.click.popover.space.y}\n ${({ theme }) => theme.click.popover.space.x};\n background-color: ${({ theme }) => theme.click.popover.color.panel.background.default};\n border: 1px solid ${({ theme }) => theme.click.popover.color.panel.stroke.default};\n border-radius: ${({ theme }) => theme.click.popover.radii.all};\n box-shadow: ${({ theme }) => theme.click.popover.shadow.default};\n\n ${({ $showClose }) => ($showClose ? 'padding-top: 1rem;' : '')};\n`;\n\nconst CloseButton = styled(EmptyButton)`\n position: absolute;\n top: ${({ theme }) => theme.click.popover.space.y};\n right: ${({ theme }) => theme.click.popover.space.x};\n width: ${({ theme }) => theme.click.popover.icon.size.width};\n height: ${({ theme }) => theme.click.popover.icon.size.height};\n`;\n\nconst PopoverContent = ({\n children,\n showArrow,\n showClose,\n forceMount,\n container,\n ...props\n}: PopoverContentProps) => {\n const portalContainer = useResolvedPortalContainer(container);\n\n return (\n <RadixPopover.Portal\n forceMount={forceMount}\n container={portalContainer}\n >\n <MenuPanel\n as={RadixPopover.Content}\n $type=\"popover\"\n $showClose={showClose}\n $showArrow={showArrow}\n sideOffset={4}\n {...props}\n >\n {showClose && (\n <CloseButton\n as={RadixPopover.Close}\n asChild\n >\n <Icon name=\"cross\" />\n </CloseButton>\n )}\n {showArrow && (\n <Arrow\n asChild\n as={RadixPopover.Arrow}\n width={20}\n height={10}\n >\n <Popover_Arrow />\n </Arrow>\n )}\n {children}\n </MenuPanel>\n </RadixPopover.Portal>\n );\n};\nPopoverContent.displayName = 'PopoverContent';\nPopover.Content = PopoverContent;\n"],"names":["Popover","children","props","Trigger","styled","RadixPopover","withConfig","componentId","PopoverTrigger","anchor","displayName","MenuPanel","GenericMenuPanel","theme","click","popover","space","y","x","color","panel","background","default","stroke","radii","all","shadow","$showClose","CloseButton","EmptyButton","icon","size","width","height","PopoverContent","showArrow","showClose","forceMount","container","portalContainer","useResolvedPortalContainer","Content","Close","Icon","Arrow"],"mappings":"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"}
@@ -12,6 +12,7 @@ import { IconWrapper } from '../../IconWrapper/index.js';
12
12
  import { useInputModality } from '../../../hooks/internal/useInputModality.js';
13
13
  import { styled } from 'styled-components';
14
14
  import { getTextFromNodes } from '../../../lib/getTextFromNodes.js';
15
+ import { useResolvedPortalContainer } from '../../../providers/PortalContext.js';
15
16
  import { FormRoot } from '../../FormContainer/FormRoot.js';
16
17
  import { FormElementContainer } from '../../FormContainer/FormElementContainer.js';
17
18
  import { Icon as SvgImage } from '../../Icon/index.js';
@@ -226,6 +227,7 @@ const InternalSelect = ({
226
227
  }, [children, options, updateList]);
227
228
  const inputRef = useRef(null);
228
229
  const inputModalityProps = useInputModality();
230
+ const portalContainer = useResolvedPortalContainer(container);
229
231
  const onFocus = () => {
230
232
  inputRef.current?.focus();
231
233
  };
@@ -300,7 +302,7 @@ const InternalSelect = ({
300
302
  /* @__PURE__ */ jsx(SvgImage, { name: "sort", size: "sm" })
301
303
  ] }),
302
304
  form && /* @__PURE__ */ jsx(HiddenSelectElement, { multiple, name, form, value: selectedValues, onChange: () => null, children: list.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, disabled: item.disabled, children: item.value }, item.value)) }),
303
- /* @__PURE__ */ jsx(Portal, { container, children: /* @__PURE__ */ jsx(SelectPopoverContent, { ...inputModalityProps, sideOffset: 5, onFocus, onCloseAutoFocus: () => {
305
+ /* @__PURE__ */ jsx(Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(SelectPopoverContent, { ...inputModalityProps, sideOffset: 5, onFocus, onCloseAutoFocus: () => {
304
306
  onUpdateSearch("");
305
307
  }, onOpenAutoFocus: () => {
306
308
  setHighlighted(visibleList.current[0]);
@@ -455,7 +457,7 @@ const MultiSelectCheckboxItem = forwardRef(({
455
457
  }
456
458
  const isChecked = selectedValues.includes(value);
457
459
  return /* @__PURE__ */ jsxs(Fragment, { children: [
458
- /* @__PURE__ */ jsx(GenericMenuItem, { ...props, "data-value": value, onClick: handleMenuItemClick, onMouseOver: handleMenuItemMouseOver, ref: forwardedRef, "data-disabled": disabled ? true : void 0, "data-highlighted": highlighted == value ? "true" : void 0, "data-testid": `multi-select-checkbox-${value}`, "cui-select-item": "", children: /* @__PURE__ */ jsxs(Container, { orientation: "horizontal", gap: "xs", overflow: "hidden", children: [
460
+ /* @__PURE__ */ jsx(GenericMenuItem, { ...props, "data-value": value, onClick: handleMenuItemClick, onMouseOver: handleMenuItemMouseOver, ref: forwardedRef, "data-disabled": disabled ? true : void 0, "data-highlighted": highlighted == value ? "true" : void 0, "data-testid": `multi-select-checkbox-${value}`, "cui-select-item": "", children: /* @__PURE__ */ jsxs(Container, { orientation: "horizontal", gap: "xs", overflow: "hidden", isResponsive: false, children: [
459
461
  /* @__PURE__ */ jsx(Checkbox, { checked: isChecked, "data-testid": "multi-select-checkbox", disabled, variant: variant ?? "default" }),
460
462
  /* @__PURE__ */ jsx(IconWrapper, { icon, iconDir, gap: "xxs", isResponsive: false, children: label ? /* @__PURE__ */ jsxs(Fragment, { children: [
461
463
  label,