@vuu-ui/vuu-utils 2.0.0 → 2.1.0-alpha.10

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 (182) hide show
  1. package/cjs/node_modules/@dnd-kit/react/hooks.js +3 -3
  2. package/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +492 -0
  3. package/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  4. package/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.js +987 -0
  5. package/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -0
  6. package/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +130 -0
  7. package/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -0
  8. package/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +183 -0
  9. package/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  10. package/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +39 -0
  11. package/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  12. package/cjs/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js +10 -0
  13. package/cjs/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  14. package/cjs/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js +76 -0
  15. package/cjs/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  16. package/cjs/node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js +52 -0
  17. package/cjs/node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -0
  18. package/cjs/node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js +59 -0
  19. package/cjs/node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js.map +1 -0
  20. package/cjs/node_modules/@salt-ds/core/dist-es/breakpoints/Breakpoints.js +12 -0
  21. package/cjs/node_modules/@salt-ds/core/dist-es/breakpoints/Breakpoints.js.map +1 -0
  22. package/cjs/node_modules/@salt-ds/core/dist-es/button/Button.css.js +6 -0
  23. package/cjs/node_modules/@salt-ds/core/dist-es/button/Button.css.js.map +1 -0
  24. package/cjs/node_modules/@salt-ds/core/dist-es/button/Button.js +96 -0
  25. package/cjs/node_modules/@salt-ds/core/dist-es/button/Button.js.map +1 -0
  26. package/cjs/node_modules/@salt-ds/core/dist-es/button/useButton.js +65 -0
  27. package/cjs/node_modules/@salt-ds/core/dist-es/button/useButton.js.map +1 -0
  28. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/ProviderContext.js +11 -0
  29. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/ProviderContext.js.map +1 -0
  30. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.css.js +6 -0
  31. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.css.js.map +1 -0
  32. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.js +160 -0
  33. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.js.map +1 -0
  34. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/ThemeApplicator.js +115 -0
  35. package/cjs/node_modules/@salt-ds/core/dist-es/salt-provider/ThemeApplicator.js.map +1 -0
  36. package/cjs/node_modules/@salt-ds/core/dist-es/spinner/Spinner.css.js +6 -0
  37. package/cjs/node_modules/@salt-ds/core/dist-es/spinner/Spinner.css.js.map +1 -0
  38. package/cjs/node_modules/@salt-ds/core/dist-es/spinner/Spinner.js +86 -0
  39. package/cjs/node_modules/@salt-ds/core/dist-es/spinner/Spinner.js.map +1 -0
  40. package/cjs/node_modules/@salt-ds/core/dist-es/spinner/svgSpinners/SpinnerSVG.js +93 -0
  41. package/cjs/node_modules/@salt-ds/core/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -0
  42. package/cjs/node_modules/@salt-ds/core/dist-es/utils/createChainedFunction.js +20 -0
  43. package/cjs/node_modules/@salt-ds/core/dist-es/utils/createChainedFunction.js.map +1 -0
  44. package/cjs/node_modules/@salt-ds/core/dist-es/utils/createContext.js +14 -0
  45. package/cjs/node_modules/@salt-ds/core/dist-es/utils/createContext.js.map +1 -0
  46. package/cjs/node_modules/@salt-ds/core/dist-es/utils/debounce.js +22 -0
  47. package/cjs/node_modules/@salt-ds/core/dist-es/utils/debounce.js.map +1 -0
  48. package/cjs/node_modules/@salt-ds/core/dist-es/utils/makePrefixer.js +6 -0
  49. package/cjs/node_modules/@salt-ds/core/dist-es/utils/makePrefixer.js.map +1 -0
  50. package/cjs/node_modules/@salt-ds/core/dist-es/utils/useFloatingUI/useFloatingUI.js +52 -0
  51. package/cjs/node_modules/@salt-ds/core/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -0
  52. package/cjs/node_modules/@salt-ds/core/dist-es/utils/useId.js +45 -0
  53. package/cjs/node_modules/@salt-ds/core/dist-es/utils/useId.js.map +1 -0
  54. package/cjs/node_modules/@salt-ds/core/dist-es/utils/useIsomorphicLayoutEffect.js +8 -0
  55. package/cjs/node_modules/@salt-ds/core/dist-es/utils/useIsomorphicLayoutEffect.js.map +1 -0
  56. package/cjs/node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js +233 -0
  57. package/cjs/node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js.map +1 -0
  58. package/cjs/node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js +35 -0
  59. package/cjs/node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js.map +1 -0
  60. package/cjs/node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js +22 -0
  61. package/cjs/node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js.map +1 -0
  62. package/cjs/node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js +16 -0
  63. package/cjs/node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js.map +1 -0
  64. package/cjs/node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js +75 -0
  65. package/cjs/node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js.map +1 -0
  66. package/cjs/node_modules/@salt-ds/window/dist-es/WindowProvider.js +17 -0
  67. package/cjs/node_modules/@salt-ds/window/dist-es/WindowProvider.js.map +1 -0
  68. package/cjs/node_modules/tabbable/dist/index.esm.js +550 -0
  69. package/cjs/node_modules/tabbable/dist/index.esm.js.map +1 -0
  70. package/cjs/packages/vuu-utils/src/ThemeProvider.js +2 -2
  71. package/cjs/packages/vuu-utils/src/ThemeProvider.js.map +1 -1
  72. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js +25 -0
  73. package/cjs/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
  74. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js +31 -0
  75. package/cjs/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
  76. package/cjs/packages/vuu-utils/src/data-editing/EditTracker.js +157 -0
  77. package/cjs/packages/vuu-utils/src/data-editing/EditTracker.js.map +1 -0
  78. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js +65 -0
  79. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
  80. package/cjs/packages/vuu-utils/src/index.js +11 -0
  81. package/cjs/packages/vuu-utils/src/index.js.map +1 -1
  82. package/cjs/packages/vuu-utils/src/theme-utils.js +36 -0
  83. package/cjs/packages/vuu-utils/src/theme-utils.js.map +1 -0
  84. package/cjs/packages/vuu-utils/src/url-utils.js +2 -2
  85. package/cjs/packages/vuu-utils/src/url-utils.js.map +1 -1
  86. package/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +489 -0
  87. package/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  88. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js +962 -0
  89. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -0
  90. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +114 -0
  91. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -0
  92. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +162 -0
  93. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  94. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +33 -0
  95. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  96. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js +8 -0
  97. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  98. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js +73 -0
  99. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  100. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js +50 -0
  101. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -0
  102. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js +56 -0
  103. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js.map +1 -0
  104. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/Breakpoints.js +10 -0
  105. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/Breakpoints.js.map +1 -0
  106. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.css.js +4 -0
  107. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.css.js.map +1 -0
  108. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.js +94 -0
  109. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.js.map +1 -0
  110. package/esm/node_modules/@salt-ds/core/dist-es/button/useButton.js +63 -0
  111. package/esm/node_modules/@salt-ds/core/dist-es/button/useButton.js.map +1 -0
  112. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ProviderContext.js +9 -0
  113. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ProviderContext.js.map +1 -0
  114. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.css.js +4 -0
  115. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.css.js.map +1 -0
  116. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.js +151 -0
  117. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.js.map +1 -0
  118. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ThemeApplicator.js +113 -0
  119. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ThemeApplicator.js.map +1 -0
  120. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.css.js +4 -0
  121. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.css.js.map +1 -0
  122. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.js +84 -0
  123. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.js.map +1 -0
  124. package/esm/node_modules/@salt-ds/core/dist-es/spinner/svgSpinners/SpinnerSVG.js +91 -0
  125. package/esm/node_modules/@salt-ds/core/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -0
  126. package/esm/node_modules/@salt-ds/core/dist-es/utils/createChainedFunction.js +18 -0
  127. package/esm/node_modules/@salt-ds/core/dist-es/utils/createChainedFunction.js.map +1 -0
  128. package/esm/node_modules/@salt-ds/core/dist-es/utils/createContext.js +12 -0
  129. package/esm/node_modules/@salt-ds/core/dist-es/utils/createContext.js.map +1 -0
  130. package/esm/node_modules/@salt-ds/core/dist-es/utils/debounce.js +20 -0
  131. package/esm/node_modules/@salt-ds/core/dist-es/utils/debounce.js.map +1 -0
  132. package/esm/node_modules/@salt-ds/core/dist-es/utils/makePrefixer.js +4 -0
  133. package/esm/node_modules/@salt-ds/core/dist-es/utils/makePrefixer.js.map +1 -0
  134. package/esm/node_modules/@salt-ds/core/dist-es/utils/useFloatingUI/useFloatingUI.js +50 -0
  135. package/esm/node_modules/@salt-ds/core/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -0
  136. package/esm/node_modules/@salt-ds/core/dist-es/utils/useId.js +24 -0
  137. package/esm/node_modules/@salt-ds/core/dist-es/utils/useId.js.map +1 -0
  138. package/esm/node_modules/@salt-ds/core/dist-es/utils/useIsomorphicLayoutEffect.js +6 -0
  139. package/esm/node_modules/@salt-ds/core/dist-es/utils/useIsomorphicLayoutEffect.js.map +1 -0
  140. package/esm/node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js +231 -0
  141. package/esm/node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js.map +1 -0
  142. package/esm/node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js +32 -0
  143. package/esm/node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js.map +1 -0
  144. package/esm/node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js +19 -0
  145. package/esm/node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js.map +1 -0
  146. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js +14 -0
  147. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js.map +1 -0
  148. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js +54 -0
  149. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js.map +1 -0
  150. package/esm/node_modules/@salt-ds/window/dist-es/WindowProvider.js +15 -0
  151. package/esm/node_modules/@salt-ds/window/dist-es/WindowProvider.js.map +1 -0
  152. package/esm/node_modules/tabbable/dist/index.esm.js +546 -0
  153. package/esm/node_modules/tabbable/dist/index.esm.js.map +1 -0
  154. package/esm/packages/vuu-utils/src/ThemeProvider.js +2 -2
  155. package/esm/packages/vuu-utils/src/ThemeProvider.js.map +1 -1
  156. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +2 -2
  157. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -1
  158. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +22 -0
  159. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
  160. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +29 -0
  161. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
  162. package/esm/packages/vuu-utils/src/data-editing/EditTracker.js +155 -0
  163. package/esm/packages/vuu-utils/src/data-editing/EditTracker.js.map +1 -0
  164. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +63 -0
  165. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
  166. package/esm/packages/vuu-utils/src/feature-utils.js +2 -2
  167. package/esm/packages/vuu-utils/src/feature-utils.js.map +1 -1
  168. package/esm/packages/vuu-utils/src/index.js +5 -0
  169. package/esm/packages/vuu-utils/src/index.js.map +1 -1
  170. package/esm/packages/vuu-utils/src/theme-utils.js +34 -0
  171. package/esm/packages/vuu-utils/src/theme-utils.js.map +1 -0
  172. package/esm/packages/vuu-utils/src/url-utils.js +2 -2
  173. package/esm/packages/vuu-utils/src/url-utils.js.map +1 -1
  174. package/package.json +6 -6
  175. package/types/data-editing/DataEditingProvider.d.ts +7 -0
  176. package/types/data-editing/EditButtons.d.ts +7 -0
  177. package/types/data-editing/EditModeProvider.d.ts +13 -0
  178. package/types/data-editing/EditTracker.d.ts +24 -0
  179. package/types/data-editing/useEditableTable.d.ts +26 -0
  180. package/types/index.d.ts +6 -1
  181. package/types/theme-utils.d.ts +14 -0
  182. package/types/url-utils.d.ts +2 -1
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ var floatingUi_utils_dom = require('../../utils/dist/floating-ui.utils.dom.js');
4
+
5
+ function activeElement(doc) {
6
+ let activeElement = doc.activeElement;
7
+ while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {
8
+ var _activeElement;
9
+ activeElement = activeElement.shadowRoot.activeElement;
10
+ }
11
+ return activeElement;
12
+ }
13
+ function contains(parent, child) {
14
+ if (!parent || !child) {
15
+ return false;
16
+ }
17
+ const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();
18
+
19
+ // First, attempt with faster native method
20
+ if (parent.contains(child)) {
21
+ return true;
22
+ }
23
+
24
+ // then fallback to custom implementation with Shadow DOM support
25
+ if (rootNode && floatingUi_utils_dom.isShadowRoot(rootNode)) {
26
+ let next = child;
27
+ while (next) {
28
+ if (parent === next) {
29
+ return true;
30
+ }
31
+ // @ts-ignore
32
+ next = next.parentNode || next.host;
33
+ }
34
+ }
35
+
36
+ // Give up, the result is false
37
+ return false;
38
+ }
39
+ // Avoid Chrome DevTools blue warning.
40
+ function getPlatform() {
41
+ const uaData = navigator.userAgentData;
42
+ if (uaData != null && uaData.platform) {
43
+ return uaData.platform;
44
+ }
45
+ return navigator.platform;
46
+ }
47
+ function getUserAgent() {
48
+ const uaData = navigator.userAgentData;
49
+ if (uaData && Array.isArray(uaData.brands)) {
50
+ return uaData.brands.map(_ref => {
51
+ let {
52
+ brand,
53
+ version
54
+ } = _ref;
55
+ return brand + "/" + version;
56
+ }).join(' ');
57
+ }
58
+ return navigator.userAgent;
59
+ }
60
+
61
+ // License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts
62
+ function isVirtualClick(event) {
63
+ // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.
64
+ // Try to find a workaround for this. `react-aria` source still has the check.
65
+ if (event.mozInputSource === 0 && event.isTrusted) {
66
+ return true;
67
+ }
68
+ if (isAndroid() && event.pointerType) {
69
+ return event.type === 'click' && event.buttons === 1;
70
+ }
71
+ return event.detail === 0 && !event.pointerType;
72
+ }
73
+ function isVirtualPointerEvent(event) {
74
+ if (isJSDOM()) return false;
75
+ return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||
76
+ // iOS VoiceOver returns 0.333• for width/height.
77
+ event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';
78
+ }
79
+ function isSafari() {
80
+ // Chrome DevTools does not complain about navigator.vendor
81
+ return /apple/i.test(navigator.vendor);
82
+ }
83
+ function isAndroid() {
84
+ const re = /android/i;
85
+ return re.test(getPlatform()) || re.test(getUserAgent());
86
+ }
87
+ function isJSDOM() {
88
+ return getUserAgent().includes('jsdom/');
89
+ }
90
+ function getDocument(node) {
91
+ return (node == null ? void 0 : node.ownerDocument) || document;
92
+ }
93
+ function getTarget(event) {
94
+ if ('composedPath' in event) {
95
+ return event.composedPath()[0];
96
+ }
97
+
98
+ // TS thinks `event` is of type never as it assumes all browsers support
99
+ // `composedPath()`, but browsers without shadow DOM don't.
100
+ return event.target;
101
+ }
102
+ const TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled])," + "[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
103
+ function isTypeableElement(element) {
104
+ return floatingUi_utils_dom.isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
105
+ }
106
+ function stopEvent(event) {
107
+ event.preventDefault();
108
+ event.stopPropagation();
109
+ }
110
+ function isTypeableCombobox(element) {
111
+ if (!element) return false;
112
+ return element.getAttribute('role') === 'combobox' && isTypeableElement(element);
113
+ }
114
+
115
+ exports.TYPEABLE_SELECTOR = TYPEABLE_SELECTOR;
116
+ exports.activeElement = activeElement;
117
+ exports.contains = contains;
118
+ exports.getDocument = getDocument;
119
+ exports.getPlatform = getPlatform;
120
+ exports.getTarget = getTarget;
121
+ exports.getUserAgent = getUserAgent;
122
+ exports.isAndroid = isAndroid;
123
+ exports.isJSDOM = isJSDOM;
124
+ exports.isSafari = isSafari;
125
+ exports.isTypeableCombobox = isTypeableCombobox;
126
+ exports.isTypeableElement = isTypeableElement;
127
+ exports.isVirtualClick = isVirtualClick;
128
+ exports.isVirtualPointerEvent = isVirtualPointerEvent;
129
+ exports.stopEvent = stopEvent;
130
+ //# sourceMappingURL=floating-ui.react.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-ui.react.utils.js","sources":["../../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs"],"sourcesContent":["import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n"],"names":["isShadowRoot","isHTMLElement"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,183 @@
1
+ 'use strict';
2
+
3
+ function hasWindow() {
4
+ return typeof window !== 'undefined';
5
+ }
6
+ function getNodeName(node) {
7
+ if (isNode(node)) {
8
+ return (node.nodeName || '').toLowerCase();
9
+ }
10
+ // Mocked nodes in testing environments may not be instances of Node. By
11
+ // returning `#document` an infinite loop won't occur.
12
+ // https://github.com/floating-ui/floating-ui/issues/2317
13
+ return '#document';
14
+ }
15
+ function getWindow(node) {
16
+ var _node$ownerDocument;
17
+ return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
18
+ }
19
+ function getDocumentElement(node) {
20
+ var _ref;
21
+ return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
22
+ }
23
+ function isNode(value) {
24
+ if (!hasWindow()) {
25
+ return false;
26
+ }
27
+ return value instanceof Node || value instanceof getWindow(value).Node;
28
+ }
29
+ function isElement(value) {
30
+ if (!hasWindow()) {
31
+ return false;
32
+ }
33
+ return value instanceof Element || value instanceof getWindow(value).Element;
34
+ }
35
+ function isHTMLElement(value) {
36
+ if (!hasWindow()) {
37
+ return false;
38
+ }
39
+ return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
40
+ }
41
+ function isShadowRoot(value) {
42
+ if (!hasWindow() || typeof ShadowRoot === 'undefined') {
43
+ return false;
44
+ }
45
+ return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
46
+ }
47
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
48
+ function isOverflowElement(element) {
49
+ const {
50
+ overflow,
51
+ overflowX,
52
+ overflowY,
53
+ display
54
+ } = getComputedStyle(element);
55
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
56
+ }
57
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
58
+ function isTableElement(element) {
59
+ return tableElements.has(getNodeName(element));
60
+ }
61
+ const topLayerSelectors = [':popover-open', ':modal'];
62
+ function isTopLayer(element) {
63
+ return topLayerSelectors.some(selector => {
64
+ try {
65
+ return element.matches(selector);
66
+ } catch (_e) {
67
+ return false;
68
+ }
69
+ });
70
+ }
71
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
72
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
73
+ const containValues = ['paint', 'layout', 'strict', 'content'];
74
+ function isContainingBlock(elementOrCss) {
75
+ const webkit = isWebKit();
76
+ const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
77
+
78
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
79
+ // https://drafts.csswg.org/css-transforms-2/#individual-transforms
80
+ return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));
81
+ }
82
+ function getContainingBlock(element) {
83
+ let currentNode = getParentNode(element);
84
+ while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
85
+ if (isContainingBlock(currentNode)) {
86
+ return currentNode;
87
+ } else if (isTopLayer(currentNode)) {
88
+ return null;
89
+ }
90
+ currentNode = getParentNode(currentNode);
91
+ }
92
+ return null;
93
+ }
94
+ function isWebKit() {
95
+ if (typeof CSS === 'undefined' || !CSS.supports) return false;
96
+ return CSS.supports('-webkit-backdrop-filter', 'none');
97
+ }
98
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
99
+ function isLastTraversableNode(node) {
100
+ return lastTraversableNodeNames.has(getNodeName(node));
101
+ }
102
+ function getComputedStyle(element) {
103
+ return getWindow(element).getComputedStyle(element);
104
+ }
105
+ function getNodeScroll(element) {
106
+ if (isElement(element)) {
107
+ return {
108
+ scrollLeft: element.scrollLeft,
109
+ scrollTop: element.scrollTop
110
+ };
111
+ }
112
+ return {
113
+ scrollLeft: element.scrollX,
114
+ scrollTop: element.scrollY
115
+ };
116
+ }
117
+ function getParentNode(node) {
118
+ if (getNodeName(node) === 'html') {
119
+ return node;
120
+ }
121
+ const result =
122
+ // Step into the shadow DOM of the parent of a slotted node.
123
+ node.assignedSlot ||
124
+ // DOM Element detected.
125
+ node.parentNode ||
126
+ // ShadowRoot detected.
127
+ isShadowRoot(node) && node.host ||
128
+ // Fallback.
129
+ getDocumentElement(node);
130
+ return isShadowRoot(result) ? result.host : result;
131
+ }
132
+ function getNearestOverflowAncestor(node) {
133
+ const parentNode = getParentNode(node);
134
+ if (isLastTraversableNode(parentNode)) {
135
+ return node.ownerDocument ? node.ownerDocument.body : node.body;
136
+ }
137
+ if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
138
+ return parentNode;
139
+ }
140
+ return getNearestOverflowAncestor(parentNode);
141
+ }
142
+ function getOverflowAncestors(node, list, traverseIframes) {
143
+ var _node$ownerDocument2;
144
+ if (list === void 0) {
145
+ list = [];
146
+ }
147
+ if (traverseIframes === void 0) {
148
+ traverseIframes = true;
149
+ }
150
+ const scrollableAncestor = getNearestOverflowAncestor(node);
151
+ const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
152
+ const win = getWindow(scrollableAncestor);
153
+ if (isBody) {
154
+ const frameElement = getFrameElement(win);
155
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
156
+ }
157
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
158
+ }
159
+ function getFrameElement(win) {
160
+ return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
161
+ }
162
+
163
+ exports.getComputedStyle = getComputedStyle;
164
+ exports.getContainingBlock = getContainingBlock;
165
+ exports.getDocumentElement = getDocumentElement;
166
+ exports.getFrameElement = getFrameElement;
167
+ exports.getNearestOverflowAncestor = getNearestOverflowAncestor;
168
+ exports.getNodeName = getNodeName;
169
+ exports.getNodeScroll = getNodeScroll;
170
+ exports.getOverflowAncestors = getOverflowAncestors;
171
+ exports.getParentNode = getParentNode;
172
+ exports.getWindow = getWindow;
173
+ exports.isContainingBlock = isContainingBlock;
174
+ exports.isElement = isElement;
175
+ exports.isHTMLElement = isHTMLElement;
176
+ exports.isLastTraversableNode = isLastTraversableNode;
177
+ exports.isNode = isNode;
178
+ exports.isOverflowElement = isOverflowElement;
179
+ exports.isShadowRoot = isShadowRoot;
180
+ exports.isTableElement = isTableElement;
181
+ exports.isTopLayer = isTopLayer;
182
+ exports.isWebKit = isWebKit;
183
+ //# sourceMappingURL=floating-ui.utils.dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-ui.utils.dom.js","sources":["../../../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs"],"sourcesContent":["function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Custom positioning reference element.
5
+ * @see https://floating-ui.com/docs/virtual-elements
6
+ */
7
+
8
+ const min = Math.min;
9
+ const max = Math.max;
10
+ const round = Math.round;
11
+ const createCoords = v => ({
12
+ x: v,
13
+ y: v
14
+ });
15
+ function rectToClientRect(rect) {
16
+ const {
17
+ x,
18
+ y,
19
+ width,
20
+ height
21
+ } = rect;
22
+ return {
23
+ width,
24
+ height,
25
+ top: y,
26
+ left: x,
27
+ right: x + width,
28
+ bottom: y + height,
29
+ x,
30
+ y
31
+ };
32
+ }
33
+
34
+ exports.createCoords = createCoords;
35
+ exports.max = max;
36
+ exports.min = min;
37
+ exports.rectToClientRect = rectToClientRect;
38
+ exports.round = round;
39
+ //# sourceMappingURL=floating-ui.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-ui.utils.js","sources":["../../../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"],"sourcesContent":["/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;;AAKK,MAAC,GAAG,GAAG,IAAI,CAAC;AACZ,MAAC,GAAG,GAAG,IAAI,CAAC;AACZ,MAAC,KAAK,GAAG,IAAI,CAAC;AAEd,MAAC,YAAY,GAAG,CAAC,KAAK;AAC3B,EAAE,CAAC,EAAE,CAAC;AACN,EAAE,CAAC,EAAE;AACL,CAAC;AAwGD,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,MAAM;AACR,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,KAAK;AACT,IAAI;AACJ,GAAG,GAAG,IAAI;AACV,EAAE,OAAO;AACT,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,EAAE,CAAC,GAAG,KAAK;AACpB,IAAI,MAAM,EAAE,CAAC,GAAG,MAAM;AACtB,IAAI,CAAC;AACL,IAAI;AACJ,GAAG;AACH;;;;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const AriaAnnouncerContext = React.createContext(
6
+ void 0
7
+ );
8
+
9
+ exports.AriaAnnouncerContext = AriaAnnouncerContext;
10
+ //# sourceMappingURL=AriaAnnouncerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AriaAnnouncerContext.js","sources":["../../../../../../../../node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js"],"sourcesContent":["import { createContext } from 'react';\n\nconst AriaAnnouncerContext = createContext(\n void 0\n);\n\nexport { AriaAnnouncerContext };\n//# sourceMappingURL=AriaAnnouncerContext.js.map\n"],"names":["createContext"],"mappings":";;;;AAEK,MAAC,oBAAoB,GAAGA,mBAAa;AAC1C,EAAE,KAAK;AACP;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var AriaAnnouncerContext = require('./AriaAnnouncerContext.js');
6
+
7
+ const ARIA_ANNOUNCE_DELAY = 150;
8
+ function AriaAnnouncerProvider({
9
+ children,
10
+ style
11
+ }) {
12
+ const [currentAnnouncement, setCurrentAnnouncement] = React.useState("");
13
+ const announcementsRef = React.useRef([]);
14
+ const isAnnouncingRef = React.useRef(false);
15
+ const mountedRef = React.useRef(true);
16
+ const announceAll = React.useCallback(() => {
17
+ isAnnouncingRef.current = true;
18
+ if (mountedRef.current) {
19
+ setCurrentAnnouncement("");
20
+ requestAnimationFrame(() => {
21
+ if (mountedRef.current && announcementsRef.current.length) {
22
+ const announcement = announcementsRef.current.shift();
23
+ setCurrentAnnouncement(announcement);
24
+ setTimeout(() => {
25
+ announceAll();
26
+ }, ARIA_ANNOUNCE_DELAY);
27
+ } else {
28
+ isAnnouncingRef.current = false;
29
+ }
30
+ });
31
+ }
32
+ }, []);
33
+ const announce = React.useCallback(
34
+ (announcement) => {
35
+ announcementsRef.current.push(announcement);
36
+ if (!isAnnouncingRef.current) {
37
+ announceAll();
38
+ }
39
+ },
40
+ [announceAll]
41
+ );
42
+ React.useEffect(() => {
43
+ mountedRef.current = true;
44
+ return () => {
45
+ mountedRef.current = false;
46
+ };
47
+ }, []);
48
+ const value = React.useMemo(() => ({ announce }), [announce]);
49
+ return /* @__PURE__ */ jsxRuntime.jsxs(AriaAnnouncerContext.AriaAnnouncerContext.Provider, { value, children: [
50
+ children,
51
+ /* @__PURE__ */ jsxRuntime.jsx(
52
+ "div",
53
+ {
54
+ "aria-atomic": "true",
55
+ "aria-live": "assertive",
56
+ style: {
57
+ position: "absolute",
58
+ height: 1,
59
+ width: 1,
60
+ padding: 0,
61
+ margin: -1,
62
+ overflow: "hidden",
63
+ clip: "rect(0, 0, 0, 0)",
64
+ whiteSpace: "nowrap",
65
+ borderWidth: 0,
66
+ ...style
67
+ },
68
+ children: currentAnnouncement
69
+ }
70
+ )
71
+ ] });
72
+ }
73
+
74
+ exports.ARIA_ANNOUNCE_DELAY = ARIA_ANNOUNCE_DELAY;
75
+ exports.AriaAnnouncerProvider = AriaAnnouncerProvider;
76
+ //# sourceMappingURL=AriaAnnouncerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AriaAnnouncerProvider.js","sources":["../../../../../../../../node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { useState, useRef, useCallback, useEffect, useMemo } from 'react';\nimport { AriaAnnouncerContext } from './AriaAnnouncerContext.js';\n\nconst ARIA_ANNOUNCE_DELAY = 150;\nfunction AriaAnnouncerProvider({\n children,\n style\n}) {\n const [currentAnnouncement, setCurrentAnnouncement] = useState(\"\");\n const announcementsRef = useRef([]);\n const isAnnouncingRef = useRef(false);\n const mountedRef = useRef(true);\n const announceAll = useCallback(() => {\n isAnnouncingRef.current = true;\n if (mountedRef.current) {\n setCurrentAnnouncement(\"\");\n requestAnimationFrame(() => {\n if (mountedRef.current && announcementsRef.current.length) {\n const announcement = announcementsRef.current.shift();\n setCurrentAnnouncement(announcement);\n setTimeout(() => {\n announceAll();\n }, ARIA_ANNOUNCE_DELAY);\n } else {\n isAnnouncingRef.current = false;\n }\n });\n }\n }, []);\n const announce = useCallback(\n (announcement) => {\n announcementsRef.current.push(announcement);\n if (!isAnnouncingRef.current) {\n announceAll();\n }\n },\n [announceAll]\n );\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n const value = useMemo(() => ({ announce }), [announce]);\n return /* @__PURE__ */ jsxs(AriaAnnouncerContext.Provider, { value, children: [\n children,\n /* @__PURE__ */ jsx(\n \"div\",\n {\n \"aria-atomic\": \"true\",\n \"aria-live\": \"assertive\",\n style: {\n position: \"absolute\",\n height: 1,\n width: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n borderWidth: 0,\n ...style\n },\n children: currentAnnouncement\n }\n )\n ] });\n}\n\nexport { ARIA_ANNOUNCE_DELAY, AriaAnnouncerProvider };\n//# sourceMappingURL=AriaAnnouncerProvider.js.map\n"],"names":["useState","useRef","useCallback","useEffect","useMemo","jsxs","AriaAnnouncerContext","jsx"],"mappings":";;;;;;AAIK,MAAC,mBAAmB,GAAG;AAC5B,SAAS,qBAAqB,CAAC;AAC/B,EAAE,QAAQ;AACV,EAAE;AACF,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;AACpE,EAAE,MAAM,gBAAgB,GAAGC,YAAM,CAAC,EAAE,CAAC;AACrC,EAAE,MAAM,eAAe,GAAGA,YAAM,CAAC,KAAK,CAAC;AACvC,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,IAAI,CAAC;AACjC,EAAE,MAAM,WAAW,GAAGC,iBAAW,CAAC,MAAM;AACxC,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI;AAClC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE;AAC5B,MAAM,sBAAsB,CAAC,EAAE,CAAC;AAChC,MAAM,qBAAqB,CAAC,MAAM;AAClC,QAAQ,IAAI,UAAU,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE;AACnE,UAAU,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE;AAC/D,UAAU,sBAAsB,CAAC,YAAY,CAAC;AAC9C,UAAU,UAAU,CAAC,MAAM;AAC3B,YAAY,WAAW,EAAE;AACzB,WAAW,EAAE,mBAAmB,CAAC;AACjC,SAAS,MAAM;AACf,UAAU,eAAe,CAAC,OAAO,GAAG,KAAK;AACzC;AACA,OAAO,CAAC;AACR;AACA,GAAG,EAAE,EAAE,CAAC;AACR,EAAE,MAAM,QAAQ,GAAGA,iBAAW;AAC9B,IAAI,CAAC,YAAY,KAAK;AACtB,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AACjD,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AACpC,QAAQ,WAAW,EAAE;AACrB;AACA,KAAK;AACL,IAAI,CAAC,WAAW;AAChB,GAAG;AACH,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI;AAC7B,IAAI,OAAO,MAAM;AACjB,MAAM,UAAU,CAAC,OAAO,GAAG,KAAK;AAChC,KAAK;AACL,GAAG,EAAE,EAAE,CAAC;AACR,EAAE,MAAM,KAAK,GAAGC,aAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACzD,EAAE,uBAAuBC,eAAI,CAACC,yCAAoB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AAChF,IAAI,QAAQ;AACZ,oBAAoBC,cAAG;AACvB,MAAM,KAAK;AACX,MAAM;AACN,QAAQ,aAAa,EAAE,MAAM;AAC7B,QAAQ,WAAW,EAAE,WAAW;AAChC,QAAQ,KAAK,EAAE;AACf,UAAU,QAAQ,EAAE,UAAU;AAC9B,UAAU,MAAM,EAAE,CAAC;AACnB,UAAU,KAAK,EAAE,CAAC;AAClB,UAAU,OAAO,EAAE,CAAC;AACpB,UAAU,MAAM,EAAE,CAAC,CAAC;AACpB,UAAU,QAAQ,EAAE,QAAQ;AAC5B,UAAU,IAAI,EAAE,kBAAkB;AAClC,UAAU,UAAU,EAAE,QAAQ;AAC9B,UAAU,WAAW,EAAE,CAAC;AACxB,UAAU,GAAG;AACb,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB;AACA;AACA,GAAG,EAAE,CAAC;AACN;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var debounce = require('../utils/debounce.js');
5
+ var AriaAnnouncerContext = require('./AriaAnnouncerContext.js');
6
+
7
+ const useAriaAnnouncer = ({
8
+ debounce: debounceInterval = 0
9
+ } = {}) => {
10
+ const context = React.useContext(AriaAnnouncerContext.AriaAnnouncerContext);
11
+ const mountedRef = React.useRef(true);
12
+ const baseAnnounce = React.useCallback(
13
+ (announcement, delay) => {
14
+ const isReactAnnouncerInstalled = context == null ? void 0 : context.announce;
15
+ if (process.env.NODE_ENV !== "production") ;
16
+ function makeAnnouncement() {
17
+ if (mountedRef.current) {
18
+ if (isReactAnnouncerInstalled) {
19
+ context.announce(announcement);
20
+ }
21
+ }
22
+ }
23
+ if (delay) {
24
+ setTimeout(makeAnnouncement, delay);
25
+ } else {
26
+ makeAnnouncement();
27
+ }
28
+ },
29
+ [context]
30
+ );
31
+ const announce = React.useMemo(
32
+ () => debounceInterval > 0 ? debounce.debounce(baseAnnounce, debounceInterval) : baseAnnounce,
33
+ [baseAnnounce, debounceInterval]
34
+ );
35
+ const ariaAnnouncer = React.useMemo(
36
+ () => ({
37
+ ...context,
38
+ announce
39
+ }),
40
+ [context, announce]
41
+ );
42
+ React.useEffect(() => {
43
+ mountedRef.current = true;
44
+ return () => {
45
+ mountedRef.current = false;
46
+ };
47
+ }, []);
48
+ return ariaAnnouncer;
49
+ };
50
+
51
+ exports.useAriaAnnouncer = useAriaAnnouncer;
52
+ //# sourceMappingURL=useAriaAnnouncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAriaAnnouncer.js","sources":["../../../../../../../../node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js"],"sourcesContent":["import { useContext, useRef, useCallback, useMemo, useEffect } from 'react';\nimport { debounce } from '../utils/debounce.js';\nimport { AriaAnnouncerContext } from './AriaAnnouncerContext.js';\n\nconst useAriaAnnouncer = ({\n debounce: debounceInterval = 0\n} = {}) => {\n const context = useContext(AriaAnnouncerContext);\n const mountedRef = useRef(true);\n const baseAnnounce = useCallback(\n (announcement, delay) => {\n const isReactAnnouncerInstalled = context == null ? void 0 : context.announce;\n if (process.env.NODE_ENV !== \"production\") ;\n function makeAnnouncement() {\n if (mountedRef.current) {\n if (isReactAnnouncerInstalled) {\n context.announce(announcement);\n }\n }\n }\n if (delay) {\n setTimeout(makeAnnouncement, delay);\n } else {\n makeAnnouncement();\n }\n },\n [context]\n );\n const announce = useMemo(\n () => debounceInterval > 0 ? debounce(baseAnnounce, debounceInterval) : baseAnnounce,\n [baseAnnounce, debounceInterval]\n );\n const ariaAnnouncer = useMemo(\n () => ({\n ...context,\n announce\n }),\n [context, announce]\n );\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n return ariaAnnouncer;\n};\n\nexport { useAriaAnnouncer };\n//# sourceMappingURL=useAriaAnnouncer.js.map\n"],"names":["useContext","AriaAnnouncerContext","useRef","useCallback","useMemo","debounce","useEffect"],"mappings":";;;;;;AAIK,MAAC,gBAAgB,GAAG,CAAC;AAC1B,EAAE,QAAQ,EAAE,gBAAgB,GAAG;AAC/B,CAAC,GAAG,EAAE,KAAK;AACX,EAAE,MAAM,OAAO,GAAGA,gBAAU,CAACC,yCAAoB,CAAC;AAClD,EAAE,MAAM,UAAU,GAAGC,YAAM,CAAC,IAAI,CAAC;AACjC,EAAE,MAAM,YAAY,GAAGC,iBAAW;AAClC,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK;AAC7B,MAAM,MAAM,yBAAyB,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ;AACnF,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACjD,MAAM,SAAS,gBAAgB,GAAG;AAClC,QAAQ,IAAI,UAAU,CAAC,OAAO,EAAE;AAChC,UAAU,IAAI,yBAAyB,EAAE;AACzC,YAAY,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1C;AACA;AACA;AACA,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC3C,OAAO,MAAM;AACb,QAAQ,gBAAgB,EAAE;AAC1B;AACA,KAAK;AACL,IAAI,CAAC,OAAO;AACZ,GAAG;AACH,EAAE,MAAM,QAAQ,GAAGC,aAAO;AAC1B,IAAI,MAAM,gBAAgB,GAAG,CAAC,GAAGC,iBAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,YAAY;AACxF,IAAI,CAAC,YAAY,EAAE,gBAAgB;AACnC,GAAG;AACH,EAAE,MAAM,aAAa,GAAGD,aAAO;AAC/B,IAAI,OAAO;AACX,MAAM,GAAG,OAAO;AAChB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,CAAC,OAAO,EAAE,QAAQ;AACtB,GAAG;AACH,EAAEE,eAAS,CAAC,MAAM;AAClB,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI;AAC7B,IAAI,OAAO,MAAM;AACjB,MAAM,UAAU,CAAC,OAAO,GAAG,KAAK;AAChC,KAAK;AACL,GAAG,EAAE,EAAE,CAAC;AACR,EAAE,OAAO,aAAa;AACtB;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var createContext = require('../utils/createContext.js');
6
+ var useIsomorphicLayoutEffect = require('../utils/useIsomorphicLayoutEffect.js');
7
+
8
+ const Context = createContext.createContext("BreakpointContext", {
9
+ matchedBreakpoints: []
10
+ });
11
+ function BreakpointProvider(props) {
12
+ const { children, matchedBreakpoints } = props;
13
+ return /* @__PURE__ */ jsxRuntime.jsx(Context.Provider, { value: { matchedBreakpoints }, children });
14
+ }
15
+ function useMatchedBreakpoints(breakpoints) {
16
+ const entries = React.useMemo(
17
+ () => Object.entries(breakpoints).sort(([, a], [, b]) => b - a),
18
+ [breakpoints]
19
+ );
20
+ const supportsMatchMedia = typeof window !== "undefined" && typeof window.matchMedia === "function";
21
+ const [matchedBreakpoints, setMatchedBreakpoints] = React.useState(Object.fromEntries(entries.map(([bp]) => [bp, false])));
22
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
23
+ if (!supportsMatchMedia) {
24
+ return;
25
+ }
26
+ const queries = entries.map(([, value]) => `(min-width: ${value}px)`);
27
+ const matchers = queries.map((query, index) => {
28
+ const mq = window.matchMedia(query);
29
+ const bp = entries[index][0];
30
+ return {
31
+ mq,
32
+ handler: () => {
33
+ setMatchedBreakpoints((prev) => {
34
+ return {
35
+ ...prev,
36
+ [bp]: mq.matches
37
+ };
38
+ });
39
+ }
40
+ };
41
+ });
42
+ for (const { mq, handler } of matchers) {
43
+ handler();
44
+ mq.addEventListener("change", handler);
45
+ }
46
+ return () => {
47
+ for (const { mq, handler } of matchers) {
48
+ mq.removeEventListener("change", handler);
49
+ }
50
+ };
51
+ }, [supportsMatchMedia, entries]);
52
+ return Object.keys(matchedBreakpoints).filter(
53
+ (bp) => matchedBreakpoints[bp]
54
+ );
55
+ }
56
+
57
+ exports.BreakpointProvider = BreakpointProvider;
58
+ exports.useMatchedBreakpoints = useMatchedBreakpoints;
59
+ //# sourceMappingURL=BreakpointProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakpointProvider.js","sources":["../../../../../../../../node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { useMemo, useState, useContext } from 'react';\nimport { createContext } from '../utils/createContext.js';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect.js';\n\nconst Context = createContext(\"BreakpointContext\", {\n matchedBreakpoints: []\n});\nfunction BreakpointProvider(props) {\n const { children, matchedBreakpoints } = props;\n return /* @__PURE__ */ jsx(Context.Provider, { value: { matchedBreakpoints }, children });\n}\nfunction useMatchedBreakpoints(breakpoints) {\n const entries = useMemo(\n () => Object.entries(breakpoints).sort(([, a], [, b]) => b - a),\n [breakpoints]\n );\n const supportsMatchMedia = typeof window !== \"undefined\" && typeof window.matchMedia === \"function\";\n const [matchedBreakpoints, setMatchedBreakpoints] = useState(Object.fromEntries(entries.map(([bp]) => [bp, false])));\n useIsomorphicLayoutEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n const queries = entries.map(([, value]) => `(min-width: ${value}px)`);\n const matchers = queries.map((query, index) => {\n const mq = window.matchMedia(query);\n const bp = entries[index][0];\n return {\n mq,\n handler: () => {\n setMatchedBreakpoints((prev) => {\n return {\n ...prev,\n [bp]: mq.matches\n };\n });\n }\n };\n });\n for (const { mq, handler } of matchers) {\n handler();\n mq.addEventListener(\"change\", handler);\n }\n return () => {\n for (const { mq, handler } of matchers) {\n mq.removeEventListener(\"change\", handler);\n }\n };\n }, [supportsMatchMedia, entries]);\n return Object.keys(matchedBreakpoints).filter(\n (bp) => matchedBreakpoints[bp]\n );\n}\nfunction useBreakpoint() {\n const { matchedBreakpoints } = useContext(Context);\n return {\n matchedBreakpoints,\n breakpoint: matchedBreakpoints[0] ?? null\n };\n}\n\nexport { BreakpointProvider, useBreakpoint, useMatchedBreakpoints };\n//# sourceMappingURL=BreakpointProvider.js.map\n"],"names":["createContext","jsx","useMemo","useState","useIsomorphicLayoutEffect"],"mappings":";;;;;;;AAKA,MAAM,OAAO,GAAGA,2BAAa,CAAC,mBAAmB,EAAE;AACnD,EAAE,kBAAkB,EAAE;AACtB,CAAC,CAAC;AACF,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,KAAK;AAChD,EAAE,uBAAuBC,cAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC3F;AACA,SAAS,qBAAqB,CAAC,WAAW,EAAE;AAC5C,EAAE,MAAM,OAAO,GAAGC,aAAO;AACzB,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnE,IAAI,CAAC,WAAW;AAChB,GAAG;AACH,EAAE,MAAM,kBAAkB,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;AACrG,EAAE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAGC,cAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtH,EAAEC,mDAAyB,CAAC,MAAM;AAClC,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,MAAM;AACN;AACA,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACzE,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AACnD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACzC,MAAM,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,OAAO;AACb,QAAQ,EAAE;AACV,QAAQ,OAAO,EAAE,MAAM;AACvB,UAAU,qBAAqB,CAAC,CAAC,IAAI,KAAK;AAC1C,YAAY,OAAO;AACnB,cAAc,GAAG,IAAI;AACrB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;AACvB,aAAa;AACb,WAAW,CAAC;AACZ;AACA,OAAO;AACP,KAAK,CAAC;AACN,IAAI,KAAK,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE;AAC5C,MAAM,OAAO,EAAE;AACf,MAAM,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC5C;AACA,IAAI,OAAO,MAAM;AACjB,MAAM,KAAK,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE;AAC9C,QAAQ,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;AACjD;AACA,KAAK;AACL,GAAG,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACnC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM;AAC/C,IAAI,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE;AACjC,GAAG;AACH;;;;;","x_google_ignoreList":[0]}