@mantine/core 5.10.2 → 5.10.4

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 (128) hide show
  1. package/cjs/Autocomplete/Autocomplete.js +10 -4
  2. package/cjs/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/FileButton/FileButton.js +6 -4
  4. package/cjs/FileButton/FileButton.js.map +1 -1
  5. package/cjs/FileInput/FileInput.js +6 -3
  6. package/cjs/FileInput/FileInput.js.map +1 -1
  7. package/cjs/Floating/use-floating-auto-update.js +2 -2
  8. package/cjs/Floating/use-floating-auto-update.js.map +1 -1
  9. package/cjs/Input/use-input-props.js +23 -22
  10. package/cjs/Input/use-input-props.js.map +1 -1
  11. package/cjs/MultiSelect/MultiSelect.js +25 -8
  12. package/cjs/MultiSelect/MultiSelect.js.map +1 -1
  13. package/cjs/MultiSelect/filter-data/filter-data.js +10 -2
  14. package/cjs/MultiSelect/filter-data/filter-data.js.map +1 -1
  15. package/cjs/Notification/Notification.styles.js +1 -0
  16. package/cjs/Notification/Notification.styles.js.map +1 -1
  17. package/cjs/Pagination/Pagination.js +1 -1
  18. package/cjs/Pagination/Pagination.js.map +1 -1
  19. package/cjs/PasswordInput/PasswordInput.styles.js +3 -0
  20. package/cjs/PasswordInput/PasswordInput.styles.js.map +1 -1
  21. package/cjs/Popover/Popover.context.js.map +1 -1
  22. package/cjs/Popover/use-popover.js +8 -8
  23. package/cjs/Popover/use-popover.js.map +1 -1
  24. package/cjs/SegmentedControl/SegmentedControl.js.map +1 -1
  25. package/cjs/Select/Select.js +11 -5
  26. package/cjs/Select/Select.js.map +1 -1
  27. package/cjs/Select/SelectItems/SelectItems.js +1 -0
  28. package/cjs/Select/SelectItems/SelectItems.js.map +1 -1
  29. package/cjs/SimpleGrid/SimpleGrid.styles.js +3 -2
  30. package/cjs/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  31. package/cjs/Skeleton/Skeleton.styles.js +1 -1
  32. package/cjs/Skeleton/Skeleton.styles.js.map +1 -1
  33. package/cjs/Table/Table.styles.js +5 -2
  34. package/cjs/Table/Table.styles.js.map +1 -1
  35. package/cjs/Text/Text.js.map +1 -1
  36. package/cjs/Text/Text.styles.js +11 -2
  37. package/cjs/Text/Text.styles.js.map +1 -1
  38. package/cjs/Tooltip/TooltipFloating/use-floating-tooltip.js +4 -4
  39. package/cjs/Tooltip/TooltipFloating/use-floating-tooltip.js.map +1 -1
  40. package/cjs/Tooltip/TooltipGroup/TooltipGroup.js +2 -2
  41. package/cjs/Tooltip/TooltipGroup/TooltipGroup.js.map +1 -1
  42. package/cjs/Tooltip/use-tooltip.js +14 -14
  43. package/cjs/Tooltip/use-tooltip.js.map +1 -1
  44. package/cjs/TransferList/RenderList/RenderList.js +2 -1
  45. package/cjs/TransferList/RenderList/RenderList.js.map +1 -1
  46. package/cjs/TransferList/TransferList.js +20 -7
  47. package/cjs/TransferList/TransferList.js.map +1 -1
  48. package/esm/Autocomplete/Autocomplete.js +10 -4
  49. package/esm/Autocomplete/Autocomplete.js.map +1 -1
  50. package/esm/FileButton/FileButton.js +6 -4
  51. package/esm/FileButton/FileButton.js.map +1 -1
  52. package/esm/FileInput/FileInput.js +6 -3
  53. package/esm/FileInput/FileInput.js.map +1 -1
  54. package/esm/Floating/use-floating-auto-update.js +1 -1
  55. package/esm/Floating/use-floating-auto-update.js.map +1 -1
  56. package/esm/Input/use-input-props.js +23 -22
  57. package/esm/Input/use-input-props.js.map +1 -1
  58. package/esm/MultiSelect/MultiSelect.js +25 -8
  59. package/esm/MultiSelect/MultiSelect.js.map +1 -1
  60. package/esm/MultiSelect/filter-data/filter-data.js +10 -2
  61. package/esm/MultiSelect/filter-data/filter-data.js.map +1 -1
  62. package/esm/Notification/Notification.styles.js +1 -0
  63. package/esm/Notification/Notification.styles.js.map +1 -1
  64. package/esm/Pagination/Pagination.js +1 -1
  65. package/esm/Pagination/Pagination.js.map +1 -1
  66. package/esm/PasswordInput/PasswordInput.styles.js +3 -0
  67. package/esm/PasswordInput/PasswordInput.styles.js.map +1 -1
  68. package/esm/Popover/Popover.context.js.map +1 -1
  69. package/esm/Popover/use-popover.js +1 -1
  70. package/esm/Popover/use-popover.js.map +1 -1
  71. package/esm/SegmentedControl/SegmentedControl.js.map +1 -1
  72. package/esm/Select/Select.js +11 -5
  73. package/esm/Select/Select.js.map +1 -1
  74. package/esm/Select/SelectItems/SelectItems.js +1 -0
  75. package/esm/Select/SelectItems/SelectItems.js.map +1 -1
  76. package/esm/SimpleGrid/SimpleGrid.styles.js +3 -2
  77. package/esm/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  78. package/esm/Skeleton/Skeleton.styles.js +1 -1
  79. package/esm/Skeleton/Skeleton.styles.js.map +1 -1
  80. package/esm/Table/Table.styles.js +5 -2
  81. package/esm/Table/Table.styles.js.map +1 -1
  82. package/esm/Text/Text.js.map +1 -1
  83. package/esm/Text/Text.styles.js +11 -2
  84. package/esm/Text/Text.styles.js.map +1 -1
  85. package/esm/Tooltip/TooltipFloating/use-floating-tooltip.js +1 -1
  86. package/esm/Tooltip/TooltipFloating/use-floating-tooltip.js.map +1 -1
  87. package/esm/Tooltip/TooltipGroup/TooltipGroup.js +1 -1
  88. package/esm/Tooltip/TooltipGroup/TooltipGroup.js.map +1 -1
  89. package/esm/Tooltip/use-tooltip.js +1 -1
  90. package/esm/Tooltip/use-tooltip.js.map +1 -1
  91. package/esm/TransferList/RenderList/RenderList.js +2 -1
  92. package/esm/TransferList/RenderList/RenderList.js.map +1 -1
  93. package/esm/TransferList/TransferList.js +20 -7
  94. package/esm/TransferList/TransferList.js.map +1 -1
  95. package/lib/Autocomplete/Autocomplete.d.ts +2 -0
  96. package/lib/Autocomplete/Autocomplete.d.ts.map +1 -1
  97. package/lib/FileButton/FileButton.d.ts +2 -0
  98. package/lib/FileButton/FileButton.d.ts.map +1 -1
  99. package/lib/FileInput/FileInput.d.ts +2 -0
  100. package/lib/FileInput/FileInput.d.ts.map +1 -1
  101. package/lib/Input/use-input-props.d.ts +37 -6
  102. package/lib/Input/use-input-props.d.ts.map +1 -1
  103. package/lib/MultiSelect/MultiSelect.d.ts +4 -0
  104. package/lib/MultiSelect/MultiSelect.d.ts.map +1 -1
  105. package/lib/MultiSelect/filter-data/filter-data.d.ts +2 -1
  106. package/lib/MultiSelect/filter-data/filter-data.d.ts.map +1 -1
  107. package/lib/Notification/Notification.styles.d.ts.map +1 -1
  108. package/lib/PasswordInput/PasswordInput.styles.d.ts.map +1 -1
  109. package/lib/Popover/Popover.context.d.ts +1 -1
  110. package/lib/Popover/Popover.context.d.ts.map +1 -1
  111. package/lib/Popover/use-popover.d.ts +1 -1
  112. package/lib/Select/Select.d.ts +3 -1
  113. package/lib/Select/Select.d.ts.map +1 -1
  114. package/lib/Select/SelectItems/SelectItems.d.ts.map +1 -1
  115. package/lib/Select/types.d.ts +1 -0
  116. package/lib/Select/types.d.ts.map +1 -1
  117. package/lib/Skeleton/Skeleton.styles.d.ts.map +1 -1
  118. package/lib/Table/Table.styles.d.ts.map +1 -1
  119. package/lib/Text/Text.d.ts +1 -1
  120. package/lib/Text/Text.d.ts.map +1 -1
  121. package/lib/Text/Text.styles.d.ts +1 -1
  122. package/lib/Text/Text.styles.d.ts.map +1 -1
  123. package/lib/Tooltip/use-tooltip.d.ts +2 -2
  124. package/lib/TransferList/RenderList/RenderList.d.ts +2 -1
  125. package/lib/TransferList/RenderList/RenderList.d.ts.map +1 -1
  126. package/lib/TransferList/TransferList.d.ts +2 -0
  127. package/lib/TransferList/TransferList.d.ts.map +1 -1
  128. package/package.json +5 -5
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var reactDomInteractions = require('@floating-ui/react-dom-interactions');
6
+ var react = require('@floating-ui/react');
7
7
  var hooks = require('@mantine/hooks');
8
8
  var TooltipGroup_context = require('./TooltipGroup/TooltipGroup.context.js');
9
9
  var useFloatingAutoUpdate = require('../Floating/use-floating-auto-update.js');
