@navikt/ds-react 7.32.1 → 7.32.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 (201) hide show
  1. package/cjs/copybutton/CopyButton.js +4 -9
  2. package/cjs/copybutton/CopyButton.js.map +1 -1
  3. package/cjs/form/combobox/Combobox.js +1 -3
  4. package/cjs/form/combobox/Combobox.js.map +1 -1
  5. package/cjs/form/combobox/ComboboxWrapper.d.ts +1 -2
  6. package/cjs/form/combobox/ComboboxWrapper.js +1 -2
  7. package/cjs/form/combobox/ComboboxWrapper.js.map +1 -1
  8. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +28 -19
  9. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  10. package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
  11. package/cjs/form/combobox/Input/Input.context.d.ts +2 -0
  12. package/cjs/form/combobox/Input/Input.context.js +4 -1
  13. package/cjs/form/combobox/Input/Input.context.js.map +1 -1
  14. package/cjs/form/combobox/Input/InputController.js +2 -2
  15. package/cjs/form/combobox/Input/InputController.js.map +1 -1
  16. package/cjs/help-text/HelpText.js +3 -3
  17. package/cjs/help-text/HelpText.js.map +1 -1
  18. package/cjs/help-text/HelpTextIcon.d.ts +1 -2
  19. package/cjs/help-text/HelpTextIcon.js +3 -7
  20. package/cjs/help-text/HelpTextIcon.js.map +1 -1
  21. package/cjs/layout/page/parts/PageBlock.d.ts +9 -6
  22. package/cjs/layout/page/parts/PageBlock.js.map +1 -1
  23. package/cjs/modal/ModalUtils.js +6 -4
  24. package/cjs/modal/ModalUtils.js.map +1 -1
  25. package/cjs/overlays/dismissablelayer/DismissableLayer.js +9 -19
  26. package/cjs/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
  27. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js +5 -4
  28. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
  29. package/cjs/overlays/floating-menu/Menu.d.ts +4 -4
  30. package/cjs/overlays/floating-menu/Menu.js +7 -4
  31. package/cjs/overlays/floating-menu/Menu.js.map +1 -1
  32. package/cjs/overlays/floating-menu/parts/RovingFocus.js +3 -3
  33. package/cjs/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
  34. package/cjs/overlays/overlay/hooks/useAnimationsFinished.js +1 -1
  35. package/cjs/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -1
  36. package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.js +2 -2
  37. package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.js.map +1 -1
  38. package/cjs/progress-bar/ProgressBar.js +9 -6
  39. package/cjs/progress-bar/ProgressBar.js.map +1 -1
  40. package/cjs/table/AnimateHeight.js +12 -13
  41. package/cjs/table/AnimateHeight.js.map +1 -1
  42. package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
  43. package/cjs/tabs/parts/tablist/useScrollButtons.js +4 -4
  44. package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -1
  45. package/cjs/util/TextareaAutoSize.js +3 -10
  46. package/cjs/util/TextareaAutoSize.js.map +1 -1
  47. package/cjs/util/create-context.d.ts +0 -1
  48. package/cjs/util/create-context.js.map +1 -1
  49. package/cjs/util/debounce.d.ts +1 -1
  50. package/cjs/util/debounce.js +5 -8
  51. package/cjs/util/debounce.js.map +1 -1
  52. package/cjs/util/detectBrowser.d.ts +2 -0
  53. package/cjs/util/detectBrowser.js +7 -0
  54. package/cjs/util/detectBrowser.js.map +1 -0
  55. package/cjs/util/focus-boundary/FocusBoundary.d.ts +44 -0
  56. package/cjs/util/focus-boundary/FocusBoundary.js +365 -0
  57. package/cjs/util/focus-boundary/FocusBoundary.js.map +1 -0
  58. package/cjs/util/focus-guards/FocusGuards.d.ts +8 -0
  59. package/cjs/util/focus-guards/FocusGuards.js +36 -0
  60. package/cjs/util/focus-guards/FocusGuards.js.map +1 -0
  61. package/cjs/util/hooks/useEventCallback.js.map +1 -0
  62. package/cjs/{overlays/overlay → util}/hooks/useLatestRef.js +2 -2
  63. package/cjs/util/hooks/useLatestRef.js.map +1 -0
  64. package/cjs/util/hooks/useRefWithInit.js.map +1 -0
  65. package/cjs/util/hooks/useTimeout.d.ts +16 -0
  66. package/cjs/util/hooks/useTimeout.js +49 -0
  67. package/cjs/util/hooks/useTimeout.js.map +1 -0
  68. package/cjs/util/link-anchor/LinkAnchor.js +6 -7
  69. package/cjs/util/link-anchor/LinkAnchor.js.map +1 -1
  70. package/cjs/util/owner.d.ts +29 -0
  71. package/cjs/util/owner.js +38 -0
  72. package/cjs/util/owner.js.map +1 -0
  73. package/esm/copybutton/CopyButton.js +5 -10
  74. package/esm/copybutton/CopyButton.js.map +1 -1
  75. package/esm/form/combobox/Combobox.js +1 -3
  76. package/esm/form/combobox/Combobox.js.map +1 -1
  77. package/esm/form/combobox/ComboboxWrapper.d.ts +1 -2
  78. package/esm/form/combobox/ComboboxWrapper.js +1 -2
  79. package/esm/form/combobox/ComboboxWrapper.js.map +1 -1
  80. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +29 -20
  81. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  82. package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
  83. package/esm/form/combobox/Input/Input.context.d.ts +2 -0
  84. package/esm/form/combobox/Input/Input.context.js +4 -1
  85. package/esm/form/combobox/Input/Input.context.js.map +1 -1
  86. package/esm/form/combobox/Input/InputController.js +2 -2
  87. package/esm/form/combobox/Input/InputController.js.map +1 -1
  88. package/esm/help-text/HelpText.js +3 -3
  89. package/esm/help-text/HelpText.js.map +1 -1
  90. package/esm/help-text/HelpTextIcon.d.ts +1 -2
  91. package/esm/help-text/HelpTextIcon.js +3 -7
  92. package/esm/help-text/HelpTextIcon.js.map +1 -1
  93. package/esm/layout/page/parts/PageBlock.d.ts +9 -6
  94. package/esm/layout/page/parts/PageBlock.js.map +1 -1
  95. package/esm/modal/ModalUtils.js +6 -4
  96. package/esm/modal/ModalUtils.js.map +1 -1
  97. package/esm/overlays/dismissablelayer/DismissableLayer.js +9 -19
  98. package/esm/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
  99. package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js +5 -4
  100. package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
  101. package/esm/overlays/floating-menu/Menu.d.ts +4 -4
  102. package/esm/overlays/floating-menu/Menu.js +7 -4
  103. package/esm/overlays/floating-menu/Menu.js.map +1 -1
  104. package/esm/overlays/floating-menu/parts/RovingFocus.js +3 -3
  105. package/esm/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
  106. package/esm/overlays/overlay/hooks/useAnimationsFinished.js +1 -1
  107. package/esm/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -1
  108. package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.js +2 -2
  109. package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.js.map +1 -1
  110. package/esm/progress-bar/ProgressBar.js +10 -7
  111. package/esm/progress-bar/ProgressBar.js.map +1 -1
  112. package/esm/table/AnimateHeight.js +12 -13
  113. package/esm/table/AnimateHeight.js.map +1 -1
  114. package/esm/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
  115. package/esm/tabs/parts/tablist/useScrollButtons.js +4 -4
  116. package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -1
  117. package/esm/util/TextareaAutoSize.js +1 -8
  118. package/esm/util/TextareaAutoSize.js.map +1 -1
  119. package/esm/util/create-context.d.ts +0 -1
  120. package/esm/util/create-context.js.map +1 -1
  121. package/esm/util/debounce.d.ts +1 -1
  122. package/esm/util/debounce.js +5 -8
  123. package/esm/util/debounce.js.map +1 -1
  124. package/esm/util/detectBrowser.d.ts +2 -0
  125. package/esm/util/detectBrowser.js +4 -0
  126. package/esm/util/detectBrowser.js.map +1 -0
  127. package/esm/util/focus-boundary/FocusBoundary.d.ts +44 -0
  128. package/esm/util/focus-boundary/FocusBoundary.js +329 -0
  129. package/esm/util/focus-boundary/FocusBoundary.js.map +1 -0
  130. package/esm/util/focus-guards/FocusGuards.d.ts +8 -0
  131. package/esm/util/focus-guards/FocusGuards.js +31 -0
  132. package/esm/util/focus-guards/FocusGuards.js.map +1 -0
  133. package/esm/util/hooks/useEventCallback.js.map +1 -0
  134. package/esm/{overlays/overlay → util}/hooks/useLatestRef.js +1 -1
  135. package/esm/util/hooks/useLatestRef.js.map +1 -0
  136. package/esm/util/hooks/useRefWithInit.js.map +1 -0
  137. package/esm/util/hooks/useTimeout.d.ts +16 -0
  138. package/esm/util/hooks/useTimeout.js +45 -0
  139. package/esm/util/hooks/useTimeout.js.map +1 -0
  140. package/esm/util/link-anchor/LinkAnchor.js +6 -7
  141. package/esm/util/link-anchor/LinkAnchor.js.map +1 -1
  142. package/esm/util/owner.d.ts +29 -0
  143. package/esm/util/owner.js +35 -0
  144. package/esm/util/owner.js.map +1 -0
  145. package/package.json +8 -8
  146. package/src/copybutton/CopyButton.tsx +5 -17
  147. package/src/form/combobox/Combobox.tsx +0 -4
  148. package/src/form/combobox/ComboboxWrapper.tsx +0 -3
  149. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +65 -45
  150. package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +1 -0
  151. package/src/form/combobox/Input/Input.context.tsx +5 -0
  152. package/src/form/combobox/Input/InputController.tsx +2 -1
  153. package/src/form/file-upload/parts/item/utils/format-file-size.test.ts +2 -2
  154. package/src/help-text/HelpText.tsx +3 -2
  155. package/src/help-text/HelpTextIcon.tsx +2 -12
  156. package/src/layout/page/parts/PageBlock.tsx +9 -6
  157. package/src/modal/ModalUtils.ts +7 -4
  158. package/src/overlays/dismissablelayer/DismissableLayer.tsx +9 -18
  159. package/src/overlays/dismissablelayer/util/usePointerDownOutside.ts +5 -4
  160. package/src/overlays/floating-menu/Menu.tsx +13 -9
  161. package/src/overlays/floating-menu/parts/RovingFocus.tsx +3 -3
  162. package/src/overlays/overlay/hooks/useAnimationsFinished.ts +1 -1
  163. package/src/overlays/overlay/hooks/useOpenChangeAnimationComplete.ts +2 -2
  164. package/src/progress-bar/ProgressBar.tsx +12 -10
  165. package/src/table/AnimateHeight.tsx +12 -15
  166. package/src/tabs/parts/tablist/useScrollButtons.ts +4 -3
  167. package/src/util/TextareaAutoSize.tsx +1 -9
  168. package/src/util/create-context.tsx +0 -1
  169. package/src/util/debounce.ts +7 -8
  170. package/src/util/detectBrowser.ts +5 -0
  171. package/src/util/focus-boundary/FocusBoundary.tsx +453 -0
  172. package/src/util/focus-guards/FocusGuards.tsx +56 -0
  173. package/src/{overlays/overlay → util}/hooks/useLatestRef.ts +1 -1
  174. package/src/util/hooks/useTimeout.ts +54 -0
  175. package/src/util/link-anchor/LinkAnchor.tsx +7 -6
  176. package/src/util/owner.ts +35 -0
  177. package/cjs/overlays/floating-menu/parts/FocusScope.d.ts +0 -22
  178. package/cjs/overlays/floating-menu/parts/FocusScope.js +0 -98
  179. package/cjs/overlays/floating-menu/parts/FocusScope.js.map +0 -1
  180. package/cjs/overlays/overlay/hooks/useEventCallback.js.map +0 -1
  181. package/cjs/overlays/overlay/hooks/useLatestRef.js.map +0 -1
  182. package/cjs/overlays/overlay/hooks/useRefWithInit.js.map +0 -1
  183. package/esm/overlays/floating-menu/parts/FocusScope.d.ts +0 -22
  184. package/esm/overlays/floating-menu/parts/FocusScope.js +0 -62
  185. package/esm/overlays/floating-menu/parts/FocusScope.js.map +0 -1
  186. package/esm/overlays/overlay/hooks/useEventCallback.js.map +0 -1
  187. package/esm/overlays/overlay/hooks/useLatestRef.js.map +0 -1
  188. package/esm/overlays/overlay/hooks/useRefWithInit.js.map +0 -1
  189. package/src/overlays/floating-menu/parts/FocusScope.tsx +0 -83
  190. /package/cjs/{overlays/overlay → util}/hooks/useEventCallback.d.ts +0 -0
  191. /package/cjs/{overlays/overlay → util}/hooks/useEventCallback.js +0 -0
  192. /package/cjs/{overlays/overlay → util}/hooks/useLatestRef.d.ts +0 -0
  193. /package/cjs/{overlays/overlay → util}/hooks/useRefWithInit.d.ts +0 -0
  194. /package/cjs/{overlays/overlay → util}/hooks/useRefWithInit.js +0 -0
  195. /package/esm/{overlays/overlay → util}/hooks/useEventCallback.d.ts +0 -0
  196. /package/esm/{overlays/overlay → util}/hooks/useEventCallback.js +0 -0
  197. /package/esm/{overlays/overlay → util}/hooks/useLatestRef.d.ts +0 -0
  198. /package/esm/{overlays/overlay → util}/hooks/useRefWithInit.d.ts +0 -0
  199. /package/esm/{overlays/overlay → util}/hooks/useRefWithInit.js +0 -0
  200. /package/src/{overlays/overlay → util}/hooks/useEventCallback.ts +0 -0
  201. /package/src/{overlays/overlay → util}/hooks/useRefWithInit.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollButtons.js","sourceRoot":"","sources":["../../../../src/tabs/parts/tablist/useScrollButtons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,gBAAgB,CAC9B,OAA+C;IAE/C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC;QACjD,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,OAAO,CACrC,GAAG,EAAE,CACH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;YAAE,OAAO;QAC9B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC9C,6DAA6D;QAC7D,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;QAEjE,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpC,eAAe,KAAK,gBAAgB,CAAC,KAAK;YAC1C,aAAa,KAAK,gBAAgB,CAAC,GAAG;YACpC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,CACnD,CAAC;IACJ,CAAC,CAAC,EACJ,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;;QACb,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,aAAa,mCAAI,QAAQ,mCAAI,MAAM,CAAC;QACjE,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE7C,IAAI,cAA8B,CAAC;QAEnC,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7D,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChD,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,EAAE,CAAC;YAC7B,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,uBAAuB,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,uBAAuB;QAC/B,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,KAAK;QAC9C,UAAU,EAAE,GAAG,EAAE;YACf,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YACpC,CAAC;QACH,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YACpC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useScrollButtons.js","sourceRoot":"","sources":["../../../../src/tabs/parts/tablist/useScrollButtons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAC9B,OAA+C;IAE/C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC;QACjD,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,OAAO,CACrC,GAAG,EAAE,CACH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;YAAE,OAAO;QAC9B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC9C,6DAA6D;QAC7D,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;QAEjE,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpC,eAAe,KAAK,gBAAgB,CAAC,KAAK;YAC1C,aAAa,KAAK,gBAAgB,CAAC,GAAG;YACpC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,CACnD,CAAC;IACJ,CAAC,CAAC,EACJ,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAElD,IAAI,cAA8B,CAAC;QAEnC,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7D,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACrD,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,EAAE,CAAC;YAC7B,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,uBAAuB,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,uBAAuB;QAC/B,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,KAAK;QAC9C,UAAU,EAAE,GAAG,EAAE;YACf,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YACpC,CAAC;QACH,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YACpC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -15,6 +15,7 @@ import ReactDOM from "react-dom";
