@vuu-ui/vuu-utils 2.0.0 → 2.1.0-alpha.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 (171) 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 +23 -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 +154 -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 +69 -0
  79. package/cjs/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
  80. package/cjs/packages/vuu-utils/src/index.js +9 -0
  81. package/cjs/packages/vuu-utils/src/index.js.map +1 -1
  82. package/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +489 -0
  83. package/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  84. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js +962 -0
  85. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -0
  86. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +114 -0
  87. package/esm/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -0
  88. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +162 -0
  89. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  90. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +33 -0
  91. package/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  92. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js +8 -0
  93. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  94. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js +73 -0
  95. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  96. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js +50 -0
  97. package/esm/node_modules/@salt-ds/core/dist-es/aria-announcer/useAriaAnnouncer.js.map +1 -0
  98. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js +56 -0
  99. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/BreakpointProvider.js.map +1 -0
  100. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/Breakpoints.js +10 -0
  101. package/esm/node_modules/@salt-ds/core/dist-es/breakpoints/Breakpoints.js.map +1 -0
  102. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.css.js +4 -0
  103. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.css.js.map +1 -0
  104. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.js +94 -0
  105. package/esm/node_modules/@salt-ds/core/dist-es/button/Button.js.map +1 -0
  106. package/esm/node_modules/@salt-ds/core/dist-es/button/useButton.js +63 -0
  107. package/esm/node_modules/@salt-ds/core/dist-es/button/useButton.js.map +1 -0
  108. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ProviderContext.js +9 -0
  109. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ProviderContext.js.map +1 -0
  110. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.css.js +4 -0
  111. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.css.js.map +1 -0
  112. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.js +151 -0
  113. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/SaltProvider.js.map +1 -0
  114. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ThemeApplicator.js +113 -0
  115. package/esm/node_modules/@salt-ds/core/dist-es/salt-provider/ThemeApplicator.js.map +1 -0
  116. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.css.js +4 -0
  117. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.css.js.map +1 -0
  118. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.js +84 -0
  119. package/esm/node_modules/@salt-ds/core/dist-es/spinner/Spinner.js.map +1 -0
  120. package/esm/node_modules/@salt-ds/core/dist-es/spinner/svgSpinners/SpinnerSVG.js +91 -0
  121. package/esm/node_modules/@salt-ds/core/dist-es/spinner/svgSpinners/SpinnerSVG.js.map +1 -0
  122. package/esm/node_modules/@salt-ds/core/dist-es/utils/createChainedFunction.js +18 -0
  123. package/esm/node_modules/@salt-ds/core/dist-es/utils/createChainedFunction.js.map +1 -0
  124. package/esm/node_modules/@salt-ds/core/dist-es/utils/createContext.js +12 -0
  125. package/esm/node_modules/@salt-ds/core/dist-es/utils/createContext.js.map +1 -0
  126. package/esm/node_modules/@salt-ds/core/dist-es/utils/debounce.js +20 -0
  127. package/esm/node_modules/@salt-ds/core/dist-es/utils/debounce.js.map +1 -0
  128. package/esm/node_modules/@salt-ds/core/dist-es/utils/makePrefixer.js +4 -0
  129. package/esm/node_modules/@salt-ds/core/dist-es/utils/makePrefixer.js.map +1 -0
  130. package/esm/node_modules/@salt-ds/core/dist-es/utils/useFloatingUI/useFloatingUI.js +50 -0
  131. package/esm/node_modules/@salt-ds/core/dist-es/utils/useFloatingUI/useFloatingUI.js.map +1 -0
  132. package/esm/node_modules/@salt-ds/core/dist-es/utils/useId.js +24 -0
  133. package/esm/node_modules/@salt-ds/core/dist-es/utils/useId.js.map +1 -0
  134. package/esm/node_modules/@salt-ds/core/dist-es/utils/useIsomorphicLayoutEffect.js +6 -0
  135. package/esm/node_modules/@salt-ds/core/dist-es/utils/useIsomorphicLayoutEffect.js.map +1 -0
  136. package/esm/node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js +231 -0
  137. package/esm/node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js.map +1 -0
  138. package/esm/node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js +32 -0
  139. package/esm/node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js.map +1 -0
  140. package/esm/node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js +19 -0
  141. package/esm/node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js.map +1 -0
  142. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js +14 -0
  143. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js.map +1 -0
  144. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js +54 -0
  145. package/esm/node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js.map +1 -0
  146. package/esm/node_modules/@salt-ds/window/dist-es/WindowProvider.js +15 -0
  147. package/esm/node_modules/@salt-ds/window/dist-es/WindowProvider.js.map +1 -0
  148. package/esm/node_modules/tabbable/dist/index.esm.js +546 -0
  149. package/esm/node_modules/tabbable/dist/index.esm.js.map +1 -0
  150. package/esm/packages/vuu-utils/src/ThemeProvider.js +2 -2
  151. package/esm/packages/vuu-utils/src/ThemeProvider.js.map +1 -1
  152. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js +2 -2
  153. package/esm/packages/vuu-utils/src/context-definitions/WorkspaceContext.js.map +1 -1
  154. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js +22 -0
  155. package/esm/packages/vuu-utils/src/data-editing/DataEditingProvider.js.map +1 -0
  156. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js +21 -0
  157. package/esm/packages/vuu-utils/src/data-editing/EditButtons.js.map +1 -0
  158. package/esm/packages/vuu-utils/src/data-editing/EditTracker.js +152 -0
  159. package/esm/packages/vuu-utils/src/data-editing/EditTracker.js.map +1 -0
  160. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js +67 -0
  161. package/esm/packages/vuu-utils/src/data-editing/useEditableTable.js.map +1 -0
  162. package/esm/packages/vuu-utils/src/feature-utils.js +2 -2
  163. package/esm/packages/vuu-utils/src/feature-utils.js.map +1 -1
  164. package/esm/packages/vuu-utils/src/index.js +4 -0
  165. package/esm/packages/vuu-utils/src/index.js.map +1 -1
  166. package/package.json +6 -6
  167. package/types/data-editing/DataEditingProvider.d.ts +7 -0
  168. package/types/data-editing/EditButtons.d.ts +7 -0
  169. package/types/data-editing/EditTracker.d.ts +24 -0
  170. package/types/data-editing/useEditableTable.d.ts +15 -0
  171. package/types/index.d.ts +5 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreventScroll.js","sources":["../../../../../../../../node_modules/@salt-ds/core/dist-es/utils/usePreventScroll.js"],"sourcesContent":["import { createChainedFunction } from './createChainedFunction.js';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\n\nconst visualViewport = typeof document !== \"undefined\" && window.visualViewport;\nconst nonTextInputTypes = /* @__PURE__ */ new Set([\n \"checkbox\",\n \"radio\",\n \"range\",\n \"color\",\n \"file\",\n \"image\",\n \"button\",\n \"submit\",\n \"reset\"\n]);\nlet preventScrollCount = 0;\nlet restore;\nfunction usePreventScroll(options = {}) {\n const { isDisabled } = options;\n useIsomorphicLayoutEffect(() => {\n if (isDisabled) {\n return;\n }\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n } else {\n restore = preventScrollStandard();\n }\n }\n return () => {\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore();\n }\n };\n }, [isDisabled]);\n}\nfunction preventScrollStandard() {\n return createChainedFunction(\n setStyle(\n document.documentElement,\n \"paddingRight\",\n `${window.innerWidth - document.documentElement.clientWidth}px`\n ),\n setStyle(document.documentElement, \"overflow\", \"hidden\")\n );\n}\nfunction preventScrollMobileSafari() {\n let scrollable;\n let restoreScrollableStyles;\n const onTouchStart = (e) => {\n scrollable = getScrollParent(e.target, true);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n if (scrollable instanceof HTMLElement && window.getComputedStyle(scrollable).overscrollBehavior === \"auto\") {\n restoreScrollableStyles = setStyle(\n scrollable,\n \"overscrollBehavior\",\n \"contain\"\n );\n }\n };\n const onTouchMove = (e) => {\n if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n if (scrollable.scrollHeight === scrollable.clientHeight && scrollable.scrollWidth === scrollable.clientWidth) {\n e.preventDefault();\n }\n };\n const onTouchEnd = () => {\n if (restoreScrollableStyles) {\n restoreScrollableStyles();\n }\n };\n const onFocus = (e) => {\n const target = e.target;\n if (willOpenKeyboard(target)) {\n setupStyles();\n target.style.transform = \"translateY(-2000px)\";\n requestAnimationFrame(() => {\n target.style.transform = \"\";\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n requestAnimationFrame(() => {\n scrollIntoView(target);\n });\n } else {\n visualViewport.addEventListener(\n \"resize\",\n () => scrollIntoView(target),\n { once: true }\n );\n }\n }\n });\n }\n };\n let restoreStyles = null;\n const setupStyles = () => {\n if (restoreStyles) {\n return;\n }\n const onWindowScroll = () => {\n window.scrollTo(0, 0);\n };\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n restoreStyles = createChainedFunction(\n addEvent(window, \"scroll\", onWindowScroll),\n setStyle(\n document.documentElement,\n \"paddingRight\",\n `${window.innerWidth - document.documentElement.clientWidth}px`\n ),\n setStyle(document.documentElement, \"overflow\", \"hidden\"),\n setStyle(document.body, \"marginTop\", `-${scrollY}px`),\n () => {\n window.scrollTo(scrollX, scrollY);\n }\n );\n window.scrollTo(0, 0);\n };\n const removeEvents = createChainedFunction(\n addEvent(document, \"touchstart\", onTouchStart, {\n passive: false,\n capture: true\n }),\n addEvent(document, \"touchmove\", onTouchMove, {\n passive: false,\n capture: true\n }),\n addEvent(document, \"touchend\", onTouchEnd, {\n passive: false,\n capture: true\n }),\n addEvent(document, \"focus\", onFocus, true)\n );\n return () => {\n restoreScrollableStyles == null ? void 0 : restoreScrollableStyles();\n restoreStyles == null ? void 0 : restoreStyles();\n removeEvents();\n };\n}\nfunction setStyle(element, style, value) {\n const cur = element.style[style];\n element.style[style] = value;\n return () => {\n element.style[style] = cur;\n };\n}\nfunction addEvent(target, event, handler, options) {\n target.addEventListener(event, handler, options);\n return () => {\n target.removeEventListener(event, handler, options);\n };\n}\nfunction scrollIntoView(target) {\n const root = document.scrollingElement || document.documentElement;\n let nextTarget = target;\n while (nextTarget && nextTarget !== root) {\n const scrollable = getScrollParent(nextTarget);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== nextTarget) {\n const scrollableTop = scrollable.getBoundingClientRect().top;\n const targetTop = nextTarget.getBoundingClientRect().top;\n if (targetTop > scrollableTop + nextTarget.clientHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n nextTarget = scrollable.parentElement;\n }\n}\nfunction willOpenKeyboard(target) {\n return target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;\n}\nfunction isScrollable(node, checkForOverflow) {\n if (!node) {\n return false;\n }\n const style = window.getComputedStyle(node);\n let isScrollable2 = /(auto|scroll)/.test(\n style.overflow + style.overflowX + style.overflowY\n );\n if (isScrollable2 && checkForOverflow) {\n isScrollable2 = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;\n }\n return isScrollable2;\n}\nfunction getScrollParent(node, checkForOverflow) {\n let scrollableNode = node;\n if (isScrollable(scrollableNode, checkForOverflow)) {\n scrollableNode = scrollableNode.parentElement;\n }\n while (scrollableNode && !isScrollable(scrollableNode, checkForOverflow)) {\n scrollableNode = scrollableNode.parentElement;\n }\n return scrollableNode || document.scrollingElement || document.documentElement;\n}\nfunction testPlatform(re) {\n var _a;\n return typeof window !== \"undefined\" && window.navigator != null ? re.test(\n // @ts-expect-error userAgentData is only supported in Chrome 90+\n ((_a = window.navigator.userAgentData) == null ? void 0 : _a.platform) || window.navigator.platform\n ) : false;\n}\nfunction cached(fn) {\n if (process.env.NODE_ENV === \"test\") {\n return fn;\n }\n let res = null;\n return () => {\n if (res == null) {\n res = fn();\n }\n return res;\n };\n}\nconst isMac = cached(() => testPlatform(/^Mac/i));\nconst isIPhone = cached(() => testPlatform(/^iPhone/i));\nconst isIPad = cached(\n () => testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n isMac() && navigator.maxTouchPoints > 1\n);\nconst isIOS = cached(() => isIPhone() || isIPad());\n\nexport { usePreventScroll };\n//# sourceMappingURL=usePreventScroll.js.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,32 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useContext, useState } from 'react';
