@salt-ds/lab 1.0.0-alpha.27 → 1.0.0-alpha.29

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 (186) hide show
  1. package/css/salt-lab.css +33 -309
  2. package/dist-cjs/color-chooser/ColorChooser.css.js +1 -1
  3. package/dist-cjs/color-chooser/ColorChooser.js +52 -55
  4. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  5. package/dist-cjs/index.js +4 -22
  6. package/dist-cjs/index.js.map +1 -1
  7. package/dist-cjs/layer-layout/LayerLayout.js +1 -2
  8. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  9. package/dist-cjs/overlay/Overlay.css.js +1 -1
  10. package/dist-cjs/overlay/Overlay.js +89 -60
  11. package/dist-cjs/overlay/Overlay.js.map +1 -1
  12. package/dist-cjs/overlay/OverlayContext.js +43 -0
  13. package/dist-cjs/overlay/OverlayContext.js.map +1 -0
  14. package/dist-cjs/overlay/OverlayPanel.js +64 -0
  15. package/dist-cjs/overlay/OverlayPanel.js.map +1 -0
  16. package/dist-cjs/overlay/OverlayPanelBase.js +65 -0
  17. package/dist-cjs/overlay/OverlayPanelBase.js.map +1 -0
  18. package/dist-cjs/overlay/OverlayTrigger.js +40 -0
  19. package/dist-cjs/overlay/OverlayTrigger.js.map +1 -0
  20. package/dist-es/color-chooser/ColorChooser.css.js +1 -1
  21. package/dist-es/color-chooser/ColorChooser.js +53 -56
  22. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  23. package/dist-es/index.js +2 -11
  24. package/dist-es/index.js.map +1 -1
  25. package/dist-es/layer-layout/LayerLayout.js +1 -2
  26. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  27. package/dist-es/overlay/Overlay.css.js +1 -1
  28. package/dist-es/overlay/Overlay.js +91 -62
  29. package/dist-es/overlay/Overlay.js.map +1 -1
  30. package/dist-es/overlay/OverlayContext.js +38 -0
  31. package/dist-es/overlay/OverlayContext.js.map +1 -0
  32. package/dist-es/overlay/OverlayPanel.js +60 -0
  33. package/dist-es/overlay/OverlayPanel.js.map +1 -0
  34. package/dist-es/overlay/OverlayPanelBase.js +57 -0
  35. package/dist-es/overlay/OverlayPanelBase.js.map +1 -0
  36. package/dist-es/overlay/OverlayTrigger.js +36 -0
  37. package/dist-es/overlay/OverlayTrigger.js.map +1 -0
  38. package/dist-types/index.d.ts +0 -4
  39. package/dist-types/layer-layout/LayerLayout.d.ts +1 -1
  40. package/dist-types/overlay/Overlay.d.ts +6 -14
  41. package/dist-types/overlay/OverlayContext.d.ts +26 -0
  42. package/dist-types/overlay/OverlayPanel.d.ts +4 -0
  43. package/dist-types/overlay/OverlayPanelBase.d.ts +2 -0
  44. package/dist-types/overlay/OverlayTrigger.d.ts +5 -0
  45. package/dist-types/overlay/index.d.ts +2 -1
  46. package/package.json +2 -2
  47. package/dist-cjs/file-drop-zone/FileDropZone.css.js +0 -6
  48. package/dist-cjs/file-drop-zone/FileDropZone.css.js.map +0 -1
  49. package/dist-cjs/file-drop-zone/FileDropZone.js +0 -94
  50. package/dist-cjs/file-drop-zone/FileDropZone.js.map +0 -1
  51. package/dist-cjs/file-drop-zone/FileDropZoneIcon.js +0 -25
  52. package/dist-cjs/file-drop-zone/FileDropZoneIcon.js.map +0 -1
  53. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +0 -52
  54. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +0 -1
  55. package/dist-cjs/file-drop-zone/internal/utils.js +0 -30
  56. package/dist-cjs/file-drop-zone/internal/utils.js.map +0 -1
  57. package/dist-cjs/navigation-item/ConditionalWrapper.js +0 -35
  58. package/dist-cjs/navigation-item/ConditionalWrapper.js.map +0 -1
  59. package/dist-cjs/navigation-item/ExpansionIcon.js +0 -29
  60. package/dist-cjs/navigation-item/ExpansionIcon.js.map +0 -1
  61. package/dist-cjs/navigation-item/NavigationItem.css.js +0 -6
  62. package/dist-cjs/navigation-item/NavigationItem.css.js.map +0 -1
  63. package/dist-cjs/navigation-item/NavigationItem.js +0 -78
  64. package/dist-cjs/navigation-item/NavigationItem.js.map +0 -1
  65. package/dist-cjs/overlay/useOverlay.js +0 -97
  66. package/dist-cjs/overlay/useOverlay.js.map +0 -1
  67. package/dist-cjs/pagination/CompactInput.css.js +0 -6
  68. package/dist-cjs/pagination/CompactInput.css.js.map +0 -1
  69. package/dist-cjs/pagination/CompactInput.js +0 -62
  70. package/dist-cjs/pagination/CompactInput.js.map +0 -1
  71. package/dist-cjs/pagination/CompactPaginator.css.js +0 -6
  72. package/dist-cjs/pagination/CompactPaginator.css.js.map +0 -1
  73. package/dist-cjs/pagination/CompactPaginator.js +0 -76
  74. package/dist-cjs/pagination/CompactPaginator.js.map +0 -1
  75. package/dist-cjs/pagination/GoToInput.css.js +0 -6
  76. package/dist-cjs/pagination/GoToInput.css.js.map +0 -1
  77. package/dist-cjs/pagination/GoToInput.js +0 -77
  78. package/dist-cjs/pagination/GoToInput.js.map +0 -1
  79. package/dist-cjs/pagination/PageButton.css.js +0 -6
  80. package/dist-cjs/pagination/PageButton.css.js.map +0 -1
  81. package/dist-cjs/pagination/PageButton.js +0 -44
  82. package/dist-cjs/pagination/PageButton.js.map +0 -1
  83. package/dist-cjs/pagination/PageRanges.css.js +0 -6
  84. package/dist-cjs/pagination/PageRanges.css.js.map +0 -1
  85. package/dist-cjs/pagination/PageRanges.js +0 -73
  86. package/dist-cjs/pagination/PageRanges.js.map +0 -1
  87. package/dist-cjs/pagination/Pagination.css.js +0 -6
  88. package/dist-cjs/pagination/Pagination.css.js.map +0 -1
  89. package/dist-cjs/pagination/Pagination.js +0 -78
  90. package/dist-cjs/pagination/Pagination.js.map +0 -1
  91. package/dist-cjs/pagination/PaginationContext.js +0 -17
  92. package/dist-cjs/pagination/PaginationContext.js.map +0 -1
  93. package/dist-cjs/pagination/Paginator.css.js +0 -6
  94. package/dist-cjs/pagination/Paginator.css.js.map +0 -1
  95. package/dist-cjs/pagination/Paginator.js +0 -69
  96. package/dist-cjs/pagination/Paginator.js.map +0 -1
  97. package/dist-cjs/pagination/usePagination.js +0 -27
  98. package/dist-cjs/pagination/usePagination.js.map +0 -1
  99. package/dist-cjs/pagination/usePaginationContext.js +0 -19
  100. package/dist-cjs/pagination/usePaginationContext.js.map +0 -1
  101. package/dist-cjs/scrim/Scrim.css.js +0 -6
  102. package/dist-cjs/scrim/Scrim.css.js.map +0 -1
  103. package/dist-cjs/scrim/Scrim.js +0 -40
  104. package/dist-cjs/scrim/Scrim.js.map +0 -1
  105. package/dist-es/file-drop-zone/FileDropZone.css.js +0 -4
  106. package/dist-es/file-drop-zone/FileDropZone.css.js.map +0 -1
  107. package/dist-es/file-drop-zone/FileDropZone.js +0 -90
  108. package/dist-es/file-drop-zone/FileDropZone.js.map +0 -1
  109. package/dist-es/file-drop-zone/FileDropZoneIcon.js +0 -21
  110. package/dist-es/file-drop-zone/FileDropZoneIcon.js.map +0 -1
  111. package/dist-es/file-drop-zone/FileDropZoneTrigger.js +0 -48
  112. package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +0 -1
  113. package/dist-es/file-drop-zone/internal/utils.js +0 -25
  114. package/dist-es/file-drop-zone/internal/utils.js.map +0 -1
  115. package/dist-es/navigation-item/ConditionalWrapper.js +0 -31
  116. package/dist-es/navigation-item/ConditionalWrapper.js.map +0 -1
  117. package/dist-es/navigation-item/ExpansionIcon.js +0 -25
  118. package/dist-es/navigation-item/ExpansionIcon.js.map +0 -1
  119. package/dist-es/navigation-item/NavigationItem.css.js +0 -4
  120. package/dist-es/navigation-item/NavigationItem.css.js.map +0 -1
  121. package/dist-es/navigation-item/NavigationItem.js +0 -74
  122. package/dist-es/navigation-item/NavigationItem.js.map +0 -1
  123. package/dist-es/overlay/useOverlay.js +0 -93
  124. package/dist-es/overlay/useOverlay.js.map +0 -1
  125. package/dist-es/pagination/CompactInput.css.js +0 -4
  126. package/dist-es/pagination/CompactInput.css.js.map +0 -1
  127. package/dist-es/pagination/CompactInput.js +0 -58
  128. package/dist-es/pagination/CompactInput.js.map +0 -1
  129. package/dist-es/pagination/CompactPaginator.css.js +0 -4
  130. package/dist-es/pagination/CompactPaginator.css.js.map +0 -1
  131. package/dist-es/pagination/CompactPaginator.js +0 -72
  132. package/dist-es/pagination/CompactPaginator.js.map +0 -1
  133. package/dist-es/pagination/GoToInput.css.js +0 -4
  134. package/dist-es/pagination/GoToInput.css.js.map +0 -1
  135. package/dist-es/pagination/GoToInput.js +0 -73
  136. package/dist-es/pagination/GoToInput.js.map +0 -1
  137. package/dist-es/pagination/PageButton.css.js +0 -4
  138. package/dist-es/pagination/PageButton.css.js.map +0 -1
  139. package/dist-es/pagination/PageButton.js +0 -40
  140. package/dist-es/pagination/PageButton.js.map +0 -1
  141. package/dist-es/pagination/PageRanges.css.js +0 -4
  142. package/dist-es/pagination/PageRanges.css.js.map +0 -1
  143. package/dist-es/pagination/PageRanges.js +0 -69
  144. package/dist-es/pagination/PageRanges.js.map +0 -1
  145. package/dist-es/pagination/Pagination.css.js +0 -4
  146. package/dist-es/pagination/Pagination.css.js.map +0 -1
  147. package/dist-es/pagination/Pagination.js +0 -74
  148. package/dist-es/pagination/Pagination.js.map +0 -1
  149. package/dist-es/pagination/PaginationContext.js +0 -13
  150. package/dist-es/pagination/PaginationContext.js.map +0 -1
  151. package/dist-es/pagination/Paginator.css.js +0 -4
  152. package/dist-es/pagination/Paginator.css.js.map +0 -1
  153. package/dist-es/pagination/Paginator.js +0 -65
  154. package/dist-es/pagination/Paginator.js.map +0 -1
  155. package/dist-es/pagination/usePagination.js +0 -23
  156. package/dist-es/pagination/usePagination.js.map +0 -1
  157. package/dist-es/pagination/usePaginationContext.js +0 -15
  158. package/dist-es/pagination/usePaginationContext.js.map +0 -1
  159. package/dist-es/scrim/Scrim.css.js +0 -4
  160. package/dist-es/scrim/Scrim.css.js.map +0 -1
  161. package/dist-es/scrim/Scrim.js +0 -36
  162. package/dist-es/scrim/Scrim.js.map +0 -1
  163. package/dist-types/file-drop-zone/FileDropZone.d.ts +0 -17
  164. package/dist-types/file-drop-zone/FileDropZoneIcon.d.ts +0 -9
  165. package/dist-types/file-drop-zone/FileDropZoneTrigger.d.ts +0 -22
  166. package/dist-types/file-drop-zone/index.d.ts +0 -3
  167. package/dist-types/file-drop-zone/internal/utils.d.ts +0 -3
  168. package/dist-types/navigation-item/ConditionalWrapper.d.ts +0 -8
  169. package/dist-types/navigation-item/ExpansionIcon.d.ts +0 -2
  170. package/dist-types/navigation-item/NavigationItem.d.ts +0 -36
  171. package/dist-types/navigation-item/index.d.ts +0 -1
  172. package/dist-types/overlay/useOverlay.d.ts +0 -8
  173. package/dist-types/pagination/CompactInput.d.ts +0 -2
  174. package/dist-types/pagination/CompactPaginator.d.ts +0 -1
  175. package/dist-types/pagination/GoToInput.d.ts +0 -16
  176. package/dist-types/pagination/PageButton.d.ts +0 -6
  177. package/dist-types/pagination/PageRanges.d.ts +0 -5
  178. package/dist-types/pagination/Pagination.d.ts +0 -20
  179. package/dist-types/pagination/PaginationContext.d.ts +0 -7
  180. package/dist-types/pagination/Paginator.d.ts +0 -12
  181. package/dist-types/pagination/index.d.ts +0 -5
  182. package/dist-types/pagination/usePagination.d.ts +0 -2
  183. package/dist-types/pagination/usePaginationContext.d.ts +0 -1
  184. package/dist-types/scrim/Scrim.d.ts +0 -13
  185. package/dist-types/scrim/index.d.ts +0 -1
  186. package/dist-types/scrim/internal/PreventFocus.d.ts +0 -1
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltPagination {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=Pagination.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pagination.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,78 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var React = require('react');
7
- var clsx = require('clsx');
8
- var core = require('@salt-ds/core');
9
- var PaginationContext = require('./PaginationContext.js');
10
- var window = require('@salt-ds/window');
11
- var styles = require('@salt-ds/styles');
12
- var Pagination$1 = require('./Pagination.css.js');
13
-
14
- const withBaseName = core.makePrefixer("saltPagination");
15
- const { Provider } = PaginationContext.paginationContext;
16
- const Pagination = React.forwardRef(
17
- function Pagination2({
18
- className,
19
- count,
20
- children,
21
- defaultPage = 1,
22
- page: pageProp,
23
- onPageChange: onPageChangeProp,
24
- ...restProps
25
- }, ref) {
26
- const targetWindow = window.useWindow();
27
- styles.useComponentCssInjection({
28
- testId: "salt-pagination",
29
- css: Pagination$1,
30
- window: targetWindow
31
- });
32
- const [pageState, setPageState] = core.useControlled({
33
- controlled: pageProp,
34
- default: defaultPage,
35
- name: "Pagination",
36
- state: "page"
37
- });
38
- const onPageChange = React.useCallback(
39
- (event, page) => {
40
- setPageState(page);
41
- onPageChangeProp && onPageChangeProp(event, page);
42
- },
43
- [onPageChangeProp, setPageState]
44
- );
45
- const contextValue = React.useMemo(
46
- () => ({
47
- page: pageState,
48
- count,
49
- onPageChange
50
- }),
51
- [pageState, count, onPageChange]
52
- );
53
- const { announce } = core.useAriaAnnouncer();
54
- const mounted = React.useRef(false);
55
- React.useEffect(() => {
56
- if (mounted.current) {
57
- announce(`Page ${pageState}`);
58
- } else {
59
- mounted.current = true;
60
- }
61
- }, [announce, pageState]);
62
- if (count < 2) {
63
- return null;
64
- }
65
- return /* @__PURE__ */ jsxRuntime.jsx(Provider, {
66
- value: contextValue,
67
- children: /* @__PURE__ */ jsxRuntime.jsx("nav", {
68
- className: clsx.clsx(withBaseName(), className),
69
- ref,
70
- ...restProps,
71
- children
72
- })
73
- });
74
- }
75
- );
76
-
77
- exports.Pagination = Pagination;
78
- //# sourceMappingURL=Pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pagination.js","sources":["../src/pagination/Pagination.tsx"],"sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer, useAriaAnnouncer, useControlled } from \"@salt-ds/core\";\nimport { PaginationContext, paginationContext } from \"./PaginationContext\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport paginationCss from \"./Pagination.css\";\n\nconst withBaseName = makePrefixer(\"saltPagination\");\n\nconst { Provider } = paginationContext;\n\nexport interface PaginationProps extends HTMLAttributes<HTMLElement> {\n /**\n * Number of pages.\n */\n count: number;\n /**\n * Current/active page.\n */\n page?: number;\n /**\n * Default current/active page.\n */\n defaultPage?: number;\n /**\n * Callback function triggered when current page changed.\n */\n onPageChange?: (event: SyntheticEvent, page: number) => void;\n}\n\nexport const Pagination = forwardRef<HTMLElement, PaginationProps>(\n function Pagination(\n {\n className,\n count,\n children,\n defaultPage = 1,\n page: pageProp,\n onPageChange: onPageChangeProp,\n ...restProps\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pagination\",\n css: paginationCss,\n window: targetWindow,\n });\n\n const [pageState, setPageState] = useControlled({\n controlled: pageProp,\n default: defaultPage,\n name: \"Pagination\",\n state: \"page\",\n });\n\n const onPageChange = useCallback(\n (event: SyntheticEvent, page: number) => {\n setPageState(page);\n onPageChangeProp && onPageChangeProp(event, page);\n },\n [onPageChangeProp, setPageState]\n );\n\n const contextValue: PaginationContext = useMemo(\n () => ({\n page: pageState,\n count,\n onPageChange,\n }),\n [pageState, count, onPageChange]\n );\n\n const { announce } = useAriaAnnouncer();\n const mounted = useRef<boolean>(false);\n\n useEffect(() => {\n if (mounted.current) {\n announce(`Page ${pageState}`);\n } else {\n mounted.current = true;\n }\n }, [announce, pageState]);\n\n if (count < 2) {\n return null;\n }\n\n return (\n <Provider value={contextValue}>\n <nav\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...restProps}\n >\n {children}\n </nav>\n </Provider>\n );\n }\n);\n"],"names":["makePrefixer","paginationContext","forwardRef","Pagination","useWindow","useComponentCssInjection","paginationCss","useControlled","useCallback","useMemo","useAriaAnnouncer","useRef","useEffect","jsx","clsx"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA,CAAA;AAElD,MAAM,EAAE,UAAa,GAAAC,mCAAA,CAAA;AAqBd,MAAM,UAAa,GAAAC,gBAAA;AAAA,EACxB,SAASC,WACP,CAAA;AAAA,IACE,SAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAc,GAAA,CAAA;AAAA,IACd,IAAM,EAAA,QAAA;AAAA,IACN,YAAc,EAAA,gBAAA;AAAA,IACX,GAAA,SAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAC,YAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,kBAAc,CAAA;AAAA,MAC9C,UAAY,EAAA,QAAA;AAAA,MACZ,OAAS,EAAA,WAAA;AAAA,MACT,IAAM,EAAA,YAAA;AAAA,MACN,KAAO,EAAA,MAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,MAAM,YAAe,GAAAC,iBAAA;AAAA,MACnB,CAAC,OAAuB,IAAiB,KAAA;AACvC,QAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AACjB,QAAoB,gBAAA,IAAA,gBAAA,CAAiB,OAAO,IAAI,CAAA,CAAA;AAAA,OAClD;AAAA,MACA,CAAC,kBAAkB,YAAY,CAAA;AAAA,KACjC,CAAA;AAEA,IAAA,MAAM,YAAkC,GAAAC,aAAA;AAAA,MACtC,OAAO;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,KAAA;AAAA,QACA,YAAA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,SAAW,EAAA,KAAA,EAAO,YAAY,CAAA;AAAA,KACjC,CAAA;AAEA,IAAM,MAAA,EAAE,QAAS,EAAA,GAAIC,qBAAiB,EAAA,CAAA;AACtC,IAAM,MAAA,OAAA,GAAUC,aAAgB,KAAK,CAAA,CAAA;AAErC,IAAAC,eAAA,CAAU,MAAM;AACd,MAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,QAAA,QAAA,CAAS,QAAQ,SAAW,CAAA,CAAA,CAAA,CAAA;AAAA,OACvB,MAAA;AACL,QAAA,OAAA,CAAQ,OAAU,GAAA,IAAA,CAAA;AAAA,OACpB;AAAA,KACC,EAAA,CAAC,QAAU,EAAA,SAAS,CAAC,CAAA,CAAA;AAExB,IAAA,IAAI,QAAQ,CAAG,EAAA;AACb,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IAAA,uBACGC,cAAA,CAAA,QAAA,EAAA;AAAA,MAAS,KAAO,EAAA,YAAA;AAAA,MACf,QAAC,kBAAAA,cAAA,CAAA,KAAA,EAAA;AAAA,QACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,SAAA;AAAA,QAEH,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
-
7
- const paginationContext = React.createContext({
8
- page: 0,
9
- count: 0,
10
- onPageChange: () => void 0
11
- });
12
- if (process.env.NODE_ENV !== "production") {
13
- paginationContext.displayName = "PaginationContext";
14
- }
15
-
16
- exports.paginationContext = paginationContext;
17
- //# sourceMappingURL=PaginationContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaginationContext.js","sources":["../src/pagination/PaginationContext.ts"],"sourcesContent":["import { SyntheticEvent, createContext } from \"react\";\n\nexport interface PaginationContext {\n page: number;\n count: number;\n onPageChange: (event: SyntheticEvent, page: number) => void;\n}\n\nexport const paginationContext = createContext<PaginationContext>({\n page: 0,\n count: 0,\n onPageChange: () => undefined,\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n paginationContext.displayName = \"PaginationContext\";\n}\n"],"names":["createContext"],"mappings":";;;;;;AAQO,MAAM,oBAAoBA,mBAAiC,CAAA;AAAA,EAChE,IAAM,EAAA,CAAA;AAAA,EACN,KAAO,EAAA,CAAA;AAAA,EACP,cAAc,MAAM,KAAA,CAAA;AACtB,CAAC,EAAA;AAED,IAAI,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,EAAA,iBAAA,CAAkB,WAAc,GAAA,mBAAA,CAAA;AAClC;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltPaginator {\n display: flex;\n flex-wrap: nowrap;\n}\n\n.saltPaginator-arrowButton-previous {\n --saltButton-margin: 0 var(--salt-spacing-100) 0 0;\n}\n\n.saltPaginator-arrowButton-next {\n --saltButton-margin: 0 0 0 var(--salt-spacing-100);\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=Paginator.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Paginator.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,69 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var clsx = require('clsx');
7
- var React = require('react');
8
- var core = require('@salt-ds/core');
9
- var icons = require('@salt-ds/icons');
10
- var PageRanges = require('./PageRanges.js');
11
- var usePaginationContext = require('./usePaginationContext.js');
12
- var window = require('@salt-ds/window');
13
- var styles = require('@salt-ds/styles');
14
- var Paginator$1 = require('./Paginator.css.js');
15
-
16
- const withBaseName = core.makePrefixer("saltPaginator");
17
- const Paginator = React.forwardRef(
18
- function Paginator2({ className, boundaryCount, siblingCount, ...restProps }, ref) {
19
- const targetWindow = window.useWindow();
20
- styles.useComponentCssInjection({
21
- testId: "salt-paginator",
22
- css: Paginator$1,
23
- window: targetWindow
24
- });
25
- const { count, page, onPageChange } = usePaginationContext.usePaginationContext();
26
- const onPreviousPage = (event) => {
27
- onPageChange(event, Math.max(1, page - 1));
28
- };
29
- const onNextPage = (event) => {
30
- onPageChange(event, Math.min(page + 1, count));
31
- };
32
- const isOnFirstPage = page === 1;
33
- const isOnLastPage = page === count;
34
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
35
- className: clsx.clsx(withBaseName(), className),
36
- ...restProps,
37
- ref,
38
- children: [
39
- /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
40
- variant: "secondary",
41
- "aria-label": "Previous Page",
42
- onClick: onPreviousPage,
43
- disabled: isOnFirstPage,
44
- className: withBaseName("arrowButton-previous"),
45
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronLeftIcon, {
46
- "aria-hidden": true
47
- })
48
- }),
49
- /* @__PURE__ */ jsxRuntime.jsx(PageRanges.PageRanges, {
50
- siblingCount,
51
- boundaryCount
52
- }),
53
- /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
54
- variant: "secondary",
55
- "aria-label": "Next Page",
56
- onClick: onNextPage,
57
- disabled: isOnLastPage,
58
- className: withBaseName("arrowButton-next"),
59
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronRightIcon, {
60
- "aria-hidden": true
61
- })
62
- })
63
- ]
64
- });
65
- }
66
- );
67
-
68
- exports.Paginator = Paginator;
69
- //# sourceMappingURL=Paginator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Paginator.js","sources":["../src/pagination/Paginator.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { forwardRef, HTMLAttributes, MouseEventHandler } from \"react\";\nimport { Button, makePrefixer } from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"@salt-ds/icons\";\nimport { PageRanges } from \"./PageRanges\";\nimport { usePaginationContext } from \"./usePaginationContext\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport paginatorCss from \"./Paginator.css\";\n\nconst withBaseName = makePrefixer(\"saltPaginator\");\n\nexport interface PaginatorProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Number of pages next to the arrow buttons when page range is truncated.\n */\n boundaryCount?: number;\n /**\n * Number of pages on each side of the current page when page range is truncated.\n */\n siblingCount?: number;\n}\n\nexport const Paginator = forwardRef<HTMLDivElement, PaginatorProps>(\n function Paginator(\n { className, boundaryCount, siblingCount, ...restProps },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-paginator\",\n css: paginatorCss,\n window: targetWindow,\n });\n\n const { count, page, onPageChange } = usePaginationContext();\n\n const onPreviousPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.max(1, page - 1));\n };\n\n const onNextPage: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPageChange(event, Math.min(page + 1, count));\n };\n\n const isOnFirstPage = page === 1;\n const isOnLastPage = page === count;\n\n return (\n <div className={clsx(withBaseName(), className)} {...restProps} ref={ref}>\n <Button\n variant=\"secondary\"\n aria-label=\"Previous Page\"\n onClick={onPreviousPage}\n disabled={isOnFirstPage}\n className={withBaseName(\"arrowButton-previous\")}\n >\n <ChevronLeftIcon aria-hidden />\n </Button>\n <PageRanges siblingCount={siblingCount} boundaryCount={boundaryCount} />\n <Button\n variant=\"secondary\"\n aria-label=\"Next Page\"\n onClick={onNextPage}\n disabled={isOnLastPage}\n className={withBaseName(\"arrowButton-next\")}\n >\n <ChevronRightIcon aria-hidden />\n </Button>\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","Paginator","useWindow","useComponentCssInjection","paginatorCss","usePaginationContext","jsxs","clsx","jsx","Button","ChevronLeftIcon","PageRanges","ChevronRightIcon"],"mappings":";;;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAeA,kBAAa,eAAe,CAAA,CAAA;AAa1C,MAAM,SAAY,GAAAC,gBAAA;AAAA,EACvB,SAASC,WACP,EAAE,SAAA,EAAW,eAAe,YAAiB,EAAA,GAAA,SAAA,IAC7C,GACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,WAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,IAAM,EAAA,YAAA,KAAiBC,yCAAqB,EAAA,CAAA;AAE3D,IAAM,MAAA,cAAA,GAAuD,CAAC,KAAU,KAAA;AACtE,MAAA,YAAA,CAAa,OAAO,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,IAAA,GAAO,CAAC,CAAC,CAAA,CAAA;AAAA,KAC3C,CAAA;AAEA,IAAM,MAAA,UAAA,GAAmD,CAAC,KAAU,KAAA;AAClE,MAAA,YAAA,CAAa,OAAO,IAAK,CAAA,GAAA,CAAI,IAAO,GAAA,CAAA,EAAG,KAAK,CAAC,CAAA,CAAA;AAAA,KAC/C,CAAA;AAEA,IAAA,MAAM,gBAAgB,IAAS,KAAA,CAAA,CAAA;AAC/B,IAAA,MAAM,eAAe,IAAS,KAAA,KAAA,CAAA;AAE9B,IAAA,uBACGC,eAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MAAI,GAAG,SAAA;AAAA,MAAW,GAAA;AAAA,MAC9D,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAAC,WAAA,EAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,YAAW,EAAA,eAAA;AAAA,UACX,OAAS,EAAA,cAAA;AAAA,UACT,QAAU,EAAA,aAAA;AAAA,UACV,SAAA,EAAW,aAAa,sBAAsB,CAAA;AAAA,UAE9C,QAAC,kBAAAD,cAAA,CAAAE,qBAAA,EAAA;AAAA,YAAgB,aAAW,EAAA,IAAA;AAAA,WAAC,CAAA;AAAA,SAC/B,CAAA;AAAA,wBACCF,cAAA,CAAAG,qBAAA,EAAA;AAAA,UAAW,YAAA;AAAA,UAA4B,aAAA;AAAA,SAA8B,CAAA;AAAA,wBACrEH,cAAA,CAAAC,WAAA,EAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,YAAW,EAAA,WAAA;AAAA,UACX,OAAS,EAAA,UAAA;AAAA,UACT,QAAU,EAAA,YAAA;AAAA,UACV,SAAA,EAAW,aAAa,kBAAkB,CAAA;AAAA,UAE1C,QAAC,kBAAAD,cAAA,CAAAI,sBAAA,EAAA;AAAA,YAAiB,aAAW,EAAA,IAAA;AAAA,WAAC,CAAA;AAAA,SAChC,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function usePagination(page, count, boundaryCount, siblingCount) {
6
- const totalButtonsVisible = 2 * (boundaryCount + siblingCount) + 3;
7
- const isEnoughSpace = totalButtonsVisible >= count;
8
- const isLeftEllipsis = !isEnoughSpace && page - boundaryCount - siblingCount > 2;
9
- const isRightEllipsis = !isEnoughSpace && page + boundaryCount + siblingCount + 1 < count;
10
- const leftPages = isLeftEllipsis ? [1, boundaryCount] : void 0;
11
- const rightPages = isRightEllipsis ? [count - boundaryCount + 1, count] : void 0;
12
- let middlePages;
13
- if (!isLeftEllipsis) {
14
- middlePages = [
15
- 1,
16
- isRightEllipsis ? boundaryCount + 2 + 2 * siblingCount : count
17
- ];
18
- } else if (!isRightEllipsis) {
19
- middlePages = [count - boundaryCount - 1 - 2 * siblingCount, count];
20
- } else {
21
- middlePages = [page - siblingCount, page + siblingCount];
22
- }
23
- return [leftPages, middlePages, rightPages];
24
- }
25
-
26
- exports.usePagination = usePagination;
27
- //# sourceMappingURL=usePagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePagination.js","sources":["../src/pagination/usePagination.ts"],"sourcesContent":["export type PageRange = [number, number];\n\nexport function usePagination(\n page: number,\n count: number,\n boundaryCount: number,\n siblingCount: number\n) {\n const totalButtonsVisible = 2 * (boundaryCount + siblingCount) + 3;\n const isEnoughSpace = totalButtonsVisible >= count;\n\n const isLeftEllipsis =\n !isEnoughSpace && page - boundaryCount - siblingCount > 2;\n\n const isRightEllipsis =\n !isEnoughSpace && page + boundaryCount + siblingCount + 1 < count;\n\n const leftPages = isLeftEllipsis\n ? ([1, boundaryCount] as PageRange)\n : undefined;\n\n const rightPages = isRightEllipsis\n ? ([count - boundaryCount + 1, count] as PageRange)\n : undefined;\n\n let middlePages: PageRange;\n\n if (!isLeftEllipsis) {\n middlePages = [\n 1,\n isRightEllipsis ? boundaryCount + 2 + 2 * siblingCount : count,\n ];\n } else if (!isRightEllipsis) {\n middlePages = [count - boundaryCount - 1 - 2 * siblingCount, count];\n } else {\n middlePages = [page - siblingCount, page + siblingCount];\n }\n\n return [leftPages, middlePages, rightPages] as const;\n}\n"],"names":[],"mappings":";;;;AAEO,SAAS,aACd,CAAA,IAAA,EACA,KACA,EAAA,aAAA,EACA,YACA,EAAA;AACA,EAAM,MAAA,mBAAA,GAAsB,CAAK,IAAA,aAAA,GAAgB,YAAgB,CAAA,GAAA,CAAA,CAAA;AACjE,EAAA,MAAM,gBAAgB,mBAAuB,IAAA,KAAA,CAAA;AAE7C,EAAA,MAAM,cACJ,GAAA,CAAC,aAAiB,IAAA,IAAA,GAAO,gBAAgB,YAAe,GAAA,CAAA,CAAA;AAE1D,EAAA,MAAM,kBACJ,CAAC,aAAA,IAAiB,IAAO,GAAA,aAAA,GAAgB,eAAe,CAAI,GAAA,KAAA,CAAA;AAE9D,EAAA,MAAM,SAAY,GAAA,cAAA,GACb,CAAC,CAAA,EAAG,aAAa,CAClB,GAAA,KAAA,CAAA,CAAA;AAEJ,EAAA,MAAM,aAAa,eACd,GAAA,CAAC,QAAQ,aAAgB,GAAA,CAAA,EAAG,KAAK,CAClC,GAAA,KAAA,CAAA,CAAA;AAEJ,EAAI,IAAA,WAAA,CAAA;AAEJ,EAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,IAAc,WAAA,GAAA;AAAA,MACZ,CAAA;AAAA,MACA,eAAkB,GAAA,aAAA,GAAgB,CAAI,GAAA,CAAA,GAAI,YAAe,GAAA,KAAA;AAAA,KAC3D,CAAA;AAAA,GACF,MAAA,IAAW,CAAC,eAAiB,EAAA;AAC3B,IAAA,WAAA,GAAc,CAAC,KAAQ,GAAA,aAAA,GAAgB,CAAI,GAAA,CAAA,GAAI,cAAc,KAAK,CAAA,CAAA;AAAA,GAC7D,MAAA;AACL,IAAA,WAAA,GAAc,CAAC,IAAA,GAAO,YAAc,EAAA,IAAA,GAAO,YAAY,CAAA,CAAA;AAAA,GACzD;AAEA,EAAO,OAAA,CAAC,SAAW,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;AAC5C;;;;"}
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var PaginationContext = require('./PaginationContext.js');
7
-
8
- const usePaginationContext = () => {
9
- const context = React.useContext(PaginationContext.paginationContext);
10
- if (process.env.NODE_ENV !== "production") {
11
- if (!context) {
12
- console.error(`usePaginationContext should be used inside of Pagination`);
13
- }
14
- }
15
- return context;
16
- };
17
-
18
- exports.usePaginationContext = usePaginationContext;
19
- //# sourceMappingURL=usePaginationContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePaginationContext.js","sources":["../src/pagination/usePaginationContext.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { paginationContext } from \"./PaginationContext\";\n\nexport const usePaginationContext = () => {\n const context = useContext(paginationContext);\n if (process.env.NODE_ENV !== \"production\") {\n if (!context) {\n console.error(`usePaginationContext should be used inside of Pagination`);\n }\n }\n return context;\n};\n"],"names":["useContext","paginationContext"],"mappings":";;;;;;;AAGO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,OAAA,GAAUA,iBAAWC,mCAAiB,CAAA,CAAA;AAC5C,EAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,OAAA,CAAQ,MAAM,CAA0D,wDAAA,CAAA,CAAA,CAAA;AAAA,KAC1E;AAAA,GACF;AACA,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = "/* Style applied to the root element */\n.saltScrim {\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n bottom: 0;\n height: 100%;\n display: flex;\n z-index: calc(var(--salt-zIndex-drawer) - 1);\n position: absolute;\n align-items: center;\n justify-content: center;\n background: var(--saltScrim-background, var(--salt-overlayable-background));\n -webkit-tap-highlight-color: transparent;\n}\n\n.saltScrim:focus {\n outline: none;\n}\n\n/* Style applied to the root element when fixed={true} */\n.saltScrim-fixed {\n position: fixed;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=Scrim.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Scrim.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,40 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var clsx = require('clsx');
7
- var React = require('react');
8
- var core = require('@salt-ds/core');
9
- var window = require('@salt-ds/window');
10
- var styles = require('@salt-ds/styles');
11
- var Scrim$1 = require('./Scrim.css.js');
12
-
13
- const withBaseName = core.makePrefixer("saltScrim");
14
- const Scrim = React.forwardRef(function Scrim2({ className, children, fixed = false, open = true, ...rest }, ref) {
15
- const targetWindow = window.useWindow();
16
- styles.useComponentCssInjection({
17
- testId: "salt-scrim",
18
- css: Scrim$1,
19
- window: targetWindow
20
- });
21
- if (!open) {
22
- return null;
23
- }
24
- return /* @__PURE__ */ jsxRuntime.jsx("div", {
25
- className: clsx.clsx(
26
- withBaseName(),
27
- {
28
- [withBaseName("fixed")]: fixed
29
- },
30
- className
31
- ),
32
- "data-testid": "scrim",
33
- ref,
34
- ...rest,
35
- children
36
- });
37
- });
38
-
39
- exports.Scrim = Scrim;
40
- //# sourceMappingURL=Scrim.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Scrim.js","sources":["../src/scrim/Scrim.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport scrimCss from \"./Scrim.css\";\n\nconst withBaseName = makePrefixer(\"saltScrim\");\n\nexport interface ScrimProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * If `true` the scrim is bound to the document viewport.\n * The default value of this prop is false, and the default behavior is for Scrim to be bound to its parent container (nearest positioned ancestor).\n */\n fixed?: boolean;\n /**\n * If `true` the scrim is shown.\n */\n open?: boolean;\n}\n\nexport const Scrim = forwardRef<HTMLDivElement, ScrimProps>(function Scrim(\n { className, children, fixed = false, open = true, ...rest },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-scrim\",\n css: scrimCss,\n window: targetWindow,\n });\n\n if (!open) {\n return null;\n }\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"fixed\")]: fixed,\n },\n className\n )}\n data-testid=\"scrim\"\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","Scrim","useWindow","useComponentCssInjection","scrimCss","jsx","clsx"],"mappings":";;;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAa,WAAW,CAAA,CAAA;AActC,MAAM,KAAQ,GAAAC,gBAAA,CAAuC,SAASC,MAAAA,CACnE,EAAE,SAAA,EAAW,QAAU,EAAA,KAAA,GAAQ,KAAO,EAAA,IAAA,GAAO,IAAS,EAAA,GAAA,IAAA,IACtD,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,YAAA;AAAA,IACR,GAAK,EAAAC,OAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,IAAI,CAAC,IAAM,EAAA;AACT,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAW,EAAAC,SAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QACE,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,OAC3B;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IACA,aAAY,EAAA,OAAA;AAAA,IACZ,GAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltFileDropZone {\n color: var(--saltFileDropZone-text-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n background: var(--saltFileDropZone-background, var(--salt-container-primary-background));\n text-align: center;\n align-items: center;\n justify-content: center;\n border: var(--saltFileDropZone-border, var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor));\n flex-direction: column;\n padding: var(--salt-spacing-200);\n gap: var(--salt-spacing-200);\n width: 100%;\n font-size: var(--saltFileDropZone-fontSize, var(--salt-text-fontSize));\n font-family: var(--saltFileDropZone-fontFamily, var(--salt-text-fontFamily));\n line-height: var(--saltFileDropZone-lineHeight, var(--salt-text-lineHeight));\n}\n\n.saltFileDropZone-active {\n background: var(--salt-target-background-hover);\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle-hover) var(--salt-target-borderColor-hover);\n}\n\n/* Styles applied if `status=\"error\" */\n.saltFileDropZone-error {\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-error-borderColor);\n}\n\n/* Styles applied if `status=\"success\" */\n.saltFileDropZone-success {\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-status-success-borderColor);\n}\n\n.saltFileDropZone .input-hidden {\n display: none;\n}\n\n/* Styles applied if `disabled={true}` */\n.saltFileDropZone-disabled {\n background: var(--salt-container-primary-background-disabled);\n border: var(--salt-size-border-strong) var(--salt-target-borderStyle) var(--salt-container-primary-borderColor-disabled);\n cursor: var(--salt-target-cursor-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=FileDropZone.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileDropZone.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,90 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { makePrefixer, useForkRef } from '@salt-ds/core';
3
- import { clsx } from 'clsx';
4
- import { forwardRef, useState, useRef } from 'react';
5
- import { containsFiles, extractFiles } from './internal/utils.js';
6
- import { useWindow } from '@salt-ds/window';
7
- import { useComponentCssInjection } from '@salt-ds/styles';
8
- import css_248z from './FileDropZone.css.js';
9
-
10
- const withBaseName = makePrefixer("saltFileDropZone");
11
- const FileDropZone = forwardRef(
12
- function FileDropZone2({
13
- status,
14
- className,
15
- children,
16
- disabled,
17
- onDragOver,
18
- onDragLeave,
19
- onDrop,
20
- ...restProps
21
- }, ref) {
22
- const targetWindow = useWindow();
23
- useComponentCssInjection({
24
- testId: "salt-file-drop-zone",
25
- css: css_248z,
26
- window: targetWindow
27
- });
28
- const [isActive, setActive] = useState(false);
29
- const regionRef = useRef(null);
30
- const handleRef = useForkRef(ref, regionRef);
31
- const handleDragOver = (event) => {
32
- event.preventDefault();
33
- event.stopPropagation();
34
- if (disabled) {
35
- if (event.dataTransfer) {
36
- event.dataTransfer.dropEffect = "none";
37
- }
38
- return;
39
- }
40
- if (event.dataTransfer) {
41
- event.dataTransfer.dropEffect = "copy";
42
- }
43
- if (!isActive && containsFiles(event)) {
44
- setActive(true);
45
- }
46
- onDragOver == null ? void 0 : onDragOver(event);
47
- };
48
- const handleDragLeave = (event) => {
49
- if (disabled) {
50
- return;
51
- }
52
- const region = regionRef == null ? void 0 : regionRef.current;
53
- const eventTarget = event.relatedTarget;
54
- if (eventTarget !== region && !(region == null ? void 0 : region.contains(eventTarget))) {
55
- setActive(false);
56
- }
57
- onDragLeave == null ? void 0 : onDragLeave(event);
58
- };
59
- const handleDrop = (event) => {
60
- if (disabled) {
61
- return;
62
- }
63
- event.preventDefault();
64
- const files = extractFiles(event);
65
- setActive(false);
66
- onDrop == null ? void 0 : onDrop(event, files);
67
- };
68
- return /* @__PURE__ */ jsx("div", {
69
- className: clsx(
70
- withBaseName(),
71
- {
72
- [withBaseName(status)]: status,
73
- [withBaseName("active")]: isActive,
74
- [withBaseName("disabled")]: disabled
75
- },
76
- className
77
- ),
78
- "aria-disabled": disabled,
79
- onDragLeave: handleDragLeave,
80
- onDragOver: handleDragOver,
81
- onDrop: handleDrop,
82
- ref: handleRef,
83
- ...restProps,
84
- children
85
- });
86
- }
87
- );
88
-
89
- export { FileDropZone };
90
- //# sourceMappingURL=FileDropZone.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileDropZone.js","sources":["../src/file-drop-zone/FileDropZone.tsx"],"sourcesContent":["import { makePrefixer, useForkRef, ValidationStatus } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n DragEventHandler,\n forwardRef,\n DragEvent,\n useRef,\n useState,\n ComponentPropsWithoutRef,\n} from \"react\";\nimport { containsFiles, extractFiles } from \"./internal/utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport fileDropZoneCss from \"./FileDropZone.css\";\n\nexport interface FileDropZoneProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onDrop\"> {\n /**\n * If `true`, the file drop zone will be disabled.\n */\n disabled?: boolean;\n /**\n * Status indicator to be displayed.\n */\n status?: Omit<ValidationStatus, \"info\" | \"warning\">;\n /**\n * Callback for on drop event\n */\n onDrop?: (event: DragEvent<HTMLDivElement>, files: File[]) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltFileDropZone\");\n\nexport const FileDropZone = forwardRef<HTMLDivElement, FileDropZoneProps>(\n function FileDropZone(\n {\n status,\n className,\n children,\n disabled,\n onDragOver,\n onDragLeave,\n onDrop,\n ...restProps\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-file-drop-zone\",\n css: fileDropZoneCss,\n window: targetWindow,\n });\n const [isActive, setActive] = useState(false);\n\n const regionRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(ref, regionRef);\n\n const handleDragOver: DragEventHandler<HTMLDivElement> = (event) => {\n // Need to cancel the default events to allow drop\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#droptargets\n\n event.preventDefault();\n event.stopPropagation();\n\n if (disabled) {\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = \"none\";\n }\n return;\n }\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = \"copy\";\n }\n if (!isActive && containsFiles(event)) {\n setActive(true);\n }\n onDragOver?.(event);\n };\n\n const handleDragLeave: DragEventHandler<HTMLDivElement> = (event) => {\n if (disabled) {\n return;\n }\n const region = regionRef?.current;\n const eventTarget = event.relatedTarget;\n if (eventTarget !== region && !region?.contains(eventTarget as Node)) {\n setActive(false);\n }\n onDragLeave?.(event);\n };\n\n const handleDrop: DragEventHandler<HTMLDivElement> = (event) => {\n if (disabled) {\n return;\n }\n event.preventDefault();\n const files = extractFiles(event);\n setActive(false);\n onDrop?.(event, files);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(status as string)]: status,\n [withBaseName(\"active\")]: isActive,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n aria-disabled={disabled}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n ref={handleRef}\n {...restProps}\n >\n {children}\n </div>\n );\n }\n);\n"],"names":["FileDropZone","fileDropZoneCss"],"mappings":";;;;;;;;;AAiCA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAE7C,MAAM,YAAe,GAAA,UAAA;AAAA,EAC1B,SAASA,aACP,CAAA;AAAA,IACE,MAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AACD,IAAA,MAAM,CAAC,QAAA,EAAU,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE5C,IAAM,MAAA,SAAA,GAAY,OAAuB,IAAI,CAAA,CAAA;AAC7C,IAAM,MAAA,SAAA,GAAY,UAAW,CAAA,GAAA,EAAK,SAAS,CAAA,CAAA;AAE3C,IAAM,MAAA,cAAA,GAAmD,CAAC,KAAU,KAAA;AAIlE,MAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,MAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AAEtB,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,IAAI,MAAM,YAAc,EAAA;AACtB,UAAA,KAAA,CAAM,aAAa,UAAa,GAAA,MAAA,CAAA;AAAA,SAClC;AACA,QAAA,OAAA;AAAA,OACF;AACA,MAAA,IAAI,MAAM,YAAc,EAAA;AACtB,QAAA,KAAA,CAAM,aAAa,UAAa,GAAA,MAAA,CAAA;AAAA,OAClC;AACA,MAAA,IAAI,CAAC,QAAA,IAAY,aAAc,CAAA,KAAK,CAAG,EAAA;AACrC,QAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,OAChB;AACA,MAAa,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KACf,CAAA;AAEA,IAAM,MAAA,eAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,OAAA;AAAA,OACF;AACA,MAAA,MAAM,SAAS,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,OAAA,CAAA;AAC1B,MAAA,MAAM,cAAc,KAAM,CAAA,aAAA,CAAA;AAC1B,MAAA,IAAI,WAAgB,KAAA,MAAA,IAAU,EAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,SAAS,WAAsB,CAAA,CAAA,EAAA;AACpE,QAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,OACjB;AACA,MAAc,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAChB,CAAA;AAEA,IAAM,MAAA,UAAA,GAA+C,CAAC,KAAU,KAAA;AAC9D,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,OAAA;AAAA,OACF;AACA,MAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,MAAM,MAAA,KAAA,GAAQ,aAAa,KAAK,CAAA,CAAA;AAChC,MAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,MAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAS,KAAO,EAAA,KAAA,CAAA,CAAA;AAAA,KAClB,CAAA;AAEA,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,MAAgB,CAAI,GAAA,MAAA;AAAA,UAClC,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,QAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,SAC9B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACA,eAAe,EAAA,QAAA;AAAA,MACf,WAAa,EAAA,eAAA;AAAA,MACb,UAAY,EAAA,cAAA;AAAA,MACZ,MAAQ,EAAA,UAAA;AAAA,MACR,GAAK,EAAA,SAAA;AAAA,MACJ,GAAG,SAAA;AAAA,MAEH,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,21 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { StatusIndicator } from '@salt-ds/core';
3
- import { forwardRef } from 'react';
4
- import { UploadIcon } from '@salt-ds/icons';
5
-
6
- const FileDropZoneIcon = forwardRef(function FileDropZoneIcon2({ status, size = 2, ...rest }, ref) {
7
- const iconProps = {
8
- ref,
9
- size,
10
- ...rest
11
- };
12
- return status ? /* @__PURE__ */ jsx(StatusIndicator, {
13
- status,
14
- ...iconProps
15
- }) : /* @__PURE__ */ jsx(UploadIcon, {
16
- ...iconProps
17
- });
18
- });
19
-
20
- export { FileDropZoneIcon };
21
- //# sourceMappingURL=FileDropZoneIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileDropZoneIcon.js","sources":["../src/file-drop-zone/FileDropZoneIcon.tsx"],"sourcesContent":["import { StatusIndicator, ValidationStatus } from \"@salt-ds/core\";\nimport { forwardRef } from \"react\";\nimport { IconProps, UploadIcon } from \"@salt-ds/icons\";\n\nexport interface FileDropZoneIconProps extends IconProps {\n /**\n * Status indicator to be displayed.\n */\n status?: ValidationStatus;\n}\n\nexport const FileDropZoneIcon = forwardRef<\n SVGSVGElement,\n FileDropZoneIconProps\n>(function FileDropZoneIcon({ status, size = 2, ...rest }, ref) {\n const iconProps = {\n ref,\n size,\n ...rest,\n };\n return status ? (\n <StatusIndicator status={status} {...iconProps} />\n ) : (\n <UploadIcon {...iconProps} />\n );\n});\n"],"names":["FileDropZoneIcon"],"mappings":";;;;;AAWa,MAAA,gBAAA,GAAmB,UAG9B,CAAA,SAASA,iBAAiB,CAAA,EAAE,QAAQ,IAAO,GAAA,CAAA,EAAA,GAAM,IAAK,EAAA,EAAG,GAAK,EAAA;AAC9D,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,GAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAG,IAAA;AAAA,GACL,CAAA;AACA,EAAA,OAAO,yBACJ,GAAA,CAAA,eAAA,EAAA;AAAA,IAAgB,MAAA;AAAA,IAAiB,GAAG,SAAA;AAAA,GAAW,oBAE/C,GAAA,CAAA,UAAA,EAAA;AAAA,IAAY,GAAG,SAAA;AAAA,GAAW,CAAA,CAAA;AAE/B,CAAC;;;;"}
@@ -1,48 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { useForkRef, Button } from '@salt-ds/core';
3
- import { forwardRef, useRef } from 'react';
4
-
5
- const FileDropZoneTrigger = forwardRef(function FileDropZoneTrigger2({ accept, children, disabled, multiple = false, onChange, ...rest }, ref) {
6
- const buttonRef = useRef(null);
7
- const fileInputRef = useRef(null);
8
- const triggerRef = useForkRef(ref, buttonRef);
9
- const handleFocus = (event) => {
10
- var _a;
11
- event.stopPropagation();
12
- (_a = buttonRef.current) == null ? void 0 : _a.focus();
13
- };
14
- const handleClick = (event) => {
15
- var _a;
16
- event.stopPropagation();
17
- (_a = fileInputRef.current) == null ? void 0 : _a.click();
18
- };
19
- const handleChange = (event) => {
20
- var _a;
21
- const files = Array.from((_a = event.target.files) != null ? _a : []);
22
- onChange == null ? void 0 : onChange(event, files);
23
- };
24
- return /* @__PURE__ */ jsxs(Fragment, {
25
- children: [
26
- /* @__PURE__ */ jsx(Button, {
27
- onClick: handleClick,
28
- disabled,
29
- ref: triggerRef,
30
- ...rest,
31
- children: children != null ? children : "Browse files"
32
- }),
33
- /* @__PURE__ */ jsx("input", {
34
- accept,
35
- className: "input-hidden",
36
- disabled,
37
- multiple,
38
- onChange: handleChange,
39
- onFocus: handleFocus,
40
- ref: fileInputRef,
41
- type: "file"
42
- })
43
- ]
44
- });
45
- });
46
-
47
- export { FileDropZoneTrigger };
48
- //# sourceMappingURL=FileDropZoneTrigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileDropZoneTrigger.js","sources":["../src/file-drop-zone/FileDropZoneTrigger.tsx"],"sourcesContent":["import { Button, useForkRef } from \"@salt-ds/core\";\nimport {\n FocusEvent,\n forwardRef,\n HTMLAttributes,\n SyntheticEvent,\n useRef,\n} from \"react\";\n\nexport interface FileDropZoneTriggerProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, \"onChange\"> {\n /**\n * `accept` attribute for HTML <input>.\n *\n * A comma separated list of file types the user can pick from the file input dialog box.\n */\n accept?: string;\n /**\n * Disable all trigger elements.\n */\n disabled?: boolean;\n /**\n * Allows multiple files to be uploaded.\n */\n multiple?: boolean;\n /**\n * Callback for input change event\n */\n onChange?: (event: SyntheticEvent<HTMLInputElement>, files: File[]) => void;\n}\n\nexport const FileDropZoneTrigger = forwardRef<\n HTMLButtonElement,\n FileDropZoneTriggerProps\n>(function FileDropZoneTrigger(\n { accept, children, disabled, multiple = false, onChange, ...rest },\n ref\n) {\n const buttonRef = useRef<HTMLButtonElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useForkRef(ref, buttonRef);\n\n // As an ADA requirement when dialog is closed and the focus is returned to the input, we need to\n // move focus back on the button element so that all labels can be announced correctly\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n event.stopPropagation();\n buttonRef.current?.focus();\n };\n\n const handleClick = (event: SyntheticEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n fileInputRef.current?.click();\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n const files = Array.from((event.target as HTMLInputElement).files ?? []);\n onChange?.(event, files);\n };\n return (\n <>\n <Button\n onClick={handleClick}\n disabled={disabled}\n ref={triggerRef}\n {...rest}\n >\n {children ?? \"Browse files\"}\n </Button>\n <input\n accept={accept}\n className=\"input-hidden\"\n disabled={disabled}\n multiple={multiple}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={fileInputRef}\n type=\"file\"\n />\n </>\n );\n});\n"],"names":["FileDropZoneTrigger"],"mappings":";;;;AA+BO,MAAM,mBAAsB,GAAA,UAAA,CAGjC,SAASA,oBAAAA,CACT,EAAE,MAAA,EAAQ,QAAU,EAAA,QAAA,EAAU,QAAW,GAAA,KAAA,EAAO,QAAa,EAAA,GAAA,IAAA,IAC7D,GACA,EAAA;AACA,EAAM,MAAA,SAAA,GAAY,OAA0B,IAAI,CAAA,CAAA;AAChD,EAAM,MAAA,YAAA,GAAe,OAAyB,IAAI,CAAA,CAAA;AAClD,EAAM,MAAA,UAAA,GAAa,UAAW,CAAA,GAAA,EAAK,SAAS,CAAA,CAAA;AAI5C,EAAM,MAAA,WAAA,GAAc,CAAC,KAAwC,KAAA;AA5C/D,IAAA,IAAA,EAAA,CAAA;AA6CI,IAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,IAAA,CAAA,EAAA,GAAA,SAAA,CAAU,YAAV,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAA6C,KAAA;AAjDpE,IAAA,IAAA,EAAA,CAAA;AAkDI,IAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,IAAA,CAAA,EAAA,GAAA,YAAA,CAAa,YAAb,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,GACxB,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,CAAC,KAA4C,KAAA;AAtDpE,IAAA,IAAA,EAAA,CAAA;AAuDI,IAAM,MAAA,KAAA,GAAQ,MAAM,IAAM,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,OAA4B,KAAlC,KAAA,IAAA,GAAA,EAAA,GAA2C,EAAE,CAAA,CAAA;AACvE,IAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,KAAO,EAAA,KAAA,CAAA,CAAA;AAAA,GACpB,CAAA;AACA,EACE,uBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,IACE,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,MAAA,EAAA;AAAA,QACC,OAAS,EAAA,WAAA;AAAA,QACT,QAAA;AAAA,QACA,GAAK,EAAA,UAAA;AAAA,QACJ,GAAG,IAAA;AAAA,QAEH,QAAY,EAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAA,cAAA;AAAA,OACf,CAAA;AAAA,sBACC,GAAA,CAAA,OAAA,EAAA;AAAA,QACC,MAAA;AAAA,QACA,SAAU,EAAA,cAAA;AAAA,QACV,QAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAU,EAAA,YAAA;AAAA,QACV,OAAS,EAAA,WAAA;AAAA,QACT,GAAK,EAAA,YAAA;AAAA,QACL,IAAK,EAAA,MAAA;AAAA,OACP,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1,25 +0,0 @@
1
- const containsFiles = (e) => {
2
- if (!e.dataTransfer) {
3
- const target = e.target;
4
- return target == null ? void 0 : target.files;
5
- }
6
- return Array.prototype.some.call(
7
- e.dataTransfer.types,
8
- (type) => type === "Files"
9
- );
10
- };
11
- const extractFiles = (e) => {
12
- var _a;
13
- if (containsFiles(e)) {
14
- if (e.dataTransfer) {
15
- return Array.from(e.dataTransfer.files);
16
- }
17
- if (e.target) {
18
- return Array.from((_a = e.target.files) != null ? _a : []);
19
- }
20
- }
21
- return [];
22
- };
23
-
24
- export { containsFiles, extractFiles };
25
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../src/file-drop-zone/internal/utils.ts"],"sourcesContent":["import { DragEvent } from \"react\";\n\nexport const containsFiles = (e: DragEvent) => {\n if (!e.dataTransfer) {\n const target = e.target as HTMLInputElement;\n return target?.files;\n }\n\n return Array.prototype.some.call(\n e.dataTransfer.types,\n (type) => type === \"Files\"\n );\n};\n\nexport const extractFiles = (e: DragEvent): File[] => {\n if (containsFiles(e)) {\n if (e.dataTransfer) {\n return Array.from(e.dataTransfer.files);\n }\n\n if (e.target) {\n return Array.from((e.target as HTMLInputElement).files ?? []);\n }\n }\n\n return [];\n};\n"],"names":[],"mappings":"AAEa,MAAA,aAAA,GAAgB,CAAC,CAAiB,KAAA;AAC7C,EAAI,IAAA,CAAC,EAAE,YAAc,EAAA;AACnB,IAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,IAAA,OAAO,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AAAA,GACjB;AAEA,EAAO,OAAA,KAAA,CAAM,UAAU,IAAK,CAAA,IAAA;AAAA,IAC1B,EAAE,YAAa,CAAA,KAAA;AAAA,IACf,CAAC,SAAS,IAAS,KAAA,OAAA;AAAA,GACrB,CAAA;AACF,EAAA;AAEa,MAAA,YAAA,GAAe,CAAC,CAAyB,KAAA;AAdtD,EAAA,IAAA,EAAA,CAAA;AAeE,EAAI,IAAA,aAAA,CAAc,CAAC,CAAG,EAAA;AACpB,IAAA,IAAI,EAAE,YAAc,EAAA;AAClB,MAAA,OAAO,KAAM,CAAA,IAAA,CAAK,CAAE,CAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,KACxC;AAEA,IAAA,IAAI,EAAE,MAAQ,EAAA;AACZ,MAAA,OAAO,MAAM,IAAM,CAAA,CAAA,EAAA,GAAA,CAAA,CAAE,OAA4B,KAA9B,KAAA,IAAA,GAAA,EAAA,GAAuC,EAAE,CAAA,CAAA;AAAA,KAC9D;AAAA,GACF;AAEA,EAAA,OAAO,EAAC,CAAA;AACV;;;;"}
@@ -1,31 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
-
3
- const ConditionalWrapper = ({
4
- children,
5
- className,
6
- parent,
7
- expanded,
8
- onExpand,
9
- active,
10
- href
11
- }) => {
12
- const handleExpand = (event) => {
13
- event.stopPropagation();
14
- onExpand == null ? void 0 : onExpand(event);
15
- };
16
- return parent || href === void 0 ? /* @__PURE__ */ jsx("button", {
17
- "aria-label": "expand",
18
- "aria-expanded": expanded,
19
- className,
20
- onClick: handleExpand,
21
- children
22
- }) : /* @__PURE__ */ jsx("a", {
23
- "aria-current": active ? "page" : void 0,
24
- href,
25
- className,
26
- children
27
- });
28
- };
29
-
30
- export { ConditionalWrapper };
31
- //# sourceMappingURL=ConditionalWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConditionalWrapper.js","sources":["../src/navigation-item/ConditionalWrapper.tsx"],"sourcesContent":["import { MouseEvent, ReactNode } from \"react\";\nimport { NavigationItemProps } from \"./NavigationItem\";\n\ninterface ConditionalWrapperProps\n extends Pick<\n NavigationItemProps,\n \"parent\" | \"expanded\" | \"onExpand\" | \"active\" | \"href\" | \"onClick\"\n > {\n children: ReactNode;\n className: string;\n}\n\nexport const ConditionalWrapper = ({\n children,\n className,\n parent,\n expanded,\n onExpand,\n active,\n href,\n}: ConditionalWrapperProps) => {\n const handleExpand = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onExpand?.(event);\n };\n\n return parent || href === undefined ? (\n <button\n aria-label=\"expand\"\n aria-expanded={expanded}\n className={className}\n onClick={handleExpand}\n >\n {children}\n </button>\n ) : (\n <a\n aria-current={active ? \"page\" : undefined}\n href={href}\n className={className}\n >\n {children}\n </a>\n );\n};\n"],"names":[],"mappings":";;AAYO,MAAM,qBAAqB,CAAC;AAAA,EACjC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AACF,CAA+B,KAAA;AAC7B,EAAM,MAAA,YAAA,GAAe,CAAC,KAAyC,KAAA;AAC7D,IAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,IAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACb,CAAA;AAEA,EAAO,OAAA,MAAA,IAAU,IAAS,KAAA,KAAA,CAAA,mBACvB,GAAA,CAAA,QAAA,EAAA;AAAA,IACC,YAAW,EAAA,QAAA;AAAA,IACX,eAAe,EAAA,QAAA;AAAA,IACf,SAAA;AAAA,IACA,OAAS,EAAA,YAAA;AAAA,IAER,QAAA;AAAA,GACH,oBAEC,GAAA,CAAA,GAAA,EAAA;AAAA,IACC,cAAA,EAAc,SAAS,MAAS,GAAA,KAAA,CAAA;AAAA,IAChC,IAAA;AAAA,IACA,SAAA;AAAA,IAEC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
@@ -1,25 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { ChevronDownIcon, ChevronRightIcon } from '@salt-ds/icons';
3
-
4
- const iconExpansionMap = {
5
- vertical: {
6
- expanded: ChevronDownIcon,
7
- collapsed: ChevronRightIcon
8
- },
9
- horizontal: {
10
- expanded: ChevronDownIcon,
11
- collapsed: ChevronDownIcon
12
- }
13
- };
14
- function ExpansionIcon({
15
- expanded = false,
16
- orientation = "horizontal"
17
- }) {
18
- const Icon = iconExpansionMap[orientation][expanded ? "expanded" : "collapsed"];
19
- return /* @__PURE__ */ jsx(Icon, {
20
- "aria-hidden": "true"
21
- });
22
- }
23
-
24
- export { ExpansionIcon };
25
- //# sourceMappingURL=ExpansionIcon.js.map