15
15
  import { useClientLayoutEffect } from "../util/hooks/index.js";
16
16
  import debounce from "./debounce.js";
17
17
  import { useMergeRefs } from "./hooks/useMergeRefs.js";
18
+ import { ownerWindow } from "./owner.js";
18
19
  const checkState = (prevState, newState, renders) => {
19
20
  const { outerHeightStyle, overflow } = newState;
20
21
  // Need a large enough difference to update the height.
@@ -31,14 +32,6 @@ const checkState = (prevState, newState, renders) => {
31
32
  }
32
33
  return prevState;
33
34
  };
34
- /**
35
- * https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/ownerDocument/ownerDocument.ts
36
- * https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/ownerWindow/ownerWindow.ts
37
- */
38
- const ownerWindow = (node) => {
39
- const doc = (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;
40
- return doc.defaultView || window;
41
- };
42
35
  function getStyleValue(value) {
43
36
  return parseInt(value, 10) || 0;
44
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextareaAutoSize.js","sourceRoot":"","sources":["../../src/util/TextareaAutoSize.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextareaAutoSize.js","sourceRoot":"","sources":["../../src/util/TextareaAutoSize.tsx"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ export interface CreateContextOptions<T> {
11
11
  errorMessage?: string;
12
12
  name?: string;
13
13
  defaultValue?: T;
14
- strict?: boolean;
15
14
  }
16
15
  type ProviderProps<T> = T & {
17
16
  children: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"create-context.js","sourceRoot":"","sources":["../../src/util/create-context.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EACZ,aAAa,IAAI,kBAAkB,EACnC,UAAU,EACV,UAAU,IAAI,eAAe,GAC9B,MAAM,OAAO,CAAC;AAaf,SAAS,eAAe,CAAC,IAAY,EAAE,QAAgB;IACrD,OAAO,GAAG,IAAI,sEAAsE,QAAQ,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,UAAmC,EAAE;IACpE,MAAM,EACJ,IAAI,EACJ,QAAQ,GAAG,YAAY,EACvB,YAAY,GAAG,UAAU,EACzB,YAAY,EACZ,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,kBAAkB,CAAgB,YAAY,CAAC,CAAC;IAEhE;;;OAGG;IACH,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,EAAwB,EAAE,GAAG,EAAE,EAAE;QAChC,0CAA0C;YAD3C,EAAE,QAAQ,OAAc,EAAT,OAAO,cAAtB,YAAwB,CAAF;QAGrB,6GAA6G;QAC7G,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAM,CAAC,CAAC,kDAAkD;QAE3H,OAAO,CACL,oBAAC,OAAO,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,CAAC,CAAC,iCAAM,KAAK,KAAE,GAAG,IAAG,CAAC,CAAC,KAAK,IACrD,QAAQ,CACQ,CACpB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,SAAS,UAAU,CACjB,SAAY,IAAS;;QAErB,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CACxD,CAAC;YACF,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;YAC5B,MAAA,KAAK,CAAC,iBAAiB,sDAAG,KAAK,EAAE,UAAU,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,OAAwB,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAE3B,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"create-context.js","sourceRoot":"","sources":["../../src/util/create-context.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EACZ,aAAa,IAAI,kBAAkB,EACnC,UAAU,EACV,UAAU,IAAI,eAAe,GAC9B,MAAM,OAAO,CAAC;AAYf,SAAS,eAAe,CAAC,IAAY,EAAE,QAAgB;IACrD,OAAO,GAAG,IAAI,sEAAsE,QAAQ,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,UAAmC,EAAE;IACpE,MAAM,EACJ,IAAI,EACJ,QAAQ,GAAG,YAAY,EACvB,YAAY,GAAG,UAAU,EACzB,YAAY,EACZ,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,kBAAkB,CAAgB,YAAY,CAAC,CAAC;IAEhE;;;OAGG;IACH,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,EAAwB,EAAE,GAAG,EAAE,EAAE;QAChC,0CAA0C;YAD3C,EAAE,QAAQ,OAAc,EAAT,OAAO,cAAtB,YAAwB,CAAF;QAGrB,6GAA6G;QAC7G,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAM,CAAC,CAAC,kDAAkD;QAE3H,OAAO,CACL,oBAAC,OAAO,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,CAAC,CAAC,iCAAM,KAAK,KAAE,GAAG,IAAG,CAAC,CAAC,KAAK,IACrD,QAAQ,CACQ,CACpB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,SAAS,UAAU,CACjB,SAAY,IAAS;;QAErB,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CACxD,CAAC;YACF,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;YAC5B,MAAA,KAAK,CAAC,iBAAiB,sDAAG,KAAK,EAAE,UAAU,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,OAAwB,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAE3B,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AACzC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export default function debounce<T extends unknown[]>(func: (...args: T) => void, wait?: number, leading?: boolean): {
2
2
  (this: any, ...args: T): void;
3
- clear(): void;
3
+ clear: () => void;
4
4
  };
@@ -1,21 +1,18 @@
1
1
  "use client";
2
+ import { Timeout } from "./hooks/useTimeout.js";
2
3
  // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/debounce.js
3
4
  export default function debounce(func, wait = 166, leading = false) {
4
- let timeout;
5
+ const timeout = new Timeout();
5
6
  function debounced(...args) {
6
7
  const later = () => {
7
- timeout = undefined;
8
8
  func.apply(this, args);
9
9
  };
10
- if (!timeout && leading) {
10
+ if (!timeout.isStarted() && leading) {
11
11
  later();
12
12
  }
13
- clearTimeout(timeout);
14
- timeout = setTimeout(later, wait);
13
+ timeout.start(wait, later);
15
14
  }
16
- debounced.clear = () => {
17
- clearTimeout(timeout);
18
- };
15
+ debounced.clear = timeout.clear;
19
16
  return debounced;
20
17
  }
21
18
  //# sourceMappingURL=debounce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/util/debounce.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,oFAAoF;AACpF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,IAA0B,EAC1B,IAAI,GAAG,GAAG,EACV,OAAO,GAAG,KAAK;IAEf,IAAI,OAAkD,CAAC;IACvD,SAAS,SAAS,CAAY,GAAG,IAAO;QACtC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;YACxB,KAAK,EAAE,CAAC;QACV,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE;QACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/util/debounce.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,oFAAoF;AACpF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,IAA0B,EAC1B,IAAI,GAAG,GAAG,EACV,OAAO,GAAG,KAAK;IAEf,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,SAAS,SAAS,CAAY,GAAG,IAAO;QACtC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC;YACpC,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAEhC,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const isSafari: boolean;
2
+ export { isSafari };
@@ -0,0 +1,4 @@
1
+ const hasNavigator = typeof navigator !== "undefined";
2
+ const isSafari = hasNavigator && /apple/i.test(navigator.vendor);
3
+ export { isSafari };
4
+ //# sourceMappingURL=detectBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectBrowser.js","sourceRoot":"","sources":["../../src/util/detectBrowser.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,WAAW,CAAC;AAEtD,MAAM,QAAQ,GAAG,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ /**
3
+ * TODO:
4
+ * - owner(container) for corrent document
5
+ */
6
+ interface FocusBoundaryProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ /**
8
+ * FocusBoundary expects a single child element since its a slotted component.
9
+ */
10
+ children: React.ReactElement;
11
+ /**
12
+ * When `true`, tabbing from last item will focus first tabbable
13
+ * and shift+tab from first item will focus last tabbable element.
14
+ * This does not "trap" focus inside the boundary, it only loops it when
15
+ * tabbing. If focus is moved outside the boundary programmatically or by
16
+ * pointer, it will not be moved back.
17
+ *
18
+ * - Links (`<a>` elements), are not considered tabbable for the purpose of looping.
19
+ * - Hidden inputs (i.e. `<input type="hidden">`) are not considered tabbable.
20
+ * - Elements that are `display: none` or `visibility: hidden` are not considered tabbable.
21
+ * - Elements with `tabIndex < 0` are not considered tabbable.
22
+ * @defaultValue false
23
+ */
24
+ loop?: boolean;
25
+ /**
26
+ * When `true`, focus cannot escape the focus boundary via keyboard,
27
+ * pointer, or a programmatic focus.
28
+ * @defaultValue false
29
+ */
30
+ trapped?: boolean;
31
+ /**
32
+ * Event handler called when auto-focusing on mount.
33
+ * Can be prevented.
34
+ */
35
+ onMountAutoFocus?: (event: Event) => void;
36
+ /**
37
+ * Event handler called when auto-focusing on unmount.
38
+ * Can be prevented.
39
+ */
40
+ onUnmountAutoFocus?: (event: Event) => void;
41
+ }
42
+ declare const FocusBoundary: React.ForwardRefExoticComponent<FocusBoundaryProps & React.RefAttributes<HTMLDivElement>>;
43
+ export { FocusBoundary };
44
+ export type { FocusBoundaryProps };
@@ -0,0 +1,329 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { forwardRef, useCallback, useEffect, useRef, useState, } from "react";
13
+ import { Slot } from "../../slot/Slot.js";
14
+ import { useMergeRefs } from "../../util/hooks/index.js";
15
+ import { useEventCallback } from "../hooks/useEventCallback.js";
16
+ const AUTOFOCUS_ON_MOUNT = "focusBoundary.autoFocusOnMount";
17
+ const AUTOFOCUS_ON_UNMOUNT = "focusBoundary.autoFocusOnUnmount";
18
+ const EVENT_OPTIONS = { bubbles: false, cancelable: true };
19
+ const FocusBoundary = forwardRef((_a, forwardedRef) => {
20
+ var { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp } = _a, restProps = __rest(_a, ["loop", "trapped", "onMountAutoFocus", "onUnmountAutoFocus"]);
21
+ const onMountAutoFocus = useEventCallback(onMountAutoFocusProp);
22
+ const onUnmountAutoFocus = useEventCallback(onUnmountAutoFocusProp);
23
+ const lastFocusedElementRef = useRef(null);
24
+ const [container, setContainer] = useState(null);
25
+ const mergedRefs = useMergeRefs(forwardedRef, setContainer);
26
+ const focusBoundary = useRef({
27
+ paused: false,
28
+ pause() {
29
+ this.paused = true;
30
+ },
31
+ resume() {
32
+ this.paused = false;
33
+ },
34
+ }).current;
35
+ /* Handles trapped state */
36
+ useEffect(() => {
37
+ if (!trapped || !container) {
38
+ return;
39
+ }
40
+ function handleFocusIn(event) {
41
+ if (focusBoundary.paused || container === null) {
42
+ return;
43
+ }
44
+ const target = event.target;
45
+ if (container.contains(target)) {
46
+ lastFocusedElementRef.current = target;
47
+ }
48
+ else {
49
+ focus(lastFocusedElementRef.current, { select: true });
50
+ }
51
+ }
52
+ function handleFocusOut(event) {
53
+ if (focusBoundary.paused || container === null) {
54
+ return;
55
+ }
56
+ const relatedTarget = event.relatedTarget;
57
+ /*
58
+ * `focusout` event with a `null` `relatedTarget` will happen in a few known cases:
59
+ * 1. When the user switches app/tabs/windows/the browser itself loses focus.
60
+ * 2. In Google Chrome, when the focused element is removed from the DOM.
61
+ * 3. When clicking on an element that cannot receive focus.
62
+ *
63
+ * We let the browser do its thing here because:
64
+ * 1. The browser already keeps a memory of what's focused for when the page gets refocused.
65
+ * 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it
66
+ * throws the CPU to 100%, so we avoid doing anything for this reason here too.
67
+ */
68
+ if (relatedTarget === null) {
69
+ return;
70
+ }
71
+ /*
72
+ * If the focus has moved to an element outside the container, we move focus to the last valid focused element inside.
73
+ * This makes sure to "trap" focus inside the container.
74
+ * We handle focus on focusout instead of focusin to avoid elements recieving focusin events
75
+ * when they are not supposed to (like when clicking on elements outside the container
76
+ */
77
+ if (!container.contains(relatedTarget)) {
78
+ focus(lastFocusedElementRef.current, { select: true });
79
+ }
80
+ }
81
+ /**
82
+ * When the currently focused element is removed from the DOM, browsers move focus
83
+ * to the document.body. In this case, we move focus to the container
84
+ * to keep focus trapped correctly instead.
85
+ */
86
+ const handleMutations = (mutations) => {
87
+ if (document.activeElement !== document.body) {
88
+ return;
89
+ }
90
+ if (mutations.some((mutation) => mutation.removedNodes.length > 0)) {
91
+ focus(container);
92
+ }
93
+ };
94
+ document.addEventListener("focusin", handleFocusIn);
95
+ document.addEventListener("focusout", handleFocusOut);
96
+ const observer = new MutationObserver(handleMutations);
97
+ observer.observe(container, { childList: true, subtree: true });
98
+ return () => {
99
+ document.removeEventListener("focusin", handleFocusIn);
100
+ document.removeEventListener("focusout", handleFocusOut);
101
+ observer.disconnect();
102
+ };
103
+ }, [trapped, container, focusBoundary.paused]);
104
+ /* Handles autofocus on mount and unmount */
105
+ useEffect(() => {
106
+ if (!container) {
107
+ return;
108
+ }
109
+ focusBoundarysStack.add(focusBoundary);
110
+ const initialFocusedElement = document.activeElement;
111
+ const containsActiveElement = initialFocusedElement && container.contains(initialFocusedElement);
112
+ /*
113
+ * We only autofocus on mount if container does not contain active element.
114
+ * If container has an element with `autoFocus` attribute, browser will
115
+ * have already moved focus there before this effect runs.
116
+ */
117
+ if (!containsActiveElement) {
118
+ const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
119
+ container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
120
+ container.dispatchEvent(mountEvent);
121
+ /* If consumer does not manually prevent event and handle focus themselves */
122
+ if (!mountEvent.defaultPrevented) {
123
+ /**
124
+ * Attempts focusing the first element in a list of candidates.
125
+ * Stops when focus has actually moved.
126
+ */
127
+ const candidates = removeLinks(getTabbableCandidates(container));
128
+ const previouslyFocusedElement = document.activeElement;
129
+ for (const candidate of candidates) {
130
+ focus(candidate, { select: true });
131
+ if (document.activeElement !== previouslyFocusedElement) {
132
+ break;
133
+ }
134
+ }
135
+ /* focusFirst might not find any candidates, so we fall back to focusing container */
136
+ if (document.activeElement === initialFocusedElement) {
137
+ focus(container);
138
+ }
139
+ }
140
+ }
141
+ return () => {
142
+ container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
143
+ /**
144
+ * https://github.com/facebook/react/issues/17894
145
+ * We delay to next tick to avoid issues with React's event system
146
+ * where calling `focus` inside a effect cleanup causes React to not call onFocus handlers.
147
+ */
148
+ setTimeout(() => {
149
+ const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
150
+ container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
151
+ container.dispatchEvent(unmountEvent);
152
+ /* If consumer does not manually prevent event and handle focus themselves */
153
+ if (!unmountEvent.defaultPrevented) {
154
+ /* To avoid CPU-spikes on Chrome, we make sure element is still connected to the DOM. */
155
+ focus((initialFocusedElement === null || initialFocusedElement === void 0 ? void 0 : initialFocusedElement.isConnected)
156
+ ? initialFocusedElement
157
+ : document.body, {
158
+ select: true,
159
+ });
160
+ }
161
+ /* Since this is inside a cleanup, we need to instantly remove the listener ourselves */
162
+ container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
163
+ focusBoundarysStack.remove(focusBoundary);
164
+ }, 0);
165
+ };
166
+ }, [container, onMountAutoFocus, onUnmountAutoFocus, focusBoundary]);
167
+ /* Takes care of looping focus */
168
+ const handleKeyDown = useCallback((event) => {
169
+ if ((!loop && !trapped) || focusBoundary.paused) {
170
+ return;
171
+ }
172
+ const isTabKey = event.key === "Tab" &&
173
+ !event.altKey &&
174
+ !event.ctrlKey &&
175
+ !event.metaKey;
176
+ const focusedElement = document.activeElement;
177
+ if (isTabKey && focusedElement) {
178
+ const containerTarget = event.currentTarget;
179
+ const [first, last] = getTabbableEdges(containerTarget);
180
+ /* We can only wrap focus if we have tabbable edges */
181
+ if (!(first && last)) {
182
+ /*
183
+ * No need to do anything if active element is the expected focus-target
184
+ * Case: No tabbable elements, focus should stay on container. If we don't preventDefault, the container will lose focus
185
+ * and potentially lose controll of focus to browser (like focusing address bar).
186
+ */
187
+ if (focusedElement === containerTarget) {
188
+ event.preventDefault();
189
+ }
190
+ return;
191
+ }
192
+ /**
193
+ * Since we are either trapped + looping, or one of them we will do nothing when trapped and focus first element when looping.
194
+ */
195
+ if (!event.shiftKey && focusedElement === last) {
196
+ event.preventDefault();
197
+ if (loop) {
198
+ focus(first, { select: true });
199
+ }
200
+ }
201
+ else if (event.shiftKey && focusedElement === first) {
202
+ event.preventDefault();
203
+ if (loop) {
204
+ focus(last, { select: true });
205
+ }
206
+ }
207
+ }
208
+ }, [loop, trapped, focusBoundary.paused]);
209
+ return (React.createElement(Slot, Object.assign({ tabIndex: -1 }, restProps, { ref: mergedRefs, onKeyDown: handleKeyDown })));
210
+ });
211
+ /* ---------------------------- FocusBoundary utils ---------------------------- */
212
+ /**
213
+ * Returns the first and last tabbable elements inside a container as a tuple.
214
+ */
215
+ function getTabbableEdges(container) {
216
+ const candidates = getTabbableCandidates(container);
217
+ return [
218
+ findFirstVisible(candidates, container),
219
+ findFirstVisible(candidates.reverse(), container),
220
+ ];
221
+ }
222
+ /**
223
+ * Returns a list of potential tabbable candidates.
224
+ * We do not take into account tabindex values.
225
+ *
226
+ * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
227
+ * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
228
+ */
229
+ function getTabbableCandidates(container) {
230
+ const nodes = [];
231
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
232
+ acceptNode: (node) => {
233
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
234
+ if (node.disabled || node.hidden || isHiddenInput) {
235
+ return NodeFilter.FILTER_SKIP;
236
+ }
237
+ /**
238
+ * `.tabIndex` is not the same as the `tabindex` attribute. It works on the
239
+ * runtime's understanding of tabbability, so this automatically accounts
240
+ * for any kind of element that could be tabbed to.
241
+ */
242
+ return node.tabIndex >= 0
243
+ ? NodeFilter.FILTER_ACCEPT
244
+ : NodeFilter.FILTER_SKIP;
245
+ },
246
+ });
247
+ while (walker.nextNode()) {
248
+ nodes.push(walker.currentNode);
249
+ }
250
+ return nodes;
251
+ }
252
+ /**
253
+ * Returns the first visible element in a list.
254
+ * NOTE: Only checks visibility up to the `container`.
255
+ */
256
+ function findFirstVisible(elements, container) {
257
+ for (const element of elements) {
258
+ if (!isHidden(element, { upTo: container })) {
259
+ return element;
260
+ }
261
+ }
262
+ }
263
+ function isHidden(node, { upTo }) {
264
+ if (getComputedStyle(node).visibility === "hidden") {
265
+ return true;
266
+ }
267
+ while (node) {
268
+ /* we stop at `upTo` */
269
+ if (upTo !== undefined && node === upTo) {
270
+ return false;
271
+ }
272
+ if (getComputedStyle(node).display === "none") {
273
+ return true;
274
+ }
275
+ node = node.parentElement;
276
+ }
277
+ return false;
278
+ }
279
+ function focus(element, { select = false } = {}) {
280
+ if (!(element === null || element === void 0 ? void 0 : element.focus)) {
281
+ return;
282
+ }
283
+ const previouslyFocusedElement = document.activeElement;
284
+ /* Prevent scrolling on focus, to minimize jarring transitions */
285
+ element.focus({ preventScroll: true });
286
+ if (!select) {
287
+ return;
288
+ }
289
+ /* By default, inputs that gets focus should select its contents */
290
+ if (element !== previouslyFocusedElement &&
291
+ element instanceof HTMLInputElement &&
292
+ "select" in element)
293
+ element.select();
294
+ }
295
+ const focusBoundarysStack = createFocusBoundarysStack();
296
+ function createFocusBoundarysStack() {
297
+ /* A stack of focus-boundaries, with the active one at the top */
298
+ let stack = [];
299
+ return {
300
+ add(focusBoundary) {
301
+ /* Pause the currently active focus-boundary (at the top of the stack) */
302
+ const activeFocusBoundary = stack[0];
303
+ if (focusBoundary !== activeFocusBoundary) {
304
+ activeFocusBoundary === null || activeFocusBoundary === void 0 ? void 0 : activeFocusBoundary.pause();
305
+ }
306
+ /* remove in case it already exists (because we'll re-add it at the top of the stack) */
307
+ stack = arrayRemove(stack, focusBoundary);
308
+ stack.unshift(focusBoundary);
309
+ },
310
+ remove(focusBoundary) {
311
+ var _a;
312
+ stack = arrayRemove(stack, focusBoundary);
313
+ (_a = stack[0]) === null || _a === void 0 ? void 0 : _a.resume();
314
+ },
315
+ };
316
+ }
317
+ function arrayRemove(array, item) {
318
+ const updatedArray = [...array];
319
+ const index = updatedArray.indexOf(item);
320
+ if (index !== -1) {
321
+ updatedArray.splice(index, 1);
322
+ }
323
+ return updatedArray;
324
+ }
325
+ function removeLinks(items) {
326
+ return items.filter((item) => item.tagName !== "A");
327
+ }
328
+ export { FocusBoundary };
329
+ //# sourceMappingURL=FocusBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusBoundary.js","sourceRoot":"","sources":["../../../src/util/focus-boundary/FocusBoundary.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ type FocusGuardsProps = {
3
+ children: React.ReactNode;
4
+ startRef?: React.RefObject<HTMLSpanElement>;
5
+ endRef?: React.RefObject<HTMLSpanElement>;
6
+ };
7
+ declare function FocusGuards({ children, startRef: forwardedStartRef, endRef: forwardedEndRef, }: FocusGuardsProps): React.JSX.Element;
8
+ export { FocusGuards };
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { useMergeRefs } from "../hooks/index.js";
3
+ const visuallyHidden = {
4
+ clip: "rect(0 0 0 0)",
5
+ overflow: "hidden",
6
+ whiteSpace: "nowrap",
7
+ position: "fixed",
8
+ top: 0,
9
+ left: 0,
10
+ border: 0,
11
+ padding: 0,
12
+ width: 1,
13
+ height: 1,
14
+ margin: -1,
15
+ };
16
+ function FocusGuards({ children, startRef: forwardedStartRef, endRef: forwardedEndRef, }) {
17
+ const startRef = React.useRef(null);
18
+ const endRef = React.useRef(null);
19
+ const startRefCombined = useMergeRefs(startRef, forwardedStartRef);
20
+ const endRefCombined = useMergeRefs(endRef, forwardedEndRef);
21
+ return (React.createElement(React.Fragment, null,
22
+ React.createElement("span", { ref: startRefCombined,
23
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
24
+ tabIndex: 0, style: visuallyHidden, "data-aksel-focus-guard": "" }),
25
+ children,
26
+ React.createElement("span", { ref: endRefCombined,
27
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
28
+ tabIndex: 0, style: visuallyHidden, "data-aksel-focus-guard": "" })));
29
+ }
30
+ export { FocusGuards };
31
+ //# sourceMappingURL=FocusGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusGuards.js","sourceRoot":"","sources":["../../../src/util/focus-guards/FocusGuards.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,cAAc,GAAwB;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,OAAO;IACjB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAQF,SAAS,WAAW,CAAC,EACnB,QAAQ,EACR,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe,GACN;IACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAyB,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAyB,IAAI,CAAC,CAAC;IAE1D,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE7D,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ;QACb,8BACE,GAAG,EAAE,gBAAgB;YACrB,+DAA+D;YAC/D,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,cAAc,4BACE,EAAE,GACzB;QACD,QAAQ;QACT,8BACE,GAAG,EAAE,cAAc;YACnB,+DAA+D;YAC/D,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,cAAc,4BACE,EAAE,GACzB,CACa,CAClB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEventCallback.js","sourceRoot":"","sources":["../../../src/util/hooks/useEventCallback.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,6EAA6E;AAC7E,MAAM,kBAAkB,GAAI,KAAa,CACvC,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;AAEF,MAAM,sBAAsB;AAC1B,4CAA4C;AAC5C,kBAAkB;IAClB,8EAA8E;IAC9E,kBAAkB,KAAK,eAAe;IACpC,CAAC,CAAC,kBAAkB;IACpB,CAAC,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAaxB;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuB;IAEvB,MAAM,MAAM,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC,OAAoB,CAAC;IACzE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,QAAQ,uDAAG,GAAG,IAAI,CAAC,CAAA,EAAA;QAC1D,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useClientLayoutEffect } from "../../../util/index.js";
2
+ import { useClientLayoutEffect } from "./useClientLayoutEffect.js";
3
3
  import { useRefWithInit } from "./useRefWithInit.js";
4
4
  export function useLatestRef(value) {
5
5
  const latest = useRefWithInit(createLatestRef, value).current;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLatestRef.js","sourceRoot":"","sources":["../../../src/util/hooks/useLatestRef.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,UAAU,YAAY,CAAI,KAAQ;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,OAAQ,CAAC;IAE/D,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IAEpB,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAI,KAAQ;IAClC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRefWithInit.js","sourceRoot":"","sources":["../../../src/util/hooks/useRefWithInit.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,aAAa,GAAG,EAAE,CAAC;AAUzB,SAAS,cAAc,CAAC,IAAgC,EAAE,OAAiB;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,aAAoB,CAAC,CAAC;IAEzC,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare class Timeout {
2
+ static create(): Timeout;
3
+ currentId: number;
4
+ /**
5
+ * Executes `fn` after `delay`, clearing any previously scheduled call.
6
+ */
7
+ start(delay: number, fn: () => void): void;
8
+ isStarted(): boolean;
9
+ clear: () => void;
10
+ disposeEffect: () => () => void;
11
+ }
12
+ /**
13
+ * A `setTimeout` with automatic cleanup and guard.
14
+ */
15
+ declare function useTimeout(): Timeout;
16
+ export { Timeout, useTimeout };