@coveord/plasma-mantine 55.7.2-next.20 → 55.7.2-next.21

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 (82) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +47 -48
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/action-icon/ActionIcon.d.ts +41 -0
  5. package/dist/cjs/components/action-icon/ActionIcon.d.ts.map +1 -1
  6. package/dist/cjs/components/action-icon/ActionIcon.js +49 -0
  7. package/dist/cjs/components/action-icon/ActionIcon.js.map +1 -1
  8. package/dist/cjs/components/code-editor/search/Search.d.ts +2 -1
  9. package/dist/cjs/components/code-editor/search/Search.d.ts.map +1 -1
  10. package/dist/cjs/components/code-editor/search/Search.js +5 -6
  11. package/dist/cjs/components/code-editor/search/Search.js.map +1 -1
  12. package/dist/cjs/components/collection/Collection.d.ts +1 -1
  13. package/dist/cjs/components/collection/Collection.d.ts.map +1 -1
  14. package/dist/cjs/components/collection/Collection.js +11 -18
  15. package/dist/cjs/components/collection/Collection.js.map +1 -1
  16. package/dist/cjs/components/collection/CollectionItem.d.ts.map +1 -1
  17. package/dist/cjs/components/collection/CollectionItem.js +5 -4
  18. package/dist/cjs/components/collection/CollectionItem.js.map +1 -1
  19. package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
  20. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js +2 -2
  21. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  22. package/dist/cjs/components/table/table-actions/TableActionsList.d.ts.map +1 -1
  23. package/dist/cjs/components/table/table-actions/TableActionsList.js +2 -2
  24. package/dist/cjs/components/table/table-actions/TableActionsList.js.map +1 -1
  25. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js +7 -6
  26. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
  27. package/dist/cjs/components/table/table-filter/TableFilter.d.ts.map +1 -1
  28. package/dist/cjs/components/table/table-filter/TableFilter.js +7 -7
  29. package/dist/cjs/components/table/table-filter/TableFilter.js.map +1 -1
  30. package/dist/cjs/styles/ActionIcon.module.css +7 -0
  31. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  32. package/dist/cjs/theme/Theme.js +8 -0
  33. package/dist/cjs/theme/Theme.js.map +1 -1
  34. package/dist/cjs/theme/plasmaCSSVariablesResolver.js +1 -1
  35. package/dist/cjs/theme/plasmaCSSVariablesResolver.js.map +1 -1
  36. package/dist/esm/components/action-icon/ActionIcon.d.ts +41 -0
  37. package/dist/esm/components/action-icon/ActionIcon.d.ts.map +1 -1
  38. package/dist/esm/components/action-icon/ActionIcon.js +45 -0
  39. package/dist/esm/components/action-icon/ActionIcon.js.map +1 -1
  40. package/dist/esm/components/code-editor/search/Search.d.ts +2 -1
  41. package/dist/esm/components/code-editor/search/Search.d.ts.map +1 -1
  42. package/dist/esm/components/code-editor/search/Search.js +6 -7
  43. package/dist/esm/components/code-editor/search/Search.js.map +1 -1
  44. package/dist/esm/components/collection/Collection.d.ts +1 -1
  45. package/dist/esm/components/collection/Collection.d.ts.map +1 -1
  46. package/dist/esm/components/collection/Collection.js +10 -17
  47. package/dist/esm/components/collection/Collection.js.map +1 -1
  48. package/dist/esm/components/collection/CollectionItem.d.ts.map +1 -1
  49. package/dist/esm/components/collection/CollectionItem.js +7 -6
  50. package/dist/esm/components/collection/CollectionItem.js.map +1 -1
  51. package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
  52. package/dist/esm/components/copyToClipboard/CopyToClipboard.js +3 -3
  53. package/dist/esm/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  54. package/dist/esm/components/table/table-actions/TableActionsList.d.ts.map +1 -1
  55. package/dist/esm/components/table/table-actions/TableActionsList.js +3 -3
  56. package/dist/esm/components/table/table-actions/TableActionsList.js.map +1 -1
  57. package/dist/esm/components/table/table-column/TableCollapsibleColumn.js +8 -7
  58. package/dist/esm/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
  59. package/dist/esm/components/table/table-filter/TableFilter.d.ts.map +1 -1
  60. package/dist/esm/components/table/table-filter/TableFilter.js +9 -9
  61. package/dist/esm/components/table/table-filter/TableFilter.js.map +1 -1
  62. package/dist/esm/styles/ActionIcon.module.css +7 -0
  63. package/dist/esm/theme/Theme.d.ts.map +1 -1
  64. package/dist/esm/theme/Theme.js +9 -1
  65. package/dist/esm/theme/Theme.js.map +1 -1
  66. package/dist/esm/theme/plasmaCSSVariablesResolver.js +1 -1
  67. package/dist/esm/theme/plasmaCSSVariablesResolver.js.map +1 -1
  68. package/package.json +3 -3
  69. package/src/components/action-icon/ActionIcon.tsx +33 -0
  70. package/src/components/code-editor/search/Search.tsx +8 -7
  71. package/src/components/collection/Collection.tsx +10 -17
  72. package/src/components/collection/CollectionItem.tsx +6 -5
  73. package/src/components/copyToClipboard/CopyToClipboard.tsx +4 -4
  74. package/src/components/table/__tests__/TableFilter.spec.tsx +1 -1
  75. package/src/components/table/layouts/__tests__/RowLayout.spec.tsx +7 -7
  76. package/src/components/table/table-actions/TableActionsList.tsx +3 -4
  77. package/src/components/table/table-column/TableCollapsibleColumn.tsx +5 -6
  78. package/src/components/table/table-filter/TableFilter.tsx +7 -6
  79. package/src/styles/ActionIcon.module.css +7 -0
  80. package/src/theme/Theme.tsx +9 -0
  81. package/src/theme/__tests__/plasmaCSSVariablesResolver.spec.ts +1 -1
  82. package/src/theme/plasmaCSSVariablesResolver.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/collection/Collection.tsx"],"sourcesContent":["import {AddSize16Px} from '@coveord/plasma-react-icons';\nimport {DndContext, DragEndEvent, KeyboardSensor, PointerSensor, useSensor, useSensors} from '@dnd-kit/core';\nimport {restrictToParentElement, restrictToVerticalAxis} from '@dnd-kit/modifiers';\nimport {SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy} from '@dnd-kit/sortable';\nimport {\n Box,\n BoxProps,\n Factory,\n Group,\n Input,\n MantineSpacing,\n Stack,\n StylesApiProps,\n Tooltip,\n __InputWrapperProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReorderPayload} from '@mantine/form/lib/types';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ForwardedRef, ReactNode} from 'react';\n\nimport {CustomComponentThemeExtend, identity} from '../../utils';\nimport {Button} from '../button';\nimport classes from './Collection.module.css';\nimport {CollectionProvider} from './CollectionContext';\nimport {CollectionItem} from './CollectionItem';\n\nexport interface CollectionProps<T> extends __InputWrapperProps, BoxProps, StylesApiProps<CollectionFactory> {\n /**\n * The default value each new item should have\n */\n newItem: T;\n /**\n * A render function called for each item passed in the `value` prop.\n *\n * @param item The current item's value\n * @param index The current item's index\n */\n children: (item: T, index: number) => ReactNode;\n /**\n * The list of items to display inside the collection\n *\n * @default []\n */\n value?: T[];\n /**\n * Defines how each item is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n *\n * This method is required when using this component with ReactHookForm.\n *\n * @see {@link https://react-hook-form.com/api/usefieldarray/} for using a collection with ReactHookForm.\n *\n * @param originalItem The original item\n */\n getItemId?: (originalItem: T) => string;\n /**\n * Unused, has no effect\n */\n onFocus?: () => void;\n /**\n * Function called whenever the value needs to be updated\n *\n * @param value The whole list of items after the change\n */\n onChange?: (value: T[]) => void;\n /**\n * Function called after an item is removed from the collection using the remove button\n *\n * @param itemIndex The index of the item that was removed\n */\n onRemoveItem?: (itemIndex: number) => void;\n /**\n * Function that gets called whenever a collection item needs to be reordered\n *\n * @param payload The origin and destination index of the item to reorder\n */\n onReorderItem?: (payload: ReorderPayload) => void;\n /**\n * Function that gets called when a new item needs to be added to the collection\n *\n * @param value The value of the item to insert\n * @param index The index of the new item to insert\n */\n onInsertItem?: (value: T, index: number) => void;\n /**\n * Whether the collection should have drag and drop behavior enabled\n *\n * @default false\n */\n draggable?: boolean;\n /**\n * Whether the collection is disabled, or in other words in read only mode\n *\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the collection is readOnly. If true, the collection will not allow adding or removing items\n *\n * @default false\n */\n readOnly?: boolean;\n /**\n * Function that determines if the add item button should be enabled given the current items of the collection.\n * The button is always enabled if this props remains undefined\n *\n * @param values The current items of the collection\n */\n allowAdd?: (values: T[]) => boolean;\n /**\n * The label of the add item button\n *\n * @default \"Add item\"\n */\n addLabel?: string;\n /**\n * The tooltip text displayed when hovering over the disabled add item button\n *\n * @default 'There is already an empty item'\n */\n addDisabledTooltip?: string;\n /**\n * The gap between the colleciton items\n *\n * @default 'xs'\n */\n gap?: MantineSpacing;\n /**\n * Whether the collection is required. When required is true, the collection will hide the remove button if there is only one item\n *\n * @default false\n */\n required?: boolean;\n}\n\nexport type CollectionStylesNames = 'root' | 'item' | 'itemDragging' | 'dragHandle';\n\nexport type CollectionFactory = Factory<{\n props: CollectionProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: CollectionStylesNames;\n}>;\n\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n readOnly: false,\n gap: 'xs',\n required: false,\n getItemId: ({id}: any) => id,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n value,\n onChange,\n onRemoveItem,\n onReorderItem,\n onInsertItem,\n disabled,\n readOnly,\n draggable,\n children,\n gap,\n required,\n newItem,\n addLabel,\n addDisabledTooltip,\n allowAdd,\n label,\n labelProps,\n withAsterisk,\n description,\n descriptionProps,\n error,\n errorProps,\n getItemId,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('Collection', defaultProps as CollectionProps<T>, props);\n\n const getStyles = useStyles<CollectionFactory>({\n name: 'Collection',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const canEdit = !disabled && !readOnly;\n const hasOnlyOneItem = value.length === 1;\n\n /**\n * Enforcing onChange when the value is modified will make sure the errors are carried through.\n */\n useDidUpdate(() => {\n onChange?.(value);\n }, [JSON.stringify(value)]);\n\n const isRequired = typeof withAsterisk === 'boolean' ? withAsterisk : required;\n const _label = label ? (\n <Input.Label required={isRequired} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n const _error = error ? <Input.Error {...errorProps}>{error}</Input.Error> : null;\n const _header =\n _label || _description ? (\n <>\n {_label}\n {_description}\n </>\n ) : null;\n\n const standardizedItems = value.map((item, index) => ({id: getItemId?.(item) ?? String(index), data: item}));\n\n const items = standardizedItems.map((item, index) => (\n <CollectionItem\n key={item.id}\n id={item.id}\n disabled={!canEdit}\n draggable={draggable}\n onRemove={() => onRemoveItem?.(index)}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item.data, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(value) ?? true;\n\n const _addButton = canEdit ? (\n <Group>\n <Tooltip label={addDisabledTooltip} disabled={addAllowed}>\n <Box>\n <Button.Quaternary\n leftSection={<AddSize16Px height={16} />}\n onClick={() => onInsertItem(newItem, value?.length ?? 0)}\n disabled={!addAllowed}\n >\n {addLabel}\n </Button.Quaternary>\n </Box>\n </Tooltip>\n </Group>\n ) : null;\n\n const getIndex = (id: string) => standardizedItems.findIndex((item) => item.id === id);\n\n const handleDragEnd = ({over, active}: DragEndEvent): void => {\n if (over) {\n const activeIndex = getIndex(String(active.id));\n const overIndex = getIndex(String(over.id));\n if (activeIndex !== overIndex) {\n onReorderItem?.({from: activeIndex, to: overIndex});\n }\n }\n };\n\n return (\n <CollectionProvider value={{getStyles}}>\n <DndContext\n onDragEnd={handleDragEnd}\n sensors={sensors}\n modifiers={[restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext items={standardizedItems} strategy={verticalListSortingStrategy}>\n <Box ref={ref} {...others} {...getStyles('root')}>\n {_header}\n <Stack gap={gap}>\n {items}\n {_addButton}\n {_error}\n </Stack>\n </Box>\n </SortableContext>\n </DndContext>\n </CollectionProvider>\n );\n};\n\nCollection.extend = identity as CustomComponentThemeExtend<CollectionFactory>;\n"],"names":["AddSize16Px","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToParentElement","restrictToVerticalAxis","SortableContext","sortableKeyboardCoordinates","verticalListSortingStrategy","Box","Group","Input","Stack","Tooltip","useProps","useStyles","useDidUpdate","identity","Button","classes","CollectionProvider","CollectionItem","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","readOnly","gap","required","getItemId","id","Collection","props","value","onChange","onRemoveItem","onReorderItem","onInsertItem","children","newItem","allowAdd","label","labelProps","withAsterisk","description","descriptionProps","error","errorProps","ref","style","className","classNames","styles","unstyled","others","getStyles","name","sensors","coordinateGetter","canEdit","hasOnlyOneItem","length","JSON","stringify","isRequired","_label","Label","_description","Description","_error","Error","_header","standardizedItems","map","item","index","String","data","items","onRemove","removable","addAllowed","_addButton","Quaternary","leftSection","height","onClick","getIndex","findIndex","handleDragEnd","over","active","activeIndex","overIndex","from","to","onDragEnd","modifiers","strategy","extend"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/collection/Collection.tsx"],"sourcesContent":["import {IconCirclePlus} from '@coveord/plasma-react-icons';\nimport {DndContext, DragEndEvent, KeyboardSensor, PointerSensor, useSensor, useSensors} from '@dnd-kit/core';\nimport {restrictToParentElement, restrictToVerticalAxis} from '@dnd-kit/modifiers';\nimport {SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy} from '@dnd-kit/sortable';\nimport {\n __InputWrapperProps,\n Box,\n BoxProps,\n Factory,\n Input,\n MantineSpacing,\n Stack,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReorderPayload} from '@mantine/form/lib/types';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ForwardedRef, ReactNode} from 'react';\n\nimport {CustomComponentThemeExtend, identity} from '../../utils';\nimport {Button} from '../button';\nimport classes from './Collection.module.css';\nimport {CollectionProvider} from './CollectionContext';\nimport {CollectionItem} from './CollectionItem';\n\nexport interface CollectionProps<T> extends __InputWrapperProps, BoxProps, StylesApiProps<CollectionFactory> {\n /**\n * The default value each new item should have\n */\n newItem: T;\n /**\n * A render function called for each item passed in the `value` prop.\n *\n * @param item The current item's value\n * @param index The current item's index\n */\n children: (item: T, index: number) => ReactNode;\n /**\n * The list of items to display inside the collection\n *\n * @default []\n */\n value?: T[];\n /**\n * Defines how each item is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n *\n * This method is required when using this component with ReactHookForm.\n *\n * @see {@link https://react-hook-form.com/api/usefieldarray/} for using a collection with ReactHookForm.\n *\n * @param originalItem The original item\n */\n getItemId?: (originalItem: T) => string;\n /**\n * Unused, has no effect\n */\n onFocus?: () => void;\n /**\n * Function called whenever the value needs to be updated\n *\n * @param value The whole list of items after the change\n */\n onChange?: (value: T[]) => void;\n /**\n * Function called after an item is removed from the collection using the remove button\n *\n * @param itemIndex The index of the item that was removed\n */\n onRemoveItem?: (itemIndex: number) => void;\n /**\n * Function that gets called whenever a collection item needs to be reordered\n *\n * @param payload The origin and destination index of the item to reorder\n */\n onReorderItem?: (payload: ReorderPayload) => void;\n /**\n * Function that gets called when a new item needs to be added to the collection\n *\n * @param value The value of the item to insert\n * @param index The index of the new item to insert\n */\n onInsertItem?: (value: T, index: number) => void;\n /**\n * Whether the collection should have drag and drop behavior enabled\n *\n * @default false\n */\n draggable?: boolean;\n /**\n * Whether the collection is disabled, or in other words in read only mode\n *\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the collection is readOnly. If true, the collection will not allow adding or removing items\n *\n * @default false\n */\n readOnly?: boolean;\n /**\n * Function that determines if the add item button should be enabled given the current items of the collection.\n * The button is always enabled if this props remains undefined\n *\n * @param values The current items of the collection\n */\n allowAdd?: (values: T[]) => boolean;\n /**\n * The label of the add item button\n *\n * @default \"Add item\"\n */\n addLabel?: string;\n /**\n * The tooltip text displayed when hovering over the disabled add item button\n *\n * @default 'There is already an empty item'\n */\n addDisabledTooltip?: string;\n /**\n * The gap between the colleciton items\n *\n * @default 'xs'\n */\n gap?: MantineSpacing;\n /**\n * Whether the collection is required. When required is true, the collection will hide the remove button if there is only one item\n *\n * @default false\n */\n required?: boolean;\n}\n\nexport type CollectionStylesNames = 'root' | 'item' | 'itemDragging' | 'dragHandle';\n\nexport type CollectionFactory = Factory<{\n props: CollectionProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: CollectionStylesNames;\n}>;\n\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n readOnly: false,\n gap: 'xs',\n required: false,\n getItemId: ({id}: any) => id,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n value,\n onChange,\n onRemoveItem,\n onReorderItem,\n onInsertItem,\n disabled,\n readOnly,\n draggable,\n children,\n gap,\n required,\n newItem,\n addLabel,\n addDisabledTooltip,\n allowAdd,\n label,\n labelProps,\n withAsterisk,\n description,\n descriptionProps,\n error,\n errorProps,\n getItemId,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('Collection', defaultProps as CollectionProps<T>, props);\n\n const getStyles = useStyles<CollectionFactory>({\n name: 'Collection',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const canEdit = !disabled && !readOnly;\n const hasOnlyOneItem = value.length === 1;\n\n /**\n * Enforcing onChange when the value is modified will make sure the errors are carried through.\n */\n useDidUpdate(() => {\n onChange?.(value);\n }, [JSON.stringify(value)]);\n\n const isRequired = typeof withAsterisk === 'boolean' ? withAsterisk : required;\n const _label = label ? (\n <Input.Label required={isRequired} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n const _error = error ? <Input.Error {...errorProps}>{error}</Input.Error> : null;\n const _header =\n _label || _description ? (\n <>\n {_label}\n {_description}\n </>\n ) : null;\n\n const standardizedItems = value.map((item, index) => ({id: getItemId?.(item) ?? String(index), data: item}));\n\n const items = standardizedItems.map((item, index) => (\n <CollectionItem\n key={item.id}\n id={item.id}\n disabled={!canEdit}\n draggable={draggable}\n onRemove={() => onRemoveItem?.(index)}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item.data, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(value) ?? true;\n\n const _addButton = canEdit ? (\n <Button.Quaternary\n leftSection={<IconCirclePlus size={16} />}\n onClick={() => onInsertItem(newItem, value?.length ?? 0)}\n disabled={!addAllowed}\n disabledTooltip={addDisabledTooltip}\n >\n {addLabel}\n </Button.Quaternary>\n ) : null;\n\n const getIndex = (id: string) => standardizedItems.findIndex((item) => item.id === id);\n\n const handleDragEnd = ({over, active}: DragEndEvent): void => {\n if (over) {\n const activeIndex = getIndex(String(active.id));\n const overIndex = getIndex(String(over.id));\n if (activeIndex !== overIndex) {\n onReorderItem?.({from: activeIndex, to: overIndex});\n }\n }\n };\n\n return (\n <CollectionProvider value={{getStyles}}>\n <DndContext\n onDragEnd={handleDragEnd}\n sensors={sensors}\n modifiers={[restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext items={standardizedItems} strategy={verticalListSortingStrategy}>\n <Box ref={ref} {...others} {...getStyles('root')}>\n {_header}\n <Stack gap={gap}>\n {items}\n {_addButton}\n {_error}\n </Stack>\n </Box>\n </SortableContext>\n </DndContext>\n </CollectionProvider>\n );\n};\n\nCollection.extend = identity as CustomComponentThemeExtend<CollectionFactory>;\n"],"names":["IconCirclePlus","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToParentElement","restrictToVerticalAxis","SortableContext","sortableKeyboardCoordinates","verticalListSortingStrategy","Box","Input","Stack","useProps","useStyles","useDidUpdate","identity","Button","classes","CollectionProvider","CollectionItem","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","readOnly","gap","required","getItemId","id","Collection","props","value","onChange","onRemoveItem","onReorderItem","onInsertItem","children","newItem","allowAdd","label","labelProps","withAsterisk","description","descriptionProps","error","errorProps","ref","style","className","classNames","styles","unstyled","others","getStyles","name","sensors","coordinateGetter","canEdit","hasOnlyOneItem","length","JSON","stringify","isRequired","_label","Label","_description","Description","_error","Error","_header","standardizedItems","map","item","index","String","data","items","onRemove","removable","addAllowed","_addButton","Quaternary","leftSection","size","onClick","disabledTooltip","getIndex","findIndex","handleDragEnd","over","active","activeIndex","overIndex","from","to","onDragEnd","modifiers","strategy","extend"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/CollectionItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAoB,UAAU,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAI3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,UAAU;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAmED,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAYpF,CAAC"}
1
+ {"version":3,"file":"CollectionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/CollectionItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,UAAU,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAK3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,UAAU;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAmED,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAYpF,CAAC"}
@@ -1,17 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DragAndDropSize24Px, RemoveSize16Px } from '@coveord/plasma-react-icons';
2
+ import { DragAndDropSize24Px, IconCircleMinus } from '@coveord/plasma-react-icons';
3
3
  import { useSortable } from '@dnd-kit/sortable';
4
4
  import { CSS } from '@dnd-kit/utilities';
5
- import { ActionIcon, Group } from '@mantine/core';
5
+ import { Group } from '@mantine/core';
6
+ import { ActionIcon } from '../action-icon';
6
7
  import { useCollectionContext } from './CollectionContext';
7
- const RemoveButton = ({ onClick })=>/*#__PURE__*/ _jsx(ActionIcon, {
8
+ const RemoveButton = ({ onClick })=>/*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
8
9
  style: {
9
10
  alignSelf: 'center'
10
11
  },
11
- variant: "subtle",
12
12
  onClick: onClick,
13
- children: /*#__PURE__*/ _jsx(RemoveSize16Px, {
14
- height: 16
13
+ children: /*#__PURE__*/ _jsx(IconCircleMinus, {
14
+ "aria-label": "Remove",
15
+ size: 20
15
16
  })
16
17
  });
17
18
  const RemoveButtonPlaceholder = ()=>/*#__PURE__*/ _jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/collection/CollectionItem.tsx"],"sourcesContent":["import {DragAndDropSize24Px, RemoveSize16Px} from '@coveord/plasma-react-icons';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {ActionIcon, Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport {useCollectionContext} from './CollectionContext';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends GroupProps {\n id: string;\n onRemove?: React.MouseEventHandler<HTMLButtonElement>;\n removable?: boolean;\n}\n\nconst RemoveButton: FunctionComponent<{\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({onClick}) => (\n <ActionIcon style={{alignSelf: 'center'}} variant=\"subtle\" onClick={onClick}>\n <RemoveSize16Px height={16} />\n </ActionIcon>\n);\n\nconst RemoveButtonPlaceholder = () => <div style={{width: 28}} />;\n\nconst StaticCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group {...ctx.getStyles('item')}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({children}) => {\n const ctx = useCollectionContext();\n return <Group {...ctx.getStyles('item')}>{children}</Group>;\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n id,\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : null;\n const {attributes, listeners, setNodeRef, transform, transition, isDragging, setActivatorNodeRef} = useSortable({\n id,\n });\n\n return (\n <Group\n ref={setNodeRef}\n {...ctx.getStyles('item', {\n style: transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined,\n })}\n data-isdragging={isDragging}\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} {...ctx.getStyles('dragHandle')}>\n <DragAndDropSize24Px height={16} />\n </div>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nexport const CollectionItem: FunctionComponent<PropsWithChildren<CollectionItemProps>> = ({\n draggable,\n disabled,\n ...otherProps\n}) => {\n if (disabled) {\n return <DisabledCollectionItem {...otherProps} />;\n }\n if (draggable) {\n return <DraggableCollectionItem {...otherProps} />;\n }\n return <StaticCollectionItem {...otherProps} />;\n};\n"],"names":["DragAndDropSize24Px","RemoveSize16Px","useSortable","CSS","ActionIcon","Group","useCollectionContext","RemoveButton","onClick","style","alignSelf","variant","height","RemoveButtonPlaceholder","div","width","StaticCollectionItem","onRemove","removable","children","ctx","removeButton","getStyles","DisabledCollectionItem","DraggableCollectionItem","id","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","Transform","toString","undefined","data-isdragging","CollectionItem","draggable","disabled","otherProps"],"mappings":";AAAA,SAAQA,mBAAmB,EAAEC,cAAc,QAAO,8BAA8B;AAChF,SAAQC,WAAW,QAAO,oBAAoB;AAC9C,SAAQC,GAAG,QAAO,qBAAqB;AACvC,SAAQC,UAAU,EAAEC,KAAK,QAAmB,gBAAgB;AAG5D,SAAQC,oBAAoB,QAAO,sBAAsB;AAazD,MAAMC,eAED,CAAC,EAACC,OAAO,EAAC,iBACX,KAACJ;QAAWK,OAAO;YAACC,WAAW;QAAQ;QAAGC,SAAQ;QAASH,SAASA;kBAChE,cAAA,KAACP;YAAeW,QAAQ;;;AAIhC,MAAMC,0BAA0B,kBAAM,KAACC;QAAIL,OAAO;YAACM,OAAO;QAAE;;AAE5D,MAAMC,uBAAwF,CAAC,EAC3FC,QAAQ,EACRC,YAAY,IAAI,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMd;IACZ,MAAMe,eAAeH,aAAaD,yBAAW,KAACV;QAAaC,SAASS;uBAAe,KAACJ;IAEpF,qBACI,MAACR;QAAO,GAAGe,IAAIE,SAAS,CAAC,OAAO;;YAC3BH;YACAE;;;AAGb;AAEA,MAAME,yBAA0F,CAAC,EAACJ,QAAQ,EAAC;IACvG,MAAMC,MAAMd;IACZ,qBAAO,KAACD;QAAO,GAAGe,IAAIE,SAAS,CAAC,OAAO;kBAAGH;;AAC9C;AAEA,MAAMK,0BAA2F,CAAC,EAC9FC,EAAE,EACFR,QAAQ,EACRC,YAAY,IAAI,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMd;IACZ,MAAMe,eAAeH,aAAaD,yBAAW,KAACV;QAAaC,SAASS;SAAe;IACnF,MAAM,EAACS,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,UAAU,EAAEC,mBAAmB,EAAC,GAAG9B,YAAY;QAC5GuB;IACJ;IAEA,qBACI,MAACpB;QACG4B,KAAKL;QACJ,GAAGR,IAAIE,SAAS,CAAC,QAAQ;YACtBb,OAAOoB,YACD;gBACIA,WAAW1B,IAAI+B,SAAS,CAACC,QAAQ,CAACN;gBAClCC;YACJ,IACAM;QACV,EAAE;QACFC,mBAAiBN;;0BAEjB,KAACjB;gBAAImB,KAAKD;gBAAsB,GAAGL,SAAS;gBAAG,GAAGD,UAAU;gBAAG,GAAGN,IAAIE,SAAS,CAAC,aAAa;0BACzF,cAAA,KAACtB;oBAAoBY,QAAQ;;;YAEhCO;YACAE;;;AAGb;AAEA,OAAO,MAAMiB,iBAA4E,CAAC,EACtFC,SAAS,EACTC,QAAQ,EACR,GAAGC,YACN;IACG,IAAID,UAAU;QACV,qBAAO,KAACjB;YAAwB,GAAGkB,UAAU;;IACjD;IACA,IAAIF,WAAW;QACX,qBAAO,KAACf;YAAyB,GAAGiB,UAAU;;IAClD;IACA,qBAAO,KAACzB;QAAsB,GAAGyB,UAAU;;AAC/C,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/collection/CollectionItem.tsx"],"sourcesContent":["import {DragAndDropSize24Px, IconCircleMinus} from '@coveord/plasma-react-icons';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport {ActionIcon} from '../action-icon';\nimport {useCollectionContext} from './CollectionContext';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends GroupProps {\n id: string;\n onRemove?: React.MouseEventHandler<HTMLButtonElement>;\n removable?: boolean;\n}\n\nconst RemoveButton: FunctionComponent<{\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({onClick}) => (\n <ActionIcon.Quaternary style={{alignSelf: 'center'}} onClick={onClick}>\n <IconCircleMinus aria-label=\"Remove\" size={20} />\n </ActionIcon.Quaternary>\n);\n\nconst RemoveButtonPlaceholder = () => <div style={{width: 28}} />;\n\nconst StaticCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group {...ctx.getStyles('item')}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({children}) => {\n const ctx = useCollectionContext();\n return <Group {...ctx.getStyles('item')}>{children}</Group>;\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n id,\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : null;\n const {attributes, listeners, setNodeRef, transform, transition, isDragging, setActivatorNodeRef} = useSortable({\n id,\n });\n\n return (\n <Group\n ref={setNodeRef}\n {...ctx.getStyles('item', {\n style: transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined,\n })}\n data-isdragging={isDragging}\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} {...ctx.getStyles('dragHandle')}>\n <DragAndDropSize24Px height={16} />\n </div>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nexport const CollectionItem: FunctionComponent<PropsWithChildren<CollectionItemProps>> = ({\n draggable,\n disabled,\n ...otherProps\n}) => {\n if (disabled) {\n return <DisabledCollectionItem {...otherProps} />;\n }\n if (draggable) {\n return <DraggableCollectionItem {...otherProps} />;\n }\n return <StaticCollectionItem {...otherProps} />;\n};\n"],"names":["DragAndDropSize24Px","IconCircleMinus","useSortable","CSS","Group","ActionIcon","useCollectionContext","RemoveButton","onClick","Quaternary","style","alignSelf","aria-label","size","RemoveButtonPlaceholder","div","width","StaticCollectionItem","onRemove","removable","children","ctx","removeButton","getStyles","DisabledCollectionItem","DraggableCollectionItem","id","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","Transform","toString","undefined","data-isdragging","height","CollectionItem","draggable","disabled","otherProps"],"mappings":";AAAA,SAAQA,mBAAmB,EAAEC,eAAe,QAAO,8BAA8B;AACjF,SAAQC,WAAW,QAAO,oBAAoB;AAC9C,SAAQC,GAAG,QAAO,qBAAqB;AACvC,SAAQC,KAAK,QAAmB,gBAAgB;AAGhD,SAAQC,UAAU,QAAO,iBAAiB;AAC1C,SAAQC,oBAAoB,QAAO,sBAAsB;AAazD,MAAMC,eAED,CAAC,EAACC,OAAO,EAAC,iBACX,KAACH,WAAWI,UAAU;QAACC,OAAO;YAACC,WAAW;QAAQ;QAAGH,SAASA;kBAC1D,cAAA,KAACP;YAAgBW,cAAW;YAASC,MAAM;;;AAInD,MAAMC,0BAA0B,kBAAM,KAACC;QAAIL,OAAO;YAACM,OAAO;QAAE;;AAE5D,MAAMC,uBAAwF,CAAC,EAC3FC,QAAQ,EACRC,YAAY,IAAI,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMf;IACZ,MAAMgB,eAAeH,aAAaD,yBAAW,KAACX;QAAaC,SAASU;uBAAe,KAACJ;IAEpF,qBACI,MAACV;QAAO,GAAGiB,IAAIE,SAAS,CAAC,OAAO;;YAC3BH;YACAE;;;AAGb;AAEA,MAAME,yBAA0F,CAAC,EAACJ,QAAQ,EAAC;IACvG,MAAMC,MAAMf;IACZ,qBAAO,KAACF;QAAO,GAAGiB,IAAIE,SAAS,CAAC,OAAO;kBAAGH;;AAC9C;AAEA,MAAMK,0BAA2F,CAAC,EAC9FC,EAAE,EACFR,QAAQ,EACRC,YAAY,IAAI,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMf;IACZ,MAAMgB,eAAeH,aAAaD,yBAAW,KAACX;QAAaC,SAASU;SAAe;IACnF,MAAM,EAACS,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,UAAU,EAAEC,mBAAmB,EAAC,GAAG/B,YAAY;QAC5GwB;IACJ;IAEA,qBACI,MAACtB;QACG8B,KAAKL;QACJ,GAAGR,IAAIE,SAAS,CAAC,QAAQ;YACtBb,OAAOoB,YACD;gBACIA,WAAW3B,IAAIgC,SAAS,CAACC,QAAQ,CAACN;gBAClCC;YACJ,IACAM;QACV,EAAE;QACFC,mBAAiBN;;0BAEjB,KAACjB;gBAAImB,KAAKD;gBAAsB,GAAGL,SAAS;gBAAG,GAAGD,UAAU;gBAAG,GAAGN,IAAIE,SAAS,CAAC,aAAa;0BACzF,cAAA,KAACvB;oBAAoBuC,QAAQ;;;YAEhCnB;YACAE;;;AAGb;AAEA,OAAO,MAAMkB,iBAA4E,CAAC,EACtFC,SAAS,EACTC,QAAQ,EACR,GAAGC,YACN;IACG,IAAID,UAAU;QACV,qBAAO,KAAClB;YAAwB,GAAGmB,UAAU;;IACjD;IACA,IAAIF,WAAW;QACX,qBAAO,KAAChB;YAAyB,GAAGkB,UAAU;;IAClD;IACA,qBAAO,KAAC1B;QAAsB,GAAG0B,UAAU;;AAC/C,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"CopyToClipboard.d.ts","sourceRoot":"","sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAc,YAAY,EAAqB,MAAM,eAAe,CAAC;AACxG,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAE3D,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC9C;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA8BD,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,CAU/D,CAAC"}
1
+ {"version":3,"file":"CopyToClipboard.d.ts","sourceRoot":"","sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAc,YAAY,EAAqB,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC9C;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA6BD,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,CAU/D,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { IconClipboardCheck, IconClipboardText } from '@coveord/plasma-react-icons';
3
- import { ActionIcon, CopyButton, TextInput, Tooltip } from '@mantine/core';
3
+ import { CopyButton, TextInput, Tooltip } from '@mantine/core';
4
+ import { ActionIcon } from '../action-icon';
4
5
  const CopyToClipboardButton = ({ value, onCopy, color, tooltipLabelCopy = 'Copy to clipboard', tooltipLabelCopied = 'Copied', ...others })=>/*#__PURE__*/ _jsx(CopyButton, {
5
6
  value: value,
6
7
  timeout: 2000,
7
8
  children: ({ copied, copy })=>/*#__PURE__*/ _jsx(Tooltip, {
8
9
  label: copied ? tooltipLabelCopied : tooltipLabelCopy,
9
- children: /*#__PURE__*/ _jsx(ActionIcon, {
10
+ children: /*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
10
11
  "aria-label": tooltipLabelCopy,
11
- variant: "subtle",
12
12
  color: copied ? 'success' : color,
13
13
  onClick: (clickEvent)=>{
14
14
  copy();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"sourcesContent":["import {IconClipboardCheck, IconClipboardText} from '@coveord/plasma-react-icons';\nimport {ActionIcon, ActionIconProps, CopyButton, MantineColor, TextInput, Tooltip} from '@mantine/core';\nimport {FunctionComponent, MouseEventHandler} from 'react';\n\nexport interface CopyToClipboardProps extends ActionIconProps {\n /**\n * The value to be copied to the clipboard.\n */\n value: string;\n /**\n * Whether to display the string to be copied alongside the button.\n *\n * @default false\n */\n withLabel?: boolean;\n /**\n * Called each time the value is copied to the clipboard\n */\n onCopy?: MouseEventHandler<HTMLButtonElement>;\n /**\n * The color of the icon when idle\n *\n * @default 'gray'\n */\n color?: MantineColor | (string & {});\n /**\n * The text displayed when hovering over the button\n *\n * @default 'Copy to clipboard'\n */\n tooltipLabelCopy?: string;\n /**\n * The text displayed when the value is copied to the clipboard\n *\n * @default 'Copied'\n */\n tooltipLabelCopied?: string;\n}\n\nconst CopyToClipboardButton: FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({\n value,\n onCopy,\n color,\n tooltipLabelCopy = 'Copy to clipboard',\n tooltipLabelCopied = 'Copied',\n ...others\n}) => (\n <CopyButton value={value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? tooltipLabelCopied : tooltipLabelCopy}>\n <ActionIcon\n aria-label={tooltipLabelCopy}\n variant=\"subtle\"\n color={copied ? 'success' : color}\n onClick={(clickEvent) => {\n copy();\n onCopy?.(clickEvent);\n }}\n {...others}\n >\n {copied ? <IconClipboardCheck size={20} /> : <IconClipboardText size={20} />}\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n);\n\nexport const CopyToClipboard: FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) =>\n withLabel ? (\n <TextInput\n value={others.value}\n readOnly\n autoComplete=\"off\"\n rightSection={<CopyToClipboardButton {...others} />}\n />\n ) : (\n <CopyToClipboardButton {...others} />\n );\n"],"names":["IconClipboardCheck","IconClipboardText","ActionIcon","CopyButton","TextInput","Tooltip","CopyToClipboardButton","value","onCopy","color","tooltipLabelCopy","tooltipLabelCopied","others","timeout","copied","copy","label","aria-label","variant","onClick","clickEvent","size","CopyToClipboard","withLabel","readOnly","autoComplete","rightSection"],"mappings":";AAAA,SAAQA,kBAAkB,EAAEC,iBAAiB,QAAO,8BAA8B;AAClF,SAAQC,UAAU,EAAmBC,UAAU,EAAgBC,SAAS,EAAEC,OAAO,QAAO,gBAAgB;AAsCxG,MAAMC,wBAAoF,CAAC,EACvFC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,mBAAmB,mBAAmB,EACtCC,qBAAqB,QAAQ,EAC7B,GAAGC,QACN,iBACG,KAACT;QAAWI,OAAOA;QAAOM,SAAS;kBAC9B,CAAC,EAACC,MAAM,EAAEC,IAAI,EAAC,iBACZ,KAACV;gBAAQW,OAAOF,SAASH,qBAAqBD;0BAC1C,cAAA,KAACR;oBACGe,cAAYP;oBACZQ,SAAQ;oBACRT,OAAOK,SAAS,YAAYL;oBAC5BU,SAAS,CAACC;wBACNL;wBACAP,SAASY;oBACb;oBACC,GAAGR,MAAM;8BAETE,uBAAS,KAACd;wBAAmBqB,MAAM;uCAAS,KAACpB;wBAAkBoB,MAAM;;;;;AAO1F,OAAO,MAAMC,kBAA2D,CAAC,EAACC,SAAS,EAAE,GAAGX,QAAO,GAC3FW,0BACI,KAACnB;QACGG,OAAOK,OAAOL,KAAK;QACnBiB,QAAQ;QACRC,cAAa;QACbC,4BAAc,KAACpB;YAAuB,GAAGM,MAAM;;uBAGnD,KAACN;QAAuB,GAAGM,MAAM;OACnC"}
1
+ {"version":3,"sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"sourcesContent":["import {IconClipboardCheck, IconClipboardText} from '@coveord/plasma-react-icons';\nimport {ActionIconProps, CopyButton, MantineColor, TextInput, Tooltip} from '@mantine/core';\nimport {FunctionComponent, MouseEventHandler} from 'react';\nimport {ActionIcon} from '../action-icon';\n\nexport interface CopyToClipboardProps extends ActionIconProps {\n /**\n * The value to be copied to the clipboard.\n */\n value: string;\n /**\n * Whether to display the string to be copied alongside the button.\n *\n * @default false\n */\n withLabel?: boolean;\n /**\n * Called each time the value is copied to the clipboard\n */\n onCopy?: MouseEventHandler<HTMLButtonElement>;\n /**\n * The color of the icon when idle\n *\n * @default 'gray'\n */\n color?: MantineColor | (string & {});\n /**\n * The text displayed when hovering over the button\n *\n * @default 'Copy to clipboard'\n */\n tooltipLabelCopy?: string;\n /**\n * The text displayed when the value is copied to the clipboard\n *\n * @default 'Copied'\n */\n tooltipLabelCopied?: string;\n}\n\nconst CopyToClipboardButton: FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({\n value,\n onCopy,\n color,\n tooltipLabelCopy = 'Copy to clipboard',\n tooltipLabelCopied = 'Copied',\n ...others\n}) => (\n <CopyButton value={value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? tooltipLabelCopied : tooltipLabelCopy}>\n <ActionIcon.Quaternary\n aria-label={tooltipLabelCopy}\n color={copied ? 'success' : color}\n onClick={(clickEvent) => {\n copy();\n onCopy?.(clickEvent);\n }}\n {...others}\n >\n {copied ? <IconClipboardCheck size={20} /> : <IconClipboardText size={20} />}\n </ActionIcon.Quaternary>\n </Tooltip>\n )}\n </CopyButton>\n);\n\nexport const CopyToClipboard: FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) =>\n withLabel ? (\n <TextInput\n value={others.value}\n readOnly\n autoComplete=\"off\"\n rightSection={<CopyToClipboardButton {...others} />}\n />\n ) : (\n <CopyToClipboardButton {...others} />\n );\n"],"names":["IconClipboardCheck","IconClipboardText","CopyButton","TextInput","Tooltip","ActionIcon","CopyToClipboardButton","value","onCopy","color","tooltipLabelCopy","tooltipLabelCopied","others","timeout","copied","copy","label","Quaternary","aria-label","onClick","clickEvent","size","CopyToClipboard","withLabel","readOnly","autoComplete","rightSection"],"mappings":";AAAA,SAAQA,kBAAkB,EAAEC,iBAAiB,QAAO,8BAA8B;AAClF,SAAyBC,UAAU,EAAgBC,SAAS,EAAEC,OAAO,QAAO,gBAAgB;AAE5F,SAAQC,UAAU,QAAO,iBAAiB;AAqC1C,MAAMC,wBAAoF,CAAC,EACvFC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,mBAAmB,mBAAmB,EACtCC,qBAAqB,QAAQ,EAC7B,GAAGC,QACN,iBACG,KAACV;QAAWK,OAAOA;QAAOM,SAAS;kBAC9B,CAAC,EAACC,MAAM,EAAEC,IAAI,EAAC,iBACZ,KAACX;gBAAQY,OAAOF,SAASH,qBAAqBD;0BAC1C,cAAA,KAACL,WAAWY,UAAU;oBAClBC,cAAYR;oBACZD,OAAOK,SAAS,YAAYL;oBAC5BU,SAAS,CAACC;wBACNL;wBACAP,SAASY;oBACb;oBACC,GAAGR,MAAM;8BAETE,uBAAS,KAACd;wBAAmBqB,MAAM;uCAAS,KAACpB;wBAAkBoB,MAAM;;;;;AAO1F,OAAO,MAAMC,kBAA2D,CAAC,EAACC,SAAS,EAAE,GAAGX,QAAO,GAC3FW,0BACI,KAACpB;QACGI,OAAOK,OAAOL,KAAK;QACnBiB,QAAQ;QACRC,cAAa;QACbC,4BAAc,KAACpB;YAAuB,GAAGM,MAAM;;uBAGnD,KAACN;QAAuB,GAAGM,MAAM;OACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableActionsList.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-actions/TableActionsList.tsx"],"names":[],"mappings":"AACA,OAAO,EAGH,sBAAsB,EAEtB,eAAe,EACf,OAAO,EAEP,SAAS,EAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoB,SAAS,EAAW,MAAM,OAAO,CAAC;AAG7D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,MAAM,MAAM,2BAA2B,GACjC,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,CAAC;AAE1B,MAAM,WAAW,qBACb,SAAQ,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,EACjE,sBAAsB,CAAC,uBAAuB,CAAC;IACnD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,KAAK,uBAAuB,GAAG,OAAO,CAAC;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,2BAA2B,CAAC;IACzC,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC;CACjC,CAAC,CAAC;AAmBH,eAAO,MAAM,gBAAgB;YAAW,qBAAqB;kBAwI3B,eAAe,CAAC,uBAAuB,CAAC;eAhK/D,qBAAqB;aACvB,cAAc;qBACN,2BAA2B;kBAC9B,IAAI;iBACL,OAAO,GAAG,UAAU;;CAqIhC,CAAC"}
1
+ {"version":3,"file":"TableActionsList.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-actions/TableActionsList.tsx"],"names":[],"mappings":"AACA,OAAO,EAEH,sBAAsB,EAEtB,eAAe,EACf,OAAO,EAEP,SAAS,EAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoB,SAAS,EAAW,MAAM,OAAO,CAAC;AAI7D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,MAAM,MAAM,2BAA2B,GACjC,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,CAAC;AAE1B,MAAM,WAAW,qBACb,SAAQ,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,EACjE,sBAAsB,CAAC,uBAAuB,CAAC;IACnD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,KAAK,uBAAuB,GAAG,OAAO,CAAC;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,2BAA2B,CAAC;IACzC,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC;CACjC,CAAC,CAAC;AAmBH,eAAO,MAAM,gBAAgB;YAAW,qBAAqB;kBAuI3B,eAAe,CAAC,uBAAuB,CAAC;eA/J/D,qBAAqB;aACvB,cAAc;qBACN,2BAA2B;kBAC9B,IAAI;iBACL,OAAO,GAAG,UAAU;;CAoIhC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { MoreSize16Px } from '@coveord/plasma-react-icons';
3
- import { ActionIcon, Box, Menu, Tooltip, useProps } from '@mantine/core';
3
+ import { Box, Menu, Tooltip, useProps } from '@mantine/core';
4
4
  import { useState } from 'react';
5
+ import { ActionIcon } from '../../action-icon';
5
6
  import { Button } from '../../button';
6
7
  import { InlineConfirm } from '../../inline-confirm';
7
8
  import { useTableContext } from '../TableContext';
@@ -119,13 +120,12 @@ export const TableActionsList = (props)=>{
119
120
  styles,
120
121
  classNames
121
122
  }),
122
- children: /*#__PURE__*/ _jsx(ActionIcon, {
123
+ children: /*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
123
124
  ...getStyles('actionsTarget', {
124
125
  styles,
125
126
  classNames
126
127
  }),
127
128
  onClick: onClick,
128
- variant: "subtle",
129
129
  children: icon
130
130
  })
131
131
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/table-actions/TableActionsList.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {\n ActionIcon,\n Box,\n CompoundStylesApiProps,\n CSSProperties,\n ExtendComponent,\n Factory,\n Menu,\n MenuProps,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {MouseEventHandler, ReactNode, useState} from 'react';\nimport {Button} from '../../button';\nimport {InlineConfirm} from '../../inline-confirm';\nimport {TableAction} from '../Table.types';\nimport {useTableContext} from '../TableContext';\nimport {TableActionProvider} from './TableActionContext';\n\nexport type TableActionsListStylesNames =\n | 'actionsTarget'\n | 'actionsDropdown'\n | 'actionsTooltip'\n | 'actionsGroup'\n | 'actionsGroupLabel'\n | 'actionsGroupDivider'\n | 'actionsGroupItems';\n\nexport interface TableActionsListProps\n extends Omit<MenuProps, 'classNames' | 'styles' | 'vars' | 'variant'>,\n CompoundStylesApiProps<TableActionsListFactory> {\n actions: TableAction[];\n /**\n * Label for the more menu\n * @default 'More' when variant is 'split', 'Actions' when variant is 'combined'\n */\n label?: string;\n /**\n * Label for the primary actions group when variant is 'combined'\n * @default ''\n */\n primaryGroupLabel?: string;\n icon?: ReactNode;\n}\n\ntype TableActionsListFactory = Factory<{\n props: TableActionsListProps;\n ref: HTMLDivElement;\n stylesNames: TableActionsListStylesNames;\n compound: true;\n variant: 'split' | 'combined';\n}>;\n\nconst defaultProps: Partial<TableActionsListProps> = {\n label: 'More',\n primaryGroupLabel: '',\n icon: <MoreSize16Px height={16} />,\n};\n\ninterface ActionsDict {\n $$primary: TableAction[];\n $$confirmPrompt: TableAction[];\n secondary: Record<string, Array<TableAction['component']>>;\n}\n\ninterface ActionGroup {\n name: string;\n actions: ReactNode[];\n}\n\nexport const TableActionsList = (props: TableActionsListProps) => {\n const {getStyles} = useTableContext();\n const {\n actions,\n icon,\n label,\n primaryGroupLabel,\n classNames,\n styles,\n vars: _vars,\n variant,\n ...others\n } = useProps('PlasmaTableActionsListColumn', defaultProps, props);\n const [opened, setOpened] = useState(false);\n\n const onClick: MouseEventHandler = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setOpened((prevState) => !prevState);\n };\n const onChange = (newOpened: boolean) => {\n if (!newOpened) {\n setOpened(false);\n }\n };\n\n const actionsGroups: ActionsDict = actions.reduce<ActionsDict>(\n (acc, action) => {\n if (action.group === '$$primary') {\n acc.$$primary.push(action);\n } else if (action.group === '$$confirmPrompt') {\n acc.$$confirmPrompt.push(action);\n } else {\n if (acc.secondary[action.group]) {\n acc.secondary[action.group].push(action.component);\n } else {\n acc.secondary[action.group] = [action.component];\n }\n }\n return acc;\n },\n {$$primary: [], $$confirmPrompt: [], secondary: {}},\n );\n\n const primaryActions = actionsGroups.$$primary.map((action) => action.component);\n const confirmPrompts = actionsGroups.$$confirmPrompt.map((confirmPromptAction) => confirmPromptAction.component);\n const secondaryActionGroups = Object.entries(actionsGroups.secondary).map(\n ([group, groupActions]): ActionGroup => ({\n name: group,\n actions: groupActions,\n }),\n );\n\n if (variant === 'split') {\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: true}}>{primaryActions}</TableActionProvider>\n {secondaryActionGroups.length > 0 ? (\n <TableActionProvider value={{primary: false}}>\n <Menu withinPortal={false} {...others} keepMounted>\n <Menu.Target>\n <Button.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n leftSection={icon}\n >\n {label}\n </Button.Quaternary>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={secondaryActionGroups}\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n ) : null}\n </InlineConfirm>\n );\n }\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: false}}>\n <Menu opened={opened} onChange={onChange} {...others} keepMounted>\n <Menu.Target>\n <Tooltip label={label} {...getStyles('actionsTooltip', {styles, classNames})}>\n <ActionIcon\n {...getStyles('actionsTarget', {styles, classNames})}\n onClick={onClick}\n variant=\"subtle\"\n >\n {icon}\n </ActionIcon>\n </Tooltip>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={\n primaryActions.length > 0\n ? [{name: primaryGroupLabel, actions: primaryActions}, ...secondaryActionGroups]\n : secondaryActionGroups\n }\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n </InlineConfirm>\n );\n};\n\ninterface ActionsGroupsMenuItemsProps {\n styles: Partial<Record<TableActionsListStylesNames, CSSProperties>>;\n classNames: Partial<Record<TableActionsListStylesNames, string>>;\n actionGroups: ActionGroup[];\n}\n\nconst ActionsGroupsMenuItems = ({styles, classNames, actionGroups}: ActionsGroupsMenuItemsProps) => {\n const {getStyles} = useTableContext();\n return actionGroups.map(({name, actions}, index) => (\n <Box key={name} {...getStyles('actionsGroup', {styles, classNames})}>\n {actionGroups.length > 1 ? (\n <Menu.Label {...getStyles('actionsGroupLabel', {styles, classNames})}>{name}</Menu.Label>\n ) : null}\n <Box {...getStyles('actionsGroupItems', {styles, classNames})}>{actions}</Box>\n {index < actionGroups.length - 1 ? (\n <Menu.Divider {...getStyles('actionsGroupDivider', {styles, classNames})} />\n ) : null}\n </Box>\n ));\n};\n\nTableActionsList.extend = (input: ExtendComponent<TableActionsListFactory>) => input;\n"],"names":["MoreSize16Px","ActionIcon","Box","Menu","Tooltip","useProps","useState","Button","InlineConfirm","useTableContext","TableActionProvider","defaultProps","label","primaryGroupLabel","icon","height","TableActionsList","props","getStyles","actions","classNames","styles","vars","_vars","variant","others","opened","setOpened","onClick","e","preventDefault","stopPropagation","prevState","onChange","newOpened","actionsGroups","reduce","acc","action","group","$$primary","push","$$confirmPrompt","secondary","component","primaryActions","map","confirmPrompts","confirmPromptAction","secondaryActionGroups","Object","entries","groupActions","name","value","primary","length","withinPortal","keepMounted","Target","Quaternary","leftSection","Dropdown","ActionsGroupsMenuItems","actionGroups","index","Label","Divider","extend","input"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/table/table-actions/TableActionsList.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n CompoundStylesApiProps,\n CSSProperties,\n ExtendComponent,\n Factory,\n Menu,\n MenuProps,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {MouseEventHandler, ReactNode, useState} from 'react';\nimport {ActionIcon} from '../../action-icon';\nimport {Button} from '../../button';\nimport {InlineConfirm} from '../../inline-confirm';\nimport {TableAction} from '../Table.types';\nimport {useTableContext} from '../TableContext';\nimport {TableActionProvider} from './TableActionContext';\n\nexport type TableActionsListStylesNames =\n | 'actionsTarget'\n | 'actionsDropdown'\n | 'actionsTooltip'\n | 'actionsGroup'\n | 'actionsGroupLabel'\n | 'actionsGroupDivider'\n | 'actionsGroupItems';\n\nexport interface TableActionsListProps\n extends Omit<MenuProps, 'classNames' | 'styles' | 'vars' | 'variant'>,\n CompoundStylesApiProps<TableActionsListFactory> {\n actions: TableAction[];\n /**\n * Label for the more menu\n * @default 'More' when variant is 'split', 'Actions' when variant is 'combined'\n */\n label?: string;\n /**\n * Label for the primary actions group when variant is 'combined'\n * @default ''\n */\n primaryGroupLabel?: string;\n icon?: ReactNode;\n}\n\ntype TableActionsListFactory = Factory<{\n props: TableActionsListProps;\n ref: HTMLDivElement;\n stylesNames: TableActionsListStylesNames;\n compound: true;\n variant: 'split' | 'combined';\n}>;\n\nconst defaultProps: Partial<TableActionsListProps> = {\n label: 'More',\n primaryGroupLabel: '',\n icon: <MoreSize16Px height={16} />,\n};\n\ninterface ActionsDict {\n $$primary: TableAction[];\n $$confirmPrompt: TableAction[];\n secondary: Record<string, Array<TableAction['component']>>;\n}\n\ninterface ActionGroup {\n name: string;\n actions: ReactNode[];\n}\n\nexport const TableActionsList = (props: TableActionsListProps) => {\n const {getStyles} = useTableContext();\n const {\n actions,\n icon,\n label,\n primaryGroupLabel,\n classNames,\n styles,\n vars: _vars,\n variant,\n ...others\n } = useProps('PlasmaTableActionsListColumn', defaultProps, props);\n const [opened, setOpened] = useState(false);\n\n const onClick: MouseEventHandler = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setOpened((prevState) => !prevState);\n };\n const onChange = (newOpened: boolean) => {\n if (!newOpened) {\n setOpened(false);\n }\n };\n\n const actionsGroups: ActionsDict = actions.reduce<ActionsDict>(\n (acc, action) => {\n if (action.group === '$$primary') {\n acc.$$primary.push(action);\n } else if (action.group === '$$confirmPrompt') {\n acc.$$confirmPrompt.push(action);\n } else {\n if (acc.secondary[action.group]) {\n acc.secondary[action.group].push(action.component);\n } else {\n acc.secondary[action.group] = [action.component];\n }\n }\n return acc;\n },\n {$$primary: [], $$confirmPrompt: [], secondary: {}},\n );\n\n const primaryActions = actionsGroups.$$primary.map((action) => action.component);\n const confirmPrompts = actionsGroups.$$confirmPrompt.map((confirmPromptAction) => confirmPromptAction.component);\n const secondaryActionGroups = Object.entries(actionsGroups.secondary).map(\n ([group, groupActions]): ActionGroup => ({\n name: group,\n actions: groupActions,\n }),\n );\n\n if (variant === 'split') {\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: true}}>{primaryActions}</TableActionProvider>\n {secondaryActionGroups.length > 0 ? (\n <TableActionProvider value={{primary: false}}>\n <Menu withinPortal={false} {...others} keepMounted>\n <Menu.Target>\n <Button.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n leftSection={icon}\n >\n {label}\n </Button.Quaternary>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={secondaryActionGroups}\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n ) : null}\n </InlineConfirm>\n );\n }\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: false}}>\n <Menu opened={opened} onChange={onChange} {...others} keepMounted>\n <Menu.Target>\n <Tooltip label={label} {...getStyles('actionsTooltip', {styles, classNames})}>\n <ActionIcon.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n onClick={onClick}\n >\n {icon}\n </ActionIcon.Quaternary>\n </Tooltip>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={\n primaryActions.length > 0\n ? [{name: primaryGroupLabel, actions: primaryActions}, ...secondaryActionGroups]\n : secondaryActionGroups\n }\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n </InlineConfirm>\n );\n};\n\ninterface ActionsGroupsMenuItemsProps {\n styles: Partial<Record<TableActionsListStylesNames, CSSProperties>>;\n classNames: Partial<Record<TableActionsListStylesNames, string>>;\n actionGroups: ActionGroup[];\n}\n\nconst ActionsGroupsMenuItems = ({styles, classNames, actionGroups}: ActionsGroupsMenuItemsProps) => {\n const {getStyles} = useTableContext();\n return actionGroups.map(({name, actions}, index) => (\n <Box key={name} {...getStyles('actionsGroup', {styles, classNames})}>\n {actionGroups.length > 1 ? (\n <Menu.Label {...getStyles('actionsGroupLabel', {styles, classNames})}>{name}</Menu.Label>\n ) : null}\n <Box {...getStyles('actionsGroupItems', {styles, classNames})}>{actions}</Box>\n {index < actionGroups.length - 1 ? (\n <Menu.Divider {...getStyles('actionsGroupDivider', {styles, classNames})} />\n ) : null}\n </Box>\n ));\n};\n\nTableActionsList.extend = (input: ExtendComponent<TableActionsListFactory>) => input;\n"],"names":["MoreSize16Px","Box","Menu","Tooltip","useProps","useState","ActionIcon","Button","InlineConfirm","useTableContext","TableActionProvider","defaultProps","label","primaryGroupLabel","icon","height","TableActionsList","props","getStyles","actions","classNames","styles","vars","_vars","variant","others","opened","setOpened","onClick","e","preventDefault","stopPropagation","prevState","onChange","newOpened","actionsGroups","reduce","acc","action","group","$$primary","push","$$confirmPrompt","secondary","component","primaryActions","map","confirmPrompts","confirmPromptAction","secondaryActionGroups","Object","entries","groupActions","name","value","primary","length","withinPortal","keepMounted","Target","Quaternary","leftSection","Dropdown","ActionsGroupsMenuItems","actionGroups","index","Label","Divider","extend","input"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ArrowHeadDownSize16Px, ArrowHeadUpSize16Px } from '@coveord/plasma-react-icons';
2
+ import { IconChevronDown, IconChevronUp } from '@coveord/plasma-react-icons';
3
3
  import { factory, useProps } from '@mantine/core';
