@mantine/core 4.0.1 → 4.0.4

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 (159) hide show
  1. package/cjs/components/AppShell/AppShell.context.js +15 -0
  2. package/cjs/components/AppShell/AppShell.context.js.map +1 -0
  3. package/cjs/components/AppShell/AppShell.js +8 -27
  4. package/cjs/components/AppShell/AppShell.js.map +1 -1
  5. package/cjs/components/AppShell/AppShell.styles.js +8 -16
  6. package/cjs/components/AppShell/AppShell.styles.js.map +1 -1
  7. package/cjs/components/AppShell/Header/Header.js +10 -2
  8. package/cjs/components/AppShell/Header/Header.js.map +1 -1
  9. package/cjs/components/AppShell/Navbar/Navbar.js +24 -3
  10. package/cjs/components/AppShell/Navbar/Navbar.js.map +1 -1
  11. package/cjs/components/AppShell/Navbar/Navbar.styles.js +3 -2
  12. package/cjs/components/AppShell/Navbar/Navbar.styles.js.map +1 -1
  13. package/cjs/components/AppShell/{utils → Navbar}/get-sorted-breakpoints/get-sorted-breakpoints.js +0 -0
  14. package/cjs/components/AppShell/Navbar/get-sorted-breakpoints/get-sorted-breakpoints.js.map +1 -0
  15. package/cjs/components/ColorPicker/converters/parsers.js +4 -4
  16. package/cjs/components/ColorPicker/converters/parsers.js.map +1 -1
  17. package/cjs/components/List/List.context.js +14 -0
  18. package/cjs/components/List/List.context.js.map +1 -0
  19. package/cjs/components/List/List.js +5 -13
  20. package/cjs/components/List/List.js.map +1 -1
  21. package/cjs/components/List/ListItem/ListItem.js +7 -20
  22. package/cjs/components/List/ListItem/ListItem.js.map +1 -1
  23. package/cjs/components/Menu/Menu.context.js +18 -0
  24. package/cjs/components/Menu/Menu.context.js.map +1 -0
  25. package/cjs/components/Menu/Menu.js +27 -55
  26. package/cjs/components/Menu/Menu.js.map +1 -1
  27. package/cjs/components/Menu/Menu.styles.js +5 -5
  28. package/cjs/components/Menu/Menu.styles.js.map +1 -1
  29. package/cjs/components/Menu/MenuItem/MenuItem.js +21 -15
  30. package/cjs/components/Menu/MenuItem/MenuItem.js.map +1 -1
  31. package/cjs/components/Menu/MenuLabel/MenuLabel.js +30 -1
  32. package/cjs/components/Menu/MenuLabel/MenuLabel.js.map +1 -1
  33. package/cjs/components/Menu/MenuLabel/MenuLabel.styles.js +18 -0
  34. package/cjs/components/Menu/MenuLabel/MenuLabel.styles.js.map +1 -0
  35. package/cjs/components/MultiSelect/MultiSelect.js +9 -0
  36. package/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  37. package/cjs/components/RadioGroup/Radio/Radio.styles.js +5 -1
  38. package/cjs/components/RadioGroup/Radio/Radio.styles.js.map +1 -1
  39. package/cjs/components/Tooltip/Tooltip.js +2 -1
  40. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  41. package/cjs/index.js +2 -0
  42. package/cjs/index.js.map +1 -1
  43. package/cjs/utils/get-context-item-index/get-context-item-index.js +19 -0
  44. package/cjs/utils/get-context-item-index/get-context-item-index.js.map +1 -0
  45. package/esm/components/AppShell/AppShell.context.js +10 -0
  46. package/esm/components/AppShell/AppShell.context.js.map +1 -0
  47. package/esm/components/AppShell/AppShell.js +9 -28
  48. package/esm/components/AppShell/AppShell.js.map +1 -1
  49. package/esm/components/AppShell/AppShell.styles.js +8 -16
  50. package/esm/components/AppShell/AppShell.styles.js.map +1 -1
  51. package/esm/components/AppShell/Header/Header.js +11 -3
  52. package/esm/components/AppShell/Header/Header.js.map +1 -1
  53. package/esm/components/AppShell/Navbar/Navbar.js +25 -4
  54. package/esm/components/AppShell/Navbar/Navbar.js.map +1 -1
  55. package/esm/components/AppShell/Navbar/Navbar.styles.js +3 -2
  56. package/esm/components/AppShell/Navbar/Navbar.styles.js.map +1 -1
  57. package/esm/components/AppShell/{utils → Navbar}/get-sorted-breakpoints/get-sorted-breakpoints.js +0 -0
  58. package/esm/components/AppShell/Navbar/get-sorted-breakpoints/get-sorted-breakpoints.js.map +1 -0
  59. package/esm/components/ColorPicker/converters/parsers.js +4 -4
  60. package/esm/components/ColorPicker/converters/parsers.js.map +1 -1
  61. package/esm/components/List/List.context.js +9 -0
  62. package/esm/components/List/List.context.js.map +1 -0
  63. package/esm/components/List/List.js +5 -13
  64. package/esm/components/List/List.js.map +1 -1
  65. package/esm/components/List/ListItem/ListItem.js +7 -20
  66. package/esm/components/List/ListItem/ListItem.js.map +1 -1
  67. package/esm/components/Menu/Menu.context.js +13 -0
  68. package/esm/components/Menu/Menu.context.js.map +1 -0
  69. package/esm/components/Menu/Menu.js +27 -55
  70. package/esm/components/Menu/Menu.js.map +1 -1
  71. package/esm/components/Menu/Menu.styles.js +5 -5
  72. package/esm/components/Menu/Menu.styles.js.map +1 -1
  73. package/esm/components/Menu/MenuItem/MenuItem.js +22 -17
  74. package/esm/components/Menu/MenuItem/MenuItem.js.map +1 -1
  75. package/esm/components/Menu/MenuLabel/MenuLabel.js +26 -1
  76. package/esm/components/Menu/MenuLabel/MenuLabel.js.map +1 -1
  77. package/esm/components/Menu/MenuLabel/MenuLabel.styles.js +14 -0
  78. package/esm/components/Menu/MenuLabel/MenuLabel.styles.js.map +1 -0
  79. package/esm/components/MultiSelect/MultiSelect.js +9 -0
  80. package/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  81. package/esm/components/RadioGroup/Radio/Radio.styles.js +5 -1
  82. package/esm/components/RadioGroup/Radio/Radio.styles.js.map +1 -1
  83. package/esm/components/Tooltip/Tooltip.js +3 -2
  84. package/esm/components/Tooltip/Tooltip.js.map +1 -1
  85. package/esm/index.js +1 -0
  86. package/esm/index.js.map +1 -1
  87. package/esm/utils/get-context-item-index/get-context-item-index.js +15 -0
  88. package/esm/utils/get-context-item-index/get-context-item-index.js.map +1 -0
  89. package/lib/components/ActionIcon/CloseButton/CloseButton.d.ts +1 -1
  90. package/lib/components/Alert/Alert.styles.d.ts +2 -2
  91. package/lib/components/AppShell/AppShell.context.d.ts +9 -0
  92. package/lib/components/AppShell/AppShell.context.d.ts.map +1 -0
  93. package/lib/components/AppShell/AppShell.d.ts.map +1 -1
  94. package/lib/components/AppShell/AppShell.styles.d.ts +0 -5
  95. package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
  96. package/lib/components/AppShell/Header/Header.d.ts.map +1 -1
  97. package/lib/components/AppShell/Navbar/Navbar.d.ts.map +1 -1
  98. package/lib/components/AppShell/Navbar/Navbar.styles.d.ts.map +1 -1
  99. package/lib/components/AppShell/{utils → Navbar}/get-sorted-breakpoints/get-sorted-breakpoints.d.ts +0 -0
  100. package/lib/components/AppShell/Navbar/get-sorted-breakpoints/get-sorted-breakpoints.d.ts.map +1 -0
  101. package/lib/components/Blockquote/Blockquote.styles.d.ts +2 -2
  102. package/lib/components/Checkbox/Checkbox.styles.d.ts +2 -2
  103. package/lib/components/Chips/Chip/Chip.styles.d.ts +2 -2
  104. package/lib/components/Drawer/Drawer.styles.d.ts +2 -2
  105. package/lib/components/Input/Input.styles.d.ts +2 -2
  106. package/lib/components/List/List.context.d.ts +14 -0
  107. package/lib/components/List/List.context.d.ts.map +1 -0
  108. package/lib/components/List/List.d.ts.map +1 -1
  109. package/lib/components/List/ListItem/ListItem.d.ts +2 -6
  110. package/lib/components/List/ListItem/ListItem.d.ts.map +1 -1
  111. package/lib/components/Menu/Menu.context.d.ts +16 -0
  112. package/lib/components/Menu/Menu.context.d.ts.map +1 -0
  113. package/lib/components/Menu/Menu.d.ts +2 -2
  114. package/lib/components/Menu/Menu.d.ts.map +1 -1
  115. package/lib/components/Menu/Menu.styles.d.ts +2 -2
  116. package/lib/components/Menu/MenuItem/MenuItem.d.ts +8 -14
  117. package/lib/components/Menu/MenuItem/MenuItem.d.ts.map +1 -1
  118. package/lib/components/Menu/MenuLabel/MenuLabel.d.ts +4 -2
  119. package/lib/components/Menu/MenuLabel/MenuLabel.d.ts.map +1 -1
  120. package/lib/components/Menu/MenuLabel/MenuLabel.styles.d.ts +7 -0
  121. package/lib/components/Menu/MenuLabel/MenuLabel.styles.d.ts.map +1 -0
  122. package/lib/components/Modal/Modal.styles.d.ts +2 -2
  123. package/lib/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  124. package/lib/components/MultiSelect/MultiSelect.styles.d.ts +2 -2
  125. package/lib/components/Notification/Notification.styles.d.ts +2 -2
  126. package/lib/components/RadioGroup/Radio/Radio.styles.d.ts.map +1 -1
  127. package/lib/components/SegmentedControl/SegmentedControl.styles.d.ts +2 -2
  128. package/lib/components/Tabs/TabControl/TabControl.d.ts +1 -1
  129. package/lib/components/Tabs/Tabs.styles.d.ts +2 -2
  130. package/lib/components/Tooltip/Tooltip.d.ts.map +1 -1
  131. package/lib/components/Tooltip/Tooltip.styles.d.ts +2 -2
  132. package/lib/utils/get-context-item-index/get-context-item-index.d.ts +5 -0
  133. package/lib/utils/get-context-item-index/get-context-item-index.d.ts.map +1 -0
  134. package/lib/utils/index.d.ts +1 -0
  135. package/lib/utils/index.d.ts.map +1 -1
  136. package/package.json +3 -3
  137. package/cjs/components/AppShell/utils/get-element-height/get-element-height.js +0 -12
  138. package/cjs/components/AppShell/utils/get-element-height/get-element-height.js.map +0 -1
  139. package/cjs/components/AppShell/utils/get-navbar-base-width/get-navbar-base-width.js +0 -12
  140. package/cjs/components/AppShell/utils/get-navbar-base-width/get-navbar-base-width.js.map +0 -1
  141. package/cjs/components/AppShell/utils/get-navbar-breakpoints/get-navbar-breakpoints.js +0 -14
  142. package/cjs/components/AppShell/utils/get-navbar-breakpoints/get-navbar-breakpoints.js.map +0 -1
  143. package/cjs/components/AppShell/utils/get-sorted-breakpoints/get-sorted-breakpoints.js.map +0 -1
  144. package/esm/components/AppShell/utils/get-element-height/get-element-height.js +0 -8
  145. package/esm/components/AppShell/utils/get-element-height/get-element-height.js.map +0 -1
  146. package/esm/components/AppShell/utils/get-navbar-base-width/get-navbar-base-width.js +0 -8
  147. package/esm/components/AppShell/utils/get-navbar-base-width/get-navbar-base-width.js.map +0 -1
  148. package/esm/components/AppShell/utils/get-navbar-breakpoints/get-navbar-breakpoints.js +0 -10
  149. package/esm/components/AppShell/utils/get-navbar-breakpoints/get-navbar-breakpoints.js.map +0 -1
  150. package/esm/components/AppShell/utils/get-sorted-breakpoints/get-sorted-breakpoints.js.map +0 -1
  151. package/lib/components/AppShell/utils/get-element-height/get-element-height.d.ts +0 -3
  152. package/lib/components/AppShell/utils/get-element-height/get-element-height.d.ts.map +0 -1
  153. package/lib/components/AppShell/utils/get-navbar-base-width/get-navbar-base-width.d.ts +0 -3
  154. package/lib/components/AppShell/utils/get-navbar-base-width/get-navbar-base-width.d.ts.map +0 -1
  155. package/lib/components/AppShell/utils/get-navbar-breakpoints/get-navbar-breakpoints.d.ts +0 -7
  156. package/lib/components/AppShell/utils/get-navbar-breakpoints/get-navbar-breakpoints.d.ts.map +0 -1
  157. package/lib/components/AppShell/utils/get-sorted-breakpoints/get-sorted-breakpoints.d.ts.map +0 -1
  158. package/lib/components/AppShell/utils/index.d.ts +0 -5
  159. package/lib/components/AppShell/utils/index.d.ts.map +0 -1
