@mantine/core 6.0.1 → 6.0.3

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 (116) hide show
  1. package/cjs/Accordion/AccordionControl/AccordionControl.styles.js +3 -3
  2. package/cjs/Accordion/AccordionControl/AccordionControl.styles.js.map +1 -1
  3. package/cjs/Anchor/Anchor.js +5 -3
  4. package/cjs/Anchor/Anchor.js.map +1 -1
  5. package/cjs/Anchor/Anchor.styles.js +2 -2
  6. package/cjs/Anchor/Anchor.styles.js.map +1 -1
  7. package/cjs/Drawer/DrawerRoot/DrawerRoot.js +1 -1
  8. package/cjs/Drawer/DrawerRoot/DrawerRoot.js.map +1 -1
  9. package/cjs/Drawer/DrawerRoot/DrawerRoot.styles.js +3 -0
  10. package/cjs/Drawer/DrawerRoot/DrawerRoot.styles.js.map +1 -1
  11. package/cjs/Floating/use-floating-auto-update.js +13 -2
  12. package/cjs/Floating/use-floating-auto-update.js.map +1 -1
  13. package/cjs/JsonInput/JsonInput.js +2 -2
  14. package/cjs/JsonInput/JsonInput.js.map +1 -1
  15. package/cjs/ModalBase/ModalBase.js +1 -1
  16. package/cjs/ModalBase/ModalBase.js.map +1 -1
  17. package/cjs/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.js +2 -1
  18. package/cjs/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.js.map +1 -1
  19. package/cjs/NumberInput/NumberInput.js +65 -68
  20. package/cjs/NumberInput/NumberInput.js.map +1 -1
  21. package/cjs/Pagination/Pagination.js +1 -1
  22. package/cjs/Pagination/Pagination.js.map +1 -1
  23. package/cjs/Pagination/PaginationEdges/PaginationEdges.js +3 -0
  24. package/cjs/Pagination/PaginationEdges/PaginationEdges.js.map +1 -1
  25. package/cjs/Pagination/PaginationEdges/PaginationEdges.styles.js +14 -0
  26. package/cjs/Pagination/PaginationEdges/PaginationEdges.styles.js.map +1 -0
  27. package/cjs/PinInput/PinInput.js +6 -6
  28. package/cjs/PinInput/PinInput.js.map +1 -1
  29. package/cjs/Popover/PopoverDropdown/PopoverDropdown.js +0 -1
  30. package/cjs/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  31. package/cjs/Popover/use-popover.js +9 -0
  32. package/cjs/Popover/use-popover.js.map +1 -1
  33. package/cjs/ScrollArea/ScrollArea.js +6 -3
  34. package/cjs/ScrollArea/ScrollArea.js.map +1 -1
  35. package/cjs/Select/Select.js +1 -1
  36. package/cjs/Select/Select.js.map +1 -1
  37. package/cjs/Select/SelectPopover/SelectPopover.js +1 -0
  38. package/cjs/Select/SelectPopover/SelectPopover.js.map +1 -1
  39. package/cjs/Select/SelectScrollArea/SelectScrollArea.js +1 -0
  40. package/cjs/Select/SelectScrollArea/SelectScrollArea.js.map +1 -1
  41. package/cjs/Switch/Switch.js +2 -2
  42. package/cjs/Switch/Switch.js.map +1 -1
  43. package/cjs/Switch/Switch.styles.js +3 -0
  44. package/cjs/Switch/Switch.styles.js.map +1 -1
  45. package/cjs/Tooltip/use-tooltip.js +1 -0
  46. package/cjs/Tooltip/use-tooltip.js.map +1 -1
  47. package/esm/Accordion/AccordionControl/AccordionControl.styles.js +3 -3
  48. package/esm/Accordion/AccordionControl/AccordionControl.styles.js.map +1 -1
  49. package/esm/Anchor/Anchor.js +5 -3
  50. package/esm/Anchor/Anchor.js.map +1 -1
  51. package/esm/Anchor/Anchor.styles.js +2 -2
  52. package/esm/Anchor/Anchor.styles.js.map +1 -1
  53. package/esm/Drawer/DrawerRoot/DrawerRoot.js +1 -1
  54. package/esm/Drawer/DrawerRoot/DrawerRoot.js.map +1 -1
  55. package/esm/Drawer/DrawerRoot/DrawerRoot.styles.js +3 -0
  56. package/esm/Drawer/DrawerRoot/DrawerRoot.styles.js.map +1 -1
  57. package/esm/Floating/use-floating-auto-update.js +13 -2
  58. package/esm/Floating/use-floating-auto-update.js.map +1 -1
  59. package/esm/JsonInput/JsonInput.js +2 -2
  60. package/esm/JsonInput/JsonInput.js.map +1 -1
  61. package/esm/ModalBase/ModalBase.js +1 -1
  62. package/esm/ModalBase/ModalBase.js.map +1 -1
  63. package/esm/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.js +2 -1
  64. package/esm/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.js.map +1 -1
  65. package/esm/NumberInput/NumberInput.js +66 -69
  66. package/esm/NumberInput/NumberInput.js.map +1 -1
  67. package/esm/Pagination/Pagination.js +1 -1
  68. package/esm/Pagination/Pagination.js.map +1 -1
  69. package/esm/Pagination/PaginationEdges/PaginationEdges.js +3 -0
  70. package/esm/Pagination/PaginationEdges/PaginationEdges.js.map +1 -1
  71. package/esm/Pagination/PaginationEdges/PaginationEdges.styles.js +10 -0
  72. package/esm/Pagination/PaginationEdges/PaginationEdges.styles.js.map +1 -0
  73. package/esm/PinInput/PinInput.js +7 -7
  74. package/esm/PinInput/PinInput.js.map +1 -1
  75. package/esm/Popover/PopoverDropdown/PopoverDropdown.js +0 -1
  76. package/esm/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  77. package/esm/Popover/use-popover.js +9 -0
  78. package/esm/Popover/use-popover.js.map +1 -1
  79. package/esm/ScrollArea/ScrollArea.js +6 -3
  80. package/esm/ScrollArea/ScrollArea.js.map +1 -1
  81. package/esm/Select/Select.js +1 -1
  82. package/esm/Select/Select.js.map +1 -1
  83. package/esm/Select/SelectPopover/SelectPopover.js +1 -0
  84. package/esm/Select/SelectPopover/SelectPopover.js.map +1 -1
  85. package/esm/Select/SelectScrollArea/SelectScrollArea.js +1 -0
  86. package/esm/Select/SelectScrollArea/SelectScrollArea.js.map +1 -1
  87. package/esm/Switch/Switch.js +2 -2
  88. package/esm/Switch/Switch.js.map +1 -1
  89. package/esm/Switch/Switch.styles.js +3 -0
  90. package/esm/Switch/Switch.styles.js.map +1 -1
  91. package/esm/Tooltip/use-tooltip.js +1 -0
  92. package/esm/Tooltip/use-tooltip.js.map +1 -1
  93. package/lib/Anchor/Anchor.d.ts.map +1 -1
  94. package/lib/Anchor/Anchor.styles.d.ts +1 -0
  95. package/lib/Anchor/Anchor.styles.d.ts.map +1 -1
  96. package/lib/Drawer/DrawerRoot/DrawerRoot.styles.d.ts +1 -0
  97. package/lib/Drawer/DrawerRoot/DrawerRoot.styles.d.ts.map +1 -1
  98. package/lib/Floating/use-floating-auto-update.d.ts +3 -1
  99. package/lib/Floating/use-floating-auto-update.d.ts.map +1 -1
  100. package/lib/JsonInput/JsonInput.d.ts +5 -5
  101. package/lib/JsonInput/JsonInput.d.ts.map +1 -1
  102. package/lib/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.d.ts.map +1 -1
  103. package/lib/NumberInput/NumberInput.d.ts.map +1 -1
  104. package/lib/Pagination/PaginationEdges/PaginationEdges.d.ts.map +1 -1
  105. package/lib/Pagination/PaginationEdges/PaginationEdges.styles.d.ts +9 -0
  106. package/lib/Pagination/PaginationEdges/PaginationEdges.styles.d.ts.map +1 -0
  107. package/lib/PinInput/PinInput.d.ts.map +1 -1
  108. package/lib/Popover/PopoverDropdown/PopoverDropdown.d.ts.map +1 -1
  109. package/lib/Popover/use-popover.d.ts.map +1 -1
  110. package/lib/ScrollArea/ScrollArea.d.ts.map +1 -1
  111. package/lib/Select/SelectPopover/SelectPopover.d.ts.map +1 -1
  112. package/lib/Select/SelectScrollArea/SelectScrollArea.d.ts.map +1 -1
  113. package/lib/Switch/Switch.styles.d.ts +1 -0
  114. package/lib/Switch/Switch.styles.d.ts.map +1 -1
  115. package/lib/Tooltip/use-tooltip.d.ts.map +1 -1
  116. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerRoot.js","sources":["../../../src/Drawer/DrawerRoot/DrawerRoot.tsx"],"sourcesContent":["import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { ModalBase, ModalBaseDefaultProps, ModalBaseSettings } from '../../ModalBase';\nimport { DrawerProvider, ScrollAreaComponent } from '../Drawer.context';\nimport useStyles from './DrawerRoot.styles';\n\nexport type DrawerPosition = 'bottom' | 'left' | 'right' | 'top';\n\nexport interface DrawerRootProps extends ModalBaseSettings {\n /** Scroll area component, ScrollArea.Autosize by default */\n scrollAreaComponent?: ScrollAreaComponent;\n\n /** Side of the screen where drawer will be opened, 'left' by default */\n position?: 'bottom' | 'left' | 'right' | 'top';\n}\n\nconst transitions: Record<DrawerPosition, MantineTransition> = {\n top: 'slide-down',\n bottom: 'slide-up',\n left: 'slide-right',\n right: 'slide-left',\n};\n\nconst rtlTransitions: Record<DrawerPosition, MantineTransition> = {\n top: 'slide-down',\n bottom: 'slide-up',\n right: 'slide-right',\n left: 'slide-left',\n};\n\nconst defaultProps: Partial<DrawerRootProps> = {\n ...ModalBaseDefaultProps,\n position: 'left',\n};\n\nexport function DrawerRoot(props: DrawerRootProps) {\n const { classNames, variant, size, scrollAreaComponent, position, transitionProps, ...others } =\n useComponentDefaultProps('DrawerRoot', defaultProps, props);\n\n const { classes, cx, theme } = useStyles({ position }, { name: 'Modal', variant, size });\n\n const drawerTransition = (theme.dir === 'rtl' ? rtlTransitions : transitions)[position];\n\n return (\n <DrawerProvider value={{ scrollAreaComponent }}>\n <ModalBase\n __staticSelector=\"Modal\"\n size={size}\n variant={variant}\n transitionProps={{ transition: drawerTransition, duration: 200, ...transitionProps }}\n classNames={{\n ...classNames,\n content: cx(classes.content, classNames?.content),\n inner: cx(classes.inner, classNames?.inner),\n }}\n {...others}\n />\n </DrawerProvider>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawerRoot.js","sources":["../../../src/Drawer/DrawerRoot/DrawerRoot.tsx"],"sourcesContent":["import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { ModalBase, ModalBaseDefaultProps, ModalBaseSettings } from '../../ModalBase';\nimport { DrawerProvider, ScrollAreaComponent } from '../Drawer.context';\nimport useStyles from './DrawerRoot.styles';\n\nexport type DrawerPosition = 'bottom' | 'left' | 'right' | 'top';\n\nexport interface DrawerRootProps extends ModalBaseSettings {\n /** Scroll area component, ScrollArea.Autosize by default */\n scrollAreaComponent?: ScrollAreaComponent;\n\n /** Side of the screen where drawer will be opened, 'left' by default */\n position?: 'bottom' | 'left' | 'right' | 'top';\n}\n\nconst transitions: Record<DrawerPosition, MantineTransition> = {\n top: 'slide-down',\n bottom: 'slide-up',\n left: 'slide-right',\n right: 'slide-left',\n};\n\nconst rtlTransitions: Record<DrawerPosition, MantineTransition> = {\n top: 'slide-down',\n bottom: 'slide-up',\n right: 'slide-right',\n left: 'slide-left',\n};\n\nconst defaultProps: Partial<DrawerRootProps> = {\n ...ModalBaseDefaultProps,\n position: 'left',\n};\n\nexport function DrawerRoot(props: DrawerRootProps) {\n const { classNames, variant, size, scrollAreaComponent, position, transitionProps, ...others } =\n useComponentDefaultProps('DrawerRoot', defaultProps, props);\n\n const { classes, cx, theme } = useStyles({ position }, { name: 'Drawer', variant, size });\n\n const drawerTransition = (theme.dir === 'rtl' ? rtlTransitions : transitions)[position];\n\n return (\n <DrawerProvider value={{ scrollAreaComponent }}>\n <ModalBase\n __staticSelector=\"Modal\"\n size={size}\n variant={variant}\n transitionProps={{ transition: drawerTransition, duration: 200, ...transitionProps }}\n classNames={{\n ...classNames,\n content: cx(classes.content, classNames?.content),\n inner: cx(classes.inner, classNames?.inner),\n }}\n {...others}\n />\n </DrawerProvider>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@ const sizes = {
8
8
  xl: rem(780)
9
9
  };
10
10
  var useStyles = createStyles((theme, { position }, { size }) => ({
11
+ header: {
12
+ zIndex: 1e3
13
+ },
11
14
  content: {
12
15
  flex: position === "right" || position === "left" ? `0 0 ${getSize({ size, sizes })}` : "0 0 100%",
13
16
  maxWidth: "100%",
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerRoot.styles.js","sources":["../../../src/Drawer/DrawerRoot/DrawerRoot.styles.ts"],"sourcesContent":["import { createStyles, rem, getSize } from '@mantine/styles';\n\nconst sizes = {\n xs: rem(320),\n sm: rem(380),\n md: rem(440),\n lg: rem(620),\n xl: rem(780),\n};\n\ninterface DrawerRootStylesParams {\n position: 'bottom' | 'left' | 'right' | 'top';\n}\n\nexport default createStyles((theme, { position }: DrawerRootStylesParams, { size }) => ({\n content: {\n flex:\n position === 'right' || position === 'left' ? `0 0 ${getSize({ size, sizes })}` : '0 0 100%',\n maxWidth: '100%',\n maxHeight: '100%',\n height: position === 'right' || position === 'left' ? '100%' : getSize({ size, sizes }),\n borderRadius: 0,\n overflowY: 'auto',\n },\n\n inner: {\n display: 'flex',\n justifyContent: position === 'right' ? 'flex-end' : 'flex-start',\n alignItems: position === 'bottom' ? 'flex-end' : 'flex-start',\n },\n}));\n"],"names":[],"mappings":";;AACA,MAAM,KAAK,GAAG;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,CAAC,CAAC;AACF,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM;AAChE,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU;AACtG,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,SAAS,EAAE,MAAM;AACrB,IAAI,MAAM,EAAE,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3F,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,SAAS,EAAE,MAAM;AACrB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,cAAc,EAAE,QAAQ,KAAK,OAAO,GAAG,UAAU,GAAG,YAAY;AACpE,IAAI,UAAU,EAAE,QAAQ,KAAK,QAAQ,GAAG,UAAU,GAAG,YAAY;AACjE,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"DrawerRoot.styles.js","sources":["../../../src/Drawer/DrawerRoot/DrawerRoot.styles.ts"],"sourcesContent":["import { createStyles, rem, getSize } from '@mantine/styles';\n\nconst sizes = {\n xs: rem(320),\n sm: rem(380),\n md: rem(440),\n lg: rem(620),\n xl: rem(780),\n};\n\ninterface DrawerRootStylesParams {\n position: 'bottom' | 'left' | 'right' | 'top';\n}\n\nexport default createStyles((theme, { position }: DrawerRootStylesParams, { size }) => ({\n header: {\n zIndex: 1000,\n },\n\n content: {\n flex:\n position === 'right' || position === 'left' ? `0 0 ${getSize({ size, sizes })}` : '0 0 100%',\n maxWidth: '100%',\n maxHeight: '100%',\n height: position === 'right' || position === 'left' ? '100%' : getSize({ size, sizes }),\n borderRadius: 0,\n overflowY: 'auto',\n },\n\n inner: {\n display: 'flex',\n justifyContent: position === 'right' ? 'flex-end' : 'flex-start',\n alignItems: position === 'bottom' ? 'flex-end' : 'flex-start',\n },\n}));\n"],"names":[],"mappings":";;AACA,MAAM,KAAK,GAAG;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,CAAC,CAAC;AACF,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM;AAChE,EAAE,MAAM,EAAE;AACV,IAAI,MAAM,EAAE,GAAG;AACf,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU;AACtG,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,SAAS,EAAE,MAAM;AACrB,IAAI,MAAM,EAAE,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3F,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,SAAS,EAAE,MAAM;AACrB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,cAAc,EAAE,QAAQ,KAAK,OAAO,GAAG,UAAU,GAAG,YAAY;AACpE,IAAI,UAAU,EAAE,QAAQ,KAAK,QAAQ,GAAG,UAAU,GAAG,YAAY;AACjE,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -2,14 +2,25 @@ import { useState, useEffect } from 'react';
2
2
  import { autoUpdate } from '@floating-ui/react';
3
3
  import { useDidUpdate } from '@mantine/hooks';
4
4
 
5
- function useFloatingAutoUpdate({ opened, floating, positionDependencies }) {
5
+ function useFloatingAutoUpdate({
6
+ opened,
7
+ floating,
8
+ position,
9
+ positionDependencies
10
+ }) {
6
11
  const [delayedUpdate, setDelayedUpdate] = useState(0);
7
12
  useEffect(() => {
8
13
  if (floating.refs.reference.current && floating.refs.floating.current) {
9
14
  return autoUpdate(floating.refs.reference.current, floating.refs.floating.current, floating.update);
10
15
  }
11
16
  return void 0;
12
- }, [floating.refs.reference.current, floating.refs.floating.current, opened, delayedUpdate]);
17
+ }, [
18
+ floating.refs.reference.current,
19
+ floating.refs.floating.current,
20
+ opened,
21
+ delayedUpdate,
22
+ position
23
+ ]);
13
24
  useDidUpdate(() => {
14
25
  floating.update();
15
26
  }, positionDependencies);
@@ -1 +1 @@
1
- {"version":3,"file":"use-floating-auto-update.js","sources":["../../src/Floating/use-floating-auto-update.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { autoUpdate } from '@floating-ui/react';\nimport { useDidUpdate } from '@mantine/hooks';\n\ninterface Payload {\n opened: boolean;\n floating: {\n update(): void;\n refs: {\n floating: React.MutableRefObject<any>;\n reference: React.MutableRefObject<any>;\n };\n };\n positionDependencies: any[];\n}\n\nexport function useFloatingAutoUpdate({ opened, floating, positionDependencies }: Payload) {\n const [delayedUpdate, setDelayedUpdate] = useState(0);\n\n useEffect(() => {\n if (floating.refs.reference.current && floating.refs.floating.current) {\n return autoUpdate(\n floating.refs.reference.current,\n floating.refs.floating.current,\n floating.update\n );\n }\n\n return undefined;\n }, [floating.refs.reference.current, floating.refs.floating.current, opened, delayedUpdate]);\n\n useDidUpdate(() => {\n floating.update();\n }, positionDependencies);\n\n useDidUpdate(() => {\n setDelayedUpdate((c) => c + 1);\n }, [opened]);\n}\n"],"names":[],"mappings":";;;;AAGO,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE;AAClF,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxD,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3E,MAAM,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1G,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/F,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;AACtB,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC3B,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"use-floating-auto-update.js","sources":["../../src/Floating/use-floating-auto-update.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { autoUpdate } from '@floating-ui/react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport { FloatingPosition } from './types';\n\ninterface Payload {\n opened: boolean;\n floating: {\n update(): void;\n refs: {\n floating: React.MutableRefObject<any>;\n reference: React.MutableRefObject<any>;\n };\n };\n positionDependencies: any[];\n position: FloatingPosition;\n}\n\nexport function useFloatingAutoUpdate({\n opened,\n floating,\n position,\n positionDependencies,\n}: Payload) {\n const [delayedUpdate, setDelayedUpdate] = useState(0);\n\n useEffect(() => {\n if (floating.refs.reference.current && floating.refs.floating.current) {\n return autoUpdate(\n floating.refs.reference.current,\n floating.refs.floating.current,\n floating.update\n );\n }\n\n return undefined;\n }, [\n floating.refs.reference.current,\n floating.refs.floating.current,\n opened,\n delayedUpdate,\n position,\n ]);\n\n useDidUpdate(() => {\n floating.update();\n }, positionDependencies);\n\n useDidUpdate(() => {\n setDelayedUpdate((c) => c + 1);\n }, [opened]);\n}\n"],"names":[],"mappings":";;;;AAGO,SAAS,qBAAqB,CAAC;AACtC,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,oBAAoB;AACtB,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxD,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3E,MAAM,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1G,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE;AACL,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;AACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;AAClC,IAAI,MAAM;AACV,IAAI,aAAa;AACjB,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;AACtB,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC3B,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf;;;;"}
@@ -40,7 +40,7 @@ const defaultProps = {
40
40
  formatOnBlur: false,
41
41
  size: "sm",
42
42
  serialize: JSON.stringify,
43
- deserialize: JSON.stringify
43
+ deserialize: JSON.parse
44
44
  };
45
45
  const JsonInput = forwardRef((props, ref) => {
46
46
  const _a = useComponentDefaultProps("JsonInput", defaultProps, props), {
@@ -91,7 +91,7 @@ const JsonInput = forwardRef((props, ref) => {
91
91
  const handleBlur = (event) => {
92
92
  typeof onBlur === "function" && onBlur(event);
93
93
  const isValid = validateJson(event.currentTarget.value, deserialize);
94
- isValid && event.currentTarget.value.trim() !== "" && setValue(serialize(deserialize(event.currentTarget.value), null, 2));
94
+ formatOnBlur && !readOnly && isValid && event.currentTarget.value.trim() !== "" && setValue(serialize(deserialize(event.currentTarget.value), null, 2));
95
95
  setValid(isValid);
96
96
  };
97
97
  return /* @__PURE__ */ React.createElement(Textarea, __spreadValues({
@@ -1 +1 @@
1
- {"version":3,"file":"JsonInput.js","sources":["../../src/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DefaultProps, useComponentDefaultProps } from '@mantine/styles';\nimport { validateJson } from './validate-json/validate-json';\nimport { Textarea, TextareaProps } from '../Textarea';\nimport { TextInputStylesNames } from '../TextInput';\nimport useStyles from './JsonInput.styles';\n\nexport type JsonInputStylesNames = TextInputStylesNames;\n\nexport interface JsonInputProps\n extends DefaultProps<JsonInputStylesNames>,\n Omit<TextareaProps, 'onChange'> {\n /** Value for controlled input */\n value?: string;\n\n /** Default value for uncontrolled input */\n defaultValue?: string;\n\n /** onChange value for controlled input */\n onChange?(value: string): void;\n\n /** Format json on blur */\n formatOnBlur?: boolean;\n\n /** Error message shown when json is not valid */\n validationError?: React.ReactNode;\n\n /** Function to serialize value into string, used for value formatting, JSON.stringify by default */\n serialize?: typeof JSON.stringify;\n\n /** Function to deserialize string value, used for value formatting and input json validation, must throw error if string cannot be processed, JSON.parse by default */\n deserialize?: typeof JSON.parse;\n}\n\nconst defaultProps: Partial<JsonInputProps> = {\n formatOnBlur: false,\n size: 'sm',\n serialize: JSON.stringify,\n deserialize: JSON.stringify,\n};\n\nexport const JsonInput = forwardRef<HTMLTextAreaElement, JsonInputProps>((props, ref) => {\n const {\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n error,\n formatOnBlur,\n size,\n validationError,\n classNames,\n unstyled,\n readOnly,\n variant,\n serialize,\n deserialize,\n ...others\n } = useComponentDefaultProps('JsonInput', defaultProps, props);\n\n const { classes, cx } = useStyles(null, { name: 'JsonInput', unstyled, size, variant });\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const [valid, setValid] = useState(validateJson(_value, deserialize));\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setValid(true);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const isValid = validateJson(event.currentTarget.value, deserialize);\n formatOnBlur && !readOnly;\n isValid &&\n event.currentTarget.value.trim() !== '' &&\n setValue(serialize(deserialize(event.currentTarget.value), null, 2));\n setValid(isValid);\n };\n\n return (\n <Textarea\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n error={valid ? error : validationError || true}\n __staticSelector=\"JsonInput\"\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n autoComplete=\"nope\"\n ref={ref}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n variant={variant}\n {...others}\n />\n );\n});\n\nJsonInput.displayName = '@mantine/core/JsonInput';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonInput.js","sources":["../../src/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DefaultProps, useComponentDefaultProps } from '@mantine/styles';\nimport { validateJson } from './validate-json/validate-json';\nimport { Textarea, TextareaProps } from '../Textarea';\nimport { TextInputStylesNames } from '../TextInput';\nimport useStyles from './JsonInput.styles';\n\nexport type JsonInputStylesNames = TextInputStylesNames;\n\nexport interface JsonInputProps\n extends DefaultProps<JsonInputStylesNames>,\n Omit<TextareaProps, 'onChange'> {\n /** Value for controlled input */\n value?: string;\n\n /** Default value for uncontrolled input */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?(value: string): void;\n\n /** Format JSON on blur */\n formatOnBlur?: boolean;\n\n /** Error message shown when JSON is not valid */\n validationError?: React.ReactNode;\n\n /** Function to serialize value into a string, used for value formatting, JSON.stringify by default */\n serialize?: typeof JSON.stringify;\n\n /** Function to deserialize string value, used for value formatting and input JSON validation, must throw error if string cannot be processed, JSON.parse by default */\n deserialize?: typeof JSON.parse;\n}\n\nconst defaultProps: Partial<JsonInputProps> = {\n formatOnBlur: false,\n size: 'sm',\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n};\n\nexport const JsonInput = forwardRef<HTMLTextAreaElement, JsonInputProps>((props, ref) => {\n const {\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n error,\n formatOnBlur,\n size,\n validationError,\n classNames,\n unstyled,\n readOnly,\n variant,\n serialize,\n deserialize,\n ...others\n } = useComponentDefaultProps('JsonInput', defaultProps, props);\n\n const { classes, cx } = useStyles(null, { name: 'JsonInput', unstyled, size, variant });\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const [valid, setValid] = useState(validateJson(_value, deserialize));\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setValid(true);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const isValid = validateJson(event.currentTarget.value, deserialize);\n formatOnBlur &&\n !readOnly &&\n isValid &&\n event.currentTarget.value.trim() !== '' &&\n setValue(serialize(deserialize(event.currentTarget.value), null, 2));\n setValid(isValid);\n };\n\n return (\n <Textarea\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n error={valid ? error : validationError || true}\n __staticSelector=\"JsonInput\"\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n autoComplete=\"nope\"\n ref={ref}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n variant={variant}\n {...others}\n />\n );\n});\n\nJsonInput.displayName = '@mantine/core/JsonInput';\n"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ const ModalBaseDefaultProps = {
59
59
  shadow: "xl"
60
60
  };
61
61
  function ModalBase(props) {
62
- const _a = useComponentDefaultProps(props.__staticSelector, ModalBaseDefaultProps, props), {
62
+ const _a = useComponentDefaultProps("ModalBase", ModalBaseDefaultProps, props), {
63
63
  opened,
64
64
  onClose,
65
65
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"ModalBase.js","sources":["../../src/ModalBase/ModalBase.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { useState } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { useId, useWindowEvent, useFocusReturn } from '@mantine/hooks';\nimport {\n getDefaultZIndex,\n MantineNumberSize,\n useComponentDefaultProps,\n ClassNames,\n Styles,\n MantineShadow,\n Selectors,\n} from '@mantine/styles';\nimport { OptionalPortal, PortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport { ModalBaseProvider } from './ModalBase.context';\nimport {\n ModalBaseCloseButton,\n ModalBaseCloseButtonStylesNames,\n} from './ModalBaseCloseButton/ModalBaseCloseButton';\nimport { ModalBaseOverlay, ModalBaseOverlayStylesNames } from './ModalBaseOverlay/ModalBaseOverlay';\nimport { ModalBaseContent, ModalBaseContentStylesNames } from './ModalBaseContent/ModalBaseContent';\nimport { ModalBaseHeader, ModalBaseHeaderStylesNames } from './ModalBaseHeader/ModalBaseHeader';\nimport { ModalBaseTitle, ModalBaseTitleStylesNames } from './ModalBaseTitle/ModalBaseTitle';\nimport { ModalBaseBody, ModalBaseBodyStylesNames } from './ModalBaseBody/ModalBaseBody';\nimport { NativeScrollArea } from './NativeScrollArea/NativeScrollArea';\nimport { useLockScroll } from './use-lock-scroll';\nimport useStyles from './ModalBase.styles';\n\nexport type ModalBaseStylesNames =\n | Selectors<typeof useStyles>\n | ModalBaseCloseButtonStylesNames\n | ModalBaseOverlayStylesNames\n | ModalBaseContentStylesNames\n | ModalBaseHeaderStylesNames\n | ModalBaseTitleStylesNames\n | ModalBaseBodyStylesNames;\n\nexport interface ModalBaseSettings extends React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n classNames?: ClassNames<ModalBaseStylesNames>;\n styles?: Styles<ModalBaseStylesNames>;\n unstyled?: boolean;\n\n /** If set modal/drawer will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n keepMounted?: boolean;\n\n /** Determines whether modal/drawer is opened */\n opened: boolean;\n\n /** Called when modal/drawer is closed */\n onClose(): void;\n\n /** Child component */\n children?: React.ReactNode;\n\n /** Determines whether the modal/drawer should be closed when user clicks on the overlay, true by default */\n closeOnClickOutside?: boolean;\n\n /** Props added to Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'pop' } by default */\n transitionProps?: TransitionOverride;\n\n /** Determines whether component should be rendered inside Portal, true by default */\n withinPortal?: boolean;\n\n /** Props to pass down to the portal when withinPortal is true */\n portalProps?: Omit<PortalProps, 'target'>;\n\n /** Target element or selector where Portal should be rendered, by default new element is created and appended to the document.body */\n target?: HTMLElement | string;\n\n /** Determines whether scroll should be locked when opened={true}, defaults to true */\n lockScroll?: boolean;\n\n /** Determines whether focus should be trapped, true by default */\n trapFocus?: boolean;\n\n /** z-index CSS property of root element, 200 by default */\n zIndex?: number;\n\n /** Key of theme.spacing or any valid CSS value to set content, header and footer padding, 'md' by default */\n padding?: MantineNumberSize;\n\n /** Id used to connect modal/drawer with body and title */\n id?: string;\n\n /** Determines whether focus should be returned to the last active element onClose is called, true by default */\n returnFocus?: boolean;\n\n /** Determines whether onClose should be called when user presses escape key, true by default */\n closeOnEscape?: boolean;\n\n /** Controls content width, 'md' by default */\n size?: MantineNumberSize;\n\n /** Key of theme.shadows or any valid css box-shadow value, 'xl' by default */\n shadow?: MantineShadow;\n}\n\nexport interface ModalBaseProps extends ModalBaseSettings {\n /** Base component name for styles and components default props */\n __staticSelector: string;\n}\n\nexport const ModalBaseDefaultProps: Partial<ModalBaseProps> = {\n closeOnClickOutside: true,\n withinPortal: true,\n lockScroll: true,\n trapFocus: true,\n returnFocus: true,\n closeOnEscape: true,\n keepMounted: false,\n zIndex: getDefaultZIndex('modal'),\n padding: 'md',\n size: 'md',\n shadow: 'xl',\n};\n\nexport function ModalBase(props: ModalBaseProps) {\n const {\n opened,\n onClose,\n children,\n closeOnClickOutside,\n __staticSelector,\n transitionProps,\n withinPortal,\n portalProps,\n keepMounted,\n target,\n zIndex,\n lockScroll,\n trapFocus,\n closeOnEscape,\n returnFocus,\n padding,\n shadow,\n id,\n size,\n variant,\n classNames,\n unstyled,\n styles,\n className,\n ...others\n } = useComponentDefaultProps(props.__staticSelector, ModalBaseDefaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const _id = useId(id);\n const [titleMounted, setTitleMounted] = useState(false);\n const [bodyMounted, setBodyMounted] = useState(false);\n\n const transitionDuration =\n typeof transitionProps?.duration === 'number' ? transitionProps?.duration : 200;\n\n const shouldLockScroll = useLockScroll({ opened, transitionDuration });\n\n useWindowEvent('keydown', (event) => {\n if (!trapFocus && event.key === 'Escape' && closeOnEscape) {\n onClose();\n }\n });\n\n useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });\n\n return (\n <OptionalPortal withinPortal={withinPortal} target={target} {...portalProps}>\n <ModalBaseProvider\n value={{\n __staticSelector,\n opened,\n onClose,\n closeOnClickOutside,\n transitionProps: { ...transitionProps, duration: transitionDuration, keepMounted },\n zIndex,\n padding,\n id: _id,\n getTitleId: () => `${_id}-title`,\n getBodyId: () => `${_id}-body`,\n titleMounted,\n bodyMounted,\n setTitleMounted,\n setBodyMounted,\n trapFocus,\n closeOnEscape,\n shadow,\n stylesApi: {\n name: __staticSelector,\n size,\n variant,\n classNames,\n styles,\n unstyled,\n },\n }}\n >\n <RemoveScroll enabled={shouldLockScroll && lockScroll}>\n <div className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n </RemoveScroll>\n </ModalBaseProvider>\n </OptionalPortal>\n );\n}\n\nModalBase.CloseButton = ModalBaseCloseButton;\nModalBase.Overlay = ModalBaseOverlay;\nModalBase.Content = ModalBaseContent;\nModalBase.Header = ModalBaseHeader;\nModalBase.Title = ModalBaseTitle;\nModalBase.Body = ModalBaseBody;\nModalBase.NativeScrollArea = NativeScrollArea;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModalBase.js","sources":["../../src/ModalBase/ModalBase.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { useState } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { useId, useWindowEvent, useFocusReturn } from '@mantine/hooks';\nimport {\n getDefaultZIndex,\n MantineNumberSize,\n useComponentDefaultProps,\n ClassNames,\n Styles,\n MantineShadow,\n Selectors,\n} from '@mantine/styles';\nimport { OptionalPortal, PortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport { ModalBaseProvider } from './ModalBase.context';\nimport {\n ModalBaseCloseButton,\n ModalBaseCloseButtonStylesNames,\n} from './ModalBaseCloseButton/ModalBaseCloseButton';\nimport { ModalBaseOverlay, ModalBaseOverlayStylesNames } from './ModalBaseOverlay/ModalBaseOverlay';\nimport { ModalBaseContent, ModalBaseContentStylesNames } from './ModalBaseContent/ModalBaseContent';\nimport { ModalBaseHeader, ModalBaseHeaderStylesNames } from './ModalBaseHeader/ModalBaseHeader';\nimport { ModalBaseTitle, ModalBaseTitleStylesNames } from './ModalBaseTitle/ModalBaseTitle';\nimport { ModalBaseBody, ModalBaseBodyStylesNames } from './ModalBaseBody/ModalBaseBody';\nimport { NativeScrollArea } from './NativeScrollArea/NativeScrollArea';\nimport { useLockScroll } from './use-lock-scroll';\nimport useStyles from './ModalBase.styles';\n\nexport type ModalBaseStylesNames =\n | Selectors<typeof useStyles>\n | ModalBaseCloseButtonStylesNames\n | ModalBaseOverlayStylesNames\n | ModalBaseContentStylesNames\n | ModalBaseHeaderStylesNames\n | ModalBaseTitleStylesNames\n | ModalBaseBodyStylesNames;\n\nexport interface ModalBaseSettings extends React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n classNames?: ClassNames<ModalBaseStylesNames>;\n styles?: Styles<ModalBaseStylesNames>;\n unstyled?: boolean;\n\n /** If set modal/drawer will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n keepMounted?: boolean;\n\n /** Determines whether modal/drawer is opened */\n opened: boolean;\n\n /** Called when modal/drawer is closed */\n onClose(): void;\n\n /** Child component */\n children?: React.ReactNode;\n\n /** Determines whether the modal/drawer should be closed when user clicks on the overlay, true by default */\n closeOnClickOutside?: boolean;\n\n /** Props added to Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'pop' } by default */\n transitionProps?: TransitionOverride;\n\n /** Determines whether component should be rendered inside Portal, true by default */\n withinPortal?: boolean;\n\n /** Props to pass down to the portal when withinPortal is true */\n portalProps?: Omit<PortalProps, 'target'>;\n\n /** Target element or selector where Portal should be rendered, by default new element is created and appended to the document.body */\n target?: HTMLElement | string;\n\n /** Determines whether scroll should be locked when opened={true}, defaults to true */\n lockScroll?: boolean;\n\n /** Determines whether focus should be trapped, true by default */\n trapFocus?: boolean;\n\n /** z-index CSS property of root element, 200 by default */\n zIndex?: number;\n\n /** Key of theme.spacing or any valid CSS value to set content, header and footer padding, 'md' by default */\n padding?: MantineNumberSize;\n\n /** Id used to connect modal/drawer with body and title */\n id?: string;\n\n /** Determines whether focus should be returned to the last active element onClose is called, true by default */\n returnFocus?: boolean;\n\n /** Determines whether onClose should be called when user presses escape key, true by default */\n closeOnEscape?: boolean;\n\n /** Controls content width, 'md' by default */\n size?: MantineNumberSize;\n\n /** Key of theme.shadows or any valid css box-shadow value, 'xl' by default */\n shadow?: MantineShadow;\n}\n\nexport interface ModalBaseProps extends ModalBaseSettings {\n /** Base component name for styles and components default props */\n __staticSelector: string;\n}\n\nexport const ModalBaseDefaultProps: Partial<ModalBaseProps> = {\n closeOnClickOutside: true,\n withinPortal: true,\n lockScroll: true,\n trapFocus: true,\n returnFocus: true,\n closeOnEscape: true,\n keepMounted: false,\n zIndex: getDefaultZIndex('modal'),\n padding: 'md',\n size: 'md',\n shadow: 'xl',\n};\n\nexport function ModalBase(props: ModalBaseProps) {\n const {\n opened,\n onClose,\n children,\n closeOnClickOutside,\n __staticSelector,\n transitionProps,\n withinPortal,\n portalProps,\n keepMounted,\n target,\n zIndex,\n lockScroll,\n trapFocus,\n closeOnEscape,\n returnFocus,\n padding,\n shadow,\n id,\n size,\n variant,\n classNames,\n unstyled,\n styles,\n className,\n ...others\n } = useComponentDefaultProps('ModalBase', ModalBaseDefaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const _id = useId(id);\n const [titleMounted, setTitleMounted] = useState(false);\n const [bodyMounted, setBodyMounted] = useState(false);\n\n const transitionDuration =\n typeof transitionProps?.duration === 'number' ? transitionProps?.duration : 200;\n\n const shouldLockScroll = useLockScroll({ opened, transitionDuration });\n\n useWindowEvent('keydown', (event) => {\n if (!trapFocus && event.key === 'Escape' && closeOnEscape) {\n onClose();\n }\n });\n\n useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });\n\n return (\n <OptionalPortal withinPortal={withinPortal} target={target} {...portalProps}>\n <ModalBaseProvider\n value={{\n __staticSelector,\n opened,\n onClose,\n closeOnClickOutside,\n transitionProps: { ...transitionProps, duration: transitionDuration, keepMounted },\n zIndex,\n padding,\n id: _id,\n getTitleId: () => `${_id}-title`,\n getBodyId: () => `${_id}-body`,\n titleMounted,\n bodyMounted,\n setTitleMounted,\n setBodyMounted,\n trapFocus,\n closeOnEscape,\n shadow,\n stylesApi: {\n name: __staticSelector,\n size,\n variant,\n classNames,\n styles,\n unstyled,\n },\n }}\n >\n <RemoveScroll enabled={shouldLockScroll && lockScroll}>\n <div className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n </RemoveScroll>\n </ModalBaseProvider>\n </OptionalPortal>\n );\n}\n\nModalBase.CloseButton = ModalBaseCloseButton;\nModalBase.Overlay = ModalBaseOverlay;\nModalBase.Content = ModalBaseContent;\nModalBase.Header = ModalBaseHeader;\nModalBase.Title = ModalBaseTitle;\nModalBase.Body = ModalBaseBody;\nModalBase.NativeScrollArea = NativeScrollArea;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAqBU,MAAC,qBAAqB,GAAG;AACrC,EAAE,mBAAmB,EAAE,IAAI;AAC3B,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,WAAW,EAAE,KAAK;AACpB,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC;AACnC,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,MAAM,EAAE,IAAI;AACd,EAAE;AACK,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,WAAW,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE;AAClF,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,mBAAmB;AACvB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,EAAE;AACN,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,SAAS;AACb,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,qBAAqB;AACzB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;AAC1C,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AACxB,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,EAAE,MAAM,kBAAkB,GAAG,QAAQ,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,QAAQ,GAAG,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,QAAQ,GAAG,GAAG,CAAC;AACnL,EAAE,MAAM,gBAAgB,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACzE,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACvC,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,aAAa,EAAE;AAC/D,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC,CAAC;AAC1E,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;AAC5E,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,GAAG,EAAE,WAAW,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;AAC1E,IAAI,KAAK,EAAE;AACX,MAAM,gBAAgB;AACtB,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,mBAAmB;AACzB,MAAM,eAAe,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;AACxH,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,EAAE,EAAE,GAAG;AACb,MAAM,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;AACtC,MAAM,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AACpC,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,SAAS;AACf,MAAM,aAAa;AACnB,MAAM,MAAM;AACZ,MAAM,SAAS,EAAE;AACjB,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,IAAI;AACZ,QAAQ,OAAO;AACf,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,OAAO;AACP,KAAK;AACL,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE;AACvD,IAAI,OAAO,EAAE,gBAAgB,IAAI,UAAU;AAC3C,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;AAC/D,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;AAC1C,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAC7C,SAAS,CAAC,OAAO,GAAG,gBAAgB,CAAC;AACrC,SAAS,CAAC,OAAO,GAAG,gBAAgB,CAAC;AACrC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC;AACjC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC;AAC/B,SAAS,CAAC,gBAAgB,GAAG,gBAAgB;;;;"}
@@ -11,7 +11,8 @@ var useStyles = createStyles((theme, { padding }) => {
11
11
  paddingRight: `calc(${paddingValue} - ${rem(5)})`,
12
12
  position: "sticky",
13
13
  top: 0,
14
- backgroundColor: theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white
14
+ backgroundColor: theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white,
15
+ zIndex: 1e3
15
16
  }
16
17
  };
17
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ModalBaseHeader.styles.js","sources":["../../../src/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, rem, getSize } from '@mantine/styles';\n\ninterface ModalBaseHeaderStylesParams {\n padding: MantineNumberSize;\n}\n\nexport default createStyles((theme, { padding }: ModalBaseHeaderStylesParams) => {\n const paddingValue = getSize({ size: padding, sizes: theme.spacing });\n return {\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: paddingValue,\n paddingRight: `calc(${paddingValue} - ${rem(5)})`,\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n },\n };\n});\n"],"names":[],"mappings":";;AACA,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK;AACpD,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACxE,EAAE,OAAO;AACT,IAAI,MAAM,EAAE;AACZ,MAAM,OAAO,EAAE,MAAM;AACrB,MAAM,cAAc,EAAE,eAAe;AACrC,MAAM,UAAU,EAAE,QAAQ;AAC1B,MAAM,OAAO,EAAE,YAAY;AAC3B,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,EAAE,QAAQ;AACxB,MAAM,GAAG,EAAE,CAAC;AACZ,MAAM,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;AACxF,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"ModalBaseHeader.styles.js","sources":["../../../src/ModalBase/ModalBaseHeader/ModalBaseHeader.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, rem, getSize } from '@mantine/styles';\n\ninterface ModalBaseHeaderStylesParams {\n padding: MantineNumberSize;\n}\n\nexport default createStyles((theme, { padding }: ModalBaseHeaderStylesParams) => {\n const paddingValue = getSize({ size: padding, sizes: theme.spacing });\n return {\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: paddingValue,\n paddingRight: `calc(${paddingValue} - ${rem(5)})`,\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n zIndex: 1000,\n },\n };\n});\n"],"names":[],"mappings":";;AACA,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK;AACpD,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACxE,EAAE,OAAO;AACT,IAAI,MAAM,EAAE;AACZ,MAAM,OAAO,EAAE,MAAM;AACrB,MAAM,cAAc,EAAE,eAAe;AACrC,MAAM,UAAU,EAAE,QAAQ;AAC1B,MAAM,OAAO,EAAE,YAAY;AAC3B,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,EAAE,QAAQ;AACxB,MAAM,GAAG,EAAE,CAAC;AACZ,MAAM,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;AACxF,MAAM,MAAM,EAAE,GAAG;AACjB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef, useState, useRef, useEffect } from 'react';
2
- import { clamp, assignRef, useMergedRef, useOs } from '@mantine/hooks';
2
+ import { useDisclosure, clamp, assignRef, useMergedRef, useOs } from '@mantine/hooks';
3
3
  import { rem, useComponentDefaultProps, getSize } from '@mantine/styles';
4
4
  import { getInputMode } from './get-input-mode/get-input-mode.js';
5
5
  import { Chevron } from './Chevron.js';
@@ -139,10 +139,13 @@ const NumberInput = forwardRef((props, ref) => {
139
139
  "type"
140
140
  ]);
141
141
  const { classes, cx } = useStyles({ radius }, { classNames, styles, unstyled, name: "NumberInput", variant, size });
142
- const parsePrecision = (val) => {
142
+ const parsePrecision = (val, allowHigherPrecision) => {
143
143
  if (val === "")
144
144
  return "";
145
145
  let result = val.toFixed(precision);
146
+ if (allowHigherPrecision && result.length < val.toString().length) {
147
+ result = val.toString();
148
+ }
146
149
  if (removeTrailingZeros && precision > 0) {
147
150
  result = result.replace(new RegExp(`[0]{0,${precision}}$`), "");
148
151
  if (result.endsWith(".") || result.endsWith(decimalSeparator)) {
@@ -151,16 +154,6 @@ const NumberInput = forwardRef((props, ref) => {
151
154
  }
152
155
  return result;
153
156
  };
154
- const [_value, setValue] = useState(typeof value === "number" ? value : typeof defaultValue === "number" ? defaultValue : "");
155
- const finalValue = typeof value === "number" ? value : _value;
156
- const [tempValue, setTempValue] = useState(typeof finalValue === "number" ? parsePrecision(finalValue) : "");
157
- const inputRef = useRef();
158
- const handleValueChange = (val) => {
159
- if (val !== _value && !Number.isNaN(val)) {
160
- typeof onChange === "function" && onChange(val);
161
- setValue(val);
162
- }
163
- };
164
157
  const formatNum = (val = "") => {
165
158
  let parsedStr = typeof val === "number" ? String(val) : val;
166
159
  if (decimalSeparator) {
@@ -175,43 +168,58 @@ const NumberInput = forwardRef((props, ref) => {
175
168
  }
176
169
  return parser(num);
177
170
  };
171
+ const formatInternalValue = (val, allowHigherPrecision) => formatNum(parsePrecision(val, allowHigherPrecision));
172
+ const [resetStateValue, resetStateHandlers] = useDisclosure(false);
173
+ const [internalValue, _setInternalValue] = useState(typeof value === "number" ? value : typeof defaultValue === "number" ? defaultValue : "");
174
+ const [inputValue, setInputValue] = useState(() => formatInternalValue(internalValue));
175
+ const inputRef = useRef();
176
+ const setInternalValue = (val, allowHigherPrecision) => {
177
+ const newInputValue = formatInternalValue(val, allowHigherPrecision);
178
+ if (newInputValue !== inputValue) {
179
+ setInputValue(newInputValue);
180
+ }
181
+ if (val !== internalValue) {
182
+ _setInternalValue(val);
183
+ }
184
+ };
178
185
  const _min = typeof min === "number" ? min : -Infinity;
179
186
  const _max = typeof max === "number" ? max : Infinity;
180
187
  const incrementRef = useRef();
181
188
  incrementRef.current = () => {
182
- var _a2, _b, _c;
183
- if (_value === "") {
184
- handleValueChange((_a2 = startValue != null ? startValue : min) != null ? _a2 : 0);
185
- setTempValue(startValue ? (_c = (_b = parsePrecision(startValue)) != null ? _b : parsePrecision(min)) != null ? _c : "0" : "0");
189
+ var _a2;
190
+ let newInternalValue;
191
+ if (internalValue === "") {
192
+ newInternalValue = (_a2 = startValue != null ? startValue : min) != null ? _a2 : 0;
186
193
  } else {
187
- const result = parsePrecision(clamp(_value + step, _min, _max));
188
- handleValueChange(parseFloat(result));
189
- setTempValue(result);
194
+ newInternalValue = parseFloat(parsePrecision(clamp(internalValue + step, _min, _max)));
190
195
  }
196
+ if (value === void 0) {
197
+ setInternalValue(newInternalValue);
198
+ }
199
+ onChange == null ? void 0 : onChange(newInternalValue);
191
200
  };
192
201
  const decrementRef = useRef();
193
202
  decrementRef.current = () => {
194
- var _a2, _b, _c;
195
- if (_value === "") {
196
- handleValueChange((_a2 = startValue != null ? startValue : min) != null ? _a2 : 0);
197
- setTempValue(startValue ? (_c = (_b = parsePrecision(startValue)) != null ? _b : parsePrecision(min)) != null ? _c : "0" : "0");
203
+ var _a2;
204
+ let newInternalValue;
205
+ if (internalValue === "") {
206
+ newInternalValue = (_a2 = startValue != null ? startValue : min) != null ? _a2 : 0;
198
207
  } else {
199
- const result = parsePrecision(clamp(_value - step, _min, _max));
200
- handleValueChange(parseFloat(result));
201
- setTempValue(result);
208
+ newInternalValue = parseFloat(parsePrecision(clamp(internalValue - step, _min, _max)));
202
209
  }
210
+ if (value === void 0) {
211
+ setInternalValue(newInternalValue);
212
+ }
213
+ onChange == null ? void 0 : onChange(newInternalValue);
203
214
  };
204
215
  assignRef(handlersRef, { increment: incrementRef.current, decrement: decrementRef.current });
205
216
  useEffect(() => {
206
- if (typeof value === "number") {
207
- setValue(value);
208
- setTempValue(parsePrecision(value));
209
- }
210
- if ((defaultValue === "" || defaultValue === void 0) && value === "") {
211
- setValue(value);
212
- setTempValue("");
217
+ if (typeof value === "number" || value === "") {
218
+ setInternalValue(value, true);
219
+ } else if (value === void 0) {
220
+ setInternalValue(defaultValue != null ? defaultValue : "", true);
213
221
  }
214
- }, [value, precision]);
222
+ }, [value, resetStateValue]);
215
223
  const shouldUseStepInterval = stepHoldDelay !== void 0 && stepHoldInterval !== void 0;
216
224
  const onStepTimeoutRef = useRef(null);
217
225
  const stepCountRef = useRef(0);
@@ -255,7 +263,7 @@ const NumberInput = forwardRef((props, ref) => {
255
263
  type: "button",
256
264
  tabIndex: -1,
257
265
  "aria-hidden": true,
258
- disabled: finalValue >= max,
266
+ disabled: internalValue >= max,
259
267
  className: cx(classes.control, classes.controlUp),
260
268
  onPointerDown: (event) => {
261
269
  onStep(event, true);
@@ -269,7 +277,7 @@ const NumberInput = forwardRef((props, ref) => {
269
277
  type: "button",
270
278
  tabIndex: -1,
271
279
  "aria-hidden": true,
272
- disabled: finalValue <= min,
280
+ disabled: internalValue <= min,
273
281
  className: cx(classes.control, classes.controlDown),
274
282
  onPointerDown: (event) => {
275
283
  onStep(event, false);
@@ -280,46 +288,33 @@ const NumberInput = forwardRef((props, ref) => {
280
288
  size: getSize({ size, sizes: CHEVRON_SIZES }),
281
289
  direction: "down"
282
290
  })));
291
+ const propagateNewValue = () => {
292
+ let normalizedInputValue = inputValue;
293
+ if (normalizedInputValue[0] === `${decimalSeparator}` || normalizedInputValue[0] === ".") {
294
+ normalizedInputValue = `0${normalizedInputValue}`;
295
+ }
296
+ const parsedValue = parseFloat(parsePrecision(parseFloat(parseNum(normalizedInputValue))));
297
+ const clampedValue = !noClampOnBlur ? clamp(parsedValue, _min, _max) : parsedValue;
298
+ const finalValue = Number.isNaN(clampedValue) ? "" : clampedValue;
299
+ if (value === void 0) {
300
+ setInternalValue(finalValue);
301
+ onChange == null ? void 0 : onChange(finalValue);
302
+ } else {
303
+ onChange == null ? void 0 : onChange(finalValue);
304
+ resetStateHandlers.toggle();
305
+ }
306
+ };
283
307
  const handleChange = (event) => {
284
308
  const evt = event.nativeEvent;
285
309
  if (evt.isComposing) {
286
310
  return;
287
311
  }
288
312
  const val = event.target.value;
289
- const parsed = parseNum(val);
290
- setTempValue(parsed);
291
- if (val === "" || val === "-") {
292
- handleValueChange("");
293
- } else {
294
- val.trim() !== "" && !Number.isNaN(parsed) && handleValueChange(parseFloat(parsed));
295
- }
313
+ setInputValue(val);
296
314
  };
297
315
  const handleBlur = (event) => {
298
- var _a2;
299
- if (typeof value === "number" || value === "") {
300
- setTempValue(parsePrecision(value));
301
- return;
302
- }
303
- if (event.target.value === "") {
304
- setTempValue("");
305
- handleValueChange("");
306
- } else {
307
- let newNumber = event.target.value;
308
- if (newNumber[0] === `${decimalSeparator}` || newNumber[0] === ".") {
309
- newNumber = `0${newNumber}`;
310
- }
311
- const parsedVal = parseNum(newNumber);
312
- const val = clamp(parseFloat(parsedVal), _min, _max);
313
- if (!Number.isNaN(val)) {
314
- if (!noClampOnBlur) {
315
- setTempValue(parsePrecision(val));
316
- handleValueChange(parseFloat(parsePrecision(val)));
317
- }
318
- } else {
319
- setTempValue((_a2 = parsePrecision(finalValue)) != null ? _a2 : "");
320
- }
321
- }
322
- typeof onBlur === "function" && onBlur(event);
316
+ propagateNewValue();
317
+ onBlur == null ? void 0 : onBlur(event);
323
318
  };
324
319
  const handleKeyDown = (event) => {
325
320
  typeof onKeyDown === "function" && onKeyDown(event);
@@ -332,6 +327,8 @@ const NumberInput = forwardRef((props, ref) => {
332
327
  onStep(event, true);
333
328
  } else if (event.key === "ArrowDown") {
334
329
  onStep(event, false);
330
+ } else if (event.key === "Enter" && !event.repeat) {
331
+ propagateNewValue();
335
332
  }
336
333
  }
337
334
  };
@@ -344,7 +341,7 @@ const NumberInput = forwardRef((props, ref) => {
344
341
  return /* @__PURE__ */ React.createElement(TextInput, __spreadProps(__spreadValues({}, others), {
345
342
  type,
346
343
  variant,
347
- value: formatNum(tempValue),
344
+ value: inputValue,
348
345
  disabled,
349
346
  readOnly,
350
347
  ref: useMergedRef(inputRef, ref),
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","sources":["../../src/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport { useMergedRef, assignRef, useOs, clamp } from '@mantine/hooks';\nimport { DefaultProps, Selectors, useComponentDefaultProps, rem, getSize } from '@mantine/styles';\nimport { TextInput } from '../TextInput';\nimport { InputStylesNames, InputWrapperStylesNames } from '../Input';\nimport { getInputMode } from './get-input-mode/get-input-mode';\nimport { Chevron } from './Chevron';\nimport useStyles, { CONTROL_SIZES } from './NumberInput.styles';\n\nexport type InnerNumberInputStylesNames = Selectors<typeof useStyles>;\nexport type NumberInputStylesNames =\n | InputStylesNames\n | InputWrapperStylesNames\n | InnerNumberInputStylesNames;\n\nexport interface NumberInputHandlers {\n increment(): void;\n decrement(): void;\n}\n\ntype Formatter = (value: string | '') => string;\ntype Parser = (value: string | '') => string;\n\nexport interface NumberInputProps\n extends DefaultProps<NumberInputStylesNames>,\n Omit<\n React.ComponentPropsWithoutRef<typeof TextInput>,\n 'onChange' | 'value' | 'classNames' | 'styles' | 'type'\n > {\n /** Called when value changes */\n onChange?(value: number | ''): void;\n\n /** Input value for controlled component */\n value?: number | '';\n\n /** Default value for uncontrolled component */\n defaultValue?: number | '';\n\n /** The decimal separator */\n decimalSeparator?: string;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal possible value */\n min?: number;\n\n /** First value if no initial value was set and increment/decrement is triggered using controls or up/down arrows */\n startValue?: number;\n\n /** Number by which value will be incremented/decremented with controls and up/down arrows */\n step?: number;\n\n /** Delay before stepping the value. Can be a number of milliseconds or a function that receives the current step count and returns the delay in milliseconds. */\n stepHoldInterval?: number | ((stepCount: number) => number);\n\n /** Initial delay in milliseconds before stepping the value. */\n stepHoldDelay?: number;\n\n /** Removes increment/decrement controls */\n hideControls?: boolean;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Only works if a precision is given, removes the trailing zeros, false by default */\n removeTrailingZeros?: boolean;\n\n /** Prevent value clamp on blur */\n noClampOnBlur?: boolean;\n\n /** Get increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Formats the number into the input */\n formatter?: Formatter;\n\n /** Parses the value from formatter, should be used with formatter at the same time */\n parser?: Parser;\n\n /** Input type, defaults to text */\n type?: 'text' | 'number';\n}\n\nconst defaultFormatter: Formatter = (value) => value || '';\nconst defaultParser: Parser = (num) => {\n if (num === '-') {\n return num;\n }\n\n let tempNum = num;\n\n if (tempNum[0] === '.') {\n tempNum = `0${num}`;\n }\n\n const parsedNum = parseFloat(tempNum);\n\n if (Number.isNaN(parsedNum)) {\n return '';\n }\n\n return num;\n};\n\nconst CHEVRON_SIZES = {\n xs: rem(10),\n sm: rem(14),\n md: rem(16),\n lg: rem(18),\n xl: rem(20),\n};\n\nconst defaultProps: Partial<NumberInputProps> = {\n step: 1,\n hideControls: false,\n size: 'sm',\n precision: 0,\n noClampOnBlur: false,\n removeTrailingZeros: false,\n formatter: defaultFormatter,\n parser: defaultParser,\n type: 'text',\n};\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>((props, ref) => {\n const {\n readOnly,\n disabled,\n value,\n onChange,\n decimalSeparator,\n min,\n max,\n startValue,\n step,\n stepHoldInterval,\n stepHoldDelay,\n onBlur,\n onKeyDown,\n onKeyUp,\n hideControls,\n radius,\n variant,\n precision,\n removeTrailingZeros,\n defaultValue,\n noClampOnBlur,\n handlersRef,\n classNames,\n styles,\n size,\n rightSection,\n rightSectionWidth,\n formatter,\n parser,\n inputMode,\n unstyled,\n type,\n ...others\n } = useComponentDefaultProps('NumberInput', defaultProps, props);\n\n const { classes, cx } = useStyles(\n { radius },\n { classNames, styles, unstyled, name: 'NumberInput', variant, size }\n );\n\n const parsePrecision = (val: number | '') => {\n if (val === '') return '';\n\n let result = val.toFixed(precision);\n if (removeTrailingZeros && precision > 0) {\n result = result.replace(new RegExp(`[0]{0,${precision}}$`), '');\n if (result.endsWith('.') || result.endsWith(decimalSeparator)) {\n result = result.slice(0, -1);\n }\n }\n\n return result;\n };\n\n const [_value, setValue] = useState<number | ''>(\n typeof value === 'number' ? value : typeof defaultValue === 'number' ? defaultValue : ''\n );\n const finalValue = typeof value === 'number' ? value : _value;\n const [tempValue, setTempValue] = useState(\n typeof finalValue === 'number' ? parsePrecision(finalValue) : ''\n );\n const inputRef = useRef<HTMLInputElement>();\n const handleValueChange = (val: number | '') => {\n if (val !== _value && !Number.isNaN(val)) {\n typeof onChange === 'function' && onChange(val);\n setValue(val);\n }\n };\n\n const formatNum = (val: string | number = '') => {\n let parsedStr = typeof val === 'number' ? String(val) : val;\n\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(/\\./g, decimalSeparator);\n }\n\n return formatter(parsedStr);\n };\n\n const parseNum = (val: string): string | '' => {\n let num = val;\n\n if (decimalSeparator) {\n num = num.replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.');\n }\n\n return parser(num);\n };\n\n const _min = typeof min === 'number' ? min : -Infinity;\n const _max = typeof max === 'number' ? max : Infinity;\n\n const incrementRef = useRef<() => void>();\n incrementRef.current = () => {\n if (_value === '') {\n handleValueChange(startValue ?? min ?? 0);\n setTempValue(startValue ? parsePrecision(startValue) ?? parsePrecision(min) ?? '0' : '0');\n } else {\n const result = parsePrecision(clamp(_value + step, _min, _max));\n\n handleValueChange(parseFloat(result));\n setTempValue(result);\n }\n };\n\n const decrementRef = useRef<() => void>();\n decrementRef.current = () => {\n if (_value === '') {\n handleValueChange(startValue ?? min ?? 0);\n setTempValue(startValue ? parsePrecision(startValue) ?? parsePrecision(min) ?? '0' : '0');\n } else {\n const result = parsePrecision(clamp(_value - step, _min, _max));\n handleValueChange(parseFloat(result));\n setTempValue(result);\n }\n };\n\n assignRef(handlersRef, { increment: incrementRef.current, decrement: decrementRef.current });\n\n useEffect(() => {\n if (typeof value === 'number') {\n setValue(value);\n setTempValue(parsePrecision(value));\n }\n if ((defaultValue === '' || defaultValue === undefined) && value === '') {\n setValue(value);\n setTempValue('');\n }\n }, [value, precision]);\n\n const shouldUseStepInterval = stepHoldDelay !== undefined && stepHoldInterval !== undefined;\n const onStepTimeoutRef = useRef<number>(null);\n const stepCountRef = useRef<number>(0);\n\n const onStepDone = () => {\n if (onStepTimeoutRef.current) {\n window.clearTimeout(onStepTimeoutRef.current);\n }\n onStepTimeoutRef.current = null;\n stepCountRef.current = 0;\n };\n\n const onStepHandleChange = (isIncrement: boolean) => {\n if (isIncrement) {\n incrementRef.current();\n } else {\n decrementRef.current();\n }\n stepCountRef.current += 1;\n };\n\n const onStepLoop = (isIncrement: boolean) => {\n onStepHandleChange(isIncrement);\n\n if (shouldUseStepInterval) {\n const interval =\n typeof stepHoldInterval === 'number'\n ? stepHoldInterval\n : stepHoldInterval(stepCountRef.current);\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), interval);\n }\n };\n\n const onStep = (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n isIncrement: boolean\n ) => {\n event.preventDefault();\n inputRef.current.focus();\n onStepHandleChange(isIncrement);\n if (shouldUseStepInterval) {\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), stepHoldDelay);\n }\n };\n\n useEffect(() => {\n onStepDone();\n return onStepDone;\n }, []);\n\n const controls = (\n <div className={classes.rightSection}>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={finalValue >= max}\n className={cx(classes.control, classes.controlUp)}\n onPointerDown={(event) => {\n onStep(event, true);\n }}\n onPointerUp={onStepDone}\n onPointerLeave={onStepDone}\n >\n <Chevron size={getSize({ size, sizes: CHEVRON_SIZES })} direction=\"up\" />\n </button>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={finalValue <= min}\n className={cx(classes.control, classes.controlDown)}\n onPointerDown={(event) => {\n onStep(event, false);\n }}\n onPointerUp={onStepDone}\n onPointerLeave={onStepDone}\n >\n <Chevron size={getSize({ size, sizes: CHEVRON_SIZES })} direction=\"down\" />\n </button>\n </div>\n );\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const evt = event.nativeEvent as InputEvent;\n if (evt.isComposing) {\n return;\n }\n\n const val = event.target.value;\n const parsed = parseNum(val);\n\n setTempValue(parsed);\n\n if (val === '' || val === '-') {\n handleValueChange('');\n } else {\n val.trim() !== '' && !Number.isNaN(parsed) && handleValueChange(parseFloat(parsed));\n }\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (typeof value === 'number' || value === '') {\n setTempValue(parsePrecision(value));\n return;\n }\n\n if (event.target.value === '') {\n setTempValue('');\n handleValueChange('');\n } else {\n let newNumber = event.target.value;\n\n if (newNumber[0] === `${decimalSeparator}` || newNumber[0] === '.') {\n newNumber = `0${newNumber}`;\n }\n\n const parsedVal = parseNum(newNumber);\n const val = clamp(parseFloat(parsedVal), _min, _max);\n\n if (!Number.isNaN(val)) {\n if (!noClampOnBlur) {\n setTempValue(parsePrecision(val));\n handleValueChange(parseFloat(parsePrecision(val)));\n }\n } else {\n setTempValue(parsePrecision(finalValue) ?? '');\n }\n }\n\n typeof onBlur === 'function' && onBlur(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n if (\n event.repeat &&\n shouldUseStepInterval &&\n (event.key === 'ArrowUp' || event.key === 'ArrowDown')\n ) {\n event.preventDefault();\n return;\n }\n if (!readOnly) {\n if (event.key === 'ArrowUp') {\n onStep(event, true);\n } else if (event.key === 'ArrowDown') {\n onStep(event, false);\n }\n }\n };\n\n const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyUp === 'function' && onKeyUp(event);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n onStepDone();\n }\n };\n\n return (\n <TextInput\n {...others}\n type={type}\n variant={variant}\n value={formatNum(tempValue)}\n disabled={disabled}\n readOnly={readOnly}\n ref={useMergedRef(inputRef, ref)}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n rightSection={\n rightSection ||\n (disabled || readOnly || hideControls || variant === 'unstyled' ? null : controls)\n }\n rightSectionWidth={\n rightSectionWidth ?? `calc(${getSize({ size, sizes: CONTROL_SIZES })} + ${rem(1)})`\n }\n radius={radius}\n max={max}\n min={min}\n step={step}\n size={size}\n styles={styles}\n classNames={classNames}\n inputMode={inputMode || getInputMode(step, precision, useOs())}\n __staticSelector=\"NumberInput\"\n unstyled={unstyled}\n />\n );\n});\n\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":[],"mappings":";;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAQF,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC;AAChD,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK;AAC/B,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE;AACnB,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC;AACpB,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1B,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AAC/B,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,MAAM,aAAa,GAAG;AACtB,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AACb,CAAC,CAAC;AACF,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,mBAAmB,EAAE,KAAK;AAC5B,EAAE,SAAS,EAAE,gBAAgB;AAC7B,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,IAAI,EAAE,MAAM;AACd,CAAC,CAAC;AACU,MAAC,WAAW,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACtD,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;AAC3E,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,gBAAgB;AACpB,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,mBAAmB;AACvB,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,IAAI,iBAAiB;AACrB,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,kBAAkB;AACtB,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,kBAAkB;AACtB,IAAI,eAAe;AACnB,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,cAAc;AAClB,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,qBAAqB;AACzB,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,mBAAmB;AACvB,IAAI,WAAW;AACf,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,MAAM;AACV,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACtH,EAAE,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK;AAClC,IAAI,IAAI,GAAG,KAAK,EAAE;AAClB,MAAM,OAAO,EAAE,CAAC;AAChB,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxC,IAAI,IAAI,mBAAmB,IAAI,SAAS,GAAG,CAAC,EAAE;AAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtE,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AACrE,QAAQ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrC,OAAO;AACP,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,OAAO,YAAY,KAAK,QAAQ,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;AAChI,EAAE,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAChE,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,UAAU,KAAK,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;AAC5B,EAAE,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK;AACrC,IAAI,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9C,MAAM,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK;AAClC,IAAI,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAChE,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ,EAAE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK;AAC5B,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;AAClB,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;AACzD,EAAE,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;AACxD,EAAE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC;AAChC,EAAE,YAAY,CAAC,OAAO,GAAG,MAAM;AAC/B,IAAI,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACpB,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE;AACvB,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,UAAU,IAAI,IAAI,GAAG,UAAU,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzF,MAAM,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACtI,KAAK,MAAM;AACX,MAAM,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,MAAM,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC;AAChC,EAAE,YAAY,CAAC,OAAO,GAAG,MAAM;AAC/B,IAAI,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACpB,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE;AACvB,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,UAAU,IAAI,IAAI,GAAG,UAAU,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzF,MAAM,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACtI,KAAK,MAAM;AACX,MAAM,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,MAAM,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/F,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,MAAM,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,EAAE;AAC1E,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;AACvB,KAAK;AACL,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACzB,EAAE,MAAM,qBAAqB,GAAG,aAAa,KAAK,KAAK,CAAC,IAAI,gBAAgB,KAAK,KAAK,CAAC,CAAC;AACxF,EAAE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE,MAAM,UAAU,GAAG,MAAM;AAC3B,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAClC,MAAM,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;AACpC,IAAI,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;AAC7B,GAAG,CAAC;AACJ,EAAE,MAAM,kBAAkB,GAAG,CAAC,WAAW,KAAK;AAC9C,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;AAC9B,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,CAAC,WAAW,KAAK;AACtC,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACpC,IAAI,IAAI,qBAAqB,EAAE;AAC/B,MAAM,MAAM,QAAQ,GAAG,OAAO,gBAAgB,KAAK,QAAQ,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACxH,MAAM,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5F,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK;AACzC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC7B,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACpC,IAAI,IAAI,qBAAqB,EAAE;AAC/B,MAAM,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;AACjG,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,MAAM,QAAQ,mBAAmB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC9D,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AACnD,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE,CAAC,CAAC;AAChB,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,QAAQ,EAAE,UAAU,IAAI,GAAG;AAC/B,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;AACrD,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK;AAC9B,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,WAAW,EAAE,UAAU;AAC3B,IAAI,cAAc,EAAE,UAAU;AAC9B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAClD,IAAI,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACjD,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AACrD,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,QAAQ,EAAE,CAAC,CAAC;AAChB,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,QAAQ,EAAE,UAAU,IAAI,GAAG;AAC/B,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;AACvD,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK;AAC9B,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,WAAW,EAAE,UAAU;AAC3B,IAAI,cAAc,EAAE,UAAU;AAC9B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAClD,IAAI,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACjD,IAAI,SAAS,EAAE,MAAM;AACrB,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,EAAE,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK;AAClC,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;AAClC,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE;AACzB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACnC,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AACzB,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE;AACnC,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1F,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAChC,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AACnD,MAAM,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;AACnC,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;AACvB,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1E,QAAQ,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACpC,OAAO;AACP,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,UAAU,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,UAAU,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,YAAY,CAAC,CAAC,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC5E,OAAO;AACP,KAAK;AACL,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAClD,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK;AACnC,IAAI,OAAO,SAAS,KAAK,UAAU,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,qBAAqB,KAAK,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE;AACzG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;AACnC,QAAQ,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,OAAO,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;AAC5C,QAAQ,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AACjC,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;AAC9D,MAAM,UAAU,EAAE,CAAC;AACnB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;AAClG,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;AAC/B,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AACpC,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,YAAY,EAAE,YAAY,KAAK,QAAQ,IAAI,QAAQ,IAAI,YAAY,IAAI,OAAO,KAAK,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AACpH,IAAI,iBAAiB,EAAE,iBAAiB,IAAI,IAAI,GAAG,iBAAiB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrI,IAAI,MAAM;AACV,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,SAAS,EAAE,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAClE,IAAI,gBAAgB,EAAE,aAAa;AACnC,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC,CAAC;AACN,CAAC,EAAE;AACH,WAAW,CAAC,WAAW,GAAG,2BAA2B;;;;"}
1
+ {"version":3,"file":"NumberInput.js","sources":["../../src/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport { useMergedRef, assignRef, useOs, clamp, useDisclosure } from '@mantine/hooks';\nimport { DefaultProps, Selectors, useComponentDefaultProps, rem, getSize } from '@mantine/styles';\nimport { TextInput } from '../TextInput';\nimport { InputStylesNames, InputWrapperStylesNames } from '../Input';\nimport { getInputMode } from './get-input-mode/get-input-mode';\nimport { Chevron } from './Chevron';\nimport useStyles, { CONTROL_SIZES } from './NumberInput.styles';\n\nexport type InnerNumberInputStylesNames = Selectors<typeof useStyles>;\nexport type NumberInputStylesNames =\n | InputStylesNames\n | InputWrapperStylesNames\n | InnerNumberInputStylesNames;\n\nexport interface NumberInputHandlers {\n increment(): void;\n decrement(): void;\n}\n\ntype Formatter = (value: string | '') => string;\ntype Parser = (value: string | '') => string;\n\nexport interface NumberInputProps\n extends DefaultProps<NumberInputStylesNames>,\n Omit<\n React.ComponentPropsWithoutRef<typeof TextInput>,\n 'onChange' | 'value' | 'classNames' | 'styles' | 'type'\n > {\n /** Called when value changes */\n onChange?(value: number | ''): void;\n\n /** Input value for controlled component */\n value?: number | '';\n\n /** Default value for uncontrolled component */\n defaultValue?: number | '';\n\n /** The decimal separator */\n decimalSeparator?: string;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal possible value */\n min?: number;\n\n /** First value if no initial value was set and increment/decrement is triggered using controls or up/down arrows */\n startValue?: number;\n\n /** Number by which value will be incremented/decremented with controls and up/down arrows */\n step?: number;\n\n /** Delay before stepping the value. Can be a number of milliseconds or a function that receives the current step count and returns the delay in milliseconds. */\n stepHoldInterval?: number | ((stepCount: number) => number);\n\n /** Initial delay in milliseconds before stepping the value. */\n stepHoldDelay?: number;\n\n /** Removes increment/decrement controls */\n hideControls?: boolean;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Only works if a precision is given, removes the trailing zeros, false by default */\n removeTrailingZeros?: boolean;\n\n /** Prevent value clamp on blur */\n noClampOnBlur?: boolean;\n\n /** Get increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Formats the number into the input */\n formatter?: Formatter;\n\n /** Parses the value from formatter, should be used with formatter at the same time */\n parser?: Parser;\n\n /** Input type, defaults to text */\n type?: 'text' | 'number';\n}\n\nconst defaultFormatter: Formatter = (value) => value || '';\nconst defaultParser: Parser = (num) => {\n if (num === '-') {\n return num;\n }\n\n let tempNum = num;\n\n if (tempNum[0] === '.') {\n tempNum = `0${num}`;\n }\n\n const parsedNum = parseFloat(tempNum);\n\n if (Number.isNaN(parsedNum)) {\n return '';\n }\n\n return num;\n};\n\nconst CHEVRON_SIZES = {\n xs: rem(10),\n sm: rem(14),\n md: rem(16),\n lg: rem(18),\n xl: rem(20),\n};\n\nconst defaultProps: Partial<NumberInputProps> = {\n step: 1,\n hideControls: false,\n size: 'sm',\n precision: 0,\n noClampOnBlur: false,\n removeTrailingZeros: false,\n formatter: defaultFormatter,\n parser: defaultParser,\n type: 'text',\n};\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>((props, ref) => {\n const {\n readOnly,\n disabled,\n value,\n onChange,\n decimalSeparator,\n min,\n max,\n startValue,\n step,\n stepHoldInterval,\n stepHoldDelay,\n onBlur,\n onKeyDown,\n onKeyUp,\n hideControls,\n radius,\n variant,\n precision,\n removeTrailingZeros,\n defaultValue,\n noClampOnBlur,\n handlersRef,\n classNames,\n styles,\n size,\n rightSection,\n rightSectionWidth,\n formatter,\n parser,\n inputMode,\n unstyled,\n type,\n ...others\n } = useComponentDefaultProps('NumberInput', defaultProps, props);\n\n const { classes, cx } = useStyles(\n { radius },\n { classNames, styles, unstyled, name: 'NumberInput', variant, size }\n );\n\n const parsePrecision = (val: number | '', allowHigherPrecision?: boolean) => {\n if (val === '') return '';\n\n let result = val.toFixed(precision);\n if (allowHigherPrecision && result.length < val.toString().length) {\n result = val.toString();\n }\n\n if (removeTrailingZeros && precision > 0) {\n result = result.replace(new RegExp(`[0]{0,${precision}}$`), '');\n if (result.endsWith('.') || result.endsWith(decimalSeparator)) {\n result = result.slice(0, -1);\n }\n }\n\n return result;\n };\n\n const formatNum = (val: string | number = '') => {\n let parsedStr = typeof val === 'number' ? String(val) : val;\n\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(/\\./g, decimalSeparator);\n }\n\n return formatter(parsedStr);\n };\n\n const parseNum = (val: string): string | '' => {\n let num = val;\n\n if (decimalSeparator) {\n num = num.replace(new RegExp(`\\\\${decimalSeparator}`, 'g'), '.');\n }\n\n return parser(num);\n };\n\n const formatInternalValue = (val: number | '', allowHigherPrecision?: boolean) =>\n formatNum(parsePrecision(val, allowHigherPrecision));\n\n const [resetStateValue, resetStateHandlers] = useDisclosure(false);\n\n // Parsed value that will be used for uncontrolled state and for setting the inputValue\n const [internalValue, _setInternalValue] = useState<number | ''>(\n typeof value === 'number' ? value : typeof defaultValue === 'number' ? defaultValue : ''\n );\n\n // Value of input field. Gets changed through user input and on internalValue change\n const [inputValue, setInputValue] = useState(() => formatInternalValue(internalValue));\n\n const inputRef = useRef<HTMLInputElement>();\n\n const setInternalValue = (val: number | '', allowHigherPrecision?: boolean) => {\n const newInputValue = formatInternalValue(val, allowHigherPrecision);\n if (newInputValue !== inputValue) {\n // Make sure to update/reset the input value even if the internal value stays the same\n // E. g. this may happen if the internalValue is \"10\" and the user entered \"10abc\"\n setInputValue(newInputValue);\n }\n\n if (val !== internalValue) {\n _setInternalValue(val);\n }\n };\n\n const _min = typeof min === 'number' ? min : -Infinity;\n const _max = typeof max === 'number' ? max : Infinity;\n\n const incrementRef = useRef<() => void>();\n incrementRef.current = () => {\n let newInternalValue: number;\n if (internalValue === '') {\n newInternalValue = startValue ?? min ?? 0;\n } else {\n newInternalValue = parseFloat(parsePrecision(clamp(internalValue + step, _min, _max)));\n }\n\n if (value === undefined) {\n setInternalValue(newInternalValue);\n }\n\n onChange?.(newInternalValue);\n };\n\n const decrementRef = useRef<() => void>();\n decrementRef.current = () => {\n let newInternalValue: number;\n if (internalValue === '') {\n newInternalValue = startValue ?? min ?? 0;\n } else {\n newInternalValue = parseFloat(parsePrecision(clamp(internalValue - step, _min, _max)));\n }\n\n if (value === undefined) {\n setInternalValue(newInternalValue);\n }\n\n onChange?.(newInternalValue);\n };\n\n assignRef(handlersRef, { increment: incrementRef.current, decrement: decrementRef.current });\n\n useEffect(() => {\n if (typeof value === 'number' || value === '') {\n setInternalValue(value, true);\n } else if (value === undefined) {\n setInternalValue(defaultValue ?? '', true);\n }\n }, [value, resetStateValue]);\n\n const shouldUseStepInterval = stepHoldDelay !== undefined && stepHoldInterval !== undefined;\n const onStepTimeoutRef = useRef<number>(null);\n const stepCountRef = useRef<number>(0);\n\n const onStepDone = () => {\n if (onStepTimeoutRef.current) {\n window.clearTimeout(onStepTimeoutRef.current);\n }\n onStepTimeoutRef.current = null;\n stepCountRef.current = 0;\n };\n\n const onStepHandleChange = (isIncrement: boolean) => {\n if (isIncrement) {\n incrementRef.current();\n } else {\n decrementRef.current();\n }\n stepCountRef.current += 1;\n };\n\n const onStepLoop = (isIncrement: boolean) => {\n onStepHandleChange(isIncrement);\n\n if (shouldUseStepInterval) {\n const interval =\n typeof stepHoldInterval === 'number'\n ? stepHoldInterval\n : stepHoldInterval(stepCountRef.current);\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), interval);\n }\n };\n\n const onStep = (\n event: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>,\n isIncrement: boolean\n ) => {\n event.preventDefault();\n inputRef.current.focus();\n onStepHandleChange(isIncrement);\n if (shouldUseStepInterval) {\n onStepTimeoutRef.current = window.setTimeout(() => onStepLoop(isIncrement), stepHoldDelay);\n }\n };\n\n useEffect(() => {\n onStepDone();\n return onStepDone;\n }, []);\n\n const controls = (\n <div className={classes.rightSection}>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={internalValue >= max}\n className={cx(classes.control, classes.controlUp)}\n onPointerDown={(event) => {\n onStep(event, true);\n }}\n onPointerUp={onStepDone}\n onPointerLeave={onStepDone}\n >\n <Chevron size={getSize({ size, sizes: CHEVRON_SIZES })} direction=\"up\" />\n </button>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden\n disabled={internalValue <= min}\n className={cx(classes.control, classes.controlDown)}\n onPointerDown={(event) => {\n onStep(event, false);\n }}\n onPointerUp={onStepDone}\n onPointerLeave={onStepDone}\n >\n <Chevron size={getSize({ size, sizes: CHEVRON_SIZES })} direction=\"down\" />\n </button>\n </div>\n );\n\n /**\n * Parse new value and propagate it via `onChange` to parent.\n */\n const propagateNewValue = () => {\n let normalizedInputValue = inputValue;\n if (normalizedInputValue[0] === `${decimalSeparator}` || normalizedInputValue[0] === '.') {\n normalizedInputValue = `0${normalizedInputValue}`;\n }\n\n const parsedValue = parseFloat(parsePrecision(parseFloat(parseNum(normalizedInputValue))));\n const clampedValue = !noClampOnBlur ? clamp(parsedValue, _min, _max) : parsedValue;\n const finalValue = Number.isNaN(clampedValue) ? '' : clampedValue;\n\n if (value === undefined) {\n setInternalValue(finalValue);\n onChange?.(finalValue);\n } else {\n onChange?.(finalValue);\n\n // Force value effect that resets internal value to reformat the input and remove invalid inputs\n resetStateHandlers.toggle();\n }\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const evt = event.nativeEvent as InputEvent;\n if (evt.isComposing) {\n return;\n }\n\n const val = event.target.value;\n setInputValue(val);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n propagateNewValue();\n\n onBlur?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n if (\n event.repeat &&\n shouldUseStepInterval &&\n (event.key === 'ArrowUp' || event.key === 'ArrowDown')\n ) {\n event.preventDefault();\n return;\n }\n\n if (!readOnly) {\n if (event.key === 'ArrowUp') {\n onStep(event, true);\n } else if (event.key === 'ArrowDown') {\n onStep(event, false);\n } else if (event.key === 'Enter' && !event.repeat) {\n propagateNewValue();\n }\n }\n };\n\n const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyUp === 'function' && onKeyUp(event);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n onStepDone();\n }\n };\n\n return (\n <TextInput\n {...others}\n type={type}\n variant={variant}\n value={inputValue}\n disabled={disabled}\n readOnly={readOnly}\n ref={useMergedRef(inputRef, ref)}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n rightSection={\n rightSection ||\n (disabled || readOnly || hideControls || variant === 'unstyled' ? null : controls)\n }\n rightSectionWidth={\n rightSectionWidth ?? `calc(${getSize({ size, sizes: CONTROL_SIZES })} + ${rem(1)})`\n }\n radius={radius}\n max={max}\n min={min}\n step={step}\n size={size}\n styles={styles}\n classNames={classNames}\n inputMode={inputMode || getInputMode(step, precision, useOs())}\n __staticSelector=\"NumberInput\"\n unstyled={unstyled}\n />\n );\n});\n\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":[],"mappings":"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"}
@@ -125,7 +125,7 @@ function Pagination(props) {
125
125
  onLastPage,
126
126
  getItemProps
127
127
  }, /* @__PURE__ */ React.createElement(Group, __spreadValues({
128
- spacing: spacing || `calc(${getSize({ size, sizes: theme.spacing })} / 2)`
128
+ spacing: spacing != null ? spacing : `calc(${getSize({ size, sizes: theme.spacing })} / 2)`
129
129
  }, others), withEdges && /* @__PURE__ */ React.createElement(PaginationFirst, __spreadValues({
130
130
  icon: firstIcon
131
131
  }, getControlProps == null ? void 0 : getControlProps("first"))), withControls && /* @__PURE__ */ React.createElement(PaginationPrevious, __spreadValues({