@mantine/core 5.9.0 → 5.9.2

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 (116) hide show
  1. package/cjs/AppShell/AppShell.js +0 -1
  2. package/cjs/AppShell/AppShell.js.map +1 -1
  3. package/cjs/AppShell/Aside/Aside.js +0 -1
  4. package/cjs/AppShell/Aside/Aside.js.map +1 -1
  5. package/cjs/AppShell/Footer/Footer.js +1 -2
  6. package/cjs/AppShell/Footer/Footer.js.map +1 -1
  7. package/cjs/AppShell/Header/Header.js +1 -2
  8. package/cjs/AppShell/Header/Header.js.map +1 -1
  9. package/cjs/AppShell/HorizontalSection/HorizontalSection.js +2 -2
  10. package/cjs/AppShell/HorizontalSection/HorizontalSection.js.map +1 -1
  11. package/cjs/AppShell/Navbar/Navbar.js +0 -1
  12. package/cjs/AppShell/Navbar/Navbar.js.map +1 -1
  13. package/cjs/AppShell/VerticalSection/VerticalSection.js +2 -2
  14. package/cjs/AppShell/VerticalSection/VerticalSection.js.map +1 -1
  15. package/cjs/Collapse/Collapse.js +4 -8
  16. package/cjs/Collapse/Collapse.js.map +1 -1
  17. package/cjs/Collapse/use-collapse.js +19 -74
  18. package/cjs/Collapse/use-collapse.js.map +1 -1
  19. package/cjs/Floating/FloatingArrow/FloatingArrow.js +26 -1
  20. package/cjs/Floating/FloatingArrow/FloatingArrow.js.map +1 -1
  21. package/cjs/Floating/FloatingArrow/get-arrow-position-styles.js +38 -15
  22. package/cjs/Floating/FloatingArrow/get-arrow-position-styles.js.map +1 -1
  23. package/cjs/Popover/Popover.context.js.map +1 -1
  24. package/cjs/Popover/Popover.js +5 -0
  25. package/cjs/Popover/Popover.js.map +1 -1
  26. package/cjs/Popover/PopoverDropdown/PopoverDropdown.js +2 -0
  27. package/cjs/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  28. package/cjs/Radio/RadioGroup/RadioGroup.js +2 -1
  29. package/cjs/Radio/RadioGroup/RadioGroup.js.map +1 -1
  30. package/cjs/ScrollArea/ScrollArea.styles.js +4 -1
  31. package/cjs/ScrollArea/ScrollArea.styles.js.map +1 -1
  32. package/cjs/Select/SelectItems/SelectItems.styles.js +1 -1
  33. package/cjs/Select/SelectItems/SelectItems.styles.js.map +1 -1
  34. package/cjs/Select/filter-data/filter-data.js +12 -0
  35. package/cjs/Select/filter-data/filter-data.js.map +1 -1
  36. package/cjs/Table/Table.styles.js +9 -5
  37. package/cjs/Table/Table.styles.js.map +1 -1
  38. package/cjs/Tooltip/Tooltip.js +5 -0
  39. package/cjs/Tooltip/Tooltip.js.map +1 -1
  40. package/cjs/TypographyStylesProvider/TypographyStylesProvider.styles.js +1 -0
  41. package/cjs/TypographyStylesProvider/TypographyStylesProvider.styles.js.map +1 -1
  42. package/esm/AppShell/AppShell.js +1 -2
  43. package/esm/AppShell/AppShell.js.map +1 -1
  44. package/esm/AppShell/Aside/Aside.js +1 -2
  45. package/esm/AppShell/Aside/Aside.js.map +1 -1
  46. package/esm/AppShell/Footer/Footer.js +2 -3
  47. package/esm/AppShell/Footer/Footer.js.map +1 -1
  48. package/esm/AppShell/Header/Header.js +2 -3
  49. package/esm/AppShell/Header/Header.js.map +1 -1
  50. package/esm/AppShell/HorizontalSection/HorizontalSection.js +2 -2
  51. package/esm/AppShell/HorizontalSection/HorizontalSection.js.map +1 -1
  52. package/esm/AppShell/Navbar/Navbar.js +1 -2
  53. package/esm/AppShell/Navbar/Navbar.js.map +1 -1
  54. package/esm/AppShell/VerticalSection/VerticalSection.js +2 -2
  55. package/esm/AppShell/VerticalSection/VerticalSection.js.map +1 -1
  56. package/esm/Collapse/Collapse.js +4 -8
  57. package/esm/Collapse/Collapse.js.map +1 -1
  58. package/esm/Collapse/use-collapse.js +21 -75
  59. package/esm/Collapse/use-collapse.js.map +1 -1
  60. package/esm/Floating/FloatingArrow/FloatingArrow.js +26 -1
  61. package/esm/Floating/FloatingArrow/FloatingArrow.js.map +1 -1
  62. package/esm/Floating/FloatingArrow/get-arrow-position-styles.js +38 -15
  63. package/esm/Floating/FloatingArrow/get-arrow-position-styles.js.map +1 -1
  64. package/esm/Popover/Popover.context.js.map +1 -1
  65. package/esm/Popover/Popover.js +5 -0
  66. package/esm/Popover/Popover.js.map +1 -1
  67. package/esm/Popover/PopoverDropdown/PopoverDropdown.js +2 -0
  68. package/esm/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  69. package/esm/Radio/RadioGroup/RadioGroup.js +3 -2
  70. package/esm/Radio/RadioGroup/RadioGroup.js.map +1 -1
  71. package/esm/ScrollArea/ScrollArea.styles.js +4 -1
  72. package/esm/ScrollArea/ScrollArea.styles.js.map +1 -1
  73. package/esm/Select/SelectItems/SelectItems.styles.js +1 -1
  74. package/esm/Select/SelectItems/SelectItems.styles.js.map +1 -1
  75. package/esm/Select/filter-data/filter-data.js +12 -0
  76. package/esm/Select/filter-data/filter-data.js.map +1 -1
  77. package/esm/Table/Table.styles.js +9 -5
  78. package/esm/Table/Table.styles.js.map +1 -1
  79. package/esm/Tooltip/Tooltip.js +5 -0
  80. package/esm/Tooltip/Tooltip.js.map +1 -1
  81. package/esm/TypographyStylesProvider/TypographyStylesProvider.styles.js +1 -0
  82. package/esm/TypographyStylesProvider/TypographyStylesProvider.styles.js.map +1 -1
  83. package/lib/AppShell/AppShell.d.ts.map +1 -1
  84. package/lib/AppShell/Aside/Aside.d.ts.map +1 -1
  85. package/lib/AppShell/Footer/Footer.d.ts.map +1 -1
  86. package/lib/AppShell/Header/Header.d.ts.map +1 -1
  87. package/lib/AppShell/HorizontalSection/HorizontalSection.d.ts +1 -1
  88. package/lib/AppShell/HorizontalSection/HorizontalSection.d.ts.map +1 -1
  89. package/lib/AppShell/Navbar/Navbar.d.ts.map +1 -1
  90. package/lib/AppShell/VerticalSection/VerticalSection.d.ts +1 -1
  91. package/lib/AppShell/VerticalSection/VerticalSection.d.ts.map +1 -1
  92. package/lib/Collapse/Collapse.d.ts +0 -2
  93. package/lib/Collapse/Collapse.d.ts.map +1 -1
  94. package/lib/Collapse/use-collapse.d.ts +1 -7
  95. package/lib/Collapse/use-collapse.d.ts.map +1 -1
  96. package/lib/Floating/FloatingArrow/FloatingArrow.d.ts +3 -1
  97. package/lib/Floating/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  98. package/lib/Floating/FloatingArrow/get-arrow-position-styles.d.ts +5 -2
  99. package/lib/Floating/FloatingArrow/get-arrow-position-styles.d.ts.map +1 -1
  100. package/lib/Floating/index.d.ts +1 -1
  101. package/lib/Floating/index.d.ts.map +1 -1
  102. package/lib/Floating/types.d.ts +1 -0
  103. package/lib/Floating/types.d.ts.map +1 -1
  104. package/lib/Popover/Popover.context.d.ts +3 -1
  105. package/lib/Popover/Popover.context.d.ts.map +1 -1
  106. package/lib/Popover/Popover.d.ts +3 -1
  107. package/lib/Popover/Popover.d.ts.map +1 -1
  108. package/lib/Popover/PopoverDropdown/PopoverDropdown.d.ts.map +1 -1
  109. package/lib/Radio/RadioGroup/RadioGroup.d.ts.map +1 -1
  110. package/lib/ScrollArea/ScrollArea.styles.d.ts.map +1 -1
  111. package/lib/Select/filter-data/filter-data.d.ts.map +1 -1
  112. package/lib/Table/Table.styles.d.ts.map +1 -1
  113. package/lib/Tooltip/Tooltip.d.ts +3 -1
  114. package/lib/Tooltip/Tooltip.d.ts.map +1 -1
  115. package/lib/TypographyStylesProvider/TypographyStylesProvider.styles.d.ts.map +1 -1
  116. package/package.json +5 -5