@@ -1,5 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
- import { getDefaultZIndex, useMantineDefaultProps } from '@mantine/styles';
2
+ import { getDefaultZIndex, useMantineDefaultProps, Global } from '@mantine/styles';
3
+ import { useAppShellContext } from '../AppShell.context.js';
4
+ import { getSortedBreakpoints } from './get-sorted-breakpoints/get-sorted-breakpoints.js';
3
5
  import { NavbarSection } from './NavbarSection/NavbarSection.js';
4
6
  import useStyles from './Navbar.styles.js';
5
7
  import { Box } from '../../Box/Box.js';
@@ -33,7 +35,6 @@ var __objRest = (source, exclude) => {
33
35
  return target;
34
36
  };
35
37
  const defaultProps = {
36
- height: "100vh",
37
38
  fixed: false,
38
39
  position: { top: 0, left: 0 },
39
40
  zIndex: getDefaultZIndex("app"),
@@ -66,12 +67,32 @@ const Navbar = forwardRef((props, ref) => {
66
67
  "styles",
67
68
  "children"
68
69
  ]);
69
- const { classes, cx } = useStyles({ width, height, fixed, position, hiddenBreakpoint, zIndex }, { classNames, styles, name: "Navbar" });
70
+ const ctx = useAppShellContext();
71
+ const { classes, cx, theme } = useStyles({
72
+ width,
73
+ height,
74
+ fixed: ctx.fixed || fixed,
75
+ position,
76
+ hiddenBreakpoint,
77
+ zIndex: ctx.zIndex || zIndex
78
+ }, { classNames, styles, name: "Navbar" });
79
+ const breakpoints = getSortedBreakpoints(width, theme).reduce((acc, [breakpoint, breakpointSize]) => {
80
+ acc[`@media (min-width: ${breakpoint + 1}px)`] = {
81
+ "--mantine-navbar-width": `${breakpointSize}px`
82
+ };
83
+ return acc;
84
+ }, {});
70
85
  return /* @__PURE__ */ React.createElement(Box, __spreadValues({
71
86
  component: "nav",
72
87
  ref,
73
88
  className: cx(classes.root, { [classes.hidden]: hidden }, className)
74
- }, others), children);
89
+ }, others), children, /* @__PURE__ */ React.createElement(Global, {
90
+ styles: () => ({
91
+ ":root": __spreadValues({
92
+ "--mantine-navbar-width": (width == null ? void 0 : width.base) || "0px"
93
+ }, breakpoints)
94
+ })
95
+ }));
75
96
  });