@@ -14,7 +14,7 @@ function useTooltip(settings) {
14
14
  const opened = controlled ? settings.opened : uncontrolledOpened;
15
15
  const withinGroup = TooltipGroup_context.useTooltipGroupContext();
16
16
  const uid = hooks.useId();
17
- const { delay: groupDelay, currentId, setCurrentId } = reactDomInteractions.useDelayGroupContext();
17
+ const { delay: groupDelay, currentId, setCurrentId } = react.useDelayGroupContext();
18
18
  const onChange = React.useCallback((_opened) => {
19
19
  setUncontrolledOpened(_opened);
20
20
  if (_opened) {
@@ -31,28 +31,28 @@ function useTooltip(settings) {
31
31
  update,
32
32
  placement,
33
33
  middlewareData: { arrow: { x: arrowX, y: arrowY } = {} }
34
- } = reactDomInteractions.useFloating({
34
+ } = react.useFloating({
35
35
  placement: settings.position,
36
36
  open: opened,
37
37
  onOpenChange: onChange,
38
38
  middleware: [
39
- reactDomInteractions.offset(settings.offset),
40
- reactDomInteractions.shift({ padding: 8 }),
41
- reactDomInteractions.flip(),
42
- reactDomInteractions.arrow({ element: settings.arrowRef, padding: settings.arrowOffset }),
43
- ...settings.inline ? [reactDomInteractions.inline()] : []
39
+ react.offset(settings.offset),
40
+ react.shift({ padding: 8 }),
41
+ react.flip(),
42
+ react.arrow({ element: settings.arrowRef, padding: settings.arrowOffset }),
43
+ ...settings.inline ? [react.inline()] : []
44
44
  ]
45
45
  });
46
- const { getReferenceProps, getFloatingProps } = reactDomInteractions.useInteractions([
47
- reactDomInteractions.useHover(context, {
46
+ const { getReferenceProps, getFloatingProps } = react.useInteractions([
47
+ react.useHover(context, {
48
48
  enabled: settings.events.hover,
49
49
  delay: withinGroup ? groupDelay : { open: settings.openDelay, close: settings.closeDelay },
50
50
  mouseOnly: !settings.events.touch
51
51
  }),
52
- reactDomInteractions.useFocus(context, { enabled: settings.events.focus, keyboardOnly: true }),
53
- reactDomInteractions.useRole(context, { role: "tooltip" }),
54
- reactDomInteractions.useDismiss(context, { enabled: typeof settings.opened === void 0 }),
55
- reactDomInteractions.useDelayGroup(context, { id: uid })
52
+ react.useFocus(context, { enabled: settings.events.focus, keyboardOnly: true }),
53
+ react.useRole(context, { role: "tooltip" }),
54
+ react.useDismiss(context, { enabled: typeof settings.opened === void 0 }),
55
+ react.useDelayGroup(context, { id: uid })
56
56
  ]);
57
57
  useFloatingAutoUpdate.useFloatingAutoUpdate({
58
58
  opened,
@@ -1 +1 @@
1
- {"version":3,"file":"use-tooltip.js","sources":["../../src/Tooltip/use-tooltip.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport {\n useFloating,\n flip,\n arrow,\n offset,\n shift,\n useInteractions,\n useHover,\n useFocus,\n useRole,\n useDismiss,\n useDelayGroupContext,\n useDelayGroup,\n inline,\n} from '@floating-ui/react-dom-interactions';\nimport { useId, useDidUpdate } from '@mantine/hooks';\nimport { useTooltipGroupContext } from './TooltipGroup/TooltipGroup.context';\nimport { FloatingPosition, useFloatingAutoUpdate } from '../Floating';\n\ninterface UseTooltip {\n position: FloatingPosition;\n closeDelay: number;\n openDelay: number;\n onPositionChange?(position: FloatingPosition): void;\n opened?: boolean;\n offset: number;\n arrowRef?: React.RefObject<HTMLDivElement>;\n arrowOffset: number;\n events: { hover: boolean; focus: boolean; touch: boolean };\n positionDependencies: any[];\n inline: boolean;\n}\n\nexport function useTooltip(settings: UseTooltip) {\n const [uncontrolledOpened, setUncontrolledOpened] = useState(false);\n const controlled = typeof settings.opened === 'boolean';\n const opened = controlled ? settings.opened : uncontrolledOpened;\n const withinGroup = useTooltipGroupContext();\n const uid = useId();\n\n const { delay: groupDelay, currentId, setCurrentId } = useDelayGroupContext();\n\n const onChange = useCallback(\n (_opened: boolean) => {\n setUncontrolledOpened(_opened);\n\n if (_opened) {\n setCurrentId(uid);\n }\n },\n [setCurrentId, uid]\n );\n\n const {\n x,\n y,\n reference,\n floating,\n context,\n refs,\n update,\n placement,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {} },\n } = useFloating({\n placement: settings.position,\n open: opened,\n onOpenChange: onChange,\n middleware: [\n offset(settings.offset),\n shift({ padding: 8 }),\n flip(),\n arrow({ element: settings.arrowRef, padding: settings.arrowOffset }),\n ...(settings.inline ? [inline()] : []),\n ],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(context, {\n enabled: settings.events.hover,\n delay: withinGroup ? groupDelay : { open: settings.openDelay, close: settings.closeDelay },\n mouseOnly: !settings.events.touch,\n }),\n useFocus(context, { enabled: settings.events.focus, keyboardOnly: true }),\n useRole(context, { role: 'tooltip' }),\n // cannot be used with controlled tooltip, page jumps\n useDismiss(context, { enabled: typeof settings.opened === undefined }),\n useDelayGroup(context, { id: uid }),\n ]);\n\n useFloatingAutoUpdate({\n opened,\n positionDependencies: settings.positionDependencies,\n floating: { refs, update },\n });\n\n useDidUpdate(() => {\n settings.onPositionChange?.(placement);\n }, [placement]);\n\n const isGroupPhase = opened && currentId && currentId !== uid;\n\n return {\n x,\n y,\n arrowX,\n arrowY,\n reference,\n floating,\n getFloatingProps,\n getReferenceProps,\n isGroupPhase,\n opened,\n placement,\n };\n}\n"],"names":["useState","useTooltipGroupContext","useId","useDelayGroupContext","useCallback","useFloating","offset","shift","flip","arrow","inline","useInteractions","useHover","useFocus","useRole","useDismiss","useDelayGroup","useFloatingAutoUpdate","useDidUpdate"],"mappings":"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"}
1
+ {"version":3,"file":"use-tooltip.js","sources":["../../src/Tooltip/use-tooltip.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport {\n useFloating,\n flip,\n arrow,\n offset,\n shift,\n useInteractions,\n useHover,\n useFocus,\n useRole,\n useDismiss,\n useDelayGroupContext,\n useDelayGroup,\n inline,\n} from '@floating-ui/react';\nimport { useId, useDidUpdate } from '@mantine/hooks';\nimport { useTooltipGroupContext } from './TooltipGroup/TooltipGroup.context';\nimport { FloatingPosition, useFloatingAutoUpdate } from '../Floating';\n\ninterface UseTooltip {\n position: FloatingPosition;\n closeDelay: number;\n openDelay: number;\n onPositionChange?(position: FloatingPosition): void;\n opened?: boolean;\n offset: number;\n arrowRef?: React.RefObject<HTMLDivElement>;\n arrowOffset: number;\n events: { hover: boolean; focus: boolean; touch: boolean };\n positionDependencies: any[];\n inline: boolean;\n}\n\nexport function useTooltip(settings: UseTooltip) {\n const [uncontrolledOpened, setUncontrolledOpened] = useState(false);\n const controlled = typeof settings.opened === 'boolean';\n const opened = controlled ? settings.opened : uncontrolledOpened;\n const withinGroup = useTooltipGroupContext();\n const uid = useId();\n\n const { delay: groupDelay, currentId, setCurrentId } = useDelayGroupContext();\n\n const onChange = useCallback(\n (_opened: boolean) => {\n setUncontrolledOpened(_opened);\n\n if (_opened) {\n setCurrentId(uid);\n }\n },\n [setCurrentId, uid]\n );\n\n const {\n x,\n y,\n reference,\n floating,\n context,\n refs,\n update,\n placement,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {} },\n } = useFloating({\n placement: settings.position,\n open: opened,\n onOpenChange: onChange,\n middleware: [\n offset(settings.offset),\n shift({ padding: 8 }),\n flip(),\n arrow({ element: settings.arrowRef, padding: settings.arrowOffset }),\n ...(settings.inline ? [inline()] : []),\n ],\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(context, {\n enabled: settings.events.hover,\n delay: withinGroup ? groupDelay : { open: settings.openDelay, close: settings.closeDelay },\n mouseOnly: !settings.events.touch,\n }),\n useFocus(context, { enabled: settings.events.focus, keyboardOnly: true }),\n useRole(context, { role: 'tooltip' }),\n // cannot be used with controlled tooltip, page jumps\n useDismiss(context, { enabled: typeof settings.opened === undefined }),\n useDelayGroup(context, { id: uid }),\n ]);\n\n useFloatingAutoUpdate({\n opened,\n positionDependencies: settings.positionDependencies,\n floating: { refs, update },\n });\n\n useDidUpdate(() => {\n settings.onPositionChange?.(placement);\n }, [placement]);\n\n const isGroupPhase = opened && currentId && currentId !== uid;\n\n return {\n x,\n y,\n arrowX,\n arrowY,\n reference,\n floating,\n getFloatingProps,\n getReferenceProps,\n isGroupPhase,\n opened,\n placement,\n };\n}\n"],"names":["useState","useTooltipGroupContext","useId","useDelayGroupContext","useCallback","useFloating","offset","shift","flip","arrow","inline","useInteractions","useHover","useFocus","useRole","useDismiss","useDelayGroup","useFloatingAutoUpdate","useDidUpdate"],"mappings":"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"}
@@ -42,6 +42,7 @@ function RenderList({
42
42
  listComponent,
43
43
  transferIcon: TransferIcon,
44
44
  transferAllIcon: TransferAllIcon,
45
+ transferAllMatchingFilter,
45
46
  searchPlaceholder,
46
47
  query,
47
48
  onSearch,
@@ -197,7 +198,7 @@ function RenderList({
197
198
  size: 36,
198
199
  radius: 0,
199
200
  className: classes.transferListControl,
200
- disabled: data.length === 0,
201
+ disabled: transferAllMatchingFilter ? filteredData.length === 0 : data.length === 0,
201
202
  onClick: onMoveAll,
202
203
  unstyled
203
204
  }, TransferAllIcon ? /* @__PURE__ */ React__default.createElement(TransferAllIcon, {
@@ -1 +1 @@
1
- {"version":3,"file":"RenderList.js","sources":["../../../src/TransferList/RenderList/RenderList.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { DefaultProps, Selectors, MantineNumberSize } from '@mantine/styles';\nimport { useScrollIntoView } from '@mantine/hooks';\nimport { groupOptions } from '@mantine/utils';\nimport { SelectScrollArea } from '../../Select/SelectScrollArea/SelectScrollArea';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { ActionIcon } from '../../ActionIcon';\nimport { TextInput } from '../../TextInput';\nimport { Text } from '../../Text';\nimport { Divider } from '../../Divider';\nimport { LastIcon, NextIcon, FirstIcon, PrevIcon } from '../../Pagination/icons';\nimport { TransferListItem, TransferListItemComponent } from '../types';\nimport useStyles from './RenderList.styles';\n\nexport type RenderListStylesNames = Selectors<typeof useStyles>;\n\nexport interface RenderListProps extends DefaultProps<RenderListStylesNames> {\n data: TransferListItem[];\n onSelect(value: string): void;\n selection: string[];\n itemComponent: TransferListItemComponent;\n searchPlaceholder: string;\n query?: string;\n onSearch(value: string): void;\n filter(query: string, item: TransferListItem): boolean;\n nothingFound?: React.ReactNode;\n placeholder?: React.ReactNode;\n title?: React.ReactNode;\n reversed?: boolean;\n showTransferAll?: boolean;\n onMoveAll(): void;\n onMove(): void;\n height: number;\n radius: MantineNumberSize;\n listComponent?: React.FC<any>;\n limit?: number;\n transferIcon?: React.FunctionComponent<{ reversed }>;\n transferAllIcon?: React.FunctionComponent<{ reversed }>;\n}\n\nconst icons = {\n Prev: PrevIcon,\n Next: NextIcon,\n First: FirstIcon,\n Last: LastIcon,\n};\n\nconst rtlIons = {\n Next: PrevIcon,\n Prev: NextIcon,\n Last: FirstIcon,\n First: LastIcon,\n};\n\nexport function RenderList({\n className,\n data,\n onSelect,\n selection,\n itemComponent: ItemComponent,\n listComponent,\n transferIcon: TransferIcon,\n transferAllIcon: TransferAllIcon,\n searchPlaceholder,\n query,\n onSearch,\n filter,\n nothingFound,\n placeholder,\n title,\n showTransferAll,\n reversed,\n onMoveAll,\n onMove,\n height,\n radius,\n classNames,\n styles,\n limit,\n unstyled,\n}: RenderListProps) {\n const { classes, cx, theme } = useStyles(\n { reversed, native: listComponent !== SelectScrollArea, radius },\n { name: 'TransferList', classNames, styles, unstyled }\n );\n const unGroupedItems: React.ReactElement<any>[] = [];\n const groupedItems: React.ReactElement<any>[] = [];\n const [hovered, setHovered] = useState(-1);\n const filteredData = data.filter((item) => filter(query, item)).slice(0, limit);\n const ListComponent = listComponent || 'div';\n const Icons = theme.dir === 'rtl' ? rtlIons : icons;\n\n const itemsRefs = useRef<Record<string, HTMLButtonElement>>({});\n\n const sortedData: TransferListItem[] = groupOptions({ data: filteredData });\n\n const { scrollIntoView, targetRef, scrollableRef } = useScrollIntoView({\n duration: 0,\n offset: 5,\n cancelable: false,\n isList: true,\n });\n\n let groupName = null;\n\n sortedData.forEach((item, index) => {\n const itemComponent = (\n <UnstyledButton\n unstyled={unstyled}\n tabIndex={-1}\n onClick={() => onSelect(item.value)}\n key={item.value}\n onMouseEnter={() => setHovered(index)}\n className={cx(classes.transferListItem, {\n [classes.transferListItemHovered]: index === hovered,\n })}\n ref={(node: HTMLButtonElement) => {\n if (itemsRefs && itemsRefs.current) {\n itemsRefs.current[item.value] = node;\n }\n }}\n >\n <ItemComponent data={item} selected={selection.includes(item.value)} radius={radius} />\n </UnstyledButton>\n );\n\n if (!item.group) {\n unGroupedItems.push(itemComponent);\n } else {\n if (groupName !== item.group) {\n groupName = item.group;\n groupedItems.push(\n <div className={classes.separator} key={groupName}>\n <Divider classNames={{ label: classes.separatorLabel }} label={groupName} />\n </div>\n );\n }\n groupedItems.push(itemComponent);\n }\n });\n\n if (groupedItems.length > 0 && unGroupedItems.length > 0) {\n unGroupedItems.unshift(\n <div className={classes.separator}>\n <Divider unstyled={unstyled} classNames={{ label: classes.separatorLabel }} />\n </div>\n );\n }\n\n const handleSearchKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.key) {\n case 'Enter': {\n event.preventDefault();\n if (filteredData[hovered]) {\n onSelect(filteredData[hovered].value);\n }\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => {\n const nextIndex = current < filteredData.length - 1 ? current + 1 : current;\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n\n scrollIntoView({\n alignment: 'end',\n });\n\n return nextIndex;\n });\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => {\n const nextIndex = current > 0 ? current - 1 : current;\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n\n scrollIntoView({\n alignment: 'start',\n });\n\n return nextIndex;\n });\n }\n }\n };\n\n const transferIcon = reversed ? <Icons.Prev /> : <Icons.Next />;\n const transferAllIcon = reversed ? <Icons.First /> : <Icons.Last />;\n\n return (\n <div className={cx(classes.transferList, className)}>\n {title && (\n <Text weight={500} unstyled={unstyled} className={classes.transferListTitle}>\n {title}\n </Text>\n )}\n\n <div className={classes.transferListBody}>\n <div className={classes.transferListHeader}>\n <TextInput\n unstyled={unstyled}\n value={query}\n onChange={(event) => {\n onSearch(event.currentTarget.value);\n setHovered(0);\n }}\n onFocus={() => setHovered(0)}\n onBlur={() => setHovered(-1)}\n placeholder={searchPlaceholder}\n radius={0}\n onKeyDown={handleSearchKeydown}\n sx={{ flex: 1 }}\n classNames={{ input: classes.transferListSearch }}\n />\n\n <ActionIcon\n variant=\"default\"\n size={36}\n radius={0}\n className={classes.transferListControl}\n disabled={selection.length === 0}\n onClick={onMove}\n unstyled={unstyled}\n >\n {TransferIcon ? <TransferIcon reversed={reversed} /> : transferIcon}\n </ActionIcon>\n\n {showTransferAll && (\n <ActionIcon\n variant=\"default\"\n size={36}\n radius={0}\n className={classes.transferListControl}\n disabled={data.length === 0}\n onClick={onMoveAll}\n unstyled={unstyled}\n >\n {TransferAllIcon ? <TransferAllIcon reversed={reversed} /> : transferAllIcon}\n </ActionIcon>\n )}\n </div>\n\n <ListComponent\n ref={scrollableRef}\n onMouseLeave={() => setHovered(-1)}\n className={classes.transferListItems}\n style={{ height, position: 'relative', overflowX: 'hidden' }}\n >\n {groupedItems.length > 0 || unGroupedItems.length > 0 ? (\n <>\n {groupedItems}\n {unGroupedItems}\n </>\n ) : (\n <Text color=\"dimmed\" unstyled={unstyled} size=\"sm\" align=\"center\" mt=\"sm\">\n {!query && placeholder ? placeholder : nothingFound}\n </Text>\n )}\n </ListComponent>\n </div>\n </div>\n );\n}\n\nRenderList.displayName = '@mantine/core/RenderList';\n"],"names":["PrevIcon","NextIcon","FirstIcon","LastIcon","useStyles","SelectScrollArea","useState","useRef","groupOptions","useScrollIntoView","React","UnstyledButton","Divider","Text","TextInput","ActionIcon"],"mappings":"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"}
1
+ {"version":3,"file":"RenderList.js","sources":["../../../src/TransferList/RenderList/RenderList.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { DefaultProps, Selectors, MantineNumberSize } from '@mantine/styles';\nimport { useScrollIntoView } from '@mantine/hooks';\nimport { groupOptions } from '@mantine/utils';\nimport { SelectScrollArea } from '../../Select/SelectScrollArea/SelectScrollArea';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { ActionIcon } from '../../ActionIcon';\nimport { TextInput } from '../../TextInput';\nimport { Text } from '../../Text';\nimport { Divider } from '../../Divider';\nimport { LastIcon, NextIcon, FirstIcon, PrevIcon } from '../../Pagination/icons';\nimport { TransferListItem, TransferListItemComponent } from '../types';\nimport useStyles from './RenderList.styles';\n\nexport type RenderListStylesNames = Selectors<typeof useStyles>;\n\nexport interface RenderListProps extends DefaultProps<RenderListStylesNames> {\n data: TransferListItem[];\n onSelect(value: string): void;\n selection: string[];\n itemComponent: TransferListItemComponent;\n searchPlaceholder: string;\n query?: string;\n onSearch(value: string): void;\n filter(query: string, item: TransferListItem): boolean;\n nothingFound?: React.ReactNode;\n placeholder?: React.ReactNode;\n title?: React.ReactNode;\n reversed?: boolean;\n showTransferAll?: boolean;\n onMoveAll(): void;\n onMove(): void;\n height: number;\n radius: MantineNumberSize;\n listComponent?: React.FC<any>;\n limit?: number;\n transferIcon?: React.FunctionComponent<{ reversed }>;\n transferAllIcon?: React.FunctionComponent<{ reversed }>;\n transferAllMatchingFilter: boolean;\n}\n\nconst icons = {\n Prev: PrevIcon,\n Next: NextIcon,\n First: FirstIcon,\n Last: LastIcon,\n};\n\nconst rtlIons = {\n Next: PrevIcon,\n Prev: NextIcon,\n Last: FirstIcon,\n First: LastIcon,\n};\n\nexport function RenderList({\n className,\n data,\n onSelect,\n selection,\n itemComponent: ItemComponent,\n listComponent,\n transferIcon: TransferIcon,\n transferAllIcon: TransferAllIcon,\n transferAllMatchingFilter,\n searchPlaceholder,\n query,\n onSearch,\n filter,\n nothingFound,\n placeholder,\n title,\n showTransferAll,\n reversed,\n onMoveAll,\n onMove,\n height,\n radius,\n classNames,\n styles,\n limit,\n unstyled,\n}: RenderListProps) {\n const { classes, cx, theme } = useStyles(\n { reversed, native: listComponent !== SelectScrollArea, radius },\n { name: 'TransferList', classNames, styles, unstyled }\n );\n const unGroupedItems: React.ReactElement<any>[] = [];\n const groupedItems: React.ReactElement<any>[] = [];\n const [hovered, setHovered] = useState(-1);\n const filteredData = data.filter((item) => filter(query, item)).slice(0, limit);\n const ListComponent = listComponent || 'div';\n const Icons = theme.dir === 'rtl' ? rtlIons : icons;\n\n const itemsRefs = useRef<Record<string, HTMLButtonElement>>({});\n\n const sortedData: TransferListItem[] = groupOptions({ data: filteredData });\n\n const { scrollIntoView, targetRef, scrollableRef } = useScrollIntoView({\n duration: 0,\n offset: 5,\n cancelable: false,\n isList: true,\n });\n\n let groupName = null;\n\n sortedData.forEach((item, index) => {\n const itemComponent = (\n <UnstyledButton\n unstyled={unstyled}\n tabIndex={-1}\n onClick={() => onSelect(item.value)}\n key={item.value}\n onMouseEnter={() => setHovered(index)}\n className={cx(classes.transferListItem, {\n [classes.transferListItemHovered]: index === hovered,\n })}\n ref={(node: HTMLButtonElement) => {\n if (itemsRefs && itemsRefs.current) {\n itemsRefs.current[item.value] = node;\n }\n }}\n >\n <ItemComponent data={item} selected={selection.includes(item.value)} radius={radius} />\n </UnstyledButton>\n );\n\n if (!item.group) {\n unGroupedItems.push(itemComponent);\n } else {\n if (groupName !== item.group) {\n groupName = item.group;\n groupedItems.push(\n <div className={classes.separator} key={groupName}>\n <Divider classNames={{ label: classes.separatorLabel }} label={groupName} />\n </div>\n );\n }\n groupedItems.push(itemComponent);\n }\n });\n\n if (groupedItems.length > 0 && unGroupedItems.length > 0) {\n unGroupedItems.unshift(\n <div className={classes.separator}>\n <Divider unstyled={unstyled} classNames={{ label: classes.separatorLabel }} />\n </div>\n );\n }\n\n const handleSearchKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.key) {\n case 'Enter': {\n event.preventDefault();\n if (filteredData[hovered]) {\n onSelect(filteredData[hovered].value);\n }\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => {\n const nextIndex = current < filteredData.length - 1 ? current + 1 : current;\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n\n scrollIntoView({\n alignment: 'end',\n });\n\n return nextIndex;\n });\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => {\n const nextIndex = current > 0 ? current - 1 : current;\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n\n scrollIntoView({\n alignment: 'start',\n });\n\n return nextIndex;\n });\n }\n }\n };\n\n const transferIcon = reversed ? <Icons.Prev /> : <Icons.Next />;\n const transferAllIcon = reversed ? <Icons.First /> : <Icons.Last />;\n\n return (\n <div className={cx(classes.transferList, className)}>\n {title && (\n <Text weight={500} unstyled={unstyled} className={classes.transferListTitle}>\n {title}\n </Text>\n )}\n\n <div className={classes.transferListBody}>\n <div className={classes.transferListHeader}>\n <TextInput\n unstyled={unstyled}\n value={query}\n onChange={(event) => {\n onSearch(event.currentTarget.value);\n setHovered(0);\n }}\n onFocus={() => setHovered(0)}\n onBlur={() => setHovered(-1)}\n placeholder={searchPlaceholder}\n radius={0}\n onKeyDown={handleSearchKeydown}\n sx={{ flex: 1 }}\n classNames={{ input: classes.transferListSearch }}\n />\n\n <ActionIcon\n variant=\"default\"\n size={36}\n radius={0}\n className={classes.transferListControl}\n disabled={selection.length === 0}\n onClick={onMove}\n unstyled={unstyled}\n >\n {TransferIcon ? <TransferIcon reversed={reversed} /> : transferIcon}\n </ActionIcon>\n\n {showTransferAll && (\n <ActionIcon\n variant=\"default\"\n size={36}\n radius={0}\n className={classes.transferListControl}\n disabled={transferAllMatchingFilter ? filteredData.length === 0 : data.length === 0}\n onClick={onMoveAll}\n unstyled={unstyled}\n >\n {TransferAllIcon ? <TransferAllIcon reversed={reversed} /> : transferAllIcon}\n </ActionIcon>\n )}\n </div>\n\n <ListComponent\n ref={scrollableRef}\n onMouseLeave={() => setHovered(-1)}\n className={classes.transferListItems}\n style={{ height, position: 'relative', overflowX: 'hidden' }}\n >\n {groupedItems.length > 0 || unGroupedItems.length > 0 ? (\n <>\n {groupedItems}\n {unGroupedItems}\n </>\n ) : (\n <Text color=\"dimmed\" unstyled={unstyled} size=\"sm\" align=\"center\" mt=\"sm\">\n {!query && placeholder ? placeholder : nothingFound}\n </Text>\n )}\n </ListComponent>\n </div>\n </div>\n );\n}\n\nRenderList.displayName = '@mantine/core/RenderList';\n"],"names":["PrevIcon","NextIcon","FirstIcon","LastIcon","useStyles","SelectScrollArea","useState","useRef","groupOptions","useScrollIntoView","React","UnstyledButton","Divider","Text","TextInput","ActionIcon"],"mappings":"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"}
@@ -57,7 +57,8 @@ const defaultProps = {
57
57
  listHeight: 150,
58
58
  listComponent: SelectScrollArea.SelectScrollArea,
59
59
  showTransferAll: true,
60
- limit: Infinity
60
+ limit: Infinity,
61
+ transferAllMatchingFilter: false
61
62
  };
62
63
  const TransferList = React.forwardRef((props, ref) => {
63
64
  const _a = styles.useComponentDefaultProps("TransferList", defaultProps, props), {
@@ -82,7 +83,8 @@ const TransferList = React.forwardRef((props, ref) => {
82
83
  limit,
83
84
  unstyled,
84
85
  transferIcon,
85
- transferAllIcon
86
+ transferAllIcon,
87
+ transferAllMatchingFilter
86
88
  } = _a, others = __objRest(_a, [
87
89
  "value",
88
90
  "onChange",
@@ -105,7 +107,8 @@ const TransferList = React.forwardRef((props, ref) => {
105
107
  "limit",
106
108
  "unstyled",
107
109
  "transferIcon",
108
- "transferAllIcon"
110
+ "transferAllIcon",
111
+ "transferAllMatchingFilter"
109
112
  ]);
110
113
  const [selection, handlers] = useSelectionState.useSelectionState(initialSelection);
111
114
  const [search, handleSearch] = hooks.useUncontrolled({
@@ -117,8 +120,16 @@ const TransferList = React.forwardRef((props, ref) => {
117
120
  const handleMoveAll = (listIndex) => {
118
121
  const items = Array(2);
119
122
  const moveToIndex = listIndex === 0 ? 1 : 0;
120
- items[listIndex] = [];
121
- items[moveToIndex] = [...value[moveToIndex], ...value[listIndex]];
123
+ if (transferAllMatchingFilter) {
124
+ const query = search[listIndex];
125
+ const shownItems = value[listIndex].filter((item) => filter(query, item)).slice(0, limit);
126
+ const hiddenItems = value[listIndex].filter((item) => !filter(query, item));
127
+ items[listIndex] = hiddenItems;
128
+ items[moveToIndex] = [...value[moveToIndex], ...shownItems];
129
+ } else {
130
+ items[listIndex] = [];
131
+ items[moveToIndex] = [...value[moveToIndex], ...value[listIndex]];
132
+ }
122
133
  onChange(items);
123
134
  handlers.deselectAll(listIndex);
124
135
  };
@@ -170,7 +181,8 @@ const TransferList = React.forwardRef((props, ref) => {
170
181
  nothingFound: Array.isArray(nothingFound) ? nothingFound[0] : nothingFound,
171
182
  query: search[0],
172
183
  onSearch: (query) => handleSearch([query, search[1]]),
173
- unstyled
184
+ unstyled,
185
+ transferAllMatchingFilter
174
186
  })), /* @__PURE__ */ React__default.createElement(RenderList.RenderList, __spreadProps(__spreadValues({}, sharedListProps), {
175
187
  data: value[1],
176
188
  selection: selection[1],
@@ -184,7 +196,8 @@ const TransferList = React.forwardRef((props, ref) => {
184
196
  query: search[1],
185
197
  onSearch: (query) => handleSearch([search[0], query]),
186
198
  reversed: true,
187
- unstyled
199
+ unstyled,
200
+ transferAllMatchingFilter
188
201
  })));
189
202
  });
190
203
  TransferList.displayName = "@mantine/core/TransferList";
@@ -1 +1 @@
1
- {"version":3,"file":"TransferList.js","sources":["../../src/TransferList/TransferList.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, MantineNumberSize, useComponentDefaultProps } from '@mantine/styles';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { RenderList, RenderListStylesNames } from './RenderList/RenderList';\nimport { SelectScrollArea } from '../Select/SelectScrollArea/SelectScrollArea';\nimport { DefaultItem } from './DefaultItem/DefaultItem';\nimport { SimpleGrid } from '../SimpleGrid';\nimport { useSelectionState, Selection } from './use-selection-state/use-selection-state';\nimport { TransferListData, TransferListItemComponent, TransferListItem } from './types';\n\nexport type TransferListStylesNames = RenderListStylesNames;\n\nexport interface TransferListProps\n extends DefaultProps<TransferListStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange' | 'placeholder'> {\n /** Current value */\n value: TransferListData;\n\n /** Called when value changes */\n onChange(value: TransferListData): void;\n\n /** Initial items selection */\n initialSelection?: Selection;\n\n /** Custom item component */\n itemComponent?: TransferListItemComponent;\n\n /** Controlled search queries */\n searchValues?: [string, string];\n\n /** Called when one of the search queries changes */\n onSearch?(value: [string, string]): void;\n\n /** Search fields placeholder */\n searchPlaceholder?: string | [string, string];\n\n /** Nothing found message */\n nothingFound?: React.ReactNode | [React.ReactNode, React.ReactNode];\n\n /** Displayed when a list is empty and there is no search query */\n placeholder?: React.ReactNode | [React.ReactNode, React.ReactNode];\n\n /** Function to filter search results */\n filter?(query: string, item: TransferListItem): boolean;\n\n /** Lists titles */\n titles?: [string, string];\n\n /** List items height */\n listHeight?: number;\n\n /** Change list component, can be used to add custom scrollbars */\n listComponent?: any;\n\n /** Breakpoint at which list will collapse to single column layout */\n breakpoint?: MantineNumberSize;\n\n /** Predefined border-radius value from theme.radius or number for border-radius in px */\n radius?: MantineNumberSize;\n\n /** Whether to hide the transfer all button */\n showTransferAll?: boolean;\n\n /** Limit amount of items showed at a time */\n limit?: number;\n\n /** Change icon used for the transfer selected control */\n transferIcon?: React.FunctionComponent<{ reversed: boolean }>;\n\n /** Change icon used for the transfer all control */\n transferAllIcon?: React.FunctionComponent<{ reversed: boolean }>;\n}\n\nexport function defaultFilter(query: string, item: TransferListItem) {\n return item.label.toLowerCase().trim().includes(query.toLowerCase().trim());\n}\n\nconst defaultProps: Partial<TransferListProps> = {\n itemComponent: DefaultItem,\n filter: defaultFilter,\n titles: [null, null],\n placeholder: [null, null],\n listHeight: 150,\n listComponent: SelectScrollArea,\n showTransferAll: true,\n limit: Infinity,\n};\n\nexport const TransferList = forwardRef<HTMLDivElement, TransferListProps>((props, ref) => {\n const {\n value,\n onChange,\n itemComponent,\n searchPlaceholder,\n searchValues,\n onSearch,\n filter,\n nothingFound,\n placeholder,\n titles,\n initialSelection,\n listHeight,\n listComponent,\n showTransferAll,\n breakpoint,\n radius,\n classNames,\n styles,\n limit,\n unstyled,\n transferIcon,\n transferAllIcon,\n ...others\n } = useComponentDefaultProps('TransferList', defaultProps, props);\n\n const [selection, handlers] = useSelectionState(initialSelection);\n const [search, handleSearch] = useUncontrolled({\n value: searchValues,\n defaultValue: ['', ''],\n finalValue: ['', ''],\n onChange: onSearch,\n });\n\n const handleMoveAll = (listIndex: 0 | 1) => {\n const items: TransferListData = Array(2) as any;\n const moveToIndex = listIndex === 0 ? 1 : 0;\n items[listIndex] = [];\n items[moveToIndex] = [...value[moveToIndex], ...value[listIndex]];\n onChange(items);\n handlers.deselectAll(listIndex);\n };\n\n const handleMove = (listIndex: 0 | 1) => {\n const moveToIndex = listIndex === 0 ? 1 : 0;\n const items: TransferListData = Array(2) as any;\n const transferData = value[listIndex].reduce(\n (acc, item) => {\n if (!selection[listIndex].includes(item.value)) {\n acc.filtered.push(item);\n } else {\n acc.current.push(item);\n }\n return acc;\n },\n { filtered: [], current: [] }\n );\n items[listIndex] = transferData.filtered;\n items[moveToIndex] = [...transferData.current, ...value[moveToIndex]];\n onChange(items);\n handlers.deselectAll(listIndex);\n };\n\n const breakpoints = breakpoint ? [{ maxWidth: breakpoint, cols: 1 }] : [];\n const sharedListProps = {\n itemComponent,\n listComponent,\n transferIcon,\n transferAllIcon,\n filter,\n height: listHeight,\n showTransferAll,\n classNames,\n styles,\n limit,\n radius,\n };\n\n return (\n <SimpleGrid\n cols={2}\n spacing=\"xl\"\n breakpoints={breakpoints}\n ref={ref}\n unstyled={unstyled}\n {...others}\n >\n <RenderList\n {...sharedListProps}\n data={value[0]}\n selection={selection[0]}\n onSelect={(val) => handlers.select(0, val)}\n onMoveAll={() => handleMoveAll(0)}\n onMove={() => handleMove(0)}\n title={titles[0]}\n placeholder={Array.isArray(placeholder) ? placeholder[0] : placeholder}\n searchPlaceholder={\n Array.isArray(searchPlaceholder) ? searchPlaceholder[0] : searchPlaceholder\n }\n nothingFound={Array.isArray(nothingFound) ? nothingFound[0] : nothingFound}\n query={search[0]}\n onSearch={(query) => handleSearch([query, search[1]])}\n unstyled={unstyled}\n />\n\n <RenderList\n {...sharedListProps}\n data={value[1]}\n selection={selection[1]}\n onSelect={(val) => handlers.select(1, val)}\n onMoveAll={() => handleMoveAll(1)}\n onMove={() => handleMove(1)}\n title={titles[1]}\n placeholder={Array.isArray(placeholder) ? placeholder[1] : placeholder}\n searchPlaceholder={\n Array.isArray(searchPlaceholder) ? searchPlaceholder[1] : searchPlaceholder\n }\n nothingFound={Array.isArray(nothingFound) ? nothingFound[1] : nothingFound}\n query={search[1]}\n onSearch={(query) => handleSearch([search[0], query])}\n reversed\n unstyled={unstyled}\n />\n </SimpleGrid>\n );\n});\n\nTransferList.displayName = '@mantine/core/TransferList';\n"],"names":["DefaultItem","SelectScrollArea","forwardRef","useComponentDefaultProps","styles","useSelectionState","useUncontrolled","React","SimpleGrid","RenderList"],"mappings":"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"}
1
+ {"version":3,"file":"TransferList.js","sources":["../../src/TransferList/TransferList.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, MantineNumberSize, useComponentDefaultProps } from '@mantine/styles';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { RenderList, RenderListStylesNames } from './RenderList/RenderList';\nimport { SelectScrollArea } from '../Select/SelectScrollArea/SelectScrollArea';\nimport { DefaultItem } from './DefaultItem/DefaultItem';\nimport { SimpleGrid } from '../SimpleGrid';\nimport { useSelectionState, Selection } from './use-selection-state/use-selection-state';\nimport { TransferListData, TransferListItemComponent, TransferListItem } from './types';\n\nexport type TransferListStylesNames = RenderListStylesNames;\n\nexport interface TransferListProps\n extends DefaultProps<TransferListStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange' | 'placeholder'> {\n /** Current value */\n value: TransferListData;\n\n /** Called when value changes */\n onChange(value: TransferListData): void;\n\n /** Initial items selection */\n initialSelection?: Selection;\n\n /** Custom item component */\n itemComponent?: TransferListItemComponent;\n\n /** Controlled search queries */\n searchValues?: [string, string];\n\n /** Called when one of the search queries changes */\n onSearch?(value: [string, string]): void;\n\n /** Search fields placeholder */\n searchPlaceholder?: string | [string, string];\n\n /** Nothing found message */\n nothingFound?: React.ReactNode | [React.ReactNode, React.ReactNode];\n\n /** Displayed when a list is empty and there is no search query */\n placeholder?: React.ReactNode | [React.ReactNode, React.ReactNode];\n\n /** Function to filter search results */\n filter?(query: string, item: TransferListItem): boolean;\n\n /** Lists titles */\n titles?: [string, string];\n\n /** List items height */\n listHeight?: number;\n\n /** Change list component, can be used to add custom scrollbars */\n listComponent?: any;\n\n /** Breakpoint at which list will collapse to single column layout */\n breakpoint?: MantineNumberSize;\n\n /** Predefined border-radius value from theme.radius or number for border-radius in px */\n radius?: MantineNumberSize;\n\n /** Whether to hide the transfer all button */\n showTransferAll?: boolean;\n\n /** Limit amount of items showed at a time */\n limit?: number;\n\n /** Change icon used for the transfer selected control */\n transferIcon?: React.FunctionComponent<{ reversed: boolean }>;\n\n /** Change icon used for the transfer all control */\n transferAllIcon?: React.FunctionComponent<{ reversed: boolean }>;\n\n /** Whether to transfer only items matching {@link filter} when clicking the transfer all control */\n transferAllMatchingFilter?: boolean;\n}\n\nexport function defaultFilter(query: string, item: TransferListItem) {\n return item.label.toLowerCase().trim().includes(query.toLowerCase().trim());\n}\n\nconst defaultProps: Partial<TransferListProps> = {\n itemComponent: DefaultItem,\n filter: defaultFilter,\n titles: [null, null],\n placeholder: [null, null],\n listHeight: 150,\n listComponent: SelectScrollArea,\n showTransferAll: true,\n limit: Infinity,\n transferAllMatchingFilter: false,\n};\n\nexport const TransferList = forwardRef<HTMLDivElement, TransferListProps>((props, ref) => {\n const {\n value,\n onChange,\n itemComponent,\n searchPlaceholder,\n searchValues,\n onSearch,\n filter,\n nothingFound,\n placeholder,\n titles,\n initialSelection,\n listHeight,\n listComponent,\n showTransferAll,\n breakpoint,\n radius,\n classNames,\n styles,\n limit,\n unstyled,\n transferIcon,\n transferAllIcon,\n transferAllMatchingFilter,\n ...others\n } = useComponentDefaultProps('TransferList', defaultProps, props);\n\n const [selection, handlers] = useSelectionState(initialSelection);\n const [search, handleSearch] = useUncontrolled({\n value: searchValues,\n defaultValue: ['', ''],\n finalValue: ['', ''],\n onChange: onSearch,\n });\n\n const handleMoveAll = (listIndex: 0 | 1) => {\n const items: TransferListData = Array(2) as any;\n const moveToIndex = listIndex === 0 ? 1 : 0;\n\n if (transferAllMatchingFilter) {\n const query = search[listIndex];\n const shownItems = value[listIndex].filter((item) => filter(query, item)).slice(0, limit);\n const hiddenItems = value[listIndex].filter((item) => !filter(query, item));\n\n items[listIndex] = hiddenItems;\n items[moveToIndex] = [...value[moveToIndex], ...shownItems];\n } else {\n items[listIndex] = [];\n items[moveToIndex] = [...value[moveToIndex], ...value[listIndex]];\n }\n\n onChange(items);\n handlers.deselectAll(listIndex);\n };\n\n const handleMove = (listIndex: 0 | 1) => {\n const moveToIndex = listIndex === 0 ? 1 : 0;\n const items: TransferListData = Array(2) as any;\n const transferData = value[listIndex].reduce(\n (acc, item) => {\n if (!selection[listIndex].includes(item.value)) {\n acc.filtered.push(item);\n } else {\n acc.current.push(item);\n }\n return acc;\n },\n { filtered: [], current: [] }\n );\n items[listIndex] = transferData.filtered;\n items[moveToIndex] = [...transferData.current, ...value[moveToIndex]];\n onChange(items);\n handlers.deselectAll(listIndex);\n };\n\n const breakpoints = breakpoint ? [{ maxWidth: breakpoint, cols: 1 }] : [];\n const sharedListProps = {\n itemComponent,\n listComponent,\n transferIcon,\n transferAllIcon,\n filter,\n height: listHeight,\n showTransferAll,\n classNames,\n styles,\n limit,\n radius,\n };\n\n return (\n <SimpleGrid\n cols={2}\n spacing=\"xl\"\n breakpoints={breakpoints}\n ref={ref}\n unstyled={unstyled}\n {...others}\n >\n <RenderList\n {...sharedListProps}\n data={value[0]}\n selection={selection[0]}\n onSelect={(val) => handlers.select(0, val)}\n onMoveAll={() => handleMoveAll(0)}\n onMove={() => handleMove(0)}\n title={titles[0]}\n placeholder={Array.isArray(placeholder) ? placeholder[0] : placeholder}\n searchPlaceholder={\n Array.isArray(searchPlaceholder) ? searchPlaceholder[0] : searchPlaceholder\n }\n nothingFound={Array.isArray(nothingFound) ? nothingFound[0] : nothingFound}\n query={search[0]}\n onSearch={(query) => handleSearch([query, search[1]])}\n unstyled={unstyled}\n transferAllMatchingFilter={transferAllMatchingFilter}\n />\n\n <RenderList\n {...sharedListProps}\n data={value[1]}\n selection={selection[1]}\n onSelect={(val) => handlers.select(1, val)}\n onMoveAll={() => handleMoveAll(1)}\n onMove={() => handleMove(1)}\n title={titles[1]}\n placeholder={Array.isArray(placeholder) ? placeholder[1] : placeholder}\n searchPlaceholder={\n Array.isArray(searchPlaceholder) ? searchPlaceholder[1] : searchPlaceholder\n }\n nothingFound={Array.isArray(nothingFound) ? nothingFound[1] : nothingFound}\n query={search[1]}\n onSearch={(query) => handleSearch([search[0], query])}\n reversed\n unstyled={unstyled}\n transferAllMatchingFilter={transferAllMatchingFilter}\n />\n </SimpleGrid>\n );\n});\n\nTransferList.displayName = '@mantine/core/TransferList';\n"],"names":["DefaultItem","SelectScrollArea","forwardRef","useComponentDefaultProps","styles","useSelectionState","useUncontrolled","React","SimpleGrid","RenderList"],"mappings":"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"}
@@ -95,7 +95,8 @@ const Autocomplete = forwardRef((props, ref) => {
95
95
  maxDropdownHeight,
96
96
  dropdownComponent,
97
97
  positionDependencies,
98
- readOnly
98
+ readOnly,
99
+ hoverOnSearchChange
99
100
  } = _a, others = __objRest(_a, [
100
101
  "inputProps",
101
102
  "wrapperProps",
@@ -129,7 +130,8 @@ const Autocomplete = forwardRef((props, ref) => {
129
130
  "maxDropdownHeight",
130
131
  "dropdownComponent",
131
132
  "positionDependencies",
132
- "readOnly"
133
+ "readOnly",
134
+ "hoverOnSearchChange"
133
135
  ]);
134
136
  const { classes } = useStyles(null, { classNames, styles, name: "Autocomplete", unstyled });
135
137
  const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);
@@ -149,8 +151,12 @@ const Autocomplete = forwardRef((props, ref) => {
149
151
  typeof handler === "function" && handler();
150
152
  };
151
153
  useDidUpdate(() => {
152
- setHovered(-1);
153
- }, [_value]);
154
+ if (hoverOnSearchChange && _value) {
155
+ setHovered(0);
156
+ } else {
157
+ setHovered(-1);
158
+ }
159
+ }, [_value, hoverOnSearchChange]);
154
160
  const handleItemClick = (item) => {
155
161
  handleChange(item.value);
156
162
  typeof onItemSubmit === "function" && onItemSubmit(item);
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sources":["../../src/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { useState, forwardRef, useRef } from 'react';\nimport { useUncontrolled, useDidUpdate, useMergedRef } from '@mantine/hooks';\nimport { DefaultProps, getDefaultZIndex } from '@mantine/styles';\nimport { groupOptions } from '@mantine/utils';\nimport { Input, InputWrapperBaseProps, InputSharedProps, useInputProps } from '../Input';\nimport { SelectStylesNames } from '../Select';\nimport { SelectItems } from '../Select/SelectItems/SelectItems';\nimport { DefaultItem } from '../Select/DefaultItem/DefaultItem';\nimport { SelectPopover } from '../Select/SelectPopover/SelectPopover';\nimport { SelectScrollArea } from '../Select/SelectScrollArea/SelectScrollArea';\nimport { filterData } from './filter-data/filter-data';\nimport useStyles from './Autocomplete.styles';\nimport { SelectSharedProps } from '../Select/Select';\n\nexport type AutocompleteStylesNames = SelectStylesNames;\n\nexport interface AutocompleteItem {\n value: string;\n [key: string]: any;\n}\n\nexport interface AutocompleteProps\n extends DefaultProps<AutocompleteStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n SelectSharedProps<AutocompleteItem, string>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'value' | 'defaultValue'> {\n /** Maximum dropdown height */\n maxDropdownHeight?: number | string;\n\n /** Change dropdown component, can be used to add native scrollbars */\n dropdownComponent?: any;\n\n /** Called when item from dropdown was selected */\n onItemSubmit?(item: AutocompleteItem): void;\n}\n\nexport function defaultFilter(value: string, item: AutocompleteItem) {\n return item.value.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nconst defaultProps: Partial<AutocompleteProps> = {\n required: false,\n size: 'sm',\n shadow: 'sm',\n limit: 5,\n itemComponent: DefaultItem,\n transition: 'pop',\n transitionDuration: 0,\n initiallyOpened: false,\n filter: defaultFilter,\n switchDirectionOnFlip: false,\n zIndex: getDefaultZIndex('popover'),\n dropdownPosition: 'flip',\n maxDropdownHeight: 'auto',\n positionDependencies: [],\n};\n\nexport const Autocomplete = forwardRef<HTMLInputElement, AutocompleteProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n shadow,\n data,\n limit,\n value,\n defaultValue,\n onChange,\n unstyled,\n itemComponent,\n onItemSubmit,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n transition,\n transitionDuration,\n initiallyOpened,\n transitionTimingFunction,\n classNames,\n styles,\n filter,\n nothingFound,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip,\n zIndex,\n dropdownPosition,\n maxDropdownHeight,\n dropdownComponent,\n positionDependencies,\n readOnly,\n ...others\n } = useInputProps('Autocomplete', defaultProps, props);\n const { classes } = useStyles(null, { classNames, styles, name: 'Autocomplete', unstyled });\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const inputRef = useRef<HTMLInputElement>(null);\n const [IMEOpen, setIMEOpen] = useState(false);\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n useDidUpdate(() => {\n setHovered(-1);\n }, [_value]);\n\n const handleItemClick = (item: AutocompleteItem) => {\n handleChange(item.value);\n typeof onItemSubmit === 'function' && onItemSubmit(item);\n setDropdownOpened(false);\n };\n\n const formattedData = data.map((item) => (typeof item === 'string' ? { value: item } : item));\n const filteredData = groupOptions({\n data: filterData({ data: formattedData, value: _value, limit, filter }),\n });\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (IMEOpen) {\n return;\n }\n\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n const isColumn = direction === 'column';\n\n const handleNext = () => {\n setHovered((current) => (current < filteredData.length - 1 ? current + 1 : current));\n };\n\n const handlePrevious = () => {\n setHovered((current) => (current > 0 ? current - 1 : current));\n };\n\n switch (event.key) {\n case 'ArrowUp': {\n event.preventDefault();\n isColumn ? handlePrevious() : handleNext();\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n isColumn ? handleNext() : handlePrevious();\n break;\n }\n\n case 'Enter': {\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleChange(filteredData[hovered].value);\n typeof onItemSubmit === 'function' && onItemSubmit(filteredData[hovered]);\n setDropdownOpened(false);\n }\n break;\n }\n\n case 'Escape': {\n if (dropdownOpened) {\n event.preventDefault();\n setDropdownOpened(false);\n }\n }\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n typeof onClick === 'function' && onClick(event);\n setDropdownOpened(true);\n };\n\n const shouldRenderDropdown =\n dropdownOpened && (filteredData.length > 0 || (filteredData.length === 0 && !!nothingFound));\n\n return (\n <Input.Wrapper {...wrapperProps} __staticSelector=\"Autocomplete\">\n <SelectPopover\n opened={shouldRenderDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n shadow=\"sm\"\n withinPortal={withinPortal}\n __staticSelector=\"Autocomplete\"\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n positionDependencies={positionDependencies}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n readOnly={readOnly}\n >\n <SelectPopover.Target>\n <div\n className={classes.wrapper}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={shouldRenderDropdown ? `${inputProps.id}-items` : null}\n aria-controls={inputProps.id}\n aria-expanded={shouldRenderDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n type=\"search\"\n autoComplete=\"off\"\n {...inputProps}\n {...others}\n readOnly={readOnly}\n data-mantine-stop-propagation={dropdownOpened}\n ref={useMergedRef(ref, inputRef)}\n onKeyDown={handleInputKeydown}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n value={_value}\n onChange={(event) => {\n handleChange(event.currentTarget.value);\n setDropdownOpened(true);\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onClick={handleInputClick}\n onCompositionStart={() => setIMEOpen(true)}\n onCompositionEnd={() => setIMEOpen(false)}\n aria-autocomplete=\"list\"\n aria-controls={shouldRenderDropdown ? `${inputProps.id}-items` : null}\n aria-activedescendant={hovered >= 0 ? `${inputProps.id}-${hovered}` : null}\n />\n </div>\n </SelectPopover.Target>\n\n <SelectPopover.Dropdown\n component={dropdownComponent || SelectScrollArea}\n maxHeight={maxDropdownHeight}\n direction={direction}\n id={inputProps.id}\n __staticSelector=\"Autocomplete\"\n classNames={classNames}\n styles={styles}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n uuid={inputProps.id}\n __staticSelector=\"Autocomplete\"\n onItemHover={setHovered}\n onItemSelect={handleItemClick}\n itemComponent={itemComponent}\n size={inputProps.size}\n nothingFound={nothingFound}\n />\n </SelectPopover.Dropdown>\n </SelectPopover>\n </Input.Wrapper>\n );\n});\n\nAutocomplete.displayName = '@mantine/core/Autocomplete';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.js","sources":["../../src/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { useState, forwardRef, useRef } from 'react';\nimport { useUncontrolled, useDidUpdate, useMergedRef } from '@mantine/hooks';\nimport { DefaultProps, getDefaultZIndex } from '@mantine/styles';\nimport { groupOptions } from '@mantine/utils';\nimport { Input, InputWrapperBaseProps, InputSharedProps, useInputProps } from '../Input';\nimport { SelectStylesNames } from '../Select';\nimport { SelectItems } from '../Select/SelectItems/SelectItems';\nimport { DefaultItem } from '../Select/DefaultItem/DefaultItem';\nimport { SelectPopover } from '../Select/SelectPopover/SelectPopover';\nimport { SelectScrollArea } from '../Select/SelectScrollArea/SelectScrollArea';\nimport { filterData } from './filter-data/filter-data';\nimport useStyles from './Autocomplete.styles';\nimport { SelectSharedProps } from '../Select/Select';\n\nexport type AutocompleteStylesNames = SelectStylesNames;\n\nexport interface AutocompleteItem {\n value: string;\n [key: string]: any;\n}\n\nexport interface AutocompleteProps\n extends DefaultProps<AutocompleteStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n SelectSharedProps<AutocompleteItem, string>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'value' | 'defaultValue'> {\n /** Maximum dropdown height */\n maxDropdownHeight?: number | string;\n\n /** Change dropdown component, can be used to add native scrollbars */\n dropdownComponent?: any;\n\n /** Called when item from dropdown was selected */\n onItemSubmit?(item: AutocompleteItem): void;\n\n /** Hovers the first result when input changes */\n hoverOnSearchChange?: boolean;\n}\n\nexport function defaultFilter(value: string, item: AutocompleteItem) {\n return item.value.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nconst defaultProps: Partial<AutocompleteProps> = {\n required: false,\n size: 'sm',\n shadow: 'sm',\n limit: 5,\n itemComponent: DefaultItem,\n transition: 'pop',\n transitionDuration: 0,\n initiallyOpened: false,\n filter: defaultFilter,\n switchDirectionOnFlip: false,\n zIndex: getDefaultZIndex('popover'),\n dropdownPosition: 'flip',\n maxDropdownHeight: 'auto',\n positionDependencies: [],\n};\n\nexport const Autocomplete = forwardRef<HTMLInputElement, AutocompleteProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n shadow,\n data,\n limit,\n value,\n defaultValue,\n onChange,\n unstyled,\n itemComponent,\n onItemSubmit,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n transition,\n transitionDuration,\n initiallyOpened,\n transitionTimingFunction,\n classNames,\n styles,\n filter,\n nothingFound,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip,\n zIndex,\n dropdownPosition,\n maxDropdownHeight,\n dropdownComponent,\n positionDependencies,\n readOnly,\n hoverOnSearchChange,\n ...others\n } = useInputProps('Autocomplete', defaultProps, props);\n const { classes } = useStyles(null, { classNames, styles, name: 'Autocomplete', unstyled });\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const inputRef = useRef<HTMLInputElement>(null);\n const [IMEOpen, setIMEOpen] = useState(false);\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n useDidUpdate(() => {\n if (hoverOnSearchChange && _value) {\n setHovered(0);\n } else {\n setHovered(-1);\n }\n }, [_value, hoverOnSearchChange]);\n\n const handleItemClick = (item: AutocompleteItem) => {\n handleChange(item.value);\n typeof onItemSubmit === 'function' && onItemSubmit(item);\n setDropdownOpened(false);\n };\n\n const formattedData = data.map((item) => (typeof item === 'string' ? { value: item } : item));\n const filteredData = groupOptions({\n data: filterData({ data: formattedData, value: _value, limit, filter }),\n });\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (IMEOpen) {\n return;\n }\n\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n const isColumn = direction === 'column';\n\n const handleNext = () => {\n setHovered((current) => (current < filteredData.length - 1 ? current + 1 : current));\n };\n\n const handlePrevious = () => {\n setHovered((current) => (current > 0 ? current - 1 : current));\n };\n\n switch (event.key) {\n case 'ArrowUp': {\n event.preventDefault();\n isColumn ? handlePrevious() : handleNext();\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n isColumn ? handleNext() : handlePrevious();\n break;\n }\n\n case 'Enter': {\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleChange(filteredData[hovered].value);\n typeof onItemSubmit === 'function' && onItemSubmit(filteredData[hovered]);\n setDropdownOpened(false);\n }\n break;\n }\n\n case 'Escape': {\n if (dropdownOpened) {\n event.preventDefault();\n setDropdownOpened(false);\n }\n }\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n typeof onClick === 'function' && onClick(event);\n setDropdownOpened(true);\n };\n\n const shouldRenderDropdown =\n dropdownOpened && (filteredData.length > 0 || (filteredData.length === 0 && !!nothingFound));\n\n return (\n <Input.Wrapper {...wrapperProps} __staticSelector=\"Autocomplete\">\n <SelectPopover\n opened={shouldRenderDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n shadow=\"sm\"\n withinPortal={withinPortal}\n __staticSelector=\"Autocomplete\"\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n positionDependencies={positionDependencies}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n readOnly={readOnly}\n >\n <SelectPopover.Target>\n <div\n className={classes.wrapper}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={shouldRenderDropdown ? `${inputProps.id}-items` : null}\n aria-controls={inputProps.id}\n aria-expanded={shouldRenderDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n type=\"search\"\n autoComplete=\"off\"\n {...inputProps}\n {...others}\n readOnly={readOnly}\n data-mantine-stop-propagation={dropdownOpened}\n ref={useMergedRef(ref, inputRef)}\n onKeyDown={handleInputKeydown}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n value={_value}\n onChange={(event) => {\n handleChange(event.currentTarget.value);\n setDropdownOpened(true);\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onClick={handleInputClick}\n onCompositionStart={() => setIMEOpen(true)}\n onCompositionEnd={() => setIMEOpen(false)}\n aria-autocomplete=\"list\"\n aria-controls={shouldRenderDropdown ? `${inputProps.id}-items` : null}\n aria-activedescendant={hovered >= 0 ? `${inputProps.id}-${hovered}` : null}\n />\n </div>\n </SelectPopover.Target>\n\n <SelectPopover.Dropdown\n component={dropdownComponent || SelectScrollArea}\n maxHeight={maxDropdownHeight}\n direction={direction}\n id={inputProps.id}\n __staticSelector=\"Autocomplete\"\n classNames={classNames}\n styles={styles}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n uuid={inputProps.id}\n __staticSelector=\"Autocomplete\"\n onItemHover={setHovered}\n onItemSelect={handleItemClick}\n itemComponent={itemComponent}\n size={inputProps.size}\n nothingFound={nothingFound}\n />\n </SelectPopover.Dropdown>\n </SelectPopover>\n </Input.Wrapper>\n );\n});\n\nAutocomplete.displayName = '@mantine/core/Autocomplete';\n"],"names":[],"mappings":"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"}
@@ -43,7 +43,8 @@ const FileButton = forwardRef((props, ref) => {
43
43
  form,
44
44
  resetRef,
45
45
  disabled,
46
- capture
46
+ capture,
47
+ inputProps
47
48
  } = _a, others = __objRest(_a, [
48
49
  "onChange",
49
50
  "children",
@@ -53,7 +54,8 @@ const FileButton = forwardRef((props, ref) => {
53
54
  "form",
54
55
  "resetRef",
55
56
  "disabled",
56
- "capture"
57
+ "capture",
58
+ "inputProps"
57
59
  ]);
58
60
  const inputRef = useRef();
59
61
  const onClick = () => {
@@ -70,7 +72,7 @@ const FileButton = forwardRef((props, ref) => {
70
72
  inputRef.current.value = "";
71
73
  };
72
74
  assignRef(resetRef, reset);
73
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children(__spreadValues({ onClick }, others)), /* @__PURE__ */ React.createElement("input", {
75
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, children(__spreadValues({ onClick }, others)), /* @__PURE__ */ React.createElement("input", __spreadValues({
74
76
  style: { display: "none" },
75
77
  type: "file",
76
78
  accept,
@@ -80,7 +82,7 @@ const FileButton = forwardRef((props, ref) => {
80
82
  name,
81
83
  form,
82
84
  capture
83
- }));
85
+ }, inputProps)));
84
86
  });
85
87
  FileButton.displayName = "@mantine/core/FileButton";
86
88
 
@@ -1 +1 @@
1
- {"version":3,"file":"FileButton.js","sources":["../../src/FileButton/FileButton.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { useRef, forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { assignRef, useMergedRef } from '@mantine/hooks';\n\nexport interface FileButtonProps<Multiple extends boolean = false> {\n /** Called when files are picked */\n onChange(payload: Multiple extends true ? File[] : File | null): void;\n\n /** Function that receives button props and returns react node that should be rendered */\n children(props: { onClick(): void }): React.ReactNode;\n\n /** Determines whether user can pick more than one file */\n multiple?: Multiple;\n\n /** File input accept attribute, for example, \"image/png,image/jpeg\" */\n accept?: string;\n\n /** Input name attribute */\n name?: string;\n\n /** Input form attribute */\n form?: string;\n\n /** Function that should be called when value changes to null or empty array */\n resetRef?: React.ForwardedRef<() => void>;\n\n /** Disables file picker */\n disabled?: boolean;\n\n /** Specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute. */\n capture?: boolean | 'user' | 'environment';\n}\n\nconst defaultProps: Partial<FileButtonProps> = {\n multiple: false,\n};\n\ntype FileButtonComponent = (<Multiple extends boolean = false>(\n props: FileButtonProps<Multiple>\n) => React.ReactElement) & { displayName?: string };\n\nexport const FileButton: FileButtonComponent = forwardRef<HTMLInputElement, FileButtonProps>(\n (props, ref) => {\n const {\n onChange,\n children,\n multiple,\n accept,\n name,\n form,\n resetRef,\n disabled,\n capture,\n ...others\n } = useComponentDefaultProps('FileButton', defaultProps, props);\n\n const inputRef = useRef<HTMLInputElement>();\n\n const onClick = () => {\n !disabled && inputRef.current.click();\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (multiple) {\n onChange(Array.from(event.currentTarget.files) as any);\n } else {\n onChange(event.currentTarget.files[0] || null);\n }\n };\n\n const reset = () => {\n inputRef.current.value = '';\n };\n\n assignRef(resetRef, reset);\n\n return (\n <>\n {children({ onClick, ...others })}\n\n <input\n style={{ display: 'none' }}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n ref={useMergedRef(ref, inputRef)}\n name={name}\n form={form}\n capture={capture}\n />\n </>\n );\n }\n) as any;\n\nFileButton.displayName = '@mantine/core/FileButton';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileButton.js","sources":["../../src/FileButton/FileButton.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { useRef, forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { assignRef, useMergedRef } from '@mantine/hooks';\n\nexport interface FileButtonProps<Multiple extends boolean = false> {\n /** Called when files are picked */\n onChange(payload: Multiple extends true ? File[] : File | null): void;\n\n /** Function that receives button props and returns react node that should be rendered */\n children(props: { onClick(): void }): React.ReactNode;\n\n /** Determines whether user can pick more than one file */\n multiple?: Multiple;\n\n /** File input accept attribute, for example, \"image/png,image/jpeg\" */\n accept?: string;\n\n /** Input name attribute */\n name?: string;\n\n /** Input form attribute */\n form?: string;\n\n /** Function that should be called when value changes to null or empty array */\n resetRef?: React.ForwardedRef<() => void>;\n\n /** Disables file picker */\n disabled?: boolean;\n\n /** Specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute. */\n capture?: boolean | 'user' | 'environment';\n\n /** Spreads props to input element used to capture files */\n inputProps?: React.ComponentPropsWithoutRef<'input'>;\n}\n\nconst defaultProps: Partial<FileButtonProps> = {\n multiple: false,\n};\n\ntype FileButtonComponent = (<Multiple extends boolean = false>(\n props: FileButtonProps<Multiple>\n) => React.ReactElement) & { displayName?: string };\n\nexport const FileButton: FileButtonComponent = forwardRef<HTMLInputElement, FileButtonProps>(\n (props, ref) => {\n const {\n onChange,\n children,\n multiple,\n accept,\n name,\n form,\n resetRef,\n disabled,\n capture,\n inputProps,\n ...others\n } = useComponentDefaultProps('FileButton', defaultProps, props);\n\n const inputRef = useRef<HTMLInputElement>();\n\n const onClick = () => {\n !disabled && inputRef.current.click();\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (multiple) {\n onChange(Array.from(event.currentTarget.files) as any);\n } else {\n onChange(event.currentTarget.files[0] || null);\n }\n };\n\n const reset = () => {\n inputRef.current.value = '';\n };\n\n assignRef(resetRef, reset);\n\n return (\n <>\n {children({ onClick, ...others })}\n\n <input\n style={{ display: 'none' }}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n ref={useMergedRef(ref, inputRef)}\n name={name}\n form={form}\n capture={capture}\n {...inputProps}\n />\n </>\n );\n }\n) as any;\n\nFileButton.displayName = '@mantine/core/FileButton';\n"],"names":[],"mappings":"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"}
@@ -75,7 +75,8 @@ const _FileInput = forwardRef((props, ref) => {
75
75
  clearButtonLabel,
76
76
  clearButtonTabIndex,
77
77
  readOnly,
78
- capture
78
+ capture,
79
+ fileInputProps
79
80
  } = _a, others = __objRest(_a, [
80
81
  "inputProps",
81
82
  "wrapperProps",
@@ -97,7 +98,8 @@ const _FileInput = forwardRef((props, ref) => {
97
98
  "clearButtonLabel",
98
99
  "clearButtonTabIndex",
99
100
  "readOnly",
100
- "capture"
101
+ "capture",
102
+ "fileInputProps"
101
103
  ]);
102
104
  const resetRef = useRef();
103
105
  const { classes, theme, cx } = useStyles(null, {
@@ -136,7 +138,8 @@ const _FileInput = forwardRef((props, ref) => {
136
138
  form,
137
139
  resetRef,
138
140
  disabled: readOnly,
139
- capture
141
+ capture,
142
+ inputProps: fileInputProps
140
143
  }, (fileButtonProps) => /* @__PURE__ */ React.createElement(Input, __spreadProps(__spreadValues(__spreadValues(__spreadValues({
141
144
  multiline: true
142
145
  }, fileButtonProps), inputProps), others), {