@btst/stack 1.5.2 → 1.7.0

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 (241) hide show
  1. package/dist/api/index.cjs +7 -1
  2. package/dist/api/index.d.cts +2 -2
  3. package/dist/api/index.d.mts +2 -2
  4. package/dist/api/index.d.ts +2 -2
  5. package/dist/api/index.mjs +7 -1
  6. package/dist/client/index.d.cts +1 -1
  7. package/dist/client/index.d.mts +1 -1
  8. package/dist/client/index.d.ts +1 -1
  9. package/dist/index.d.cts +1 -1
  10. package/dist/index.d.mts +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.0/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs +68 -0
  13. package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.0/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.mjs +60 -0
  14. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.cjs +3937 -0
  15. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.mjs +3907 -0
  16. package/dist/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.cjs +30 -0
  17. package/dist/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.mjs +28 -0
  18. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/sortable/dist/sortable.esm.cjs +675 -0
  19. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/sortable/dist/sortable.esm.mjs +661 -0
  20. package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.0/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs +358 -0
  21. package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.0/node_modules/@dnd-kit/utilities/dist/utilities.esm.mjs +332 -0
  22. package/dist/node_modules/.pnpm/@radix-ui_react-tabs@1.1.13_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_865f042350eb43f3338b0fffb33f6246/node_modules/@radix-ui/react-tabs/dist/index.cjs +211 -0
  23. package/dist/node_modules/.pnpm/@radix-ui_react-tabs@1.1.13_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_865f042350eb43f3338b0fffb33f6246/node_modules/@radix-ui/react-tabs/dist/index.mjs +188 -0
  24. package/dist/packages/better-stack/src/plugins/cms/api/plugin.cjs +3 -2
  25. package/dist/packages/better-stack/src/plugins/cms/api/plugin.mjs +3 -2
  26. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.cjs +15 -15
  27. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.mjs +16 -16
  28. package/dist/packages/better-stack/src/plugins/form-builder/api/plugin.cjs +588 -0
  29. package/dist/packages/better-stack/src/plugins/form-builder/api/plugin.mjs +586 -0
  30. package/dist/packages/better-stack/src/plugins/form-builder/client/components/forms/form-renderer.cjs +131 -0
  31. package/dist/packages/better-stack/src/plugins/form-builder/client/components/forms/form-renderer.mjs +129 -0
  32. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-builder-skeleton.cjs +32 -0
  33. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-builder-skeleton.mjs +30 -0
  34. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-list-skeleton.cjs +21 -0
  35. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-list-skeleton.mjs +19 -0
  36. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/submissions-skeleton.cjs +34 -0
  37. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/submissions-skeleton.mjs +32 -0
  38. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/404-page.cjs +20 -0
  39. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/404-page.mjs +18 -0
  40. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.cjs +19 -0
  41. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.cjs +186 -0
  42. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.mjs +184 -0
  43. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.mjs +17 -0
  44. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.cjs +19 -0
  45. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.cjs +165 -0
  46. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.mjs +163 -0
  47. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.mjs +17 -0
  48. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.cjs +19 -0
  49. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.cjs +177 -0
  50. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.mjs +175 -0
  51. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.mjs +17 -0
  52. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/default-error.cjs +17 -0
  53. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/default-error.mjs +15 -0
  54. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/empty-state.cjs +16 -0
  55. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/empty-state.mjs +14 -0
  56. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/page-wrapper.cjs +27 -0
  57. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/page-wrapper.mjs +25 -0
  58. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/pagination.cjs +39 -0
  59. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/pagination.mjs +37 -0
  60. package/dist/packages/better-stack/src/plugins/form-builder/client/hooks/form-builder-hooks.cjs +551 -0
  61. package/dist/packages/better-stack/src/plugins/form-builder/client/hooks/form-builder-hooks.mjs +537 -0
  62. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-common.cjs +36 -0
  63. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-common.mjs +34 -0
  64. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-editor.cjs +19 -0
  65. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-editor.mjs +17 -0
  66. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-list.cjs +21 -0
  67. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-list.mjs +19 -0
  68. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-submissions.cjs +19 -0
  69. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-submissions.mjs +17 -0
  70. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-toasts.cjs +14 -0
  71. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-toasts.mjs +12 -0
  72. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/index.cjs +17 -0
  73. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/index.mjs +15 -0
  74. package/dist/packages/better-stack/src/plugins/form-builder/client/plugin.cjs +278 -0
  75. package/dist/packages/better-stack/src/plugins/form-builder/client/plugin.mjs +276 -0
  76. package/dist/packages/better-stack/src/plugins/form-builder/db.cjs +99 -0
  77. package/dist/packages/better-stack/src/plugins/form-builder/db.mjs +97 -0
  78. package/dist/packages/better-stack/src/plugins/form-builder/schemas.cjs +82 -0
  79. package/dist/packages/better-stack/src/plugins/form-builder/schemas.mjs +74 -0
  80. package/dist/packages/better-stack/src/plugins/form-builder/utils.cjs +37 -0
  81. package/dist/packages/better-stack/src/plugins/form-builder/utils.mjs +29 -0
  82. package/dist/packages/better-stack/src/plugins/open-api/api/generator.cjs +300 -0
  83. package/dist/packages/better-stack/src/plugins/open-api/api/generator.mjs +284 -0
  84. package/dist/packages/better-stack/src/plugins/open-api/api/plugin.cjs +115 -0
  85. package/dist/packages/better-stack/src/plugins/open-api/api/plugin.mjs +113 -0
  86. package/dist/packages/better-stack/src/plugins/open-api/db.cjs +7 -0
  87. package/dist/packages/better-stack/src/plugins/open-api/db.mjs +5 -0
  88. package/dist/packages/better-stack/src/plugins/open-api/logo.cjs +8 -0
  89. package/dist/packages/better-stack/src/plugins/open-api/logo.mjs +6 -0
  90. package/dist/packages/ui/src/components/auto-form/index.cjs +2 -12
  91. package/dist/packages/ui/src/components/auto-form/index.mjs +2 -9
  92. package/dist/packages/ui/src/components/auto-form/stepped-auto-form.cjs +377 -0
  93. package/dist/packages/ui/src/components/auto-form/stepped-auto-form.mjs +368 -0
  94. package/dist/packages/ui/src/components/auto-form/utils.cjs +1 -56
  95. package/dist/packages/ui/src/components/auto-form/utils.mjs +2 -56
  96. package/dist/packages/ui/src/components/form-builder/canvas.cjs +111 -0
  97. package/dist/packages/ui/src/components/form-builder/canvas.mjs +109 -0
  98. package/dist/packages/ui/src/components/form-builder/components/index.cjs +570 -0
  99. package/dist/packages/ui/src/components/form-builder/components/index.mjs +553 -0
  100. package/dist/packages/ui/src/components/form-builder/edit-field-dialog.cjs +131 -0
  101. package/dist/packages/ui/src/components/form-builder/edit-field-dialog.mjs +129 -0
  102. package/dist/packages/ui/src/components/form-builder/form-preview.cjs +73 -0
  103. package/dist/packages/ui/src/components/form-builder/form-preview.mjs +71 -0
  104. package/dist/packages/ui/src/components/form-builder/index.cjs +353 -0
  105. package/dist/packages/ui/src/components/form-builder/index.mjs +344 -0
  106. package/dist/packages/ui/src/components/form-builder/nested-field-editor-dialog.cjs +263 -0
  107. package/dist/packages/ui/src/components/form-builder/nested-field-editor-dialog.mjs +261 -0
  108. package/dist/packages/ui/src/components/form-builder/palette.cjs +52 -0
  109. package/dist/packages/ui/src/components/form-builder/palette.mjs +49 -0
  110. package/dist/packages/ui/src/components/form-builder/schema-utils.cjs +120 -0
  111. package/dist/packages/ui/src/components/form-builder/schema-utils.mjs +114 -0
  112. package/dist/packages/ui/src/components/form-builder/sortable-field.cjs +151 -0
  113. package/dist/packages/ui/src/components/form-builder/sortable-field.mjs +148 -0
  114. package/dist/packages/ui/src/components/form-builder/step-tabs.cjs +180 -0
  115. package/dist/packages/ui/src/components/form-builder/step-tabs.mjs +178 -0
  116. package/dist/packages/ui/src/components/form-builder/types.cjs +7 -0
  117. package/dist/packages/ui/src/components/form-builder/types.mjs +5 -0
  118. package/dist/packages/ui/src/components/form-builder/validation-schemas.cjs +67 -0
  119. package/dist/packages/ui/src/components/form-builder/validation-schemas.mjs +56 -0
  120. package/dist/packages/ui/src/components/tabs.cjs +70 -0
  121. package/dist/packages/ui/src/components/tabs.mjs +65 -0
  122. package/dist/packages/ui/src/lib/schema-converter.cjs +130 -0
  123. package/dist/packages/ui/src/lib/schema-converter.mjs +124 -0
  124. package/dist/plugins/api/index.d.cts +2 -2
  125. package/dist/plugins/api/index.d.mts +2 -2
  126. package/dist/plugins/api/index.d.ts +2 -2
  127. package/dist/plugins/blog/api/index.d.cts +1 -1
  128. package/dist/plugins/blog/api/index.d.mts +1 -1
  129. package/dist/plugins/blog/api/index.d.ts +1 -1
  130. package/dist/plugins/blog/client/hooks/index.d.cts +2 -2
  131. package/dist/plugins/blog/client/hooks/index.d.mts +2 -2
  132. package/dist/plugins/blog/client/hooks/index.d.ts +2 -2
  133. package/dist/plugins/blog/client/index.d.cts +1 -1
  134. package/dist/plugins/blog/client/index.d.mts +1 -1
  135. package/dist/plugins/blog/client/index.d.ts +1 -1
  136. package/dist/plugins/blog/query-keys.d.cts +2 -2
  137. package/dist/plugins/blog/query-keys.d.mts +2 -2
  138. package/dist/plugins/blog/query-keys.d.ts +2 -2
  139. package/dist/plugins/client/index.d.cts +2 -2
  140. package/dist/plugins/client/index.d.mts +2 -2
  141. package/dist/plugins/client/index.d.ts +2 -2
  142. package/dist/plugins/cms/client/index.cjs +6 -0
  143. package/dist/plugins/cms/client/index.d.cts +6 -113
  144. package/dist/plugins/cms/client/index.d.mts +6 -113
  145. package/dist/plugins/cms/client/index.d.ts +6 -113
  146. package/dist/plugins/cms/client/index.mjs +1 -0
  147. package/dist/plugins/form-builder/api/index.cjs +7 -0
  148. package/dist/plugins/form-builder/api/index.d.cts +141 -0
  149. package/dist/plugins/form-builder/api/index.d.mts +141 -0
  150. package/dist/plugins/form-builder/api/index.d.ts +141 -0
  151. package/dist/plugins/form-builder/api/index.mjs +1 -0
  152. package/dist/plugins/form-builder/client/components/index.cjs +29 -0
  153. package/dist/plugins/form-builder/client/components/index.d.cts +93 -0
  154. package/dist/plugins/form-builder/client/components/index.d.mts +93 -0
  155. package/dist/plugins/form-builder/client/components/index.d.ts +93 -0
  156. package/dist/plugins/form-builder/client/components/index.mjs +18 -0
  157. package/dist/plugins/form-builder/client/hooks/index.cjs +19 -0
  158. package/dist/plugins/form-builder/client/hooks/index.d.cts +154 -0
  159. package/dist/plugins/form-builder/client/hooks/index.d.mts +154 -0
  160. package/dist/plugins/form-builder/client/hooks/index.d.ts +154 -0
  161. package/dist/plugins/form-builder/client/hooks/index.mjs +1 -0
  162. package/dist/plugins/form-builder/client/index.cjs +13 -0
  163. package/dist/plugins/form-builder/client/index.d.cts +381 -0
  164. package/dist/plugins/form-builder/client/index.d.mts +381 -0
  165. package/dist/plugins/form-builder/client/index.d.ts +381 -0
  166. package/dist/plugins/form-builder/client/index.mjs +2 -0
  167. package/dist/plugins/form-builder/client.css +3 -0
  168. package/dist/plugins/form-builder/query-keys.cjs +143 -0
  169. package/dist/plugins/form-builder/query-keys.d.cts +74 -0
  170. package/dist/plugins/form-builder/query-keys.d.mts +74 -0
  171. package/dist/plugins/form-builder/query-keys.d.ts +74 -0
  172. package/dist/plugins/form-builder/query-keys.mjs +141 -0
  173. package/dist/plugins/form-builder/style.css +19 -0
  174. package/dist/plugins/open-api/api/index.cjs +9 -0
  175. package/dist/plugins/open-api/api/index.d.cts +95 -0
  176. package/dist/plugins/open-api/api/index.d.mts +95 -0
  177. package/dist/plugins/open-api/api/index.d.ts +95 -0
  178. package/dist/plugins/open-api/api/index.mjs +2 -0
  179. package/dist/shared/stack.AX5nZ6A3.d.cts +86 -0
  180. package/dist/shared/stack.AX5nZ6A3.d.mts +86 -0
  181. package/dist/shared/stack.AX5nZ6A3.d.ts +86 -0
  182. package/dist/shared/stack.BIh2AXaW.d.cts +123 -0
  183. package/dist/shared/stack.BIh2AXaW.d.mts +123 -0
  184. package/dist/shared/stack.BIh2AXaW.d.ts +123 -0
  185. package/dist/shared/{stack.ByOugz9d.d.cts → stack.CSce37mX.d.cts} +15 -2
  186. package/dist/shared/{stack.ByOugz9d.d.mts → stack.CSce37mX.d.mts} +15 -2
  187. package/dist/shared/{stack.ByOugz9d.d.ts → stack.CSce37mX.d.ts} +15 -2
  188. package/dist/shared/stack.DzH_wcvr.d.cts +195 -0
  189. package/dist/shared/stack.DzH_wcvr.d.mts +195 -0
  190. package/dist/shared/stack.DzH_wcvr.d.ts +195 -0
  191. package/package.json +67 -1
  192. package/src/api/index.ts +14 -2
  193. package/src/plugins/cms/api/plugin.ts +9 -4
  194. package/src/plugins/cms/client/components/forms/content-form.tsx +23 -25
  195. package/src/plugins/cms/client/index.ts +11 -0
  196. package/src/plugins/form-builder/api/index.ts +1 -0
  197. package/src/plugins/form-builder/api/plugin.ts +776 -0
  198. package/src/plugins/form-builder/client/components/forms/form-renderer.tsx +253 -0
  199. package/src/plugins/form-builder/client/components/index.tsx +24 -0
  200. package/src/plugins/form-builder/client/components/loading/form-builder-skeleton.tsx +42 -0
  201. package/src/plugins/form-builder/client/components/loading/form-list-skeleton.tsx +25 -0
  202. package/src/plugins/form-builder/client/components/loading/index.tsx +3 -0
  203. package/src/plugins/form-builder/client/components/loading/submissions-skeleton.tsx +40 -0
  204. package/src/plugins/form-builder/client/components/pages/404-page.tsx +28 -0
  205. package/src/plugins/form-builder/client/components/pages/form-builder-page.internal.tsx +253 -0
  206. package/src/plugins/form-builder/client/components/pages/form-builder-page.tsx +26 -0
  207. package/src/plugins/form-builder/client/components/pages/form-list-page.internal.tsx +231 -0
  208. package/src/plugins/form-builder/client/components/pages/form-list-page.tsx +22 -0
  209. package/src/plugins/form-builder/client/components/pages/submissions-page.internal.tsx +268 -0
  210. package/src/plugins/form-builder/client/components/pages/submissions-page.tsx +26 -0
  211. package/src/plugins/form-builder/client/components/shared/default-error.tsx +30 -0
  212. package/src/plugins/form-builder/client/components/shared/empty-state.tsx +26 -0
  213. package/src/plugins/form-builder/client/components/shared/page-wrapper.tsx +32 -0
  214. package/src/plugins/form-builder/client/components/shared/pagination.tsx +52 -0
  215. package/src/plugins/form-builder/client/hooks/form-builder-hooks.tsx +799 -0
  216. package/src/plugins/form-builder/client/hooks/index.tsx +1 -0
  217. package/src/plugins/form-builder/client/index.ts +22 -0
  218. package/src/plugins/form-builder/client/localization/form-builder-common.ts +36 -0
  219. package/src/plugins/form-builder/client/localization/form-builder-editor.ts +18 -0
  220. package/src/plugins/form-builder/client/localization/form-builder-list.ts +17 -0
  221. package/src/plugins/form-builder/client/localization/form-builder-submissions.ts +17 -0
  222. package/src/plugins/form-builder/client/localization/form-builder-toasts.ts +10 -0
  223. package/src/plugins/form-builder/client/localization/index.ts +15 -0
  224. package/src/plugins/form-builder/client/overrides.ts +146 -0
  225. package/src/plugins/form-builder/client/plugin.tsx +488 -0
  226. package/src/plugins/form-builder/client.css +3 -0
  227. package/src/plugins/form-builder/db.ts +99 -0
  228. package/src/plugins/form-builder/query-keys.ts +198 -0
  229. package/src/plugins/form-builder/schemas.ts +122 -0
  230. package/src/plugins/form-builder/style.css +19 -0
  231. package/src/plugins/form-builder/types.ts +317 -0
  232. package/src/plugins/form-builder/utils.ts +63 -0
  233. package/src/plugins/open-api/api/generator.ts +433 -0
  234. package/src/plugins/open-api/api/index.ts +8 -0
  235. package/src/plugins/open-api/api/plugin.ts +243 -0
  236. package/src/plugins/open-api/db.ts +7 -0
  237. package/src/plugins/open-api/logo.ts +7 -0
  238. package/src/types.ts +15 -1
  239. package/dist/shared/{stack.DLhzx1-D.d.mts → stack.CcI4sYJP.d.cts} +1 -1
  240. package/dist/shared/{stack.DLhzx1-D.d.ts → stack.CcI4sYJP.d.mts} +1 -1
  241. package/dist/shared/{stack.DLhzx1-D.d.cts → stack.CcI4sYJP.d.ts} +1 -1
