@mantine/core 9.0.0-alpha.6 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.cjs +1 -0
  2. package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  3. package/cjs/components/Badge/Badge.module.cjs.map +1 -1
  4. package/cjs/components/Button/Button.module.cjs.map +1 -1
  5. package/cjs/components/Checkbox/Checkbox.cjs +2 -1
  6. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  7. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs +2 -1
  8. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  9. package/cjs/components/Chip/Chip.module.cjs.map +1 -1
  10. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs +1 -0
  11. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  12. package/cjs/components/MultiSelect/MultiSelect.cjs +1 -0
  13. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  14. package/cjs/components/PasswordInput/PasswordInput.cjs +2 -0
  15. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  16. package/cjs/components/Pill/Pill.module.cjs.map +1 -1
  17. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs +2 -2
  18. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
  19. package/cjs/components/Radio/Radio.cjs +1 -1
  20. package/cjs/components/Radio/Radio.cjs.map +1 -1
  21. package/cjs/components/SegmentedControl/SegmentedControl.module.cjs.map +1 -1
  22. package/cjs/components/Select/Select.cjs +7 -6
  23. package/cjs/components/Select/Select.cjs.map +1 -1
  24. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  25. package/cjs/components/Stepper/Stepper.module.cjs +1 -0
  26. package/cjs/components/Stepper/Stepper.module.cjs.map +1 -1
  27. package/cjs/components/Stepper/StepperStep/StepperStep.cjs +8 -5
  28. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  29. package/cjs/components/TagsInput/TagsInput.cjs +1 -0
  30. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  31. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs +1 -1
  32. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  33. package/cjs/core/MantineProvider/default-theme.cjs +1 -1
  34. package/cjs/core/MantineProvider/default-theme.cjs.map +1 -1
  35. package/esm/components/Autocomplete/Autocomplete.mjs +1 -0
  36. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  37. package/esm/components/Badge/Badge.module.mjs.map +1 -1
  38. package/esm/components/Button/Button.module.mjs.map +1 -1
  39. package/esm/components/Checkbox/Checkbox.mjs +2 -1
  40. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  41. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs +2 -1
  42. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  43. package/esm/components/Chip/Chip.module.mjs.map +1 -1
  44. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs +1 -0
  45. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs.map +1 -1
  46. package/esm/components/MultiSelect/MultiSelect.mjs +1 -0
  47. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  48. package/esm/components/PasswordInput/PasswordInput.mjs +2 -0
  49. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  50. package/esm/components/Pill/Pill.module.mjs.map +1 -1
  51. package/esm/components/Popover/PopoverTarget/PopoverTarget.mjs +2 -2
  52. package/esm/components/Popover/PopoverTarget/PopoverTarget.mjs.map +1 -1
  53. package/esm/components/Radio/Radio.mjs +1 -1
  54. package/esm/components/Radio/Radio.mjs.map +1 -1
  55. package/esm/components/SegmentedControl/SegmentedControl.module.mjs.map +1 -1
  56. package/esm/components/Select/Select.mjs +7 -6
  57. package/esm/components/Select/Select.mjs.map +1 -1
  58. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  59. package/esm/components/Stepper/Stepper.module.mjs +1 -0
  60. package/esm/components/Stepper/Stepper.module.mjs.map +1 -1
  61. package/esm/components/Stepper/StepperStep/StepperStep.mjs +8 -5
  62. package/esm/components/Stepper/StepperStep/StepperStep.mjs.map +1 -1
  63. package/esm/components/TagsInput/TagsInput.mjs +1 -0
  64. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  65. package/esm/components/Timeline/TimelineItem/TimelineItem.mjs +1 -1
  66. package/esm/components/Timeline/TimelineItem/TimelineItem.mjs.map +1 -1
  67. package/esm/core/MantineProvider/default-theme.mjs +1 -1
  68. package/esm/core/MantineProvider/default-theme.mjs.map +1 -1
  69. package/esm/core/utils/get-env/get-env.mjs +1 -1
  70. package/esm/core/utils/get-env/get-env.mjs.map +1 -1
  71. package/lib/components/Combobox/use-combobox-target-props/use-combobox-target-props.d.ts +0 -16
  72. package/lib/components/Input/InputClearSection/InputClearSection.d.ts +1 -1
  73. package/lib/components/Input/use-input-props.d.ts +18 -18
  74. package/lib/components/Popover/use-popover.d.ts +2 -2
  75. package/lib/components/Stepper/Stepper.d.ts +1 -1
  76. package/lib/components/Stepper/StepperStep/StepperStep.d.ts +1 -1
  77. package/lib/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.d.ts +2 -2
  78. package/package.json +4 -4
  79. package/styles/Badge.css +2 -0
  80. package/styles/Badge.layer.css +2 -0
  81. package/styles/Button.css +2 -0
  82. package/styles/Button.layer.css +2 -0
  83. package/styles/Chip.css +2 -0
  84. package/styles/Chip.layer.css +2 -0
  85. package/styles/Pill.css +5 -2
  86. package/styles/Pill.layer.css +5 -2
  87. package/styles/SegmentedControl.css +3 -3
  88. package/styles/SegmentedControl.layer.css +3 -3
  89. package/styles/Stepper.css +4 -0
  90. package/styles/Stepper.layer.css +4 -0
  91. package/styles/default-css-variables.css +1 -1
  92. package/styles/default-css-variables.layer.css +1 -1
  93. package/styles.css +19 -6
  94. package/styles.layer.css +19 -6
  95. package/cjs/components/MaskInput/MaskInput.cjs +0 -24
  96. package/cjs/components/MaskInput/MaskInput.cjs.map +0 -1
  97. package/cjs/components/MaskInput/use-mask-input-props.cjs +0 -29
  98. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +0 -1
  99. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs +0 -33
  100. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +0 -1
  101. package/cjs/components/RollingNumber/DigitColumn.cjs +0 -41
  102. package/cjs/components/RollingNumber/DigitColumn.cjs.map +0 -1
  103. package/cjs/components/RollingNumber/RollingNumber.cjs +0 -100
  104. package/cjs/components/RollingNumber/RollingNumber.cjs.map +0 -1
  105. package/cjs/components/RollingNumber/RollingNumber.module.cjs +0 -12
  106. package/cjs/components/RollingNumber/RollingNumber.module.cjs.map +0 -1
  107. package/cjs/components/RollingNumber/build-value.cjs +0 -22
  108. package/cjs/components/RollingNumber/build-value.cjs.map +0 -1
  109. package/cjs/components/RollingNumber/get-digit-parts.cjs +0 -40
  110. package/cjs/components/RollingNumber/get-digit-parts.cjs.map +0 -1
  111. package/cjs/components/RollingNumber/get-render-slots.cjs +0 -78
  112. package/cjs/components/RollingNumber/get-render-slots.cjs.map +0 -1
  113. package/cjs/components/Tree/FlatTreeNode.cjs +0 -102
  114. package/cjs/components/Tree/FlatTreeNode.cjs.map +0 -1
  115. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs +0 -23
  116. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs.map +0 -1
  117. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs +0 -28
  118. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs.map +0 -1
  119. package/cjs/components/Tree/merge-async-children/merge-async-children.cjs +0 -32
  120. package/cjs/components/Tree/merge-async-children/merge-async-children.cjs.map +0 -1
  121. package/cjs/components/Tree/move-tree-node/move-tree-node.cjs +0 -78
  122. package/cjs/components/Tree/move-tree-node/move-tree-node.cjs.map +0 -1
  123. package/cjs/components/Tree/use-tree-node-drag-drop.cjs +0 -96
  124. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +0 -1
  125. package/cjs/components/TreeSelect/TreeSelect.cjs +0 -594
  126. package/cjs/components/TreeSelect/TreeSelect.cjs.map +0 -1
  127. package/cjs/components/TreeSelect/TreeSelect.module.cjs +0 -16
  128. package/cjs/components/TreeSelect/TreeSelect.module.cjs.map +0 -1
  129. package/cjs/components/TreeSelect/TreeSelectOption.cjs +0 -91
  130. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +0 -1
  131. package/cjs/components/TreeSelect/flatten-tree-select-data.cjs +0 -34
  132. package/cjs/components/TreeSelect/flatten-tree-select-data.cjs.map +0 -1
  133. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs +0 -30
  134. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +0 -1
  135. package/esm/components/MaskInput/MaskInput.mjs +0 -23
  136. package/esm/components/MaskInput/MaskInput.mjs.map +0 -1
  137. package/esm/components/MaskInput/use-mask-input-props.mjs +0 -28
  138. package/esm/components/MaskInput/use-mask-input-props.mjs.map +0 -1
  139. package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs +0 -32
  140. package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs.map +0 -1
  141. package/esm/components/RollingNumber/DigitColumn.mjs +0 -40
  142. package/esm/components/RollingNumber/DigitColumn.mjs.map +0 -1
  143. package/esm/components/RollingNumber/RollingNumber.mjs +0 -99
  144. package/esm/components/RollingNumber/RollingNumber.mjs.map +0 -1
  145. package/esm/components/RollingNumber/RollingNumber.module.mjs +0 -12
  146. package/esm/components/RollingNumber/RollingNumber.module.mjs.map +0 -1
  147. package/esm/components/RollingNumber/build-value.mjs +0 -22
  148. package/esm/components/RollingNumber/build-value.mjs.map +0 -1
  149. package/esm/components/RollingNumber/get-digit-parts.mjs +0 -40
  150. package/esm/components/RollingNumber/get-digit-parts.mjs.map +0 -1
  151. package/esm/components/RollingNumber/get-render-slots.mjs +0 -78
  152. package/esm/components/RollingNumber/get-render-slots.mjs.map +0 -1
  153. package/esm/components/Tree/FlatTreeNode.mjs +0 -101
  154. package/esm/components/Tree/FlatTreeNode.mjs.map +0 -1
  155. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs +0 -22
  156. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs.map +0 -1
  157. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs +0 -28
  158. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs.map +0 -1
  159. package/esm/components/Tree/merge-async-children/merge-async-children.mjs +0 -32
  160. package/esm/components/Tree/merge-async-children/merge-async-children.mjs.map +0 -1
  161. package/esm/components/Tree/move-tree-node/move-tree-node.mjs +0 -78
  162. package/esm/components/Tree/move-tree-node/move-tree-node.mjs.map +0 -1
  163. package/esm/components/Tree/use-tree-node-drag-drop.mjs +0 -96
  164. package/esm/components/Tree/use-tree-node-drag-drop.mjs.map +0 -1
  165. package/esm/components/TreeSelect/TreeSelect.mjs +0 -593
  166. package/esm/components/TreeSelect/TreeSelect.mjs.map +0 -1
  167. package/esm/components/TreeSelect/TreeSelect.module.mjs +0 -16
  168. package/esm/components/TreeSelect/TreeSelect.module.mjs.map +0 -1
  169. package/esm/components/TreeSelect/TreeSelectOption.mjs +0 -90
  170. package/esm/components/TreeSelect/TreeSelectOption.mjs.map +0 -1
  171. package/esm/components/TreeSelect/flatten-tree-select-data.mjs +0 -34
  172. package/esm/components/TreeSelect/flatten-tree-select-data.mjs.map +0 -1
  173. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs +0 -29
  174. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +0 -1
  175. package/lib/components/MaskInput/MaskInput.d.ts +0 -68
  176. package/lib/components/MaskInput/index.d.ts +0 -7
  177. package/lib/components/MaskInput/use-mask-input-props.d.ts +0 -428
  178. package/lib/components/Pagination/PaginationLabel/PaginationLabel.d.ts +0 -22
  179. package/lib/components/RollingNumber/DigitColumn.d.ts +0 -10
  180. package/lib/components/RollingNumber/RollingNumber.d.ts +0 -39
  181. package/lib/components/RollingNumber/build-value.d.ts +0 -10
  182. package/lib/components/RollingNumber/get-digit-parts.d.ts +0 -12
  183. package/lib/components/RollingNumber/get-render-slots.d.ts +0 -35
  184. package/lib/components/RollingNumber/index.d.ts +0 -9
  185. package/lib/components/Tree/FlatTreeNode.d.ts +0 -34
  186. package/lib/components/Tree/filter-tree-data/filter-tree-data.d.ts +0 -4
  187. package/lib/components/Tree/flatten-tree-data/flatten-tree-data.d.ts +0 -15
  188. package/lib/components/Tree/merge-async-children/merge-async-children.d.ts +0 -2
  189. package/lib/components/Tree/move-tree-node/move-tree-node.d.ts +0 -11
  190. package/lib/components/Tree/use-tree-node-drag-drop.d.ts +0 -18
  191. package/lib/components/TreeSelect/TreeSelect.d.ts +0 -122
  192. package/lib/components/TreeSelect/TreeSelectOption.d.ts +0 -29
  193. package/lib/components/TreeSelect/flatten-tree-select-data.d.ts +0 -12
  194. package/lib/components/TreeSelect/get-checked-values-by-strategy.d.ts +0 -4
  195. package/lib/components/TreeSelect/index.d.ts +0 -13
  196. package/styles/RollingNumber.css +0 -50
  197. package/styles/RollingNumber.layer.css +0 -51
  198. package/styles/TreeSelect.css +0 -113
  199. package/styles/TreeSelect.layer.css +0 -114