@@ -1,4 +1,4 @@
1
- import { useRef, useState, useEffect } from 'react';
1
+ import { useRef, useState } from 'react';
2
2
  import { flushSync } from 'react-dom';
3
3
  import { mergeRefs, useDidUpdate } from '@mantine/hooks';
4
4
 
@@ -43,21 +43,22 @@ function getAutoHeightDuration(height) {
43
43
  function getElementHeight(el) {
44
44
  return (el == null ? void 0 : el.current) ? el.current.scrollHeight : "auto";
45
45
  }
46
- function getElementWidth(el) {
47
- return (el == null ? void 0 : el.current) ? el.current.scrollWidth : "auto";
48
- }
49
46
  const raf = typeof window !== "undefined" && window.requestAnimationFrame;
50
47
  function useCollapse({
51
48
  transitionDuration,
52
49
  transitionTimingFunction = "ease",
53
50
  onTransitionEnd = () => {
54
51
  },
55
- opened,
56
- axis
52
+ opened
57
53
  }) {
58
54
  const el = useRef(null);
59
55
  const collapsedHeight = "0px";
60
- const [styles, setStylesRaw] = useState({});
56
+ const collapsedStyles = {
57
+ display: "none",
58
+ height: "0px",
59
+ overflow: "hidden"
60
+ };
61
+ const [styles, setStylesRaw] = useState(opened ? {} : collapsedStyles);
61
62
  const setStyles = (newStyles) => {
62
63
  flushSync(() => setStylesRaw(newStyles));
63
64
  };
@@ -67,38 +68,10 @@ function useCollapse({
67
68
  function getTransitionStyles(height) {
68
69
  const _duration = transitionDuration || getAutoHeightDuration(height);
69
70
  return {
70
- transitionProperty: `${axis === "x" ? "width" : "height"}`,
71
- transitionDuration: `${_duration}ms`,
72
- transitionTimingFunction: `${transitionTimingFunction}`
71
+ transition: `height ${_duration}ms ${transitionTimingFunction}`
73
72
  };
74
73
  }
75
- const getDefaultSizes = () => {
76
- const oldStyles = styles;
77
- setStyles({});
78
- const sizes = { width: getElementWidth(el), height: getElementHeight(el) };
79
- setStyles(oldStyles);
80
- return sizes;
81
- };
82
- const getCollapsedStyles = () => {
83
- const { height } = getDefaultSizes();
84
- return {
85
- x: { height, width: "0px", overflow: "hidden" },
86
- y: { display: "none", height: "0px", overflow: "hidden" }
87
- };
88
- };
89
- useEffect(() => {
90
- raf(() => {
91
- const { x, y } = getCollapsedStyles();
92
- if (axis === "x" && !opened) {
93
- setStyles(__spreadValues({}, x));
94
- } else if (axis === "y" && !opened) {
95
- setStyles(__spreadValues({}, y));
96
- }
97
- });
98
- }, []);
99
74
  useDidUpdate(() => {
100
- if (axis === "x")
101
- return;
102
75
  if (opened) {
103
76
  raf(() => {
104
77
  mergeStyles({ willChange: "height", display: "block", overflow: "hidden" });
@@ -115,48 +88,21 @@ function useCollapse({
115
88
  });
116
89
  }
117
90
  }, [opened]);
118
- useDidUpdate(() => {
119
- if (axis === "y")
120
- return;
121
- if (opened) {
122
- raf(() => {
123
- const { width } = getDefaultSizes();
124
- mergeStyles({
125
- display: "block",
126
- overflow: "hidden",
127
- willChange: "width",
128
- flexShrink: 0
129
- });
130
- raf(() => {
131
- mergeStyles(__spreadProps(__spreadValues({}, getTransitionStyles(width)), { width }));
132
- });
133
- });
134
- } else {
135
- raf(() => {
136
- const { width, height } = getDefaultSizes();
137
- mergeStyles(__spreadProps(__spreadValues({}, getTransitionStyles(width)), {
138
- flexShrink: 0,
139
- willChange: "width",
140
- width,
141
- height
142
- }));
143
- raf(() => mergeStyles({ width: "0px", overflow: "hidden" }));
144
- });
145
- }
146
- }, [opened]);
147
91
  const handleTransitionEnd = (e) => {
148
- if (e.target !== el.current || !(e.propertyName === "width" || "height")) {
92
+ if (e.target !== el.current || e.propertyName !== "height") {
149
93
  return;
150
94
  }
151
- onTransitionEnd();
152
95
  if (opened) {
153
- setStyles({});
154
- } else {
155
- const { x, y } = getCollapsedStyles();
156
- if (axis === "x")
157
- setStyles(x);
158
- else
159
- setStyles(y);
96
+ const height = getElementHeight(el);
97
+ if (height === styles.height) {
98
+ setStyles({});
99
+ } else {
100
+ mergeStyles({ height });
101
+ }
102
+ onTransitionEnd();
103
+ } else if (styles.height === collapsedHeight) {
104
+ setStyles(collapsedStyles);
105
+ onTransitionEnd();
160
106
  }
161
107
  };
162
108
  function getCollapseProps(_a = {}) {
@@ -173,5 +119,5 @@ function useCollapse({
173
119
  return getCollapseProps;
174
120
  }
175
121
 
176
- export { getElementHeight, getElementWidth, useCollapse };
122
+ export { getElementHeight, useCollapse };
177
123
  //# sourceMappingURL=use-collapse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-collapse.js","sources":["../../src/Collapse/use-collapse.ts"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { flushSync } from 'react-dom';\nimport { useDidUpdate, mergeRefs } from '@mantine/hooks';\n\nfunction getAutoHeightDuration(height: number | string) {\n if (!height || typeof height === 'string') {\n return 0;\n }\n const constant = height / 36;\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\n\nexport function getElementHeight(\n el: React.RefObject<HTMLElement> | { current?: { scrollHeight: number } }\n) {\n return el?.current ? el.current.scrollHeight : 'auto';\n}\n\nexport function getElementWidth(\n el: React.RefObject<HTMLElement> | { current?: { scrollWidth: number } }\n) {\n return el?.current ? el.current.scrollWidth : 'auto';\n}\n\nconst raf = typeof window !== 'undefined' && window.requestAnimationFrame;\n\ninterface UseCollapse {\n axis: 'x' | 'y';\n opened: boolean;\n transitionDuration?: number;\n transitionTimingFunction?: string;\n onTransitionEnd?: () => void;\n}\n\ninterface GetCollapseProps {\n [key: string]: unknown;\n style?: React.CSSProperties;\n onTransitionEnd?: (e: TransitionEvent) => void;\n refKey?: string;\n ref?: React.MutableRefObject<HTMLDivElement> | ((node: HTMLDivElement) => void);\n}\n\nexport function useCollapse({\n transitionDuration,\n transitionTimingFunction = 'ease',\n onTransitionEnd = () => {},\n opened,\n axis,\n}: UseCollapse): (props: GetCollapseProps) => Record<string, any> {\n const el = useRef<HTMLElement | null>(null);\n const collapsedHeight = '0px';\n const [styles, setStylesRaw] = useState<React.CSSProperties>({});\n\n const setStyles = (newStyles: {} | ((oldStyles: {}) => {})): void => {\n flushSync(() => setStylesRaw(newStyles));\n };\n\n const mergeStyles = (newStyles: {}): void => {\n setStyles((oldStyles) => ({ ...oldStyles, ...newStyles }));\n };\n\n function getTransitionStyles(height: number | string): {\n transition?: string;\n transitionProperty?: string;\n transitionDuration?: string;\n transitionTimingFunction?: string;\n } {\n const _duration = transitionDuration || getAutoHeightDuration(height);\n return {\n transitionProperty: `${axis === 'x' ? 'width' : 'height'}`,\n transitionDuration: `${_duration}ms`,\n transitionTimingFunction: `${transitionTimingFunction}`,\n };\n }\n\n const getDefaultSizes = () => {\n const oldStyles = styles;\n setStyles({});\n const sizes = { width: getElementWidth(el), height: getElementHeight(el) };\n setStyles(oldStyles);\n return sizes;\n };\n\n const getCollapsedStyles = () => {\n const { height } = getDefaultSizes();\n return {\n x: { height, width: '0px', overflow: 'hidden' },\n y: { display: 'none', height: '0px', overflow: 'hidden' },\n };\n };\n\n useEffect(() => {\n raf(() => {\n const { x, y } = getCollapsedStyles();\n if (axis === 'x' && !opened) {\n setStyles({ ...x });\n } else if (axis === 'y' && !opened) {\n setStyles({ ...y });\n }\n });\n }, []);\n\n // y axis\n useDidUpdate(() => {\n if (axis === 'x') return;\n\n if (opened) {\n raf(() => {\n mergeStyles({ willChange: 'height', display: 'block', overflow: 'hidden' });\n raf(() => {\n const height = getElementHeight(el);\n mergeStyles({ ...getTransitionStyles(height), height });\n });\n });\n } else {\n raf(() => {\n const height = getElementHeight(el);\n mergeStyles({ ...getTransitionStyles(height), willChange: 'height', height });\n raf(() => mergeStyles({ height: collapsedHeight, overflow: 'hidden' }));\n });\n }\n }, [opened]);\n\n // x axis\n useDidUpdate(() => {\n if (axis === 'y') return;\n\n if (opened) {\n raf(() => {\n const { width } = getDefaultSizes();\n mergeStyles({\n display: 'block',\n overflow: 'hidden',\n willChange: 'width',\n flexShrink: 0,\n });\n raf(() => {\n mergeStyles({ ...getTransitionStyles(width), width });\n });\n });\n } else {\n raf(() => {\n const { width, height } = getDefaultSizes();\n mergeStyles({\n ...getTransitionStyles(width),\n flexShrink: 0,\n willChange: 'width',\n width,\n height,\n });\n raf(() => mergeStyles({ width: '0px', overflow: 'hidden' }));\n });\n }\n }, [opened]);\n\n const handleTransitionEnd = (e: React.TransitionEvent): void => {\n if (e.target !== el.current || !(e.propertyName === 'width' || 'height')) {\n return;\n }\n\n onTransitionEnd();\n if (opened) {\n setStyles({});\n } else {\n const { x, y } = getCollapsedStyles();\n if (axis === 'x') setStyles(x);\n else setStyles(y);\n }\n };\n\n function getCollapseProps({ style = {}, refKey = 'ref', ...rest }: GetCollapseProps = {}) {\n const theirRef: any = rest[refKey];\n\n return {\n 'aria-hidden': !opened,\n ...rest,\n [refKey]: mergeRefs(el, theirRef),\n onTransitionEnd: handleTransitionEnd,\n style: { boxSizing: 'border-box', ...style, ...styles },\n };\n }\n\n return getCollapseProps;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-collapse.js","sources":["../../src/Collapse/use-collapse.ts"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { flushSync } from 'react-dom';\nimport { useDidUpdate, mergeRefs } from '@mantine/hooks';\n\nfunction getAutoHeightDuration(height: number | string) {\n if (!height || typeof height === 'string') {\n return 0;\n }\n const constant = height / 36;\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\n\nexport function getElementHeight(\n el: React.RefObject<HTMLElement> | { current?: { scrollHeight: number } }\n) {\n return el?.current ? el.current.scrollHeight : 'auto';\n}\n\nconst raf = typeof window !== 'undefined' && window.requestAnimationFrame;\n\ninterface UseCollapse {\n opened: boolean;\n transitionDuration?: number;\n transitionTimingFunction?: string;\n onTransitionEnd?: () => void;\n}\n\ninterface GetCollapseProps {\n [key: string]: unknown;\n style?: React.CSSProperties;\n onTransitionEnd?: (e: TransitionEvent) => void;\n refKey?: string;\n ref?: React.MutableRefObject<HTMLDivElement> | ((node: HTMLDivElement) => void);\n}\n\nexport function useCollapse({\n transitionDuration,\n transitionTimingFunction = 'ease',\n onTransitionEnd = () => {},\n opened,\n}: UseCollapse): (props: GetCollapseProps) => Record<string, any> {\n const el = useRef<HTMLElement | null>(null);\n const collapsedHeight = '0px';\n const collapsedStyles = {\n display: 'none',\n height: '0px',\n overflow: 'hidden',\n };\n const [styles, setStylesRaw] = useState<React.CSSProperties>(opened ? {} : collapsedStyles);\n const setStyles = (newStyles: {} | ((oldStyles: {}) => {})): void => {\n flushSync(() => setStylesRaw(newStyles));\n };\n\n const mergeStyles = (newStyles: {}): void => {\n setStyles((oldStyles) => ({ ...oldStyles, ...newStyles }));\n };\n\n function getTransitionStyles(height: number | string): {\n transition: string;\n } {\n const _duration = transitionDuration || getAutoHeightDuration(height);\n return {\n transition: `height ${_duration}ms ${transitionTimingFunction}`,\n };\n }\n\n useDidUpdate(() => {\n if (opened) {\n raf(() => {\n mergeStyles({ willChange: 'height', display: 'block', overflow: 'hidden' });\n raf(() => {\n const height = getElementHeight(el);\n mergeStyles({ ...getTransitionStyles(height), height });\n });\n });\n } else {\n raf(() => {\n const height = getElementHeight(el);\n mergeStyles({ ...getTransitionStyles(height), willChange: 'height', height });\n raf(() => mergeStyles({ height: collapsedHeight, overflow: 'hidden' }));\n });\n }\n }, [opened]);\n\n const handleTransitionEnd = (e: React.TransitionEvent): void => {\n if (e.target !== el.current || e.propertyName !== 'height') {\n return;\n }\n\n if (opened) {\n const height = getElementHeight(el);\n\n if (height === styles.height) {\n setStyles({});\n } else {\n mergeStyles({ height });\n }\n\n onTransitionEnd();\n } else if (styles.height === collapsedHeight) {\n setStyles(collapsedStyles);\n onTransitionEnd();\n }\n };\n\n function getCollapseProps({ style = {}, refKey = 'ref', ...rest }: GetCollapseProps = {}) {\n const theirRef: any = rest[refKey];\n return {\n 'aria-hidden': !opened,\n ...rest,\n [refKey]: mergeRefs(el, theirRef),\n onTransitionEnd: handleTransitionEnd,\n style: { boxSizing: 'border-box', ...style, ...styles },\n };\n }\n\n return getCollapseProps;\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import React, { forwardRef } from 'react';
2
+ import { useMantineTheme } from '@mantine/styles';
2
3
  import { getArrowPositionStyles } from './get-arrow-position-styles.js';
3
4
 
4
5
  var __defProp = Object.defineProperty;
@@ -33,7 +34,28 @@ var __objRest = (source, exclude) => {
33
34
  return target;
34
35
  };
35
36
  const FloatingArrow = forwardRef((_a, ref) => {
36
- var _b = _a, { withBorder, position, arrowSize, arrowRadius, visible, arrowX, arrowY } = _b, others = __objRest(_b, ["withBorder", "position", "arrowSize", "arrowRadius", "visible", "arrowX", "arrowY"]);
37
+ var _b = _a, {
38
+ withBorder,
39
+ position,
40
+ arrowSize,
41
+ arrowOffset,
42
+ arrowRadius,
43
+ arrowPosition,
44
+ visible,
45
+ arrowX,
46
+ arrowY
47
+ } = _b, others = __objRest(_b, [
48
+ "withBorder",
49
+ "position",
50
+ "arrowSize",
51
+ "arrowOffset",
52
+ "arrowRadius",
53
+ "arrowPosition",
54
+ "visible",
55
+ "arrowX",
56
+ "arrowY"
57
+ ]);
58
+ const theme = useMantineTheme();
37
59
  if (!visible) {
38
60
  return null;
39
61
  }
@@ -43,7 +65,10 @@ const FloatingArrow = forwardRef((_a, ref) => {
43
65
  withBorder,
44
66
  position,
45
67
  arrowSize,
68
+ arrowOffset,
46
69
  arrowRadius,
70
+ arrowPosition,
71
+ dir: theme.dir,
47
72
  arrowX,
48
73
  arrowY
49
74
  })
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingArrow.js","sources":["../../../src/Floating/FloatingArrow/FloatingArrow.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { getArrowPositionStyles } from './get-arrow-position-styles';\nimport { FloatingPosition } from '../types';\n\ninterface FloatingArrowProps extends React.ComponentPropsWithoutRef<'div'> {\n withBorder: boolean;\n position: FloatingPosition;\n arrowSize: number;\n arrowRadius: number;\n arrowX: number;\n arrowY: number;\n visible: boolean;\n}\n\nexport const FloatingArrow = forwardRef<HTMLDivElement, FloatingArrowProps>(\n ({ withBorder, position, arrowSize, arrowRadius, visible, arrowX, arrowY, ...others }, ref) => {\n if (!visible) {\n return null;\n }\n\n return (\n <div\n {...others}\n ref={ref}\n style={getArrowPositionStyles({\n withBorder,\n position,\n arrowSize,\n arrowRadius,\n arrowX,\n arrowY,\n })}\n />\n );\n }\n);\n\nFloatingArrow.displayName = '@mantine/core/FloatingArrow';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FloatingArrow.js","sources":["../../../src/Floating/FloatingArrow/FloatingArrow.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/styles';\nimport { getArrowPositionStyles } from './get-arrow-position-styles';\nimport { ArrowPosition, FloatingPosition } from '../types';\n\ninterface FloatingArrowProps extends React.ComponentPropsWithoutRef<'div'> {\n withBorder: boolean;\n position: FloatingPosition;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n arrowX: number;\n arrowY: number;\n visible: boolean;\n}\n\nexport const FloatingArrow = forwardRef<HTMLDivElement, FloatingArrowProps>(\n (\n {\n withBorder,\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n visible,\n arrowX,\n arrowY,\n ...others\n },\n ref\n ) => {\n const theme = useMantineTheme();\n if (!visible) {\n return null;\n }\n\n return (\n <div\n {...others}\n ref={ref}\n style={getArrowPositionStyles({\n withBorder,\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n dir: theme.dir,\n arrowX,\n arrowY,\n })}\n />\n );\n }\n);\n\nFloatingArrow.displayName = '@mantine/core/FloatingArrow';\n"],"names":[],"mappings":"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"}
@@ -17,6 +17,30 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ function horizontalSide(placement, arrowY, arrowOffset, arrowPosition) {
21
+ if (placement === "center" || arrowPosition === "center") {
22
+ return { top: arrowY };
23
+ }
24
+ if (placement === "end") {
25
+ return { bottom: arrowOffset };
26
+ }
27
+ if (placement === "start") {
28
+ return { top: arrowOffset };
29
+ }
30
+ return {};
31
+ }
32
+ function verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir) {
33
+ if (placement === "center" || arrowPosition === "center") {
34
+ return { left: arrowX };
35
+ }
36
+ if (placement === "end") {
37
+ return { [dir === "ltr" ? "right" : "left"]: arrowOffset };
38
+ }
39
+ if (placement === "start") {
40
+ return { [dir === "ltr" ? "left" : "right"]: arrowOffset };
41
+ }
42
+ return {};
43
+ }
20
44
  const radiusByFloatingSide = {
21
45
  bottom: "borderTopLeftRadius",
22
46
  left: "borderTopRightRadius",
@@ -27,11 +51,14 @@ function getArrowPositionStyles({
27
51
  position,
28
52
  withBorder,
29
53
  arrowSize,
54
+ arrowOffset,
30
55
  arrowRadius,
56
+ arrowPosition,
31
57
  arrowX,
32
- arrowY
58
+ arrowY,
59
+ dir
33
60
  }) {
34
- const [side] = position.split("-");
61
+ const [side, placement = "center"] = position.split("-");
35
62
  const baseStyles = {
36
63
  width: arrowSize,
37
64
  height: arrowSize,
@@ -39,35 +66,31 @@ function getArrowPositionStyles({
39
66
  position: "absolute",
40
67
  [radiusByFloatingSide[side]]: arrowRadius
41
68
  };
42
- const arrowPosition = withBorder ? -arrowSize / 2 - 1 : -arrowSize / 2;
69
+ const arrowPlacement = withBorder ? -arrowSize / 2 - 1 : -arrowSize / 2;
43
70
  if (side === "left") {
44
- return __spreadProps(__spreadValues({}, baseStyles), {
45
- top: arrowY,
46
- right: arrowPosition,
71
+ return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {
72
+ right: arrowPlacement,
47
73
  borderLeft: 0,
48
74
  borderBottom: 0
49
75
  });
50
76
  }
51
77
  if (side === "right") {
52
- return __spreadProps(__spreadValues({}, baseStyles), {
53
- top: arrowY,
54
- left: arrowPosition,
78
+ return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {
79
+ left: arrowPlacement,
55
80
  borderRight: 0,
56
81
  borderTop: 0
57
82
  });
58
83
  }
59
84
  if (side === "top") {
60
- return __spreadProps(__spreadValues({}, baseStyles), {
61
- left: arrowX,
62
- bottom: arrowPosition,
85
+ return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {
86
+ bottom: arrowPlacement,
63
87
  borderTop: 0,
64
88
  borderLeft: 0
65
89
  });
66
90
  }
67
91
  if (side === "bottom") {
68
- return __spreadProps(__spreadValues({}, baseStyles), {
69
- left: arrowX,
70
- top: arrowPosition,
92
+ return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {
93
+ top: arrowPlacement,
71
94
  borderBottom: 0,
72
95
  borderRight: 0
73
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-arrow-position-styles.js","sources":["../../../src/Floating/FloatingArrow/get-arrow-position-styles.ts"],"sourcesContent":["import { CSSObject } from '@mantine/styles';\nimport type { FloatingPosition, FloatingSide, FloatingPlacement } from '../types';\n\nconst radiusByFloatingSide: Record<\n FloatingSide,\n keyof Pick<\n CSSObject,\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n >\n> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n};\n\nexport function getArrowPositionStyles({\n position,\n withBorder,\n arrowSize,\n arrowRadius,\n arrowX,\n arrowY,\n}: {\n position: FloatingPosition;\n withBorder: boolean;\n arrowSize: number;\n arrowRadius: number;\n arrowX: number;\n arrowY: number;\n}) {\n const [side] = position.split('-') as [FloatingSide, FloatingPlacement];\n const baseStyles = {\n width: arrowSize,\n height: arrowSize,\n transform: 'rotate(45deg)',\n position: 'absolute',\n [radiusByFloatingSide[side]]: arrowRadius,\n };\n\n const arrowPosition = withBorder ? -arrowSize / 2 - 1 : -arrowSize / 2;\n\n if (side === 'left') {\n return {\n ...baseStyles,\n top: arrowY,\n right: arrowPosition,\n borderLeft: 0,\n borderBottom: 0,\n };\n }\n\n if (side === 'right') {\n return {\n ...baseStyles,\n top: arrowY,\n left: arrowPosition,\n borderRight: 0,\n borderTop: 0,\n };\n }\n\n if (side === 'top') {\n return {\n ...baseStyles,\n left: arrowX,\n bottom: arrowPosition,\n borderTop: 0,\n borderLeft: 0,\n };\n }\n\n if (side === 'bottom') {\n return {\n ...baseStyles,\n left: arrowX,\n top: arrowPosition,\n borderBottom: 0,\n borderRight: 0,\n };\n }\n\n return {};\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-arrow-position-styles.js","sources":["../../../src/Floating/FloatingArrow/get-arrow-position-styles.ts"],"sourcesContent":["import { CSSObject } from '@mantine/styles';\nimport type { FloatingPosition, FloatingSide, FloatingPlacement, ArrowPosition } from '../types';\n\nfunction horizontalSide(\n placement: FloatingPlacement | 'center',\n arrowY: number,\n arrowOffset: number,\n arrowPosition: ArrowPosition\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { top: arrowY };\n }\n\n if (placement === 'end') {\n return { bottom: arrowOffset };\n }\n\n if (placement === 'start') {\n return { top: arrowOffset };\n }\n\n return {};\n}\n\nfunction verticalSide(\n placement: FloatingPlacement | 'center',\n arrowX: number,\n arrowOffset: number,\n arrowPosition: ArrowPosition,\n dir: 'rtl' | 'ltr'\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { left: arrowX };\n }\n\n if (placement === 'end') {\n return { [dir === 'ltr' ? 'right' : 'left']: arrowOffset };\n }\n\n if (placement === 'start') {\n return { [dir === 'ltr' ? 'left' : 'right']: arrowOffset };\n }\n\n return {};\n}\n\nconst radiusByFloatingSide: Record<\n FloatingSide,\n keyof Pick<\n CSSObject,\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n >\n> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n};\n\nexport function getArrowPositionStyles({\n position,\n withBorder,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n arrowX,\n arrowY,\n dir,\n}: {\n position: FloatingPosition;\n withBorder: boolean;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n arrowX: number;\n arrowY: number;\n dir: 'rtl' | 'ltr';\n}) {\n const [side, placement = 'center'] = position.split('-') as [FloatingSide, FloatingPlacement];\n const baseStyles = {\n width: arrowSize,\n height: arrowSize,\n transform: 'rotate(45deg)',\n position: 'absolute',\n [radiusByFloatingSide[side]]: arrowRadius,\n };\n\n const arrowPlacement = withBorder ? -arrowSize / 2 - 1 : -arrowSize / 2;\n\n if (side === 'left') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n right: arrowPlacement,\n borderLeft: 0,\n borderBottom: 0,\n };\n }\n\n if (side === 'right') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n left: arrowPlacement,\n borderRight: 0,\n borderTop: 0,\n };\n }\n\n if (side === 'top') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n bottom: arrowPlacement,\n borderTop: 0,\n borderLeft: 0,\n };\n }\n\n if (side === 'bottom') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n top: arrowPlacement,\n borderBottom: 0,\n borderRight: 0,\n };\n }\n\n return {};\n}\n"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE;AACvE,EAAE,IAAI,SAAS,KAAK,QAAQ,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC5D,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,SAAS,KAAK,KAAK,EAAE;AAC3B,IAAI,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACnC,GAAG;AACH,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE;AAC7B,IAAI,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AAChC,GAAG;AACH,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,SAAS,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE;AAC1E,EAAE,IAAI,SAAS,KAAK,QAAQ,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC5D,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,SAAS,KAAK,KAAK,EAAE;AAC3B,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;AAC/D,GAAG;AACH,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE;AAC7B,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;AAC/D,GAAG;AACH,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,MAAM,oBAAoB,GAAG;AAC7B,EAAE,MAAM,EAAE,qBAAqB;AAC/B,EAAE,IAAI,EAAE,sBAAsB;AAC9B,EAAE,KAAK,EAAE,wBAAwB;AACjC,EAAE,GAAG,EAAE,yBAAyB;AAChC,CAAC,CAAC;AACK,SAAS,sBAAsB,CAAC;AACvC,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,aAAa;AACf,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,GAAG;AACL,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,EAAE,MAAM,UAAU,GAAG;AACrB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,SAAS,EAAE,eAAe;AAC9B,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,WAAW;AAC7C,GAAG,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AAC1E,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;AACvB,IAAI,OAAO,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE;AACxI,MAAM,KAAK,EAAE,cAAc;AAC3B,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,YAAY,EAAE,CAAC;AACrB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE;AACxB,IAAI,OAAO,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE;AACxI,MAAM,IAAI,EAAE,cAAc;AAC1B,MAAM,WAAW,EAAE,CAAC;AACpB,MAAM,SAAS,EAAE,CAAC;AAClB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE;AACtB,IAAI,OAAO,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3I,MAAM,MAAM,EAAE,cAAc;AAC5B,MAAM,SAAS,EAAE,CAAC;AAClB,MAAM,UAAU,EAAE,CAAC;AACnB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE;AACzB,IAAI,OAAO,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3I,MAAM,GAAG,EAAE,cAAc;AACzB,MAAM,YAAY,EAAE,CAAC;AACrB,MAAM,WAAW,EAAE,CAAC;AACpB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,EAAE,CAAC;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.context.js","sources":["../../src/Popover/Popover.context.ts"],"sourcesContent":["import { ReferenceType } from '@floating-ui/react-dom-interactions';\nimport { createSafeContext } from '@mantine/utils';\nimport { MantineNumberSize, MantineShadow } from '@mantine/styles';\nimport { FloatingPosition } from '../Floating';\nimport { MantineTransition } from '../Transition';\nimport { POPOVER_ERRORS } from './Popover.errors';\nimport { PopoverWidth } from './Popover.types';\n\ninterface PopoverContext {\n x: number;\n y: number;\n arrowX: number;\n arrowY: number;\n arrowRef: React.RefObject<HTMLDivElement>;\n opened: boolean;\n transition: MantineTransition;\n transitionDuration: number;\n exitTransitionDuration: number;\n reference: (node: ReferenceType) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean;\n arrowSize: number;\n arrowRadius: number;\n trapFocus: boolean;\n placement: FloatingPosition;\n withinPortal: boolean;\n closeOnEscape: boolean;\n zIndex: React.CSSProperties['zIndex'];\n radius?: MantineNumberSize;\n shadow?: MantineShadow;\n onClose?(): void;\n getDropdownId(): string;\n getTargetId(): string;\n controlled: boolean;\n onToggle(): void;\n withRoles: boolean;\n targetProps: Record<string, any>;\n disabled: boolean;\n returnFocus: boolean;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContext>(\n POPOVER_ERRORS.context\n);\n"],"names":[],"mappings":";;;AAEY,MAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,GAAG,iBAAiB,CAAC,cAAc,CAAC,OAAO;;;;"}
1
+ {"version":3,"file":"Popover.context.js","sources":["../../src/Popover/Popover.context.ts"],"sourcesContent":["import { ReferenceType } from '@floating-ui/react-dom-interactions';\nimport { createSafeContext } from '@mantine/utils';\nimport { MantineNumberSize, MantineShadow } from '@mantine/styles';\nimport { FloatingPosition, ArrowPosition } from '../Floating';\nimport { MantineTransition } from '../Transition';\nimport { POPOVER_ERRORS } from './Popover.errors';\nimport { PopoverWidth } from './Popover.types';\n\ninterface PopoverContext {\n x: number;\n y: number;\n arrowX: number;\n arrowY: number;\n arrowRef: React.RefObject<HTMLDivElement>;\n opened: boolean;\n transition: MantineTransition;\n transitionDuration: number;\n exitTransitionDuration: number;\n reference: (node: ReferenceType) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean;\n placement: FloatingPosition;\n withinPortal: boolean;\n closeOnEscape: boolean;\n zIndex: React.CSSProperties['zIndex'];\n radius?: MantineNumberSize;\n shadow?: MantineShadow;\n onClose?(): void;\n getDropdownId(): string;\n getTargetId(): string;\n controlled: boolean;\n onToggle(): void;\n withRoles: boolean;\n targetProps: Record<string, any>;\n disabled: boolean;\n returnFocus: boolean;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContext>(\n POPOVER_ERRORS.context\n);\n"],"names":[],"mappings":";;;AAEY,MAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,GAAG,iBAAiB,CAAC,cAAc,CAAC,OAAO;;;;"}
@@ -32,6 +32,7 @@ const defaultProps = {
32
32
  arrowSize: 7,
33
33
  arrowOffset: 5,
34
34
  arrowRadius: 0,
35
+ arrowPosition: "side",
35
36
  closeOnClickOutside: true,
36
37
  withinPortal: false,
37
38
  closeOnEscape: true,
@@ -61,6 +62,7 @@ function Popover(props) {
61
62
  arrowSize,
62
63
  arrowOffset,
63
64
  arrowRadius,
65
+ arrowPosition,
64
66
  unstyled,
65
67
  classNames,
66
68
  styles,
@@ -97,6 +99,7 @@ function Popover(props) {
97
99
  "arrowSize",
98
100
  "arrowOffset",
99
101
  "arrowRadius",
102
+ "arrowPosition",
100
103
  "unstyled",
101
104
  "classNames",
102
105
  "styles",
@@ -174,7 +177,9 @@ function Popover(props) {
174
177
  width,
175
178
  withArrow,
176
179
  arrowSize,
180
+ arrowOffset,
177
181
  arrowRadius,
182
+ arrowPosition,
178
183
  placement: popover.floating.placement,
179
184
  trapFocus,
180
185
  withinPortal,
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n\nimport React, { useRef, useState, useCallback } from 'react';\nimport { useId, useClickOutside } from '@mantine/hooks';\nimport {\n useMantineTheme,\n ClassNames,\n Styles,\n StylesApiProvider,\n MantineNumberSize,\n MantineShadow,\n getDefaultZIndex,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { MantineTransition } from '../Transition';\nimport { getFloatingPosition, FloatingPosition } from '../Floating';\nimport { usePopover } from './use-popover';\nimport { PopoverContextProvider } from './Popover.context';\nimport {\n PopoverWidth,\n PopoverMiddlewares,\n PopoverStylesNames,\n PopoverStylesParams,\n} from './Popover.types';\nimport { PopoverTarget } from './PopoverTarget/PopoverTarget';\nimport { PopoverDropdown } from './PopoverDropdown/PopoverDropdown';\n\nexport interface PopoverBaseProps {\n /** Dropdown position relative to target */\n position?: FloatingPosition;\n\n /** Space between target element and dropdown in px */\n offset?: number;\n\n /** Called when dropdown position changes */\n onPositionChange?(position: FloatingPosition): void;\n\n /** useEffect dependencies to force update dropdown position */\n positionDependencies?: any[];\n\n /** Called when dropdown closes */\n onClose?(): void;\n\n /** Called when dropdown opens */\n onOpen?(): void;\n\n /** One of premade transitions ot transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms */\n transitionDuration?: number;\n\n /** Exit transition duration in ms */\n exitTransitionDuration?: number;\n\n /** Dropdown width, or 'target' to make dropdown width the same as target element */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow */\n withArrow?: boolean;\n\n /** Arrow size in px */\n arrowSize?: number;\n\n /** Arrow offset in px */\n arrowOffset?: number;\n\n /** Arrow radius in px */\n arrowRadius?: number;\n\n /** Determines whether dropdown should be rendered within Portal, defaults to false */\n withinPortal?: boolean;\n\n /** Dropdown z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Radius from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Key of theme.shadow or any other valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not render */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes, false by default */\n returnFocus?: boolean;\n}\n\nexport interface PopoverProps extends PopoverBaseProps {\n /** Popover.Target and Popover.Dropdown components */\n children: React.ReactNode;\n\n /** Initial opened state for uncontrolled component */\n defaultOpened?: boolean;\n\n /** Controls dropdown opened state */\n opened?: boolean;\n\n /** Called with current state when dropdown opens or closes */\n onChange?(opened: boolean): void;\n\n /** Determines whether dropdown should be closed on outside clicks, default to true */\n closeOnClickOutside?: boolean;\n\n /** Events that trigger outside clicks */\n clickOutsideEvents?: string[];\n\n /** Determines whether focus should be trapped within dropdown, default to false */\n trapFocus?: boolean;\n\n /** Determines whether dropdown should be closed when Escape key is pressed, defaults to true */\n closeOnEscape?: boolean;\n\n /** id base to create accessibility connections */\n id?: string;\n\n /** Determines whether dropdown and target element should have accessible roles, defaults to true */\n withRoles?: boolean;\n\n unstyled?: boolean;\n classNames?: ClassNames<PopoverStylesNames>;\n styles?: Styles<PopoverStylesNames, PopoverStylesParams>;\n __staticSelector?: string;\n}\n\nconst defaultProps: Partial<PopoverProps> = {\n position: 'bottom',\n offset: 8,\n positionDependencies: [],\n transition: 'fade',\n transitionDuration: 150,\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n closeOnClickOutside: true,\n withinPortal: false,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n};\n\nexport function Popover(props: PopoverProps) {\n const arrowRef = useRef<HTMLDivElement | null>(null);\n const {\n children,\n position,\n offset,\n onPositionChange,\n positionDependencies,\n opened,\n transition,\n transitionDuration,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n exitTransitionDuration,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n ...others\n } = useComponentDefaultProps('Popover', defaultProps, props);\n\n const [targetNode, setTargetNode] = useState<HTMLElement>(null);\n const [dropdownNode, setDropdownNode] = useState<HTMLElement>(null);\n\n const uid = useId(id);\n const theme = useMantineTheme();\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(theme.dir, position),\n offset: offset + (withArrow ? arrowSize / 2 : 0),\n arrowRef,\n arrowOffset,\n onPositionChange,\n positionDependencies,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose,\n });\n\n useClickOutside(() => closeOnClickOutside && popover.onClose(), clickOutsideEvents, [\n targetNode,\n dropdownNode,\n ]);\n\n const reference = useCallback(\n (node: HTMLElement) => {\n setTargetNode(node);\n popover.floating.reference(node);\n },\n [popover.floating.reference]\n );\n\n const floating = useCallback(\n (node: HTMLElement) => {\n setDropdownNode(node);\n popover.floating.floating(node);\n },\n [popover.floating.floating]\n );\n\n return (\n <StylesApiProvider\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n staticSelector={__staticSelector}\n >\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transition,\n transitionDuration,\n exitTransitionDuration,\n width,\n withArrow,\n arrowSize,\n arrowRadius,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => `${uid}-target`,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n }}\n >\n {children}\n </PopoverContextProvider>\n </StylesApiProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.displayName = '@mantine/core/Popover';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n\nimport React, { useRef, useState, useCallback } from 'react';\nimport { useId, useClickOutside } from '@mantine/hooks';\nimport {\n useMantineTheme,\n ClassNames,\n Styles,\n StylesApiProvider,\n MantineNumberSize,\n MantineShadow,\n getDefaultZIndex,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { MantineTransition } from '../Transition';\nimport { getFloatingPosition, FloatingPosition, ArrowPosition } from '../Floating';\nimport { usePopover } from './use-popover';\nimport { PopoverContextProvider } from './Popover.context';\nimport {\n PopoverWidth,\n PopoverMiddlewares,\n PopoverStylesNames,\n PopoverStylesParams,\n} from './Popover.types';\nimport { PopoverTarget } from './PopoverTarget/PopoverTarget';\nimport { PopoverDropdown } from './PopoverDropdown/PopoverDropdown';\n\nexport interface PopoverBaseProps {\n /** Dropdown position relative to target */\n position?: FloatingPosition;\n\n /** Space between target element and dropdown in px */\n offset?: number;\n\n /** Called when dropdown position changes */\n onPositionChange?(position: FloatingPosition): void;\n\n /** useEffect dependencies to force update dropdown position */\n positionDependencies?: any[];\n\n /** Called when dropdown closes */\n onClose?(): void;\n\n /** Called when dropdown opens */\n onOpen?(): void;\n\n /** One of premade transitions ot transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms */\n transitionDuration?: number;\n\n /** Exit transition duration in ms */\n exitTransitionDuration?: number;\n\n /** Dropdown width, or 'target' to make dropdown width the same as target element */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow */\n withArrow?: boolean;\n\n /** Arrow size in px */\n arrowSize?: number;\n\n /** Arrow offset in px */\n arrowOffset?: number;\n\n /** Arrow radius in px */\n arrowRadius?: number;\n\n /** Arrow position **/\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within Portal, defaults to false */\n withinPortal?: boolean;\n\n /** Dropdown z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Radius from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Key of theme.shadow or any other valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not render */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes, false by default */\n returnFocus?: boolean;\n}\n\nexport interface PopoverProps extends PopoverBaseProps {\n /** Popover.Target and Popover.Dropdown components */\n children: React.ReactNode;\n\n /** Initial opened state for uncontrolled component */\n defaultOpened?: boolean;\n\n /** Controls dropdown opened state */\n opened?: boolean;\n\n /** Called with current state when dropdown opens or closes */\n onChange?(opened: boolean): void;\n\n /** Determines whether dropdown should be closed on outside clicks, default to true */\n closeOnClickOutside?: boolean;\n\n /** Events that trigger outside clicks */\n clickOutsideEvents?: string[];\n\n /** Determines whether focus should be trapped within dropdown, default to false */\n trapFocus?: boolean;\n\n /** Determines whether dropdown should be closed when Escape key is pressed, defaults to true */\n closeOnEscape?: boolean;\n\n /** id base to create accessibility connections */\n id?: string;\n\n /** Determines whether dropdown and target element should have accessible roles, defaults to true */\n withRoles?: boolean;\n\n unstyled?: boolean;\n classNames?: ClassNames<PopoverStylesNames>;\n styles?: Styles<PopoverStylesNames, PopoverStylesParams>;\n __staticSelector?: string;\n}\n\nconst defaultProps: Partial<PopoverProps> = {\n position: 'bottom',\n offset: 8,\n positionDependencies: [],\n transition: 'fade',\n transitionDuration: 150,\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n closeOnClickOutside: true,\n withinPortal: false,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n};\n\nexport function Popover(props: PopoverProps) {\n const arrowRef = useRef<HTMLDivElement | null>(null);\n const {\n children,\n position,\n offset,\n onPositionChange,\n positionDependencies,\n opened,\n transition,\n transitionDuration,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n exitTransitionDuration,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n ...others\n } = useComponentDefaultProps('Popover', defaultProps, props);\n\n const [targetNode, setTargetNode] = useState<HTMLElement>(null);\n const [dropdownNode, setDropdownNode] = useState<HTMLElement>(null);\n\n const uid = useId(id);\n const theme = useMantineTheme();\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(theme.dir, position),\n offset: offset + (withArrow ? arrowSize / 2 : 0),\n arrowRef,\n arrowOffset,\n onPositionChange,\n positionDependencies,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose,\n });\n\n useClickOutside(() => closeOnClickOutside && popover.onClose(), clickOutsideEvents, [\n targetNode,\n dropdownNode,\n ]);\n\n const reference = useCallback(\n (node: HTMLElement) => {\n setTargetNode(node);\n popover.floating.reference(node);\n },\n [popover.floating.reference]\n );\n\n const floating = useCallback(\n (node: HTMLElement) => {\n setDropdownNode(node);\n popover.floating.floating(node);\n },\n [popover.floating.floating]\n );\n\n return (\n <StylesApiProvider\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n staticSelector={__staticSelector}\n >\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transition,\n transitionDuration,\n exitTransitionDuration,\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => `${uid}-target`,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n }}\n >\n {children}\n </PopoverContextProvider>\n </StylesApiProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.displayName = '@mantine/core/Popover';\n"],"names":[],"mappings":"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"}
@@ -96,6 +96,8 @@ function PopoverDropdown(props) {
96
96
  position: ctx.placement,
97
97
  arrowSize: ctx.arrowSize,
98
98
  arrowRadius: ctx.arrowRadius,
99
+ arrowOffset: ctx.arrowOffset,
100
+ arrowPosition: ctx.arrowPosition,
99
101
  className: classes.arrow
100
102
  })));
101
103
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverDropdown.js","sources":["../../../src/Popover/PopoverDropdown/PopoverDropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, useContextStylesApi, useComponentDefaultProps } from '@mantine/styles';\nimport { closeOnEscape } from '@mantine/utils';\nimport { useFocusReturn } from '@mantine/hooks';\nimport { FloatingArrow } from '../../Floating';\nimport { Box } from '../../Box';\nimport { Transition } from '../../Transition';\nimport { FocusTrap } from '../../FocusTrap';\nimport { OptionalPortal } from '../../Portal';\nimport { usePopoverContext } from '../Popover.context';\nimport useStyles from './PopoverDropdown.styles';\n\nexport interface PopoverDropdownProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n /** Dropdown content */\n children?: React.ReactNode;\n}\n\nconst defaultProps: Partial<PopoverDropdownProps> = {};\n\nexport function PopoverDropdown(props: PopoverDropdownProps) {\n const { style, className, children, onKeyDownCapture, ...others } = useComponentDefaultProps(\n 'PopoverDropdown',\n defaultProps,\n props\n );\n\n const { classNames, styles, unstyled, staticSelector } = useContextStylesApi();\n const ctx = usePopoverContext();\n const { classes, cx } = useStyles(\n { radius: ctx.radius, shadow: ctx.shadow },\n { name: staticSelector, classNames, styles, unstyled }\n );\n\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus,\n });\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-labelledby': ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: 'dialog',\n }\n : {};\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <OptionalPortal withinPortal={ctx.withinPortal}>\n <Transition\n mounted={ctx.opened}\n transition={ctx.transition}\n duration={ctx.transitionDuration}\n exitDuration={\n typeof ctx.exitTransitionDuration === 'number'\n ? ctx.exitTransitionDuration\n : ctx.transitionDuration\n }\n >\n {(transitionStyles) => (\n <FocusTrap active={ctx.trapFocus}>\n <Box\n {...accessibleProps}\n tabIndex={-1}\n key={ctx.placement}\n ref={ctx.floating}\n style={{\n ...style,\n ...transitionStyles,\n zIndex: ctx.zIndex,\n top: ctx.y ?? 0,\n left: ctx.x ?? 0,\n width: ctx.width === 'target' ? undefined : ctx.width,\n }}\n className={cx(classes.dropdown, className)}\n onKeyDownCapture={closeOnEscape(ctx.onClose, {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture,\n })}\n data-position={ctx.placement}\n {...others}\n >\n {children}\n\n <FloatingArrow\n ref={ctx.arrowRef}\n arrowX={ctx.arrowX}\n arrowY={ctx.arrowY}\n visible={ctx.withArrow}\n withBorder\n position={ctx.placement}\n arrowSize={ctx.arrowSize}\n arrowRadius={ctx.arrowRadius}\n className={classes.arrow}\n />\n </Box>\n </FocusTrap>\n )}\n </Transition>\n </OptionalPortal>\n );\n}\n\nPopoverDropdown.displayName = '@mantine/core/PopoverDropdown';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PopoverDropdown.js","sources":["../../../src/Popover/PopoverDropdown/PopoverDropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, useContextStylesApi, useComponentDefaultProps } from '@mantine/styles';\nimport { closeOnEscape } from '@mantine/utils';\nimport { useFocusReturn } from '@mantine/hooks';\nimport { FloatingArrow } from '../../Floating';\nimport { Box } from '../../Box';\nimport { Transition } from '../../Transition';\nimport { FocusTrap } from '../../FocusTrap';\nimport { OptionalPortal } from '../../Portal';\nimport { usePopoverContext } from '../Popover.context';\nimport useStyles from './PopoverDropdown.styles';\n\nexport interface PopoverDropdownProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n /** Dropdown content */\n children?: React.ReactNode;\n}\n\nconst defaultProps: Partial<PopoverDropdownProps> = {};\n\nexport function PopoverDropdown(props: PopoverDropdownProps) {\n const { style, className, children, onKeyDownCapture, ...others } = useComponentDefaultProps(\n 'PopoverDropdown',\n defaultProps,\n props\n );\n\n const { classNames, styles, unstyled, staticSelector } = useContextStylesApi();\n const ctx = usePopoverContext();\n const { classes, cx } = useStyles(\n { radius: ctx.radius, shadow: ctx.shadow },\n { name: staticSelector, classNames, styles, unstyled }\n );\n\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus,\n });\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-labelledby': ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: 'dialog',\n }\n : {};\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <OptionalPortal withinPortal={ctx.withinPortal}>\n <Transition\n mounted={ctx.opened}\n transition={ctx.transition}\n duration={ctx.transitionDuration}\n exitDuration={\n typeof ctx.exitTransitionDuration === 'number'\n ? ctx.exitTransitionDuration\n : ctx.transitionDuration\n }\n >\n {(transitionStyles) => (\n <FocusTrap active={ctx.trapFocus}>\n <Box\n {...accessibleProps}\n tabIndex={-1}\n key={ctx.placement}\n ref={ctx.floating}\n style={{\n ...style,\n ...transitionStyles,\n zIndex: ctx.zIndex,\n top: ctx.y ?? 0,\n left: ctx.x ?? 0,\n width: ctx.width === 'target' ? undefined : ctx.width,\n }}\n className={cx(classes.dropdown, className)}\n onKeyDownCapture={closeOnEscape(ctx.onClose, {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture,\n })}\n data-position={ctx.placement}\n {...others}\n >\n {children}\n\n <FloatingArrow\n ref={ctx.arrowRef}\n arrowX={ctx.arrowX}\n arrowY={ctx.arrowY}\n visible={ctx.withArrow}\n withBorder\n position={ctx.placement}\n arrowSize={ctx.arrowSize}\n arrowRadius={ctx.arrowRadius}\n arrowOffset={ctx.arrowOffset}\n arrowPosition={ctx.arrowPosition}\n className={classes.arrow}\n />\n </Box>\n </FocusTrap>\n )}\n </Transition>\n </OptionalPortal>\n );\n}\n\nPopoverDropdown.displayName = '@mantine/core/PopoverDropdown';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef } from 'react';
2
- import { useUncontrolled } from '@mantine/hooks';
2
+ import { useId, useUncontrolled } from '@mantine/hooks';
3
3
  import { useComponentDefaultProps } from '@mantine/styles';
4
4
  import { InputsGroup } from '../../Checkbox/CheckboxGroup/InputsGroup.js';
5
5
  import { RadioGroupProvider } from '../RadioGroup.context.js';
@@ -65,6 +65,7 @@ const RadioGroup = forwardRef((props, ref) => {
65
65
  "offset",
66
66
  "name"
67
67
  ]);
68
+ const _name = useId(name);
68
69
  const [_value, setValue] = useUncontrolled({
69
70
  value,
70
71
  defaultValue,
@@ -73,7 +74,7 @@ const RadioGroup = forwardRef((props, ref) => {
73
74
  });
74
75
  const handleChange = (event) => setValue(event.currentTarget.value);
75
76
  return /* @__PURE__ */ React.createElement(RadioGroupProvider, {
76
- value: { value: _value, onChange: handleChange, size, name }
77
+ value: { value: _value, onChange: handleChange, size, name: _name }
77
78
  }, /* @__PURE__ */ React.createElement(Input.Wrapper, __spreadValues(__spreadValues({
78
79
  labelElement: "div",
79
80
  size,
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../src/Radio/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { Input, InputWrapperBaseProps, InputWrapperStylesNames } from '../../Input';\nimport { InputsGroup } from '../../Checkbox/CheckboxGroup/InputsGroup';\nimport { RadioGroupProvider } from '../RadioGroup.context';\n\nexport type RadioGroupStylesNames = InputWrapperStylesNames;\n\nexport interface RadioGroupProps\n extends DefaultProps<RadioGroupStylesNames>,\n InputWrapperBaseProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {\n /** <Radio /> components */\n children: React.ReactNode;\n\n /** Value of currently selected radio */\n value?: string;\n\n /** Initial value for uncontrolled component */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?(value: string): void;\n\n /** Horizontal or vertical orientation */\n orientation?: 'horizontal' | 'vertical';\n\n /** Spacing between radios in horizontal orientation */\n spacing?: MantineNumberSize;\n\n /** Space between label and inputs */\n offset?: MantineNumberSize;\n\n /** Predefined label fontSize, radio width, height and border-radius */\n size?: MantineSize;\n\n /** Props spread to root element */\n wrapperProps?: Record<string, any>;\n\n /** Name attribute of radio inputs */\n name?: string;\n}\n\nconst defaultProps: Partial<RadioGroupProps> = {\n orientation: 'horizontal',\n spacing: 'lg',\n offset: 'xs',\n size: 'sm',\n};\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n (props: RadioGroupProps, ref) => {\n const {\n children,\n value,\n defaultValue,\n onChange,\n orientation,\n spacing,\n size,\n wrapperProps,\n unstyled,\n offset,\n name,\n ...others\n } = useComponentDefaultProps('RadioGroup', defaultProps, props);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) =>\n setValue(event.currentTarget.value);\n\n return (\n <RadioGroupProvider value={{ value: _value, onChange: handleChange, size, name }}>\n <Input.Wrapper\n labelElement=\"div\"\n size={size}\n __staticSelector=\"RadioGroup\"\n ref={ref}\n unstyled={unstyled}\n {...wrapperProps}\n {...others}\n >\n <InputsGroup\n spacing={spacing}\n orientation={orientation}\n unstyled={unstyled}\n role=\"radiogroup\"\n offset={offset}\n >\n {children}\n </InputsGroup>\n </Input.Wrapper>\n </RadioGroupProvider>\n );\n }\n);\n\nRadioGroup.displayName = '@mantine/core/RadioGroup';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../src/Radio/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useUncontrolled, useId } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { Input, InputWrapperBaseProps, InputWrapperStylesNames } from '../../Input';\nimport { InputsGroup } from '../../Checkbox/CheckboxGroup/InputsGroup';\nimport { RadioGroupProvider } from '../RadioGroup.context';\n\nexport type RadioGroupStylesNames = InputWrapperStylesNames;\n\nexport interface RadioGroupProps\n extends DefaultProps<RadioGroupStylesNames>,\n InputWrapperBaseProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {\n /** <Radio /> components */\n children: React.ReactNode;\n\n /** Value of currently selected radio */\n value?: string;\n\n /** Initial value for uncontrolled component */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?(value: string): void;\n\n /** Horizontal or vertical orientation */\n orientation?: 'horizontal' | 'vertical';\n\n /** Spacing between radios in horizontal orientation */\n spacing?: MantineNumberSize;\n\n /** Space between label and inputs */\n offset?: MantineNumberSize;\n\n /** Predefined label fontSize, radio width, height and border-radius */\n size?: MantineSize;\n\n /** Props spread to root element */\n wrapperProps?: Record<string, any>;\n\n /** Name attribute of radio inputs */\n name?: string;\n}\n\nconst defaultProps: Partial<RadioGroupProps> = {\n orientation: 'horizontal',\n spacing: 'lg',\n offset: 'xs',\n size: 'sm',\n};\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n (props: RadioGroupProps, ref) => {\n const {\n children,\n value,\n defaultValue,\n onChange,\n orientation,\n spacing,\n size,\n wrapperProps,\n unstyled,\n offset,\n name,\n ...others\n } = useComponentDefaultProps('RadioGroup', defaultProps, props);\n const _name = useId(name);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) =>\n setValue(event.currentTarget.value);\n\n return (\n <RadioGroupProvider value={{ value: _value, onChange: handleChange, size, name: _name }}>\n <Input.Wrapper\n labelElement=\"div\"\n size={size}\n __staticSelector=\"RadioGroup\"\n ref={ref}\n unstyled={unstyled}\n {...wrapperProps}\n {...others}\n >\n <InputsGroup\n spacing={spacing}\n orientation={orientation}\n unstyled={unstyled}\n role=\"radiogroup\"\n offset={offset}\n >\n {children}\n </InputsGroup>\n </Input.Wrapper>\n </RadioGroupProvider>\n );\n }\n);\n\nRadioGroup.displayName = '@mantine/core/RadioGroup';\n"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ var useStyles = createStyles((theme, { scrollbarSize, offsetScrollbars, scrollba
43
43
  position: "relative",
44
44
  transition: "background-color 150ms ease",
45
45
  display: hidden ? "none" : void 0,
46
+ overflow: "hidden",
46
47
  "&::before": {
47
48
  content: '""',
48
49
  position: "absolute",
@@ -50,7 +51,9 @@ var useStyles = createStyles((theme, { scrollbarSize, offsetScrollbars, scrollba
50
51
  left: "50%",
51
52
  transform: "translate(-50%, -50%)",
52
53
  width: "100%",
53
- height: "100%"
54
+ height: "100%",
55
+ minWidth: 44,
56
+ minHeight: 44
54
57
  }
55
58
  },
56
59
  corner: {