76
97
  Navbar.Section = NavbarSection;
77
98
  Navbar.displayName = "@mantine/core/Navbar";
@@ -1 +1 @@
1
- {"version":3,"file":"Navbar.js","sources":["../../../../src/components/AppShell/Navbar/Navbar.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n ClassNames,\n DefaultProps,\n MantineNumberSize,\n getDefaultZIndex,\n ForwardRefWithStaticComponents,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../../Box';\nimport { NavbarSection } from './NavbarSection/NavbarSection';\nimport useStyles, { NavbarPosition, NavbarWidth } from './Navbar.styles';\n\nexport type NavbarStylesNames = ClassNames<typeof useStyles>;\n\nexport interface NavbarProps\n extends DefaultProps<NavbarStylesNames>,\n React.ComponentPropsWithRef<'nav'> {\n /** Navbar width with breakpoints */\n width?: NavbarWidth;\n\n /** Navbar height */\n height?: string | number;\n\n /** Navbar content */\n children: React.ReactNode;\n\n /** Set position to fixed */\n fixed?: boolean;\n\n /** Position for fixed Navbar */\n position?: NavbarPosition;\n\n /** Breakpoint at which navbar will be hidden if hidden prop is true */\n hiddenBreakpoint?: MantineNumberSize;\n\n /** Set to true to hide breakpoint at hiddenBreakpoint */\n hidden?: boolean;\n\n /** z-index */\n zIndex?: number;\n}\n\ntype NavbarComponent = ForwardRefWithStaticComponents<\n NavbarProps,\n { Section: typeof NavbarSection }\n>;\n\nconst defaultProps: Partial<NavbarProps> = {\n height: '100vh',\n fixed: false,\n position: { top: 0, left: 0 },\n zIndex: getDefaultZIndex('app'),\n hiddenBreakpoint: 'md',\n hidden: false,\n};\n\nexport const Navbar: NavbarComponent = forwardRef<HTMLElement, NavbarProps>(\n (props: NavbarProps, ref) => {\n const {\n width,\n height,\n fixed,\n position,\n zIndex,\n hiddenBreakpoint,\n hidden,\n className,\n classNames,\n styles,\n children,\n ...others\n } = useMantineDefaultProps('Navbar', defaultProps, props);\n\n const { classes, cx } = useStyles(\n { width, height, fixed, position, hiddenBreakpoint, zIndex },\n { classNames, styles, name: 'Navbar' }\n );\n\n return (\n <Box\n component=\"nav\"\n ref={ref}\n className={cx(classes.root, { [classes.hidden]: hidden }, className)}\n {...others}\n >\n {children}\n </Box>\n );\n }\n) as any;\n\nNavbar.Section = NavbarSection;\nNavbar.displayName = '@mantine/core/Navbar';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navbar.js","sources":["../../../../src/components/AppShell/Navbar/Navbar.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n ClassNames,\n DefaultProps,\n MantineNumberSize,\n getDefaultZIndex,\n ForwardRefWithStaticComponents,\n useMantineDefaultProps,\n Global,\n} from '@mantine/styles';\nimport { Box } from '../../Box';\nimport { useAppShellContext } from '../AppShell.context';\nimport { getSortedBreakpoints } from './get-sorted-breakpoints/get-sorted-breakpoints';\nimport { NavbarSection } from './NavbarSection/NavbarSection';\nimport useStyles, { NavbarPosition, NavbarWidth } from './Navbar.styles';\n\nexport type NavbarStylesNames = ClassNames<typeof useStyles>;\n\nexport interface NavbarProps\n extends DefaultProps<NavbarStylesNames>,\n React.ComponentPropsWithRef<'nav'> {\n /** Navbar width with breakpoints */\n width?: NavbarWidth;\n\n /** Navbar height */\n height?: string | number;\n\n /** Navbar content */\n children: React.ReactNode;\n\n /** Set position to fixed */\n fixed?: boolean;\n\n /** Position for fixed Navbar */\n position?: NavbarPosition;\n\n /** Breakpoint at which navbar will be hidden if hidden prop is true */\n hiddenBreakpoint?: MantineNumberSize;\n\n /** Set to true to hide breakpoint at hiddenBreakpoint */\n hidden?: boolean;\n\n /** z-index */\n zIndex?: number;\n}\n\ntype NavbarComponent = ForwardRefWithStaticComponents<\n NavbarProps,\n { Section: typeof NavbarSection }\n>;\n\nconst defaultProps: Partial<NavbarProps> = {\n fixed: false,\n position: { top: 0, left: 0 },\n zIndex: getDefaultZIndex('app'),\n hiddenBreakpoint: 'md',\n hidden: false,\n};\n\nexport const Navbar: NavbarComponent = forwardRef<HTMLElement, NavbarProps>(\n (props: NavbarProps, ref) => {\n const {\n width,\n height,\n fixed,\n position,\n zIndex,\n hiddenBreakpoint,\n hidden,\n className,\n classNames,\n styles,\n children,\n ...others\n } = useMantineDefaultProps('Navbar', defaultProps, props);\n const ctx = useAppShellContext();\n\n const { classes, cx, theme } = useStyles(\n {\n width,\n height,\n fixed: ctx.fixed || fixed,\n position,\n hiddenBreakpoint,\n zIndex: ctx.zIndex || zIndex,\n },\n { classNames, styles, name: 'Navbar' }\n );\n\n const breakpoints = getSortedBreakpoints(width, theme).reduce(\n (acc, [breakpoint, breakpointSize]) => {\n acc[`@media (min-width: ${breakpoint + 1}px)`] = {\n '--mantine-navbar-width': `${breakpointSize}px`,\n };\n\n return acc;\n },\n {}\n );\n\n return (\n <Box\n component=\"nav\"\n ref={ref}\n className={cx(classes.root, { [classes.hidden]: hidden }, className)}\n {...others}\n >\n {children}\n\n <Global\n styles={() => ({\n ':root': {\n '--mantine-navbar-width': width?.base || '0px',\n ...breakpoints,\n },\n })}\n />\n </Box>\n );\n }\n) as any;\n\nNavbar.Section = NavbarSection;\nNavbar.displayName = '@mantine/core/Navbar';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createStyles } from '@mantine/styles';
2
- import { getSortedBreakpoints } from '../utils/get-sorted-breakpoints/get-sorted-breakpoints.js';
2
+ import { getSortedBreakpoints } from './get-sorted-breakpoints/get-sorted-breakpoints.js';
3
3
 
4
4
  var __defProp = Object.defineProperty;
5
5
  var __defProps = Object.defineProperties;
@@ -30,8 +30,9 @@ var useStyles = createStyles((theme, { height, width, fixed, position, hiddenBre
30
30
  }, {}) : null;
31
31
  return {
32
32
  root: __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, theme.fn.fontStyles()), position), {
33
+ top: (position == null ? void 0 : position.top) || "var(--mantine-header-height)",
33
34
  zIndex,
34
- height,
35
+ height: height || "calc(100vh - var(--mantine-header-height, 0px))",
35
36
  width: (width == null ? void 0 : width.base) || "100%",
36
37
  position: fixed ? "fixed" : "static",
37
38
  boxSizing: "border-box",
@@ -1 +1 @@
1
- {"version":3,"file":"Navbar.styles.js","sources":["../../../../src/components/AppShell/Navbar/Navbar.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize } from '@mantine/styles';\nimport { getSortedBreakpoints } from '../utils';\n\nexport type NavbarWidth = Partial<Record<string, string | number>>;\n\nexport interface NavbarPosition {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n}\n\ninterface NavbarStyles {\n width: Partial<Record<string, string | number>>;\n height: string | number;\n position: NavbarPosition;\n hiddenBreakpoint: MantineNumberSize;\n fixed: boolean;\n zIndex: number;\n}\n\nexport default createStyles(\n (theme, { height, width, fixed, position, hiddenBreakpoint, zIndex }: NavbarStyles) => {\n const breakpoints =\n typeof width === 'object' && width !== null\n ? getSortedBreakpoints(width, theme).reduce((acc, [breakpoint, breakpointSize]) => {\n acc[`@media (min-width: ${breakpoint + 1}px)`] = {\n width: breakpointSize,\n minWidth: breakpointSize,\n };\n\n return acc;\n }, {})\n : null;\n\n return {\n root: {\n ...theme.fn.fontStyles(),\n ...position,\n zIndex,\n height,\n width: width?.base || '100%',\n position: fixed ? 'fixed' : 'static',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n borderRight: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2]\n }`,\n ...breakpoints,\n },\n\n hidden: {\n [`@media (max-width: ${theme.fn.size({\n size: hiddenBreakpoint,\n sizes: theme.breakpoints,\n })}px)`]: {\n display: 'none',\n },\n },\n };\n }\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navbar.styles.js","sources":["../../../../src/components/AppShell/Navbar/Navbar.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize } from '@mantine/styles';\nimport { getSortedBreakpoints } from './get-sorted-breakpoints/get-sorted-breakpoints';\n\nexport type NavbarWidth = Partial<Record<string, string | number>>;\n\nexport interface NavbarPosition {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n}\n\ninterface NavbarStyles {\n width: Partial<Record<string, string | number>>;\n height: string | number;\n position: NavbarPosition;\n hiddenBreakpoint: MantineNumberSize;\n fixed: boolean;\n zIndex: number;\n}\n\nexport default createStyles(\n (theme, { height, width, fixed, position, hiddenBreakpoint, zIndex }: NavbarStyles) => {\n const breakpoints =\n typeof width === 'object' && width !== null\n ? getSortedBreakpoints(width, theme).reduce((acc, [breakpoint, breakpointSize]) => {\n acc[`@media (min-width: ${breakpoint + 1}px)`] = {\n width: breakpointSize,\n minWidth: breakpointSize,\n };\n\n return acc;\n }, {})\n : null;\n\n return {\n root: {\n ...theme.fn.fontStyles(),\n ...position,\n top: position?.top || 'var(--mantine-header-height)',\n zIndex,\n height: height || 'calc(100vh - var(--mantine-header-height, 0px))',\n width: width?.base || '100%',\n position: fixed ? 'fixed' : 'static',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n borderRight: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2]\n }`,\n ...breakpoints,\n },\n\n hidden: {\n [`@media (max-width: ${theme.fn.size({\n size: hiddenBreakpoint,\n sizes: theme.breakpoints,\n })}px)`]: {\n display: 'none',\n },\n },\n };\n }\n);\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-sorted-breakpoints.js","sources":["../../../../../src/components/AppShell/Navbar/get-sorted-breakpoints/get-sorted-breakpoints.ts"],"sourcesContent":["import { MantineSize, MantineTheme } from '@mantine/styles';\n\ntype Breakpoints<T> = Partial<Record<MantineSize | (string & {}), T>>;\n\nexport function getSortedBreakpoints<T>(\n breakpoints: Breakpoints<T>,\n theme: MantineTheme\n): [number, T][] {\n if (!breakpoints) {\n return [];\n }\n\n const values = Object.keys(breakpoints)\n .filter((breakpoint) => breakpoint !== 'base')\n .map((breakpoint) => [\n theme.fn.size({ size: breakpoint, sizes: theme.breakpoints }),\n breakpoints[breakpoint],\n ]);\n\n values.sort((a, b) => a[0] - b[0]);\n return values as [number, T][];\n}\n"],"names":[],"mappings":"AAAO,SAAS,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE;AACzD,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK;AAC5G,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;AACjE,IAAI,WAAW,CAAC,UAAU,CAAC;AAC3B,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
@@ -43,7 +43,7 @@ function rgbaToHsva({ r, g, b, a }) {
43
43
  };
44
44
  }
45
45
  function parseHex(color) {
46
- const hex = color[0] === "#" ? color.substr(1) : color;
46
+ const hex = color[0] === "#" ? color.slice(1) : color;
47
47
  if (hex.length === 3) {
48
48
  return rgbaToHsva({
49
49
  r: parseInt(hex[0] + hex[0], 16),
@@ -53,9 +53,9 @@ function parseHex(color) {
53
53
  });
54
54
  }
55
55
  return rgbaToHsva({
56
- r: parseInt(hex.substr(0, 2), 16),
57
- g: parseInt(hex.substr(2, 2), 16),
58
- b: parseInt(hex.substr(4, 2), 16),
56
+ r: parseInt(hex.slice(0, 2), 16),
57
+ g: parseInt(hex.slice(2, 4), 16),
58
+ b: parseInt(hex.slice(4, 6), 16),
59
59
  a: 1
60
60
  });
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sources":["../../../../src/components/ColorPicker/converters/parsers.ts"],"sourcesContent":["import { HsvaColor, RgbaColor, ColorFormat } from '../types';\n\nexport function round(number: number, digits = 0, base = 10 ** digits) {\n return Math.round(base * number) / base;\n}\n\nfunction hslaToHsva({ h, s, l, a }): HsvaColor {\n const ss = s * ((l < 50 ? l : 100 - l) / 100);\n\n return {\n h,\n s: ss > 0 ? ((2 * ss) / (l + ss)) * 100 : 0,\n v: l + ss,\n a,\n };\n}\n\nconst angleUnits: Record<string, number> = {\n grad: 360 / 400,\n turn: 360,\n rad: 360 / (Math.PI * 2),\n};\n\nexport function parseHue(value: string, unit = 'deg') {\n return Number(value) * (angleUnits[unit] || 1);\n}\n\nconst HSL_REGEXP =\n /hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n\nexport function parseHsla(color: string): HsvaColor {\n const match = HSL_REGEXP.exec(color);\n\n if (!match) {\n return { h: 0, s: 0, v: 0, a: 1 };\n }\n\n return hslaToHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n l: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n });\n}\n\nfunction rgbaToHsva({ r, g, b, a }: RgbaColor): HsvaColor {\n const max = Math.max(r, g, b);\n const delta = max - Math.min(r, g, b);\n\n const hh = delta\n ? max === r\n ? (g - b) / delta\n : max === g\n ? 2 + (b - r) / delta\n : 4 + (r - g) / delta\n : 0;\n\n return {\n h: round(60 * (hh < 0 ? hh + 6 : hh)),\n s: round(max ? (delta / max) * 100 : 0),\n v: round((max / 255) * 100),\n a,\n };\n}\n\nexport function parseHex(color: string): HsvaColor {\n const hex = color[0] === '#' ? color.substr(1) : color;\n\n if (hex.length === 3) {\n return rgbaToHsva({\n r: parseInt(hex[0] + hex[0], 16),\n g: parseInt(hex[1] + hex[1], 16),\n b: parseInt(hex[2] + hex[2], 16),\n a: 1,\n });\n }\n\n return rgbaToHsva({\n r: parseInt(hex.substr(0, 2), 16),\n g: parseInt(hex.substr(2, 2), 16),\n b: parseInt(hex.substr(4, 2), 16),\n a: 1,\n });\n}\n\nconst RGB_REGEXP =\n /rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n\nexport function parseRgba(color: string): HsvaColor {\n const match = RGB_REGEXP.exec(color);\n\n if (!match) {\n return { h: 0, s: 0, v: 0, a: 1 };\n }\n\n return rgbaToHsva({\n r: Number(match[1]) / (match[2] ? 100 / 255 : 1),\n g: Number(match[3]) / (match[4] ? 100 / 255 : 1),\n b: Number(match[5]) / (match[6] ? 100 / 255 : 1),\n a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? 100 : 1),\n });\n}\n\nconst VALIDATION_REGEXP: Record<ColorFormat, RegExp> = {\n hex: /^#?([0-9A-F]{3}){1,2}$/i,\n rgb: /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/i,\n rgba: /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/i,\n hsl: /hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\)/i,\n hsla: /^hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*(\\d*(?:\\.\\d+)?)\\)$/i,\n};\n\nconst CONVERTERS: Record<ColorFormat, (color: string) => HsvaColor> = {\n hex: parseHex,\n rgb: parseRgba,\n rgba: parseRgba,\n hsl: parseHsla,\n hsla: parseHsla,\n};\n\nexport function isColorValid(color: string) {\n // eslint-disable-next-line no-restricted-syntax\n for (const [, regexp] of Object.entries(VALIDATION_REGEXP)) {\n if (regexp.test(color)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function parseColor(color: string): HsvaColor {\n if (typeof color !== 'string') {\n return { h: 0, s: 0, v: 0, a: 1 };\n }\n\n if (color === 'transparent') {\n return { h: 0, s: 0, v: 0, a: 0 };\n }\n\n const trimmed = color.trim();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [rule, regexp] of Object.entries(VALIDATION_REGEXP)) {\n if (regexp.test(trimmed)) {\n return CONVERTERS[rule](trimmed);\n }\n }\n\n return { h: 0, s: 0, v: 0, a: 1 };\n}\n"],"names":[],"mappings":"AAAO,SAAS,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,MAAM,EAAE;AAC/D,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;AAC1C,CAAC;AACD,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AAChD,EAAE,OAAO;AACT,IAAI,CAAC;AACL,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;AAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACb,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,GAAG;AACnB,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;AACjB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;AAC9C,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AACD,MAAM,UAAU,GAAG,4HAA4H,CAAC;AACzI,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACxE,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,EAAE,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC7G,EAAE,OAAO;AACT,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACzC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACzC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7B,IAAI,CAAC;AACL,GAAG,CAAC;AACJ,CAAC;AACM,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACzD,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,CAAC;AACtB,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtC,MAAM,CAAC,EAAE,CAAC;AACV,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI,CAAC,EAAE,CAAC;AACR,GAAG,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,GAAG,gHAAgH,CAAC;AAC7H,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACpD,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACpD,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACpD,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACxE,GAAG,CAAC,CAAC;AACL,CAAC;AACD,MAAM,iBAAiB,GAAG;AAC1B,EAAE,GAAG,EAAE,yBAAyB;AAChC,EAAE,GAAG,EAAE,2DAA2D;AAClE,EAAE,IAAI,EAAE,4DAA4D;AACpE,EAAE,GAAG,EAAE,gEAAgE;AACvE,EAAE,IAAI,EAAE,+DAA+D;AACvE,CAAC,CAAC;AACF,MAAM,UAAU,GAAG;AACnB,EAAE,GAAG,EAAE,QAAQ;AACf,EAAE,GAAG,EAAE,SAAS;AAChB,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,GAAG,EAAE,SAAS;AAChB,EAAE,IAAI,EAAE,SAAS;AACjB,CAAC,CAAC;AACK,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,EAAE,KAAK,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAC9D,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC5B,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,KAAK,KAAK,aAAa,EAAE;AAC/B,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAClE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC9B,MAAM,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpC;;;;"}
1
+ {"version":3,"file":"parsers.js","sources":["../../../../src/components/ColorPicker/converters/parsers.ts"],"sourcesContent":["import { HsvaColor, RgbaColor, ColorFormat } from '../types';\n\nexport function round(number: number, digits = 0, base = 10 ** digits) {\n return Math.round(base * number) / base;\n}\n\nfunction hslaToHsva({ h, s, l, a }): HsvaColor {\n const ss = s * ((l < 50 ? l : 100 - l) / 100);\n\n return {\n h,\n s: ss > 0 ? ((2 * ss) / (l + ss)) * 100 : 0,\n v: l + ss,\n a,\n };\n}\n\nconst angleUnits: Record<string, number> = {\n grad: 360 / 400,\n turn: 360,\n rad: 360 / (Math.PI * 2),\n};\n\nexport function parseHue(value: string, unit = 'deg') {\n return Number(value) * (angleUnits[unit] || 1);\n}\n\nconst HSL_REGEXP =\n /hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n\nexport function parseHsla(color: string): HsvaColor {\n const match = HSL_REGEXP.exec(color);\n\n if (!match) {\n return { h: 0, s: 0, v: 0, a: 1 };\n }\n\n return hslaToHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n l: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n });\n}\n\nfunction rgbaToHsva({ r, g, b, a }: RgbaColor): HsvaColor {\n const max = Math.max(r, g, b);\n const delta = max - Math.min(r, g, b);\n\n const hh = delta\n ? max === r\n ? (g - b) / delta\n : max === g\n ? 2 + (b - r) / delta\n : 4 + (r - g) / delta\n : 0;\n\n return {\n h: round(60 * (hh < 0 ? hh + 6 : hh)),\n s: round(max ? (delta / max) * 100 : 0),\n v: round((max / 255) * 100),\n a,\n };\n}\n\nexport function parseHex(color: string): HsvaColor {\n const hex = color[0] === '#' ? color.slice(1) : color;\n\n if (hex.length === 3) {\n return rgbaToHsva({\n r: parseInt(hex[0] + hex[0], 16),\n g: parseInt(hex[1] + hex[1], 16),\n b: parseInt(hex[2] + hex[2], 16),\n a: 1,\n });\n }\n\n return rgbaToHsva({\n r: parseInt(hex.slice(0, 2), 16),\n g: parseInt(hex.slice(2, 4), 16),\n b: parseInt(hex.slice(4, 6), 16),\n a: 1,\n });\n}\n\nconst RGB_REGEXP =\n /rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n\nexport function parseRgba(color: string): HsvaColor {\n const match = RGB_REGEXP.exec(color);\n\n if (!match) {\n return { h: 0, s: 0, v: 0, a: 1 };\n }\n\n return rgbaToHsva({\n r: Number(match[1]) / (match[2] ? 100 / 255 : 1),\n g: Number(match[3]) / (match[4] ? 100 / 255 : 1),\n b: Number(match[5]) / (match[6] ? 100 / 255 : 1),\n a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? 100 : 1),\n });\n}\n\nconst VALIDATION_REGEXP: Record<ColorFormat, RegExp> = {\n hex: /^#?([0-9A-F]{3}){1,2}$/i,\n rgb: /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/i,\n rgba: /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/i,\n hsl: /hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\)/i,\n hsla: /^hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*(\\d*(?:\\.\\d+)?)\\)$/i,\n};\n\nconst CONVERTERS: Record<ColorFormat, (color: string) => HsvaColor> = {\n hex: parseHex,\n rgb: parseRgba,\n rgba: parseRgba,\n hsl: parseHsla,\n hsla: parseHsla,\n};\n\nexport function isColorValid(color: string) {\n // eslint-disable-next-line no-restricted-syntax\n for (const [, regexp] of Object.entries(VALIDATION_REGEXP)) {\n if (regexp.test(color)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function parseColor(color: string): HsvaColor {\n if (typeof color !== 'string') {\n return { h: 0, s: 0, v: 0, a: 1 };\n }\n\n if (color === 'transparent') {\n return { h: 0, s: 0, v: 0, a: 0 };\n }\n\n const trimmed = color.trim();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [rule, regexp] of Object.entries(VALIDATION_REGEXP)) {\n if (regexp.test(trimmed)) {\n return CONVERTERS[rule](trimmed);\n }\n }\n\n return { h: 0, s: 0, v: 0, a: 1 };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { useContext, createContext } from 'react';
2
+
3
+ const ListContext = createContext(null);
4
+ function useListContext() {
5
+ return useContext(ListContext) || {};
6
+ }
7
+
8
+ export { ListContext, useListContext };
9
+ //# sourceMappingURL=List.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.context.js","sources":["../../../src/components/List/List.context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { CSSObject, MantineNumberSize, MantineTheme } from '@mantine/styles';\nimport type { ListItemStylesNames } from './ListItem/ListItem';\n\ninterface ListContextValue {\n classNames?: Partial<Record<ListItemStylesNames, string>>;\n styles?:\n | Partial<Record<ListItemStylesNames, CSSObject>>\n | ((theme: MantineTheme) => Partial<Record<ListItemStylesNames, CSSObject>>);\n spacing?: MantineNumberSize;\n center?: boolean;\n icon?: React.ReactNode;\n}\n\nexport const ListContext = createContext<ListContextValue>(null);\n\nexport function useListContext(): ListContextValue {\n return useContext(ListContext) || {};\n}\n"],"names":[],"mappings":";;AACY,MAAC,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE;AACxC,SAAS,cAAc,GAAG;AACjC,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACvC;;;;"}
@@ -1,8 +1,8 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { useMantineDefaultProps } from '@mantine/styles';
3
3
  import { ListItem } from './ListItem/ListItem.js';
4
+ import { ListContext } from './List.context.js';
4
5
  import useStyles from './List.styles.js';
5
- import { filterChildrenByType } from '../../utils/filter-children-by-type/filter-children-by-type.js';
6
6
  import { Box } from '../Box/Box.js';
7
7
 
8
8
  var __defProp = Object.defineProperty;
@@ -65,21 +65,13 @@ const List = forwardRef((props, ref) => {
65
65
  "classNames"
66
66
  ]);
67
67
  const { classes, cx } = useStyles({ withPadding, size, listStyleType }, { classNames, styles, name: "List" });
68
- const items = filterChildrenByType(children, ListItem).map((item) => {
69
- var _a2;
70
- return React.cloneElement(item, {
71
- classNames,
72
- styles,
73
- spacing,
74
- center,
75
- icon: ((_a2 = item.props) == null ? void 0 : _a2.icon) || icon
76
- });
77
- });
78
- return /* @__PURE__ */ React.createElement(Box, __spreadValues({
68
+ return /* @__PURE__ */ React.createElement(ListContext.Provider, {
69
+ value: { classNames, styles, spacing, center, icon }
70
+ }, /* @__PURE__ */ React.createElement(Box, __spreadValues({
79
71
  component: type === "unordered" ? "ul" : "ol",
80
72
  className: cx(classes.root, className),
81
73
  ref
82
- }, others), items);
74
+ }, others), children));
83
75
  });
84
76
  List.Item = ListItem;
85
77
  List.displayName = "@mantine/core/List";
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sources":["../../../src/components/List/List.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n ClassNames,\n ForwardRefWithStaticComponents,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { filterChildrenByType } from '../../utils';\nimport { Box } from '../Box';\nimport { ListItem, ListItemStylesNames } from './ListItem/ListItem';\nimport useStyles from './List.styles';\n\nexport type ListStylesNames = ListItemStylesNames | ClassNames<typeof useStyles>;\n\nexport interface ListProps\n extends DefaultProps<ListStylesNames>,\n React.ComponentPropsWithoutRef<'ul'> {\n /** <List.Item /> components only */\n children: React.ReactNode;\n\n /** List type: ol or ul */\n type?: 'ordered' | 'unordered';\n\n /** Include padding-left to offset list from main content */\n withPadding?: boolean;\n\n /** Font size from theme or number to set value in px */\n size?: MantineNumberSize;\n\n /** Icon that should replace list item dot */\n icon?: React.ReactNode;\n\n /** Spacing between items from theme or number to set value in px */\n spacing?: MantineNumberSize;\n\n /** Center items with icon */\n center?: boolean;\n\n /** List style */\n listStyleType?: React.CSSProperties['listStyleType'];\n}\n\ntype ListComponent = ForwardRefWithStaticComponents<ListProps, { Item: typeof ListItem }>;\n\nconst defaultProps: Partial<ListProps> = {\n type: 'unordered',\n size: 'md',\n spacing: 0,\n};\n\nexport const List: ListComponent = forwardRef<HTMLUListElement, ListProps>(\n (props: ListProps, ref) => {\n const {\n children,\n type,\n size,\n listStyleType,\n withPadding,\n center,\n spacing,\n icon,\n className,\n styles,\n classNames,\n ...others\n } = useMantineDefaultProps('List', defaultProps, props);\n\n const { classes, cx } = useStyles(\n { withPadding, size, listStyleType },\n { classNames, styles, name: 'List' }\n );\n\n const items = filterChildrenByType(children, ListItem).map((item) =>\n React.cloneElement(item, {\n classNames,\n styles,\n spacing,\n center,\n icon: item.props?.icon || icon,\n })\n );\n\n return (\n <Box<any>\n component={type === 'unordered' ? 'ul' : 'ol'}\n className={cx(classes.root, className)}\n ref={ref}\n {...others}\n >\n {items}\n </Box>\n );\n }\n) as any;\n\nList.Item = ListItem;\nList.displayName = '@mantine/core/List';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sources":["../../../src/components/List/List.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n ClassNames,\n ForwardRefWithStaticComponents,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { ListItem, ListItemStylesNames } from './ListItem/ListItem';\nimport { ListContext } from './List.context';\nimport useStyles from './List.styles';\n\nexport type ListStylesNames = ListItemStylesNames | ClassNames<typeof useStyles>;\n\nexport interface ListProps\n extends DefaultProps<ListStylesNames>,\n React.ComponentPropsWithoutRef<'ul'> {\n /** <List.Item /> components only */\n children: React.ReactNode;\n\n /** List type: ol or ul */\n type?: 'ordered' | 'unordered';\n\n /** Include padding-left to offset list from main content */\n withPadding?: boolean;\n\n /** Font size from theme or number to set value in px */\n size?: MantineNumberSize;\n\n /** Icon that should replace list item dot */\n icon?: React.ReactNode;\n\n /** Spacing between items from theme or number to set value in px */\n spacing?: MantineNumberSize;\n\n /** Center items with icon */\n center?: boolean;\n\n /** List style */\n listStyleType?: React.CSSProperties['listStyleType'];\n}\n\ntype ListComponent = ForwardRefWithStaticComponents<ListProps, { Item: typeof ListItem }>;\n\nconst defaultProps: Partial<ListProps> = {\n type: 'unordered',\n size: 'md',\n spacing: 0,\n};\n\nexport const List: ListComponent = forwardRef<HTMLUListElement, ListProps>(\n (props: ListProps, ref) => {\n const {\n children,\n type,\n size,\n listStyleType,\n withPadding,\n center,\n spacing,\n icon,\n className,\n styles,\n classNames,\n ...others\n } = useMantineDefaultProps('List', defaultProps, props);\n\n const { classes, cx } = useStyles(\n { withPadding, size, listStyleType },\n { classNames, styles, name: 'List' }\n );\n\n return (\n <ListContext.Provider value={{ classNames, styles, spacing, center, icon }}>\n <Box<any>\n component={type === 'unordered' ? 'ul' : 'ol'}\n className={cx(classes.root, className)}\n ref={ref}\n {...others}\n >\n {children}\n </Box>\n </ListContext.Provider>\n );\n }\n) as any;\n\nList.Item = ListItem;\nList.displayName = '@mantine/core/List';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { useListContext } from '../List.context.js';
2
3
  import useStyles from './ListItem.styles.js';
3
4
  import { Box } from '../../Box/Box.js';
4
5
 
@@ -31,32 +32,18 @@ var __objRest = (source, exclude) => {
31
32
  return target;
32
33
  };
33
34
  function ListItem(_a) {
34
- var _b = _a, {
35
- className,
36
- children,
37
- icon,
38
- classNames,
39
- styles,
40
- spacing,
41
- center
42
- } = _b, others = __objRest(_b, [
43
- "className",
44
- "children",
45
- "icon",
46
- "classNames",
47
- "styles",
48
- "spacing",
49
- "center"
50
- ]);
35
+ var _b = _a, { className, children, icon } = _b, others = __objRest(_b, ["className", "children", "icon"]);
36
+ const { classNames, styles, icon: ctxIcon, spacing, center } = useListContext();
37
+ const _icon = icon || ctxIcon;
51
38
  const { classes, cx } = useStyles({ spacing, center }, { classNames, styles, name: "List" });
52
39
  return /* @__PURE__ */ React.createElement(Box, __spreadValues({
53
40
  component: "li",
54
- className: cx(classes.item, { [classes.withIcon]: icon }, className)
41
+ className: cx(classes.item, { [classes.withIcon]: _icon }, className)
55
42
  }, others), /* @__PURE__ */ React.createElement("div", {
56
43
  className: classes.itemWrapper
57
- }, icon && /* @__PURE__ */ React.createElement("span", {
44
+ }, _icon && /* @__PURE__ */ React.createElement("span", {
58
45
  className: classes.itemIcon
59
- }, icon), /* @__PURE__ */ React.createElement("span", null, children)));
46
+ }, _icon), /* @__PURE__ */ React.createElement("span", null, children)));
60
47
  }
61
48
  ListItem.displayName = "@mantine/core/ListItem";
62
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../../../src/components/List/ListItem/ListItem.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, MantineNumberSize, ClassNames } from '@mantine/styles';\nimport { Box } from '../../Box';\nimport useStyles from './ListItem.styles';\n\nexport type ListItemStylesNames = ClassNames<typeof useStyles>;\n\nexport interface ListItemProps\n extends DefaultProps<ListItemStylesNames>,\n React.ComponentPropsWithoutRef<'li'> {\n /** Icon to replace bullet */\n icon?: React.ReactNode;\n\n /** Item content */\n children: React.ReactNode;\n\n /** Predefined spacing between items or number to set value in px */\n spacing?: MantineNumberSize;\n\n /** Center item content with icon */\n center?: boolean;\n}\n\nexport function ListItem({\n className,\n children,\n icon,\n classNames,\n styles,\n spacing,\n center,\n ...others\n}: ListItemProps) {\n const { classes, cx } = useStyles({ spacing, center }, { classNames, styles, name: 'List' });\n\n return (\n <Box\n component=\"li\"\n className={cx(classes.item, { [classes.withIcon]: icon }, className)}\n {...others}\n >\n <div className={classes.itemWrapper}>\n {icon && <span className={classes.itemIcon}>{icon}</span>}\n <span>{children}</span>\n </div>\n </Box>\n );\n}\n\nListItem.displayName = '@mantine/core/ListItem';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListItem.js","sources":["../../../../src/components/List/ListItem/ListItem.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, ClassNames } from '@mantine/styles';\nimport { Box } from '../../Box';\nimport { useListContext } from '../List.context';\nimport useStyles from './ListItem.styles';\n\nexport type ListItemStylesNames = ClassNames<typeof useStyles>;\n\nexport interface ListItemProps\n extends DefaultProps<ListItemStylesNames>,\n React.ComponentPropsWithoutRef<'li'> {\n /** Icon to replace bullet */\n icon?: React.ReactNode;\n\n /** Item content */\n children: React.ReactNode;\n}\n\nexport function ListItem({ className, children, icon, ...others }: ListItemProps) {\n const { classNames, styles, icon: ctxIcon, spacing, center } = useListContext();\n const _icon = icon || ctxIcon;\n const { classes, cx } = useStyles({ spacing, center }, { classNames, styles, name: 'List' });\n\n return (\n <Box\n component=\"li\"\n className={cx(classes.item, { [classes.withIcon]: _icon }, className)}\n {...others}\n >\n <div className={classes.itemWrapper}>\n {_icon && <span className={classes.itemIcon}>{_icon}</span>}\n <span>{children}</span>\n </div>\n </Box>\n );\n}\n\nListItem.displayName = '@mantine/core/ListItem';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { createContext, useContext } from 'react';
2
+
3
+ const MenuContext = createContext(null);
4
+ function useMenuContext(component = "Item") {
5
+ const ctx = useContext(MenuContext);
6
+ if (!ctx) {
7
+ throw new Error(`Menu.${component} component was rendered outside of Menu context`);
8
+ }
9
+ return ctx;
10
+ }
11
+
12
+ export { MenuContext, useMenuContext };
13
+ //# sourceMappingURL=Menu.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.context.js","sources":["../../../src/components/Menu/Menu.context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { MantineNumberSize, MantineTheme, CSSObject } from '@mantine/styles';\nimport type { MenuStylesNames } from './Menu';\n\ninterface MenuContextValue {\n hovered: number;\n radius: MantineNumberSize;\n classNames: Partial<Record<MenuStylesNames, string>>;\n styles:\n | Partial<Record<MenuStylesNames, CSSObject>>\n | ((theme: MantineTheme) => Partial<Record<MenuStylesNames, CSSObject>>);\n onItemHover(index: number): void;\n onItemKeyDown(event: React.KeyboardEvent<HTMLElement>): void;\n onItemClick(): void;\n}\n\nexport const MenuContext = createContext<MenuContextValue>(null);\n\nexport function useMenuContext(component = 'Item') {\n const ctx = useContext(MenuContext);\n\n if (!ctx) {\n throw new Error(`Menu.${component} component was rendered outside of Menu context`);\n }\n\n return ctx;\n}\n"],"names":[],"mappings":";;AACY,MAAC,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE;AACxC,SAAS,cAAc,CAAC,SAAS,GAAG,MAAM,EAAE;AACnD,EAAE,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,+CAA+C,CAAC,CAAC,CAAC;AACxF,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
@@ -4,10 +4,8 @@ import { getDefaultZIndex, useMantineDefaultProps } from '@mantine/styles';
4
4
  import { MenuIcon } from './MenuIcon.js';
5
5
  import { MenuItem } from './MenuItem/MenuItem.js';
6
6
  import { MenuLabel } from './MenuLabel/MenuLabel.js';
7
+ import { MenuContext } from './Menu.context.js';
7
8
  import useStyles from './Menu.styles.js';
8
- import { filterChildrenByType } from '../../utils/filter-children-by-type/filter-children-by-type.js';
9
- import { Divider } from '../Divider/Divider.js';
10
- import { Text } from '../Text/Text.js';
11
9
  import { Box } from '../Box/Box.js';
12
10
  import { Popper } from '../Popper/Popper.js';
13
11
  import { Paper } from '../Paper/Paper.js';
@@ -47,7 +45,7 @@ var __objRest = (source, exclude) => {
47
45
  const defaultControl = /* @__PURE__ */ React.createElement(ActionIcon, null, /* @__PURE__ */ React.createElement(MenuIcon, null));
48
46
  function getNextItem(active, items) {
49
47
  for (let i = active + 1; i < items.length; i += 1) {
50
- if (!items[i].props.disabled && items[i].type === MenuItem) {
48
+ if (!items[i].disabled) {
51
49
  return i;
52
50
  }
53
51
  }
@@ -55,7 +53,7 @@ function getNextItem(active, items) {
55
53
  }
56
54
  function findInitialItem(items) {
57
55
  for (let i = 0; i < items.length; i += 1) {
58
- if (!items[i].props.disabled && items[i].type === MenuItem) {
56
+ if (!items[i].disabled) {
59
57
  return i;
60
58
  }
61
59
  }
@@ -63,11 +61,11 @@ function findInitialItem(items) {
63
61
  }
64
62
  function getPreviousItem(active, items) {
65
63
  for (let i = active - 1; i >= 0; i -= 1) {
66
- if (!items[i].props.disabled && items[i].type === MenuItem) {
64
+ if (!items[i].disabled) {
67
65
  return i;
68
66
  }
69
67
  }
70
- if (!items[active] || items[active].type !== MenuItem) {
68
+ if (!items[active]) {
71
69
  return findInitialItem(items);
72
70
  }
73
71
  return active;
@@ -164,13 +162,11 @@ const Menu = forwardRef((props, ref) => {
164
162
  "clickOutsideEvents"
165
163
  ]);
166
164
  const [hovered, setHovered] = useState(-1);
167
- const buttonsRefs = useRef({});
168
- const { classes, cx, theme } = useStyles({ size }, { classNames, styles, name: "Menu" });
165
+ const { classes, cx } = useStyles({ size }, { classNames, styles, name: "Menu" });
169
166
  const delayTimeout = useRef();
170
167
  const [referenceElement, setReferenceElement] = useState(null);
171
168
  const [wrapperElement, setWrapperElement] = useState(null);
172
169
  const [dropdownElement, setDropdownElement] = useState(null);
173
- const items = filterChildrenByType(children, [MenuItem, MenuLabel, Divider]);
174
170
  const uuid = useUuid(menuId);
175
171
  const focusReference = () => window.setTimeout(() => referenceElement == null ? void 0 : referenceElement.focus(), 0);
176
172
  const [_opened, setOpened] = useUncontrolled({
@@ -216,20 +212,21 @@ const Menu = forwardRef((props, ref) => {
216
212
  };
217
213
  const handleKeyDown = (event) => {
218
214
  if (_opened) {
215
+ const elements = Array.from(dropdownElement.querySelectorAll(".mantine-Menu-item"));
219
216
  if (event.nativeEvent.code === "Tab" && trapFocus) {
220
217
  event.preventDefault();
221
218
  }
222
219
  if (event.nativeEvent.code === "ArrowDown") {
223
220
  event.preventDefault();
224
- const prevIndex = getNextItem(hovered, items);
221
+ const prevIndex = getNextItem(hovered, elements);
225
222
  setHovered(prevIndex);
226
- buttonsRefs.current[prevIndex].focus();
223
+ elements[prevIndex].focus();
227
224
  }
228
225
  if (event.nativeEvent.code === "ArrowUp") {
229
226
  event.preventDefault();
230
- const prevIndex = getPreviousItem(hovered, items);
227
+ const prevIndex = getPreviousItem(hovered, elements);
231
228
  setHovered(prevIndex);
232
- buttonsRefs.current[prevIndex].focus();
229
+ elements[prevIndex].focus();
233
230
  }
234
231
  if (event.nativeEvent.code === "Escape") {
235
232
  handleClose();
@@ -251,48 +248,23 @@ const Menu = forwardRef((props, ref) => {
251
248
  [controlRefProp]: useMergedRef(setReferenceElement, ref),
252
249
  onKeyDown: handleKeyDown
253
250
  }));
254
- const content = items.map((item, index) => {
255
- if (item.type === MenuItem) {
256
- return /* @__PURE__ */ React.createElement(MenuItem, __spreadProps(__spreadValues({}, item.props), {
257
- key: index,
258
- hovered: hovered === index,
259
- onHover: () => setHovered(index),
260
- radius,
261
- onMouseLeave: () => setHovered(-1),
262
- onKeyDown: handleKeyDown,
263
- styles,
264
- classNames,
265
- onClick: (event) => {
266
- if (closeOnItemClick) {
267
- handleClose();
268
- trigger === "click" && focusReference();
269
- }
270
- if (typeof item.props.onClick === "function") {
271
- item.props.onClick(event);
272
- }
273
- },
274
- ref: (node) => {
275
- buttonsRefs.current[index] = node;
276
- }
277
- }));
251
+ const handleItemClick = () => {
252
+ if (closeOnItemClick) {
253
+ handleClose();
254
+ trigger === "click" && focusReference();
278
255
  }
279
- if (item.type === MenuLabel) {
280
- return /* @__PURE__ */ React.createElement(Text, __spreadValues({
281
- key: index,
282
- className: classes.label
283
- }, item.props));
284
- }
285
- if (item.type === Divider) {
286
- return /* @__PURE__ */ React.createElement(Divider, {
287
- variant: "solid",
288
- className: classes.divider,
289
- my: theme.spacing.xs / 2,
290
- key: index
291
- });
256
+ };
257
+ return /* @__PURE__ */ React.createElement(MenuContext.Provider, {
258
+ value: {
259
+ hovered,
260
+ radius,
261
+ styles,
262
+ classNames,
263
+ onItemHover: setHovered,
264
+ onItemKeyDown: handleKeyDown,
265
+ onItemClick: handleItemClick
292
266
  }
293
- return null;
294
- });
295
- return /* @__PURE__ */ React.createElement(Box, __spreadValues({
267
+ }, /* @__PURE__ */ React.createElement(Box, __spreadValues({
296
268
  ref: setWrapperElement,
297
269
  onMouseLeave: handleMouseLeave,
298
270
  onMouseEnter: handleMouseEnter,
@@ -321,7 +293,7 @@ const Menu = forwardRef((props, ref) => {
321
293
  onMouseLeave: () => setHovered(-1),
322
294
  ref: setDropdownElement,
323
295
  id: uuid
324
- }, others), content)));
296
+ }, others), children))));
325
297
  });
326
298
  Menu.Item = MenuItem;
327
299
  Menu.Label = MenuLabel;