@coveord/plasma-mantine 52.12.0 → 52.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +30 -30
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.d.ts +4 -0
- package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +10 -2
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/table/Table.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.js +6 -1
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/Th.js +2 -1
- package/dist/cjs/components/table/Th.js.map +1 -1
- package/dist/cjs/components/table/layouts/RowLayout.js +2 -1
- package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/cjs/theme/Theme.d.ts.map +1 -1
- package/dist/cjs/theme/Theme.js +17 -0
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.d.ts +4 -0
- package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +10 -2
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/table/Table.d.ts.map +1 -1
- package/dist/esm/components/table/Table.js +7 -2
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Th.js +2 -1
- package/dist/esm/components/table/Th.js.map +1 -1
- package/dist/esm/components/table/layouts/RowLayout.js +2 -1
- package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/esm/theme/Theme.d.ts.map +1 -1
- package/dist/esm/theme/Theme.js +18 -1
- package/dist/esm/theme/Theme.js.map +1 -1
- package/package.json +6 -6
- package/src/components/code-editor/CodeEditor.tsx +8 -1
- package/src/components/code-editor/__tests__/CodeEditor.spec.tsx +17 -0
- package/src/components/table/Table.tsx +13 -1
- package/src/components/table/Th.tsx +1 -1
- package/src/components/table/layouts/RowLayout.tsx +1 -1
- package/src/theme/Theme.tsx +18 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {\n Box,\n Center,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Loader,\n px,\n Selectors,\n Space,\n Stack,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader, Monaco} from '@monaco-editor/react';\nimport {FunctionComponent, useEffect, useState, useRef} from 'react';\n\nimport {useParentHeight} from '../../hooks';\nimport {XML} from './languages/xml';\nimport {CopyToClipboard} from '../copyToClipboard';\nimport {Search} from './search';\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n const editorRef = useRef(null);\n\n const loadLocalMonaco = async () => {\n const monacoInstance = await import('monaco-editor');\n loader.config({monaco: monacoInstance});\n setLoaded(true);\n };\n\n const registerLanguages = (monaco: Monaco) => {\n if (monaco && language === 'xml') {\n XML.register(monaco);\n }\n };\n\n const handleSearch = () => {\n if (editorRef.current) {\n editorRef.current.focus();\n editorRef.current.trigger('editor', 'actions.find', '');\n }\n };\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : (\n <Space h=\"xs\" />\n );\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _buttons = (\n <Group position=\"right\" spacing={0}>\n <Search handleSearch={handleSearch} />\n <CopyToClipboard value={_value} />\n </Group>\n );\n\n const _editor = loaded ? (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: px(theme.fontSizes.xs),\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n registerLanguages(monaco);\n editor.onDidFocusEditorText(() => onFocus?.());\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={classes.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_buttons}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["Box","Center","createStyles","Group","Input","Loader","px","Space","Stack","useComponentDefaultProps","useUncontrolled","Editor","loader","useEffect","useState","useRef","useParentHeight","XML","CopyToClipboard","Search","useStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","monacoLoader","defaultValue","minHeight","CodeEditor","props","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","loaded","setLoaded","classes","finalValue","_value","handleChange","parentHeight","ref","editorRef","loadLocalMonaco","monacoInstance","config","monaco","registerLanguages","register","handleSearch","current","focus","trigger","_label","Label","_description","Description","_error","Error","mt","h","_header","_buttons","position","spacing","_editor","p","pl","className","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","justify","sx","Math","max"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {\n Box,\n Center,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Loader,\n px,\n Selectors,\n Space,\n Stack,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader, Monaco} from '@monaco-editor/react';\nimport {FunctionComponent, useEffect, useState, useRef} from 'react';\n\nimport {useParentHeight} from '../../hooks';\nimport {XML} from './languages/xml';\nimport {CopyToClipboard} from '../copyToClipboard';\nimport {Search} from './search';\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the search icon is clicked */\n onSearch?(): void;\n /** Called whenever the copy icon is clicked */\n onCopy?(): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onCopy,\n onSearch,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n const editorRef = useRef(null);\n\n const loadLocalMonaco = async () => {\n const monacoInstance = await import('monaco-editor');\n loader.config({monaco: monacoInstance});\n setLoaded(true);\n };\n\n const registerLanguages = (monaco: Monaco) => {\n if (monaco && language === 'xml') {\n XML.register(monaco);\n }\n };\n\n const handleSearch = () => {\n if (editorRef.current) {\n editorRef.current.focus();\n editorRef.current.trigger('editor', 'actions.find', '');\n onSearch?.();\n }\n };\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : (\n <Space h=\"xs\" />\n );\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _buttons = (\n <Group position=\"right\" spacing={0}>\n <Search handleSearch={handleSearch} />\n <CopyToClipboard value={_value} onCopy={() => onCopy?.()} />\n </Group>\n );\n\n const _editor = loaded ? (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: px(theme.fontSizes.xs),\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n registerLanguages(monaco);\n editor.onDidFocusEditorText(() => onFocus?.());\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={classes.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_buttons}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["Box","Center","createStyles","Group","Input","Loader","px","Space","Stack","useComponentDefaultProps","useUncontrolled","Editor","loader","useEffect","useState","useRef","useParentHeight","XML","CopyToClipboard","Search","useStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","monacoLoader","defaultValue","minHeight","CodeEditor","props","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","loaded","setLoaded","classes","finalValue","_value","handleChange","parentHeight","ref","editorRef","loadLocalMonaco","monacoInstance","config","monaco","registerLanguages","register","handleSearch","current","focus","trigger","_label","Label","_description","Description","_error","Error","mt","h","_header","_buttons","position","spacing","_editor","p","pl","className","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","justify","sx","Math","max"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;AAiB/E,eAAO,MAAM,KAAK,EAAE,SAoLnB,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
7
7
|
import { Box, Center, Loader } from "@mantine/core";
|
|
8
8
|
import { useForm } from "@mantine/form";
|
|
9
9
|
import { useDidUpdate } from "@mantine/hooks";
|
|
10
|
-
import { getCoreRowModel, useReactTable } from "@tanstack/react-table";
|
|
10
|
+
import { defaultColumnSizing, getCoreRowModel, useReactTable } from "@tanstack/react-table";
|
|
11
11
|
import debounce from "lodash.debounce";
|
|
12
12
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
13
13
|
import { Children, cloneElement, useCallback, useEffect, useState } from "react";
|
|
@@ -82,7 +82,12 @@ export var Table = function(param) {
|
|
|
82
82
|
var _getExpandChildren;
|
|
83
83
|
return (_ref = !!((_getExpandChildren = getExpandChildren) === null || _getExpandChildren === void 0 ? void 0 : _getExpandChildren(row.original))) !== null && _ref !== void 0 ? _ref : false;
|
|
84
84
|
},
|
|
85
|
-
enableRowSelection: !loading
|
|
85
|
+
enableRowSelection: !loading,
|
|
86
|
+
defaultColumn: {
|
|
87
|
+
size: undefined,
|
|
88
|
+
minSize: defaultColumnSizing.minSize,
|
|
89
|
+
maxSize: defaultColumnSizing.maxSize
|
|
90
|
+
}
|
|
86
91
|
}, options));
|
|
87
92
|
var _useState = _sliced_to_array(useState(table.initialState), 2), state = _useState[0], setState = _useState[1];
|
|
88
93
|
table.setOptions(function(prev) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ColumnDef, getCoreRowModel, Row, TableState as TanstackTableState, useReactTable} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, cloneElement, Dispatch, ReactElement, useCallback, useEffect, useState} from 'react';\n\nimport {TableLayouts} from './layouts/TableLayouts';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableActions} from './TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {TableConsumer} from './TableConsumer';\nimport {TableContext} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TableLastUpdated} from './TableLastUpdated';\nimport {TableLoading} from './TableLoading';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {TableSelectableColumn} from './TableSelectableColumn';\nimport {useRowSelection} from './useRowSelection';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n options = {},\n}: TableProps<T>) => {\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 consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles();\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n ...options,\n });\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.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 table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Box","Center","Loader","useForm","useDidUpdate","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","TableLayouts","useStyles","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableConsumer","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","TableSelectableColumn","useRowSelection","Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","options","form","convertedChildren","toArray","header","find","child","type","footer","consumer","lastUpdated","predicates","dateRange","initialStateWithoutForm","initialValues","layout","name","classes","table","pagination","pageSize","DEFAULT_SIZE","globalFilter","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","cancel","sorting","JSON","stringify","clearFilters","setFieldValue","prevState","sx","flexGrow","Layout","hasRows","getRowModel","rows","length","ref","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","getAllColumns","Header","tbody","Body","td","visible","dependencies","props","Actions","Filter","Footer","LastUpdated","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n getCoreRowModel,\n Row,\n TableState as TanstackTableState,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, cloneElement, Dispatch, ReactElement, useCallback, useEffect, useState} from 'react';\n\nimport {TableLayouts} from './layouts/TableLayouts';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableActions} from './TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {TableConsumer} from './TableConsumer';\nimport {TableContext} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TableLastUpdated} from './TableLastUpdated';\nimport {TableLoading} from './TableLoading';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {TableSelectableColumn} from './TableSelectableColumn';\nimport {useRowSelection} from './useRowSelection';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n options = {},\n}: TableProps<T>) => {\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 consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles();\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.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 table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Box","Center","Loader","useForm","useDidUpdate","defaultColumnSizing","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","cloneElement","useCallback","useEffect","useState","TableLayouts","useStyles","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableConsumer","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TableLastUpdated","TableLoading","TablePagination","TablePerPage","TablePredicate","TableSelectableColumn","useRowSelection","Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","options","form","convertedChildren","toArray","header","find","child","type","footer","consumer","lastUpdated","predicates","dateRange","initialStateWithoutForm","initialValues","layout","name","classes","table","pagination","pageSize","DEFAULT_SIZE","globalFilter","concat","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","maxSize","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","cancel","sorting","JSON","stringify","clearFilters","setFieldValue","prevState","sx","flexGrow","Layout","hasRows","getRowModel","rows","length","ref","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","getAllColumns","Header","tbody","Body","td","visible","dependencies","props","Actions","Filter","Footer","LastUpdated","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px } from "@coveord/plasma-react-icons";
|
|
5
5
|
import { Center, Group, Text, UnstyledButton, createStyles } from "@mantine/core";
|
|
6
6
|
import { defaultColumnSizing, flexRender } from "@tanstack/react-table";
|
|
7
|
+
var _columnSizing_size;
|
|
7
8
|
var useStyles = createStyles(function(theme, columnSizing) {
|
|
8
9
|
return {
|
|
9
10
|
th: {
|
|
@@ -14,7 +15,7 @@ var useStyles = createStyles(function(theme, columnSizing) {
|
|
|
14
15
|
textAlign: "left",
|
|
15
16
|
color: theme.colors.gray[6],
|
|
16
17
|
backgroundColor: theme.colorScheme === "dark" ? theme.colors.gray[8] : theme.colors.gray[0],
|
|
17
|
-
width: columnSizing.size,
|
|
18
|
+
width: (_columnSizing_size = columnSizing.size) !== null && _columnSizing_size !== void 0 ? _columnSizing_size : "auto",
|
|
18
19
|
minWidth: columnSizing.minSize,
|
|
19
20
|
maxWidth: columnSizing.maxSize
|
|
20
21
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Th.tsx"],"sourcesContent":["import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';\nimport {Center, Group, Text, UnstyledButton, createStyles} from '@mantine/core';\nimport {Header, defaultColumnSizing, flexRender} from '@tanstack/react-table';\n\nconst useStyles = createStyles((theme, columnSizing: {size: number; minSize: number; maxSize: number}) => ({\n th: {\n fontWeight: '400 !important' as any,\n padding: '0 !important',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n textAlign: 'left',\n color: theme.colors.gray[6],\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[8] : theme.colors.gray[0],\n width: columnSizing.size,\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n },\n\n control: {\n color: 'inherit',\n whiteSpace: 'inherit',\n fontWeight: 'inherit',\n width: '100%',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[7] : theme.colors.gray[1],\n },\n },\n}));\n\ninterface ThProps<T> {\n header: Header<T, unknown>;\n}\n\nconst SortingIcons = {\n asc: ArrowUpSize16Px,\n desc: ArrowDownSize16Px,\n none: DoubleArrowHeadVSize16Px,\n};\n\nconst SortingLabels = {\n asc: 'ascending',\n desc: 'descending',\n none: 'none',\n} as const;\n\nexport const Th = <T,>({header}: ThProps<T>) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: header.column.columnDef.size,\n minSize: header.column.columnDef.minSize,\n maxSize: header.column.columnDef.maxSize,\n };\n\n const {classes} = useStyles(columnSizing);\n\n if (header.isPlaceholder) {\n return null;\n }\n\n if (!header.column.getCanSort()) {\n return (\n <th className={classes.th}>\n <Text size=\"xs\" py=\"xs\" px=\"sm\" fw={500}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n </th>\n );\n }\n\n const onSort = header.column.getToggleSortingHandler();\n const sortingOrder = header.column.getIsSorted() || 'none';\n const Icon = SortingIcons[sortingOrder];\n\n return (\n <th className={classes.th} aria-sort={SortingLabels[sortingOrder]}>\n <UnstyledButton onClick={onSort} className={classes.control}>\n <Group position=\"apart\" noWrap>\n <Text size=\"xs\" fw={500}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n <Center>\n <Icon height={14} />\n </Center>\n </Group>\n </UnstyledButton>\n </th>\n );\n};\n"],"names":["ArrowDownSize16Px","ArrowUpSize16Px","DoubleArrowHeadVSize16Px","Center","Group","Text","UnstyledButton","createStyles","defaultColumnSizing","flexRender","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Th.tsx"],"sourcesContent":["import {ArrowDownSize16Px, ArrowUpSize16Px, DoubleArrowHeadVSize16Px} from '@coveord/plasma-react-icons';\nimport {Center, Group, Text, UnstyledButton, createStyles} from '@mantine/core';\nimport {Header, defaultColumnSizing, flexRender} from '@tanstack/react-table';\n\nconst useStyles = createStyles((theme, columnSizing: {size: number; minSize: number; maxSize: number}) => ({\n th: {\n fontWeight: '400 !important' as any,\n padding: '0 !important',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n textAlign: 'left',\n color: theme.colors.gray[6],\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[8] : theme.colors.gray[0],\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n },\n\n control: {\n color: 'inherit',\n whiteSpace: 'inherit',\n fontWeight: 'inherit',\n width: '100%',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.gray[7] : theme.colors.gray[1],\n },\n },\n}));\n\ninterface ThProps<T> {\n header: Header<T, unknown>;\n}\n\nconst SortingIcons = {\n asc: ArrowUpSize16Px,\n desc: ArrowDownSize16Px,\n none: DoubleArrowHeadVSize16Px,\n};\n\nconst SortingLabels = {\n asc: 'ascending',\n desc: 'descending',\n none: 'none',\n} as const;\n\nexport const Th = <T,>({header}: ThProps<T>) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: header.column.columnDef.size,\n minSize: header.column.columnDef.minSize,\n maxSize: header.column.columnDef.maxSize,\n };\n\n const {classes} = useStyles(columnSizing);\n\n if (header.isPlaceholder) {\n return null;\n }\n\n if (!header.column.getCanSort()) {\n return (\n <th className={classes.th}>\n <Text size=\"xs\" py=\"xs\" px=\"sm\" fw={500}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n </th>\n );\n }\n\n const onSort = header.column.getToggleSortingHandler();\n const sortingOrder = header.column.getIsSorted() || 'none';\n const Icon = SortingIcons[sortingOrder];\n\n return (\n <th className={classes.th} aria-sort={SortingLabels[sortingOrder]}>\n <UnstyledButton onClick={onSort} className={classes.control}>\n <Group position=\"apart\" noWrap>\n <Text size=\"xs\" fw={500}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n <Center>\n <Icon height={14} />\n </Center>\n </Group>\n </UnstyledButton>\n </th>\n );\n};\n"],"names":["ArrowDownSize16Px","ArrowUpSize16Px","DoubleArrowHeadVSize16Px","Center","Group","Text","UnstyledButton","createStyles","defaultColumnSizing","flexRender","columnSizing","useStyles","theme","th","fontWeight","padding","verticalAlign","whiteSpace","textAlign","color","colors","gray","backgroundColor","colorScheme","width","size","minWidth","minSize","maxWidth","maxSize","control","spacing","xs","sm","SortingIcons","asc","desc","none","SortingLabels","Th","header","column","columnDef","classes","isPlaceholder","getCanSort","className","py","px","fw","getContext","onSort","getToggleSortingHandler","sortingOrder","getIsSorted","Icon","aria-sort","onClick","position","noWrap","height"],"mappings":";;;AAAA,SAAQA,iBAAiB,EAAEC,eAAe,EAAEC,wBAAwB,QAAO,8BAA8B;AACzG,SAAQC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,cAAc,EAAEC,YAAY,QAAO,gBAAgB;AAChF,SAAgBC,mBAAmB,EAAEC,UAAU,QAAO,wBAAwB;IAW/DC;AATf,IAAMC,YAAYJ,aAAa,SAACK,OAAOF;WAAoE;QACvGG,IAAI;YACAC,YAAY;YACZC,SAAS;YACTC,eAAe;YACfC,YAAY;YACZC,WAAW;YACXC,OAAOP,MAAMQ,MAAM,CAACC,IAAI,CAAC,EAAE;YAC3BC,iBAAiBV,MAAMW,WAAW,KAAK,SAASX,MAAMQ,MAAM,CAACC,IAAI,CAAC,EAAE,GAAGT,MAAMQ,MAAM,CAACC,IAAI,CAAC,EAAE;YAC3FG,OAAOd,CAAAA,qBAAAA,aAAae,IAAI,cAAjBf,gCAAAA,qBAAqB;YAC5BgB,UAAUhB,aAAaiB,OAAO;YAC9BC,UAAUlB,aAAamB,OAAO;QAClC;QAEAC,SAAS;YACLX,OAAO;YACPF,YAAY;YACZH,YAAY;YACZU,OAAO;YACPT,SAAS,AAAC,GAAsBH,OAApBA,MAAMmB,OAAO,CAACC,EAAE,EAAC,KAAoB,OAAjBpB,MAAMmB,OAAO,CAACE,EAAE;YAChD,WAAW;gBACPX,iBAAiBV,MAAMW,WAAW,KAAK,SAASX,MAAMQ,MAAM,CAACC,IAAI,CAAC,EAAE,GAAGT,MAAMQ,MAAM,CAACC,IAAI,CAAC,EAAE;YAC/F;QACJ;IACJ;;AAMA,IAAMa,eAAe;IACjBC,KAAKlC;IACLmC,MAAMpC;IACNqC,MAAMnC;AACV;AAEA,IAAMoC,gBAAgB;IAClBH,KAAK;IACLC,MAAM;IACNC,MAAM;AACV;AAEA,OAAO,IAAME,KAAK;QAAMC,eAAAA;IACpB,IAAM9B,eAAe,wCACdF;QACHiB,MAAMe,OAAOC,MAAM,CAACC,SAAS,CAACjB,IAAI;QAClCE,SAASa,OAAOC,MAAM,CAACC,SAAS,CAACf,OAAO;QACxCE,SAASW,OAAOC,MAAM,CAACC,SAAS,CAACb,OAAO;;IAG5C,IAAM,AAACc,UAAWhC,UAAUD,cAArBiC;IAEP,IAAIH,OAAOI,aAAa,EAAE;QACtB,OAAO;IACX;IAEA,IAAI,CAACJ,OAAOC,MAAM,CAACI,UAAU,IAAI;QAC7B,qBACI,KAAChC;YAAGiC,WAAWH,QAAQ9B,EAAE;sBACrB,cAAA,KAACR;gBAAKoB,MAAK;gBAAKsB,IAAG;gBAAKC,IAAG;gBAAKC,IAAI;0BAC/BxC,WAAW+B,OAAOC,MAAM,CAACC,SAAS,CAACF,MAAM,EAAEA,OAAOU,UAAU;;;IAI7E;IAEA,IAAMC,SAASX,OAAOC,MAAM,CAACW,uBAAuB;IACpD,IAAMC,eAAeb,OAAOC,MAAM,CAACa,WAAW,MAAM;IACpD,IAAMC,OAAOrB,YAAY,CAACmB,aAAa;IAEvC,qBACI,KAACxC;QAAGiC,WAAWH,QAAQ9B,EAAE;QAAE2C,aAAWlB,aAAa,CAACe,aAAa;kBAC7D,cAAA,KAAC/C;YAAemD,SAASN;YAAQL,WAAWH,QAAQb,OAAO;sBACvD,cAAA,MAAC1B;gBAAMsD,UAAS;gBAAQC,MAAM;;kCAC1B,KAACtD;wBAAKoB,MAAK;wBAAKwB,IAAI;kCACfxC,WAAW+B,OAAOC,MAAM,CAACC,SAAS,CAACF,MAAM,EAAEA,OAAOU,UAAU;;kCAEjE,KAAC/C;kCACG,cAAA,KAACoD;4BAAKK,QAAQ;;;;;;;AAMtC,EAAE"}
|
|
@@ -140,10 +140,11 @@ var RowLayoutBody = function(param) {
|
|
|
140
140
|
row.getToggleSelectedHandler();
|
|
141
141
|
}
|
|
142
142
|
};
|
|
143
|
+
var _columnSizing_size;
|
|
143
144
|
return /*#__PURE__*/ _jsx("td", {
|
|
144
145
|
"data-testid": cell.id,
|
|
145
146
|
style: {
|
|
146
|
-
width: columnSizing.size,
|
|
147
|
+
width: (_columnSizing_size = columnSizing.size) !== null && _columnSizing_size !== void 0 ? _columnSizing_size : "auto",
|
|
147
148
|
minWidth: columnSizing.minSize,
|
|
148
149
|
maxWidth: columnSizing.maxSize
|
|
149
150
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse, createStyles, rem} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout, TableLayoutProps} from '../Table.types';\nimport {TableCollapsibleColumn} from '../TableCollapsibleColumn';\nimport {useTable} from '../TableContext';\nimport {TableLoading} from '../TableLoading';\nimport {TableSelectableColumn} from '../TableSelectableColumn';\nimport {Th} from '../Th';\n\ninterface TableStylesParams {\n multiRowSelectionEnabled: boolean;\n disableRowSelection: boolean;\n}\n\nconst useStyles = createStyles<string, TableStylesParams>((theme, {multiRowSelectionEnabled, disableRowSelection}) => {\n const rowBackgroundColor =\n theme.colorScheme === 'dark' ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2) : theme.colors.gray[1];\n const border = `${rem(1)} solid ${theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]}`;\n return {\n headerColumns: {\n '& th:first-of-type > *': {\n paddingLeft: '40px',\n },\n\n '& input[type=checkbox]': {\n backgroundColor: disableRowSelection ? `${theme.colors.gray[2]}` : undefined,\n borderColor: disableRowSelection ? `${theme.colors.gray[3]}` : `${theme.colors.gray[4]}`,\n pointerEvents: disableRowSelection ? 'none' : 'auto',\n cursor: disableRowSelection ? 'not-allowed' : 'default',\n\n '& + svg': {\n color: disableRowSelection ? `${theme.colors.gray[5]}` : 'inherit',\n },\n },\n },\n\n rowSelected: {\n backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor,\n },\n\n rowUnselectable: {\n '& input[type=checkbox]': {\n backgroundColor: `${theme.colors.gray[2]}`,\n borderColor: `${theme.colors.gray[3]}`,\n pointerEvents: 'none',\n cursor: 'not-allowed',\n\n '&:checked + svg': {\n color: `${theme.colors.gray[5]}`,\n },\n },\n },\n\n rowCollapsibleButtonCell: {\n textAlign: 'right',\n padding: `calc(${theme.spacing.xs}/2) ${theme.spacing.sm} !important`,\n },\n\n row: {\n '& td:first-of-type': {\n paddingLeft: '40px',\n },\n '&:hover': {\n backgroundColor: rowBackgroundColor,\n },\n },\n\n cell: {\n verticalAlign: 'middle',\n // We must use height instead of minHeight here, otherwise it doesn't apply\n height: '56px',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n borderBottom: border,\n },\n\n collapsible: {\n backgroundColor: rowBackgroundColor,\n borderBottom: border,\n },\n };\n});\n\nconst RowLayoutHeader = <T,>({table}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles({disableRowSelection, multiRowSelectionEnabled});\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles({disableRowSelection, multiRowSelectionEnabled});\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size,\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["ListSize16Px","Box","Collapse","createStyles","rem","flexRender","defaultColumnSizing","Fragment","TableCollapsibleColumn","useTable","TableLoading","TableSelectableColumn","Th","useStyles","theme","multiRowSelectionEnabled","disableRowSelection","rowBackgroundColor","colorScheme","fn","rgba","colors","primaryColor","gray","border","dark","headerColumns","paddingLeft","backgroundColor","undefined","borderColor","pointerEvents","cursor","color","rowSelected","rowUnselectable","rowCollapsibleButtonCell","textAlign","padding","spacing","xs","sm","row","cell","verticalAlign","height","borderBottom","collapsible","RowLayoutHeader","table","classes","headers","getHeaderGroups","map","headerGroup","tr","className","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","cx","toggleCollapsible","el","children","length","querySelector","click","rows","getRowModel","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","onDoubleClick","aria-selected","data-testid","getVisibleCells","columnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","visible","getContext","colSpan","getAllColumns","in","getIsExpanded","px","py","RowLayout","name","icon","Header","Body"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse, createStyles, rem} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout, TableLayoutProps} from '../Table.types';\nimport {TableCollapsibleColumn} from '../TableCollapsibleColumn';\nimport {useTable} from '../TableContext';\nimport {TableLoading} from '../TableLoading';\nimport {TableSelectableColumn} from '../TableSelectableColumn';\nimport {Th} from '../Th';\n\ninterface TableStylesParams {\n multiRowSelectionEnabled: boolean;\n disableRowSelection: boolean;\n}\n\nconst useStyles = createStyles<string, TableStylesParams>((theme, {multiRowSelectionEnabled, disableRowSelection}) => {\n const rowBackgroundColor =\n theme.colorScheme === 'dark' ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2) : theme.colors.gray[1];\n const border = `${rem(1)} solid ${theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]}`;\n return {\n headerColumns: {\n '& th:first-of-type > *': {\n paddingLeft: '40px',\n },\n\n '& input[type=checkbox]': {\n backgroundColor: disableRowSelection ? `${theme.colors.gray[2]}` : undefined,\n borderColor: disableRowSelection ? `${theme.colors.gray[3]}` : `${theme.colors.gray[4]}`,\n pointerEvents: disableRowSelection ? 'none' : 'auto',\n cursor: disableRowSelection ? 'not-allowed' : 'default',\n\n '& + svg': {\n color: disableRowSelection ? `${theme.colors.gray[5]}` : 'inherit',\n },\n },\n },\n\n rowSelected: {\n backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor,\n },\n\n rowUnselectable: {\n '& input[type=checkbox]': {\n backgroundColor: `${theme.colors.gray[2]}`,\n borderColor: `${theme.colors.gray[3]}`,\n pointerEvents: 'none',\n cursor: 'not-allowed',\n\n '&:checked + svg': {\n color: `${theme.colors.gray[5]}`,\n },\n },\n },\n\n rowCollapsibleButtonCell: {\n textAlign: 'right',\n padding: `calc(${theme.spacing.xs}/2) ${theme.spacing.sm} !important`,\n },\n\n row: {\n '& td:first-of-type': {\n paddingLeft: '40px',\n },\n '&:hover': {\n backgroundColor: rowBackgroundColor,\n },\n },\n\n cell: {\n verticalAlign: 'middle',\n // We must use height instead of minHeight here, otherwise it doesn't apply\n height: '56px',\n padding: `${theme.spacing.xs} ${theme.spacing.sm}`,\n borderBottom: border,\n },\n\n collapsible: {\n backgroundColor: rowBackgroundColor,\n borderBottom: border,\n },\n };\n});\n\nconst RowLayoutHeader = <T,>({table}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles({disableRowSelection, multiRowSelectionEnabled});\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles({disableRowSelection, multiRowSelectionEnabled});\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["ListSize16Px","Box","Collapse","createStyles","rem","flexRender","defaultColumnSizing","Fragment","TableCollapsibleColumn","useTable","TableLoading","TableSelectableColumn","Th","useStyles","theme","multiRowSelectionEnabled","disableRowSelection","rowBackgroundColor","colorScheme","fn","rgba","colors","primaryColor","gray","border","dark","headerColumns","paddingLeft","backgroundColor","undefined","borderColor","pointerEvents","cursor","color","rowSelected","rowUnselectable","rowCollapsibleButtonCell","textAlign","padding","spacing","xs","sm","row","cell","verticalAlign","height","borderBottom","collapsible","RowLayoutHeader","table","classes","headers","getHeaderGroups","map","headerGroup","tr","className","columnHeader","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","cx","toggleCollapsible","el","children","length","querySelector","click","rows","getRowModel","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","onDoubleClick","aria-selected","data-testid","getVisibleCells","columnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","visible","getContext","colSpan","getAllColumns","in","getIsExpanded","px","py","RowLayout","name","icon","Header","Body"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,oBAAoB,EAK5B,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,WAAW,EAAE,oBA0XzB,CAAC"}
|
package/dist/esm/theme/Theme.js
CHANGED
|
@@ -4,7 +4,7 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { CheckSize16Px, InfoSize24Px } from "@coveord/plasma-react-icons";
|
|
6
6
|
import { color } from "@coveord/plasma-tokens";
|
|
7
|
-
import { getSize, rem } from "@mantine/core";
|
|
7
|
+
import { getSize, rem, getStylesRef } from "@mantine/core";
|
|
8
8
|
import { PlasmaColors } from "./PlasmaColors";
|
|
9
9
|
export var plasmaTheme = {
|
|
10
10
|
// These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts
|
|
@@ -434,6 +434,23 @@ export var plasmaTheme = {
|
|
|
434
434
|
}
|
|
435
435
|
};
|
|
436
436
|
}
|
|
437
|
+
},
|
|
438
|
+
NavLink: {
|
|
439
|
+
styles: function(theme) {
|
|
440
|
+
return {
|
|
441
|
+
root: {
|
|
442
|
+
color: theme.colors.gray[6],
|
|
443
|
+
borderRadius: "".concat(theme.defaultRadius, "px 0px 0px ").concat(theme.defaultRadius, "px")
|
|
444
|
+
},
|
|
445
|
+
label: {
|
|
446
|
+
ref: getStylesRef("label"),
|
|
447
|
+
fontWeight: 500
|
|
448
|
+
},
|
|
449
|
+
children: _define_property({}, ".".concat(getStylesRef("label")), {
|
|
450
|
+
fontWeight: 300
|
|
451
|
+
})
|
|
452
|
+
};
|
|
453
|
+
}
|
|
437
454
|
}
|
|
438
455
|
}
|
|
439
456
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {CheckSize16Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n getSize,\n rem,\n type MantineThemeOverride,\n type NotificationProps,\n type StepperStylesParams,\n type TabsStylesParams,\n} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeight: 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: undefined, fontWeight: 300},\n h2: {fontSize: '32px', lineHeight: undefined, fontWeight: 500},\n h3: {fontSize: '24px', lineHeight: undefined, fontWeight: 500},\n h4: {fontSize: '18px', lineHeight: undefined, fontWeight: 300},\n h5: {fontSize: '14px', lineHeight: undefined, fontWeight: 500},\n h6: {fontSize: '12px', lineHeight: undefined, 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 Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: {\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em'},\n },\n },\n },\n Text: {\n defaultProps: {\n weight: 300,\n },\n styles: (theme, {}, {size}) => ({\n root: {\n fontSize: getSize({size: size ?? 'sm', sizes: theme.fontSizes}),\n },\n }),\n },\n Button: {\n styles: () => ({\n root: {\n fontWeight: 400,\n },\n }),\n variants: {\n outline: () => ({\n root: {\n backgroundColor: 'white',\n },\n }),\n },\n },\n Modal: {\n styles: (theme, {fullScreen, padding}, {size, variant}) => ({\n content: {\n flex: fullScreen\n ? '0 0 100%'\n : `0 0 ${getSize({\n size,\n sizes: {\n xs: rem(432),\n sm: rem(664),\n md: rem(896),\n lg: rem(1120),\n xl: rem('88%'),\n },\n })}`,\n overflow: 'auto',\n },\n title: {\n width: '100%',\n fontSize: theme.headings.sizes.h3.fontSize,\n lineHeight: theme.headings.sizes.h3.lineHeight,\n fontWeight: 500,\n },\n header: {\n borderBottom: variant !== 'prompt' ? `1px solid ${color.primary.gray[3]}` : null,\n },\n body: {\n '&:not(:only-child)': {\n paddingTop: variant === 'prompt' ? 0 : getSize({size: padding, sizes: plasmaTheme.spacing}),\n },\n },\n }),\n },\n ModalOverlay: {\n defaultProps: {\n color: color.primary.navy[9],\n opacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n },\n description: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n },\n invalid: {\n color: theme.colors.red[9],\n borderColor: theme.colors.red[6],\n },\n error: {\n color: theme.colors.red[9],\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n withArrow: true,\n withinPortal: true,\n multiline: true,\n zIndex: 10000,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action.6',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n styles: (theme) => ({\n label: {\n fontSize: theme.fontSizes.sm,\n fontWeight: 300,\n },\n }),\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n ColorSwatch: {\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n },\n MenuItem: {\n defaultProps: {\n fw: 300,\n },\n },\n Notification: {\n styles: (theme, {color: notificationType}: NotificationProps) => ({\n root: {\n borderColor: theme.colors.gray[3],\n backgroundColor: theme.colors.gray[0],\n boxShadow: theme.shadows.lg,\n padding: theme.spacing.sm,\n '&[data-with-icon]': {\n paddingLeft: theme.spacing.sm,\n },\n },\n icon: {\n backgroundColor: 'transparent',\n marginRight: theme.spacing.sm,\n color: theme.colors?.[notificationType][6],\n },\n closeButton: {\n margin: theme.spacing.xs,\n color: theme.colors.gray[5],\n },\n }),\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n },\n Skeleton: {\n styles: {\n visible: {\n '&::before': {zIndex: 'unset'},\n '&::after': {zIndex: 'unset'},\n },\n },\n },\n SegmentedControl: {\n styles: (theme) => ({\n root: {\n backgroundColor: theme.colors.gray[2],\n },\n }),\n },\n Stepper: {\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n styles: (theme, {}: StepperStylesParams, {size}) => ({\n step: {\n '&[disabled]': {\n color: theme.colors.gray[5],\n '& .mantine-Stepper-stepDescription': {\n color: theme.colors.gray[5],\n },\n '& .mantine-Stepper-stepIcon': {\n borderColor: theme.colors.gray[1],\n },\n },\n },\n stepIcon: {\n fontWeight: 500,\n backgroundColor: theme.colors.gray[1],\n color: 'inherit',\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n '&[data-progress]': {\n backgroundColor: theme.white,\n },\n\n '&[data-completed]': {\n backgroundColor: theme.white,\n borderColor: theme.colors.lime[6],\n color: theme.colors.lime[6],\n },\n },\n stepCompletedIcon: {\n color: theme.colors.lime[6],\n fontSize: rem(16),\n },\n stepDescription: {\n color: theme.colors.gray[7],\n fontSize: getSize({size, sizes: theme.fontSizes}),\n },\n separator: {\n height: rem(1),\n backgroundColor: theme.colors.gray[3],\n },\n separatorActive: {\n backgroundColor: theme.colors.gray[3],\n },\n verticalSeparator: {\n borderLeft: `${rem(1)} solid ${theme.colors.gray[3]}`,\n },\n verticalSeparatorActive: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n Tabs: {\n styles: (theme, {orientation}: TabsStylesParams) => ({\n tabsList: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid ${\n theme.colors.gray[3]\n }`,\n },\n tab: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid transparent`,\n [orientation === 'horizontal' ? 'marginBottom' : 'marginRight']: rem(-1),\n },\n }),\n },\n Select: {\n styles: (theme) => ({\n input: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n },\n item: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n\n '&[data-hovered]': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[1],\n },\n\n '&[data-selected]': {\n backgroundColor: theme.fn.variant({variant: 'light'}).background,\n color: theme.fn.variant({variant: 'light'}).color,\n ...theme.fn.hover({backgroundColor: theme.fn.variant({variant: 'light'}).hover}),\n },\n },\n }),\n },\n },\n};\n"],"names":["CheckSize16Px","InfoSize24Px","color","getSize","rem","PlasmaColors","plasmaTheme","colorScheme","fontFamily","black","primary","gray","defaultRadius","lineHeight","spacing","xs","sm","md","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","undefined","h2","h3","h4","h5","h6","shadows","colors","components","Alert","defaultProps","icon","height","styles","title","Title","root","letterSpacing","Text","weight","theme","size","fontSizes","Button","variants","outline","backgroundColor","Modal","fullScreen","padding","variant","content","flex","overflow","width","header","borderBottom","body","paddingTop","ModalOverlay","navy","opacity","InputWrapper","withAsterisk","label","marginBottom","description","invalid","red","borderColor","error","TextInput","radius","Tooltip","withArrow","withinPortal","multiline","zIndex","Loader","DateRangePicker","cell","textAlign","Anchor","fn","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","ColorSwatch","withShadow","MenuItem","fw","Notification","notificationType","boxShadow","paddingLeft","marginRight","closeButton","margin","Skeleton","visible","SegmentedControl","Stepper","completedIcon","step","stepIcon","border","white","lime","stepCompletedIcon","stepDescription","separator","separatorActive","verticalSeparator","borderLeft","verticalSeparatorActive","Tabs","orientation","tabsList","tab","Select","input","dark","item","background"],"mappings":";;;;AAAA,SAAQA,aAAa,EAAEC,YAAY,QAAO,8BAA8B;AACxE,SAAQC,KAAK,QAAO,yBAAyB;AAC7C,SACIC,OAAO,EACPC,GAAG,QAKA,gBAAgB;AAEvB,SAAQC,YAAY,QAAO,iBAAiB;AAE5C,OAAO,IAAMC,cAAoC;IAC7C,2HAA2H;IAC3HC,aAAa;IACbC,YAAY;IACZC,OAAOP,MAAMQ,OAAO,CAACC,IAAI,CAAC,EAAE;IAC5BC,eAAe;IACfC,YAAY;IACZC,SAAS;QACLC,IAAI;QACJC,IAAI;QACJC,IAAI;QACJC,IAAI;QACJC,IAAI;IACR;IACAC,cAAc;IACdC,UAAU;QACNb,YAAY;QACZc,YAAY;QACZC,OAAO;YACHC,IAAI;gBAACC,UAAU;gBAAQZ,YAAYa;gBAAWJ,YAAY;YAAG;YAC7DK,IAAI;gBAACF,UAAU;gBAAQZ,YAAYa;gBAAWJ,YAAY;YAAG;YAC7DM,IAAI;gBAACH,UAAU;gBAAQZ,YAAYa;gBAAWJ,YAAY;YAAG;YAC7DO,IAAI;gBAACJ,UAAU;gBAAQZ,YAAYa;gBAAWJ,YAAY;YAAG;YAC7DQ,IAAI;gBAACL,UAAU;gBAAQZ,YAAYa;gBAAWJ,YAAY;YAAG;YAC7DS,IAAI;gBAACN,UAAU;gBAAQZ,YAAYa;gBAAWJ,YAAY;YAAG;QACjE;IACJ;IACAU,SAAS;QACLjB,IAAI;QACJC,IAAI;QACJC,IAAI;QACJC,IAAI;QACJC,IAAI;IACR;IACAc,QAAQ5B;IACR6B,YAAY;QACRC,OAAO;YACHC,cAAc;gBACVC,oBAAM,KAACpC;oBAAaqC,QAAQ;;gBAC5BpC,OAAO;YACX;YACAqC,QAAQ;gBACJC,OAAO;oBACHlB,YAAY;gBAChB;YACJ;QACJ;QACAmB,OAAO;YACHF,QAAQ;gBACJG,MAAM;oBACF,2BAA2B;wBAACC,eAAe;oBAAS;gBACxD;YACJ;QACJ;QACAC,MAAM;YACFR,cAAc;gBACVS,QAAQ;YACZ;YACAN,QAAQ,SAACO;oBAAO,0CAAKC,cAAAA;uBAAW;oBAC5BL,MAAM;wBACFjB,UAAUtB,QAAQ;4BAAC4C,MAAMA,iBAAAA,kBAAAA,OAAQ;4BAAMxB,OAAOuB,MAAME,SAAS;wBAAA;oBACjE;gBACJ;;QACJ;QACAC,QAAQ;YACJV,QAAQ;uBAAO;oBACXG,MAAM;wBACFpB,YAAY;oBAChB;gBACJ;;YACA4B,UAAU;gBACNC,SAAS;2BAAO;wBACZT,MAAM;4BACFU,iBAAiB;wBACrB;oBACJ;;YACJ;QACJ;QACAC,OAAO;YACHd,QAAQ,SAACO;oBAAQQ,mBAAAA,YAAYC,gBAAAA,SAAWR,cAAAA,MAAMS,iBAAAA;uBAAc;oBACxDC,SAAS;wBACLC,MAAMJ,aACA,aACA,AAAC,OASE,OATInD,QAAQ;4BACX4C,MAAAA;4BACAxB,OAAO;gCACHR,IAAIX,IAAI;gCACRY,IAAIZ,IAAI;gCACRa,IAAIb,IAAI;gCACRc,IAAId,IAAI;gCACRe,IAAIf,IAAI;4BACZ;wBACJ;wBACNuD,UAAU;oBACd;oBACAnB,OAAO;wBACHoB,OAAO;wBACPnC,UAAUqB,MAAMzB,QAAQ,CAACE,KAAK,CAACK,EAAE,CAACH,QAAQ;wBAC1CZ,YAAYiC,MAAMzB,QAAQ,CAACE,KAAK,CAACK,EAAE,CAACf,UAAU;wBAC9CS,YAAY;oBAChB;oBACAuC,QAAQ;wBACJC,cAAcN,YAAY,WAAW,AAAC,aAAkC,OAAtBtD,MAAMQ,OAAO,CAACC,IAAI,CAAC,EAAE,IAAK;oBAChF;oBACAoD,MAAM;wBACF,sBAAsB;4BAClBC,YAAYR,YAAY,WAAW,IAAIrD,QAAQ;gCAAC4C,MAAMQ;gCAAShC,OAAOjB,YAAYQ,OAAO;4BAAA;wBAC7F;oBACJ;gBACJ;;QACJ;QACAmD,cAAc;YACV7B,cAAc;gBACVlC,OAAOA,MAAMQ,OAAO,CAACwD,IAAI,CAAC,EAAE;gBAC5BC,SAAS;YACb;QACJ;QACAC,cAAc;YACVhC,cAAc;gBACViC,cAAc;YAClB;YACA9B,QAAQ,SAACO;uBAAW;oBAChBwB,OAAO;wBACHC,cAAczB,MAAMhC,OAAO,CAACC,EAAE;oBAClC;oBACAyD,aAAa;wBACT/C,UAAUqB,MAAME,SAAS,CAAChC,EAAE;wBAC5Bd,OAAO4C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBAC3B4D,cAAczB,MAAMhC,OAAO,CAACC,EAAE;oBAClC;oBACA0D,SAAS;wBACLvE,OAAO4C,MAAMb,MAAM,CAACyC,GAAG,CAAC,EAAE;wBAC1BC,aAAa7B,MAAMb,MAAM,CAACyC,GAAG,CAAC,EAAE;oBACpC;oBACAE,OAAO;wBACH1E,OAAO4C,MAAMb,MAAM,CAACyC,GAAG,CAAC,EAAE;oBAC9B;gBACJ;;QACJ;QACAG,WAAW;YACPzC,cAAc;gBACV0C,QAAQ;YACZ;QACJ;QACAC,SAAS;YACL3C,cAAc;gBACVlC,OAAO;gBACP8E,WAAW;gBACXC,cAAc;gBACdC,WAAW;gBACXC,QAAQ;YACZ;QACJ;QACAC,QAAQ;YACJhD,cAAc;gBACVoB,SAAS;gBACTtD,OAAO;YACX;QACJ;QACAmF,iBAAiB;YACb9C,QAAQ;gBACJ+C,MAAM;oBACFC,WAAW;gBACf;YACJ;QACJ;QACAC,QAAQ;YACJpD,cAAc;gBACVlC,OAAO;YACX;YACAqC,QAAQ,SAACO;uBAAW;oBAChBJ,MAAM,mBACCI,MAAM2C,EAAE,CAACC,KAAK,CAAC;wBACdC,gBAAgB;wBAChBzF,OAAO4C,MAAMb,MAAM,CAAC2D,MAAM,CAAC,EAAE;oBACjC;gBAER;;QACJ;QACAC,UAAU;YACNzD,cAAc;gBACV0C,QAAQ;YACZ;YACAvC,QAAQ,SAACO;uBAAW;oBAChBwB,OAAO;wBACH7C,UAAUqB,MAAME,SAAS,CAAChC,EAAE;wBAC5BM,YAAY;oBAChB;gBACJ;;QACJ;QACAwE,MAAM;YACFvD,QAAQ;uBAAO;oBACXG,MAAM;wBACFqD,eAAe;oBACnB;gBACJ;;QACJ;QACAC,OAAO;YACHzD,QAAQ;gBACJ0D,cAAc;oBACVC,SAAS;oBACTC,YAAY;gBAChB;YACJ;QACJ;QACAC,SAAS;YACLhE,cAAc;gBACViE,QAAQ;gBACRrB,WAAW;YACf;QACJ;QACAsB,OAAO;YACH/D,QAAQ;gBACJG,MAAM;oBACF6D,eAAe;oBACfhD,SAAS;oBACTjC,YAAY;gBAChB;YACJ;QACJ;QACAkF,aAAa;YACTpE,cAAc;gBACVW,MAAM;gBACN0D,YAAY;YAChB;QACJ;QACAC,UAAU;YACNtE,cAAc;gBACVuE,IAAI;YACR;QACJ;QACAC,cAAc;YACVrE,QAAQ,SAACO;oBAAQ5C,AAAO2G,yBAAP3G;oBAaF4C;uBAbmD;oBAC9DJ,MAAM;wBACFiC,aAAa7B,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBACjCyC,iBAAiBN,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBACrCmG,WAAWhE,MAAMd,OAAO,CAACd,EAAE;wBAC3BqC,SAAST,MAAMhC,OAAO,CAACE,EAAE;wBACzB,qBAAqB;4BACjB+F,aAAajE,MAAMhC,OAAO,CAACE,EAAE;wBACjC;oBACJ;oBACAqB,MAAM;wBACFe,iBAAiB;wBACjB4D,aAAalE,MAAMhC,OAAO,CAACE,EAAE;wBAC7Bd,KAAK,GAAE4C,gBAAAA,MAAMb,MAAM,cAAZa,oCAAAA,aAAc,CAAC+D,iBAAiB,CAAC,EAAE;oBAC9C;oBACAI,aAAa;wBACTC,QAAQpE,MAAMhC,OAAO,CAACC,EAAE;wBACxBb,OAAO4C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBAC/B;gBACJ;;YACAyB,cAAc;gBACVC,oBAAM,KAACpC;oBAAaqC,QAAQ;;gBAC5BpC,OAAO;YACX;QACJ;QACAiH,UAAU;YACN5E,QAAQ;gBACJ6E,SAAS;oBACL,aAAa;wBAACjC,QAAQ;oBAAO;oBAC7B,YAAY;wBAACA,QAAQ;oBAAO;gBAChC;YACJ;QACJ;QACAkC,kBAAkB;YACd9E,QAAQ,SAACO;uBAAW;oBAChBJ,MAAM;wBACFU,iBAAiBN,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBACzC;gBACJ;;QACJ;QACA2G,SAAS;YACLlF,cAAc;gBACVW,MAAM;gBACNwE,6BAAe,KAACvH;YACpB;YACAuC,QAAQ,SAACO;oBAAO,0CAA0BC,cAAAA;uBAAW;oBACjDyE,MAAM;wBACF,eAAe;4BACXtH,OAAO4C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;4BAC3B,sCAAsC;gCAClCT,OAAO4C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;4BAC/B;4BACA,+BAA+B;gCAC3BgE,aAAa7B,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;4BACrC;wBACJ;oBACJ;oBACA8G,UAAU;wBACNnG,YAAY;wBACZ8B,iBAAiBN,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBACrCT,OAAO;wBACPwH,QAAQ,AAAC,GAAkB5E,OAAhB1C,IAAI,IAAG,WAA8B,OAArB0C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBAC/C,oBAAoB;4BAChByC,iBAAiBN,MAAM6E,KAAK;wBAChC;wBAEA,qBAAqB;4BACjBvE,iBAAiBN,MAAM6E,KAAK;4BAC5BhD,aAAa7B,MAAMb,MAAM,CAAC2F,IAAI,CAAC,EAAE;4BACjC1H,OAAO4C,MAAMb,MAAM,CAAC2F,IAAI,CAAC,EAAE;wBAC/B;oBACJ;oBACAC,mBAAmB;wBACf3H,OAAO4C,MAAMb,MAAM,CAAC2F,IAAI,CAAC,EAAE;wBAC3BnG,UAAUrB,IAAI;oBAClB;oBACA0H,iBAAiB;wBACb5H,OAAO4C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBAC3Bc,UAAUtB,QAAQ;4BAAC4C,MAAAA;4BAAMxB,OAAOuB,MAAME,SAAS;wBAAA;oBACnD;oBACA+E,WAAW;wBACPzF,QAAQlC,IAAI;wBACZgD,iBAAiBN,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBACzC;oBACAqH,iBAAiB;wBACb5E,iBAAiBN,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBACzC;oBACAsH,mBAAmB;wBACfC,YAAY,AAAC,GAAkBpF,OAAhB1C,IAAI,IAAG,WAA8B,OAArB0C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBACvD;oBACAwH,yBAAyB;wBACrBxD,aAAa7B,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBACrC;gBACJ;;QACJ;QACAyH,MAAM;YACF7F,QAAQ,SAACO;oBAAQuF,oBAAAA;oBAMR;uBAN4C;oBACjDC,UACI,qBAACD,gBAAgB,eAAe,iBAAiB,eAAgB,AAAC,GAC9DvF,OADgE1C,IAAI,IAAG,WAE1E,OADG0C,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBAG5B4H,GAAG,GAAE,WACD,iBADC,MACAF,gBAAgB,eAAe,iBAAiB,eAAgB,AAAC,GAAS,OAAPjI,IAAI,IAAG,wBAC3E,iBAFC,MAEAiI,gBAAgB,eAAe,iBAAiB,eAAgBjI,IAAI,CAAC,KAFrE;gBAIT;;QACJ;QACAoI,QAAQ;YACJjG,QAAQ,SAACO;uBAAW;oBAChB2F,OAAO;wBACHvI,OAAO4C,MAAMvC,WAAW,KAAK,SAASuC,MAAMb,MAAM,CAACyG,IAAI,CAAC,EAAE,GAAG5F,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;oBACrF;oBACAgI,MAAM;wBACFzI,OAAO4C,MAAMvC,WAAW,KAAK,SAASuC,MAAMb,MAAM,CAACyG,IAAI,CAAC,EAAE,GAAG5F,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBAEjF,mBAAmB;4BACfyC,iBAAiBN,MAAMvC,WAAW,KAAK,SAASuC,MAAMb,MAAM,CAACyG,IAAI,CAAC,EAAE,GAAG5F,MAAMb,MAAM,CAACtB,IAAI,CAAC,EAAE;wBAC/F;wBAEA,oBAAoB;4BAChByC,iBAAiBN,MAAM2C,EAAE,CAACjC,OAAO,CAAC;gCAACA,SAAS;4BAAO,GAAGoF,UAAU;4BAChE1I,OAAO4C,MAAM2C,EAAE,CAACjC,OAAO,CAAC;gCAACA,SAAS;4BAAO,GAAGtD,KAAK;2BAC9C4C,MAAM2C,EAAE,CAACC,KAAK,CAAC;4BAACtC,iBAAiBN,MAAM2C,EAAE,CAACjC,OAAO,CAAC;gCAACA,SAAS;4BAAO,GAAGkC,KAAK;wBAAA;oBAEtF;gBACJ;;QACJ;IACJ;AACJ,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {CheckSize16Px, InfoSize24Px} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n getSize,\n rem,\n type MantineThemeOverride,\n type NotificationProps,\n type StepperStylesParams,\n type TabsStylesParams,\n getStylesRef,\n} from '@mantine/core';\n\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = {\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/src/mantine-styles/src/theme/default-theme.ts\n colorScheme: 'light',\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeight: 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: undefined, fontWeight: 300},\n h2: {fontSize: '32px', lineHeight: undefined, fontWeight: 500},\n h3: {fontSize: '24px', lineHeight: undefined, fontWeight: 500},\n h4: {fontSize: '18px', lineHeight: undefined, fontWeight: 300},\n h5: {fontSize: '14px', lineHeight: undefined, fontWeight: 500},\n h6: {fontSize: '12px', lineHeight: undefined, 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 Alert: {\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'navy',\n },\n styles: {\n title: {\n fontWeight: 500,\n },\n },\n },\n Title: {\n styles: {\n root: {\n '&:is(h1,h2,h3,h4,h5,h6)': {letterSpacing: '0.011em'},\n },\n },\n },\n Text: {\n defaultProps: {\n weight: 300,\n },\n styles: (theme, {}, {size}) => ({\n root: {\n fontSize: getSize({size: size ?? 'sm', sizes: theme.fontSizes}),\n },\n }),\n },\n Button: {\n styles: () => ({\n root: {\n fontWeight: 400,\n },\n }),\n variants: {\n outline: () => ({\n root: {\n backgroundColor: 'white',\n },\n }),\n },\n },\n Modal: {\n styles: (theme, {fullScreen, padding}, {size, variant}) => ({\n content: {\n flex: fullScreen\n ? '0 0 100%'\n : `0 0 ${getSize({\n size,\n sizes: {\n xs: rem(432),\n sm: rem(664),\n md: rem(896),\n lg: rem(1120),\n xl: rem('88%'),\n },\n })}`,\n overflow: 'auto',\n },\n title: {\n width: '100%',\n fontSize: theme.headings.sizes.h3.fontSize,\n lineHeight: theme.headings.sizes.h3.lineHeight,\n fontWeight: 500,\n },\n header: {\n borderBottom: variant !== 'prompt' ? `1px solid ${color.primary.gray[3]}` : null,\n },\n body: {\n '&:not(:only-child)': {\n paddingTop: variant === 'prompt' ? 0 : getSize({size: padding, sizes: plasmaTheme.spacing}),\n },\n },\n }),\n },\n ModalOverlay: {\n defaultProps: {\n color: color.primary.navy[9],\n opacity: 0.9,\n },\n },\n InputWrapper: {\n defaultProps: {\n withAsterisk: false,\n },\n styles: (theme) => ({\n label: {\n marginBottom: theme.spacing.xs,\n },\n description: {\n fontSize: theme.fontSizes.sm,\n color: theme.colors.gray[7],\n marginBottom: theme.spacing.xs,\n },\n invalid: {\n color: theme.colors.red[9],\n borderColor: theme.colors.red[6],\n },\n error: {\n color: theme.colors.red[9],\n },\n }),\n },\n TextInput: {\n defaultProps: {\n radius: 8,\n },\n },\n Tooltip: {\n defaultProps: {\n color: 'navy',\n withArrow: true,\n withinPortal: true,\n multiline: true,\n zIndex: 10000,\n },\n },\n Loader: {\n defaultProps: {\n variant: 'dots',\n color: 'action',\n },\n },\n DateRangePicker: {\n styles: {\n cell: {\n textAlign: 'center',\n },\n },\n },\n Anchor: {\n defaultProps: {\n color: 'action.6',\n },\n styles: (theme) => ({\n root: {\n ...theme.fn.hover({\n textDecoration: 'underline',\n color: theme.colors.action[8],\n }),\n },\n }),\n },\n Checkbox: {\n defaultProps: {\n radius: 'sm',\n },\n styles: (theme) => ({\n label: {\n fontSize: theme.fontSizes.sm,\n fontWeight: 300,\n },\n }),\n },\n List: {\n styles: () => ({\n root: {\n listStyleType: 'disc',\n },\n }),\n },\n Radio: {\n styles: {\n labelWrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n },\n },\n Popover: {\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n },\n Badge: {\n styles: {\n root: {\n textTransform: 'none',\n padding: '4px 8px',\n fontWeight: 500,\n },\n },\n },\n ColorSwatch: {\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n },\n MenuItem: {\n defaultProps: {\n fw: 300,\n },\n },\n Notification: {\n styles: (theme, {color: notificationType}: NotificationProps) => ({\n root: {\n borderColor: theme.colors.gray[3],\n backgroundColor: theme.colors.gray[0],\n boxShadow: theme.shadows.lg,\n padding: theme.spacing.sm,\n '&[data-with-icon]': {\n paddingLeft: theme.spacing.sm,\n },\n },\n icon: {\n backgroundColor: 'transparent',\n marginRight: theme.spacing.sm,\n color: theme.colors?.[notificationType][6],\n },\n closeButton: {\n margin: theme.spacing.xs,\n color: theme.colors.gray[5],\n },\n }),\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n },\n Skeleton: {\n styles: {\n visible: {\n '&::before': {zIndex: 'unset'},\n '&::after': {zIndex: 'unset'},\n },\n },\n },\n SegmentedControl: {\n styles: (theme) => ({\n root: {\n backgroundColor: theme.colors.gray[2],\n },\n }),\n },\n Stepper: {\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n styles: (theme, {}: StepperStylesParams, {size}) => ({\n step: {\n '&[disabled]': {\n color: theme.colors.gray[5],\n '& .mantine-Stepper-stepDescription': {\n color: theme.colors.gray[5],\n },\n '& .mantine-Stepper-stepIcon': {\n borderColor: theme.colors.gray[1],\n },\n },\n },\n stepIcon: {\n fontWeight: 500,\n backgroundColor: theme.colors.gray[1],\n color: 'inherit',\n border: `${rem(1)} solid ${theme.colors.gray[3]}`,\n '&[data-progress]': {\n backgroundColor: theme.white,\n },\n\n '&[data-completed]': {\n backgroundColor: theme.white,\n borderColor: theme.colors.lime[6],\n color: theme.colors.lime[6],\n },\n },\n stepCompletedIcon: {\n color: theme.colors.lime[6],\n fontSize: rem(16),\n },\n stepDescription: {\n color: theme.colors.gray[7],\n fontSize: getSize({size, sizes: theme.fontSizes}),\n },\n separator: {\n height: rem(1),\n backgroundColor: theme.colors.gray[3],\n },\n separatorActive: {\n backgroundColor: theme.colors.gray[3],\n },\n verticalSeparator: {\n borderLeft: `${rem(1)} solid ${theme.colors.gray[3]}`,\n },\n verticalSeparatorActive: {\n borderColor: theme.colors.gray[3],\n },\n }),\n },\n Tabs: {\n styles: (theme, {orientation}: TabsStylesParams) => ({\n tabsList: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid ${\n theme.colors.gray[3]\n }`,\n },\n tab: {\n [orientation === 'horizontal' ? 'borderBottom' : 'borderRight']: `${rem(1)} solid transparent`,\n [orientation === 'horizontal' ? 'marginBottom' : 'marginRight']: rem(-1),\n },\n }),\n },\n Select: {\n styles: (theme) => ({\n input: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n },\n item: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n\n '&[data-hovered]': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[1],\n },\n\n '&[data-selected]': {\n backgroundColor: theme.fn.variant({variant: 'light'}).background,\n color: theme.fn.variant({variant: 'light'}).color,\n ...theme.fn.hover({backgroundColor: theme.fn.variant({variant: 'light'}).hover}),\n },\n },\n }),\n },\n NavLink: {\n styles: (theme) => ({\n root: {\n color: theme.colors.gray[6],\n borderRadius: `${theme.defaultRadius}px 0px 0px ${theme.defaultRadius}px`,\n },\n label: {\n ref: getStylesRef('label'),\n fontWeight: 500,\n },\n children: {\n [`.${getStylesRef('label')}`]: {\n fontWeight: 300,\n },\n },\n }),\n },\n },\n};\n"],"names":["CheckSize16Px","InfoSize24Px","color","getSize","rem","getStylesRef","PlasmaColors","plasmaTheme","colorScheme","fontFamily","black","primary","gray","defaultRadius","lineHeight","spacing","xs","sm","md","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","undefined","h2","h3","h4","h5","h6","shadows","colors","components","Alert","defaultProps","icon","height","styles","title","Title","root","letterSpacing","Text","weight","theme","size","fontSizes","Button","variants","outline","backgroundColor","Modal","fullScreen","padding","variant","content","flex","overflow","width","header","borderBottom","body","paddingTop","ModalOverlay","navy","opacity","InputWrapper","withAsterisk","label","marginBottom","description","invalid","red","borderColor","error","TextInput","radius","Tooltip","withArrow","withinPortal","multiline","zIndex","Loader","DateRangePicker","cell","textAlign","Anchor","fn","hover","textDecoration","action","Checkbox","List","listStyleType","Radio","labelWrapper","display","alignItems","Popover","shadow","Badge","textTransform","ColorSwatch","withShadow","MenuItem","fw","Notification","notificationType","boxShadow","paddingLeft","marginRight","closeButton","margin","Skeleton","visible","SegmentedControl","Stepper","completedIcon","step","stepIcon","border","white","lime","stepCompletedIcon","stepDescription","separator","separatorActive","verticalSeparator","borderLeft","verticalSeparatorActive","Tabs","orientation","tabsList","tab","Select","input","dark","item","background","NavLink","borderRadius","ref","children"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coveord/plasma-mantine",
|
|
3
|
-
"version": "52.
|
|
3
|
+
"version": "52.13.0",
|
|
4
4
|
"description": "A Plasma flavoured Mantine theme",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plasma",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"lodash.debounce": "4.0.8",
|
|
42
42
|
"lodash.defaultsdeep": "4.6.1",
|
|
43
43
|
"monaco-editor": "0.40.0",
|
|
44
|
-
"@coveord/plasma-react-icons": "52.
|
|
45
|
-
"@coveord/plasma-tokens": "52.
|
|
44
|
+
"@coveord/plasma-react-icons": "52.13.0",
|
|
45
|
+
"@coveord/plasma-tokens": "52.13.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@emotion/react": "11.11.1",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@mantine/modals": "6.0.17",
|
|
55
55
|
"@mantine/notifications": "6.0.17",
|
|
56
56
|
"@swc/cli": "0.1.62",
|
|
57
|
-
"@swc/core": "1.3.
|
|
57
|
+
"@swc/core": "1.3.71",
|
|
58
58
|
"@swc/jest": "0.2.27",
|
|
59
59
|
"@testing-library/jest-dom": "5.17.0",
|
|
60
60
|
"@testing-library/react": "14.0.0",
|
|
@@ -73,12 +73,12 @@
|
|
|
73
73
|
"identity-obj-proxy": "3.0.0",
|
|
74
74
|
"jest": "29.6.1",
|
|
75
75
|
"jest-environment-jsdom": "29.6.1",
|
|
76
|
-
"jest-junit": "
|
|
76
|
+
"jest-junit": "16.0.0",
|
|
77
77
|
"npm-run-all": "4.1.5",
|
|
78
78
|
"publint": "0.1.16",
|
|
79
79
|
"react": "18.2.0",
|
|
80
80
|
"react-dom": "18.2.0",
|
|
81
|
-
"rimraf": "
|
|
81
|
+
"rimraf": "5.0.1",
|
|
82
82
|
"tslib": "2.6.0",
|
|
83
83
|
"typescript": "5.1.6",
|
|
84
84
|
"vitest": "0.33.0"
|
|
@@ -47,6 +47,10 @@ interface CodeEditorProps
|
|
|
47
47
|
value?: string;
|
|
48
48
|
/** onChange value for controlled input */
|
|
49
49
|
onChange?(value: string): void;
|
|
50
|
+
/** Called whenever the search icon is clicked */
|
|
51
|
+
onSearch?(): void;
|
|
52
|
+
/** Called whenever the copy icon is clicked */
|
|
53
|
+
onCopy?(): void;
|
|
50
54
|
/** Called whenever the code editor gets the focus */
|
|
51
55
|
onFocus?(): void;
|
|
52
56
|
/**
|
|
@@ -87,6 +91,8 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
|
|
|
87
91
|
language,
|
|
88
92
|
defaultValue,
|
|
89
93
|
onChange,
|
|
94
|
+
onCopy,
|
|
95
|
+
onSearch,
|
|
90
96
|
onFocus,
|
|
91
97
|
value,
|
|
92
98
|
label,
|
|
@@ -129,6 +135,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
|
|
|
129
135
|
if (editorRef.current) {
|
|
130
136
|
editorRef.current.focus();
|
|
131
137
|
editorRef.current.trigger('editor', 'actions.find', '');
|
|
138
|
+
onSearch?.();
|
|
132
139
|
}
|
|
133
140
|
};
|
|
134
141
|
|
|
@@ -169,7 +176,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
|
|
|
169
176
|
const _buttons = (
|
|
170
177
|
<Group position="right" spacing={0}>
|
|
171
178
|
<Search handleSearch={handleSearch} />
|
|
172
|
-
<CopyToClipboard value={_value} />
|
|
179
|
+
<CopyToClipboard value={_value} onCopy={() => onCopy?.()} />
|
|
173
180
|
</Group>
|
|
174
181
|
);
|
|
175
182
|
|
|
@@ -70,4 +70,21 @@ describe('CodeEditor', () => {
|
|
|
70
70
|
expect(screen.getByTestId('monaco-editor')).toHaveAttribute('focus');
|
|
71
71
|
expect(screen.getByTestId('monaco-editor')).toHaveAttribute('trigger');
|
|
72
72
|
});
|
|
73
|
+
|
|
74
|
+
it('calls the onCopy callback when clicking on the copy button', async () => {
|
|
75
|
+
const user = userEvent.setup();
|
|
76
|
+
const onCopySpy = vi.fn();
|
|
77
|
+
render(<CodeEditor onCopy={onCopySpy} />);
|
|
78
|
+
await user.click(screen.getByRole('button', {name: /copy/i}));
|
|
79
|
+
|
|
80
|
+
expect(onCopySpy).toHaveBeenCalledTimes(1);
|
|
81
|
+
});
|
|
82
|
+
it('calls the onSearch callback when clicking on the search button', async () => {
|
|
83
|
+
const user = userEvent.setup();
|
|
84
|
+
const onSearchSpy = vi.fn();
|
|
85
|
+
render(<CodeEditor onSearch={onSearchSpy} />);
|
|
86
|
+
await user.click(screen.getByRole('button', {name: /search/i}));
|
|
87
|
+
|
|
88
|
+
expect(onSearchSpy).toHaveBeenCalledTimes(1);
|
|
89
|
+
});
|
|
73
90
|
});
|