@@ -1,33 +0,0 @@
1
- "use client";
2
- require("../../../_virtual/_rolldown/runtime.cjs");
3
- const require_use_props = require("../../../core/MantineProvider/use-props/use-props.cjs");
4
- const require_factory = require("../../../core/factory/factory.cjs");
5
- const require_Box = require("../../../core/Box/Box.cjs");
6
- const require_Pagination_context = require("../Pagination.context.cjs");
7
- const require_Pagination_module = require("../Pagination.module.cjs");
8
- let react_jsx_runtime = require("react/jsx-runtime");
9
- //#region packages/@mantine/core/src/components/Pagination/PaginationLabel/PaginationLabel.tsx
10
- const defaultProps = { formatLabel: ({ page, totalPages }) => `Page ${page} of ${totalPages}` };
11
- const PaginationLabel = require_factory.factory((_props) => {
12
- const { classNames, className, style, styles, vars, formatLabel, ...others } = require_use_props.useProps("PaginationLabel", defaultProps, _props);
13
- const ctx = require_Pagination_context.usePaginationContext();
14
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
15
- ...ctx.getStyles("label", {
16
- className,
17
- style,
18
- styles,
19
- classNames
20
- }),
21
- ...others,
22
- children: formatLabel({
23
- page: ctx.active,
24
- totalPages: ctx.total
25
- })
26
- });
27
- });
28
- PaginationLabel.classes = require_Pagination_module.default;
29
- PaginationLabel.displayName = "@mantine/core/PaginationLabel";
30
- //#endregion
31
- exports.PaginationLabel = PaginationLabel;
32
-
33
- //# sourceMappingURL=PaginationLabel.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaginationLabel.cjs","names":["factory","useProps","usePaginationContext","Box","classes"],"sources":["../../../../src/components/Pagination/PaginationLabel/PaginationLabel.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { usePaginationContext } from '../Pagination.context';\nimport classes from '../Pagination.module.css';\n\nexport type PaginationFormatLabel = (input: { page: number; totalPages: number }) => string;\nexport type PaginationLabelStylesNames = 'label';\n\nexport interface PaginationLabelProps\n extends BoxProps, CompoundStylesApiProps<PaginationLabelFactory>, ElementProps<'div'> {\n /** Function to format the label text */\n formatLabel?: PaginationFormatLabel;\n}\n\nexport type PaginationLabelFactory = Factory<{\n props: PaginationLabelProps;\n ref: HTMLDivElement;\n stylesNames: PaginationLabelStylesNames;\n compound: true;\n}>;\n\nconst defaultProps = {\n formatLabel: ({ page, totalPages }) => `Page ${page} of ${totalPages}`,\n} satisfies Partial<PaginationLabelProps>;\n\nexport const PaginationLabel = factory<PaginationLabelFactory>((_props) => {\n const props = useProps('PaginationLabel', defaultProps, _props);\n const { classNames, className, style, styles, vars, formatLabel, ...others } = props;\n const ctx = usePaginationContext();\n\n return (\n <Box {...ctx.getStyles('label', { className, style, styles, classNames })} {...others}>\n {formatLabel({ page: ctx.active, totalPages: ctx.total })}\n </Box>\n );\n});\n\nPaginationLabel.classes = classes;\nPaginationLabel.displayName = '@mantine/core/PaginationLabel';\n"],"mappings":";;;;;;;;;AA4BA,MAAM,eAAe,EACnB,cAAc,EAAE,MAAM,iBAAiB,QAAQ,KAAK,MAAM,cAC3D;AAED,MAAa,kBAAkBA,gBAAAA,SAAiC,WAAW;CAEzE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,aAAa,GAAG,WADtDC,kBAAAA,SAAS,mBAAmB,cAAc,OAAO;CAE/D,MAAM,MAAMC,2BAAAA,sBAAsB;AAElC,QACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EAAK,GAAI,IAAI,UAAU,SAAS;GAAE;GAAW;GAAO;GAAQ;GAAY,CAAC;EAAE,GAAI;YAC5E,YAAY;GAAE,MAAM,IAAI;GAAQ,YAAY,IAAI;GAAO,CAAC;EACrD,CAAA;EAER;AAEF,gBAAgB,UAAUC,0BAAAA;AAC1B,gBAAgB,cAAc"}
@@ -1,41 +0,0 @@
1
- "use client";
2
- require("../../_virtual/_rolldown/runtime.cjs");
3
- let react_jsx_runtime = require("react/jsx-runtime");
4
- //#region packages/@mantine/core/src/components/RollingNumber/DigitColumn.tsx
5
- const DIGITS = [
6
- "0",
7
- "1",
8
- "2",
9
- "3",
10
- "4",
11
- "5",
12
- "6",
13
- "7",
14
- "8",
15
- "9"
16
- ];
17
- function DigitColumn({ digit, getStyles, previousDigit, empty }) {
18
- const digitIndex = DIGITS.indexOf(digit);
19
- const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;
20
- const direction = prevIndex === -1 || digitIndex >= prevIndex ? "up" : "down";
21
- const digitStyles = getStyles("digit");
22
- const columnStyles = getStyles("digitColumn");
23
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
24
- ...digitStyles,
25
- "data-empty": empty || void 0,
26
- "aria-hidden": "true",
27
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
28
- ...columnStyles,
29
- style: {
30
- ...columnStyles.style,
31
- transform: `translateY(${-digitIndex}em)`
32
- },
33
- "data-direction": direction,
34
- children: DIGITS.map((d) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: d }, d))
35
- })
36
- });
37
- }
38
- //#endregion
39
- exports.DigitColumn = DigitColumn;
40
-
41
- //# sourceMappingURL=DigitColumn.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DigitColumn.cjs","names":[],"sources":["../../../src/components/RollingNumber/DigitColumn.tsx"],"sourcesContent":["import { useStyles } from '../../core';\nimport type { RollingNumberFactory } from './RollingNumber';\n\nconst DIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\ninterface DigitColumnProps {\n digit: string;\n getStyles: ReturnType<typeof useStyles<RollingNumberFactory>>;\n previousDigit: string | null;\n empty?: boolean;\n}\n\nexport function DigitColumn({ digit, getStyles, previousDigit, empty }: DigitColumnProps) {\n const digitIndex = DIGITS.indexOf(digit);\n const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;\n const direction = prevIndex === -1 || digitIndex >= prevIndex ? 'up' : 'down';\n const digitStyles = getStyles('digit');\n const columnStyles = getStyles('digitColumn');\n\n return (\n <span {...digitStyles} data-empty={empty || undefined} aria-hidden=\"true\">\n <span\n {...columnStyles}\n style={{ ...columnStyles.style, transform: `translateY(${-digitIndex}em)` }}\n data-direction={direction}\n >\n {DIGITS.map((d) => (\n <span key={d}>{d}</span>\n ))}\n </span>\n </span>\n );\n}\n"],"mappings":";;;;AAGA,MAAM,SAAS;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAI;AASjE,SAAgB,YAAY,EAAE,OAAO,WAAW,eAAe,SAA2B;CACxF,MAAM,aAAa,OAAO,QAAQ,MAAM;CACxC,MAAM,YAAY,kBAAkB,OAAO,OAAO,QAAQ,cAAc,GAAG;CAC3E,MAAM,YAAY,cAAc,MAAM,cAAc,YAAY,OAAO;CACvE,MAAM,cAAc,UAAU,QAAQ;CACtC,MAAM,eAAe,UAAU,cAAc;AAE7C,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,GAAI;EAAa,cAAY,SAAS,KAAA;EAAW,eAAY;YACjE,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,GAAI;GACJ,OAAO;IAAE,GAAG,aAAa;IAAO,WAAW,cAAc,CAAC,WAAW;IAAM;GAC3E,kBAAgB;aAEf,OAAO,KAAK,MACX,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAA,UAAe,GAAS,EAAb,EAAa,CACxB;GACG,CAAA;EACF,CAAA"}
@@ -1,100 +0,0 @@
1
- "use client";
2
- require("../../_virtual/_rolldown/runtime.cjs");
3
- const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs");
4
- const require_use_props = require("../../core/MantineProvider/use-props/use-props.cjs");
5
- const require_use_styles = require("../../core/styles-api/use-styles/use-styles.cjs");
6
- const require_factory = require("../../core/factory/factory.cjs");
7
- const require_Box = require("../../core/Box/Box.cjs");
8
- const require_get_digit_parts = require("./get-digit-parts.cjs");
9
- const require_build_value = require("./build-value.cjs");
10
- const require_DigitColumn = require("./DigitColumn.cjs");
11
- const require_get_render_slots = require("./get-render-slots.cjs");
12
- const require_RollingNumber_module = require("./RollingNumber.module.cjs");
13
- let react = require("react");
14
- let react_jsx_runtime = require("react/jsx-runtime");
15
- //#region packages/@mantine/core/src/components/RollingNumber/RollingNumber.tsx
16
- const defaultProps = {
17
- animationDuration: 600,
18
- timingFunction: "ease",
19
- decimalSeparator: ".",
20
- tabularNumbers: true
21
- };
22
- const varsResolver = require_create_vars_resolver.createVarsResolver((_, { animationDuration, timingFunction }) => ({ root: {
23
- "--rn-duration": `${animationDuration}ms`,
24
- "--rn-timing-function": timingFunction
25
- } }));
26
- const RollingNumber = require_factory.factory((_props) => {
27
- const props = require_use_props.useProps("RollingNumber", defaultProps, _props);
28
- const { classNames, className, style, styles, unstyled, vars, value, prefix, suffix, decimalSeparator, thousandSeparator, decimalScale, fixedDecimalScale, animationDuration, timingFunction, tabularNumbers, mod, attributes, ...others } = props;
29
- const getStyles = require_use_styles.useStyles({
30
- name: "RollingNumber",
31
- classes: require_RollingNumber_module.default,
32
- props,
33
- className,
34
- style,
35
- classNames,
36
- styles,
37
- unstyled,
38
- attributes,
39
- vars,
40
- varsResolver
41
- });
42
- const previousValueRef = (0, react.useRef)(value);
43
- const previousValue = previousValueRef.current;
44
- (0, react.useEffect)(() => {
45
- previousValueRef.current = value;
46
- });
47
- const slots = require_get_render_slots.getRenderSlots({
48
- current: require_get_digit_parts.getDigitParts({
49
- value,
50
- decimalScale,
51
- fixedDecimalScale
52
- }),
53
- previous: require_get_digit_parts.getDigitParts({
54
- value: previousValue,
55
- decimalScale,
56
- fixedDecimalScale
57
- }),
58
- prefix,
59
- suffix,
60
- decimalSeparator,
61
- thousandSeparator
62
- });
63
- const accessibleValue = require_build_value.buildValue({
64
- value,
65
- prefix,
66
- suffix,
67
- decimalSeparator,
68
- thousandSeparator,
69
- decimalScale,
70
- fixedDecimalScale
71
- });
72
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
73
- ...getStyles("root"),
74
- mod: [{ "tabular-numbers": tabularNumbers }, mod],
75
- role: "status",
76
- "aria-label": accessibleValue,
77
- ...others,
78
- children: slots.map((slot) => {
79
- if (slot.type === "digit") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DigitColumn.DigitColumn, {
80
- digit: slot.digit,
81
- previousDigit: slot.previousDigit,
82
- getStyles,
83
- empty: slot.empty
84
- }, slot.key);
85
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
86
- ...getStyles("char"),
87
- "data-empty": slot.empty || void 0,
88
- "aria-hidden": "true",
89
- children: slot.char
90
- }, slot.key);
91
- })
92
- });
93
- });
94
- RollingNumber.classes = require_RollingNumber_module.default;
95
- RollingNumber.varsResolver = varsResolver;
96
- RollingNumber.displayName = "@mantine/core/RollingNumber";
97
- //#endregion
98
- exports.RollingNumber = RollingNumber;
99
-
100
- //# sourceMappingURL=RollingNumber.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RollingNumber.cjs","names":["createVarsResolver","factory","useProps","useStyles","getRenderSlots","getDigitParts","buildValue","Box","DigitColumn","classes"],"sources":["../../../src/components/RollingNumber/RollingNumber.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { buildValue } from './build-value';\nimport { DigitColumn } from './DigitColumn';\nimport { getDigitParts } from './get-digit-parts';\nimport { getRenderSlots } from './get-render-slots';\nimport classes from './RollingNumber.module.css';\n\nexport type RollingNumberStylesNames = 'root' | 'digit' | 'digitColumn' | 'char';\nexport type RollingNumberCssVariables = {\n root: '--rn-duration' | '--rn-timing-function';\n};\n\nexport interface RollingNumberProps\n extends BoxProps, StylesApiProps<RollingNumberFactory>, ElementProps<'div'> {\n /** Number value to display */\n value: number;\n\n /** Prefix added before the value */\n prefix?: string;\n\n /** Suffix added after the value */\n suffix?: string;\n\n /** Character used as a decimal separator @default '.' */\n decimalSeparator?: string;\n\n /** Character used to separate thousands, set to `true` for `,` @default false */\n thousandSeparator?: string | boolean;\n\n /** Number of decimal places to display */\n decimalScale?: number;\n\n /** If set, trailing zeros are added to match `decimalScale` @default false */\n fixedDecimalScale?: boolean;\n\n /** Animation duration in milliseconds @default 600 */\n animationDuration?: number;\n\n /** CSS timing function for animation @default 'ease' */\n timingFunction?: string;\n\n /** If set, use tabular (monospace) numbers @default true */\n tabularNumbers?: boolean;\n}\n\nexport type RollingNumberFactory = Factory<{\n props: RollingNumberProps;\n ref: HTMLDivElement;\n stylesNames: RollingNumberStylesNames;\n vars: RollingNumberCssVariables;\n}>;\n\nconst defaultProps = {\n animationDuration: 600,\n timingFunction: 'ease',\n decimalSeparator: '.',\n tabularNumbers: true,\n} satisfies Partial<RollingNumberProps>;\n\nconst varsResolver = createVarsResolver<RollingNumberFactory>(\n (_, { animationDuration, timingFunction }) => ({\n root: {\n '--rn-duration': `${animationDuration}ms`,\n '--rn-timing-function': timingFunction,\n },\n })\n);\n\nexport const RollingNumber = factory<RollingNumberFactory>((_props) => {\n const props = useProps('RollingNumber', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n animationDuration,\n timingFunction,\n tabularNumbers,\n mod,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RollingNumberFactory>({\n name: 'RollingNumber',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const previousValueRef = useRef(value);\n const previousValue = previousValueRef.current;\n\n useEffect(() => {\n previousValueRef.current = value;\n });\n\n const current = getDigitParts({ value, decimalScale, fixedDecimalScale });\n const prev = getDigitParts({ value: previousValue, decimalScale, fixedDecimalScale });\n\n const slots = getRenderSlots({\n current,\n previous: prev,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n });\n\n const accessibleValue = buildValue({\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n });\n\n return (\n <Box\n {...getStyles('root')}\n mod={[{ 'tabular-numbers': tabularNumbers }, mod]}\n role=\"status\"\n aria-label={accessibleValue}\n {...others}\n >\n {slots.map((slot) => {\n if (slot.type === 'digit') {\n return (\n <DigitColumn\n key={slot.key}\n digit={slot.digit}\n previousDigit={slot.previousDigit}\n getStyles={getStyles}\n empty={slot.empty}\n />\n );\n }\n\n return (\n <span\n key={slot.key}\n {...getStyles('char')}\n data-empty={slot.empty || undefined}\n aria-hidden=\"true\"\n >\n {slot.char}\n </span>\n );\n })}\n </Box>\n );\n});\n\nRollingNumber.classes = classes;\nRollingNumber.varsResolver = varsResolver;\nRollingNumber.displayName = '@mantine/core/RollingNumber';\n"],"mappings":";;;;;;;;;;;;;;;AA+DA,MAAM,eAAe;CACnB,mBAAmB;CACnB,gBAAgB;CAChB,kBAAkB;CAClB,gBAAgB;CACjB;AAED,MAAM,eAAeA,6BAAAA,oBAClB,GAAG,EAAE,mBAAmB,sBAAsB,EAC7C,MAAM;CACJ,iBAAiB,GAAG,kBAAkB;CACtC,wBAAwB;CACzB,EACF,EACF;AAED,MAAa,gBAAgBC,gBAAAA,SAA+B,WAAW;CACrE,MAAM,QAAQC,kBAAAA,SAAS,iBAAiB,cAAc,OAAO;CAC7D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,OACA,QACA,QACA,kBACA,mBACA,cACA,mBACA,mBACA,gBACA,gBACA,KACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAAgC;EAChD,MAAM;EACN,SAAA,6BAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,oBAAA,GAAA,MAAA,QAA0B,MAAM;CACtC,MAAM,gBAAgB,iBAAiB;AAEvC,EAAA,GAAA,MAAA,iBAAgB;AACd,mBAAiB,UAAU;GAC3B;CAKF,MAAM,QAAQC,yBAAAA,eAAe;EAC3B,SAJcC,wBAAAA,cAAc;GAAE;GAAO;GAAc;GAAmB,CAAC;EAKvE,UAJWA,wBAAAA,cAAc;GAAE,OAAO;GAAe;GAAc;GAAmB,CAAC;EAKnF;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,kBAAkBC,oBAAAA,WAAW;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EACE,GAAI,UAAU,OAAO;EACrB,KAAK,CAAC,EAAE,mBAAmB,gBAAgB,EAAE,IAAI;EACjD,MAAK;EACL,cAAY;EACZ,GAAI;YAEH,MAAM,KAAK,SAAS;AACnB,OAAI,KAAK,SAAS,QAChB,QACE,iBAAA,GAAA,kBAAA,KAACC,oBAAAA,aAAD;IAEE,OAAO,KAAK;IACZ,eAAe,KAAK;IACT;IACX,OAAO,KAAK;IACZ,EALK,KAAK,IAKV;AAIN,UACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAEE,GAAI,UAAU,OAAO;IACrB,cAAY,KAAK,SAAS,KAAA;IAC1B,eAAY;cAEX,KAAK;IACD,EANA,KAAK,IAML;IAET;EACE,CAAA;EAER;AAEF,cAAc,UAAUC,6BAAAA;AACxB,cAAc,eAAe;AAC7B,cAAc,cAAc"}
@@ -1,12 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/RollingNumber/RollingNumber.module.css
3
- var RollingNumber_module_default = {
4
- "root": "m_47dd3981",
5
- "digit": "m_b301d46e",
6
- "digitColumn": "m_8ae40964",
7
- "char": "m_47d64bf5"
8
- };
9
- //#endregion
10
- exports.default = RollingNumber_module_default;
11
-
12
- //# sourceMappingURL=RollingNumber.module.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RollingNumber.module.cjs","names":[],"sources":["../../../src/components/RollingNumber/RollingNumber.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n align-items: baseline;\n overflow: hidden;\n\n &[data-tabular-numbers] {\n font-variant-numeric: tabular-nums;\n }\n}\n\n.digit {\n display: inline-block;\n width: 1ch;\n height: 1em;\n overflow: hidden;\n line-height: 1;\n transition:\n width var(--rn-duration) var(--rn-timing-function),\n opacity var(--rn-duration) var(--rn-timing-function);\n\n &[data-empty] {\n width: 0;\n opacity: 0;\n }\n}\n\n.digitColumn {\n display: flex;\n flex-direction: column;\n transition: transform var(--rn-duration) var(--rn-timing-function);\n\n & > span {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 1em;\n }\n}\n\n.char {\n display: inline-block;\n overflow: hidden;\n white-space: pre;\n transition: opacity var(--rn-duration) var(--rn-timing-function);\n\n &[data-empty] {\n width: 0;\n opacity: 0;\n }\n}\n"],"mappings":""}
@@ -1,22 +0,0 @@
1
- "use client";
2
- const require_get_digit_parts = require("./get-digit-parts.cjs");
3
- //#region packages/@mantine/core/src/components/RollingNumber/build-value.ts
4
- function buildValue({ value, prefix, suffix, decimalSeparator = ".", thousandSeparator, decimalScale, fixedDecimalScale }) {
5
- const parts = require_get_digit_parts.getDigitParts({
6
- value,
7
- decimalScale,
8
- fixedDecimalScale
9
- });
10
- let intStr = parts.intDigits.join("");
11
- if (thousandSeparator) {
12
- const sep = typeof thousandSeparator === "string" ? thousandSeparator : ",";
13
- intStr = intStr.replace(/\B(?=(\d{3})+(?!\d))/g, sep);
14
- }
15
- let result = parts.negative ? `-${intStr}` : intStr;
16
- if (parts.fracDigits.length > 0) result += `${decimalSeparator}${parts.fracDigits.join("")}`;
17
- return `${prefix || ""}${result}${suffix || ""}`;
18
- }
19
- //#endregion
20
- exports.buildValue = buildValue;
21
-
22
- //# sourceMappingURL=build-value.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-value.cjs","names":["getDigitParts"],"sources":["../../../src/components/RollingNumber/build-value.ts"],"sourcesContent":["import { getDigitParts } from './get-digit-parts';\n\nexport interface BuildValueInput {\n value: number;\n prefix?: string;\n suffix?: string;\n decimalSeparator?: string;\n thousandSeparator?: string | boolean;\n decimalScale?: number;\n fixedDecimalScale?: boolean;\n}\n\nexport function buildValue({\n value,\n prefix,\n suffix,\n decimalSeparator = '.',\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n}: BuildValueInput): string {\n const parts = getDigitParts({ value, decimalScale, fixedDecimalScale });\n let intStr = parts.intDigits.join('');\n\n if (thousandSeparator) {\n const sep = typeof thousandSeparator === 'string' ? thousandSeparator : ',';\n intStr = intStr.replace(/\\B(?=(\\d{3})+(?!\\d))/g, sep);\n }\n\n let result = parts.negative ? `-${intStr}` : intStr;\n if (parts.fracDigits.length > 0) {\n result += `${decimalSeparator}${parts.fracDigits.join('')}`;\n }\n\n return `${prefix || ''}${result}${suffix || ''}`;\n}\n"],"mappings":";;;AAYA,SAAgB,WAAW,EACzB,OACA,QACA,QACA,mBAAmB,KACnB,mBACA,cACA,qBAC0B;CAC1B,MAAM,QAAQA,wBAAAA,cAAc;EAAE;EAAO;EAAc;EAAmB,CAAC;CACvE,IAAI,SAAS,MAAM,UAAU,KAAK,GAAG;AAErC,KAAI,mBAAmB;EACrB,MAAM,MAAM,OAAO,sBAAsB,WAAW,oBAAoB;AACxE,WAAS,OAAO,QAAQ,yBAAyB,IAAI;;CAGvD,IAAI,SAAS,MAAM,WAAW,IAAI,WAAW;AAC7C,KAAI,MAAM,WAAW,SAAS,EAC5B,WAAU,GAAG,mBAAmB,MAAM,WAAW,KAAK,GAAG;AAG3D,QAAO,GAAG,UAAU,KAAK,SAAS,UAAU"}
@@ -1,40 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/RollingNumber/get-digit-parts.ts
3
- const PLAIN_FORMAT = new Intl.NumberFormat("en-US", {
4
- useGrouping: false,
5
- maximumFractionDigits: 20
6
- });
7
- function toPlainString(num, decimalScale) {
8
- if (!Number.isFinite(num)) return "0";
9
- if (decimalScale !== void 0) return new Intl.NumberFormat("en-US", {
10
- useGrouping: false,
11
- minimumFractionDigits: decimalScale,
12
- maximumFractionDigits: decimalScale
13
- }).format(num);
14
- const str = String(num);
15
- if (!str.includes("e") && !str.includes("E")) return str;
16
- return PLAIN_FORMAT.format(num);
17
- }
18
- function getDigitParts({ value, decimalScale, fixedDecimalScale }) {
19
- let str = toPlainString(Math.abs(value), decimalScale);
20
- if (!fixedDecimalScale && decimalScale !== void 0) {
21
- const parts = str.split(".");
22
- if (parts[1]) {
23
- const trimmed = parts[1].replace(/0+$/, "");
24
- str = trimmed ? `${parts[0]}.${trimmed}` : parts[0];
25
- }
26
- }
27
- const dotIdx = str.indexOf(".");
28
- const intStr = dotIdx >= 0 ? str.slice(0, dotIdx) : str;
29
- const fracStr = dotIdx >= 0 ? str.slice(dotIdx + 1) : "";
30
- return {
31
- negative: value < 0,
32
- intDigits: intStr.split(""),
33
- fracDigits: fracStr ? fracStr.split("") : [],
34
- hasDecimal: dotIdx >= 0
35
- };
36
- }
37
- //#endregion
38
- exports.getDigitParts = getDigitParts;
39
-
40
- //# sourceMappingURL=get-digit-parts.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-digit-parts.cjs","names":[],"sources":["../../../src/components/RollingNumber/get-digit-parts.ts"],"sourcesContent":["export interface DigitParts {\n negative: boolean;\n intDigits: string[];\n fracDigits: string[];\n hasDecimal: boolean;\n}\n\nexport interface GetDigitPartsInput {\n value: number;\n decimalScale?: number;\n fixedDecimalScale?: boolean;\n}\n\nconst PLAIN_FORMAT = new Intl.NumberFormat('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20,\n});\n\nfunction toPlainString(num: number, decimalScale?: number): string {\n if (!Number.isFinite(num)) {\n return '0';\n }\n\n if (decimalScale !== undefined) {\n return new Intl.NumberFormat('en-US', {\n useGrouping: false,\n minimumFractionDigits: decimalScale,\n maximumFractionDigits: decimalScale,\n }).format(num);\n }\n\n const str = String(num);\n if (!str.includes('e') && !str.includes('E')) {\n return str;\n }\n\n return PLAIN_FORMAT.format(num);\n}\n\nexport function getDigitParts({\n value,\n decimalScale,\n fixedDecimalScale,\n}: GetDigitPartsInput): DigitParts {\n const abs = Math.abs(value);\n let str = toPlainString(abs, decimalScale);\n\n if (!fixedDecimalScale && decimalScale !== undefined) {\n const parts = str.split('.');\n if (parts[1]) {\n const trimmed = parts[1].replace(/0+$/, '');\n str = trimmed ? `${parts[0]}.${trimmed}` : parts[0];\n }\n }\n\n const dotIdx = str.indexOf('.');\n const intStr = dotIdx >= 0 ? str.slice(0, dotIdx) : str;\n const fracStr = dotIdx >= 0 ? str.slice(dotIdx + 1) : '';\n\n return {\n negative: value < 0,\n intDigits: intStr.split(''),\n fracDigits: fracStr ? fracStr.split('') : [],\n hasDecimal: dotIdx >= 0,\n };\n}\n"],"mappings":";;AAaA,MAAM,eAAe,IAAI,KAAK,aAAa,SAAS;CAClD,aAAa;CACb,uBAAuB;CACxB,CAAC;AAEF,SAAS,cAAc,KAAa,cAA+B;AACjE,KAAI,CAAC,OAAO,SAAS,IAAI,CACvB,QAAO;AAGT,KAAI,iBAAiB,KAAA,EACnB,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,aAAa;EACb,uBAAuB;EACvB,uBAAuB;EACxB,CAAC,CAAC,OAAO,IAAI;CAGhB,MAAM,MAAM,OAAO,IAAI;AACvB,KAAI,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,CAC1C,QAAO;AAGT,QAAO,aAAa,OAAO,IAAI;;AAGjC,SAAgB,cAAc,EAC5B,OACA,cACA,qBACiC;CAEjC,IAAI,MAAM,cADE,KAAK,IAAI,MAAM,EACE,aAAa;AAE1C,KAAI,CAAC,qBAAqB,iBAAiB,KAAA,GAAW;EACpD,MAAM,QAAQ,IAAI,MAAM,IAAI;AAC5B,MAAI,MAAM,IAAI;GACZ,MAAM,UAAU,MAAM,GAAG,QAAQ,OAAO,GAAG;AAC3C,SAAM,UAAU,GAAG,MAAM,GAAG,GAAG,YAAY,MAAM;;;CAIrD,MAAM,SAAS,IAAI,QAAQ,IAAI;CAC/B,MAAM,SAAS,UAAU,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG;CACpD,MAAM,UAAU,UAAU,IAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAEtD,QAAO;EACL,UAAU,QAAQ;EAClB,WAAW,OAAO,MAAM,GAAG;EAC3B,YAAY,UAAU,QAAQ,MAAM,GAAG,GAAG,EAAE;EAC5C,YAAY,UAAU;EACvB"}
@@ -1,78 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/RollingNumber/get-render-slots.ts
3
- function padLeft(arr, length) {
4
- return [...Array(length - arr.length).fill(null), ...arr];
5
- }
6
- function padRight(arr, length) {
7
- return [...arr, ...Array(length - arr.length).fill(null)];
8
- }
9
- function getRenderSlots({ current, previous, prefix, suffix, decimalSeparator = ".", thousandSeparator }) {
10
- const maxIntLen = Math.max(current.intDigits.length, previous.intDigits.length);
11
- const maxFracLen = Math.max(current.fracDigits.length, previous.fracDigits.length);
12
- const currIntPadded = padLeft(current.intDigits, maxIntLen);
13
- const prevIntPadded = padLeft(previous.intDigits, maxIntLen);
14
- const currFracPadded = padRight(current.fracDigits, maxFracLen);
15
- const prevFracPadded = padRight(previous.fracDigits, maxFracLen);
16
- const sep = thousandSeparator ? typeof thousandSeparator === "string" ? thousandSeparator : "," : null;
17
- const slots = [];
18
- if (prefix) for (let i = 0; i < prefix.length; i++) slots.push({
19
- type: "char",
20
- key: `prefix-${i}`,
21
- char: prefix[i],
22
- empty: false
23
- });
24
- if (current.negative || previous.negative) slots.push({
25
- type: "char",
26
- key: "sign",
27
- char: "-",
28
- empty: !current.negative
29
- });
30
- for (let i = 0; i < maxIntLen; i++) {
31
- const posFromRight = maxIntLen - 1 - i;
32
- const currDigit = currIntPadded[i];
33
- const prevDigit = prevIntPadded[i];
34
- const isEmpty = currDigit === null;
35
- slots.push({
36
- type: "digit",
37
- key: `int-${posFromRight}`,
38
- digit: currDigit ?? "0",
39
- previousDigit: prevDigit,
40
- empty: isEmpty
41
- });
42
- if (sep && posFromRight > 0 && posFromRight % 3 === 0) slots.push({
43
- type: "char",
44
- key: `sep-${posFromRight}`,
45
- char: sep,
46
- empty: isEmpty
47
- });
48
- }
49
- if (current.hasDecimal || previous.hasDecimal) slots.push({
50
- type: "char",
51
- key: "dec",
52
- char: decimalSeparator,
53
- empty: !current.hasDecimal
54
- });
55
- for (let i = 0; i < maxFracLen; i++) {
56
- const currDigit = currFracPadded[i];
57
- const prevDigit = prevFracPadded[i];
58
- const isEmpty = currDigit === null;
59
- slots.push({
60
- type: "digit",
61
- key: `frac-${i}`,
62
- digit: currDigit ?? "0",
63
- previousDigit: prevDigit,
64
- empty: isEmpty
65
- });
66
- }
67
- if (suffix) for (let i = 0; i < suffix.length; i++) slots.push({
68
- type: "char",
69
- key: `suffix-${i}`,
70
- char: suffix[i],
71
- empty: false
72
- });
73
- return slots;
74
- }
75
- //#endregion
76
- exports.getRenderSlots = getRenderSlots;
77
-
78
- //# sourceMappingURL=get-render-slots.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-render-slots.cjs","names":[],"sources":["../../../src/components/RollingNumber/get-render-slots.ts"],"sourcesContent":["import { getDigitParts, type DigitParts } from './get-digit-parts';\n\nexport interface DigitSlot {\n type: 'digit';\n key: string;\n digit: string;\n previousDigit: string | null;\n empty: boolean;\n}\n\nexport interface CharSlot {\n type: 'char';\n key: string;\n char: string;\n empty: boolean;\n}\n\nexport type RenderSlot = DigitSlot | CharSlot;\n\nexport interface GetRenderSlotsInput {\n current: DigitParts;\n previous: DigitParts;\n prefix?: string;\n suffix?: string;\n decimalSeparator?: string;\n thousandSeparator?: string | boolean;\n}\n\nfunction padLeft(arr: string[], length: number): (string | null)[] {\n return [...Array(length - arr.length).fill(null), ...arr];\n}\n\nfunction padRight(arr: string[], length: number): (string | null)[] {\n return [...arr, ...Array(length - arr.length).fill(null)];\n}\n\nexport function getRenderSlots({\n current,\n previous,\n prefix,\n suffix,\n decimalSeparator = '.',\n thousandSeparator,\n}: GetRenderSlotsInput): RenderSlot[] {\n const maxIntLen = Math.max(current.intDigits.length, previous.intDigits.length);\n const maxFracLen = Math.max(current.fracDigits.length, previous.fracDigits.length);\n\n const currIntPadded = padLeft(current.intDigits, maxIntLen);\n const prevIntPadded = padLeft(previous.intDigits, maxIntLen);\n const currFracPadded = padRight(current.fracDigits, maxFracLen);\n const prevFracPadded = padRight(previous.fracDigits, maxFracLen);\n\n const sep = thousandSeparator\n ? typeof thousandSeparator === 'string'\n ? thousandSeparator\n : ','\n : null;\n\n const slots: RenderSlot[] = [];\n\n if (prefix) {\n for (let i = 0; i < prefix.length; i++) {\n slots.push({ type: 'char', key: `prefix-${i}`, char: prefix[i], empty: false });\n }\n }\n\n if (current.negative || previous.negative) {\n slots.push({ type: 'char', key: 'sign', char: '-', empty: !current.negative });\n }\n\n for (let i = 0; i < maxIntLen; i++) {\n const posFromRight = maxIntLen - 1 - i;\n const currDigit = currIntPadded[i];\n const prevDigit = prevIntPadded[i];\n const isEmpty = currDigit === null;\n\n slots.push({\n type: 'digit',\n key: `int-${posFromRight}`,\n digit: currDigit ?? '0',\n previousDigit: prevDigit,\n empty: isEmpty,\n });\n\n if (sep && posFromRight > 0 && posFromRight % 3 === 0) {\n slots.push({ type: 'char', key: `sep-${posFromRight}`, char: sep, empty: isEmpty });\n }\n }\n\n if (current.hasDecimal || previous.hasDecimal) {\n slots.push({\n type: 'char',\n key: 'dec',\n char: decimalSeparator,\n empty: !current.hasDecimal,\n });\n }\n\n for (let i = 0; i < maxFracLen; i++) {\n const currDigit = currFracPadded[i];\n const prevDigit = prevFracPadded[i];\n const isEmpty = currDigit === null;\n\n slots.push({\n type: 'digit',\n key: `frac-${i}`,\n digit: currDigit ?? '0',\n previousDigit: prevDigit,\n empty: isEmpty,\n });\n }\n\n if (suffix) {\n for (let i = 0; i < suffix.length; i++) {\n slots.push({ type: 'char', key: `suffix-${i}`, char: suffix[i], empty: false });\n }\n }\n\n return slots;\n}\n\nexport interface GetRenderSlotsFromValuesInput {\n value: number;\n previousValue: number;\n prefix?: string;\n suffix?: string;\n decimalSeparator?: string;\n thousandSeparator?: string | boolean;\n decimalScale?: number;\n fixedDecimalScale?: boolean;\n}\n\nexport function getRenderSlotsFromValues({\n value,\n previousValue,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n}: GetRenderSlotsFromValuesInput): RenderSlot[] {\n const current = getDigitParts({ value, decimalScale, fixedDecimalScale });\n const prev = getDigitParts({ value: previousValue, decimalScale, fixedDecimalScale });\n\n return getRenderSlots({\n current,\n previous: prev,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n });\n}\n"],"mappings":";;AA4BA,SAAS,QAAQ,KAAe,QAAmC;AACjE,QAAO,CAAC,GAAG,MAAM,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,GAAG,IAAI;;AAG3D,SAAS,SAAS,KAAe,QAAmC;AAClE,QAAO,CAAC,GAAG,KAAK,GAAG,MAAM,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC;;AAG3D,SAAgB,eAAe,EAC7B,SACA,UACA,QACA,QACA,mBAAmB,KACnB,qBACoC;CACpC,MAAM,YAAY,KAAK,IAAI,QAAQ,UAAU,QAAQ,SAAS,UAAU,OAAO;CAC/E,MAAM,aAAa,KAAK,IAAI,QAAQ,WAAW,QAAQ,SAAS,WAAW,OAAO;CAElF,MAAM,gBAAgB,QAAQ,QAAQ,WAAW,UAAU;CAC3D,MAAM,gBAAgB,QAAQ,SAAS,WAAW,UAAU;CAC5D,MAAM,iBAAiB,SAAS,QAAQ,YAAY,WAAW;CAC/D,MAAM,iBAAiB,SAAS,SAAS,YAAY,WAAW;CAEhE,MAAM,MAAM,oBACR,OAAO,sBAAsB,WAC3B,oBACA,MACF;CAEJ,MAAM,QAAsB,EAAE;AAE9B,KAAI,OACF,MAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,IACjC,OAAM,KAAK;EAAE,MAAM;EAAQ,KAAK,UAAU;EAAK,MAAM,OAAO;EAAI,OAAO;EAAO,CAAC;AAInF,KAAI,QAAQ,YAAY,SAAS,SAC/B,OAAM,KAAK;EAAE,MAAM;EAAQ,KAAK;EAAQ,MAAM;EAAK,OAAO,CAAC,QAAQ;EAAU,CAAC;AAGhF,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,KAAK;EAClC,MAAM,eAAe,YAAY,IAAI;EACrC,MAAM,YAAY,cAAc;EAChC,MAAM,YAAY,cAAc;EAChC,MAAM,UAAU,cAAc;AAE9B,QAAM,KAAK;GACT,MAAM;GACN,KAAK,OAAO;GACZ,OAAO,aAAa;GACpB,eAAe;GACf,OAAO;GACR,CAAC;AAEF,MAAI,OAAO,eAAe,KAAK,eAAe,MAAM,EAClD,OAAM,KAAK;GAAE,MAAM;GAAQ,KAAK,OAAO;GAAgB,MAAM;GAAK,OAAO;GAAS,CAAC;;AAIvF,KAAI,QAAQ,cAAc,SAAS,WACjC,OAAM,KAAK;EACT,MAAM;EACN,KAAK;EACL,MAAM;EACN,OAAO,CAAC,QAAQ;EACjB,CAAC;AAGJ,MAAK,IAAI,IAAI,GAAG,IAAI,YAAY,KAAK;EACnC,MAAM,YAAY,eAAe;EACjC,MAAM,YAAY,eAAe;EACjC,MAAM,UAAU,cAAc;AAE9B,QAAM,KAAK;GACT,MAAM;GACN,KAAK,QAAQ;GACb,OAAO,aAAa;GACpB,eAAe;GACf,OAAO;GACR,CAAC;;AAGJ,KAAI,OACF,MAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,IACjC,OAAM,KAAK;EAAE,MAAM;EAAQ,KAAK,UAAU;EAAK,MAAM,OAAO;EAAI,OAAO;EAAO,CAAC;AAInF,QAAO"}
@@ -1,102 +0,0 @@
1
- "use client";
2
- require("../../_virtual/_rolldown/runtime.cjs");
3
- const require_find_element_ancestor = require("../../core/utils/find-element-ancestor/find-element-ancestor.cjs");
4
- const require_Tree_module = require("./Tree.module.cjs");
5
- let react = require("react");
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
- //#region packages/@mantine/core/src/components/Tree/FlatTreeNode.tsx
8
- function FlatTreeNode({ node, level, parent, hasChildren, expanded, tree, expandOnClick = true, selectOnClick, expandOnSpace = true, checkOnSpace, renderNode, style, tabIndex = -1 }) {
9
- const ref = (0, react.useRef)(null);
10
- const isLoading = tree.isNodeLoading(node.value);
11
- const loadError = tree.getNodeLoadError(node.value);
12
- const selected = tree.selectedState.includes(node.value);
13
- const handleClick = (event) => {
14
- event.stopPropagation();
15
- if (expandOnClick && hasChildren) tree.toggleExpanded(node.value);
16
- if (selectOnClick) tree.select(node.value);
17
- ref.current?.focus();
18
- };
19
- const handleKeyDown = (event) => {
20
- if (event.nativeEvent.code === "ArrowRight") {
21
- event.stopPropagation();
22
- event.preventDefault();
23
- if (expanded && hasChildren) {
24
- const root = require_find_element_ancestor.findElementAncestor(event.currentTarget, "[data-tree-root]");
25
- const nodes = root ? Array.from(root.querySelectorAll("[role=treeitem]")).filter((treeNode) => treeNode.style.display !== "none") : [];
26
- const index = nodes.indexOf(event.currentTarget);
27
- if (index !== -1) nodes[index + 1]?.focus();
28
- } else if (hasChildren) tree.expand(node.value);
29
- }
30
- if (event.nativeEvent.code === "ArrowLeft") {
31
- event.stopPropagation();
32
- event.preventDefault();
33
- if (expanded && hasChildren) tree.collapse(node.value);
34
- else if (parent) (require_find_element_ancestor.findElementAncestor(event.currentTarget, "[data-tree-root]")?.querySelector(`[role=treeitem][data-value="${CSS.escape(parent)}"]`))?.focus();
35
- }
36
- if (event.nativeEvent.code === "ArrowDown" || event.nativeEvent.code === "ArrowUp") {
37
- const root = require_find_element_ancestor.findElementAncestor(event.currentTarget, "[data-tree-root]");
38
- if (!root) return;
39
- event.stopPropagation();
40
- event.preventDefault();
41
- const nodes = Array.from(root.querySelectorAll("[role=treeitem]")).filter((treeNode) => treeNode.style.display !== "none");
42
- const index = nodes.indexOf(event.currentTarget);
43
- if (index === -1) return;
44
- nodes[event.nativeEvent.code === "ArrowDown" ? index + 1 : index - 1]?.focus();
45
- }
46
- if (event.nativeEvent.code === "Space") {
47
- if (expandOnSpace) {
48
- event.stopPropagation();
49
- event.preventDefault();
50
- tree.toggleExpanded(node.value);
51
- }
52
- if (checkOnSpace) {
53
- event.stopPropagation();
54
- event.preventDefault();
55
- if (tree.isNodeChecked(node.value)) tree.uncheckNode(node.value);
56
- else tree.checkNode(node.value);
57
- }
58
- }
59
- };
60
- const elementProps = {
61
- className: require_Tree_module.default.label,
62
- style: {},
63
- onClick: handleClick,
64
- "data-selected": selected || void 0,
65
- "data-value": node.value
66
- };
67
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
68
- ref,
69
- className: require_Tree_module.default.node,
70
- style: {
71
- "--label-offset": `calc(var(--level-offset, var(--mantine-spacing-lg)) * ${level - 1})`,
72
- ...style
73
- },
74
- role: "treeitem",
75
- "aria-selected": selected,
76
- "aria-expanded": hasChildren ? expanded : void 0,
77
- "data-value": node.value,
78
- "data-selected": selected || void 0,
79
- "data-level": level,
80
- tabIndex,
81
- onKeyDown: handleKeyDown,
82
- children: typeof renderNode === "function" ? renderNode({
83
- node,
84
- level,
85
- selected,
86
- tree,
87
- expanded,
88
- hasChildren,
89
- isLoading,
90
- loadError,
91
- elementProps
92
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
93
- ...elementProps,
94
- children: node.label
95
- })
96
- });
97
- }
98
- FlatTreeNode.displayName = "@mantine/core/FlatTreeNode";
99
- //#endregion
100
- exports.FlatTreeNode = FlatTreeNode;
101
-
102
- //# sourceMappingURL=FlatTreeNode.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlatTreeNode.cjs","names":["findElementAncestor","classes"],"sources":["../../../src/components/Tree/FlatTreeNode.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { findElementAncestor } from '../../core';\nimport type { RenderNode, TreeNodeData } from './Tree';\nimport type { TreeController } from './use-tree';\nimport classes from './Tree.module.css';\n\nexport interface FlatTreeNodeProps {\n /** Node data from tree data */\n node: TreeNodeData;\n\n /** Nesting level of the node, starts at 1 */\n level: number;\n\n /** Value of the parent node, `null` for root nodes */\n parent: string | null;\n\n /** Whether the node has children */\n hasChildren: boolean;\n\n /** Whether the node is expanded */\n expanded: boolean;\n\n /** Tree controller instance, return value of `useTree` hook */\n tree: TreeController;\n\n /** If set, tree node with children is expanded on click @default true */\n expandOnClick?: boolean;\n\n /** If set, tree node is selected on click @default false */\n selectOnClick?: boolean;\n\n /** If set, tree node with children is expanded on space key press @default true */\n expandOnSpace?: boolean;\n\n /** If set, tree node is checked on space key press @default false */\n checkOnSpace?: boolean;\n\n /** A function to render tree node label */\n renderNode?: RenderNode;\n\n /** Style to apply to the root element, used for virtualizer positioning */\n style?: React.CSSProperties;\n\n /** Tab index for the node */\n tabIndex?: number;\n}\n\nexport function FlatTreeNode({\n node,\n level,\n parent,\n hasChildren,\n expanded,\n tree,\n expandOnClick = true,\n selectOnClick,\n expandOnSpace = true,\n checkOnSpace,\n renderNode,\n style,\n tabIndex = -1,\n}: FlatTreeNodeProps) {\n const ref = useRef<HTMLDivElement>(null);\n const isLoading = tree.isNodeLoading(node.value);\n const loadError = tree.getNodeLoadError(node.value);\n const selected = tree.selectedState.includes(node.value);\n\n const handleClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (expandOnClick && hasChildren) {\n tree.toggleExpanded(node.value);\n }\n\n if (selectOnClick) {\n tree.select(node.value);\n }\n\n ref.current?.focus();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.nativeEvent.code === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n\n if (expanded && hasChildren) {\n const root = findElementAncestor(event.currentTarget as HTMLElement, '[data-tree-root]');\n const nodes = root\n ? Array.from(root.querySelectorAll<HTMLElement>('[role=treeitem]')).filter(\n (treeNode) => treeNode.style.display !== 'none'\n )\n : [];\n const index = nodes.indexOf(event.currentTarget as HTMLElement);\n if (index !== -1) {\n nodes[index + 1]?.focus();\n }\n } else if (hasChildren) {\n tree.expand(node.value);\n }\n }\n\n if (event.nativeEvent.code === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n\n if (expanded && hasChildren) {\n tree.collapse(node.value);\n } else if (parent) {\n const root = findElementAncestor(event.currentTarget as HTMLElement, '[data-tree-root]');\n const parentElement = root?.querySelector<HTMLElement>(\n `[role=treeitem][data-value=\"${CSS.escape(parent)}\"]`\n );\n parentElement?.focus();\n }\n }\n\n if (event.nativeEvent.code === 'ArrowDown' || event.nativeEvent.code === 'ArrowUp') {\n const root = findElementAncestor(event.currentTarget as HTMLElement, '[data-tree-root]');\n\n if (!root) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n const nodes = Array.from(root.querySelectorAll<HTMLElement>('[role=treeitem]')).filter(\n (treeNode) => treeNode.style.display !== 'none'\n );\n const index = nodes.indexOf(event.currentTarget as HTMLElement);\n\n if (index === -1) {\n return;\n }\n\n const nextIndex = event.nativeEvent.code === 'ArrowDown' ? index + 1 : index - 1;\n nodes[nextIndex]?.focus();\n }\n\n if (event.nativeEvent.code === 'Space') {\n if (expandOnSpace) {\n event.stopPropagation();\n event.preventDefault();\n tree.toggleExpanded(node.value);\n }\n\n if (checkOnSpace) {\n event.stopPropagation();\n event.preventDefault();\n if (tree.isNodeChecked(node.value)) {\n tree.uncheckNode(node.value);\n } else {\n tree.checkNode(node.value);\n }\n }\n }\n };\n\n const elementProps = {\n className: classes.label,\n style: {} as React.CSSProperties,\n onClick: handleClick,\n 'data-selected': selected || undefined,\n 'data-value': node.value,\n };\n\n return (\n <div\n ref={ref}\n className={classes.node}\n style={{\n ...({\n '--label-offset': `calc(var(--level-offset, var(--mantine-spacing-lg)) * ${level - 1})`,\n } as React.CSSProperties),\n ...style,\n }}\n role=\"treeitem\"\n aria-selected={selected}\n aria-expanded={hasChildren ? expanded : undefined}\n data-value={node.value}\n data-selected={selected || undefined}\n data-level={level}\n tabIndex={tabIndex}\n onKeyDown={handleKeyDown}\n >\n {typeof renderNode === 'function' ? (\n renderNode({\n node,\n level,\n selected,\n tree,\n expanded,\n hasChildren,\n isLoading,\n loadError,\n elementProps,\n })\n ) : (\n <div {...elementProps}>{node.label}</div>\n )}\n </div>\n );\n}\n\nFlatTreeNode.displayName = '@mantine/core/FlatTreeNode';\n"],"mappings":";;;;;;;AA+CA,SAAgB,aAAa,EAC3B,MACA,OACA,QACA,aACA,UACA,MACA,gBAAgB,MAChB,eACA,gBAAgB,MAChB,cACA,YACA,OACA,WAAW,MACS;CACpB,MAAM,OAAA,GAAA,MAAA,QAA6B,KAAK;CACxC,MAAM,YAAY,KAAK,cAAc,KAAK,MAAM;CAChD,MAAM,YAAY,KAAK,iBAAiB,KAAK,MAAM;CACnD,MAAM,WAAW,KAAK,cAAc,SAAS,KAAK,MAAM;CAExD,MAAM,eAAe,UAA4B;AAC/C,QAAM,iBAAiB;AAEvB,MAAI,iBAAiB,YACnB,MAAK,eAAe,KAAK,MAAM;AAGjC,MAAI,cACF,MAAK,OAAO,KAAK,MAAM;AAGzB,MAAI,SAAS,OAAO;;CAGtB,MAAM,iBAAiB,UAA+B;AACpD,MAAI,MAAM,YAAY,SAAS,cAAc;AAC3C,SAAM,iBAAiB;AACvB,SAAM,gBAAgB;AAEtB,OAAI,YAAY,aAAa;IAC3B,MAAM,OAAOA,8BAAAA,oBAAoB,MAAM,eAA8B,mBAAmB;IACxF,MAAM,QAAQ,OACV,MAAM,KAAK,KAAK,iBAA8B,kBAAkB,CAAC,CAAC,QAC/D,aAAa,SAAS,MAAM,YAAY,OAC1C,GACD,EAAE;IACN,MAAM,QAAQ,MAAM,QAAQ,MAAM,cAA6B;AAC/D,QAAI,UAAU,GACZ,OAAM,QAAQ,IAAI,OAAO;cAElB,YACT,MAAK,OAAO,KAAK,MAAM;;AAI3B,MAAI,MAAM,YAAY,SAAS,aAAa;AAC1C,SAAM,iBAAiB;AACvB,SAAM,gBAAgB;AAEtB,OAAI,YAAY,YACd,MAAK,SAAS,KAAK,MAAM;YAChB,OAKT,EAJaA,8BAAAA,oBAAoB,MAAM,eAA8B,mBAAmB,EAC5D,cAC1B,+BAA+B,IAAI,OAAO,OAAO,CAAC,IACnD,GACc,OAAO;;AAI1B,MAAI,MAAM,YAAY,SAAS,eAAe,MAAM,YAAY,SAAS,WAAW;GAClF,MAAM,OAAOA,8BAAAA,oBAAoB,MAAM,eAA8B,mBAAmB;AAExF,OAAI,CAAC,KACH;AAGF,SAAM,iBAAiB;AACvB,SAAM,gBAAgB;GACtB,MAAM,QAAQ,MAAM,KAAK,KAAK,iBAA8B,kBAAkB,CAAC,CAAC,QAC7E,aAAa,SAAS,MAAM,YAAY,OAC1C;GACD,MAAM,QAAQ,MAAM,QAAQ,MAAM,cAA6B;AAE/D,OAAI,UAAU,GACZ;AAIF,SADkB,MAAM,YAAY,SAAS,cAAc,QAAQ,IAAI,QAAQ,IAC7D,OAAO;;AAG3B,MAAI,MAAM,YAAY,SAAS,SAAS;AACtC,OAAI,eAAe;AACjB,UAAM,iBAAiB;AACvB,UAAM,gBAAgB;AACtB,SAAK,eAAe,KAAK,MAAM;;AAGjC,OAAI,cAAc;AAChB,UAAM,iBAAiB;AACvB,UAAM,gBAAgB;AACtB,QAAI,KAAK,cAAc,KAAK,MAAM,CAChC,MAAK,YAAY,KAAK,MAAM;QAE5B,MAAK,UAAU,KAAK,MAAM;;;;CAMlC,MAAM,eAAe;EACnB,WAAWC,oBAAAA,QAAQ;EACnB,OAAO,EAAE;EACT,SAAS;EACT,iBAAiB,YAAY,KAAA;EAC7B,cAAc,KAAK;EACpB;AAED,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACO;EACL,WAAWA,oBAAAA,QAAQ;EACnB,OAAO;GAEH,kBAAkB,yDAAyD,QAAQ,EAAE;GAEvF,GAAG;GACJ;EACD,MAAK;EACL,iBAAe;EACf,iBAAe,cAAc,WAAW,KAAA;EACxC,cAAY,KAAK;EACjB,iBAAe,YAAY,KAAA;EAC3B,cAAY;EACF;EACV,WAAW;YAEV,OAAO,eAAe,aACrB,WAAW;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,GAEF,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAK,GAAI;aAAe,KAAK;GAAY,CAAA;EAEvC,CAAA;;AAIV,aAAa,cAAc"}
@@ -1,23 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/Tree/filter-tree-data/filter-tree-data.ts
3
- function defaultTreeNodeFilter(query, node) {
4
- return (typeof node.label === "string" ? node.label : node.value).toLowerCase().includes(query.toLowerCase().trim());
5
- }
6
- function filterTreeData(data, query, filter = defaultTreeNodeFilter) {
7
- if (!query.trim()) return data;
8
- const result = [];
9
- for (const node of data) {
10
- const nodeMatches = filter(query, node);
11
- const filteredChildren = Array.isArray(node.children) && node.children.length > 0 ? filterTreeData(node.children, query, filter) : [];
12
- if (nodeMatches || filteredChildren.length > 0) result.push(filteredChildren.length > 0 ? {
13
- ...node,
14
- children: filteredChildren
15
- } : { ...node });
16
- }
17
- return result;
18
- }
19
- //#endregion
20
- exports.defaultTreeNodeFilter = defaultTreeNodeFilter;
21
- exports.filterTreeData = filterTreeData;
22
-
23
- //# sourceMappingURL=filter-tree-data.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-tree-data.cjs","names":[],"sources":["../../../../src/components/Tree/filter-tree-data/filter-tree-data.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport type TreeNodeFilter = (query: string, node: TreeNodeData) => boolean;\n\nexport function defaultTreeNodeFilter(query: string, node: TreeNodeData): boolean {\n const label = typeof node.label === 'string' ? node.label : node.value;\n return label.toLowerCase().includes(query.toLowerCase().trim());\n}\n\nexport function filterTreeData(\n data: TreeNodeData[],\n query: string,\n filter: TreeNodeFilter = defaultTreeNodeFilter\n): TreeNodeData[] {\n if (!query.trim()) {\n return data;\n }\n\n const result: TreeNodeData[] = [];\n\n for (const node of data) {\n const nodeMatches = filter(query, node);\n const filteredChildren =\n Array.isArray(node.children) && node.children.length > 0\n ? filterTreeData(node.children, query, filter)\n : [];\n\n if (nodeMatches || filteredChildren.length > 0) {\n result.push(\n filteredChildren.length > 0 ? { ...node, children: filteredChildren } : { ...node }\n );\n }\n }\n\n return result;\n}\n"],"mappings":";;AAIA,SAAgB,sBAAsB,OAAe,MAA6B;AAEhF,SADc,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAK,OACpD,aAAa,CAAC,SAAS,MAAM,aAAa,CAAC,MAAM,CAAC;;AAGjE,SAAgB,eACd,MACA,OACA,SAAyB,uBACT;AAChB,KAAI,CAAC,MAAM,MAAM,CACf,QAAO;CAGT,MAAM,SAAyB,EAAE;AAEjC,MAAK,MAAM,QAAQ,MAAM;EACvB,MAAM,cAAc,OAAO,OAAO,KAAK;EACvC,MAAM,mBACJ,MAAM,QAAQ,KAAK,SAAS,IAAI,KAAK,SAAS,SAAS,IACnD,eAAe,KAAK,UAAU,OAAO,OAAO,GAC5C,EAAE;AAER,MAAI,eAAe,iBAAiB,SAAS,EAC3C,QAAO,KACL,iBAAiB,SAAS,IAAI;GAAE,GAAG;GAAM,UAAU;GAAkB,GAAG,EAAE,GAAG,MAAM,CACpF;;AAIL,QAAO"}
@@ -1,28 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/Tree/flatten-tree-data/flatten-tree-data.ts
3
- function flattenTreeDataTo(acc, data, expandedState, parent, level) {
4
- for (let i = 0; i < data.length; i++) {
5
- const node = data[i];
6
- const hasLoadedChildren = Array.isArray(node.children);
7
- const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;
8
- const hasChildren = hasLoadedChildren || hasAsyncChildren;
9
- const expanded = expandedState[node.value] || false;
10
- acc.push({
11
- node,
12
- level,
13
- parent,
14
- hasChildren,
15
- expanded
16
- });
17
- if (expanded && hasLoadedChildren) flattenTreeDataTo(acc, node.children, expandedState, node.value, level + 1);
18
- }
19
- }
20
- function flattenTreeData(data, expandedState) {
21
- const result = [];
22
- flattenTreeDataTo(result, data, expandedState, null, 1);
23
- return result;
24
- }
25
- //#endregion
26
- exports.flattenTreeData = flattenTreeData;
27
-
28
- //# sourceMappingURL=flatten-tree-data.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten-tree-data.cjs","names":[],"sources":["../../../../src/components/Tree/flatten-tree-data/flatten-tree-data.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport type { TreeExpandedState } from '../use-tree';\n\nexport interface FlattenedTreeNodeData {\n /** Node data from tree data */\n node: TreeNodeData;\n\n /** Nesting level of the node, starts at 1 */\n level: number;\n\n /** Value of the parent node, `null` for root nodes */\n parent: string | null;\n\n /** Whether the node has children */\n hasChildren: boolean;\n\n /** Whether the node is expanded */\n expanded: boolean;\n}\n\nfunction flattenTreeDataTo(\n acc: FlattenedTreeNodeData[],\n data: TreeNodeData[],\n expandedState: TreeExpandedState,\n parent: string | null,\n level: number\n): void {\n for (let i = 0; i < data.length; i++) {\n const node = data[i];\n const hasLoadedChildren = Array.isArray(node.children);\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;\n const hasChildren = hasLoadedChildren || hasAsyncChildren;\n const expanded = expandedState[node.value] || false;\n\n acc.push({ node, level, parent, hasChildren, expanded });\n\n if (expanded && hasLoadedChildren) {\n flattenTreeDataTo(acc, node.children!, expandedState, node.value, level + 1);\n }\n }\n}\n\nexport function flattenTreeData(\n data: TreeNodeData[],\n expandedState: TreeExpandedState\n): FlattenedTreeNodeData[] {\n const result: FlattenedTreeNodeData[] = [];\n flattenTreeDataTo(result, data, expandedState, null, 1);\n return result;\n}\n"],"mappings":";;AAoBA,SAAS,kBACP,KACA,MACA,eACA,QACA,OACM;AACN,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;EAClB,MAAM,oBAAoB,MAAM,QAAQ,KAAK,SAAS;EACtD,MAAM,mBAAmB,CAAC,CAAC,KAAK,eAAe,CAAC;EAChD,MAAM,cAAc,qBAAqB;EACzC,MAAM,WAAW,cAAc,KAAK,UAAU;AAE9C,MAAI,KAAK;GAAE;GAAM;GAAO;GAAQ;GAAa;GAAU,CAAC;AAExD,MAAI,YAAY,kBACd,mBAAkB,KAAK,KAAK,UAAW,eAAe,KAAK,OAAO,QAAQ,EAAE;;;AAKlF,SAAgB,gBACd,MACA,eACyB;CACzB,MAAM,SAAkC,EAAE;AAC1C,mBAAkB,QAAQ,MAAM,eAAe,MAAM,EAAE;AACvD,QAAO"}
@@ -1,32 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/Tree/merge-async-children/merge-async-children.ts
3
- function mergeAsyncChildren(data, parentValue, children) {
4
- let changed = false;
5
- const result = data.map((node) => {
6
- if (node.value === parentValue) {
7
- changed = true;
8
- const merged = {
9
- ...node,
10
- children
11
- };
12
- delete merged.hasChildren;
13
- return merged;
14
- }
15
- if (Array.isArray(node.children)) {
16
- const updatedChildren = mergeAsyncChildren(node.children, parentValue, children);
17
- if (updatedChildren !== node.children) {
18
- changed = true;
19
- return {
20
- ...node,
21
- children: updatedChildren
22
- };
23
- }
24
- }
25
- return node;
26
- });
27
- return changed ? result : data;
28
- }
29
- //#endregion
30
- exports.mergeAsyncChildren = mergeAsyncChildren;
31
-
32
- //# sourceMappingURL=merge-async-children.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-async-children.cjs","names":[],"sources":["../../../../src/components/Tree/merge-async-children/merge-async-children.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport function mergeAsyncChildren(\n data: TreeNodeData[],\n parentValue: string,\n children: TreeNodeData[]\n): TreeNodeData[] {\n let changed = false;\n\n const result = data.map((node) => {\n if (node.value === parentValue) {\n changed = true;\n const merged: TreeNodeData = { ...node, children };\n delete merged.hasChildren;\n return merged;\n }\n\n if (Array.isArray(node.children)) {\n const updatedChildren = mergeAsyncChildren(node.children, parentValue, children);\n if (updatedChildren !== node.children) {\n changed = true;\n return { ...node, children: updatedChildren };\n }\n }\n\n return node;\n });\n\n return changed ? result : data;\n}\n"],"mappings":";;AAEA,SAAgB,mBACd,MACA,aACA,UACgB;CAChB,IAAI,UAAU;CAEd,MAAM,SAAS,KAAK,KAAK,SAAS;AAChC,MAAI,KAAK,UAAU,aAAa;AAC9B,aAAU;GACV,MAAM,SAAuB;IAAE,GAAG;IAAM;IAAU;AAClD,UAAO,OAAO;AACd,UAAO;;AAGT,MAAI,MAAM,QAAQ,KAAK,SAAS,EAAE;GAChC,MAAM,kBAAkB,mBAAmB,KAAK,UAAU,aAAa,SAAS;AAChF,OAAI,oBAAoB,KAAK,UAAU;AACrC,cAAU;AACV,WAAO;KAAE,GAAG;KAAM,UAAU;KAAiB;;;AAIjD,SAAO;GACP;AAEF,QAAO,UAAU,SAAS"}