4
4
  import { ActionIcon } from '../../action-icon';
5
5
  import { useTableContext } from '../TableContext';
@@ -39,11 +39,13 @@ const sharedProps = {
39
39
  }
40
40
  };
41
41
  const defaultProps = {
42
- iconExpanded: /*#__PURE__*/ _jsx(ArrowHeadUpSize16Px, {
43
- height: 16
42
+ iconExpanded: /*#__PURE__*/ _jsx(IconChevronUp, {
43
+ "aria-label": "Collapse",
44
+ size: 20
44
45
  }),
45
- iconCollapsed: /*#__PURE__*/ _jsx(ArrowHeadDownSize16Px, {
46
- height: 16
46
+ iconCollapsed: /*#__PURE__*/ _jsx(IconChevronDown, {
47
+ "aria-label": "Expand",
48
+ size: 20
47
49
  })
48
50
  };
49
51
  const CollapsibleIcon = factory((props, ref)=>{
@@ -55,10 +57,9 @@ const CollapsibleIcon = factory((props, ref)=>{
55
57
  onToggle?.(e);
56
58
  handler();
57
59
  };
58
- return info.row.getCanExpand() ? /*#__PURE__*/ _jsx(ActionIcon, {
60
+ return info.row.getCanExpand() ? /*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
59
61
  ref: ref,
60
62
  onClick: onClick,
61
- variant: "subtle",
62
63
  color: "gray",
63
64
  radius: "sm",
64
65
  ...getStyles('collapsibleIcon', {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/table-column/TableCollapsibleColumn.tsx"],"sourcesContent":["import {ArrowHeadDownSize16Px, ArrowHeadUpSize16Px} from '@coveord/plasma-react-icons';\nimport {Factory, factory, useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {MouseEvent as ReactMouseEvent, ReactNode} from 'react';\nimport {ActionIcon, ActionIconProps} from '../../action-icon';\nimport {useTableContext} from '../TableContext';\n\nexport type TableCollapsibleColumnStylesNames = 'collapsibleIcon';\n\nconst sharedProps: ColumnDef<unknown> = {\n id: 'collapsible',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n};\n\n/**\n * Generic column to use when your table needs collapsible rows\n */\nexport const TableCollapsibleColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => <CollapsibleIcon info={info} />,\n};\n\n/**\n * Generic column to use when your table needs an accordion (collapsible rows, but only one open at the time)\n */\nexport const TableAccordionColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => {\n const onToggle = () => {\n // close all other rows when the current row not is expanded\n if (!info.row.getIsExpanded()) {\n info.table.toggleAllRowsExpanded(false);\n }\n };\n\n return <CollapsibleIcon onToggle={onToggle} info={info} />;\n },\n};\n\ninterface CollapsibleIconProps extends ActionIconProps {\n info: CellContext<unknown, unknown>;\n onToggle?: (e: ReactMouseEvent<HTMLButtonElement>) => void;\n iconExpanded?: ReactNode;\n iconCollapsed?: ReactNode;\n}\n\ntype TableCollapsibleColumnFactory = Factory<{\n props: CollapsibleIconProps;\n ref: HTMLButtonElement;\n stylesNames: TableCollapsibleColumnStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CollapsibleIconProps> = {\n iconExpanded: <ArrowHeadUpSize16Px height={16} />,\n iconCollapsed: <ArrowHeadDownSize16Px height={16} />,\n};\n\nconst CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(\n 'PlasmaTableCollapsibleColumn',\n defaultProps,\n props,\n );\n const handler = info.row.getToggleExpandedHandler();\n const onClick = (e: ReactMouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onToggle?.(e);\n handler();\n };\n return info.row.getCanExpand() ? (\n <ActionIcon\n ref={ref}\n onClick={onClick}\n variant=\"subtle\"\n color=\"gray\"\n radius=\"sm\"\n {...getStyles('collapsibleIcon', {className, classNames, styles, style})}\n {...others}\n >\n {info.row.getIsExpanded() ? iconExpanded : iconCollapsed}\n </ActionIcon>\n ) : null;\n});\n"],"names":["ArrowHeadDownSize16Px","ArrowHeadUpSize16Px","factory","useProps","ActionIcon","useTableContext","sharedProps","id","enableSorting","enableHiding","meta","controlColumn","header","size","TableCollapsibleColumn","cell","info","CollapsibleIcon","TableAccordionColumn","onToggle","row","getIsExpanded","table","toggleAllRowsExpanded","defaultProps","iconExpanded","height","iconCollapsed","props","ref","getStyles","classNames","className","style","styles","others","handler","getToggleExpandedHandler","onClick","e","stopPropagation","getCanExpand","variant","color","radius"],"mappings":";AAAA,SAAQA,qBAAqB,EAAEC,mBAAmB,QAAO,8BAA8B;AACvF,SAAiBC,OAAO,EAAEC,QAAQ,QAAO,gBAAgB;AAGzD,SAAQC,UAAU,QAAwB,oBAAoB;AAC9D,SAAQC,eAAe,QAAO,kBAAkB;AAIhD,MAAMC,cAAkC;IACpCC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;IACRC,MAAM;AACV;AAEA;;CAEC,GACD,OAAO,MAAMC,yBAA6C;IACtD,GAAGR,WAAW;IACdS,MAAM,CAACC,qBAAS,KAACC;YAAgBD,MAAMA;;AAC3C,EAAE;AAEF;;CAEC,GACD,OAAO,MAAME,uBAA2C;IACpD,GAAGZ,WAAW;IACdS,MAAM,CAACC;QACH,MAAMG,WAAW;YACb,4DAA4D;YAC5D,IAAI,CAACH,KAAKI,GAAG,CAACC,aAAa,IAAI;gBAC3BL,KAAKM,KAAK,CAACC,qBAAqB,CAAC;YACrC;QACJ;QAEA,qBAAO,KAACN;YAAgBE,UAAUA;YAAUH,MAAMA;;IACtD;AACJ,EAAE;AAgBF,MAAMQ,eAA8C;IAChDC,4BAAc,KAACxB;QAAoByB,QAAQ;;IAC3CC,6BAAe,KAAC3B;QAAsB0B,QAAQ;;AAClD;AAEA,MAAMT,kBAAkBf,QAAuC,CAAC0B,OAAOC;IACnE,MAAM,EAACC,SAAS,EAAC,GAAGzB;IACpB,MAAM,EAACW,IAAI,EAAEG,QAAQ,EAAEM,YAAY,EAAEE,aAAa,EAAEI,UAAU,EAAEC,SAAS,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,QAAO,GAAGhC,SACnG,gCACAqB,cACAI;IAEJ,MAAMQ,UAAUpB,KAAKI,GAAG,CAACiB,wBAAwB;IACjD,MAAMC,UAAU,CAACC;QACbA,EAAEC,eAAe;QACjBrB,WAAWoB;QACXH;IACJ;IACA,OAAOpB,KAAKI,GAAG,CAACqB,YAAY,mBACxB,KAACrC;QACGyB,KAAKA;QACLS,SAASA;QACTI,SAAQ;QACRC,OAAM;QACNC,QAAO;QACN,GAAGd,UAAU,mBAAmB;YAACE;YAAWD;YAAYG;YAAQD;QAAK,EAAE;QACvE,GAAGE,MAAM;kBAETnB,KAAKI,GAAG,CAACC,aAAa,KAAKI,eAAeE;SAE/C;AACR"}
1
+ {"version":3,"sources":["../../../../../src/components/table/table-column/TableCollapsibleColumn.tsx"],"sourcesContent":["import {IconChevronDown, IconChevronUp} from '@coveord/plasma-react-icons';\nimport {Factory, factory, useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {MouseEvent as ReactMouseEvent, ReactNode} from 'react';\nimport {ActionIcon, ActionIconProps} from '../../action-icon';\nimport {useTableContext} from '../TableContext';\n\nexport type TableCollapsibleColumnStylesNames = 'collapsibleIcon';\n\nconst sharedProps: ColumnDef<unknown> = {\n id: 'collapsible',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n};\n\n/**\n * Generic column to use when your table needs collapsible rows\n */\nexport const TableCollapsibleColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => <CollapsibleIcon info={info} />,\n};\n\n/**\n * Generic column to use when your table needs an accordion (collapsible rows, but only one open at the time)\n */\nexport const TableAccordionColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => {\n const onToggle = () => {\n // close all other rows when the current row not is expanded\n if (!info.row.getIsExpanded()) {\n info.table.toggleAllRowsExpanded(false);\n }\n };\n\n return <CollapsibleIcon onToggle={onToggle} info={info} />;\n },\n};\n\ninterface CollapsibleIconProps extends ActionIconProps {\n info: CellContext<unknown, unknown>;\n onToggle?: (e: ReactMouseEvent<HTMLButtonElement>) => void;\n iconExpanded?: ReactNode;\n iconCollapsed?: ReactNode;\n}\n\ntype TableCollapsibleColumnFactory = Factory<{\n props: CollapsibleIconProps;\n ref: HTMLButtonElement;\n stylesNames: TableCollapsibleColumnStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CollapsibleIconProps> = {\n iconExpanded: <IconChevronUp aria-label=\"Collapse\" size={20} />,\n iconCollapsed: <IconChevronDown aria-label=\"Expand\" size={20} />,\n};\n\nconst CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(\n 'PlasmaTableCollapsibleColumn',\n defaultProps,\n props,\n );\n const handler = info.row.getToggleExpandedHandler();\n const onClick = (e: ReactMouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onToggle?.(e);\n handler();\n };\n return info.row.getCanExpand() ? (\n <ActionIcon.Quaternary\n ref={ref}\n onClick={onClick}\n color=\"gray\"\n radius=\"sm\"\n {...getStyles('collapsibleIcon', {className, classNames, styles, style})}\n {...others}\n >\n {info.row.getIsExpanded() ? iconExpanded : iconCollapsed}\n </ActionIcon.Quaternary>\n ) : null;\n});\n"],"names":["IconChevronDown","IconChevronUp","factory","useProps","ActionIcon","useTableContext","sharedProps","id","enableSorting","enableHiding","meta","controlColumn","header","size","TableCollapsibleColumn","cell","info","CollapsibleIcon","TableAccordionColumn","onToggle","row","getIsExpanded","table","toggleAllRowsExpanded","defaultProps","iconExpanded","aria-label","iconCollapsed","props","ref","getStyles","classNames","className","style","styles","others","handler","getToggleExpandedHandler","onClick","e","stopPropagation","getCanExpand","Quaternary","color","radius"],"mappings":";AAAA,SAAQA,eAAe,EAAEC,aAAa,QAAO,8BAA8B;AAC3E,SAAiBC,OAAO,EAAEC,QAAQ,QAAO,gBAAgB;AAGzD,SAAQC,UAAU,QAAwB,oBAAoB;AAC9D,SAAQC,eAAe,QAAO,kBAAkB;AAIhD,MAAMC,cAAkC;IACpCC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;IACRC,MAAM;AACV;AAEA;;CAEC,GACD,OAAO,MAAMC,yBAA6C;IACtD,GAAGR,WAAW;IACdS,MAAM,CAACC,qBAAS,KAACC;YAAgBD,MAAMA;;AAC3C,EAAE;AAEF;;CAEC,GACD,OAAO,MAAME,uBAA2C;IACpD,GAAGZ,WAAW;IACdS,MAAM,CAACC;QACH,MAAMG,WAAW;YACb,4DAA4D;YAC5D,IAAI,CAACH,KAAKI,GAAG,CAACC,aAAa,IAAI;gBAC3BL,KAAKM,KAAK,CAACC,qBAAqB,CAAC;YACrC;QACJ;QAEA,qBAAO,KAACN;YAAgBE,UAAUA;YAAUH,MAAMA;;IACtD;AACJ,EAAE;AAgBF,MAAMQ,eAA8C;IAChDC,4BAAc,KAACxB;QAAcyB,cAAW;QAAWb,MAAM;;IACzDc,6BAAe,KAAC3B;QAAgB0B,cAAW;QAASb,MAAM;;AAC9D;AAEA,MAAMI,kBAAkBf,QAAuC,CAAC0B,OAAOC;IACnE,MAAM,EAACC,SAAS,EAAC,GAAGzB;IACpB,MAAM,EAACW,IAAI,EAAEG,QAAQ,EAAEM,YAAY,EAAEE,aAAa,EAAEI,UAAU,EAAEC,SAAS,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,QAAO,GAAGhC,SACnG,gCACAqB,cACAI;IAEJ,MAAMQ,UAAUpB,KAAKI,GAAG,CAACiB,wBAAwB;IACjD,MAAMC,UAAU,CAACC;QACbA,EAAEC,eAAe;QACjBrB,WAAWoB;QACXH;IACJ;IACA,OAAOpB,KAAKI,GAAG,CAACqB,YAAY,mBACxB,KAACrC,WAAWsC,UAAU;QAClBb,KAAKA;QACLS,SAASA;QACTK,OAAM;QACNC,QAAO;QACN,GAAGd,UAAU,mBAAmB;YAACE;YAAWD;YAAYG;YAAQD;QAAK,EAAE;QACvE,GAAGE,MAAM;kBAETnB,KAAKI,GAAG,CAACC,aAAa,KAAKI,eAAeE;SAE/C;AACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-filter/TableFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAqC,MAAM,eAAe,CAAC;AAOxH,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,CAAC;AAEpF,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,EAAE,sBAAsB,CAAC,kBAAkB,CAAC;IAC1F;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,sBAAsB,CAAC;IACpC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAMH,eAAO,MAAM,WAAW;WAVb,gBAAgB;SAClB,cAAc;iBACN,sBAAsB;cACzB,IAAI;EAiEhB,CAAC"}
1
+ {"version":3,"file":"TableFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-filter/TableFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAqC,MAAM,eAAe,CAAC;AAQ5G,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,CAAC;AAEpF,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,EAAE,sBAAsB,CAAC,kBAAkB,CAAC;IAC1F;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,sBAAsB,CAAC;IACpC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAMH,eAAO,MAAM,WAAW;WAVb,gBAAgB;SAClB,cAAc;iBACN,sBAAsB;cACzB,IAAI;EAiEhB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { CrossSize16Px, FilterSize16Px } from '@coveord/plasma-react-icons';
3
- import { ActionIcon, Grid, TextInput, factory, useProps } from '@mantine/core';
2
+ import { IconSearch, IconX } from '@coveord/plasma-react-icons';
3
+ import { factory, Grid, TextInput, useProps } from '@mantine/core';
4
4
  import { useDebouncedValue, useDidUpdate } from '@mantine/hooks';
5
5
  import { useEffect, useState } from 'react';
6
+ import { ActionIcon } from '../../action-icon';
6
7
  import { TableComponentsOrder } from '../Table';
7
8
  import { useTableContext } from '../TableContext';
8
9
  const defaultProps = {
@@ -53,15 +54,14 @@ export const TableFilter = factory((props, ref)=>{
53
54
  ...getStyles('filterWrapper', stylesApiProps),
54
55
  placeholder: placeholder,
55
56
  autoComplete: "off",
56
- rightSection: filter ? /*#__PURE__*/ _jsx(ActionIcon, {
57
+ rightSection: filter ? /*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
57
58
  onClick: handleClear,
58
- color: "gray",
59
- variant: "subtle",
60
- children: /*#__PURE__*/ _jsx(CrossSize16Px, {
61
- height: 16
59
+ children: /*#__PURE__*/ _jsx(IconX, {
60
+ "aria-label": "clear",
61
+ size: 20
62
62
  })
63
- }) : /*#__PURE__*/ _jsx(FilterSize16Px, {
64
- height: 16,
63
+ }) : /*#__PURE__*/ _jsx(IconSearch, {
64
+ size: 20,
65
65
  ...getStyles('filterEmpty', stylesApiProps)
66
66
  }),
67
67
  value: filter,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/table-filter/TableFilter.tsx"],"sourcesContent":["import {CrossSize16Px, FilterSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, BoxProps, CompoundStylesApiProps, Factory, Grid, TextInput, factory, useProps} from '@mantine/core';\nimport {useDebouncedValue, useDidUpdate} from '@mantine/hooks';\nimport {ChangeEventHandler, MouseEventHandler, useEffect, useState} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableFilterStylesNames = 'filterRoot' | 'filterWrapper' | 'filterEmpty';\n\nexport interface TableFilterProps extends BoxProps, CompoundStylesApiProps<TableFilterFactory> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport type TableFilterFactory = Factory<{\n props: TableFilterProps;\n ref: HTMLDivElement;\n stylesNames: TableFilterStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableFilterProps> = {\n placeholder: 'Search by any field',\n};\n\nexport const TableFilter = factory<TableFilterFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {placeholder, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableFilter',\n defaultProps,\n props,\n );\n const [filter, setFilter] = useState(store.state.globalFilter);\n const [debounced, cancel] = useDebouncedValue(filter, 300);\n\n useDidUpdate(() => {\n store.setGlobalFilter(debounced);\n store.setPagination({pageIndex: 0, pageSize: store.state.pagination.pageSize});\n\n return cancel;\n }, [debounced]);\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const {value} = event.currentTarget;\n setFilter(value);\n };\n\n const handleClear: MouseEventHandler<HTMLButtonElement> = () => {\n setFilter('');\n };\n\n useEffect(() => {\n setFilter(store.state.globalFilter);\n }, [store.state.globalFilter]);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Filter}\n ref={ref}\n {...getStyles('filterRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <TextInput\n {...getStyles('filterWrapper', stylesApiProps)}\n placeholder={placeholder}\n autoComplete=\"off\"\n rightSection={\n filter ? (\n <ActionIcon onClick={handleClear} color=\"gray\" variant=\"subtle\">\n <CrossSize16Px height={16} />\n </ActionIcon>\n ) : (\n <FilterSize16Px height={16} {...getStyles('filterEmpty', stylesApiProps)} />\n )\n }\n value={filter}\n onChange={handleChange}\n />\n </Grid.Col>\n );\n});\n"],"names":["CrossSize16Px","FilterSize16Px","ActionIcon","Grid","TextInput","factory","useProps","useDebouncedValue","useDidUpdate","useEffect","useState","TableComponentsOrder","useTableContext","defaultProps","placeholder","TableFilter","props","ref","store","getStyles","classNames","className","styles","style","vars","others","filter","setFilter","state","globalFilter","debounced","cancel","setGlobalFilter","setPagination","pageIndex","pageSize","pagination","handleChange","event","value","currentTarget","handleClear","stylesApiProps","Col","span","order","Filter","autoComplete","rightSection","onClick","color","variant","height","onChange"],"mappings":";AAAA,SAAQA,aAAa,EAAEC,cAAc,QAAO,8BAA8B;AAC1E,SAAQC,UAAU,EAA6CC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAO,gBAAgB;AACxH,SAAQC,iBAAiB,EAAEC,YAAY,QAAO,iBAAiB;AAC/D,SAA+CC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAEjF,SAAQC,oBAAoB,QAAO,WAAW;AAC9C,SAAQC,eAAe,QAAO,kBAAkB;AAoBhD,MAAMC,eAA0C;IAC5CC,aAAa;AACjB;AAEA,OAAO,MAAMC,cAAcV,QAA4B,CAACW,OAAOC;IAC3D,MAAM,EAACC,KAAK,EAAEC,SAAS,EAAC,GAAGP;IAC3B,MAAM,EAACE,WAAW,EAAEM,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGC,QAAO,GAAGnB,SACzE,qBACAO,cACAG;IAEJ,MAAM,CAACU,QAAQC,UAAU,GAAGjB,SAASQ,MAAMU,KAAK,CAACC,YAAY;IAC7D,MAAM,CAACC,WAAWC,OAAO,GAAGxB,kBAAkBmB,QAAQ;IAEtDlB,aAAa;QACTU,MAAMc,eAAe,CAACF;QACtBZ,MAAMe,aAAa,CAAC;YAACC,WAAW;YAAGC,UAAUjB,MAAMU,KAAK,CAACQ,UAAU,CAACD,QAAQ;QAAA;QAE5E,OAAOJ;IACX,GAAG;QAACD;KAAU;IAEd,MAAMO,eAAqD,CAACC;QACxD,MAAM,EAACC,KAAK,EAAC,GAAGD,MAAME,aAAa;QACnCb,UAAUY;IACd;IAEA,MAAME,cAAoD;QACtDd,UAAU;IACd;IAEAlB,UAAU;QACNkB,UAAUT,MAAMU,KAAK,CAACC,YAAY;IACtC,GAAG;QAACX,MAAMU,KAAK,CAACC,YAAY;KAAC;IAE7B,MAAMa,iBAAiB;QAACtB;QAAYE;IAAM;IAE1C,qBACI,KAACnB,KAAKwC,GAAG;QACLC,MAAK;QACLC,OAAOlC,qBAAqBmC,MAAM;QAClC7B,KAAKA;QACJ,GAAGE,UAAU,cAAc;YAACE;YAAWE;YAAO,GAAGmB,cAAc;QAAA,EAAE;QACjE,GAAGjB,MAAM;kBAEV,cAAA,KAACrB;YACI,GAAGe,UAAU,iBAAiBuB,eAAe;YAC9C5B,aAAaA;YACbiC,cAAa;YACbC,cACItB,uBACI,KAACxB;gBAAW+C,SAASR;gBAAaS,OAAM;gBAAOC,SAAQ;0BACnD,cAAA,KAACnD;oBAAcoD,QAAQ;;+BAG3B,KAACnD;gBAAemD,QAAQ;gBAAK,GAAGjC,UAAU,eAAeuB,eAAe;;YAGhFH,OAAOb;YACP2B,UAAUhB;;;AAI1B,GAAG"}
1
+ {"version":3,"sources":["../../../../../src/components/table/table-filter/TableFilter.tsx"],"sourcesContent":["import {IconSearch, IconX} from '@coveord/plasma-react-icons';\nimport {BoxProps, CompoundStylesApiProps, Factory, factory, Grid, TextInput, useProps} from '@mantine/core';\nimport {useDebouncedValue, useDidUpdate} from '@mantine/hooks';\nimport {ChangeEventHandler, MouseEventHandler, useEffect, useState} from 'react';\n\nimport {ActionIcon} from '../../action-icon';\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TableFilterStylesNames = 'filterRoot' | 'filterWrapper' | 'filterEmpty';\n\nexport interface TableFilterProps extends BoxProps, CompoundStylesApiProps<TableFilterFactory> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport type TableFilterFactory = Factory<{\n props: TableFilterProps;\n ref: HTMLDivElement;\n stylesNames: TableFilterStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableFilterProps> = {\n placeholder: 'Search by any field',\n};\n\nexport const TableFilter = factory<TableFilterFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {placeholder, classNames, className, styles, style, vars, ...others} = useProps(\n 'PlasmaTableFilter',\n defaultProps,\n props,\n );\n const [filter, setFilter] = useState(store.state.globalFilter);\n const [debounced, cancel] = useDebouncedValue(filter, 300);\n\n useDidUpdate(() => {\n store.setGlobalFilter(debounced);\n store.setPagination({pageIndex: 0, pageSize: store.state.pagination.pageSize});\n\n return cancel;\n }, [debounced]);\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const {value} = event.currentTarget;\n setFilter(value);\n };\n\n const handleClear: MouseEventHandler<HTMLButtonElement> = () => {\n setFilter('');\n };\n\n useEffect(() => {\n setFilter(store.state.globalFilter);\n }, [store.state.globalFilter]);\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Filter}\n ref={ref}\n {...getStyles('filterRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <TextInput\n {...getStyles('filterWrapper', stylesApiProps)}\n placeholder={placeholder}\n autoComplete=\"off\"\n rightSection={\n filter ? (\n <ActionIcon.Quaternary onClick={handleClear}>\n <IconX aria-label=\"clear\" size={20} />\n </ActionIcon.Quaternary>\n ) : (\n <IconSearch size={20} {...getStyles('filterEmpty', stylesApiProps)} />\n )\n }\n value={filter}\n onChange={handleChange}\n />\n </Grid.Col>\n );\n});\n"],"names":["IconSearch","IconX","factory","Grid","TextInput","useProps","useDebouncedValue","useDidUpdate","useEffect","useState","ActionIcon","TableComponentsOrder","useTableContext","defaultProps","placeholder","TableFilter","props","ref","store","getStyles","classNames","className","styles","style","vars","others","filter","setFilter","state","globalFilter","debounced","cancel","setGlobalFilter","setPagination","pageIndex","pageSize","pagination","handleChange","event","value","currentTarget","handleClear","stylesApiProps","Col","span","order","Filter","autoComplete","rightSection","Quaternary","onClick","aria-label","size","onChange"],"mappings":";AAAA,SAAQA,UAAU,EAAEC,KAAK,QAAO,8BAA8B;AAC9D,SAAmDC,OAAO,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAO,gBAAgB;AAC5G,SAAQC,iBAAiB,EAAEC,YAAY,QAAO,iBAAiB;AAC/D,SAA+CC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAEjF,SAAQC,UAAU,QAAO,oBAAoB;AAC7C,SAAQC,oBAAoB,QAAO,WAAW;AAC9C,SAAQC,eAAe,QAAO,kBAAkB;AAoBhD,MAAMC,eAA0C;IAC5CC,aAAa;AACjB;AAEA,OAAO,MAAMC,cAAcb,QAA4B,CAACc,OAAOC;IAC3D,MAAM,EAACC,KAAK,EAAEC,SAAS,EAAC,GAAGP;IAC3B,MAAM,EAACE,WAAW,EAAEM,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGC,QAAO,GAAGpB,SACzE,qBACAQ,cACAG;IAEJ,MAAM,CAACU,QAAQC,UAAU,GAAGlB,SAASS,MAAMU,KAAK,CAACC,YAAY;IAC7D,MAAM,CAACC,WAAWC,OAAO,GAAGzB,kBAAkBoB,QAAQ;IAEtDnB,aAAa;QACTW,MAAMc,eAAe,CAACF;QACtBZ,MAAMe,aAAa,CAAC;YAACC,WAAW;YAAGC,UAAUjB,MAAMU,KAAK,CAACQ,UAAU,CAACD,QAAQ;QAAA;QAE5E,OAAOJ;IACX,GAAG;QAACD;KAAU;IAEd,MAAMO,eAAqD,CAACC;QACxD,MAAM,EAACC,KAAK,EAAC,GAAGD,MAAME,aAAa;QACnCb,UAAUY;IACd;IAEA,MAAME,cAAoD;QACtDd,UAAU;IACd;IAEAnB,UAAU;QACNmB,UAAUT,MAAMU,KAAK,CAACC,YAAY;IACtC,GAAG;QAACX,MAAMU,KAAK,CAACC,YAAY;KAAC;IAE7B,MAAMa,iBAAiB;QAACtB;QAAYE;IAAM;IAE1C,qBACI,KAACnB,KAAKwC,GAAG;QACLC,MAAK;QACLC,OAAOlC,qBAAqBmC,MAAM;QAClC7B,KAAKA;QACJ,GAAGE,UAAU,cAAc;YAACE;YAAWE;YAAO,GAAGmB,cAAc;QAAA,EAAE;QACjE,GAAGjB,MAAM;kBAEV,cAAA,KAACrB;YACI,GAAGe,UAAU,iBAAiBuB,eAAe;YAC9C5B,aAAaA;YACbiC,cAAa;YACbC,cACItB,uBACI,KAAChB,WAAWuC,UAAU;gBAACC,SAAST;0BAC5B,cAAA,KAACxC;oBAAMkD,cAAW;oBAAQC,MAAM;;+BAGpC,KAACpD;gBAAWoD,MAAM;gBAAK,GAAGjC,UAAU,eAAeuB,eAAe;;YAG1EH,OAAOb;YACP2B,UAAUhB;;;AAI1B,GAAG"}
@@ -0,0 +1,7 @@
1
+ .root {
2
+ &[data-variant='subtle'] {
3
+ &:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
4
+ background: transparent;
5
+ }
6
+ }
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAUA,OAAO,EAkBH,oBAAoB,EAkBvB,MAAM,eAAe,CAAC;AA4BvB,eAAO,MAAM,WAAW,EAAE,oBAmUxB,CAAC"}
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAUA,OAAO,EAmBH,oBAAoB,EAkBvB,MAAM,eAAe,CAAC;AA6BvB,eAAO,MAAM,WAAW,EAAE,oBA0UxB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { ArrowHeadLeftSize16Px, ArrowHeadRightSize16Px, CheckSize16Px, CrossSize16Px, FilterSize16Px, IconSlash, InfoSize24Px } from '@coveord/plasma-react-icons';
3
3
  import { color } from '@coveord/plasma-tokens';
4
- import { Alert, AppShell, Badge, Breadcrumbs, Button, Checkbox, CloseButton, ColorSwatch, Combobox, ComboboxSearch, createTheme, deepMerge, Divider, Input, InputWrapper, List, Loader, Modal, MultiSelect, NavLink, Notification, Pagination, Popover, Radio, ScrollArea, SegmentedControl, Select, Skeleton, Stepper, Switch, Table, Tabs, Text, Tooltip } from '@mantine/core';
4
+ import { ActionIcon, Alert, AppShell, Badge, Breadcrumbs, Button, Checkbox, CloseButton, ColorSwatch, Combobox, ComboboxSearch, createTheme, deepMerge, Divider, Input, InputWrapper, List, Loader, Modal, MultiSelect, NavLink, Notification, Pagination, Popover, Radio, ScrollArea, SegmentedControl, Select, Skeleton, Stepper, Switch, Table, Tabs, Text, Tooltip } from '@mantine/core';
5
5
  import { InfoToken } from '../components';
6
+ import ActionIconClasses from '../styles/ActionIcon.module.css';
6
7
  import AlertClasses from '../styles/Alert.module.css';
7
8
  import BadgeClasses from '../styles/Badge.module.css';
8
9
  import BreadcrumbsClasses from '../styles/Breadcrumbs.module.css';
@@ -107,6 +108,13 @@ export const plasmaTheme = createTheme({
107
108
  primaryShade: 5,
108
109
  colors: PlasmaColors,
109
110
  components: {
111
+ ActionIcon: ActionIcon.extend({
112
+ defaultProps: {
113
+ size: 24,
114
+ radius: 'sm'
115
+ },
116
+ classNames: ActionIconClasses
117
+ }),
110
118
  AppShell: AppShell.extend({
111
119
  vars: (theme)=>({
112
120
  root: {