@@ -0,0 +1,358 @@
1
+ 'use strict';
2
+
3
+ const React = require('react');
4
+
5
+ function useCombinedRefs() {
6
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
7
+ refs[_key] = arguments[_key];
8
+ }
9
+
10
+ return React.useMemo(() => node => {
11
+ refs.forEach(ref => ref(node));
12
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ refs);
14
+ }
15
+
16
+ // https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js
17
+ const canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';
18
+
19
+ function isWindow(element) {
20
+ const elementString = Object.prototype.toString.call(element);
21
+ return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]
22
+ elementString === '[object global]';
23
+ }
24
+
25
+ function isNode(node) {
26
+ return 'nodeType' in node;
27
+ }
28
+
29
+ function getWindow(target) {
30
+ var _target$ownerDocument, _target$ownerDocument2;
31
+
32
+ if (!target) {
33
+ return window;
34
+ }
35
+
36
+ if (isWindow(target)) {
37
+ return target;
38
+ }
39
+
40
+ if (!isNode(target)) {
41
+ return window;
42
+ }
43
+
44
+ return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;
45
+ }
46
+
47
+ function isDocument(node) {
48
+ const {
49
+ Document
50
+ } = getWindow(node);
51
+ return node instanceof Document;
52
+ }
53
+
54
+ function isHTMLElement(node) {
55
+ if (isWindow(node)) {
56
+ return false;
57
+ }
58
+
59
+ return node instanceof getWindow(node).HTMLElement;
60
+ }
61
+
62
+ function isSVGElement(node) {
63
+ return node instanceof getWindow(node).SVGElement;
64
+ }
65
+
66
+ function getOwnerDocument(target) {
67
+ if (!target) {
68
+ return document;
69
+ }
70
+
71
+ if (isWindow(target)) {
72
+ return target.document;
73
+ }
74
+
75
+ if (!isNode(target)) {
76
+ return document;
77
+ }
78
+
79
+ if (isDocument(target)) {
80
+ return target;
81
+ }
82
+
83
+ if (isHTMLElement(target) || isSVGElement(target)) {
84
+ return target.ownerDocument;
85
+ }
86
+
87
+ return document;
88
+ }
89
+
90
+ /**
91
+ * A hook that resolves to useEffect on the server and useLayoutEffect on the client
92
+ * @param callback {function} Callback function that is invoked when the dependencies of the hook change
93
+ */
94
+
95
+ const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;
96
+
97
+ function useEvent(handler) {
98
+ const handlerRef = React.useRef(handler);
99
+ useIsomorphicLayoutEffect(() => {
100
+ handlerRef.current = handler;
101
+ });
102
+ return React.useCallback(function () {
103
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
104
+ args[_key] = arguments[_key];
105
+ }
106
+
107
+ return handlerRef.current == null ? void 0 : handlerRef.current(...args);
108
+ }, []);
109
+ }
110
+
111
+ function useInterval() {
112
+ const intervalRef = React.useRef(null);
113
+ const set = React.useCallback((listener, duration) => {
114
+ intervalRef.current = setInterval(listener, duration);
115
+ }, []);
116
+ const clear = React.useCallback(() => {
117
+ if (intervalRef.current !== null) {
118
+ clearInterval(intervalRef.current);
119
+ intervalRef.current = null;
120
+ }
121
+ }, []);
122
+ return [set, clear];
123
+ }
124
+
125
+ function useLatestValue(value, dependencies) {
126
+ if (dependencies === void 0) {
127
+ dependencies = [value];
128
+ }
129
+
130
+ const valueRef = React.useRef(value);
131
+ useIsomorphicLayoutEffect(() => {
132
+ if (valueRef.current !== value) {
133
+ valueRef.current = value;
134
+ }
135
+ }, dependencies);
136
+ return valueRef;
137
+ }
138
+
139
+ function useLazyMemo(callback, dependencies) {
140
+ const valueRef = React.useRef();
141
+ return React.useMemo(() => {
142
+ const newValue = callback(valueRef.current);
143
+ valueRef.current = newValue;
144
+ return newValue;
145
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
146
+ [...dependencies]);
147
+ }
148
+
149
+ function useNodeRef(onChange) {
150
+ const onChangeHandler = useEvent(onChange);
151
+ const node = React.useRef(null);
152
+ const setNodeRef = React.useCallback(element => {
153
+ if (element !== node.current) {
154
+ onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);
155
+ }
156
+
157
+ node.current = element;
158
+ }, //eslint-disable-next-line
159
+ []);
160
+ return [node, setNodeRef];
161
+ }
162
+
163
+ function usePrevious(value) {
164
+ const ref = React.useRef();
165
+ React.useEffect(() => {
166
+ ref.current = value;
167
+ }, [value]);
168
+ return ref.current;
169
+ }
170
+
171
+ let ids = {};
172
+ function useUniqueId(prefix, value) {
173
+ return React.useMemo(() => {
174
+ if (value) {
175
+ return value;
176
+ }
177
+
178
+ const id = ids[prefix] == null ? 0 : ids[prefix] + 1;
179
+ ids[prefix] = id;
180
+ return prefix + "-" + id;
181
+ }, [prefix, value]);
182
+ }
183
+
184
+ function createAdjustmentFn(modifier) {
185
+ return function (object) {
186
+ for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
187
+ adjustments[_key - 1] = arguments[_key];
188
+ }
189
+
190
+ return adjustments.reduce((accumulator, adjustment) => {
191
+ const entries = Object.entries(adjustment);
192
+
193
+ for (const [key, valueAdjustment] of entries) {
194
+ const value = accumulator[key];
195
+
196
+ if (value != null) {
197
+ accumulator[key] = value + modifier * valueAdjustment;
198
+ }
199
+ }
200
+
201
+ return accumulator;
202
+ }, { ...object
203
+ });
204
+ };
205
+ }
206
+
207
+ const add = /*#__PURE__*/createAdjustmentFn(1);
208
+ const subtract = /*#__PURE__*/createAdjustmentFn(-1);
209
+
210
+ function hasViewportRelativeCoordinates(event) {
211
+ return 'clientX' in event && 'clientY' in event;
212
+ }
213
+
214
+ function isKeyboardEvent(event) {
215
+ if (!event) {
216
+ return false;
217
+ }
218
+
219
+ const {
220
+ KeyboardEvent
221
+ } = getWindow(event.target);
222
+ return KeyboardEvent && event instanceof KeyboardEvent;
223
+ }
224
+
225
+ function isTouchEvent(event) {
226
+ if (!event) {
227
+ return false;
228
+ }
229
+
230
+ const {
231
+ TouchEvent
232
+ } = getWindow(event.target);
233
+ return TouchEvent && event instanceof TouchEvent;
234
+ }
235
+
236
+ /**
237
+ * Returns the normalized x and y coordinates for mouse and touch events.
238
+ */
239
+
240
+ function getEventCoordinates(event) {
241
+ if (isTouchEvent(event)) {
242
+ if (event.touches && event.touches.length) {
243
+ const {
244
+ clientX: x,
245
+ clientY: y
246
+ } = event.touches[0];
247
+ return {
248
+ x,
249
+ y
250
+ };
251
+ } else if (event.changedTouches && event.changedTouches.length) {
252
+ const {
253
+ clientX: x,
254
+ clientY: y
255
+ } = event.changedTouches[0];
256
+ return {
257
+ x,
258
+ y
259
+ };
260
+ }
261
+ }
262
+
263
+ if (hasViewportRelativeCoordinates(event)) {
264
+ return {
265
+ x: event.clientX,
266
+ y: event.clientY
267
+ };
268
+ }
269
+
270
+ return null;
271
+ }
272
+
273
+ const CSS = /*#__PURE__*/Object.freeze({
274
+ Translate: {
275
+ toString(transform) {
276
+ if (!transform) {
277
+ return;
278
+ }
279
+
280
+ const {
281
+ x,
282
+ y
283
+ } = transform;
284
+ return "translate3d(" + (x ? Math.round(x) : 0) + "px, " + (y ? Math.round(y) : 0) + "px, 0)";
285
+ }
286
+
287
+ },
288
+ Scale: {
289
+ toString(transform) {
290
+ if (!transform) {
291
+ return;
292
+ }
293
+
294
+ const {
295
+ scaleX,
296
+ scaleY
297
+ } = transform;
298
+ return "scaleX(" + scaleX + ") scaleY(" + scaleY + ")";
299
+ }
300
+
301
+ },
302
+ Transform: {
303
+ toString(transform) {
304
+ if (!transform) {
305
+ return;
306
+ }
307
+
308
+ return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');
309
+ }
310
+
311
+ },
312
+ Transition: {
313
+ toString(_ref) {
314
+ let {
315
+ property,
316
+ duration,
317
+ easing
318
+ } = _ref;
319
+ return property + " " + duration + "ms " + easing;
320
+ }
321
+
322
+ }
323
+ });
324
+
325
+ const SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';
326
+ function findFirstFocusableNode(element) {
327
+ if (element.matches(SELECTOR)) {
328
+ return element;
329
+ }
330
+
331
+ return element.querySelector(SELECTOR);
332
+ }
333
+
334
+ exports.CSS = CSS;
335
+ exports.add = add;
336
+ exports.canUseDOM = canUseDOM;
337
+ exports.findFirstFocusableNode = findFirstFocusableNode;
338
+ exports.getEventCoordinates = getEventCoordinates;
339
+ exports.getOwnerDocument = getOwnerDocument;
340
+ exports.getWindow = getWindow;
341
+ exports.hasViewportRelativeCoordinates = hasViewportRelativeCoordinates;
342
+ exports.isDocument = isDocument;
343
+ exports.isHTMLElement = isHTMLElement;
344
+ exports.isKeyboardEvent = isKeyboardEvent;
345
+ exports.isNode = isNode;
346
+ exports.isSVGElement = isSVGElement;
347
+ exports.isTouchEvent = isTouchEvent;
348
+ exports.isWindow = isWindow;
349
+ exports.subtract = subtract;
350
+ exports.useCombinedRefs = useCombinedRefs;
351
+ exports.useEvent = useEvent;
352
+ exports.useInterval = useInterval;
353
+ exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
354
+ exports.useLatestValue = useLatestValue;
355
+ exports.useLazyMemo = useLazyMemo;
356
+ exports.useNodeRef = useNodeRef;
357
+ exports.usePrevious = usePrevious;
358
+ exports.useUniqueId = useUniqueId;
@@ -0,0 +1,332 @@
1
+ import { useLayoutEffect, useEffect, useRef, useMemo, useCallback } from 'react';
2
+
3
+ function useCombinedRefs() {
4
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
5
+ refs[_key] = arguments[_key];
6
+ }
7
+
8
+ return useMemo(() => node => {
9
+ refs.forEach(ref => ref(node));
10
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
11
+ refs);
12
+ }
13
+
14
+ // https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js
15
+ const canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';
16
+
17
+ function isWindow(element) {
18
+ const elementString = Object.prototype.toString.call(element);
19
+ return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]
20
+ elementString === '[object global]';
21
+ }
22
+
23
+ function isNode(node) {
24
+ return 'nodeType' in node;
25
+ }
26
+
27
+ function getWindow(target) {
28
+ var _target$ownerDocument, _target$ownerDocument2;
29
+
30
+ if (!target) {
31
+ return window;
32
+ }
33
+
34
+ if (isWindow(target)) {
35
+ return target;
36
+ }
37
+
38
+ if (!isNode(target)) {
39
+ return window;
40
+ }
41
+
42
+ return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;
43
+ }
44
+
45
+ function isDocument(node) {
46
+ const {
47
+ Document
48
+ } = getWindow(node);
49
+ return node instanceof Document;
50
+ }
51
+
52
+ function isHTMLElement(node) {
53
+ if (isWindow(node)) {
54
+ return false;
55
+ }
56
+
57
+ return node instanceof getWindow(node).HTMLElement;
58
+ }
59
+
60
+ function isSVGElement(node) {
61
+ return node instanceof getWindow(node).SVGElement;
62
+ }
63
+
64
+ function getOwnerDocument(target) {
65
+ if (!target) {
66
+ return document;
67
+ }
68
+
69
+ if (isWindow(target)) {
70
+ return target.document;
71
+ }
72
+
73
+ if (!isNode(target)) {
74
+ return document;
75
+ }
76
+
77
+ if (isDocument(target)) {
78
+ return target;
79
+ }
80
+
81
+ if (isHTMLElement(target) || isSVGElement(target)) {
82
+ return target.ownerDocument;
83
+ }
84
+
85
+ return document;
86
+ }
87
+
88
+ /**
89
+ * A hook that resolves to useEffect on the server and useLayoutEffect on the client
90
+ * @param callback {function} Callback function that is invoked when the dependencies of the hook change
91
+ */
92
+
93
+ const useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;
94
+
95
+ function useEvent(handler) {
96
+ const handlerRef = useRef(handler);
97
+ useIsomorphicLayoutEffect(() => {
98
+ handlerRef.current = handler;
99
+ });
100
+ return useCallback(function () {
101
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
102
+ args[_key] = arguments[_key];
103
+ }
104
+
105
+ return handlerRef.current == null ? void 0 : handlerRef.current(...args);
106
+ }, []);
107
+ }
108
+
109
+ function useInterval() {
110
+ const intervalRef = useRef(null);
111
+ const set = useCallback((listener, duration) => {
112
+ intervalRef.current = setInterval(listener, duration);
113
+ }, []);
114
+ const clear = useCallback(() => {
115
+ if (intervalRef.current !== null) {
116
+ clearInterval(intervalRef.current);
117
+ intervalRef.current = null;
118
+ }
119
+ }, []);
120
+ return [set, clear];
121
+ }
122
+
123
+ function useLatestValue(value, dependencies) {
124
+ if (dependencies === void 0) {
125
+ dependencies = [value];
126
+ }
127
+
128
+ const valueRef = useRef(value);
129
+ useIsomorphicLayoutEffect(() => {
130
+ if (valueRef.current !== value) {
131
+ valueRef.current = value;
132
+ }
133
+ }, dependencies);
134
+ return valueRef;
135
+ }
136
+
137
+ function useLazyMemo(callback, dependencies) {
138
+ const valueRef = useRef();
139
+ return useMemo(() => {
140
+ const newValue = callback(valueRef.current);
141
+ valueRef.current = newValue;
142
+ return newValue;
143
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
144
+ [...dependencies]);
145
+ }
146
+
147
+ function useNodeRef(onChange) {
148
+ const onChangeHandler = useEvent(onChange);
149
+ const node = useRef(null);
150
+ const setNodeRef = useCallback(element => {
151
+ if (element !== node.current) {
152
+ onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);
153
+ }
154
+
155
+ node.current = element;
156
+ }, //eslint-disable-next-line
157
+ []);
158
+ return [node, setNodeRef];
159
+ }
160
+
161
+ function usePrevious(value) {
162
+ const ref = useRef();
163
+ useEffect(() => {
164
+ ref.current = value;
165
+ }, [value]);
166
+ return ref.current;
167
+ }
168
+
169
+ let ids = {};
170
+ function useUniqueId(prefix, value) {
171
+ return useMemo(() => {
172
+ if (value) {
173
+ return value;
174
+ }
175
+
176
+ const id = ids[prefix] == null ? 0 : ids[prefix] + 1;
177
+ ids[prefix] = id;
178
+ return prefix + "-" + id;
179
+ }, [prefix, value]);
180
+ }
181
+
182
+ function createAdjustmentFn(modifier) {
183
+ return function (object) {
184
+ for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
185
+ adjustments[_key - 1] = arguments[_key];
186
+ }
187
+
188
+ return adjustments.reduce((accumulator, adjustment) => {
189
+ const entries = Object.entries(adjustment);
190
+
191
+ for (const [key, valueAdjustment] of entries) {
192
+ const value = accumulator[key];
193
+
194
+ if (value != null) {
195
+ accumulator[key] = value + modifier * valueAdjustment;
196
+ }
197
+ }
198
+
199
+ return accumulator;
200
+ }, { ...object
201
+ });
202
+ };
203
+ }
204
+
205
+ const add = /*#__PURE__*/createAdjustmentFn(1);
206
+ const subtract = /*#__PURE__*/createAdjustmentFn(-1);
207
+
208
+ function hasViewportRelativeCoordinates(event) {
209
+ return 'clientX' in event && 'clientY' in event;
210
+ }
211
+
212
+ function isKeyboardEvent(event) {
213
+ if (!event) {
214
+ return false;
215
+ }
216
+
217
+ const {
218
+ KeyboardEvent
219
+ } = getWindow(event.target);
220
+ return KeyboardEvent && event instanceof KeyboardEvent;
221
+ }
222
+
223
+ function isTouchEvent(event) {
224
+ if (!event) {
225
+ return false;
226
+ }
227
+
228
+ const {
229
+ TouchEvent
230
+ } = getWindow(event.target);
231
+ return TouchEvent && event instanceof TouchEvent;
232
+ }
233
+
234
+ /**
235
+ * Returns the normalized x and y coordinates for mouse and touch events.
236
+ */
237
+
238
+ function getEventCoordinates(event) {
239
+ if (isTouchEvent(event)) {
240
+ if (event.touches && event.touches.length) {
241
+ const {
242
+ clientX: x,
243
+ clientY: y
244
+ } = event.touches[0];
245
+ return {
246
+ x,
247
+ y
248
+ };
249
+ } else if (event.changedTouches && event.changedTouches.length) {
250
+ const {
251
+ clientX: x,
252
+ clientY: y
253
+ } = event.changedTouches[0];
254
+ return {
255
+ x,
256
+ y
257
+ };
258
+ }
259
+ }
260
+
261
+ if (hasViewportRelativeCoordinates(event)) {
262
+ return {
263
+ x: event.clientX,
264
+ y: event.clientY
265
+ };
266
+ }
267
+
268
+ return null;
269
+ }
270
+
271
+ const CSS = /*#__PURE__*/Object.freeze({
272
+ Translate: {
273
+ toString(transform) {
274
+ if (!transform) {
275
+ return;
276
+ }
277
+
278
+ const {
279
+ x,
280
+ y
281
+ } = transform;
282
+ return "translate3d(" + (x ? Math.round(x) : 0) + "px, " + (y ? Math.round(y) : 0) + "px, 0)";
283
+ }
284
+
285
+ },
286
+ Scale: {
287
+ toString(transform) {
288
+ if (!transform) {
289
+ return;
290
+ }
291
+
292
+ const {
293
+ scaleX,
294
+ scaleY
295
+ } = transform;
296
+ return "scaleX(" + scaleX + ") scaleY(" + scaleY + ")";
297
+ }
298
+
299
+ },
300
+ Transform: {
301
+ toString(transform) {
302
+ if (!transform) {
303
+ return;
304
+ }
305
+
306
+ return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');
307
+ }
308
+
309
+ },
310
+ Transition: {
311
+ toString(_ref) {
312
+ let {
313
+ property,
314
+ duration,
315
+ easing
316
+ } = _ref;
317
+ return property + " " + duration + "ms " + easing;
318
+ }
319
+
320
+ }
321
+ });
322
+
323
+ const SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';
324
+ function findFirstFocusableNode(element) {
325
+ if (element.matches(SELECTOR)) {
326
+ return element;
327
+ }
328
+
329
+ return element.querySelector(SELECTOR);
330
+ }
331
+
332
+ export { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };