@salt-ds/lab 1.0.0-alpha.24 → 1.0.0-alpha.26

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 (146) hide show
  1. package/css/salt-lab.css +107 -185
  2. package/dist-cjs/combo-box-next/ComboBoxNext.js +1 -1
  3. package/dist-cjs/combo-box-next/ComboBoxNext.js.map +1 -1
  4. package/dist-cjs/dropdown-next/DropdownNext.js +1 -2
  5. package/dist-cjs/dropdown-next/DropdownNext.js.map +1 -1
  6. package/dist-cjs/file-drop-zone/FileDropZone.css.js +1 -1
  7. package/dist-cjs/file-drop-zone/FileDropZone.js +32 -132
  8. package/dist-cjs/file-drop-zone/FileDropZone.js.map +1 -1
  9. package/dist-cjs/file-drop-zone/FileDropZoneIcon.js +25 -0
  10. package/dist-cjs/file-drop-zone/FileDropZoneIcon.js.map +1 -0
  11. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js +52 -0
  12. package/dist-cjs/file-drop-zone/FileDropZoneTrigger.js.map +1 -0
  13. package/dist-cjs/file-drop-zone/internal/utils.js +4 -13
  14. package/dist-cjs/file-drop-zone/internal/utils.js.map +1 -1
  15. package/dist-cjs/index.js +8 -3
  16. package/dist-cjs/index.js.map +1 -1
  17. package/dist-cjs/pagination/CompactInput.css.js +6 -0
  18. package/dist-cjs/pagination/CompactInput.css.js.map +1 -0
  19. package/dist-cjs/pagination/CompactInput.js +31 -35
  20. package/dist-cjs/pagination/CompactInput.js.map +1 -1
  21. package/dist-cjs/pagination/CompactPaginator.css.js +6 -0
  22. package/dist-cjs/pagination/CompactPaginator.css.js.map +1 -0
  23. package/dist-cjs/pagination/CompactPaginator.js +76 -0
  24. package/dist-cjs/pagination/CompactPaginator.js.map +1 -0
  25. package/dist-cjs/pagination/GoToInput.css.js +6 -0
  26. package/dist-cjs/pagination/GoToInput.css.js.map +1 -0
  27. package/dist-cjs/pagination/GoToInput.js +37 -59
  28. package/dist-cjs/pagination/GoToInput.js.map +1 -1
  29. package/dist-cjs/pagination/PageButton.css.js +6 -0
  30. package/dist-cjs/pagination/PageButton.css.js.map +1 -0
  31. package/dist-cjs/pagination/PageButton.js +34 -33
  32. package/dist-cjs/pagination/PageButton.js.map +1 -1
  33. package/dist-cjs/pagination/PageRanges.css.js +6 -0
  34. package/dist-cjs/pagination/PageRanges.css.js.map +1 -0
  35. package/dist-cjs/pagination/PageRanges.js +73 -0
  36. package/dist-cjs/pagination/PageRanges.js.map +1 -0
  37. package/dist-cjs/pagination/Pagination.css.js +1 -1
  38. package/dist-cjs/pagination/Pagination.js +21 -38
  39. package/dist-cjs/pagination/Pagination.js.map +1 -1
  40. package/dist-cjs/pagination/PaginationContext.js +1 -6
  41. package/dist-cjs/pagination/PaginationContext.js.map +1 -1
  42. package/dist-cjs/pagination/Paginator.css.js +6 -0
  43. package/dist-cjs/pagination/Paginator.css.js.map +1 -0
  44. package/dist-cjs/pagination/Paginator.js +33 -43
  45. package/dist-cjs/pagination/Paginator.js.map +1 -1
  46. package/dist-cjs/pagination/usePaginationContext.js +1 -1
  47. package/dist-cjs/pagination/usePaginationContext.js.map +1 -1
  48. package/dist-cjs/pill-next/PillNext.css.js +1 -1
  49. package/dist-cjs/pill-next/PillNext.js +26 -31
  50. package/dist-cjs/pill-next/PillNext.js.map +1 -1
  51. package/dist-es/combo-box-next/ComboBoxNext.js +1 -1
  52. package/dist-es/combo-box-next/ComboBoxNext.js.map +1 -1
  53. package/dist-es/dropdown-next/DropdownNext.js +1 -2
  54. package/dist-es/dropdown-next/DropdownNext.js.map +1 -1
  55. package/dist-es/file-drop-zone/FileDropZone.css.js +1 -1
  56. package/dist-es/file-drop-zone/FileDropZone.js +36 -136
  57. package/dist-es/file-drop-zone/FileDropZone.js.map +1 -1
  58. package/dist-es/file-drop-zone/FileDropZoneIcon.js +21 -0
  59. package/dist-es/file-drop-zone/FileDropZoneIcon.js.map +1 -0
  60. package/dist-es/file-drop-zone/FileDropZoneTrigger.js +48 -0
  61. package/dist-es/file-drop-zone/FileDropZoneTrigger.js.map +1 -0
  62. package/dist-es/file-drop-zone/internal/utils.js +5 -12
  63. package/dist-es/file-drop-zone/internal/utils.js.map +1 -1
  64. package/dist-es/index.js +4 -1
  65. package/dist-es/index.js.map +1 -1
  66. package/dist-es/pagination/CompactInput.css.js +4 -0
  67. package/dist-es/pagination/CompactInput.css.js.map +1 -0
  68. package/dist-es/pagination/CompactInput.js +32 -36
  69. package/dist-es/pagination/CompactInput.js.map +1 -1
  70. package/dist-es/pagination/CompactPaginator.css.js +4 -0
  71. package/dist-es/pagination/CompactPaginator.css.js.map +1 -0
  72. package/dist-es/pagination/CompactPaginator.js +72 -0
  73. package/dist-es/pagination/CompactPaginator.js.map +1 -0
  74. package/dist-es/pagination/GoToInput.css.js +4 -0
  75. package/dist-es/pagination/GoToInput.css.js.map +1 -0
  76. package/dist-es/pagination/GoToInput.js +40 -62
  77. package/dist-es/pagination/GoToInput.js.map +1 -1
  78. package/dist-es/pagination/PageButton.css.js +4 -0
  79. package/dist-es/pagination/PageButton.css.js.map +1 -0
  80. package/dist-es/pagination/PageButton.js +34 -33
  81. package/dist-es/pagination/PageButton.js.map +1 -1
  82. package/dist-es/pagination/PageRanges.css.js +4 -0
  83. package/dist-es/pagination/PageRanges.css.js.map +1 -0
  84. package/dist-es/pagination/PageRanges.js +69 -0
  85. package/dist-es/pagination/PageRanges.js.map +1 -0
  86. package/dist-es/pagination/Pagination.css.js +1 -1
  87. package/dist-es/pagination/Pagination.js +20 -37
  88. package/dist-es/pagination/Pagination.js.map +1 -1
  89. package/dist-es/pagination/PaginationContext.js +1 -6
  90. package/dist-es/pagination/PaginationContext.js.map +1 -1
  91. package/dist-es/pagination/Paginator.css.js +4 -0
  92. package/dist-es/pagination/Paginator.css.js.map +1 -0
  93. package/dist-es/pagination/Paginator.js +32 -42
  94. package/dist-es/pagination/Paginator.js.map +1 -1
  95. package/dist-es/pagination/usePaginationContext.js +1 -1
  96. package/dist-es/pagination/usePaginationContext.js.map +1 -1
  97. package/dist-es/pill-next/PillNext.css.js +1 -1
  98. package/dist-es/pill-next/PillNext.js +28 -33
  99. package/dist-es/pill-next/PillNext.js.map +1 -1
  100. package/dist-types/combo-box-next/useComboBox.d.ts +2 -2
  101. package/dist-types/combo-box-next/useComboboxPortal.d.ts +2 -2
  102. package/dist-types/dialog/useDialog.d.ts +6 -7
  103. package/dist-types/drawer/useDrawer.d.ts +6 -7
  104. package/dist-types/dropdown-next/useDropdownNext.d.ts +12 -4
  105. package/dist-types/file-drop-zone/FileDropZone.d.ts +7 -44
  106. package/dist-types/file-drop-zone/FileDropZoneIcon.d.ts +9 -0
  107. package/dist-types/file-drop-zone/FileDropZoneTrigger.d.ts +22 -0
  108. package/dist-types/file-drop-zone/index.d.ts +2 -1
  109. package/dist-types/file-drop-zone/internal/utils.d.ts +0 -6
  110. package/dist-types/pagination/CompactInput.d.ts +2 -8
  111. package/dist-types/pagination/CompactPaginator.d.ts +1 -0
  112. package/dist-types/pagination/GoToInput.d.ts +13 -4
  113. package/dist-types/pagination/PageButton.d.ts +2 -3
  114. package/dist-types/pagination/PageRanges.d.ts +5 -0
  115. package/dist-types/pagination/Pagination.d.ts +15 -4
  116. package/dist-types/pagination/PaginationContext.d.ts +2 -4
  117. package/dist-types/pagination/Paginator.d.ts +6 -3
  118. package/dist-types/pagination/index.d.ts +2 -0
  119. package/dist-types/pill-next/PillNext.d.ts +1 -4
  120. package/dist-types/tabs/drag-drop/drag-utils.d.ts +6 -6
  121. package/package.json +5 -5
  122. package/dist-cjs/file-drop-zone/validators.js +0 -38
  123. package/dist-cjs/file-drop-zone/validators.js.map +0 -1
  124. package/dist-cjs/pagination/ArrowButton.js +0 -64
  125. package/dist-cjs/pagination/ArrowButton.js.map +0 -1
  126. package/dist-cjs/pagination/CompactControls.js +0 -38
  127. package/dist-cjs/pagination/CompactControls.js.map +0 -1
  128. package/dist-cjs/pagination/RegularControls.js +0 -58
  129. package/dist-cjs/pagination/RegularControls.js.map +0 -1
  130. package/dist-cjs/pagination/utils.js +0 -10
  131. package/dist-cjs/pagination/utils.js.map +0 -1
  132. package/dist-es/file-drop-zone/validators.js +0 -29
  133. package/dist-es/file-drop-zone/validators.js.map +0 -1
  134. package/dist-es/pagination/ArrowButton.js +0 -60
  135. package/dist-es/pagination/ArrowButton.js.map +0 -1
  136. package/dist-es/pagination/CompactControls.js +0 -34
  137. package/dist-es/pagination/CompactControls.js.map +0 -1
  138. package/dist-es/pagination/RegularControls.js +0 -54
  139. package/dist-es/pagination/RegularControls.js.map +0 -1
  140. package/dist-es/pagination/utils.js +0 -6
  141. package/dist-es/pagination/utils.js.map +0 -1
  142. package/dist-types/file-drop-zone/validators.d.ts +0 -21
  143. package/dist-types/pagination/ArrowButton.d.ts +0 -7
  144. package/dist-types/pagination/CompactControls.d.ts +0 -8
  145. package/dist-types/pagination/RegularControls.d.ts +0 -8
  146. package/dist-types/pagination/utils.d.ts +0 -1
@@ -1,7 +1,4 @@
1
- import { ComponentPropsWithoutRef, MouseEvent } from "react";
1
+ import { ComponentPropsWithoutRef } from "react";
2
2
  export interface PillNextProps extends ComponentPropsWithoutRef<"button"> {
3
- disabled?: boolean;
4
- onClose?: (event: MouseEvent<HTMLButtonElement>) => void;
5
- icon?: React.ReactNode;
6
3
  }
7
4
  export declare const PillNext: import("react").ForwardRefExoticComponent<PillNextProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -21,24 +21,24 @@ declare type Dimension = keyof Pick<DOMRect, "width" | "height">;
21
21
  export declare const measureElementSizeAndPosition: (element: HTMLElement, dimension?: Dimension, includeAutoMargin?: boolean) => number[];
22
22
  export declare const dimensions: (orientation: orientationType) => {
23
23
  CLIENT_SIZE: "scrollWidth" | "scrollHeight" | "clientHeight" | "clientWidth" | "scrollTop" | "scrollLeft";
24
- CONTRA: "x" | "y" | "top" | "right" | "bottom" | "left" | "height" | "width";
24
+ CONTRA: "x" | "y" | "height" | "width" | "left" | "right" | "top" | "bottom";
25
25
  CONTRA_POS: "clientX" | "clientY";
26
26
  DIMENSION: "height" | "width";
27
- END: "x" | "y" | "top" | "right" | "bottom" | "left" | "height" | "width";
27
+ END: "x" | "y" | "height" | "width" | "left" | "right" | "top" | "bottom";
28
28
  POS: "clientX" | "clientY";
29
29
  SCROLL_POS: "scrollWidth" | "scrollHeight" | "clientHeight" | "clientWidth" | "scrollTop" | "scrollLeft";
30
30
  SCROLL_SIZE: "scrollWidth" | "scrollHeight" | "clientHeight" | "clientWidth" | "scrollTop" | "scrollLeft";
31
- START: "x" | "y" | "top" | "right" | "bottom" | "left" | "height" | "width";
31
+ START: "x" | "y" | "height" | "width" | "left" | "right" | "top" | "bottom";
32
32
  } | {
33
33
  CLIENT_SIZE: "scrollWidth" | "scrollHeight" | "clientHeight" | "clientWidth" | "scrollTop" | "scrollLeft";
34
- CONTRA: "x" | "y" | "top" | "right" | "bottom" | "left" | "height" | "width";
34
+ CONTRA: "x" | "y" | "height" | "width" | "left" | "right" | "top" | "bottom";
35
35
  CONTRA_POS: "clientX" | "clientY";
36
36
  DIMENSION: "height" | "width";
37
- END: "x" | "y" | "top" | "right" | "bottom" | "left" | "height" | "width";
37
+ END: "x" | "y" | "height" | "width" | "left" | "right" | "top" | "bottom";
38
38
  POS: "clientX" | "clientY";
39
39
  SCROLL_POS: "scrollWidth" | "scrollHeight" | "clientHeight" | "clientWidth" | "scrollTop" | "scrollLeft";
40
40
  SCROLL_SIZE: "scrollWidth" | "scrollHeight" | "clientHeight" | "clientWidth" | "scrollTop" | "scrollLeft";
41
- START: "x" | "y" | "top" | "right" | "bottom" | "left" | "height" | "width";
41
+ START: "x" | "y" | "height" | "width" | "left" | "right" | "top" | "bottom";
42
42
  };
43
43
  export declare const getDraggedItem: (measuredItems: MeasuredDropTarget[]) => MeasuredDropTarget;
