@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 +0,0 @@
1
- {"version":3,"file":"TreeSelect.cjs","names":["genericFactory","useProps","useCombobox","getTreeExpandedState","findTreeNode","expandToLeafChecked","filterTreeData","flattenTreeSelectData","useStyles","useResolvedStylesApi","extractStyleProps","isNodeChecked","getChildrenNodesValues","checkedToValue","Combobox","Pill","isNodeIndeterminate","TreeSelectOption","classes","ScrollArea","PillsInput","InputBase"],"sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n extractStyleProps,\n Factory,\n genericFactory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Combobox, ComboboxLikeStylesNames, useCombobox } from '../Combobox';\nimport {\n __BaseInputProps,\n __InputStylesNames,\n ClearSectionMode,\n InputClearButtonProps,\n InputVariant,\n} from '../Input';\nimport { InputBase } from '../InputBase';\nimport { Pill } from '../Pill';\nimport { PillsInput } from '../PillsInput';\nimport { ScrollArea, ScrollAreaProps } from '../ScrollArea';\nimport type { TreeNodeData } from '../Tree';\nimport { filterTreeData } from '../Tree/filter-tree-data/filter-tree-data';\nimport {\n findTreeNode,\n getChildrenNodesValues,\n} from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\nimport { isNodeIndeterminate } from '../Tree/is-node-indeterminate/is-node-indeterminate';\nimport { getTreeExpandedState, TreeExpandedState } from '../Tree/use-tree';\nimport { flattenTreeSelectData } from './flatten-tree-select-data';\nimport {\n CheckedStrategy,\n checkedToValue,\n expandToLeafChecked,\n} from './get-checked-values-by-strategy';\nimport { TreeSelectOption, TreeSelectRenderNodePayload } from './TreeSelectOption';\nimport classes from './TreeSelect.module.css';\n\nexport type TreeSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox';\n\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[];\n\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'>\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<TreeSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Tree data */\n data: TreeNodeData[];\n\n /** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */\n mode?: Mode;\n\n /** Controlled value */\n value?: TreeSelectValue<Mode>;\n\n /** Default value */\n defaultValue?: TreeSelectValue<Mode>;\n\n /** Called when value changes */\n onChange?: (value: TreeSelectValue<Mode>) => void;\n\n /** Disables parent-child cascade in checkbox mode @default false */\n checkStrictly?: boolean;\n\n /** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */\n checkedStrategy?: CheckedStrategy;\n\n /** Default expanded node values */\n defaultExpandedValues?: string[];\n\n /** Expand all nodes by default @default false */\n defaultExpandAll?: boolean;\n\n /** Controlled expanded state */\n expandedValues?: string[];\n\n /** Called when expanded state changes */\n onExpandedChange?: (values: string[]) => void;\n\n /** Also toggle expand when clicking a parent node (not just the chevron) @default false */\n expandOnClick?: boolean;\n\n /** Enables search filtering @default false */\n searchable?: boolean;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Custom filter function */\n filter?: (query: string, node: TreeNodeData) => boolean;\n\n /** Message when no nodes match search */\n nothingFoundMessage?: React.ReactNode;\n\n /** Allows deselecting in single mode @default true */\n allowDeselect?: boolean;\n\n /** Shows clear button @default false */\n clearable?: boolean;\n\n /** Determines how the clear button and rightSection are rendered @default 'both' */\n clearSectionMode?: ClearSectionMode;\n\n /** Props for the clear button */\n clearButtonProps?: InputClearButtonProps;\n\n /** Maximum selectable values (multiple/checkbox mode) */\n maxValues?: number;\n\n /** Maximum displayed pills before \"+N more\" */\n maxDisplayedValues?: number;\n\n /** Content shown when values overflow maxDisplayedValues */\n maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);\n\n /** Called with removed value in multiple/checkbox mode */\n onRemove?: (value: string) => void;\n\n /** Called when clear button is clicked */\n onClear?: () => void;\n\n /** Custom node rendering in the dropdown */\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n\n /** Show tree connection lines between parent and child nodes @default true */\n withLines?: boolean;\n\n /** Props for the hidden input */\n hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;\n\n /** Divider for hidden input values @default ',' */\n hiddenInputValuesDivider?: string;\n\n /** Props for the ScrollArea in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n\n /** Controls the default chevron color */\n chevronColor?: MantineColor;\n\n /** Max dropdown height @default 220 */\n maxDropdownHeight?: number | string;\n\n /** Controlled dropdown state */\n dropdownOpened?: boolean;\n\n /** Default dropdown state */\n defaultDropdownOpened?: boolean;\n\n /** Called when dropdown opens */\n onDropdownOpen?: () => void;\n\n /** Called when dropdown closes */\n onDropdownClose?: () => void;\n\n /** Props passed to the underlying Combobox */\n comboboxProps?: Record<string, any>;\n\n /** Clear search on selection change @default true */\n clearSearchOnChange?: boolean;\n\n /** Opens dropdown on focus (searchable mode) @default true */\n openOnFocus?: boolean;\n}\n\nexport type TreeSelectFactory = Factory<{\n props: TreeSelectProps;\n ref: HTMLInputElement;\n stylesNames: TreeSelectStylesNames;\n variant: InputVariant;\n signature: <Mode extends TreeSelectMode = 'single'>(\n props: TreeSelectProps<Mode>\n ) => React.JSX.Element;\n}>;\n\nconst defaultProps = {\n mode: 'single',\n allowDeselect: true,\n checkedStrategy: 'child',\n maxValues: Infinity,\n hiddenInputValuesDivider: ',',\n clearSearchOnChange: true,\n openOnFocus: true,\n size: 'sm',\n withLines: true,\n} satisfies Partial<TreeSelectProps<TreeSelectMode>>;\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 41,\n sm: 50,\n md: 60,\n lg: 72,\n xl: 89,\n};\n\nfunction getAncestorsToNode(value: string, nodes: TreeNodeData[]): string[] | null {\n for (const node of nodes) {\n if (node.value === value) {\n return [];\n }\n if (Array.isArray(node.children)) {\n const path = getAncestorsToNode(value, node.children);\n if (path !== null) {\n return [node.value, ...path];\n }\n }\n }\n return null;\n}\n\nexport const TreeSelect = genericFactory<TreeSelectFactory>((_props) => {\n const props = useProps('TreeSelect', defaultProps as any, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n data,\n mode,\n value,\n defaultValue,\n onChange,\n checkStrictly,\n checkedStrategy,\n defaultExpandedValues,\n defaultExpandAll,\n expandedValues,\n onExpandedChange,\n expandOnClick,\n searchable,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n filter,\n nothingFoundMessage,\n allowDeselect,\n clearable,\n clearSectionMode,\n clearButtonProps,\n maxValues,\n maxDisplayedValues,\n maxDisplayedValuesContent,\n onRemove,\n onClear,\n renderNode,\n withLines,\n hiddenInputProps,\n hiddenInputValuesDivider,\n scrollAreaProps,\n chevronColor,\n maxDropdownHeight,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n comboboxProps,\n clearSearchOnChange,\n openOnFocus,\n variant,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n disabled,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n wrapperProps,\n description,\n label,\n error,\n withErrorStyles,\n name,\n form,\n id,\n placeholder,\n required,\n mod,\n attributes,\n ...others\n } = props;\n\n const isMulti = mode === 'multiple' || mode === 'checkbox';\n const isCheckbox = mode === 'checkbox';\n const _id = useId(id);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const initialExpanded = useMemo(() => {\n if (defaultExpandAll) {\n return getTreeExpandedState(data, '*');\n }\n if (defaultExpandedValues) {\n return getTreeExpandedState(data, defaultExpandedValues);\n }\n return getTreeExpandedState(data, []);\n }, []);\n\n const expandedToRecord = useCallback(\n (values: string[] | undefined): TreeExpandedState | undefined => {\n if (!values) {\n return undefined;\n }\n return getTreeExpandedState(data, values);\n },\n [data]\n );\n\n const [_expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: expandedToRecord(expandedValues),\n defaultValue: initialExpanded,\n finalValue: {},\n onChange: (val) => {\n if (onExpandedChange) {\n onExpandedChange(\n Object.entries(val)\n .filter(([, v]) => v)\n .map(([k]) => k)\n );\n }\n },\n });\n\n const toggleExpand = useCallback(\n (nodeValue: string) => {\n setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });\n },\n [_expandedState]\n );\n\n const initialSearchValue = useMemo(() => {\n if (mode !== 'single' || !defaultValue) {\n return '';\n }\n const node = findTreeNode(defaultValue as string, data);\n return node ? (typeof node.label === 'string' ? node.label : '') : '';\n }, []);\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: initialSearchValue,\n onChange: onSearchChange,\n });\n\n const handleSearchChange = (val: string) => {\n setSearchValue(val);\n combobox.resetSelectedOption();\n };\n\n const [_value, setValue] = useUncontrolled({\n value: value as any,\n defaultValue: defaultValue as any,\n finalValue: isMulti ? [] : null,\n onChange,\n });\n\n const internalChecked = useMemo(() => {\n if (!isCheckbox || !_value || !Array.isArray(_value)) {\n return [];\n }\n if (checkStrictly) {\n return _value;\n }\n return expandToLeafChecked(_value, data);\n }, [isCheckbox, _value, data, checkStrictly]);\n\n const filteredData = useMemo(() => {\n if (!searchable || !_searchValue) {\n return data;\n }\n if (mode === 'single' && _value) {\n const node = findTreeNode(_value as string, data);\n if (node && _searchValue === (typeof node.label === 'string' ? node.label : '')) {\n return data;\n }\n }\n return filterTreeData(data, _searchValue, filter);\n }, [data, _searchValue, filter, searchable, mode, _value]);\n\n const expandedForRender = useMemo(() => {\n if (_searchValue && filteredData !== data) {\n const expanded = { ..._expandedState };\n const expandFilteredParents = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n expanded[node.value] = true;\n expandFilteredParents(node.children);\n }\n }\n };\n expandFilteredParents(filteredData);\n return expanded;\n }\n return _expandedState;\n }, [filteredData, _expandedState, _searchValue, data]);\n\n const flatNodes = useMemo(\n () => flattenTreeSelectData(filteredData, expandedForRender),\n [filteredData, expandedForRender]\n );\n\n const flatNodesRef = useRef(flatNodes);\n flatNodesRef.current = flatNodes;\n\n const nodeLookup = useMemo(() => {\n const lookup: Record<string, TreeNodeData> = {};\n const walk = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n lookup[node.value] = node;\n if (Array.isArray(node.children)) {\n walk(node.children);\n }\n }\n };\n walk(data);\n return lookup;\n }, [data]);\n\n const getNodeLabel = (nodeValue: string): string => {\n const node = nodeLookup[nodeValue];\n if (!node) {\n return nodeValue;\n }\n return typeof node.label === 'string' ? node.label : nodeValue;\n };\n\n const getStyles = useStyles<TreeSelectFactory>({\n name: 'TreeSelect',\n classes: {} as any,\n props: props as any,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<TreeSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const {\n styleProps,\n rest: { type, autoComplete, ...rest },\n } = extractStyleProps(others);\n\n const handleOptionSubmit = (val: string) => {\n if (mode === 'single') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const nextValue = allowDeselect && val === _value ? null : val;\n setValue(nextValue);\n combobox.closeDropdown();\n if (clearSearchOnChange) {\n handleSearchChange(nextValue ? getNodeLabel(nextValue) : '');\n }\n } else if (mode === 'multiple') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n const arr = (_value as string[]) || [];\n if (arr.includes(val)) {\n setValue(arr.filter((v: string) => v !== val));\n onRemove?.(val);\n } else if (arr.length < (maxValues ?? Infinity)) {\n setValue([...arr, val]);\n }\n } else if (mode === 'checkbox') {\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n const nodeChecked = checkStrictly\n ? internalChecked.includes(val)\n : isNodeChecked(val, data, internalChecked);\n\n let newInternalChecked: string[];\n if (checkStrictly) {\n newInternalChecked = nodeChecked\n ? internalChecked.filter((v) => v !== val)\n : [...internalChecked, val];\n } else {\n const childLeaves = getChildrenNodesValues(val, data);\n if (nodeChecked) {\n newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));\n } else {\n newInternalChecked = [...new Set([...internalChecked, ...childLeaves])];\n }\n }\n\n const newValue = checkedToValue(newInternalChecked, data, checkedStrategy!);\n if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {\n return;\n }\n setValue(newValue);\n\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n if (!_expandedState[val]) {\n toggleExpand(val);\n }\n }\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === ' ' && !searchable && isMulti) {\n event.preventDefault();\n combobox.toggleDropdown();\n }\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && isMulti) {\n const arr = (_value as string[]) || [];\n if (arr.length > 0) {\n const removed = arr[arr.length - 1];\n onRemove?.(removed);\n setValue(arr.slice(0, -1));\n }\n }\n\n if (!combobox.dropdownOpened) {\n return;\n }\n\n const index = combobox.getSelectedOptionIndex();\n if (index < 0 || index >= flatNodesRef.current.length) {\n return;\n }\n\n const currentNode = flatNodesRef.current[index];\n\n if (event.key === 'ArrowRight') {\n if (currentNode.hasChildren && !currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n if (currentNode.hasChildren && currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n } else if (currentNode.parent) {\n event.preventDefault();\n const parentIndex = flatNodesRef.current.findIndex(\n (n) => n.node.value === currentNode.parent\n );\n if (parentIndex >= 0) {\n combobox.selectOption(parentIndex);\n }\n }\n }\n };\n\n useEffect(() => {\n if (mode !== 'single' || !searchable) {\n return;\n }\n if (value === null) {\n handleSearchChange('');\n } else if (typeof value === 'string') {\n handleSearchChange(getNodeLabel(value));\n }\n }, [value]);\n\n const prevDropdownOpenedRef = useRef(false);\n useEffect(() => {\n if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {\n const targets = Array.isArray(_value) ? _value : [_value];\n const newExpanded = { ..._expandedState };\n let changed = false;\n for (const target of targets) {\n const ancestors = getAncestorsToNode(target as string, data);\n if (ancestors) {\n for (const a of ancestors) {\n if (!newExpanded[a]) {\n newExpanded[a] = true;\n changed = true;\n }\n }\n }\n }\n if (changed) {\n setExpandedState(newExpanded);\n requestAnimationFrame(() => {\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n });\n }\n }\n prevDropdownOpenedRef.current = combobox.dropdownOpened;\n });\n\n const clearButton = (\n <Combobox.ClearButton\n {...clearButtonProps}\n onClear={() => {\n onClear?.();\n setValue(isMulti ? [] : null);\n handleSearchChange('');\n }}\n />\n );\n\n const hasValue = isMulti\n ? Array.isArray(_value) && _value.length > 0\n : _value != null && _value !== '';\n const _clearable = clearable && hasValue && !disabled && !readOnly;\n\n const singleDisplayLabel = useMemo(() => {\n if (mode !== 'single' || !_value) {\n return '';\n }\n return getNodeLabel(_value as string);\n }, [mode, _value, nodeLookup]);\n\n const displayValues = useMemo(() => {\n if (!isMulti || !Array.isArray(_value)) {\n return [];\n }\n return _value as string[];\n }, [isMulti, _value]);\n\n const pillsListStyle =\n _clearable && isMulti\n ? { paddingInlineEnd: clearSectionOffset[size as string] ?? clearSectionOffset.sm }\n : undefined;\n\n const visiblePills =\n maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;\n\n const overflowCount =\n maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;\n\n const pills = visiblePills.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => {\n if (isCheckbox) {\n const childLeaves = checkStrictly ? [item] : getChildrenNodesValues(item, data);\n const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));\n setValue(checkedToValue(newInternal, data, checkedStrategy!));\n } else {\n setValue((_value as string[]).filter((v: string) => v !== item));\n }\n onRemove?.(item);\n }}\n unstyled={unstyled}\n disabled={disabled}\n {...getStyles('pill')}\n >\n {getNodeLabel(item)}\n </Pill>\n ));\n\n if (overflowCount > 0) {\n const overflowContent =\n typeof maxDisplayedValuesContent === 'function'\n ? maxDisplayedValuesContent(overflowCount)\n : maxDisplayedValuesContent || `+${overflowCount} more`;\n pills.push(\n <Pill key=\"__overflow\" unstyled={unstyled} disabled={disabled} {...getStyles('pill')}>\n {overflowContent}\n </Pill>\n );\n }\n\n const isEmpty = flatNodes.length === 0;\n\n const options = flatNodes.map((flatNode) => {\n const isSelected =\n mode === 'single'\n ? _value === flatNode.node.value\n : mode === 'multiple'\n ? ((_value as string[]) || []).includes(flatNode.node.value)\n : false;\n\n const nodeChecked = isCheckbox\n ? checkStrictly\n ? internalChecked.includes(flatNode.node.value)\n : isNodeChecked(flatNode.node.value, data, internalChecked)\n : false;\n\n const nodeIndeterminate =\n isCheckbox && !checkStrictly\n ? isNodeIndeterminate(flatNode.node.value, data, internalChecked)\n : false;\n\n return (\n <TreeSelectOption\n key={flatNode.node.value}\n node={flatNode.node}\n level={flatNode.level}\n expanded={flatNode.expanded}\n hasChildren={flatNode.hasChildren}\n selected={isSelected}\n checked={nodeChecked}\n indeterminate={nodeIndeterminate}\n showCheckbox={isCheckbox}\n isLastChild={flatNode.isLastChild}\n lineGuides={flatNode.lineGuides}\n withLines={!!withLines}\n onToggleExpand={toggleExpand}\n renderNode={renderNode}\n />\n );\n });\n\n const dropdown = (\n <Combobox.Dropdown hidden={readOnly || disabled}>\n <Combobox.Options className={classes.optionsWrapper}>\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n {...scrollAreaProps}\n >\n {options}\n </ScrollArea.Autosize>\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n\n if (isMulti) {\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"TreeSelect\"\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n withErrorStyles={withErrorStyles}\n __stylesApiProps={{\n ...props,\n rightSectionPointerEvents: rightSectionPointerEvents || 'none',\n multiline: true,\n }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n data-expanded={combobox.dropdownOpened || undefined}\n id={_id}\n required={required}\n mod={mod}\n attributes={attributes}\n >\n <Pill.Group\n attributes={attributes}\n disabled={disabled}\n unstyled={unstyled}\n {...getStyles('pillsList', { style: pillsListStyle })}\n >\n {pills}\n <Combobox.EventsTarget autoComplete={autoComplete}>\n <PillsInput.Field\n {...rest}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n handleSearchChange('');\n }}\n onKeyDown={handleKeyDown}\n value={_searchValue}\n onChange={(event) => {\n handleSearchChange(event.currentTarget.value);\n if (searchable) {\n combobox.openDropdown();\n }\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n name={name}\n valuesDivider={hiddenInputValuesDivider}\n value={_value}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n }\n\n return (\n <>\n <Combobox\n store={combobox}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.Target targetType={searchable ? 'input' : 'button'} autoComplete={autoComplete}>\n <InputBase\n id={_id}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n {...rest}\n {...styleProps}\n size={size}\n __staticSelector=\"TreeSelect\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={searchable ? _searchValue : singleDisplayLabel}\n onChange={(event) => {\n handleSearchChange(event.currentTarget.value);\n combobox.openDropdown();\n }}\n onFocus={(event) => {\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n onFocus?.(event);\n }}\n onBlur={(event) => {\n if (searchable) {\n combobox.closeDropdown();\n }\n handleSearchChange(_value ? getNodeLabel(_value as string) : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n attributes={attributes}\n className={className}\n style={style}\n variant={variant}\n radius={radius}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n withErrorStyles={withErrorStyles}\n placeholder={placeholder}\n required={required}\n mod={mod}\n />\n </Combobox.Target>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n value={_value}\n name={name}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nTreeSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nTreeSelect.displayName = '@mantine/core/TreeSelect';\n"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/TreeSelect/TreeSelect.module.css
3
- var TreeSelect_module_default = {
4
- "optionsWrapper": "m_529d33e8",
5
- "option": "m_28bb748",
6
- "expandIcon": "m_aa3e3f86",
7
- "checkIcon": "m_eaa4cdee",
8
- "label": "m_ffe3a9c1",
9
- "guideLine": "m_57207d5d",
10
- "branchVertical": "m_41b9db0b",
11
- "branchHorizontal": "m_1246e79"
12
- };
13
- //#endregion
14
- exports.default = TreeSelect_module_default;
15
-
16
- //# sourceMappingURL=TreeSelect.module.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeSelect.module.cjs","names":[],"sources":["../../../src/components/TreeSelect/TreeSelect.module.css"],"sourcesContent":[".optionsWrapper {\n --ts-level-offset: 20px;\n --ts-line-width: rem(1px);\n --ts-line-color: var(--mantine-color-default-border);\n --ts-option-padding-y: 4px;\n --ts-option-padding-x: 8px;\n}\n\n.option {\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n padding: var(--ts-option-padding-y) var(--ts-option-padding-x);\n padding-inline-start: var(--ts-option-padding-x);\n}\n\n.expandIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n --_ts-expand-icon-size: calc(1.45 * var(--combobox-option-fz, var(--mantine-font-size-sm)));\n width: var(--_ts-expand-icon-size);\n min-width: var(--_ts-expand-icon-size);\n height: var(--_ts-expand-icon-size);\n border-radius: var(--mantine-radius-sm);\n cursor: pointer;\n color: var(--mantine-color-dimmed);\n transform: rotate(-90deg);\n\n :where([data-combobox-selected]) & {\n color: var(--mantine-color-white);\n }\n\n @mixin where-rtl {\n transform: rotate(90deg);\n }\n\n &:where([data-expanded]) {\n transform: rotate(0deg);\n }\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n}\n\n.checkIcon {\n opacity: 0.4;\n width: 0.8em;\n min-width: 0.8em;\n height: 0.8em;\n margin-inline-start: auto;\n\n :where([data-combobox-selected]) & {\n opacity: 1;\n }\n}\n\n.label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Tree lines */\n.guideLine {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n border-inline-start: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n}\n\n.branchVertical {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n border-inline-start: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n\n &:where([data-last]) {\n bottom: auto;\n height: 50%;\n }\n}\n\n.branchHorizontal {\n position: absolute;\n top: 50%;\n height: 0;\n border-top: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n}\n"],"mappings":""}
@@ -1,91 +0,0 @@
1
- "use client";
2
- require("../../_virtual/_rolldown/runtime.cjs");
3
- const require_AccordionChevron = require("../Accordion/AccordionChevron.cjs");
4
- const require_Combobox = require("../Combobox/Combobox.cjs");
5
- const require_CheckIcon = require("../Checkbox/CheckIcon.cjs");
6
- const require_CheckboxIndicator = require("../Checkbox/CheckboxIndicator/CheckboxIndicator.cjs");
7
- const require_TreeSelect_module = require("./TreeSelect.module.cjs");
8
- let react_jsx_runtime = require("react/jsx-runtime");
9
- //#region packages/@mantine/core/src/components/TreeSelect/TreeSelectOption.tsx
10
- const LEVEL_OFFSET = 20;
11
- const BASE_PADDING = 8;
12
- const LINE_CONTENT_GAP = 5;
13
- const OPTION_GAP = 6;
14
- function TreeSelectOption({ node, level, expanded, hasChildren, selected, checked, indeterminate, showCheckbox, isLastChild, lineGuides, withLines, onToggleExpand, renderNode }) {
15
- const indentPx = (level - 1) * LEVEL_OFFSET;
16
- const handleExpandClick = (event) => {
17
- event.stopPropagation();
18
- event.preventDefault();
19
- onToggleExpand(node.value);
20
- };
21
- const handleExpandMouseDown = (event) => {
22
- event.preventDefault();
23
- };
24
- const customContent = renderNode ? renderNode({
25
- node,
26
- level,
27
- expanded,
28
- hasChildren,
29
- selected,
30
- checked,
31
- indeterminate
32
- }) : null;
33
- const lineElements = withLines && level > 1 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
34
- lineGuides.map((show, g) => show ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
35
- className: require_TreeSelect_module.default.guideLine,
36
- style: { insetInlineStart: BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }
37
- }, `g${g}`) : null),
38
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
39
- className: require_TreeSelect_module.default.branchVertical,
40
- "data-last": isLastChild || void 0,
41
- style: { insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }
42
- }),
43
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
44
- className: require_TreeSelect_module.default.branchHorizontal,
45
- style: {
46
- insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,
47
- width: LEVEL_OFFSET / 2
48
- }
49
- })
50
- ] }) : null;
51
- const isActive = selected || checked;
52
- const showCheckMark = !showCheckbox && isActive;
53
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Combobox.Combobox.Option, {
54
- value: node.value,
55
- disabled: node.nodeProps?.disabled,
56
- active: isActive,
57
- className: require_TreeSelect_module.default.option,
58
- style: { paddingInlineStart: BASE_PADDING + indentPx + (withLines && level > 1 ? LINE_CONTENT_GAP : 0) + (!hasChildren ? OPTION_GAP : 0) },
59
- "aria-selected": isActive,
60
- children: [lineElements, customContent || /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
61
- hasChildren && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
62
- className: require_TreeSelect_module.default.expandIcon,
63
- "data-expanded": expanded || void 0,
64
- onClick: handleExpandClick,
65
- onKeyDown: (e) => {
66
- if (e.key === "Enter") handleExpandClick(e);
67
- },
68
- onMouseDown: handleExpandMouseDown,
69
- role: "button",
70
- tabIndex: -1,
71
- "aria-label": expanded ? "Collapse" : "Expand",
72
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AccordionChevron.AccordionChevron, { size: "80%" })
73
- }),
74
- showCheckbox && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CheckboxIndicator.CheckboxIndicator, {
75
- checked: checked || indeterminate,
76
- indeterminate: !checked && indeterminate,
77
- size: "18px"
78
- }),
79
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
80
- className: require_TreeSelect_module.default.label,
81
- children: node.label
82
- }),
83
- showCheckMark && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CheckIcon.CheckIcon, { className: require_TreeSelect_module.default.checkIcon })
84
- ] })]
85
- });
86
- }
87
- TreeSelectOption.displayName = "@mantine/core/TreeSelectOption";
88
- //#endregion
89
- exports.TreeSelectOption = TreeSelectOption;
90
-
91
- //# sourceMappingURL=TreeSelectOption.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeSelectOption.cjs","names":["classes","Combobox","AccordionChevron","CheckboxIndicator","CheckIcon"],"sources":["../../../src/components/TreeSelect/TreeSelectOption.tsx"],"sourcesContent":["import { AccordionChevron } from '../Accordion';\nimport { CheckboxIndicator } from '../Checkbox/CheckboxIndicator/CheckboxIndicator';\nimport { CheckIcon } from '../Checkbox/CheckIcon';\nimport { Combobox } from '../Combobox';\nimport type { TreeNodeData } from '../Tree';\nimport classes from './TreeSelect.module.css';\n\nconst LEVEL_OFFSET = 20;\nconst BASE_PADDING = 8;\nconst LINE_CONTENT_GAP = 5;\nconst OPTION_GAP = 6;\n\nexport interface TreeSelectOptionProps {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n showCheckbox: boolean;\n isLastChild: boolean;\n lineGuides: boolean[];\n withLines: boolean;\n onToggleExpand: (value: string) => void;\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n}\n\nexport interface TreeSelectRenderNodePayload {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n}\n\nexport function TreeSelectOption({\n node,\n level,\n expanded,\n hasChildren,\n selected,\n checked,\n indeterminate,\n showCheckbox,\n isLastChild,\n lineGuides,\n withLines,\n onToggleExpand,\n renderNode,\n}: TreeSelectOptionProps) {\n const indentPx = (level - 1) * LEVEL_OFFSET;\n\n const handleExpandClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n onToggleExpand(node.value);\n };\n\n const handleExpandMouseDown = (event: React.MouseEvent) => {\n event.preventDefault();\n };\n\n const customContent = renderNode\n ? renderNode({ node, level, expanded, hasChildren, selected, checked, indeterminate })\n : null;\n\n const lineElements =\n withLines && level > 1 ? (\n <>\n {lineGuides.map((show, g) =>\n show ? (\n <span\n key={`g${g}`}\n className={classes.guideLine}\n style={{ insetInlineStart: BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }}\n />\n ) : null\n )}\n <span\n className={classes.branchVertical}\n data-last={isLastChild || undefined}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n }}\n />\n <span\n className={classes.branchHorizontal}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n width: LEVEL_OFFSET / 2,\n }}\n />\n </>\n ) : null;\n\n const isActive = selected || checked;\n const showCheckMark = !showCheckbox && isActive;\n\n return (\n <Combobox.Option\n value={node.value}\n disabled={node.nodeProps?.disabled}\n active={isActive}\n className={classes.option}\n style={{\n paddingInlineStart:\n BASE_PADDING +\n indentPx +\n (withLines && level > 1 ? LINE_CONTENT_GAP : 0) +\n (!hasChildren ? OPTION_GAP : 0),\n }}\n aria-selected={isActive}\n >\n {lineElements}\n {customContent || (\n <>\n {hasChildren && (\n <span\n className={classes.expandIcon}\n data-expanded={expanded || undefined}\n onClick={handleExpandClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleExpandClick(e as any);\n }\n }}\n onMouseDown={handleExpandMouseDown}\n role=\"button\"\n tabIndex={-1}\n aria-label={expanded ? 'Collapse' : 'Expand'}\n >\n <AccordionChevron size=\"80%\" />\n </span>\n )}\n {showCheckbox && (\n <CheckboxIndicator\n checked={checked || indeterminate}\n indeterminate={!checked && indeterminate}\n size=\"18px\"\n />\n )}\n <span className={classes.label}>{node.label}</span>\n {showCheckMark && <CheckIcon className={classes.checkIcon} />}\n </>\n )}\n </Combobox.Option>\n );\n}\n\nTreeSelectOption.displayName = '@mantine/core/TreeSelectOption';\n"],"mappings":";;;;;;;;;AAOA,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,mBAAmB;AACzB,MAAM,aAAa;AA4BnB,SAAgB,iBAAiB,EAC/B,MACA,OACA,UACA,aACA,UACA,SACA,eACA,cACA,aACA,YACA,WACA,gBACA,cACwB;CACxB,MAAM,YAAY,QAAQ,KAAK;CAE/B,MAAM,qBAAqB,UAA4B;AACrD,QAAM,iBAAiB;AACvB,QAAM,gBAAgB;AACtB,iBAAe,KAAK,MAAM;;CAG5B,MAAM,yBAAyB,UAA4B;AACzD,QAAM,gBAAgB;;CAGxB,MAAM,gBAAgB,aAClB,WAAW;EAAE;EAAM;EAAO;EAAU;EAAa;EAAU;EAAS;EAAe,CAAC,GACpF;CAEJ,MAAM,eACJ,aAAa,QAAQ,IACnB,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;EACG,WAAW,KAAK,MAAM,MACrB,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;GAEE,WAAWA,0BAAAA,QAAQ;GACnB,OAAO,EAAE,kBAAkB,gBAAgB,IAAI,KAAK,eAAe,eAAe,GAAG;GACrF,EAHK,IAAI,IAGT,GACA,KACL;EACD,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,WAAWA,0BAAAA,QAAQ;GACnB,aAAW,eAAe,KAAA;GAC1B,OAAO,EACL,kBAAkB,gBAAgB,QAAQ,KAAK,eAAe,eAAe,GAC9E;GACD,CAAA;EACF,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,WAAWA,0BAAAA,QAAQ;GACnB,OAAO;IACL,kBAAkB,gBAAgB,QAAQ,KAAK,eAAe,eAAe;IAC7E,OAAO,eAAe;IACvB;GACD,CAAA;EACD,EAAA,CAAA,GACD;CAEN,MAAM,WAAW,YAAY;CAC7B,MAAM,gBAAgB,CAAC,gBAAgB;AAEvC,QACE,iBAAA,GAAA,kBAAA,MAACC,iBAAAA,SAAS,QAAV;EACE,OAAO,KAAK;EACZ,UAAU,KAAK,WAAW;EAC1B,QAAQ;EACR,WAAWD,0BAAAA,QAAQ;EACnB,OAAO,EACL,oBACE,eACA,YACC,aAAa,QAAQ,IAAI,mBAAmB,MAC5C,CAAC,cAAc,aAAa,IAChC;EACD,iBAAe;YAZjB,CAcG,cACA,iBACC,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;GACG,eACC,iBAAA,GAAA,kBAAA,KAAC,QAAD;IACE,WAAWA,0BAAAA,QAAQ;IACnB,iBAAe,YAAY,KAAA;IAC3B,SAAS;IACT,YAAY,MAAM;AAChB,SAAI,EAAE,QAAQ,QACZ,mBAAkB,EAAS;;IAG/B,aAAa;IACb,MAAK;IACL,UAAU;IACV,cAAY,WAAW,aAAa;cAEpC,iBAAA,GAAA,kBAAA,KAACE,yBAAAA,kBAAD,EAAkB,MAAK,OAAQ,CAAA;IAC1B,CAAA;GAER,gBACC,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,mBAAD;IACE,SAAS,WAAW;IACpB,eAAe,CAAC,WAAW;IAC3B,MAAK;IACL,CAAA;GAEJ,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAAM,WAAWH,0BAAAA,QAAQ;cAAQ,KAAK;IAAa,CAAA;GAClD,iBAAiB,iBAAA,GAAA,kBAAA,KAACI,kBAAAA,WAAD,EAAW,WAAWJ,0BAAAA,QAAQ,WAAa,CAAA;GAC5D,EAAA,CAAA,CAEW;;;AAItB,iBAAiB,cAAc"}
@@ -1,34 +0,0 @@
1
- "use client";
2
- //#region packages/@mantine/core/src/components/TreeSelect/flatten-tree-select-data.ts
3
- function flattenTo(acc, data, expandedState, parent, level, parentGuides) {
4
- for (let i = 0; i < data.length; i++) {
5
- const node = data[i];
6
- const isLast = i === data.length - 1;
7
- const hasLoadedChildren = Array.isArray(node.children);
8
- const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;
9
- const hasChildren = hasLoadedChildren || hasAsyncChildren;
10
- const expanded = expandedState[node.value] || false;
11
- acc.push({
12
- node,
13
- level,
14
- parent,
15
- hasChildren,
16
- expanded,
17
- isLastChild: isLast,
18
- lineGuides: parentGuides
19
- });
20
- if (expanded && hasLoadedChildren) {
21
- const childGuides = level >= 2 ? [...parentGuides, !isLast] : [];
22
- flattenTo(acc, node.children, expandedState, node.value, level + 1, childGuides);
23
- }
24
- }
25
- }
26
- function flattenTreeSelectData(data, expandedState) {
27
- const result = [];
28
- flattenTo(result, data, expandedState, null, 1, []);
29
- return result;
30
- }
31
- //#endregion
32
- exports.flattenTreeSelectData = flattenTreeSelectData;
33
-
34
- //# sourceMappingURL=flatten-tree-select-data.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten-tree-select-data.cjs","names":[],"sources":["../../../src/components/TreeSelect/flatten-tree-select-data.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport type { TreeExpandedState } from '../Tree/use-tree';\n\nexport interface TreeSelectFlatNode {\n node: TreeNodeData;\n level: number;\n parent: string | null;\n hasChildren: boolean;\n expanded: boolean;\n isLastChild: boolean;\n lineGuides: boolean[];\n}\n\nfunction flattenTo(\n acc: TreeSelectFlatNode[],\n data: TreeNodeData[],\n expandedState: TreeExpandedState,\n parent: string | null,\n level: number,\n parentGuides: boolean[]\n): void {\n for (let i = 0; i < data.length; i++) {\n const node = data[i];\n const isLast = i === data.length - 1;\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({\n node,\n level,\n parent,\n hasChildren,\n expanded,\n isLastChild: isLast,\n lineGuides: parentGuides,\n });\n\n if (expanded && hasLoadedChildren) {\n const childGuides = level >= 2 ? [...parentGuides, !isLast] : [];\n flattenTo(acc, node.children!, expandedState, node.value, level + 1, childGuides);\n }\n }\n}\n\nexport function flattenTreeSelectData(\n data: TreeNodeData[],\n expandedState: TreeExpandedState\n): TreeSelectFlatNode[] {\n const result: TreeSelectFlatNode[] = [];\n flattenTo(result, data, expandedState, null, 1, []);\n return result;\n}\n"],"mappings":";;AAaA,SAAS,UACP,KACA,MACA,eACA,QACA,OACA,cACM;AACN,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;EAClB,MAAM,SAAS,MAAM,KAAK,SAAS;EACnC,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;GACP;GACA;GACA;GACA;GACA;GACA,aAAa;GACb,YAAY;GACb,CAAC;AAEF,MAAI,YAAY,mBAAmB;GACjC,MAAM,cAAc,SAAS,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,GAAG,EAAE;AAChE,aAAU,KAAK,KAAK,UAAW,eAAe,KAAK,OAAO,QAAQ,GAAG,YAAY;;;;AAKvF,SAAgB,sBACd,MACA,eACsB;CACtB,MAAM,SAA+B,EAAE;AACvC,WAAU,QAAQ,MAAM,eAAe,MAAM,GAAG,EAAE,CAAC;AACnD,QAAO"}
@@ -1,30 +0,0 @@
1
- "use client";
2
- const require_get_children_nodes_values = require("../Tree/get-children-nodes-values/get-children-nodes-values.cjs");
3
- const require_get_all_checked_nodes = require("../Tree/get-all-checked-nodes/get-all-checked-nodes.cjs");
4
- const require_is_node_checked = require("../Tree/is-node-checked/is-node-checked.cjs");
5
- //#region packages/@mantine/core/src/components/TreeSelect/get-checked-values-by-strategy.ts
6
- function expandToLeafChecked(value, data) {
7
- const leaves = /* @__PURE__ */ new Set();
8
- for (const v of value) for (const leaf of require_get_children_nodes_values.getChildrenNodesValues(v, data)) leaves.add(leaf);
9
- return Array.from(leaves);
10
- }
11
- function getTopmostCheckedParents(data, checkedState) {
12
- const result = [];
13
- for (const node of data) if (require_is_node_checked.isNodeChecked(node.value, data, checkedState)) result.push(node.value);
14
- else if (Array.isArray(node.children) && node.children.length > 0) result.push(...getTopmostCheckedParents(node.children, checkedState));
15
- return result;
16
- }
17
- function checkedToValue(checkedState, data, strategy) {
18
- if (checkedState.length === 0) return [];
19
- switch (strategy) {
20
- case "child": return checkedState;
21
- case "all": return require_get_all_checked_nodes.getAllCheckedNodes(data, checkedState).result.filter((n) => n.checked).map((n) => n.value);
22
- case "parent": return getTopmostCheckedParents(data, checkedState);
23
- default: return checkedState;
24
- }
25
- }
26
- //#endregion
27
- exports.checkedToValue = checkedToValue;
28
- exports.expandToLeafChecked = expandToLeafChecked;
29
-
30
- //# sourceMappingURL=get-checked-values-by-strategy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-checked-values-by-strategy.cjs","names":["getChildrenNodesValues","isNodeChecked","getAllCheckedNodes"],"sources":["../../../src/components/TreeSelect/get-checked-values-by-strategy.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport { getAllCheckedNodes } from '../Tree/get-all-checked-nodes/get-all-checked-nodes';\nimport { getChildrenNodesValues } from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\n\nexport type CheckedStrategy = 'all' | 'parent' | 'child';\n\nexport function expandToLeafChecked(value: string[], data: TreeNodeData[]): string[] {\n const leaves = new Set<string>();\n for (const v of value) {\n for (const leaf of getChildrenNodesValues(v, data)) {\n leaves.add(leaf);\n }\n }\n return Array.from(leaves);\n}\n\nfunction getTopmostCheckedParents(data: TreeNodeData[], checkedState: string[]): string[] {\n const result: string[] = [];\n for (const node of data) {\n if (isNodeChecked(node.value, data, checkedState)) {\n result.push(node.value);\n } else if (Array.isArray(node.children) && node.children.length > 0) {\n result.push(...getTopmostCheckedParents(node.children, checkedState));\n }\n }\n return result;\n}\n\nexport function checkedToValue(\n checkedState: string[],\n data: TreeNodeData[],\n strategy: CheckedStrategy\n): string[] {\n if (checkedState.length === 0) {\n return [];\n }\n\n switch (strategy) {\n case 'child':\n return checkedState;\n case 'all':\n return getAllCheckedNodes(data, checkedState)\n .result.filter((n) => n.checked)\n .map((n) => n.value);\n case 'parent':\n return getTopmostCheckedParents(data, checkedState);\n default:\n return checkedState;\n }\n}\n"],"mappings":";;;;;AAOA,SAAgB,oBAAoB,OAAiB,MAAgC;CACnF,MAAM,yBAAS,IAAI,KAAa;AAChC,MAAK,MAAM,KAAK,MACd,MAAK,MAAM,QAAQA,kCAAAA,uBAAuB,GAAG,KAAK,CAChD,QAAO,IAAI,KAAK;AAGpB,QAAO,MAAM,KAAK,OAAO;;AAG3B,SAAS,yBAAyB,MAAsB,cAAkC;CACxF,MAAM,SAAmB,EAAE;AAC3B,MAAK,MAAM,QAAQ,KACjB,KAAIC,wBAAAA,cAAc,KAAK,OAAO,MAAM,aAAa,CAC/C,QAAO,KAAK,KAAK,MAAM;UACd,MAAM,QAAQ,KAAK,SAAS,IAAI,KAAK,SAAS,SAAS,EAChE,QAAO,KAAK,GAAG,yBAAyB,KAAK,UAAU,aAAa,CAAC;AAGzE,QAAO;;AAGT,SAAgB,eACd,cACA,MACA,UACU;AACV,KAAI,aAAa,WAAW,EAC1B,QAAO,EAAE;AAGX,SAAQ,UAAR;EACE,KAAK,QACH,QAAO;EACT,KAAK,MACH,QAAOC,8BAAAA,mBAAmB,MAAM,aAAa,CAC1C,OAAO,QAAQ,MAAM,EAAE,QAAQ,CAC/B,KAAK,MAAM,EAAE,MAAM;EACxB,KAAK,SACH,QAAO,yBAAyB,MAAM,aAAa;EACrD,QACE,QAAO"}
@@ -1,23 +0,0 @@
1
- "use client";
2
- import { useProps } from "../../core/MantineProvider/use-props/use-props.mjs";
3
- import { factory } from "../../core/factory/factory.mjs";
4
- import { InputBase } from "../InputBase/InputBase.mjs";
5
- import { useMaskInputProps } from "./use-mask-input-props.mjs";
6
- import { jsx } from "react/jsx-runtime";
7
- //#region packages/@mantine/core/src/components/MaskInput/MaskInput.tsx
8
- const defaultProps = {};
9
- const MaskInput = factory((props) => {
10
- const { maskRef, elementProps } = useMaskInputProps(useProps("MaskInput", defaultProps, props));
11
- return /* @__PURE__ */ jsx(InputBase, {
12
- component: "input",
13
- ref: maskRef,
14
- ...elementProps,
15
- __staticSelector: "MaskInput"
16
- });
17
- });
18
- MaskInput.classes = InputBase.classes;
19
- MaskInput.displayName = "@mantine/core/MaskInput";
20
- //#endregion
21
- export { MaskInput };
22
-
23
- //# sourceMappingURL=MaskInput.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaskInput.mjs","names":[],"sources":["../../../src/components/MaskInput/MaskInput.tsx"],"sourcesContent":["import { BoxProps, ElementProps, factory, Factory, StylesApiProps, useProps } from '../../core';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { useMaskInputProps } from './use-mask-input-props';\n\nexport interface MaskInputProps\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<MaskInputFactory>,\n ElementProps<'input', 'size'> {\n /** Mask pattern string or array of string literals and RegExp objects */\n mask: string | Array<string | RegExp>;\n\n /** Override or extend the default token map */\n tokens?: Record<string, RegExp>;\n\n /** Called before masking on each keystroke, can return overrides for mask options */\n modify?: (\n value: string\n ) => Partial<Pick<MaskInputProps, 'mask' | 'tokens' | 'slotChar' | 'separate'>> | undefined;\n\n /** When true, raw and display values are decoupled */\n separate?: boolean;\n\n /** Character displayed in unfilled slots, `\"_\"` by default */\n slotChar?: string | null;\n\n /** Show mask pattern even when field is empty and unfocused */\n alwaysShowMask?: boolean;\n\n /** Show mask placeholder on focus, `true` by default */\n showMaskOnFocus?: boolean;\n\n /** Transform each character before validation and insertion */\n transform?: (char: string) => string;\n\n /** Clear value on blur when mask is incomplete, `false` by default */\n autoClear?: boolean;\n\n /** Called on every change with raw and masked values */\n onChangeRaw?: (rawValue: string, maskedValue: string) => void;\n\n /** Called when all required mask slots are filled */\n onComplete?: (maskedValue: string, rawValue: string) => void;\n\n /** Escape hatch for advanced cursor/value manipulation */\n beforeMaskedStateChange?: (states: {\n previousState: { value: string; selection: { start: number; end: number } | null };\n currentState: { value: string; selection: { start: number; end: number } | null };\n nextState: { value: string; selection: { start: number; end: number } | null };\n }) => { value: string; selection: { start: number; end: number } | null };\n}\n\nexport type MaskInputFactory = Factory<{\n props: MaskInputProps;\n variant: InputVariant;\n ref: HTMLInputElement;\n stylesNames: __InputStylesNames;\n}>;\n\nconst defaultProps = {} satisfies Partial<MaskInputProps>;\n\nexport const MaskInput = factory<MaskInputFactory>((props) => {\n const _props = useProps('MaskInput', defaultProps, props);\n const { maskRef, elementProps } = useMaskInputProps(_props);\n\n return (\n <InputBase\n component=\"input\"\n ref={maskRef}\n {...(elementProps as any)}\n __staticSelector=\"MaskInput\"\n />\n );\n});\n\nMaskInput.classes = InputBase.classes;\nMaskInput.displayName = '@mantine/core/MaskInput';\n"],"mappings":";;;;;;;AA6DA,MAAM,eAAe,EAAE;AAEvB,MAAa,YAAY,SAA2B,UAAU;CAE5D,MAAM,EAAE,SAAS,iBAAiB,kBADnB,SAAS,aAAa,cAAc,MAAM,CACE;AAE3D,QACE,oBAAC,WAAD;EACE,WAAU;EACV,KAAK;EACL,GAAK;EACL,kBAAiB;EACjB,CAAA;EAEJ;AAEF,UAAU,UAAU,UAAU;AAC9B,UAAU,cAAc"}
@@ -1,28 +0,0 @@
1
- "use client";
2
- import { useMask, useMergedRef } from "@mantine/hooks";
3
- //#region packages/@mantine/core/src/components/MaskInput/use-mask-input-props.ts
4
- function useMaskInputProps(props) {
5
- const { mask, tokens, modify, separate, slotChar, alwaysShowMask, showMaskOnFocus, transform, autoClear, onChangeRaw, onComplete, beforeMaskedStateChange, ref, ...elementProps } = props;
6
- const { ref: maskCallbackRef } = useMask({
7
- mask,
8
- tokens,
9
- modify,
10
- separate,
11
- slotChar,
12
- alwaysShowMask,
13
- showMaskOnFocus,
14
- transform,
15
- autoClear,
16
- onChangeRaw,
17
- onComplete,
18
- beforeMaskedStateChange
19
- });
20
- return {
21
- maskRef: useMergedRef(ref, maskCallbackRef),
22
- elementProps
23
- };
24
- }
25
- //#endregion
26
- export { useMaskInputProps };
27
-
28
- //# sourceMappingURL=use-mask-input-props.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-mask-input-props.mjs","names":[],"sources":["../../../src/components/MaskInput/use-mask-input-props.ts"],"sourcesContent":["import { useMask, useMergedRef } from '@mantine/hooks';\nimport type { MaskInputProps } from './MaskInput';\n\nexport function useMaskInputProps(props: MaskInputProps & { ref?: React.Ref<HTMLInputElement> }) {\n const {\n mask,\n tokens,\n modify,\n separate,\n slotChar,\n alwaysShowMask,\n showMaskOnFocus,\n transform,\n autoClear,\n onChangeRaw,\n onComplete,\n beforeMaskedStateChange,\n ref,\n ...elementProps\n } = props;\n\n const { ref: maskCallbackRef } = useMask({\n mask,\n tokens,\n modify,\n separate,\n slotChar,\n alwaysShowMask,\n showMaskOnFocus,\n transform,\n autoClear,\n onChangeRaw,\n onComplete,\n beforeMaskedStateChange,\n });\n\n const maskRef = useMergedRef(ref, maskCallbackRef);\n\n return { maskRef, elementProps };\n}\n"],"mappings":";;;AAGA,SAAgB,kBAAkB,OAA+D;CAC/F,MAAM,EACJ,MACA,QACA,QACA,UACA,UACA,gBACA,iBACA,WACA,WACA,aACA,YACA,yBACA,KACA,GAAG,iBACD;CAEJ,MAAM,EAAE,KAAK,oBAAoB,QAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAIF,QAAO;EAAE,SAFO,aAAa,KAAK,gBAAgB;EAEhC;EAAc"}
@@ -1,32 +0,0 @@
1
- "use client";
2
- import { useProps } from "../../../core/MantineProvider/use-props/use-props.mjs";
3
- import { factory } from "../../../core/factory/factory.mjs";
4
- import { Box } from "../../../core/Box/Box.mjs";
5
- import { usePaginationContext } from "../Pagination.context.mjs";
6
- import Pagination_module_default from "../Pagination.module.mjs";
7
- import { jsx } from "react/jsx-runtime";
8
- //#region packages/@mantine/core/src/components/Pagination/PaginationLabel/PaginationLabel.tsx
9
- const defaultProps = { formatLabel: ({ page, totalPages }) => `Page ${page} of ${totalPages}` };
10
- const PaginationLabel = factory((_props) => {
11
- const { classNames, className, style, styles, vars, formatLabel, ...others } = useProps("PaginationLabel", defaultProps, _props);
12
- const ctx = usePaginationContext();
13
- return /* @__PURE__ */ jsx(Box, {
14
- ...ctx.getStyles("label", {
15
- className,
16
- style,
17
- styles,
18
- classNames
19
- }),
20
- ...others,
21
- children: formatLabel({
22
- page: ctx.active,
23
- totalPages: ctx.total
24
- })
25
- });
26
- });
27
- PaginationLabel.classes = Pagination_module_default;
28
- PaginationLabel.displayName = "@mantine/core/PaginationLabel";
29
- //#endregion
30
- export { PaginationLabel };
31
-
32
- //# sourceMappingURL=PaginationLabel.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaginationLabel.mjs","names":["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,kBAAkB,SAAiC,WAAW;CAEzE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,aAAa,GAAG,WADtD,SAAS,mBAAmB,cAAc,OAAO;CAE/D,MAAM,MAAM,sBAAsB;AAElC,QACE,oBAAC,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,UAAUA;AAC1B,gBAAgB,cAAc"}
@@ -1,40 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- //#region packages/@mantine/core/src/components/RollingNumber/DigitColumn.tsx
4
- const DIGITS = [
5
- "0",
6
- "1",
7
- "2",
8
- "3",
9
- "4",
10
- "5",
11
- "6",
12
- "7",
13
- "8",
14
- "9"
15
- ];
16
- function DigitColumn({ digit, getStyles, previousDigit, empty }) {
17
- const digitIndex = DIGITS.indexOf(digit);
18
- const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;
19
- const direction = prevIndex === -1 || digitIndex >= prevIndex ? "up" : "down";
20
- const digitStyles = getStyles("digit");
21
- const columnStyles = getStyles("digitColumn");
22
- return /* @__PURE__ */ jsx("span", {
23
- ...digitStyles,
24
- "data-empty": empty || void 0,
25
- "aria-hidden": "true",
26
- children: /* @__PURE__ */ jsx("span", {
27
- ...columnStyles,
28
- style: {
29
- ...columnStyles.style,
30
- transform: `translateY(${-digitIndex}em)`
31
- },
32
- "data-direction": direction,
33
- children: DIGITS.map((d) => /* @__PURE__ */ jsx("span", { children: d }, d))
34
- })
35
- });
36
- }
37
- //#endregion
38
- export { DigitColumn };
39
-
40
- //# sourceMappingURL=DigitColumn.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DigitColumn.mjs","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,oBAAC,QAAD;EAAM,GAAI;EAAa,cAAY,SAAS,KAAA;EAAW,eAAY;YACjE,oBAAC,QAAD;GACE,GAAI;GACJ,OAAO;IAAE,GAAG,aAAa;IAAO,WAAW,cAAc,CAAC,WAAW;IAAM;GAC3E,kBAAgB;aAEf,OAAO,KAAK,MACX,oBAAC,QAAD,EAAA,UAAe,GAAS,EAAb,EAAa,CACxB;GACG,CAAA;EACF,CAAA"}
@@ -1,99 +0,0 @@
1
- "use client";
2
- import { createVarsResolver } from "../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs";
3
- import { useProps } from "../../core/MantineProvider/use-props/use-props.mjs";
4
- import { useStyles } from "../../core/styles-api/use-styles/use-styles.mjs";
5
- import { factory } from "../../core/factory/factory.mjs";
6
- import { Box } from "../../core/Box/Box.mjs";
7
- import { getDigitParts } from "./get-digit-parts.mjs";
8
- import { buildValue } from "./build-value.mjs";
9
- import { DigitColumn } from "./DigitColumn.mjs";
10
- import { getRenderSlots } from "./get-render-slots.mjs";
11
- import RollingNumber_module_default from "./RollingNumber.module.mjs";
12
- import { useEffect, useRef } from "react";
13
- import { jsx } from "react/jsx-runtime";
14
- //#region packages/@mantine/core/src/components/RollingNumber/RollingNumber.tsx
15
- const defaultProps = {
16
- animationDuration: 600,
17
- timingFunction: "ease",
18
- decimalSeparator: ".",
19
- tabularNumbers: true
20
- };
21
- const varsResolver = createVarsResolver((_, { animationDuration, timingFunction }) => ({ root: {
22
- "--rn-duration": `${animationDuration}ms`,
23
- "--rn-timing-function": timingFunction
24
- } }));
25
- const RollingNumber = factory((_props) => {
26
- const props = useProps("RollingNumber", defaultProps, _props);
27
- const { classNames, className, style, styles, unstyled, vars, value, prefix, suffix, decimalSeparator, thousandSeparator, decimalScale, fixedDecimalScale, animationDuration, timingFunction, tabularNumbers, mod, attributes, ...others } = props;
28
- const getStyles = useStyles({
29
- name: "RollingNumber",
30
- classes: RollingNumber_module_default,
31
- props,
32
- className,
33
- style,
34
- classNames,
35
- styles,
36
- unstyled,
37
- attributes,
38
- vars,
39
- varsResolver
40
- });
41
- const previousValueRef = useRef(value);
42
- const previousValue = previousValueRef.current;
43
- useEffect(() => {
44
- previousValueRef.current = value;
45
- });
46
- const slots = getRenderSlots({
47
- current: getDigitParts({
48
- value,
49
- decimalScale,
50
- fixedDecimalScale
51
- }),
52
- previous: getDigitParts({
53
- value: previousValue,
54
- decimalScale,
55
- fixedDecimalScale
56
- }),
57
- prefix,
58
- suffix,
59
- decimalSeparator,
60
- thousandSeparator
61
- });
62
- const accessibleValue = buildValue({
63
- value,
64
- prefix,
65
- suffix,
66
- decimalSeparator,
67
- thousandSeparator,
68
- decimalScale,
69
- fixedDecimalScale
70
- });
71
- return /* @__PURE__ */ jsx(Box, {
72
- ...getStyles("root"),
73
- mod: [{ "tabular-numbers": tabularNumbers }, mod],
74
- role: "status",
75
- "aria-label": accessibleValue,
76
- ...others,
77
- children: slots.map((slot) => {
78
- if (slot.type === "digit") return /* @__PURE__ */ jsx(DigitColumn, {
79
- digit: slot.digit,
80
- previousDigit: slot.previousDigit,
81
- getStyles,
82
- empty: slot.empty
83
- }, slot.key);
84
- return /* @__PURE__ */ jsx("span", {
85
- ...getStyles("char"),
86
- "data-empty": slot.empty || void 0,
87
- "aria-hidden": "true",
88
- children: slot.char
89
- }, slot.key);
90
- })
91
- });
92
- });
93
- RollingNumber.classes = RollingNumber_module_default;
94
- RollingNumber.varsResolver = varsResolver;
95
- RollingNumber.displayName = "@mantine/core/RollingNumber";
96
- //#endregion
97
- export { RollingNumber };
98
-
99
- //# sourceMappingURL=RollingNumber.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RollingNumber.mjs","names":["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,eAAe,oBAClB,GAAG,EAAE,mBAAmB,sBAAsB,EAC7C,MAAM;CACJ,iBAAiB,GAAG,kBAAkB;CACtC,wBAAwB;CACzB,EACF,EACF;AAED,MAAa,gBAAgB,SAA+B,WAAW;CACrE,MAAM,QAAQ,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,YAAY,UAAgC;EAChD,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,mBAAmB,OAAO,MAAM;CACtC,MAAM,gBAAgB,iBAAiB;AAEvC,iBAAgB;AACd,mBAAiB,UAAU;GAC3B;CAKF,MAAM,QAAQ,eAAe;EAC3B,SAJc,cAAc;GAAE;GAAO;GAAc;GAAmB,CAAC;EAKvE,UAJW,cAAc;GAAE,OAAO;GAAe;GAAc;GAAmB,CAAC;EAKnF;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,kBAAkB,WAAW;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,oBAAC,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,oBAAC,aAAD;IAEE,OAAO,KAAK;IACZ,eAAe,KAAK;IACT;IACX,OAAO,KAAK;IACZ,EALK,KAAK,IAKV;AAIN,UACE,oBAAC,QAAD;IAEE,GAAI,UAAU,OAAO;IACrB,cAAY,KAAK,SAAS,KAAA;IAC1B,eAAY;cAEX,KAAK;IACD,EANA,KAAK,IAML;IAET;EACE,CAAA;EAER;AAEF,cAAc,UAAUA;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
- export { RollingNumber_module_default as default };
11
-
12
- //# sourceMappingURL=RollingNumber.module.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RollingNumber.module.mjs","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":""}