3
+ import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect.js';
4
+
5
+ const ViewportContext = createContext(null);
6
+ const ViewportProvider = ({ children }) => {
7
+ const existingViewport = useContext(ViewportContext);
8
+ const [viewport, setViewport] = useState(existingViewport);
9
+ const noExistingViewport = existingViewport === null;
10
+ const viewportValue = existingViewport || viewport || 0;
11
+ useIsomorphicLayoutEffect(() => {
12
+ let observer = null;
13
+ if (noExistingViewport) {
14
+ observer = new ResizeObserver(
15
+ (observerEntries) => {
16
+ setViewport(observerEntries[0].contentRect.width);
17
+ }
18
+ );
19
+ observer.observe(document.body);
20
+ setViewport(document.body.getBoundingClientRect().width);
21
+ }
22
+ return () => {
23
+ if (observer) {
24
+ observer.disconnect();
25
+ }
26
+ };
27
+ }, [noExistingViewport]);
28
+ return /* @__PURE__ */ jsx(ViewportContext.Provider, { value: viewportValue, children });
29
+ };
30
+
31
+ export { ViewportContext, ViewportProvider };
32
+ //# sourceMappingURL=ViewportProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewportProvider.js","sources":["../../../../../../../../node_modules/@salt-ds/core/dist-es/viewport/ViewportProvider.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createContext, useContext, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect.js';\n\nconst ViewportContext = createContext(null);\nconst ViewportProvider = ({ children }) => {\n const existingViewport = useContext(ViewportContext);\n const [viewport, setViewport] = useState(existingViewport);\n const noExistingViewport = existingViewport === null;\n const viewportValue = existingViewport || viewport || 0;\n useIsomorphicLayoutEffect(() => {\n let observer = null;\n if (noExistingViewport) {\n observer = new ResizeObserver(\n (observerEntries) => {\n setViewport(observerEntries[0].contentRect.width);\n }\n );\n observer.observe(document.body);\n setViewport(document.body.getBoundingClientRect().width);\n }\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }, [noExistingViewport]);\n return /* @__PURE__ */ jsx(ViewportContext.Provider, { value: viewportValue, children });\n};\nconst useViewport = () => {\n const value = useContext(ViewportContext);\n return value === null ? 0 : value;\n};\n\nexport { ViewportContext, ViewportProvider, useViewport };\n//# sourceMappingURL=ViewportProvider.js.map\n"],"names":[],"mappings":";;;;AAIK,MAAC,eAAe,GAAG,aAAa,CAAC,IAAI;AACrC,MAAC,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK;AAC3C,EAAE,MAAM,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC;AACtD,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;AAC5D,EAAE,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,IAAI;AACtD,EAAE,MAAM,aAAa,GAAG,gBAAgB,IAAI,QAAQ,IAAI,CAAC;AACzD,EAAE,yBAAyB,CAAC,MAAM;AAClC,IAAI,IAAI,QAAQ,GAAG,IAAI;AACvB,IAAI,IAAI,kBAAkB,EAAE;AAC5B,MAAM,QAAQ,GAAG,IAAI,cAAc;AACnC,QAAQ,CAAC,eAAe,KAAK;AAC7B,UAAU,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3D;AACA,OAAO;AACP,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrC,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAC9D;AACA,IAAI,OAAO,MAAM;AACjB,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,QAAQ,CAAC,UAAU,EAAE;AAC7B;AACA,KAAK;AACL,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;AAC1B,EAAE,uBAAuB,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC1F;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,19 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useContext } from 'react';
3
+
4
+ const StyleInjectionContext = createContext(true);
5
+ function useStyleInjection(enableStyleInjection) {
6
+ const enableStyleInjectionFromContext = useContext(StyleInjectionContext);
7
+ return enableStyleInjection != null ? enableStyleInjection : enableStyleInjectionFromContext;
8
+ }
9
+ function StyleInjectionProvider(props) {
10
+ const { value: enableStyleInjectionProp, children } = props;
11
+ const value = useStyleInjection(enableStyleInjectionProp);
12
+ return /* @__PURE__ */ jsx(StyleInjectionContext.Provider, {
13
+ value,
14
+ children
15
+ });
16
+ }
17
+
18
+ export { StyleInjectionProvider, useStyleInjection };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../node_modules/@salt-ds/styles/dist-es/style-injection-provider/index.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createContext, useContext } from 'react';\n\nconst StyleInjectionContext = createContext(true);\nfunction useStyleInjection(enableStyleInjection) {\n const enableStyleInjectionFromContext = useContext(StyleInjectionContext);\n return enableStyleInjection != null ? enableStyleInjection : enableStyleInjectionFromContext;\n}\nfunction StyleInjectionProvider(props) {\n const { value: enableStyleInjectionProp, children } = props;\n const value = useStyleInjection(enableStyleInjectionProp);\n return /* @__PURE__ */ jsx(StyleInjectionContext.Provider, {\n value,\n children\n });\n}\n\nexport { StyleInjectionProvider, useStyleInjection };\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":";;;AAGA,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC;AACjD,SAAS,iBAAiB,CAAC,oBAAoB,EAAE;AACjD,EAAE,MAAM,+BAA+B,GAAG,UAAU,CAAC,qBAAqB,CAAC;AAC3E,EAAE,OAAO,oBAAoB,IAAI,IAAI,GAAG,oBAAoB,GAAG,+BAA+B;AAC9F;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAAG,KAAK;AAC7D,EAAE,MAAM,KAAK,GAAG,iBAAiB,CAAC,wBAAwB,CAAC;AAC3D,EAAE,uBAAuB,GAAG,CAAC,qBAAqB,CAAC,QAAQ,EAAE;AAC7D,IAAI,KAAK;AACT,IAAI;AACJ,GAAG,CAAC;AACJ;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,14 @@
1
+ import 'react/jsx-runtime';
2
+ import { createContext, useContext } from 'react';
3
+
4
+ const InsertionPointContext = createContext(null);
5
+ if (process.env.NODE_ENV !== "production") {
6
+ InsertionPointContext.displayName = "InsertionPointContext";
7
+ }
8
+ function useInsertionPoint() {
9
+ const value = useContext(InsertionPointContext);
10
+ return value;
11
+ }
12
+
13
+ export { useInsertionPoint };
14
+ //# sourceMappingURL=InsertionPointProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertionPointProvider.js","sources":["../../../../../../../../node_modules/@salt-ds/styles/dist-es/use-style-injection/InsertionPointProvider.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createContext, useMemo, useContext } from 'react';\n\nconst InsertionPointContext = createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n InsertionPointContext.displayName = \"InsertionPointContext\";\n}\nfunction InsertionPointProvider(props) {\n const { insertionPoint: insertionPointProp, children } = props;\n const value = useMemo(() => insertionPointProp, [insertionPointProp]);\n return /* @__PURE__ */ jsx(InsertionPointContext.Provider, {\n value,\n children\n });\n}\nfunction useInsertionPoint() {\n const value = useContext(InsertionPointContext);\n return value;\n}\n\nexport { InsertionPointProvider, useInsertionPoint };\n//# sourceMappingURL=InsertionPointProvider.js.map\n"],"names":[],"mappings":";;;AAGA,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC;AACjD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC3C,EAAE,qBAAqB,CAAC,WAAW,GAAG,uBAAuB;AAC7D;AASA,SAAS,iBAAiB,GAAG;AAC7B,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC;AACjD,EAAE,OAAO,KAAK;AACd;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ import { useInsertionPoint } from './InsertionPointProvider.js';
3
+ import { useStyleInjection } from '../style-injection-provider/index.js';
4
+
5
+ var _a;
6
+ const maybeUseInsertionEffect = (_a = React["useInsertionEffect".toString()]) != null ? _a : React.useLayoutEffect;
7
+ const windowSheetsMap = /* @__PURE__ */ new WeakMap();
8
+ function useComponentCssInjection({
9
+ testId,
10
+ css,
11
+ window: targetWindow
12
+ }) {
13
+ const styleInjectionEnabled = useStyleInjection();
14
+ const insertionPoint = useInsertionPoint();
15
+ maybeUseInsertionEffect(() => {
16
+ var _a2, _b;
17
+ if (!targetWindow || !styleInjectionEnabled) {
18
+ return;
19
+ }
20
+ const sheetsMap = (_a2 = windowSheetsMap.get(targetWindow)) != null ? _a2 : /* @__PURE__ */ new Map();
21
+ const styleMap = (_b = sheetsMap.get(css)) != null ? _b : { styleElement: null, count: 0 };
22
+ if (styleMap.styleElement == null) {
23
+ styleMap.styleElement = targetWindow.document.createElement("style");
24
+ styleMap.styleElement.setAttribute("type", "text/css");
25
+ styleMap.styleElement.setAttribute("data-salt-style", testId || "");
26
+ styleMap.styleElement.textContent = css;
27
+ styleMap.count = 1;
28
+ targetWindow.document.head.insertBefore(
29
+ styleMap.styleElement,
30
+ insertionPoint || targetWindow.document.head.firstChild
31
+ );
32
+ } else {
33
+ styleMap.styleElement.textContent = css;
34
+ styleMap.count++;
35
+ }
36
+ sheetsMap.set(css, styleMap);
37
+ windowSheetsMap.set(targetWindow, sheetsMap);
38
+ return () => {
39
+ const sheetsMap2 = windowSheetsMap.get(targetWindow);
40
+ const styleMap2 = sheetsMap2 == null ? void 0 : sheetsMap2.get(css);
41
+ if (styleMap2 == null ? void 0 : styleMap2.styleElement) {
42
+ styleMap2.count--;
43
+ if (styleMap2.count < 1) {
44
+ targetWindow.document.head.removeChild(styleMap2.styleElement);
45
+ styleMap2.styleElement = null;
46
+ sheetsMap2 == null ? void 0 : sheetsMap2.delete(css);
47
+ }
48
+ }
49
+ };
50
+ }, [testId, css, targetWindow]);
51
+ }
52
+
53
+ export { useComponentCssInjection };
54
+ //# sourceMappingURL=useStyleInjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStyleInjection.js","sources":["../../../../../../../../node_modules/@salt-ds/styles/dist-es/use-style-injection/useStyleInjection.js"],"sourcesContent":["import * as React from 'react';\nimport { useInsertionPoint } from './InsertionPointProvider.js';\nimport { useStyleInjection } from '../style-injection-provider/index.js';\n\nvar _a;\nconst maybeUseInsertionEffect = (_a = React[\"useInsertionEffect\".toString()]) != null ? _a : React.useLayoutEffect;\nconst windowSheetsMap = /* @__PURE__ */ new WeakMap();\nfunction useComponentCssInjection({\n testId,\n css,\n window: targetWindow\n}) {\n const styleInjectionEnabled = useStyleInjection();\n const insertionPoint = useInsertionPoint();\n maybeUseInsertionEffect(() => {\n var _a2, _b;\n if (!targetWindow || !styleInjectionEnabled) {\n return;\n }\n const sheetsMap = (_a2 = windowSheetsMap.get(targetWindow)) != null ? _a2 : /* @__PURE__ */ new Map();\n const styleMap = (_b = sheetsMap.get(css)) != null ? _b : { styleElement: null, count: 0 };\n if (styleMap.styleElement == null) {\n styleMap.styleElement = targetWindow.document.createElement(\"style\");\n styleMap.styleElement.setAttribute(\"type\", \"text/css\");\n styleMap.styleElement.setAttribute(\"data-salt-style\", testId || \"\");\n styleMap.styleElement.textContent = css;\n styleMap.count = 1;\n targetWindow.document.head.insertBefore(\n styleMap.styleElement,\n insertionPoint || targetWindow.document.head.firstChild\n );\n } else {\n styleMap.styleElement.textContent = css;\n styleMap.count++;\n }\n sheetsMap.set(css, styleMap);\n windowSheetsMap.set(targetWindow, sheetsMap);\n return () => {\n const sheetsMap2 = windowSheetsMap.get(targetWindow);\n const styleMap2 = sheetsMap2 == null ? void 0 : sheetsMap2.get(css);\n if (styleMap2 == null ? void 0 : styleMap2.styleElement) {\n styleMap2.count--;\n if (styleMap2.count < 1) {\n targetWindow.document.head.removeChild(styleMap2.styleElement);\n styleMap2.styleElement = null;\n sheetsMap2 == null ? void 0 : sheetsMap2.delete(css);\n }\n }\n };\n }, [testId, css, targetWindow]);\n}\n\nexport { useComponentCssInjection };\n//# sourceMappingURL=useStyleInjection.js.map\n"],"names":[],"mappings":";;;;AAIA,IAAI,EAAE;AACN,MAAM,uBAAuB,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,eAAe;AAClH,MAAM,eAAe,mBAAmB,IAAI,OAAO,EAAE;AACrD,SAAS,wBAAwB,CAAC;AAClC,EAAE,MAAM;AACR,EAAE,GAAG;AACL,EAAE,MAAM,EAAE;AACV,CAAC,EAAE;AACH,EAAE,MAAM,qBAAqB,GAAG,iBAAiB,EAAE;AACnD,EAAE,MAAM,cAAc,GAAG,iBAAiB,EAAE;AAC5C,EAAE,uBAAuB,CAAC,MAAM;AAChC,IAAI,IAAI,GAAG,EAAE,EAAE;AACf,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,qBAAqB,EAAE;AACjD,MAAM;AACN;AACA,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,GAAG,mBAAmB,IAAI,GAAG,EAAE;AACzG,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;AAC9F,IAAI,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,EAAE;AACvC,MAAM,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC1E,MAAM,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;AAC5D,MAAM,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,IAAI,EAAE,CAAC;AACzE,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,GAAG,GAAG;AAC7C,MAAM,QAAQ,CAAC,KAAK,GAAG,CAAC;AACxB,MAAM,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY;AAC7C,QAAQ,QAAQ,CAAC,YAAY;AAC7B,QAAQ,cAAc,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrD,OAAO;AACP,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,GAAG,GAAG;AAC7C,MAAM,QAAQ,CAAC,KAAK,EAAE;AACtB;AACA,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;AAChC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC;AAChD,IAAI,OAAO,MAAM;AACjB,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACzE,MAAM,IAAI,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,YAAY,EAAE;AAC/D,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE;AACjC,UAAU,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;AACxE,UAAU,SAAS,CAAC,YAAY,GAAG,IAAI;AACvC,UAAU,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9D;AACA;AACA,KAAK;AACL,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;AACjC;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,15 @@
1
+ import 'react/jsx-runtime';
2
+ import { createContext, useContext } from 'react';
3
+
4
+ const WindowContext = createContext(
5
+ typeof window !== "undefined" ? window : null
6
+ );
7
+ if (process.env.NODE_ENV !== "production") {
8
+ WindowContext.displayName = "WindowContext";
9
+ }
10
+ function useWindow() {
11
+ return useContext(WindowContext);
12
+ }
13
+
14
+ export { useWindow };
15
+ //# sourceMappingURL=WindowProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowProvider.js","sources":["../../../../../../../node_modules/@salt-ds/window/dist-es/WindowProvider.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { createContext, useContext } from 'react';\n\nconst WindowContext = createContext(\n typeof window !== \"undefined\" ? window : null\n);\nif (process.env.NODE_ENV !== \"production\") {\n WindowContext.displayName = \"WindowContext\";\n}\nfunction WindowProvider(props) {\n const { window: targetWindow, children } = props;\n return /* @__PURE__ */ jsx(WindowContext.Provider, {\n value: targetWindow,\n children\n });\n}\nfunction useWindow() {\n return useContext(WindowContext);\n}\n\nexport { WindowProvider, useWindow };\n//# sourceMappingURL=WindowProvider.js.map\n"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GAAG,aAAa;AACnC,EAAE,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG;AAC3C,CAAC;AACD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC3C,EAAE,aAAa,CAAC,WAAW,GAAG,eAAe;AAC7C;AAQA,SAAS,SAAS,GAAG;AACrB,EAAE,OAAO,UAAU,CAAC,aAAa,CAAC;AAClC;;;;","x_google_ignoreList":[0]}