@coveord/plasma-mantine 54.1.0 → 54.1.2

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 (97) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +34 -34
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/action-icon/ActionIcon.d.ts +10 -0
  5. package/dist/cjs/components/action-icon/ActionIcon.d.ts.map +1 -1
  6. package/dist/cjs/components/button/Button.d.ts +10 -0
  7. package/dist/cjs/components/button/Button.d.ts.map +1 -1
  8. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts +10 -0
  9. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
  10. package/dist/cjs/components/prompt/Prompt.context.d.ts +12 -0
  11. package/dist/cjs/components/prompt/Prompt.context.d.ts.map +1 -0
  12. package/dist/cjs/components/prompt/Prompt.context.js +24 -0
  13. package/dist/cjs/components/prompt/Prompt.context.js.map +1 -0
  14. package/dist/cjs/components/prompt/Prompt.d.ts +37 -10
  15. package/dist/cjs/components/prompt/Prompt.d.ts.map +1 -1
  16. package/dist/cjs/components/prompt/Prompt.js +95 -27
  17. package/dist/cjs/components/prompt/Prompt.js.map +1 -1
  18. package/dist/cjs/components/prompt/Prompt.module.css +20 -30
  19. package/dist/cjs/components/prompt/PromptCancelButton.d.ts +18 -0
  20. package/dist/cjs/components/prompt/PromptCancelButton.d.ts.map +1 -0
  21. package/dist/cjs/components/prompt/PromptCancelButton.js +39 -0
  22. package/dist/cjs/components/prompt/PromptCancelButton.js.map +1 -0
  23. package/dist/cjs/components/prompt/PromptConfirmButton.d.ts +18 -0
  24. package/dist/cjs/components/prompt/PromptConfirmButton.d.ts.map +1 -0
  25. package/dist/cjs/components/prompt/PromptConfirmButton.js +46 -0
  26. package/dist/cjs/components/prompt/PromptConfirmButton.js.map +1 -0
  27. package/dist/cjs/components/prompt/PromptFooter.js +1 -2
  28. package/dist/cjs/components/prompt/PromptFooter.js.map +1 -1
  29. package/dist/cjs/components/prompt/icons/critical.svg +29 -0
  30. package/dist/cjs/components/prompt/icons/info.svg +27 -0
  31. package/dist/cjs/components/prompt/icons/success.svg +27 -0
  32. package/dist/cjs/components/prompt/icons/warning.svg +27 -0
  33. package/dist/cjs/components/table/Table.d.ts +6 -0
  34. package/dist/cjs/components/table/Table.d.ts.map +1 -1
  35. package/dist/cjs/components/table/Table.js +1 -1
  36. package/dist/cjs/components/table/Table.js.map +1 -1
  37. package/dist/cjs/components/table/table-actions/TableActionItem.d.ts +6 -0
  38. package/dist/cjs/components/table/table-actions/TableActionItem.d.ts.map +1 -1
  39. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  40. package/dist/cjs/theme/Theme.js.map +1 -1
  41. package/dist/cjs/types/svg/index.d.js +3 -0
  42. package/dist/cjs/types/svg/index.d.js.map +1 -0
  43. package/dist/esm/components/action-icon/ActionIcon.d.ts +10 -0
  44. package/dist/esm/components/action-icon/ActionIcon.d.ts.map +1 -1
  45. package/dist/esm/components/button/Button.d.ts +10 -0
  46. package/dist/esm/components/button/Button.d.ts.map +1 -1
  47. package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts +10 -0
  48. package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
  49. package/dist/esm/components/prompt/Prompt.context.d.ts +12 -0
  50. package/dist/esm/components/prompt/Prompt.context.d.ts.map +1 -0
  51. package/dist/esm/components/prompt/Prompt.context.js +4 -0
  52. package/dist/esm/components/prompt/Prompt.context.js.map +1 -0
  53. package/dist/esm/components/prompt/Prompt.d.ts +37 -10
  54. package/dist/esm/components/prompt/Prompt.d.ts.map +1 -1
  55. package/dist/esm/components/prompt/Prompt.js +92 -26
  56. package/dist/esm/components/prompt/Prompt.js.map +1 -1
  57. package/dist/esm/components/prompt/Prompt.module.css +20 -30
  58. package/dist/esm/components/prompt/PromptCancelButton.d.ts +18 -0
  59. package/dist/esm/components/prompt/PromptCancelButton.d.ts.map +1 -0
  60. package/dist/esm/components/prompt/PromptCancelButton.js +22 -0
  61. package/dist/esm/components/prompt/PromptCancelButton.js.map +1 -0
  62. package/dist/esm/components/prompt/PromptConfirmButton.d.ts +18 -0
  63. package/dist/esm/components/prompt/PromptConfirmButton.d.ts.map +1 -0
  64. package/dist/esm/components/prompt/PromptConfirmButton.js +29 -0
  65. package/dist/esm/components/prompt/PromptConfirmButton.js.map +1 -0
  66. package/dist/esm/components/prompt/PromptFooter.js +1 -2
  67. package/dist/esm/components/prompt/PromptFooter.js.map +1 -1
  68. package/dist/esm/components/prompt/icons/critical.svg +29 -0
  69. package/dist/esm/components/prompt/icons/info.svg +27 -0
  70. package/dist/esm/components/prompt/icons/success.svg +27 -0
  71. package/dist/esm/components/prompt/icons/warning.svg +27 -0
  72. package/dist/esm/components/table/Table.d.ts +6 -0
  73. package/dist/esm/components/table/Table.d.ts.map +1 -1
  74. package/dist/esm/components/table/Table.js +1 -1
  75. package/dist/esm/components/table/Table.js.map +1 -1
  76. package/dist/esm/components/table/table-actions/TableActionItem.d.ts +6 -0
  77. package/dist/esm/components/table/table-actions/TableActionItem.d.ts.map +1 -1
  78. package/dist/esm/theme/Theme.d.ts.map +1 -1
  79. package/dist/esm/theme/Theme.js +1 -1
  80. package/dist/esm/theme/Theme.js.map +1 -1
  81. package/dist/esm/types/svg/index.d.js +2 -0
  82. package/dist/esm/types/svg/index.d.js.map +1 -0
  83. package/package.json +12 -12
  84. package/src/components/prompt/Prompt.context.ts +11 -0
  85. package/src/components/prompt/Prompt.module.css +20 -30
  86. package/src/components/prompt/Prompt.tsx +106 -23
  87. package/src/components/prompt/PromptCancelButton.tsx +33 -0
  88. package/src/components/prompt/PromptConfirmButton.tsx +42 -0
  89. package/src/components/prompt/PromptFooter.tsx +1 -1
  90. package/src/components/prompt/__tests__/Prompt.spec.tsx +20 -2
  91. package/src/components/prompt/icons/critical.svg +29 -0
  92. package/src/components/prompt/icons/info.svg +27 -0
  93. package/src/components/prompt/icons/success.svg +27 -0
  94. package/src/components/prompt/icons/warning.svg +27 -0
  95. package/src/components/table/Table.tsx +1 -1
  96. package/src/theme/Theme.tsx +1 -1
  97. package/src/types/svg/index.d.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Factory, Loader, useProps, useStyles} from '@mantine/core';\nimport {useClickOutside, useMergedRef} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n RowSelectionState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport isEqual from 'fast-deep-equal';\nimport {Children, ForwardedRef, ReactElement, useEffect, useRef} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../utils';\nimport classes from './Table.module.css';\nimport {TableLayout, TableProps} from './Table.types';\nimport {TableProvider} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActionItem, TableActionItemStylesNames, TableHeaderActionsStylesNames} from './table-actions';\nimport {TableActionsListStylesNames} from './table-actions/TableActionsList';\nimport {TableActionsColumn} from './table-column/TableActionsColumn';\nimport {\n TableAccordionColumn,\n TableCollapsibleColumn,\n TableCollapsibleColumnStylesNames,\n} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableColumnsSelector, TableColumnsSelectorStylesNames} from './table-columns-selector/TableColumnsSelector';\nimport {TableDateRangePicker, TableDateRangePickerStylesNames} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter, TableFilterStylesNames} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader, TableHeaderStylesNames} from './table-header/TableHeader';\nimport {TableThStylesNames} from './table-header/Th';\nimport {TableLastUpdated, TableLastUpdatedStylesNames} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TableNoData} from './table-no-data/TableNoData';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate, TablePredicateStylesNames} from './table-predicate/TablePredicate';\nimport {TableState} from './use-table';\n\ntype TableStylesNames =\n | 'root'\n | 'table'\n | 'header'\n | 'body'\n | TableHeaderActionsStylesNames\n | TableActionsListStylesNames\n | TableActionItemStylesNames\n | TableCollapsibleColumnStylesNames\n | TableDateRangePickerStylesNames\n | TableFilterStylesNames\n | TableHeaderStylesNames\n | TableThStylesNames\n | TableLastUpdatedStylesNames\n | TablePredicateStylesNames\n | TableColumnsSelectorStylesNames;\n\nexport type PlasmaTableFactory = Factory<{\n props: TableProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: TableStylesNames;\n staticComponents: {\n AccordionColumn: typeof TableAccordionColumn;\n ActionsColumn: typeof TableActionsColumn;\n ActionItem: typeof TableActionItem;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n ColumnsSelector: typeof TableColumnsSelector;\n DateRangePicker: typeof TableDateRangePicker;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Layouts: typeof TableLayouts;\n Loading: typeof TableLoading;\n NoData: typeof TableNoData;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n };\n}>;\n\nconst defaultProps: Partial<TableProps<unknown>> = {\n layouts: [TableLayouts.Rows as TableLayout],\n layoutProps: {},\n loading: false,\n additionalRootNodes: [],\n options: {},\n getRowActions: () => [],\n};\n\nexport const Table = <T,>(props: TableProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n store,\n data,\n getRowId,\n getRowAttributes,\n getRowExpandedContent,\n getRowActions,\n columns,\n layouts,\n layoutProps,\n children,\n loading,\n additionalRootNodes,\n options,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('PlasmaTable', defaultProps as TableProps<T>, props);\n\n const getStyles = useStyles<PlasmaTableFactory>({\n name: 'PlasmaTable',\n classes,\n props: props as TableProps<unknown>,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n const noData = convertedChildren.find((child) => child.type === TableNoData);\n\n const table = useReactTable({\n data,\n state: {\n globalFilter: store.state.globalFilter,\n sorting: store.state.sorting,\n pagination: store.state.pagination,\n columnVisibility: store.state.columnVisibility,\n expanded: store.state.expanded,\n },\n onGlobalFilterChange: store.setGlobalFilter,\n onExpandedChange: store.setExpanded,\n onSortingChange: store.setSorting,\n onPaginationChange: store.setPagination,\n onColumnVisibilityChange: store.setColumnVisibility,\n columns: store.multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!store.multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getRowExpandedContent?.(row.original, row.index, row) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n rowCount: options?.getFilteredRowModel ? undefined : store.state.totalEntries,\n ...options,\n });\n\n table.setOptions((prev) => ({\n ...prev,\n state: {\n ...prev.state,\n rowSelection: store.state.rowSelection as RowSelectionState,\n },\n onRowSelectionChange: (rowSelectionUpdater) => {\n store.setRowSelection((old) => {\n const newRowSelection = (\n rowSelectionUpdater instanceof Function\n ? rowSelectionUpdater(old as RowSelectionState)\n : rowSelectionUpdater\n ) as TableState<T>['rowSelection'];\n\n if (isEqual(old, newRowSelection)) {\n return old;\n }\n\n const rows = table.getRowModel().rowsById;\n\n Object.keys(newRowSelection).forEach((rowId) => {\n if (newRowSelection[rowId] === true) {\n if (!rows[rowId]) {\n console.error(\n 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.',\n );\n }\n newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);\n }\n });\n\n return newRowSelection;\n });\n },\n }));\n\n useEffect(() => {\n // Update the selected rows data when the data prop changes\n if (store.getSelectedRows().length > 0) {\n store.setRowSelection((old) => {\n const rowsById = table.getRowModel().rowsById;\n const newSelection = {...old};\n Object.keys(old).forEach((rowId) => {\n if (rowsById[rowId]) {\n newSelection[rowId] = rowsById[rowId].original;\n }\n });\n return isEqual(newSelection, old) ? old : newSelection;\n });\n }\n }, [data]);\n\n const containerRef = useRef<HTMLDivElement>();\n useClickOutside(\n () => {\n if (!store.multiRowSelectionEnabled) {\n store.clearRowSelection();\n }\n },\n null,\n [containerRef.current, ...additionalRootNodes],\n );\n const mergedRef = useMergedRef(containerRef, ref);\n\n if (!data) {\n return (\n <Center style={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout =\n store.state.layout === null ? layouts[0] : layouts.find(({displayName}) => displayName === store.state.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={mergedRef} {...others} {...getStyles('root')}>\n <TableProvider<T> value={{getStyles, getRowActions, store, table, layouts, containerRef}}>\n <Layout>\n {store.isVacant && !store.isFiltered ? (\n noData\n ) : (\n <>\n <Box component=\"table\" {...getStyles('table')} mod={{loading}}>\n <thead {...getStyles('header')}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n </thead>\n <tbody {...getStyles('body')}>\n {hasRows ? (\n <Layout.Body\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading || !store.isFiltered}>\n {noData}\n </TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated}\n </>\n )}\n </Layout>\n </TableProvider>\n </Box>\n );\n};\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 7,\n Actions: 6,\n Predicate: 5,\n Filter: 4,\n DateRangePicker: 3,\n ColumnsSelector: 2,\n LayoutControl: 1,\n};\n\nTable.AccordionColumn = TableAccordionColumn;\nTable.ActionsColumn = TableActionsColumn;\nTable.ActionItem = TableActionItem;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.ColumnsSelector = TableColumnsSelector;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Layouts = TableLayouts;\nTable.Loading = TableLoading;\nTable.NoData = TableNoData;\nTable.Pagination = TablePagination;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\n\nTable.extend = identity as CustomComponentThemeExtend<PlasmaTableFactory>;\n"],"names":["Box","Center","Loader","useProps","useStyles","useClickOutside","useMergedRef","defaultColumnSizing","getCoreRowModel","useReactTable","isEqual","Children","useEffect","useRef","identity","classes","TableProvider","TableLayouts","TableActionItem","TableActionsColumn","TableAccordionColumn","TableCollapsibleColumn","TableSelectableColumn","TableColumnsSelector","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TableNoData","TablePagination","TablePerPage","TablePredicate","defaultProps","layouts","Rows","layoutProps","loading","additionalRootNodes","options","getRowActions","Table","props","store","data","getRowId","getRowAttributes","getRowExpandedContent","columns","children","ref","style","className","classNames","styles","unstyled","others","getStyles","name","convertedChildren","toArray","header","find","child","type","footer","lastUpdated","noData","table","state","globalFilter","sorting","pagination","columnVisibility","expanded","onGlobalFilterChange","setGlobalFilter","onExpandedChange","setExpanded","onSortingChange","setSorting","onPaginationChange","setPagination","onColumnVisibilityChange","setColumnVisibility","multiRowSelectionEnabled","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","index","enableRowSelection","defaultColumn","size","minSize","maxSize","rowCount","getFilteredRowModel","totalEntries","setOptions","prev","rowSelection","onRowSelectionChange","rowSelectionUpdater","setRowSelection","old","newRowSelection","Function","rows","getRowModel","rowsById","Object","keys","forEach","rowId","console","error","getSelectedRows","length","newSelection","containerRef","clearRowSelection","current","mergedRef","flexGrow","Layout","layout","displayName","hasRows","value","isVacant","isFiltered","component","mod","thead","tr","th","padding","colSpan","getAllColumns","Header","tbody","Body","td","visible","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","ColumnsSelector","LayoutControl","AccordionColumn","ActionsColumn","ActionItem","CollapsibleColumn","Footer","LastUpdated","Layouts","Loading","NoData","Pagination","PerPage","extend"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Factory, Loader, useProps, useStyles} from '@mantine/core';\nimport {useClickOutside, useMergedRef} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n RowSelectionState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport isEqual from 'fast-deep-equal';\nimport {Children, ForwardedRef, ReactElement, useEffect, useRef} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../utils';\nimport classes from './Table.module.css';\nimport {TableLayout, TableProps} from './Table.types';\nimport {TableProvider} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActionItem, TableActionItemStylesNames, TableHeaderActionsStylesNames} from './table-actions';\nimport {TableActionsListStylesNames} from './table-actions/TableActionsList';\nimport {TableActionsColumn} from './table-column/TableActionsColumn';\nimport {\n TableAccordionColumn,\n TableCollapsibleColumn,\n TableCollapsibleColumnStylesNames,\n} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableColumnsSelector, TableColumnsSelectorStylesNames} from './table-columns-selector/TableColumnsSelector';\nimport {TableDateRangePicker, TableDateRangePickerStylesNames} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter, TableFilterStylesNames} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader, TableHeaderStylesNames} from './table-header/TableHeader';\nimport {TableThStylesNames} from './table-header/Th';\nimport {TableLastUpdated, TableLastUpdatedStylesNames} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TableNoData} from './table-no-data/TableNoData';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate, TablePredicateStylesNames} from './table-predicate/TablePredicate';\nimport {TableState} from './use-table';\n\ntype TableStylesNames =\n | 'root'\n | 'table'\n | 'header'\n | 'body'\n | TableHeaderActionsStylesNames\n | TableActionsListStylesNames\n | TableActionItemStylesNames\n | TableCollapsibleColumnStylesNames\n | TableDateRangePickerStylesNames\n | TableFilterStylesNames\n | TableHeaderStylesNames\n | TableThStylesNames\n | TableLastUpdatedStylesNames\n | TablePredicateStylesNames\n | TableColumnsSelectorStylesNames;\n\nexport type PlasmaTableFactory = Factory<{\n props: TableProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: TableStylesNames;\n staticComponents: {\n AccordionColumn: typeof TableAccordionColumn;\n ActionsColumn: typeof TableActionsColumn;\n ActionItem: typeof TableActionItem;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n ColumnsSelector: typeof TableColumnsSelector;\n DateRangePicker: typeof TableDateRangePicker;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Layouts: typeof TableLayouts;\n Loading: typeof TableLoading;\n NoData: typeof TableNoData;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n };\n}>;\n\nconst defaultProps: Partial<TableProps<unknown>> = {\n layouts: [TableLayouts.Rows as TableLayout],\n layoutProps: {},\n loading: false,\n additionalRootNodes: [],\n options: {},\n getRowActions: () => [],\n};\n\nexport const Table = <T,>(props: TableProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n store,\n data,\n getRowId,\n getRowAttributes,\n getRowExpandedContent,\n getRowActions,\n columns,\n layouts,\n layoutProps,\n children,\n loading,\n additionalRootNodes,\n options,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('PlasmaTable', defaultProps as TableProps<T>, props);\n\n const getStyles = useStyles<PlasmaTableFactory>({\n name: 'PlasmaTable',\n classes,\n props: props as TableProps<unknown>,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n const noData = convertedChildren.find((child) => child.type === TableNoData);\n\n const table = useReactTable({\n data,\n state: {\n globalFilter: store.state.globalFilter,\n sorting: store.state.sorting,\n pagination: store.state.pagination,\n columnVisibility: store.state.columnVisibility,\n expanded: store.state.expanded,\n },\n onGlobalFilterChange: store.setGlobalFilter,\n onExpandedChange: store.setExpanded,\n onSortingChange: store.setSorting,\n onPaginationChange: store.setPagination,\n onColumnVisibilityChange: store.setColumnVisibility,\n columns: store.multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!store.multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getRowExpandedContent?.(row.original, row.index, row) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n rowCount: options?.getFilteredRowModel ? undefined : store.state.totalEntries,\n ...options,\n });\n\n table.setOptions((prev) => ({\n ...prev,\n state: {\n ...prev.state,\n rowSelection: store.state.rowSelection as RowSelectionState,\n },\n onRowSelectionChange: (rowSelectionUpdater) => {\n store.setRowSelection((old) => {\n const newRowSelection = (\n rowSelectionUpdater instanceof Function\n ? rowSelectionUpdater(old as RowSelectionState)\n : rowSelectionUpdater\n ) as TableState<T>['rowSelection'];\n\n if (isEqual(old, newRowSelection)) {\n return old;\n }\n\n const rows = table.getRowModel().rowsById;\n\n Object.keys(newRowSelection).forEach((rowId) => {\n if (newRowSelection[rowId] === true) {\n if (!rows[rowId]) {\n console.error(\n 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.',\n );\n }\n newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);\n }\n });\n\n return newRowSelection;\n });\n },\n }));\n\n useEffect(() => {\n // Update the selected rows data when the data prop changes\n if (store.getSelectedRows().length > 0) {\n store.setRowSelection((old) => {\n const rowsById = table.getRowModel().rowsById;\n const newSelection = {...old};\n Object.keys(old).forEach((rowId) => {\n if (rowsById[rowId]) {\n newSelection[rowId] = rowsById[rowId].original;\n }\n });\n return isEqual(newSelection, old) ? old : newSelection;\n });\n }\n }, [data]);\n\n const containerRef = useRef<HTMLDivElement>();\n useClickOutside(\n () => {\n if (!store.multiRowSelectionEnabled && store.getSelectedRows().length > 0) {\n store.clearRowSelection();\n }\n },\n null,\n [containerRef.current, ...additionalRootNodes],\n );\n const mergedRef = useMergedRef(containerRef, ref);\n\n if (!data) {\n return (\n <Center style={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout =\n store.state.layout === null ? layouts[0] : layouts.find(({displayName}) => displayName === store.state.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={mergedRef} {...others} {...getStyles('root')}>\n <TableProvider<T> value={{getStyles, getRowActions, store, table, layouts, containerRef}}>\n <Layout>\n {store.isVacant && !store.isFiltered ? (\n noData\n ) : (\n <>\n <Box component=\"table\" {...getStyles('table')} mod={{loading}}>\n <thead {...getStyles('header')}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n </thead>\n <tbody {...getStyles('body')}>\n {hasRows ? (\n <Layout.Body\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading || !store.isFiltered}>\n {noData}\n </TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated}\n </>\n )}\n </Layout>\n </TableProvider>\n </Box>\n );\n};\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 7,\n Actions: 6,\n Predicate: 5,\n Filter: 4,\n DateRangePicker: 3,\n ColumnsSelector: 2,\n LayoutControl: 1,\n};\n\nTable.AccordionColumn = TableAccordionColumn;\nTable.ActionsColumn = TableActionsColumn;\nTable.ActionItem = TableActionItem;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.ColumnsSelector = TableColumnsSelector;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Layouts = TableLayouts;\nTable.Loading = TableLoading;\nTable.NoData = TableNoData;\nTable.Pagination = TablePagination;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\n\nTable.extend = identity as CustomComponentThemeExtend<PlasmaTableFactory>;\n"],"names":["Box","Center","Loader","useProps","useStyles","useClickOutside","useMergedRef","defaultColumnSizing","getCoreRowModel","useReactTable","isEqual","Children","useEffect","useRef","identity","classes","TableProvider","TableLayouts","TableActionItem","TableActionsColumn","TableAccordionColumn","TableCollapsibleColumn","TableSelectableColumn","TableColumnsSelector","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TableNoData","TablePagination","TablePerPage","TablePredicate","defaultProps","layouts","Rows","layoutProps","loading","additionalRootNodes","options","getRowActions","Table","props","store","data","getRowId","getRowAttributes","getRowExpandedContent","columns","children","ref","style","className","classNames","styles","unstyled","others","getStyles","name","convertedChildren","toArray","header","find","child","type","footer","lastUpdated","noData","table","state","globalFilter","sorting","pagination","columnVisibility","expanded","onGlobalFilterChange","setGlobalFilter","onExpandedChange","setExpanded","onSortingChange","setSorting","onPaginationChange","setPagination","onColumnVisibilityChange","setColumnVisibility","multiRowSelectionEnabled","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","index","enableRowSelection","defaultColumn","size","minSize","maxSize","rowCount","getFilteredRowModel","totalEntries","setOptions","prev","rowSelection","onRowSelectionChange","rowSelectionUpdater","setRowSelection","old","newRowSelection","Function","rows","getRowModel","rowsById","Object","keys","forEach","rowId","console","error","getSelectedRows","length","newSelection","containerRef","clearRowSelection","current","mergedRef","flexGrow","Layout","layout","displayName","hasRows","value","isVacant","isFiltered","component","mod","thead","tr","th","padding","colSpan","getAllColumns","Header","tbody","Body","td","visible","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","ColumnsSelector","LayoutControl","AccordionColumn","ActionsColumn","ActionItem","CollapsibleColumn","Footer","LastUpdated","Layouts","Loading","NoData","Pagination","PerPage","extend"],"mappings":"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"}
@@ -39,6 +39,12 @@ export declare const TableActionItem: (<C = "button">(props: import("@mantine/co
39
39
  defaultComponent: "button";
40
40
  stylesNames: TableActionItemStylesNames;
41
41
  compound: true;
42
+ }> & import("@mantine/core/lib/core/factory/polymorphic-factory").PolymorphicComponentWithProps<{
43
+ props: TableActionItemProps;
44
+ defaultRef: HTMLButtonElement;
45
+ defaultComponent: "button";
46
+ stylesNames: TableActionItemStylesNames;
47
+ compound: true;
42
48
  }>;
43
49
  export {};
44
50
  //# sourceMappingURL=TableActionItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableActionItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-actions/TableActionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EAEtB,aAAa,EACb,kBAAkB,EAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAS,WAAW,EAAC,MAAM,cAAc,CAAC;AAIjD,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE1D,MAAM,WAAW,oBACb,SAAQ,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC,EACpG,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC,EAC9F,sBAAsB,CAAC,sBAAsB,CAAC;IAClD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,KAAK,sBAAsB,GAAG,kBAAkB,CAAC;IAC7C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAIH,eAAO,MAAM,eAAe,wGAvBwE,MAAO,YAClG;;;;;;sBAQJ,OACH,gCAGA,OAAO;;;WACE,oBAAoB;gBACf,iBAAiB;sBACX,QAAQ;iBACb,0BAA0B;cAC7B,IAAI;;WAJP,oBAAoB;gBACf,iBAAiB;sBACX,QAAQ;iBACb,0BAA0B;cAC7B,IAAI;EA6CjB,CAAC"}
1
+ {"version":3,"file":"TableActionItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-actions/TableActionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EAEtB,aAAa,EACb,kBAAkB,EAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAS,WAAW,EAAC,MAAM,cAAc,CAAC;AAIjD,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE1D,MAAM,WAAW,oBACb,SAAQ,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC,EACpG,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC,EAC9F,sBAAsB,CAAC,sBAAsB,CAAC;IAClD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,KAAK,sBAAsB,GAAG,kBAAkB,CAAC;IAC7C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAIH,eAAO,MAAM,eAAe,wGAdvB,MACD,YAAU;;;;;;sBAWkB,OAAO,gCAEzB,OAAO;;;WATV,oBAAoB;gBACf,iBAAiB;sBACX,QAAQ;iBACb,0BAA0B;cAC7B,IAAI;;WAJP,oBAAoB;gBACf,iBAAiB;sBACX,QAAQ;iBACb,0BAA0B;cAC7B,IAAI;;WAJP,oBAAoB;gBACf,iBAAiB;sBACX,QAAQ;iBACb,0BAA0B;cAC7B,IAAI;EA6CjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAUA,OAAO,EAiBH,oBAAoB,EAmBvB,MAAM,eAAe,CAAC;AA8BvB,eAAO,MAAM,WAAW,EAAE,oBAoNxB,CAAC"}
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAUA,OAAO,EAkBH,oBAAoB,EAkBvB,MAAM,eAAe,CAAC;AA8BvB,eAAO,MAAM,WAAW,EAAE,oBAoNxB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { ArrowHeadLeftSize16Px, ArrowHeadRightSize16Px, CheckSize16Px, CrossSize16Px, FilterSize16Px, InfoSize16Px, InfoSize24Px } from '@coveord/plasma-react-icons';
3
3
  import { color } from '@coveord/plasma-tokens';
4
- import { ActionIcon, Alert, Anchor, AppShellNavbar, Badge, Button, Checkbox, CloseButton, ColorSwatch, Combobox, ComboboxSearch, Divider, Input, InputWrapper, List, Loader, MenuItem, Modal, MultiSelect, NavLink, Notification, Pagination, Popover, Radio, ScrollArea, SegmentedControl, Select, Skeleton, Stepper, Tabs, Text, TextInput, Tooltip, createTheme } from '@mantine/core';
4
+ import { ActionIcon, Alert, Anchor, AppShellNavbar, Badge, Button, Checkbox, CloseButton, ColorSwatch, Combobox, ComboboxSearch, createTheme, Divider, Input, InputWrapper, List, Loader, MenuItem, Modal, MultiSelect, NavLink, Notification, Pagination, Popover, Radio, ScrollArea, SegmentedControl, Select, Skeleton, Stepper, Tabs, Text, TextInput, Tooltip } from '@mantine/core';
5
5
  import { DatePicker } from '@mantine/dates';
6
6
  import ActionIconClasses from '../styles/ActionIcon.module.css';
7
7
  import AlertClasses from '../styles/Alert.module.css';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {\n ArrowHeadLeftSize16Px,\n ArrowHeadRightSize16Px,\n CheckSize16Px,\n CrossSize16Px,\n FilterSize16Px,\n InfoSize16Px,\n InfoSize24Px,\n} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n ActionIcon,\n Alert,\n Anchor,\n AppShellNavbar,\n Badge,\n Button,\n Checkbox,\n CloseButton,\n ColorSwatch,\n Combobox,\n ComboboxSearch,\n Divider,\n Input,\n InputWrapper,\n List,\n Loader,\n MantineThemeOverride,\n MenuItem,\n Modal,\n MultiSelect,\n NavLink,\n Notification,\n Pagination,\n Popover,\n Radio,\n ScrollArea,\n SegmentedControl,\n Select,\n Skeleton,\n Stepper,\n Tabs,\n Text,\n TextInput,\n Tooltip,\n createTheme,\n} from '@mantine/core';\nimport {DatePicker} from '@mantine/dates';\nimport ActionIconClasses from '../styles/ActionIcon.module.css';\nimport AlertClasses from '../styles/Alert.module.css';\nimport AnchorClasses from '../styles/Anchor.module.css';\nimport AppShellNavBarClasses from '../styles/AppShellNavBar.module.css';\nimport BadgeClasses from '../styles/Badge.module.css';\nimport ButtonClasses from '../styles/Button.module.css';\nimport CheckboxClasses from '../styles/Checkbox.module.css';\nimport ComboboxClasses from '../styles/Combobox.module.css';\nimport DatePickerClasses from '../styles/DatePicker.module.css';\nimport InputClasses from '../styles/Input.module.css';\nimport InputWrapperClasses from '../styles/InputWrapper.module.css';\nimport ListClasses from '../styles/List.module.css';\nimport ModalClasses from '../styles/Modal.module.css';\nimport NavLinkClasses from '../styles/NavLink.module.css';\nimport NotificationClasses from '../styles/Notification.module.css';\nimport PaginationClasses from '../styles/Pagination.module.css';\nimport RadioClasses from '../styles/Radio.module.css';\nimport ScrollAreaClasses from '../styles/ScrollArea.module.css';\nimport SegmentedControlClasses from '../styles/SegmentedControl.module.css';\nimport SelectClasses from '../styles/Select.module.css';\nimport SkeletonClasses from '../styles/Skeleton.module.css';\nimport StepperClasses from '../styles/Stepper.module.css';\nimport TabsClasses from '../styles/Tabs.module.css';\nimport TextClasses from '../styles/Text.module.css';\nimport {NotificationVars} from '../vars/Notification.vars';\nimport {TextVars} from '../vars/Text.vars';\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = createTheme({\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/packages/%40mantine/core/src/core/MantineProvider/default-theme.ts\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeights: {md: '1.5'},\n spacing: {\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: '500',\n sizes: {\n h1: {fontSize: '48px', lineHeight: '1.5', fontWeight: '300'},\n h2: {fontSize: '32px', lineHeight: '1.5', fontWeight: '500'},\n h3: {fontSize: '24px', lineHeight: '1.5', fontWeight: '500'},\n h4: {fontSize: '18px', lineHeight: '1.5', fontWeight: '300'},\n h5: {fontSize: '14px', lineHeight: '1.5', fontWeight: '500'},\n h6: {fontSize: '12px', lineHeight: '1.5', fontWeight: '500'},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n ActionIcon: ActionIcon.extend({\n classNames: {root: ActionIconClasses.root},\n }),\n Alert: Alert.extend({\n defaultProps: {\n icon: <InfoSize16Px height={16} />,\n color: 'navy',\n },\n classNames: AlertClasses,\n }),\n Anchor: Anchor.extend({\n defaultProps: {\n color: 'action.6',\n },\n classNames: {root: AnchorClasses.root},\n }),\n AppShellNavbar: AppShellNavbar.extend({\n classNames: {navbar: AppShellNavBarClasses.navbar},\n }),\n Badge: Badge.extend({\n classNames: {root: BadgeClasses.root},\n defaultProps: {\n variant: 'light',\n },\n }),\n Button: Button.extend({\n classNames: ButtonClasses,\n }),\n Checkbox: Checkbox.extend({\n defaultProps: {\n radius: 'sm',\n },\n classNames: {label: CheckboxClasses.label, input: CheckboxClasses.input},\n }),\n CloseButton: CloseButton.extend({\n defaultProps: {\n icon: <CrossSize16Px height={16} aria-label=\"close\" />,\n },\n }),\n ColorSwatch: ColorSwatch.extend({\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n }),\n Combobox: Combobox.extend({\n classNames: {option: SelectClasses.option, search: ComboboxClasses.search},\n }),\n ComboboxSearch: ComboboxSearch.extend({\n defaultProps: {\n placeholder: 'Search',\n rightSection: <FilterSize16Px height={16} color=\"gray.5\" />,\n },\n }),\n DatePicker: DatePicker.extend({\n classNames: {monthCell: DatePickerClasses.monthCell},\n }),\n Divider: Divider.extend({\n defaultProps: {\n color: 'gray.3',\n },\n }),\n Input: Input.extend({\n classNames: InputClasses,\n }),\n InputWrapper: InputWrapper.extend({\n classNames: InputWrapperClasses,\n }),\n Loader: Loader.extend({\n defaultProps: {\n type: 'dots',\n color: 'action',\n role: 'presentation',\n },\n }),\n List: List.extend({\n classNames: {root: ListClasses.root},\n }),\n MenuItem: MenuItem.extend({\n defaultProps: {\n fw: 300,\n },\n }),\n Modal: Modal.extend({\n classNames: ModalClasses,\n }),\n ModalOverlay: Modal.Overlay.extend({\n defaultProps: {\n color: color.primary.navy[9],\n backgroundOpacity: 0.9,\n },\n }),\n ModalRoot: Modal.Root.extend({\n defaultProps: {\n padding: 'lg',\n },\n }),\n MultiSelect: MultiSelect.extend({defaultProps: {hidePickedOptions: true}}),\n NavLink: NavLink.extend({classNames: NavLinkClasses}),\n Notification: Notification.extend({\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n classNames: {\n root: NotificationClasses.root,\n icon: NotificationClasses.icon,\n closeButton: NotificationClasses.closeButton,\n },\n vars: NotificationVars,\n }),\n Pagination: Pagination.extend({\n classNames: PaginationClasses,\n vars: () => ({root: {'--pagination-control-fz': 'var(--mantine-font-size-sm)'}}),\n defaultProps: {\n nextIcon: ArrowHeadRightSize16Px,\n previousIcon: ArrowHeadLeftSize16Px,\n },\n }),\n Popover: Popover.extend({\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n }),\n Radio: Radio.extend({\n classNames: {labelWrapper: RadioClasses.labelWrapper},\n }),\n ScrollArea: ScrollArea.extend({\n classNames: {viewport: ScrollAreaClasses.viewport},\n }),\n SegmentedControl: SegmentedControl.extend({\n classNames: SegmentedControlClasses,\n }),\n Select: Select.extend({\n defaultProps: {withCheckIcon: false, allowDeselect: false},\n classNames: {input: SelectClasses.input, option: SelectClasses.option},\n }),\n Skeleton: Skeleton.extend({\n classNames: {root: SkeletonClasses.root},\n }),\n Stepper: Stepper.extend({\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n classNames: {\n step: StepperClasses.step,\n stepIcon: StepperClasses.stepIcon,\n stepCompletedIcon: StepperClasses.stepCompletedIcon,\n stepDescription: StepperClasses.stepDescription,\n separator: StepperClasses.separator,\n verticalSeparator: StepperClasses.verticalSeparator,\n },\n }),\n Tabs: Tabs.extend({\n classNames: {list: TabsClasses.list, tab: TabsClasses.tab},\n }),\n Text: Text.extend({\n classNames: TextClasses,\n vars: TextVars,\n }),\n TextInput: TextInput.extend({\n defaultProps: {\n radius: 8,\n },\n }),\n Tooltip: Tooltip.extend({\n defaultProps: {\n color: 'navy',\n maw: 300,\n multiline: true,\n withArrow: true,\n zIndex: 10000,\n },\n }),\n },\n});\n"],"names":["ArrowHeadLeftSize16Px","ArrowHeadRightSize16Px","CheckSize16Px","CrossSize16Px","FilterSize16Px","InfoSize16Px","InfoSize24Px","color","ActionIcon","Alert","Anchor","AppShellNavbar","Badge","Button","Checkbox","CloseButton","ColorSwatch","Combobox","ComboboxSearch","Divider","Input","InputWrapper","List","Loader","MenuItem","Modal","MultiSelect","NavLink","Notification","Pagination","Popover","Radio","ScrollArea","SegmentedControl","Select","Skeleton","Stepper","Tabs","Text","TextInput","Tooltip","createTheme","DatePicker","ActionIconClasses","AlertClasses","AnchorClasses","AppShellNavBarClasses","BadgeClasses","ButtonClasses","CheckboxClasses","ComboboxClasses","DatePickerClasses","InputClasses","InputWrapperClasses","ListClasses","ModalClasses","NavLinkClasses","NotificationClasses","PaginationClasses","RadioClasses","ScrollAreaClasses","SegmentedControlClasses","SelectClasses","SkeletonClasses","StepperClasses","TabsClasses","TextClasses","NotificationVars","TextVars","PlasmaColors","plasmaTheme","fontFamily","black","primary","gray","defaultRadius","lineHeights","md","spacing","xs","sm","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","lineHeight","h2","h3","h4","h5","h6","shadows","colors","components","extend","classNames","root","defaultProps","icon","height","navbar","variant","radius","label","input","aria-label","size","withShadow","option","search","placeholder","rightSection","monthCell","type","role","fw","ModalOverlay","Overlay","navy","backgroundOpacity","ModalRoot","Root","padding","hidePickedOptions","closeButton","vars","nextIcon","previousIcon","shadow","withArrow","labelWrapper","viewport","withCheckIcon","allowDeselect","completedIcon","step","stepIcon","stepCompletedIcon","stepDescription","separator","verticalSeparator","list","tab","maw","multiline","zIndex"],"mappings":";AAAA,SACIA,qBAAqB,EACrBC,sBAAsB,EACtBC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,YAAY,EACZC,YAAY,QACT,8BAA8B;AACrC,SAAQC,KAAK,QAAO,yBAAyB;AAC7C,SACIC,UAAU,EACVC,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,WAAW,EACXC,WAAW,EACXC,QAAQ,EACRC,cAAc,EACdC,OAAO,EACPC,KAAK,EACLC,YAAY,EACZC,IAAI,EACJC,MAAM,EAENC,QAAQ,EACRC,KAAK,EACLC,WAAW,EACXC,OAAO,EACPC,YAAY,EACZC,UAAU,EACVC,OAAO,EACPC,KAAK,EACLC,UAAU,EACVC,gBAAgB,EAChBC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,IAAI,EACJC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,WAAW,QACR,gBAAgB;AACvB,SAAQC,UAAU,QAAO,iBAAiB;AAC1C,OAAOC,uBAAuB,kCAAkC;AAChE,OAAOC,kBAAkB,6BAA6B;AACtD,OAAOC,mBAAmB,8BAA8B;AACxD,OAAOC,2BAA2B,sCAAsC;AACxE,OAAOC,kBAAkB,6BAA6B;AACtD,OAAOC,mBAAmB,8BAA8B;AACxD,OAAOC,qBAAqB,gCAAgC;AAC5D,OAAOC,qBAAqB,gCAAgC;AAC5D,OAAOC,uBAAuB,kCAAkC;AAChE,OAAOC,kBAAkB,6BAA6B;AACtD,OAAOC,yBAAyB,oCAAoC;AACpE,OAAOC,iBAAiB,4BAA4B;AACpD,OAAOC,kBAAkB,6BAA6B;AACtD,OAAOC,oBAAoB,+BAA+B;AAC1D,OAAOC,yBAAyB,oCAAoC;AACpE,OAAOC,uBAAuB,kCAAkC;AAChE,OAAOC,kBAAkB,6BAA6B;AACtD,OAAOC,uBAAuB,kCAAkC;AAChE,OAAOC,6BAA6B,wCAAwC;AAC5E,OAAOC,mBAAmB,8BAA8B;AACxD,OAAOC,qBAAqB,gCAAgC;AAC5D,OAAOC,oBAAoB,+BAA+B;AAC1D,OAAOC,iBAAiB,4BAA4B;AACpD,OAAOC,iBAAiB,4BAA4B;AACpD,SAAQC,gBAAgB,QAAO,4BAA4B;AAC3D,SAAQC,QAAQ,QAAO,oBAAoB;AAC3C,SAAQC,YAAY,QAAO,iBAAiB;AAE5C,OAAO,MAAMC,cAAoC7B,YAAY;IACzD,gJAAgJ;IAChJ8B,YAAY;IACZC,OAAOjE,MAAMkE,OAAO,CAACC,IAAI,CAAC,EAAE;IAC5BC,eAAe;IACfC,aAAa;QAACC,IAAI;IAAK;IACvBC,SAAS;QACLC,IAAI;QACJC,IAAI;QACJH,IAAI;QACJI,IAAI;QACJC,IAAI;IACR;IACAC,cAAc;IACdC,UAAU;QACNb,YAAY;QACZc,YAAY;QACZC,OAAO;YACHC,IAAI;gBAACC,UAAU;gBAAQC,YAAY;gBAAOJ,YAAY;YAAK;YAC3DK,IAAI;gBAACF,UAAU;gBAAQC,YAAY;gBAAOJ,YAAY;YAAK;YAC3DM,IAAI;gBAACH,UAAU;gBAAQC,YAAY;gBAAOJ,YAAY;YAAK;YAC3DO,IAAI;gBAACJ,UAAU;gBAAQC,YAAY;gBAAOJ,YAAY;YAAK;YAC3DQ,IAAI;gBAACL,UAAU;gBAAQC,YAAY;gBAAOJ,YAAY;YAAK;YAC3DS,IAAI;gBAACN,UAAU;gBAAQC,YAAY;gBAAOJ,YAAY;YAAK;QAC/D;IACJ;IACAU,SAAS;QACLhB,IAAI;QACJC,IAAI;QACJH,IAAI;QACJI,IAAI;QACJC,IAAI;IACR;IACAc,QAAQ3B;IACR4B,YAAY;QACRzF,YAAYA,WAAW0F,MAAM,CAAC;YAC1BC,YAAY;gBAACC,MAAMzD,kBAAkByD,IAAI;YAAA;QAC7C;QACA3F,OAAOA,MAAMyF,MAAM,CAAC;YAChBG,cAAc;gBACVC,oBAAM,KAACjG;oBAAakG,QAAQ;;gBAC5BhG,OAAO;YACX;YACA4F,YAAYvD;QAChB;QACAlC,QAAQA,OAAOwF,MAAM,CAAC;YAClBG,cAAc;gBACV9F,OAAO;YACX;YACA4F,YAAY;gBAACC,MAAMvD,cAAcuD,IAAI;YAAA;QACzC;QACAzF,gBAAgBA,eAAeuF,MAAM,CAAC;YAClCC,YAAY;gBAACK,QAAQ1D,sBAAsB0D,MAAM;YAAA;QACrD;QACA5F,OAAOA,MAAMsF,MAAM,CAAC;YAChBC,YAAY;gBAACC,MAAMrD,aAAaqD,IAAI;YAAA;YACpCC,cAAc;gBACVI,SAAS;YACb;QACJ;QACA5F,QAAQA,OAAOqF,MAAM,CAAC;YAClBC,YAAYnD;QAChB;QACAlC,UAAUA,SAASoF,MAAM,CAAC;YACtBG,cAAc;gBACVK,QAAQ;YACZ;YACAP,YAAY;gBAACQ,OAAO1D,gBAAgB0D,KAAK;gBAAEC,OAAO3D,gBAAgB2D,KAAK;YAAA;QAC3E;QACA7F,aAAaA,YAAYmF,MAAM,CAAC;YAC5BG,cAAc;gBACVC,oBAAM,KAACnG;oBAAcoG,QAAQ;oBAAIM,cAAW;;YAChD;QACJ;QACA7F,aAAaA,YAAYkF,MAAM,CAAC;YAC5BG,cAAc;gBACVS,MAAM;gBACNC,YAAY;YAChB;QACJ;QACA9F,UAAUA,SAASiF,MAAM,CAAC;YACtBC,YAAY;gBAACa,QAAQlD,cAAckD,MAAM;gBAAEC,QAAQ/D,gBAAgB+D,MAAM;YAAA;QAC7E;QACA/F,gBAAgBA,eAAegF,MAAM,CAAC;YAClCG,cAAc;gBACVa,aAAa;gBACbC,4BAAc,KAAC/G;oBAAemG,QAAQ;oBAAIhG,OAAM;;YACpD;QACJ;QACAmC,YAAYA,WAAWwD,MAAM,CAAC;YAC1BC,YAAY;gBAACiB,WAAWjE,kBAAkBiE,SAAS;YAAA;QACvD;QACAjG,SAASA,QAAQ+E,MAAM,CAAC;YACpBG,cAAc;gBACV9F,OAAO;YACX;QACJ;QACAa,OAAOA,MAAM8E,MAAM,CAAC;YAChBC,YAAY/C;QAChB;QACA/B,cAAcA,aAAa6E,MAAM,CAAC;YAC9BC,YAAY9C;QAChB;QACA9B,QAAQA,OAAO2E,MAAM,CAAC;YAClBG,cAAc;gBACVgB,MAAM;gBACN9G,OAAO;gBACP+G,MAAM;YACV;QACJ;QACAhG,MAAMA,KAAK4E,MAAM,CAAC;YACdC,YAAY;gBAACC,MAAM9C,YAAY8C,IAAI;YAAA;QACvC;QACA5E,UAAUA,SAAS0E,MAAM,CAAC;YACtBG,cAAc;gBACVkB,IAAI;YACR;QACJ;QACA9F,OAAOA,MAAMyE,MAAM,CAAC;YAChBC,YAAY5C;QAChB;QACAiE,cAAc/F,MAAMgG,OAAO,CAACvB,MAAM,CAAC;YAC/BG,cAAc;gBACV9F,OAAOA,MAAMkE,OAAO,CAACiD,IAAI,CAAC,EAAE;gBAC5BC,mBAAmB;YACvB;QACJ;QACAC,WAAWnG,MAAMoG,IAAI,CAAC3B,MAAM,CAAC;YACzBG,cAAc;gBACVyB,SAAS;YACb;QACJ;QACApG,aAAaA,YAAYwE,MAAM,CAAC;YAACG,cAAc;gBAAC0B,mBAAmB;YAAI;QAAC;QACxEpG,SAASA,QAAQuE,MAAM,CAAC;YAACC,YAAY3C;QAAc;QACnD5B,cAAcA,aAAasE,MAAM,CAAC;YAC9BG,cAAc;gBACVC,oBAAM,KAAChG;oBAAaiG,QAAQ;;gBAC5BhG,OAAO;YACX;YACA4F,YAAY;gBACRC,MAAM3C,oBAAoB2C,IAAI;gBAC9BE,MAAM7C,oBAAoB6C,IAAI;gBAC9B0B,aAAavE,oBAAoBuE,WAAW;YAChD;YACAC,MAAM9D;QACV;QACAtC,YAAYA,WAAWqE,MAAM,CAAC;YAC1BC,YAAYzC;YACZuE,MAAM,IAAO,CAAA;oBAAC7B,MAAM;wBAAC,2BAA2B;oBAA6B;gBAAC,CAAA;YAC9EC,cAAc;gBACV6B,UAAUjI;gBACVkI,cAAcnI;YAClB;QACJ;QACA8B,SAASA,QAAQoE,MAAM,CAAC;YACpBG,cAAc;gBACV+B,QAAQ;gBACRC,WAAW;YACf;QACJ;QACAtG,OAAOA,MAAMmE,MAAM,CAAC;YAChBC,YAAY;gBAACmC,cAAc3E,aAAa2E,YAAY;YAAA;QACxD;QACAtG,YAAYA,WAAWkE,MAAM,CAAC;YAC1BC,YAAY;gBAACoC,UAAU3E,kBAAkB2E,QAAQ;YAAA;QACrD;QACAtG,kBAAkBA,iBAAiBiE,MAAM,CAAC;YACtCC,YAAYtC;QAChB;QACA3B,QAAQA,OAAOgE,MAAM,CAAC;YAClBG,cAAc;gBAACmC,eAAe;gBAAOC,eAAe;YAAK;YACzDtC,YAAY;gBAACS,OAAO9C,cAAc8C,KAAK;gBAAEI,QAAQlD,cAAckD,MAAM;YAAA;QACzE;QACA7E,UAAUA,SAAS+D,MAAM,CAAC;YACtBC,YAAY;gBAACC,MAAMrC,gBAAgBqC,IAAI;YAAA;QAC3C;QACAhE,SAASA,QAAQ8D,MAAM,CAAC;YACpBG,cAAc;gBACVS,MAAM;gBACN4B,6BAAe,KAACxI;YACpB;YACAiG,YAAY;gBACRwC,MAAM3E,eAAe2E,IAAI;gBACzBC,UAAU5E,eAAe4E,QAAQ;gBACjCC,mBAAmB7E,eAAe6E,iBAAiB;gBACnDC,iBAAiB9E,eAAe8E,eAAe;gBAC/CC,WAAW/E,eAAe+E,SAAS;gBACnCC,mBAAmBhF,eAAegF,iBAAiB;YACvD;QACJ;QACA3G,MAAMA,KAAK6D,MAAM,CAAC;YACdC,YAAY;gBAAC8C,MAAMhF,YAAYgF,IAAI;gBAAEC,KAAKjF,YAAYiF,GAAG;YAAA;QAC7D;QACA5G,MAAMA,KAAK4D,MAAM,CAAC;YACdC,YAAYjC;YACZ+D,MAAM7D;QACV;QACA7B,WAAWA,UAAU2D,MAAM,CAAC;YACxBG,cAAc;gBACVK,QAAQ;YACZ;QACJ;QACAlE,SAASA,QAAQ0D,MAAM,CAAC;YACpBG,cAAc;gBACV9F,OAAO;gBACP4I,KAAK;gBACLC,WAAW;gBACXf,WAAW;gBACXgB,QAAQ;YACZ;QACJ;IACJ;AACJ,GAAG"}
1
+ {"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {\n ArrowHeadLeftSize16Px,\n ArrowHeadRightSize16Px,\n CheckSize16Px,\n CrossSize16Px,\n FilterSize16Px,\n InfoSize16Px,\n InfoSize24Px,\n} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n ActionIcon,\n Alert,\n Anchor,\n AppShellNavbar,\n Badge,\n Button,\n Checkbox,\n CloseButton,\n ColorSwatch,\n Combobox,\n ComboboxSearch,\n createTheme,\n Divider,\n Input,\n InputWrapper,\n List,\n Loader,\n MantineThemeOverride,\n MenuItem,\n Modal,\n MultiSelect,\n NavLink,\n Notification,\n Pagination,\n Popover,\n Radio,\n ScrollArea,\n SegmentedControl,\n Select,\n Skeleton,\n Stepper,\n Tabs,\n Text,\n TextInput,\n Tooltip,\n} from '@mantine/core';\nimport {DatePicker} from '@mantine/dates';\nimport ActionIconClasses from '../styles/ActionIcon.module.css';\nimport AlertClasses from '../styles/Alert.module.css';\nimport AnchorClasses from '../styles/Anchor.module.css';\nimport AppShellNavBarClasses from '../styles/AppShellNavBar.module.css';\nimport BadgeClasses from '../styles/Badge.module.css';\nimport ButtonClasses from '../styles/Button.module.css';\nimport CheckboxClasses from '../styles/Checkbox.module.css';\nimport ComboboxClasses from '../styles/Combobox.module.css';\nimport DatePickerClasses from '../styles/DatePicker.module.css';\nimport InputClasses from '../styles/Input.module.css';\nimport InputWrapperClasses from '../styles/InputWrapper.module.css';\nimport ListClasses from '../styles/List.module.css';\nimport ModalClasses from '../styles/Modal.module.css';\nimport NavLinkClasses from '../styles/NavLink.module.css';\nimport NotificationClasses from '../styles/Notification.module.css';\nimport PaginationClasses from '../styles/Pagination.module.css';\nimport RadioClasses from '../styles/Radio.module.css';\nimport ScrollAreaClasses from '../styles/ScrollArea.module.css';\nimport SegmentedControlClasses from '../styles/SegmentedControl.module.css';\nimport SelectClasses from '../styles/Select.module.css';\nimport SkeletonClasses from '../styles/Skeleton.module.css';\nimport StepperClasses from '../styles/Stepper.module.css';\nimport TabsClasses from '../styles/Tabs.module.css';\nimport TextClasses from '../styles/Text.module.css';\nimport {NotificationVars} from '../vars/Notification.vars';\nimport {TextVars} from '../vars/Text.vars';\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = createTheme({\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/packages/%40mantine/core/src/core/MantineProvider/default-theme.ts\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeights: {md: '1.5'},\n spacing: {\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: '500',\n sizes: {\n h1: {fontSize: '48px', lineHeight: '1.5', fontWeight: '300'},\n h2: {fontSize: '32px', lineHeight: '1.5', fontWeight: '500'},\n h3: {fontSize: '24px', lineHeight: '1.5', fontWeight: '500'},\n h4: {fontSize: '18px', lineHeight: '1.5', fontWeight: '300'},\n h5: {fontSize: '14px', lineHeight: '1.5', fontWeight: '500'},\n h6: {fontSize: '12px', lineHeight: '1.5', fontWeight: '500'},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n ActionIcon: ActionIcon.extend({\n classNames: {root: ActionIconClasses.root},\n }),\n Alert: Alert.extend({\n defaultProps: {\n icon: <InfoSize16Px height={16} />,\n color: 'navy',\n },\n classNames: AlertClasses,\n }),\n Anchor: Anchor.extend({\n defaultProps: {\n color: 'action.6',\n },\n classNames: {root: AnchorClasses.root},\n }),\n AppShellNavbar: AppShellNavbar.extend({\n classNames: {navbar: AppShellNavBarClasses.navbar},\n }),\n Badge: Badge.extend({\n classNames: {root: BadgeClasses.root},\n defaultProps: {\n variant: 'light',\n },\n }),\n Button: Button.extend({\n classNames: ButtonClasses,\n }),\n Checkbox: Checkbox.extend({\n defaultProps: {\n radius: 'sm',\n },\n classNames: {label: CheckboxClasses.label, input: CheckboxClasses.input},\n }),\n CloseButton: CloseButton.extend({\n defaultProps: {\n icon: <CrossSize16Px height={16} aria-label=\"close\" />,\n },\n }),\n ColorSwatch: ColorSwatch.extend({\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n }),\n Combobox: Combobox.extend({\n classNames: {option: SelectClasses.option, search: ComboboxClasses.search},\n }),\n ComboboxSearch: ComboboxSearch.extend({\n defaultProps: {\n placeholder: 'Search',\n rightSection: <FilterSize16Px height={16} color=\"gray.5\" />,\n },\n }),\n DatePicker: DatePicker.extend({\n classNames: {monthCell: DatePickerClasses.monthCell},\n }),\n Divider: Divider.extend({\n defaultProps: {\n color: 'gray.3',\n },\n }),\n Input: Input.extend({\n classNames: InputClasses,\n }),\n InputWrapper: InputWrapper.extend({\n classNames: InputWrapperClasses,\n }),\n Loader: Loader.extend({\n defaultProps: {\n type: 'dots',\n color: 'action',\n role: 'presentation',\n },\n }),\n List: List.extend({\n classNames: {root: ListClasses.root},\n }),\n MenuItem: MenuItem.extend({\n defaultProps: {\n fw: 300,\n },\n }),\n Modal: Modal.extend({\n classNames: ModalClasses,\n }),\n ModalOverlay: Modal.Overlay.extend({\n defaultProps: {\n color: color.primary.navy[9],\n backgroundOpacity: 0.9,\n },\n }),\n ModalRoot: Modal.Root.extend({\n defaultProps: {\n padding: 'lg',\n },\n }),\n MultiSelect: MultiSelect.extend({defaultProps: {hidePickedOptions: true}}),\n NavLink: NavLink.extend({classNames: NavLinkClasses}),\n Notification: Notification.extend({\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n classNames: {\n root: NotificationClasses.root,\n icon: NotificationClasses.icon,\n closeButton: NotificationClasses.closeButton,\n },\n vars: NotificationVars,\n }),\n Pagination: Pagination.extend({\n classNames: PaginationClasses,\n vars: () => ({root: {'--pagination-control-fz': 'var(--mantine-font-size-sm)'}}),\n defaultProps: {\n nextIcon: ArrowHeadRightSize16Px,\n previousIcon: ArrowHeadLeftSize16Px,\n },\n }),\n Popover: Popover.extend({\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n }),\n Radio: Radio.extend({\n classNames: {labelWrapper: RadioClasses.labelWrapper},\n }),\n ScrollArea: ScrollArea.extend({\n classNames: {viewport: ScrollAreaClasses.viewport},\n }),\n SegmentedControl: SegmentedControl.extend({\n classNames: SegmentedControlClasses,\n }),\n Select: Select.extend({\n defaultProps: {withCheckIcon: false, allowDeselect: false},\n classNames: {input: SelectClasses.input, option: SelectClasses.option},\n }),\n Skeleton: Skeleton.extend({\n classNames: {root: SkeletonClasses.root},\n }),\n Stepper: Stepper.extend({\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n classNames: {\n step: StepperClasses.step,\n stepIcon: StepperClasses.stepIcon,\n stepCompletedIcon: StepperClasses.stepCompletedIcon,\n stepDescription: StepperClasses.stepDescription,\n separator: StepperClasses.separator,\n verticalSeparator: StepperClasses.verticalSeparator,\n },\n }),\n Tabs: Tabs.extend({\n classNames: {list: TabsClasses.list, tab: TabsClasses.tab},\n }),\n Text: Text.extend({\n classNames: TextClasses,\n vars: TextVars,\n }),\n TextInput: TextInput.extend({\n defaultProps: {\n radius: 8,\n },\n }),\n Tooltip: Tooltip.extend({\n defaultProps: {\n color: 'navy',\n maw: 300,\n multiline: true,\n withArrow: true,\n zIndex: 10000,\n },\n }),\n },\n});\n"],"names":["ArrowHeadLeftSize16Px","ArrowHeadRightSize16Px","CheckSize16Px","CrossSize16Px","FilterSize16Px","InfoSize16Px","InfoSize24Px","color","ActionIcon","Alert","Anchor","AppShellNavbar","Badge","Button","Checkbox","CloseButton","ColorSwatch","Combobox","ComboboxSearch","createTheme","Divider","Input","InputWrapper","List","Loader","MenuItem","Modal","MultiSelect","NavLink","Notification","Pagination","Popover","Radio","ScrollArea","SegmentedControl","Select","Skeleton","Stepper","Tabs","Text","TextInput","Tooltip","DatePicker","ActionIconClasses","AlertClasses","AnchorClasses","AppShellNavBarClasses","BadgeClasses","ButtonClasses","CheckboxClasses","ComboboxClasses","DatePickerClasses","InputClasses","InputWrapperClasses","ListClasses","ModalClasses","NavLinkClasses","NotificationClasses","PaginationClasses","RadioClasses","ScrollAreaClasses","SegmentedControlClasses","SelectClasses","SkeletonClasses","StepperClasses","TabsClasses","TextClasses","NotificationVars","TextVars","PlasmaColors","plasmaTheme","fontFamily","black","primary","gray","defaultRadius","lineHeights","md","spacing","xs","sm","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","lineHeight","h2","h3","h4","h5","h6","shadows","colors","components","extend","classNames","root","defaultProps","icon","height","navbar","variant","radius","label","input","aria-label","size","withShadow","option","search","placeholder","rightSection","monthCell","type","role","fw","ModalOverlay","Overlay","navy","backgroundOpacity","ModalRoot","Root","padding","hidePickedOptions","closeButton","vars","nextIcon","previousIcon","shadow","withArrow","labelWrapper","viewport","withCheckIcon","allowDeselect","completedIcon","step","stepIcon","stepCompletedIcon","stepDescription","separator","verticalSeparator","list","tab","maw","multiline","zIndex"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=index.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/types/svg/index.d.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveord/plasma-mantine",
3
- "version": "54.1.0",
3
+ "version": "54.1.2",
4
4
  "description": "A Plasma flavoured Mantine theme",
5
5
  "keywords": [
6
6
  "plasma",
@@ -42,18 +42,18 @@
42
42
  "lodash.debounce": "4.0.8",
43
43
  "lodash.defaultsdeep": "4.6.1",
44
44
  "monaco-editor": "0.50.0",
45
- "@coveord/plasma-react-icons": "54.0.3",
46
- "@coveord/plasma-tokens": "54.0.3"
45
+ "@coveord/plasma-react-icons": "54.1.1",
46
+ "@coveord/plasma-tokens": "54.1.1"
47
47
  },
48
48
  "devDependencies": {
49
- "@mantine/carousel": "7.10.2",
50
- "@mantine/code-highlight": "7.10.2",
51
- "@mantine/core": "7.10.2",
52
- "@mantine/dates": "7.10.2",
53
- "@mantine/form": "7.10.2",
54
- "@mantine/hooks": "7.10.2",
55
- "@mantine/modals": "7.10.2",
56
- "@mantine/notifications": "7.10.2",
49
+ "@mantine/carousel": "7.11.0",
50
+ "@mantine/code-highlight": "7.11.0",
51
+ "@mantine/core": "7.11.0",
52
+ "@mantine/dates": "7.11.0",
53
+ "@mantine/form": "7.11.0",
54
+ "@mantine/hooks": "7.11.0",
55
+ "@mantine/modals": "7.11.0",
56
+ "@mantine/notifications": "7.11.0",
57
57
  "@swc/cli": "0.3.14",
58
58
  "@swc/core": "1.6.5",
59
59
  "@testing-library/dom": "10.2.0",
@@ -81,7 +81,7 @@
81
81
  "tslib": "2.6.3",
82
82
  "typescript": "5.5.2",
83
83
  "vitest": "1.6.0",
84
- "eslint-config-plasma": "54.0.3"
84
+ "eslint-config-plasma": "54.1.1"
85
85
  },
86
86
  "peerDependencies": {
87
87
  "@mantine/carousel": "^7.6.1",
@@ -0,0 +1,11 @@
1
+ import {createSafeContext, GetStylesApi} from '@mantine/core';
2
+ import {PromptFactory, PromptVariant} from './Prompt';
3
+
4
+ interface PromptContext {
5
+ variant: PromptVariant;
6
+ getStyles: GetStylesApi<PromptFactory>;
7
+ }
8
+
9
+ export const [PromptContextProvider, usePromptContext] = createSafeContext<PromptContext>(
10
+ 'Prompt component was not found in the tree',
11
+ );
@@ -1,45 +1,35 @@
1
1
  .root {
2
- &[data-variant='success']&[data-size] {
3
- .header {
4
- background-color: var(--mantine-color-lime-6);
5
- }
6
- }
7
- &[data-variant='warning']&[data-size] {
8
- .header {
9
- background-color: var(--mantine-color-yellow-5);
10
- }
11
- }
12
- &[data-variant='critical']&[data-size] {
13
- .header {
14
- background-color: var(--mantine-color-red-6);
15
- }
2
+ --prompt-icon-size: 88px;
3
+
4
+ .header {
5
+ border-bottom: none;
6
+ align-items: center;
16
7
  }
17
- &[data-variant='info']&[data-size] {
18
- .header {
19
- background-color: var(--mantine-color-navy-5);
20
- }
8
+
9
+ .body {
10
+ padding: 0 var(--mantine-spacing-lg) var(--mantine-spacing-lg)
11
+ calc(var(--prompt-icon-size) + (2 * var(--mantine-spacing-lg)));
21
12
  }
22
13
  }
23
14
 
24
- .title {
25
- color: var(--mantine-color-white);
15
+ .icon {
16
+ width: var(--prompt-icon-size);
17
+ height: var(--prompt-icon-size);
26
18
  }
27
19
 
28
20
  .header {
21
+ gap: var(--mantine-spacing-lg);
29
22
  width: 100%;
30
- border-bottom: 1px solid var(--mantine-color-gray-3);
31
23
  font-size: var(--mantine-h3-font-size);
32
24
  line-height: var(--mantine-h3-line-height);
33
25
  overflow-wrap: anywhere;
34
- padding-top: var(--mantine-spacing-md);
35
- padding-bottom: var(--mantine-spacing-md);
26
+ padding: var(--mantine-spacing-lg) var(--mantine-spacing-md) var(--mantine-spacing-xs) var(--mantine-spacing-lg);
36
27
  }
37
28
 
38
- .whiteClose {
39
- @mixin light {
40
- color: var(--mantine-color-white);
41
- @mixin hover {
42
- background-color: transparent;
43
- }
44
- }
29
+ .close {
30
+ align-self: flex-start;
31
+ }
32
+
33
+ .inner {
34
+ color: var(--mantine-color-gray-7);
45
35
  }
@@ -1,43 +1,126 @@
1
- import {Box, Modal, ModalProps} from '@mantine/core';
1
+ import {
2
+ Box,
3
+ createVarsResolver,
4
+ factory,
5
+ Factory,
6
+ Image,
7
+ Modal,
8
+ ModalRootProps,
9
+ ModalStylesNames,
10
+ StylesApiProps,
11
+ useProps,
12
+ useStyles,
13
+ } from '@mantine/core';
2
14
  import {Children, ReactElement, ReactNode} from 'react';
3
- import PromptClasses from './Prompt.module.css';
15
+ import classes from './Prompt.module.css';
16
+ import Critical from './icons/critical.svg';
17
+ import Info from './icons/info.svg';
18
+ import Success from './icons/success.svg';
19
+ import Warning from './icons/warning.svg';
20
+ import {PromptContextProvider} from './Prompt.context';
21
+ import {PromptCancelButton, PromptCancelButtonStylesNamesVariant} from './PromptCancelButton';
22
+ import {PromptConfirmButton} from './PromptConfirmButton';
4
23
  import {PromptFooter} from './PromptFooter';
5
24
 
6
- export interface PromptProps extends ModalProps {
25
+ export type PromptVariant = 'success' | 'warning' | 'critical' | 'info';
26
+ export type PromptVars = {root: '--prompt-icon-size'};
27
+ export type PromptStylesNames = ModalStylesNames | 'icon' | PromptCancelButtonStylesNamesVariant;
28
+
29
+ export interface PromptProps
30
+ extends StylesApiProps<PromptFactory>,
31
+ Omit<ModalRootProps, 'classNames' | 'styles' | 'vars'> {
7
32
  /**
8
33
  * Controls prompt appearance
9
34
  *
10
35
  * @default "info"
11
36
  */
12
- variant?: 'success' | 'warning' | 'critical' | 'info';
37
+ variant?: PromptVariant;
13
38
  children: ReactNode;
39
+ title: ReactNode;
40
+ icon?: ReactNode;
14
41
  }
15
- interface PromptType {
16
- (props: PromptProps): ReactElement;
17
- Footer: typeof PromptFooter;
18
- }
19
42
 
20
- export const Prompt: PromptType = ({children, ...otherProps}) => {
21
- const {classNames: classesProps, ...otherPropsWithoutClasses} = otherProps;
43
+ export type PromptFactory = Factory<{
44
+ props: PromptProps;
45
+ ref: HTMLDivElement;
46
+ vars: PromptVars;
47
+ variant: PromptVariant;
48
+ stylesNames: PromptStylesNames;
49
+ staticComponents: {
50
+ CancelButton: typeof PromptCancelButton;
51
+ ConfirmButton: typeof PromptConfirmButton;
52
+ Footer: typeof PromptFooter;
53
+ };
54
+ }>;
55
+
56
+ const PROMPT_VARIANT_ICONS_SRC: Record<PromptVariant, string> = {
57
+ success: Success,
58
+ warning: Warning,
59
+ critical: Critical,
60
+ info: Info,
61
+ };
62
+
63
+ const defaultProps: Partial<PromptProps> = {
64
+ variant: 'info',
65
+ };
66
+
67
+ const varsResolver = createVarsResolver<PromptFactory>((_theme, {icon}) => ({
68
+ root: {
69
+ '--prompt-icon-size': icon ? undefined : '88px',
70
+ },
71
+ }));
72
+
73
+ export const Prompt = factory<PromptFactory>((_props, ref) => {
74
+ const props = useProps('Prompt', defaultProps, _props);
75
+ const {variant, title, icon, children, className, classNames, style, styles, unstyled, vars, ...others} = props;
76
+ const getStyles = useStyles<PromptFactory>({
77
+ name: 'Prompt',
78
+ props,
79
+ classes,
80
+ className,
81
+ style,
82
+ classNames,
83
+ styles,
84
+ unstyled,
85
+ vars,
86
+ varsResolver,
87
+ });
88
+ const stylesApiProps = {classNames, styles};
89
+
22
90
  const convertedChildren = Children.toArray(children) as ReactElement[];
23
91
 
24
92
  const otherChildren = convertedChildren.filter((child) => child.type !== PromptFooter);
25
93
  const footer = convertedChildren.find((child) => child.type === PromptFooter);
26
94
 
27
- const classNames = {
28
- root: PromptClasses.root,
29
- header: PromptClasses.header,
30
- close: PromptClasses.whiteClose,
31
- body: PromptClasses.body,
32
- title: PromptClasses.title,
33
- };
34
-
35
95
  return (
36
- <Modal variant="prompt" classNames={{...classNames, ...classesProps}} size="sm" {...otherPropsWithoutClasses}>
37
- <Box className={PromptClasses.innerBody}>{otherChildren}</Box>
38
- {footer}
39
- </Modal>
96
+ <PromptContextProvider value={{variant, getStyles}}>
97
+ <Modal.Root ref={ref} variant="prompt" size="sm" {...others} {...getStyles('root')}>
98
+ <Modal.Overlay {...getStyles('overlay', stylesApiProps)} />
99
+ <Modal.Content {...getStyles('content', stylesApiProps)}>
100
+ <Modal.Header {...getStyles('header', stylesApiProps)}>
101
+ {icon || icon === null ? (
102
+ icon
103
+ ) : (
104
+ <Image
105
+ alt=""
106
+ role="presentation"
107
+ {...getStyles('icon', stylesApiProps)}
108
+ src={PROMPT_VARIANT_ICONS_SRC[variant]}
109
+ />
110
+ )}
111
+ <Modal.Title {...getStyles('title', stylesApiProps)}>{title}</Modal.Title>
112
+ <Modal.CloseButton {...getStyles('close', stylesApiProps)} />
113
+ </Modal.Header>
114
+ <Modal.Body {...getStyles('body', stylesApiProps)}>
115
+ <Box {...getStyles('inner', stylesApiProps)}>{otherChildren}</Box>
116
+ </Modal.Body>
117
+ {footer}
118
+ </Modal.Content>
119
+ </Modal.Root>
120
+ </PromptContextProvider>
40
121
  );
41
- };
122
+ });
42
123
 
124
+ Prompt.CancelButton = PromptCancelButton;
125
+ Prompt.ConfirmButton = PromptConfirmButton;
43
126
  Prompt.Footer = PromptFooter;
@@ -0,0 +1,33 @@
1
+ import {Button, CompoundStylesApiProps, factory, Factory, useProps} from '@mantine/core';
2
+ import {ButtonProps} from '../button/Button';
3
+ import {usePromptContext} from './Prompt.context';
4
+
5
+ export type PromptCancelButtonStylesNamesVariant = 'cancel';
6
+
7
+ export interface PromptCancelButtonProps
8
+ extends CompoundStylesApiProps<PromptCancelButtonFactory>,
9
+ Omit<ButtonProps, 'primary' | 'classNames' | 'styles' | 'vars' | 'variant'> {}
10
+
11
+ export type PromptCancelButtonFactory = Factory<{
12
+ props: PromptCancelButtonProps;
13
+ ref: HTMLButtonElement;
14
+ stylesNames: PromptCancelButtonStylesNamesVariant;
15
+ compound: true;
16
+ }>;
17
+
18
+ const defaultProps: Partial<PromptCancelButtonProps> = {};
19
+
20
+ export const PromptCancelButton = factory<PromptCancelButtonFactory>((_props, ref) => {
21
+ const {getStyles} = usePromptContext();
22
+ const props = useProps('PromptCancelButton', defaultProps, _props);
23
+ const {className, classNames, style, styles, unstyled, vars, ...others} = props;
24
+
25
+ return (
26
+ <Button
27
+ ref={ref}
28
+ variant="outline"
29
+ {...others}
30
+ {...getStyles('cancel', {style, styles, className, classNames})}
31
+ />
32
+ );
33
+ });
@@ -0,0 +1,42 @@
1
+ import {Button, CompoundStylesApiProps, factory, Factory, useProps} from '@mantine/core';
2
+ import {ButtonProps} from '../button/Button';
3
+ import {PromptVariant} from './Prompt';
4
+ import {usePromptContext} from './Prompt.context';
5
+
6
+ export type PromptConfirmButtonStylesNamesVariant = 'confirm';
7
+
8
+ export interface PromptConfirmButtonProps
9
+ extends CompoundStylesApiProps<PromptConfirmButtonFactory>,
10
+ Omit<ButtonProps, 'primary' | 'classNames' | 'styles' | 'vars' | 'variant'> {}
11
+
12
+ export type PromptConfirmButtonFactory = Factory<{
13
+ props: PromptConfirmButtonProps;
14
+ ref: HTMLButtonElement;
15
+ stylesNames: PromptConfirmButtonStylesNamesVariant;
16
+ compound: true;
17
+ }>;
18
+
19
+ const COLOR_BY_VARIANT: Record<PromptVariant, string> = {
20
+ success: 'action',
21
+ info: 'action',
22
+ warning: 'critical',
23
+ critical: 'critical',
24
+ };
25
+
26
+ const defaultProps: Partial<PromptConfirmButtonProps> = {};
27
+
28
+ export const PromptConfirmButton = factory<PromptConfirmButtonFactory>((_props, ref) => {
29
+ const {variant, getStyles} = usePromptContext();
30
+ const props = useProps('PromptConfirmButton', defaultProps, _props);
31
+ const {className, classNames, style, styles, unstyled, vars, ...others} = props;
32
+
33
+ return (
34
+ <Button
35
+ ref={ref}
36
+ variant="filled"
37
+ color={COLOR_BY_VARIANT[variant]}
38
+ {...others}
39
+ {...getStyles('cancel', {style, styles, className, classNames})}
40
+ />
41
+ );
42
+ });
@@ -4,7 +4,7 @@ import {StickyFooter, StickyFooterProps} from '../sticky-footer';
4
4
  export interface PromptFooterProps extends StickyFooterProps {}
5
5
 
6
6
  export const PromptFooter: FunctionComponent<PropsWithChildren<PromptFooterProps>> = ({children, ...otherProps}) => (
7
- <StickyFooter p={0} pt="lg" {...otherProps}>
7
+ <StickyFooter borderTop {...otherProps}>
8
8
  {children}
9
9
  </StickyFooter>
10
10
  );