44
44
  export declare const moveDragItem: (measuredItems: MeasuredDropTarget[], dropTarget: MeasuredDropTarget) => MeasuredDropTarget[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/lab",
3
- "version": "1.0.0-alpha.24",
3
+ "version": "1.0.0-alpha.26",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,7 +11,7 @@
11
11
  "main": "dist-cjs/index.js",
12
12
  "sideEffects": false,
13
13
  "dependencies": {
14
- "@floating-ui/react": "^0.23.0",
14
+ "@floating-ui/react": "^0.26.5",
15
15
  "@fluentui/react-overflow": "^9.0.19",
16
16
  "@internationalized/date": "^3.0.0",
17
17
  "@types/react-window": "^1.8.2",
@@ -26,10 +26,10 @@
26
26
  "react-window": "^1.8.6",
27
27
  "rifm": "^0.12.0",
28
28
  "tinycolor2": "^1.4.2",
29
- "@salt-ds/core": "^1.13.2",
29
+ "@salt-ds/core": "^1.13.4",
30
30
  "@salt-ds/window": "^0.1.1",
31
- "@salt-ds/styles": "^0.2.0",
32
- "@salt-ds/icons": "^1.9.0"
31
+ "@salt-ds/styles": "^0.2.1",
32
+ "@salt-ds/icons": "^1.9.1"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "@types/react": ">=16.14.0",
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var accepts = require('attr-accept');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var accepts__default = /*#__PURE__*/_interopDefaultLegacy(accepts);
10
-
11
- function createFileTypeValidator({
12
- accept,
13
- getError
14
- }) {
15
- return (files) => {
16
- const validate = (file) => {
17
- if (!accepts__default["default"](file, accept)) {
18
- return getError ? getError(file) : `File ${file.name} does not have an accepted type.`;
19
- }
20
- };
21
- return files.map(validate);
22
- };
23
- }
24
- function createTotalSizeValidator({
25
- maxSize,
26
- getError
27
- }) {
28
- return (files) => {
29
- const totalSize = files.reduce((size, file) => size + file.size, 0);
30
- if (totalSize > maxSize) {
31
- return getError ? getError(totalSize) : `The file/s exceed the maximum upload limit of ${maxSize} bytes.`;
32
- }
33
- };
34
- }
35
-
36
- exports.createFileTypeValidator = createFileTypeValidator;
37
- exports.createTotalSizeValidator = createTotalSizeValidator;
38
- //# sourceMappingURL=validators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sources":["../src/file-drop-zone/validators.ts"],"sourcesContent":["// TODO: verify whether we still needs to this library\n// HTML5's `accept` should be ok for the browsers we want to support.\nimport accepts from \"attr-accept\";\n\nexport type FilesValidator<ErrorType = string> = (\n files: ReadonlyArray<File>\n) =>\n | ReadonlyArray<ErrorType | string | undefined>\n | ErrorType\n | string\n | undefined;\n\n/**\n * Factory method for creating a common file type validator.\n *\n * @param {string} accept - It is the same as 'accept' attribute for HTML <input>.\n * @param {function} getError - A callback function for generating a customised user error.\n */\nexport function createFileTypeValidator<ErrorType = string>({\n accept,\n getError,\n}: {\n accept: string;\n getError?: (file: File) => ErrorType;\n}): FilesValidator<ErrorType> {\n return (files) => {\n const validate = (file: File) => {\n if (!accepts(file, accept)) {\n return getError\n ? getError(file)\n : `File ${file.name} does not have an accepted type.`;\n }\n };\n\n return files.map(validate);\n };\n}\n\n/**\n * Factory method for creating a common total selection size validator.\n *\n * @param {number} maxSize - Max selection size in bytes.\n * @param {function} getError - A callback function for generating a customised user error.\n */\nexport function createTotalSizeValidator<ErrorType = string>({\n maxSize,\n getError,\n}: {\n maxSize: number;\n getError?: (totalSize: number) => ErrorType;\n}): FilesValidator<ErrorType> {\n return (files) => {\n const totalSize = files.reduce((size, file) => size + file.size, 0);\n\n if (totalSize > maxSize) {\n return getError\n ? getError(totalSize)\n : `The file/s exceed the maximum upload limit of ${maxSize} bytes.`;\n }\n };\n}\n"],"names":["accepts"],"mappings":";;;;;;;;;;AAkBO,SAAS,uBAA4C,CAAA;AAAA,EAC1D,MAAA;AAAA,EACA,QAAA;AACF,CAG8B,EAAA;AAC5B,EAAA,OAAO,CAAC,KAAU,KAAA;AAChB,IAAM,MAAA,QAAA,GAAW,CAAC,IAAe,KAAA;AAC/B,MAAA,IAAI,CAACA,2BAAA,CAAQ,IAAM,EAAA,MAAM,CAAG,EAAA;AAC1B,QAAA,OAAO,QACH,GAAA,QAAA,CAAS,IAAI,CAAA,GACb,QAAQ,IAAK,CAAA,IAAA,CAAA,gCAAA,CAAA,CAAA;AAAA,OACnB;AAAA,KACF,CAAA;AAEA,IAAO,OAAA,KAAA,CAAM,IAAI,QAAQ,CAAA,CAAA;AAAA,GAC3B,CAAA;AACF,CAAA;AAQO,SAAS,wBAA6C,CAAA;AAAA,EAC3D,OAAA;AAAA,EACA,QAAA;AACF,CAG8B,EAAA;AAC5B,EAAA,OAAO,CAAC,KAAU,KAAA;AAChB,IAAM,MAAA,SAAA,GAAY,MAAM,MAAO,CAAA,CAAC,MAAM,IAAS,KAAA,IAAA,GAAO,IAAK,CAAA,IAAA,EAAM,CAAC,CAAA,CAAA;AAElE,IAAA,IAAI,YAAY,OAAS,EAAA;AACvB,MAAA,OAAO,QACH,GAAA,QAAA,CAAS,SAAS,CAAA,GAClB,CAAiD,8CAAA,EAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AAAA,KACvD;AAAA,GACF,CAAA;AACF;;;;;"}
@@ -1,64 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var core = require('@salt-ds/core');
7
- var icons = require('@salt-ds/icons');
8
- var clsx = require('clsx');
9
- var utils = require('./utils.js');
10
-
11
- const contentByType = /* @__PURE__ */ new Map([
12
- [
13
- "previous",
14
- {
15
- icon: icons.ChevronLeftIcon,
16
- name: "Previous Page",
17
- className: utils.withBaseName("previousButton")
18
- }
19
- ],
20
- [
21
- "next",
22
- {
23
- icon: icons.ChevronRightIcon,
24
- name: "Next Page",
25
- className: utils.withBaseName("nextButton")
26
- }
27
- ]
28
- ]);
29
- const ArrowButton = ({
30
- arrowButtonType,
31
- onPress,
32
- onKeyDown: onKeyDownProp,
33
- onClick: onClickProp,
34
- ...restProps
35
- }) => {
36
- const { icon: Icon, name, className } = contentByType.get(arrowButtonType);
37
- const onKeyDown = (event) => {
38
- if (event.key === "Enter") {
39
- event.preventDefault();
40
- onPress();
41
- }
42
- onKeyDownProp && onKeyDownProp(event);
43
- };
44
- const onClick = (event) => {
45
- onPress();
46
- onClickProp && onClickProp(event);
47
- };
48
- return /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
49
- ...restProps,
50
- variant: "secondary",
51
- className: clsx.clsx(utils.withBaseName("arrowButton"), className),
52
- role: "link",
53
- name,
54
- "aria-label": name,
55
- onKeyDown,
56
- onClick,
57
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
58
- "aria-label": name
59
- })
60
- });
61
- };
62
-
63
- exports.ArrowButton = ArrowButton;
64
- //# sourceMappingURL=ArrowButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrowButton.js","sources":["../src/pagination/ArrowButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon, IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ComponentType, KeyboardEventHandler, MouseEventHandler } from \"react\";\nimport { withBaseName } from \"./utils\";\n\nexport type ArrowButtonType = \"previous\" | \"next\";\n\nexport interface ArrowButtonProps extends ButtonProps {\n arrowButtonType: ArrowButtonType;\n onPress: () => void;\n}\n\ninterface ButtonContent {\n icon: ComponentType<IconProps>;\n name: string;\n className: string;\n}\n\nconst contentByType = new Map<ArrowButtonType, ButtonContent>([\n [\n \"previous\",\n {\n icon: ChevronLeftIcon,\n name: \"Previous Page\",\n className: withBaseName(\"previousButton\"),\n },\n ],\n [\n \"next\",\n {\n icon: ChevronRightIcon,\n name: \"Next Page\",\n className: withBaseName(\"nextButton\"),\n },\n ],\n]);\n\nexport const ArrowButton = ({\n arrowButtonType,\n onPress,\n onKeyDown: onKeyDownProp,\n onClick: onClickProp,\n ...restProps\n}: ArrowButtonProps) => {\n const { icon: Icon, name, className } = contentByType.get(arrowButtonType)!;\n\n const onKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n onPress();\n }\n onKeyDownProp && onKeyDownProp(event);\n };\n\n const onClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPress();\n onClickProp && onClickProp(event);\n };\n\n return (\n <Button\n {...restProps}\n variant=\"secondary\"\n className={clsx(withBaseName(\"arrowButton\"), className)}\n role=\"link\"\n name={name}\n aria-label={name}\n onKeyDown={onKeyDown}\n onClick={onClick}\n >\n <Icon aria-label={name} />\n </Button>\n );\n};\n"],"names":["ChevronLeftIcon","withBaseName","ChevronRightIcon","jsx","Button","clsx"],"mappings":";;;;;;;;;;AAmBA,MAAM,aAAA,uBAAoB,GAAoC,CAAA;AAAA,EAC5D;AAAA,IACE,UAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAAA,qBAAA;AAAA,MACN,IAAM,EAAA,eAAA;AAAA,MACN,SAAA,EAAWC,mBAAa,gBAAgB,CAAA;AAAA,KAC1C;AAAA,GACF;AAAA,EACA;AAAA,IACE,MAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAAC,sBAAA;AAAA,MACN,IAAM,EAAA,WAAA;AAAA,MACN,SAAA,EAAWD,mBAAa,YAAY,CAAA;AAAA,KACtC;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAEM,MAAM,cAAc,CAAC;AAAA,EAC1B,eAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAW,EAAA,aAAA;AAAA,EACX,OAAS,EAAA,WAAA;AAAA,EACN,GAAA,SAAA;AACL,CAAwB,KAAA;AACtB,EAAM,MAAA,EAAE,MAAM,IAAM,EAAA,IAAA,EAAM,WAAc,GAAA,aAAA,CAAc,IAAI,eAAe,CAAA,CAAA;AAEzE,EAAM,MAAA,SAAA,GAAqD,CAAC,KAAU,KAAA;AACpE,IAAI,IAAA,KAAA,CAAM,QAAQ,OAAS,EAAA;AACzB,MAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,MAAQ,OAAA,EAAA,CAAA;AAAA,KACV;AACA,IAAA,aAAA,IAAiB,cAAc,KAAK,CAAA,CAAA;AAAA,GACtC,CAAA;AAEA,EAAM,MAAA,OAAA,GAAgD,CAAC,KAAU,KAAA;AAC/D,IAAQ,OAAA,EAAA,CAAA;AACR,IAAA,WAAA,IAAe,YAAY,KAAK,CAAA,CAAA;AAAA,GAClC,CAAA;AAEA,EAAA,uBACGE,cAAA,CAAAC,WAAA,EAAA;AAAA,IACE,GAAG,SAAA;AAAA,IACJ,OAAQ,EAAA,WAAA;AAAA,IACR,SAAW,EAAAC,SAAA,CAAKJ,kBAAa,CAAA,aAAa,GAAG,SAAS,CAAA;AAAA,IACtD,IAAK,EAAA,MAAA;AAAA,IACL,IAAA;AAAA,IACA,YAAY,EAAA,IAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA;AAAA,IAEA,QAAC,kBAAAE,cAAA,CAAA,IAAA,EAAA;AAAA,MAAK,YAAY,EAAA,IAAA;AAAA,KAAM,CAAA;AAAA,GAC1B,CAAA,CAAA;AAEJ;;;;"}
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var CompactInput = require('./CompactInput.js');
7
- var PageButton = require('./PageButton.js');
8
- var utils = require('./utils.js');
9
-
10
- const CompactControls = ({
11
- page,
12
- count,
13
- onPageChange,
14
- FormFieldProps: FormFieldProps2
15
- }) => {
16
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
17
- children: [
18
- /* @__PURE__ */ jsxRuntime.jsx(CompactInput.CompactInput, {
19
- page,
20
- count,
21
- onPageChange,
22
- FormFieldProps: FormFieldProps2
23
- }),
24
- /* @__PURE__ */ jsxRuntime.jsx("span", {
25
- className: utils.withBaseName("compactSeparator"),
26
- children: "of"
27
- }),
28
- /* @__PURE__ */ jsxRuntime.jsx(PageButton.PageButton, {
29
- page: count,
30
- onPageChange,
31
- disabled: page === count
32
- })
33
- ]
34
- });
35
- };
36
-
37
- exports.CompactControls = CompactControls;
38
- //# sourceMappingURL=CompactControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompactControls.js","sources":["../src/pagination/CompactControls.tsx"],"sourcesContent":["import { FormFieldLegacyProps as FormFieldProps } from \"../form-field-legacy\";\nimport { CompactInput } from \"./CompactInput\";\nimport { PageButton } from \"./PageButton\";\nimport { withBaseName } from \"./utils\";\n\nexport interface CompactControlsProps {\n count: number;\n page: number;\n onPageChange: (page: number) => void;\n FormFieldProps?: Partial<FormFieldProps>;\n}\n\nexport const CompactControls = ({\n page,\n count,\n onPageChange,\n FormFieldProps,\n}: CompactControlsProps) => {\n return (\n <>\n <CompactInput\n page={page}\n count={count}\n onPageChange={onPageChange}\n FormFieldProps={FormFieldProps}\n />\n <span className={withBaseName(\"compactSeparator\")}>of</span>\n <PageButton\n page={count}\n onPageChange={onPageChange}\n disabled={page === count}\n />\n </>\n );\n};\n"],"names":["FormFieldProps","jsxs","Fragment","jsx","CompactInput","withBaseName","PageButton"],"mappings":";;;;;;;;;AAYO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAAA,EAAAA,eAAAA;AACF,CAA4B,KAAA;AAC1B,EACE,uBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACE,QAAA,EAAA;AAAA,sBAACC,cAAA,CAAAC,yBAAA,EAAA;AAAA,QACC,IAAA;AAAA,QACA,KAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAgBJ,EAAAA,eAAAA;AAAA,OAClB,CAAA;AAAA,sBACCG,cAAA,CAAA,MAAA,EAAA;AAAA,QAAK,SAAA,EAAWE,mBAAa,kBAAkB,CAAA;AAAA,QAAG,QAAA,EAAA,IAAA;AAAA,OAAE,CAAA;AAAA,sBACpDF,cAAA,CAAAG,qBAAA,EAAA;AAAA,QACC,IAAM,EAAA,KAAA;AAAA,QACN,YAAA;AAAA,QACA,UAAU,IAAS,KAAA,KAAA;AAAA,OACrB,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var utils = require('./utils.js');
7
- var usePagination = require('./usePagination.js');
8
- var PageButton = require('./PageButton.js');
9
-
10
- const Ellipsis = () => {
11
- return /* @__PURE__ */ jsxRuntime.jsx("div", {
12
- className: utils.withBaseName("ellipsis"),
13
- children: `\u2026`
14
- });
15
- };
16
- const mapRange = (range, fn) => {
17
- const result = [];
18
- for (let i = range[0]; i <= range[1]; ++i) {
19
- result.push(fn(i));
20
- }
21
- return result;
22
- };
23
- function RegularControls({
24
- page,
25
- count,
26
- onPageChange,
27
- siblingCount = 2,
28
- boundaryCount = 1
29
- }) {
30
- const renderPages = (range, selectedPage) => {
31
- if (!range) {
32
- return null;
33
- }
34
- return mapRange(range, (i) => /* @__PURE__ */ jsxRuntime.jsx(PageButton.PageButton, {
35
- page: i,
36
- isSelected: selectedPage === i,
37
- onPageChange
38
- }, i));
39
- };
40
- const [leftPages, middlePages, rightPages] = usePagination.usePagination(
41
- page,
42
- count,
43
- Math.max(1, boundaryCount),
44
- siblingCount
45
- );
46
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
47
- children: [
48
- renderPages(leftPages, page),
49
- leftPages && /* @__PURE__ */ jsxRuntime.jsx(Ellipsis, {}),
50
- renderPages(middlePages, page),
51
- rightPages && /* @__PURE__ */ jsxRuntime.jsx(Ellipsis, {}),
52
- renderPages(rightPages, page)
53
- ]
54
- });
55
- }
56
-
57
- exports.RegularControls = RegularControls;
58
- //# sourceMappingURL=RegularControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegularControls.js","sources":["../src/pagination/RegularControls.tsx"],"sourcesContent":["import { withBaseName } from \"./utils\";\nimport { PageRange, usePagination } from \"./usePagination\";\nimport { ReactElement } from \"react\";\nimport { PageButton } from \"./PageButton\";\n\nexport interface RegularControlsProps {\n count: number;\n page: number;\n onPageChange: (page: number) => void;\n boundaryCount?: number;\n siblingCount?: number;\n}\n\nconst Ellipsis = () => {\n return <div className={withBaseName(\"ellipsis\")}>{`\\u2026`}</div>;\n};\n\nconst mapRange = (range: PageRange, fn: (i: number) => ReactElement) => {\n const result: ReactElement[] = [];\n for (let i = range[0]; i <= range[1]; ++i) {\n result.push(fn(i));\n }\n return result;\n};\n\nexport function RegularControls({\n page,\n count,\n onPageChange,\n siblingCount = 2,\n boundaryCount = 1,\n}: RegularControlsProps) {\n const renderPages = (range?: PageRange, selectedPage?: number) => {\n if (!range) {\n return null;\n }\n return mapRange(range, (i) => (\n <PageButton\n key={i}\n page={i}\n isSelected={selectedPage === i}\n onPageChange={onPageChange}\n />\n ));\n };\n\n const [leftPages, middlePages, rightPages] = usePagination(\n page,\n count,\n Math.max(1, boundaryCount),\n siblingCount\n );\n\n return (\n <>\n {renderPages(leftPages, page)}\n {leftPages && <Ellipsis />}\n {renderPages(middlePages, page)}\n {rightPages && <Ellipsis />}\n {renderPages(rightPages, page)}\n </>\n );\n}\n"],"names":["jsx","withBaseName","PageButton","usePagination","jsxs","Fragment"],"mappings":";;;;;;;;;AAaA,MAAM,WAAW,MAAM;AACrB,EAAA,uBAAQA,cAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAA,EAAWC,mBAAa,UAAU,CAAA;AAAA,IAAI,QAAA,EAAA,CAAA,MAAA,CAAA;AAAA,GAAS,CAAA,CAAA;AAC7D,CAAA,CAAA;AAEA,MAAM,QAAA,GAAW,CAAC,KAAA,EAAkB,EAAoC,KAAA;AACtE,EAAA,MAAM,SAAyB,EAAC,CAAA;AAChC,EAAA,KAAA,IAAS,IAAI,KAAM,CAAA,CAAA,CAAA,EAAI,KAAK,KAAM,CAAA,CAAA,CAAA,EAAI,EAAE,CAAG,EAAA;AACzC,IAAO,MAAA,CAAA,IAAA,CAAK,EAAG,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,GACnB;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA,CAAA;AAEO,SAAS,eAAgB,CAAA;AAAA,EAC9B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAe,GAAA,CAAA;AAAA,EACf,aAAgB,GAAA,CAAA;AAClB,CAAyB,EAAA;AACvB,EAAM,MAAA,WAAA,GAAc,CAAC,KAAA,EAAmB,YAA0B,KAAA;AAChE,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AACA,IAAA,OAAO,QAAS,CAAA,KAAA,EAAO,CAAC,CAAA,qBACrBD,cAAA,CAAAE,qBAAA,EAAA;AAAA,MAEC,IAAM,EAAA,CAAA;AAAA,MACN,YAAY,YAAiB,KAAA,CAAA;AAAA,MAC7B,YAAA;AAAA,KAAA,EAHK,CAIP,CACD,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAA,MAAM,CAAC,SAAA,EAAW,WAAa,EAAA,UAAU,CAAI,GAAAC,2BAAA;AAAA,IAC3C,IAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,CAAK,GAAI,CAAA,CAAA,EAAG,aAAa,CAAA;AAAA,IACzB,YAAA;AAAA,GACF,CAAA;AAEA,EACE,uBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACG,QAAA,EAAA;AAAA,MAAA,WAAA,CAAY,WAAW,IAAI,CAAA;AAAA,MAC3B,SAAA,mCAAc,QAAS,EAAA,EAAA,CAAA;AAAA,MACvB,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA,MAC7B,UAAA,mCAAe,QAAS,EAAA,EAAA,CAAA;AAAA,MACxB,WAAA,CAAY,YAAY,IAAI,CAAA;AAAA,KAAA;AAAA,GAC/B,CAAA,CAAA;AAEJ;;;;"}
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var core = require('@salt-ds/core');
6
-
7
- const withBaseName = core.makePrefixer("saltPagination");
8
-
9
- exports.withBaseName = withBaseName;
10
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../src/pagination/utils.ts"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\n\nexport const withBaseName = makePrefixer(\"saltPagination\");\n"],"names":["makePrefixer"],"mappings":";;;;;;AAEa,MAAA,YAAA,GAAeA,kBAAa,gBAAgB;;;;"}
@@ -1,29 +0,0 @@
1
- import accepts from 'attr-accept';
2
-
3
- function createFileTypeValidator({
4
- accept,
5
- getError
6
- }) {
7
- return (files) => {
8
- const validate = (file) => {
9
- if (!accepts(file, accept)) {
10
- return getError ? getError(file) : `File ${file.name} does not have an accepted type.`;
11
- }
12
- };
13
- return files.map(validate);
14
- };
15
- }
16
- function createTotalSizeValidator({
17
- maxSize,
18
- getError
19
- }) {
20
- return (files) => {
21
- const totalSize = files.reduce((size, file) => size + file.size, 0);
22
- if (totalSize > maxSize) {
23
- return getError ? getError(totalSize) : `The file/s exceed the maximum upload limit of ${maxSize} bytes.`;
24
- }
25
- };
26
- }
27
-
28
- export { createFileTypeValidator, createTotalSizeValidator };
29
- //# sourceMappingURL=validators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sources":["../src/file-drop-zone/validators.ts"],"sourcesContent":["// TODO: verify whether we still needs to this library\n// HTML5's `accept` should be ok for the browsers we want to support.\nimport accepts from \"attr-accept\";\n\nexport type FilesValidator<ErrorType = string> = (\n files: ReadonlyArray<File>\n) =>\n | ReadonlyArray<ErrorType | string | undefined>\n | ErrorType\n | string\n | undefined;\n\n/**\n * Factory method for creating a common file type validator.\n *\n * @param {string} accept - It is the same as 'accept' attribute for HTML <input>.\n * @param {function} getError - A callback function for generating a customised user error.\n */\nexport function createFileTypeValidator<ErrorType = string>({\n accept,\n getError,\n}: {\n accept: string;\n getError?: (file: File) => ErrorType;\n}): FilesValidator<ErrorType> {\n return (files) => {\n const validate = (file: File) => {\n if (!accepts(file, accept)) {\n return getError\n ? getError(file)\n : `File ${file.name} does not have an accepted type.`;\n }\n };\n\n return files.map(validate);\n };\n}\n\n/**\n * Factory method for creating a common total selection size validator.\n *\n * @param {number} maxSize - Max selection size in bytes.\n * @param {function} getError - A callback function for generating a customised user error.\n */\nexport function createTotalSizeValidator<ErrorType = string>({\n maxSize,\n getError,\n}: {\n maxSize: number;\n getError?: (totalSize: number) => ErrorType;\n}): FilesValidator<ErrorType> {\n return (files) => {\n const totalSize = files.reduce((size, file) => size + file.size, 0);\n\n if (totalSize > maxSize) {\n return getError\n ? getError(totalSize)\n : `The file/s exceed the maximum upload limit of ${maxSize} bytes.`;\n }\n };\n}\n"],"names":[],"mappings":";;AAkBO,SAAS,uBAA4C,CAAA;AAAA,EAC1D,MAAA;AAAA,EACA,QAAA;AACF,CAG8B,EAAA;AAC5B,EAAA,OAAO,CAAC,KAAU,KAAA;AAChB,IAAM,MAAA,QAAA,GAAW,CAAC,IAAe,KAAA;AAC/B,MAAA,IAAI,CAAC,OAAA,CAAQ,IAAM,EAAA,MAAM,CAAG,EAAA;AAC1B,QAAA,OAAO,QACH,GAAA,QAAA,CAAS,IAAI,CAAA,GACb,QAAQ,IAAK,CAAA,IAAA,CAAA,gCAAA,CAAA,CAAA;AAAA,OACnB;AAAA,KACF,CAAA;AAEA,IAAO,OAAA,KAAA,CAAM,IAAI,QAAQ,CAAA,CAAA;AAAA,GAC3B,CAAA;AACF,CAAA;AAQO,SAAS,wBAA6C,CAAA;AAAA,EAC3D,OAAA;AAAA,EACA,QAAA;AACF,CAG8B,EAAA;AAC5B,EAAA,OAAO,CAAC,KAAU,KAAA;AAChB,IAAM,MAAA,SAAA,GAAY,MAAM,MAAO,CAAA,CAAC,MAAM,IAAS,KAAA,IAAA,GAAO,IAAK,CAAA,IAAA,EAAM,CAAC,CAAA,CAAA;AAElE,IAAA,IAAI,YAAY,OAAS,EAAA;AACvB,MAAA,OAAO,QACH,GAAA,QAAA,CAAS,SAAS,CAAA,GAClB,CAAiD,8CAAA,EAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AAAA,KACvD;AAAA,GACF,CAAA;AACF;;;;"}
@@ -1,60 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Button } from '@salt-ds/core';
3
- import { ChevronLeftIcon, ChevronRightIcon } from '@salt-ds/icons';
4
- import { clsx } from 'clsx';
5
- import { withBaseName } from './utils.js';
6
-
7
- const contentByType = /* @__PURE__ */ new Map([
8
- [
9
- "previous",
10
- {
11
- icon: ChevronLeftIcon,
12
- name: "Previous Page",
13
- className: withBaseName("previousButton")
14
- }
15
- ],
16
- [
17
- "next",
18
- {
19
- icon: ChevronRightIcon,
20
- name: "Next Page",
21
- className: withBaseName("nextButton")
22
- }
23
- ]
24
- ]);
25
- const ArrowButton = ({
26
- arrowButtonType,
27
- onPress,
28
- onKeyDown: onKeyDownProp,
29
- onClick: onClickProp,
30
- ...restProps
31
- }) => {
32
- const { icon: Icon, name, className } = contentByType.get(arrowButtonType);
33
- const onKeyDown = (event) => {
34
- if (event.key === "Enter") {
35
- event.preventDefault();
36
- onPress();
37
- }
38
- onKeyDownProp && onKeyDownProp(event);
39
- };
40
- const onClick = (event) => {
41
- onPress();
42
- onClickProp && onClickProp(event);
43
- };
44
- return /* @__PURE__ */ jsx(Button, {
45
- ...restProps,
46
- variant: "secondary",
47
- className: clsx(withBaseName("arrowButton"), className),
48
- role: "link",
49
- name,
50
- "aria-label": name,
51
- onKeyDown,
52
- onClick,
53
- children: /* @__PURE__ */ jsx(Icon, {
54
- "aria-label": name
55
- })
56
- });
57
- };
58
-
59
- export { ArrowButton };
60
- //# sourceMappingURL=ArrowButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrowButton.js","sources":["../src/pagination/ArrowButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon, IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ComponentType, KeyboardEventHandler, MouseEventHandler } from \"react\";\nimport { withBaseName } from \"./utils\";\n\nexport type ArrowButtonType = \"previous\" | \"next\";\n\nexport interface ArrowButtonProps extends ButtonProps {\n arrowButtonType: ArrowButtonType;\n onPress: () => void;\n}\n\ninterface ButtonContent {\n icon: ComponentType<IconProps>;\n name: string;\n className: string;\n}\n\nconst contentByType = new Map<ArrowButtonType, ButtonContent>([\n [\n \"previous\",\n {\n icon: ChevronLeftIcon,\n name: \"Previous Page\",\n className: withBaseName(\"previousButton\"),\n },\n ],\n [\n \"next\",\n {\n icon: ChevronRightIcon,\n name: \"Next Page\",\n className: withBaseName(\"nextButton\"),\n },\n ],\n]);\n\nexport const ArrowButton = ({\n arrowButtonType,\n onPress,\n onKeyDown: onKeyDownProp,\n onClick: onClickProp,\n ...restProps\n}: ArrowButtonProps) => {\n const { icon: Icon, name, className } = contentByType.get(arrowButtonType)!;\n\n const onKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n onPress();\n }\n onKeyDownProp && onKeyDownProp(event);\n };\n\n const onClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n onPress();\n onClickProp && onClickProp(event);\n };\n\n return (\n <Button\n {...restProps}\n variant=\"secondary\"\n className={clsx(withBaseName(\"arrowButton\"), className)}\n role=\"link\"\n name={name}\n aria-label={name}\n onKeyDown={onKeyDown}\n onClick={onClick}\n >\n <Icon aria-label={name} />\n </Button>\n );\n};\n"],"names":[],"mappings":";;;;;;AAmBA,MAAM,aAAA,uBAAoB,GAAoC,CAAA;AAAA,EAC5D;AAAA,IACE,UAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,eAAA;AAAA,MACN,IAAM,EAAA,eAAA;AAAA,MACN,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,KAC1C;AAAA,GACF;AAAA,EACA;AAAA,IACE,MAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,gBAAA;AAAA,MACN,IAAM,EAAA,WAAA;AAAA,MACN,SAAA,EAAW,aAAa,YAAY,CAAA;AAAA,KACtC;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAEM,MAAM,cAAc,CAAC;AAAA,EAC1B,eAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAW,EAAA,aAAA;AAAA,EACX,OAAS,EAAA,WAAA;AAAA,EACN,GAAA,SAAA;AACL,CAAwB,KAAA;AACtB,EAAM,MAAA,EAAE,MAAM,IAAM,EAAA,IAAA,EAAM,WAAc,GAAA,aAAA,CAAc,IAAI,eAAe,CAAA,CAAA;AAEzE,EAAM,MAAA,SAAA,GAAqD,CAAC,KAAU,KAAA;AACpE,IAAI,IAAA,KAAA,CAAM,QAAQ,OAAS,EAAA;AACzB,MAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,MAAQ,OAAA,EAAA,CAAA;AAAA,KACV;AACA,IAAA,aAAA,IAAiB,cAAc,KAAK,CAAA,CAAA;AAAA,GACtC,CAAA;AAEA,EAAM,MAAA,OAAA,GAAgD,CAAC,KAAU,KAAA;AAC/D,IAAQ,OAAA,EAAA,CAAA;AACR,IAAA,WAAA,IAAe,YAAY,KAAK,CAAA,CAAA;AAAA,GAClC,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACE,GAAG,SAAA;AAAA,IACJ,OAAQ,EAAA,WAAA;AAAA,IACR,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,aAAa,GAAG,SAAS,CAAA;AAAA,IACtD,IAAK,EAAA,MAAA;AAAA,IACL,IAAA;AAAA,IACA,YAAY,EAAA,IAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA;AAAA,IAEA,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA;AAAA,MAAK,YAAY,EAAA,IAAA;AAAA,KAAM,CAAA;AAAA,GAC1B,CAAA,CAAA;AAEJ;;;;"}
@@ -1,34 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { CompactInput } from './CompactInput.js';
3
- import { PageButton } from './PageButton.js';
4
- import { withBaseName } from './utils.js';
5
-
6
- const CompactControls = ({
7
- page,
8
- count,
9
- onPageChange,
10
- FormFieldProps: FormFieldProps2
11
- }) => {
12
- return /* @__PURE__ */ jsxs(Fragment, {
13
- children: [
14
- /* @__PURE__ */ jsx(CompactInput, {
15
- page,
16
- count,
17
- onPageChange,
18
- FormFieldProps: FormFieldProps2
19
- }),
20
- /* @__PURE__ */ jsx("span", {
21
- className: withBaseName("compactSeparator"),
22
- children: "of"
23
- }),
24
- /* @__PURE__ */ jsx(PageButton, {
25
- page: count,
26
- onPageChange,
27
- disabled: page === count
28
- })
29
- ]
30
- });
31
- };
32
-
33
- export { CompactControls };
34
- //# sourceMappingURL=CompactControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompactControls.js","sources":["../src/pagination/CompactControls.tsx"],"sourcesContent":["import { FormFieldLegacyProps as FormFieldProps } from \"../form-field-legacy\";\nimport { CompactInput } from \"./CompactInput\";\nimport { PageButton } from \"./PageButton\";\nimport { withBaseName } from \"./utils\";\n\nexport interface CompactControlsProps {\n count: number;\n page: number;\n onPageChange: (page: number) => void;\n FormFieldProps?: Partial<FormFieldProps>;\n}\n\nexport const CompactControls = ({\n page,\n count,\n onPageChange,\n FormFieldProps,\n}: CompactControlsProps) => {\n return (\n <>\n <CompactInput\n page={page}\n count={count}\n onPageChange={onPageChange}\n FormFieldProps={FormFieldProps}\n />\n <span className={withBaseName(\"compactSeparator\")}>of</span>\n <PageButton\n page={count}\n onPageChange={onPageChange}\n disabled={page === count}\n />\n </>\n );\n};\n"],"names":["FormFieldProps"],"mappings":";;;;;AAYO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAAA,EAAAA,eAAAA;AACF,CAA4B,KAAA;AAC1B,EACE,uBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,IACE,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,YAAA,EAAA;AAAA,QACC,IAAA;AAAA,QACA,KAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAgBA,EAAAA,eAAAA;AAAA,OAClB,CAAA;AAAA,sBACC,GAAA,CAAA,MAAA,EAAA;AAAA,QAAK,SAAA,EAAW,aAAa,kBAAkB,CAAA;AAAA,QAAG,QAAA,EAAA,IAAA;AAAA,OAAE,CAAA;AAAA,sBACpD,GAAA,CAAA,UAAA,EAAA;AAAA,QACC,IAAM,EAAA,KAAA;AAAA,QACN,YAAA;AAAA,QACA,UAAU,IAAS,KAAA,KAAA;AAAA,OACrB,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -1,54 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { withBaseName } from './utils.js';
3
- import { usePagination } from './usePagination.js';
4
- import { PageButton } from './PageButton.js';
5
-
6
- const Ellipsis = () => {
7
- return /* @__PURE__ */ jsx("div", {
8
- className: withBaseName("ellipsis"),
9
- children: `\u2026`
10
- });
11
- };
12
- const mapRange = (range, fn) => {
13
- const result = [];
14
- for (let i = range[0]; i <= range[1]; ++i) {
15
- result.push(fn(i));
16
- }
17
- return result;
18
- };
19
- function RegularControls({
20
- page,
21
- count,
22
- onPageChange,
23
- siblingCount = 2,
24
- boundaryCount = 1
25
- }) {
26
- const renderPages = (range, selectedPage) => {
27
- if (!range) {
28
- return null;
29
- }
30
- return mapRange(range, (i) => /* @__PURE__ */ jsx(PageButton, {
31
- page: i,
32
- isSelected: selectedPage === i,
33
- onPageChange
34
- }, i));
35
- };
36
- const [leftPages, middlePages, rightPages] = usePagination(
37
- page,
38
- count,
39
- Math.max(1, boundaryCount),
40
- siblingCount
41
- );
42
- return /* @__PURE__ */ jsxs(Fragment, {
43
- children: [
44
- renderPages(leftPages, page),
45
- leftPages && /* @__PURE__ */ jsx(Ellipsis, {}),
46
- renderPages(middlePages, page),
47
- rightPages && /* @__PURE__ */ jsx(Ellipsis, {}),
48
- renderPages(rightPages, page)
49
- ]
50
- });
51
- }
52
-
53
- export { RegularControls };
54
- //# sourceMappingURL=RegularControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegularControls.js","sources":["../src/pagination/RegularControls.tsx"],"sourcesContent":["import { withBaseName } from \"./utils\";\nimport { PageRange, usePagination } from \"./usePagination\";\nimport { ReactElement } from \"react\";\nimport { PageButton } from \"./PageButton\";\n\nexport interface RegularControlsProps {\n count: number;\n page: number;\n onPageChange: (page: number) => void;\n boundaryCount?: number;\n siblingCount?: number;\n}\n\nconst Ellipsis = () => {\n return <div className={withBaseName(\"ellipsis\")}>{`\\u2026`}</div>;\n};\n\nconst mapRange = (range: PageRange, fn: (i: number) => ReactElement) => {\n const result: ReactElement[] = [];\n for (let i = range[0]; i <= range[1]; ++i) {\n result.push(fn(i));\n }\n return result;\n};\n\nexport function RegularControls({\n page,\n count,\n onPageChange,\n siblingCount = 2,\n boundaryCount = 1,\n}: RegularControlsProps) {\n const renderPages = (range?: PageRange, selectedPage?: number) => {\n if (!range) {\n return null;\n }\n return mapRange(range, (i) => (\n <PageButton\n key={i}\n page={i}\n isSelected={selectedPage === i}\n onPageChange={onPageChange}\n />\n ));\n };\n\n const [leftPages, middlePages, rightPages] = usePagination(\n page,\n count,\n Math.max(1, boundaryCount),\n siblingCount\n );\n\n return (\n <>\n {renderPages(leftPages, page)}\n {leftPages && <Ellipsis />}\n {renderPages(middlePages, page)}\n {rightPages && <Ellipsis />}\n {renderPages(rightPages, page)}\n </>\n );\n}\n"],"names":[],"mappings":";;;;;AAaA,MAAM,WAAW,MAAM;AACrB,EAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,IAAI,QAAA,EAAA,CAAA,MAAA,CAAA;AAAA,GAAS,CAAA,CAAA;AAC7D,CAAA,CAAA;AAEA,MAAM,QAAA,GAAW,CAAC,KAAA,EAAkB,EAAoC,KAAA;AACtE,EAAA,MAAM,SAAyB,EAAC,CAAA;AAChC,EAAA,KAAA,IAAS,IAAI,KAAM,CAAA,CAAA,CAAA,EAAI,KAAK,KAAM,CAAA,CAAA,CAAA,EAAI,EAAE,CAAG,EAAA;AACzC,IAAO,MAAA,CAAA,IAAA,CAAK,EAAG,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,GACnB;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA,CAAA;AAEO,SAAS,eAAgB,CAAA;AAAA,EAC9B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAe,GAAA,CAAA;AAAA,EACf,aAAgB,GAAA,CAAA;AAClB,CAAyB,EAAA;AACvB,EAAM,MAAA,WAAA,GAAc,CAAC,KAAA,EAAmB,YAA0B,KAAA;AAChE,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AACA,IAAA,OAAO,QAAS,CAAA,KAAA,EAAO,CAAC,CAAA,qBACrB,GAAA,CAAA,UAAA,EAAA;AAAA,MAEC,IAAM,EAAA,CAAA;AAAA,MACN,YAAY,YAAiB,KAAA,CAAA;AAAA,MAC7B,YAAA;AAAA,KAAA,EAHK,CAIP,CACD,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAA,MAAM,CAAC,SAAA,EAAW,WAAa,EAAA,UAAU,CAAI,GAAA,aAAA;AAAA,IAC3C,IAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,CAAK,GAAI,CAAA,CAAA,EAAG,aAAa,CAAA;AAAA,IACzB,YAAA;AAAA,GACF,CAAA;AAEA,EACE,uBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,IACG,QAAA,EAAA;AAAA,MAAA,WAAA,CAAY,WAAW,IAAI,CAAA;AAAA,MAC3B,SAAA,wBAAc,QAAS,EAAA,EAAA,CAAA;AAAA,MACvB,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA,MAC7B,UAAA,wBAAe,QAAS,EAAA,EAAA,CAAA;AAAA,MACxB,WAAA,CAAY,YAAY,IAAI,CAAA;AAAA,KAAA;AAAA,GAC/B,CAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +0,0 @@
1
- import { makePrefixer } from '@salt-ds/core';
2
-
3
- const withBaseName = makePrefixer("saltPagination");
4
-
5
- export { withBaseName };
6
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../src/pagination/utils.ts"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\n\nexport const withBaseName = makePrefixer(\"saltPagination\");\n"],"names":[],"mappings":";;AAEa,MAAA,YAAA,GAAe,aAAa,gBAAgB;;;;"}
@@ -1,21 +0,0 @@
1
- export declare type FilesValidator<ErrorType = string> = (files: ReadonlyArray<File>) => ReadonlyArray<ErrorType | string | undefined> | ErrorType | string | undefined;
2
- /**
3
- * Factory method for creating a common file type validator.
4
- *
5
- * @param {string} accept - It is the same as 'accept' attribute for HTML <input>.
6
- * @param {function} getError - A callback function for generating a customised user error.
7
- */
8
- export declare function createFileTypeValidator<ErrorType = string>({ accept, getError, }: {
9
- accept: string;
10
- getError?: (file: File) => ErrorType;
11
- }): FilesValidator<ErrorType>;
12
- /**
13
- * Factory method for creating a common total selection size validator.
14
- *
15
- * @param {number} maxSize - Max selection size in bytes.
16
- * @param {function} getError - A callback function for generating a customised user error.
17
- */
18
- export declare function createTotalSizeValidator<ErrorType = string>({ maxSize, getError, }: {
19
- maxSize: number;
20
- getError?: (totalSize: number) => ErrorType;
21
- }): FilesValidator<ErrorType>;
@@ -1,7 +0,0 @@
1
- import { ButtonProps } from "@salt-ds/core";
2
- export declare type ArrowButtonType = "previous" | "next";
3
- export interface ArrowButtonProps extends ButtonProps {
4
- arrowButtonType: ArrowButtonType;
5
- onPress: () => void;
6
- }
7
- export declare const ArrowButton: ({ arrowButtonType, onPress, onKeyDown: onKeyDownProp, onClick: onClickProp, ...restProps }: ArrowButtonProps) => JSX.Element;
@@ -1,8 +0,0 @@
1
- import { FormFieldLegacyProps as FormFieldProps } from "../form-field-legacy";
2
- export interface CompactControlsProps {
3
- count: number;
4
- page: number;
5
- onPageChange: (page: number) => void;
6
- FormFieldProps?: Partial<FormFieldProps>;
7
- }
8
- export declare const CompactControls: ({ page, count, onPageChange, FormFieldProps, }: CompactControlsProps) => JSX.Element;
@@ -1,8 +0,0 @@
1
- export interface RegularControlsProps {
2
- count: number;
3
- page: number;
4
- onPageChange: (page: number) => void;
5
- boundaryCount?: number;
6
- siblingCount?: number;
7
- }
8
- export declare function RegularControls({ page, count, onPageChange, siblingCount, boundaryCount, }: RegularControlsProps): JSX.Element;
@@ -1 +0,0 @@
1
- export declare const withBaseName: import("@salt-ds/core").ClassNamePrefixer;