@coveord/plasma-mantine 56.8.0 → 56.9.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.
Files changed (75) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/.turbo/turbo-test.log +108 -103
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/CodeEditor/languages/xml.d.ts.map +1 -1
  5. package/dist/cjs/components/CodeEditor/languages/xml.js.map +1 -1
  6. package/dist/cjs/components/Collection/enhanceWithCollectionProps.d.ts.map +1 -1
  7. package/dist/cjs/components/Collection/enhanceWithCollectionProps.js.map +1 -1
  8. package/dist/cjs/components/DateRangePicker/DateRange.module.css +4 -0
  9. package/dist/cjs/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  10. package/dist/cjs/components/DateRangePicker/DateRangePicker.js +2 -1
  11. package/dist/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  12. package/dist/cjs/components/RadioCard/RadioCard.d.ts +26 -0
  13. package/dist/cjs/components/RadioCard/RadioCard.d.ts.map +1 -0
  14. package/dist/cjs/components/RadioCard/RadioCard.js +82 -0
  15. package/dist/cjs/components/RadioCard/RadioCard.js.map +1 -0
  16. package/dist/cjs/components/Table/Table.d.ts +2 -12
  17. package/dist/cjs/components/Table/Table.d.ts.map +1 -1
  18. package/dist/cjs/components/Table/Table.js +0 -3
  19. package/dist/cjs/components/Table/Table.js.map +1 -1
  20. package/dist/cjs/components/Table/table-column/TableActionsColumn.d.ts +15 -0
  21. package/dist/cjs/components/Table/table-column/TableActionsColumn.d.ts.map +1 -1
  22. package/dist/cjs/components/Table/table-column/TableActionsColumn.js +14 -1
  23. package/dist/cjs/components/Table/table-column/TableActionsColumn.js.map +1 -1
  24. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.d.ts +11 -32
  25. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
  26. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js +101 -97
  27. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  28. package/dist/cjs/index.d.ts +2 -0
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/index.js +8 -0
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/styles/RadioCard.module.css +44 -0
  33. package/dist/esm/components/CodeEditor/languages/xml.d.ts.map +1 -1
  34. package/dist/esm/components/CodeEditor/languages/xml.js.map +1 -1
  35. package/dist/esm/components/Collection/enhanceWithCollectionProps.d.ts.map +1 -1
  36. package/dist/esm/components/Collection/enhanceWithCollectionProps.js.map +1 -1
  37. package/dist/esm/components/DateRangePicker/DateRange.module.css +4 -0
  38. package/dist/esm/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  39. package/dist/esm/components/DateRangePicker/DateRangePicker.js +2 -1
  40. package/dist/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
  41. package/dist/esm/components/RadioCard/RadioCard.d.ts +26 -0
  42. package/dist/esm/components/RadioCard/RadioCard.d.ts.map +1 -0
  43. package/dist/esm/components/RadioCard/RadioCard.js +63 -0
  44. package/dist/esm/components/RadioCard/RadioCard.js.map +1 -0
  45. package/dist/esm/components/Table/Table.d.ts +2 -12
  46. package/dist/esm/components/Table/Table.d.ts.map +1 -1
  47. package/dist/esm/components/Table/Table.js +0 -3
  48. package/dist/esm/components/Table/Table.js.map +1 -1
  49. package/dist/esm/components/Table/table-column/TableActionsColumn.d.ts +15 -0
  50. package/dist/esm/components/Table/table-column/TableActionsColumn.d.ts.map +1 -1
  51. package/dist/esm/components/Table/table-column/TableActionsColumn.js +12 -1
  52. package/dist/esm/components/Table/table-column/TableActionsColumn.js.map +1 -1
  53. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.d.ts +11 -32
  54. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
  55. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js +94 -84
  56. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  57. package/dist/esm/index.d.ts +2 -0
  58. package/dist/esm/index.d.ts.map +1 -1
  59. package/dist/esm/index.js +3 -0
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/styles/RadioCard.module.css +44 -0
  62. package/package.json +19 -19
  63. package/src/components/CodeEditor/languages/xml.ts +2 -1
  64. package/src/components/Collection/enhanceWithCollectionProps.ts +2 -2
  65. package/src/components/DateRangePicker/DateRange.module.css +4 -0
  66. package/src/components/DateRangePicker/DateRangePicker.tsx +2 -1
  67. package/src/components/RadioCard/RadioCard.tsx +73 -0
  68. package/src/components/RadioCard/__tests__/RadioCard.component.spec.tsx +25 -0
  69. package/src/components/Table/Table.tsx +4 -9
  70. package/src/components/Table/__tests__/TableColumnsSelectorHeader.spec.tsx +325 -0
  71. package/src/components/Table/table-column/TableActionsColumn.tsx +28 -1
  72. package/src/components/Table/table-columns-selector/TableColumnsSelector.tsx +96 -125
  73. package/src/index.ts +4 -0
  74. package/src/styles/RadioCard.module.css +44 -0
  75. package/src/components/Table/__tests__/TableColumnsSelector.spec.tsx +0 -352
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnsSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EAGR,sBAAsB,EAGtB,OAAO,EAOV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAIhC,MAAM,MAAM,+BAA+B,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAEzF,MAAM,WAAW,yBAA0B,SAAQ,QAAQ,EAAE,sBAAsB,CAAC,2BAA2B,CAAC;IAC5G;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC;IAC9C,KAAK,EAAE,yBAAyB,CAAC;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,+BAA+B,CAAC;IAC7C,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAUH,eAAO,MAAM,oBAAoB;WAdtB,yBAAyB;SAC3B,cAAc;iBACN,+BAA+B;cAClC,IAAI;EAoGhB,CAAC"}
1
+ {"version":3,"file":"TableColumnsSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAGhE,MAAM,WAAW,2BAA2B;IACxC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,oBAAoB,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC7D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC5C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACzC;AAUD,eAAO,MAAM,0BAA0B,GAAI,oBAAkB,+BAA+B,4CA2F3F,CAAC"}
@@ -2,44 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "TableColumnsSelector", {
5
+ Object.defineProperty(exports, "TableColumnsSelectorHeader", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return TableColumnsSelector;
8
+ return TableColumnsSelectorHeader;
9
9
  }
10
10
  });
11
11
  var _object_spread = require("@swc/helpers/_/_object_spread");
12
- var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
13
- var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
14
12
  var _jsxruntime = require("react/jsx-runtime");
13
+ var _plasmareacticons = require("@coveord/plasma-react-icons");
15
14
  var _core = require("@mantine/core");
16
15
  var _reacttable = require("@tanstack/react-table");
17
- var _Table = require("../Table.js");
18
- var _TableContext = require("../TableContext.js");
19
- var defaultProps = {
20
- label: 'Edit columns',
21
- buttonVariant: 'outline',
16
+ var _ActionIcon = require("../../ActionIcon/ActionIcon");
17
+ var DEFAULT_OPTIONS = {
18
+ footer: function(max) {
19
+ return "You can display up to ".concat(max, " columns.");
20
+ },
22
21
  limitReachedTooltip: 'You have reached the maximum display limit.',
23
- alwaysVisibleTooltip: 'This column is always visible.',
24
- showVisibleCountLabel: false
22
+ alwaysVisibleTooltip: 'This column is always visible.'
25
23
  };
26
- var TableColumnsSelector = (0, _core.factory)(function(props, ref) {
27
- var getStyles = (0, _TableContext.useTableContext)().getStyles;
28
- var _useProps = (0, _core.useProps)('TableColumnsSelector', defaultProps, props), label = _useProps.label, buttonVariant = _useProps.buttonVariant, showVisibleCountLabel = _useProps.showVisibleCountLabel, maxSelectableColumns = _useProps.maxSelectableColumns, footer = _useProps.footer, limitReachedTooltip = _useProps.limitReachedTooltip, alwaysVisibleTooltip = _useProps.alwaysVisibleTooltip, classNames = _useProps.classNames, className = _useProps.className, styles = _useProps.styles, style = _useProps.style, vars = _useProps.vars, others = _object_without_properties._(_useProps, [
29
- "label",
30
- "buttonVariant",
31
- "showVisibleCountLabel",
32
- "maxSelectableColumns",
33
- "footer",
34
- "limitReachedTooltip",
35
- "alwaysVisibleTooltip",
36
- "classNames",
37
- "className",
38
- "styles",
39
- "style",
40
- "vars"
41
- ]);
42
- var table = (0, _TableContext.useTableContext)().table;
24
+ var TableColumnsSelectorHeader = function(param) {
25
+ var table = param.table, options = param.options;
26
+ var _$_object_spread = _object_spread._({}, DEFAULT_OPTIONS, options), maxSelectableColumns = _$_object_spread.maxSelectableColumns, footer = _$_object_spread.footer, limitReachedTooltip = _$_object_spread.limitReachedTooltip, alwaysVisibleTooltip = _$_object_spread.alwaysVisibleTooltip;
27
+ var combobox = (0, _core.useCombobox)({
28
+ onDropdownClose: function() {
29
+ combobox.resetSelectedOption();
30
+ },
31
+ onDropdownOpen: function() {
32
+ return combobox.updateSelectedOptionIndex('active');
33
+ }
34
+ });
43
35
  var allColumns = table.getAllLeafColumns();
44
36
  var filteredColumns = allColumns.filter(function(column) {
45
37
  var _column_columnDef_meta;
@@ -48,80 +40,92 @@ var TableColumnsSelector = (0, _core.factory)(function(props, ref) {
48
40
  var selectedColumnsCount = filteredColumns.filter(function(column) {
49
41
  return column.getIsVisible();
50
42
  }).length;
43
+ // Validate maxSelectableColumns - must be a positive integer to be effective
44
+ var effectiveMaxColumns = maxSelectableColumns !== undefined && maxSelectableColumns > 0 ? maxSelectableColumns : undefined;
51
45
  if (filteredColumns.length <= 0) {
52
46
  return null;
53
47
  }
54
- var stylesApiProps = {
55
- classNames: classNames,
56
- styles: styles
48
+ var getColumnState = function(column) {
49
+ var alwaysVisible = !column.getCanHide();
50
+ var isDisabled = effectiveMaxColumns !== undefined && selectedColumnsCount >= effectiveMaxColumns && !column.getIsVisible() || alwaysVisible;
51
+ var isVisible = column.getIsVisible() || alwaysVisible;
52
+ return {
53
+ alwaysVisible: alwaysVisible,
54
+ isDisabled: isDisabled,
55
+ isVisible: isVisible
56
+ };
57
57
  };
58
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Grid.Col, _object_spread_props._(_object_spread._({
59
- span: "content",
60
- order: _Table.TableComponentsOrder.ColumnsSelector
61
- }, getStyles('columnSelector', _object_spread._({
62
- className: className,
63
- style: style
64
- }, stylesApiProps)), others), {
65
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Popover, {
66
- withinPortal: true,
67
- position: "bottom",
68
- shadow: "md",
69
- children: [
70
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Popover.Target, {
71
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Button, {
72
- variant: buttonVariant,
73
- children: [
74
- label,
75
- showVisibleCountLabel ? " (".concat(selectedColumnsCount, ")") : ''
76
- ]
77
- })
78
- }),
79
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Popover.Dropdown, {
80
- miw: 240,
81
- children: [
82
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.ScrollArea.Autosize, {
83
- mah: 154,
84
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Stack, _object_spread_props._(_object_spread._({}, getStyles('columnSelectorWrapper', stylesApiProps)), {
85
- children: filteredColumns.map(function(column) {
86
- var alwaysVisible = !column.getCanHide();
87
- var isDisabled = selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible() || alwaysVisible;
88
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Tooltip, {
89
- label: alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip,
90
- disabled: !isDisabled,
91
- position: "left",
92
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
93
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Checkbox, {
94
- label: (0, _reacttable.flexRender)(column.columnDef.header, {
95
- table: table,
96
- column: column,
97
- header: {
98
- column: column
99
- }
100
- }),
101
- name: column.id,
102
- checked: column.getIsVisible() || alwaysVisible,
103
- disabled: isDisabled,
104
- onChange: column.getToggleVisibilityHandler()
105
- }, column.id)
106
- })
107
- }, column.id);
108
- })
109
- }))
58
+ var handleOptionClick = function(columnId) {
59
+ var column = filteredColumns.find(function(col) {
60
+ return col.id === columnId;
61
+ });
62
+ if (column) {
63
+ var isDisabled = getColumnState(column).isDisabled;
64
+ if (!isDisabled) {
65
+ column.toggleVisibility();
66
+ }
67
+ }
68
+ };
69
+ var columnOptions = filteredColumns.map(function(column) {
70
+ var _getColumnState = getColumnState(column), alwaysVisible = _getColumnState.alwaysVisible, isDisabled = _getColumnState.isDisabled, isVisible = _getColumnState.isVisible;
71
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Combobox.Option, {
72
+ value: column.id,
73
+ disabled: isDisabled,
74
+ active: isVisible,
75
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Tooltip, {
76
+ label: alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip,
77
+ disabled: !isDisabled,
78
+ position: "left",
79
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
80
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Checkbox, {
81
+ checked: isVisible,
82
+ label: (0, _reacttable.flexRender)(column.columnDef.header, {
83
+ table: table,
84
+ column: column,
85
+ header: {
86
+ column: column
87
+ }
110
88
  }),
111
- maxSelectableColumns && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
112
- children: [
113
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Divider, {
114
- mb: "xs",
115
- mt: "sm"
116
- }),
117
- footer
118
- ]
119
- })
120
- ]
89
+ disabled: isDisabled
90
+ })
121
91
  })
122
- ]
123
- })
124
- }));
125
- });
92
+ })
93
+ }, column.id);
94
+ });
95
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Combobox, {
96
+ store: combobox,
97
+ position: "bottom-end",
98
+ shadow: "md",
99
+ onOptionSubmit: handleOptionClick,
100
+ children: [
101
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Combobox.Target, {
102
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_ActionIcon.ActionIcon.Tertiary, {
103
+ onClick: function() {
104
+ return combobox.toggleDropdown();
105
+ },
106
+ "aria-label": "settings",
107
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.IconSettings, {
108
+ height: 16
109
+ })
110
+ })
111
+ }),
112
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Combobox.Dropdown, {
113
+ miw: 270,
114
+ children: [
115
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Combobox.Options, {
116
+ children: columnOptions
117
+ }),
118
+ effectiveMaxColumns && /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Combobox.Footer, {
119
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Text, {
120
+ size: "sm",
121
+ c: "dimmed",
122
+ children: typeof footer === 'function' ? footer(effectiveMaxColumns) : footer
123
+ })
124
+ })
125
+ ]
126
+ })
127
+ ]
128
+ });
129
+ };
126
130
 
127
131
  //# sourceMappingURL=TableColumnsSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {\n BoxProps,\n Button,\n Checkbox,\n CompoundStylesApiProps,\n Divider,\n factory,\n Factory,\n Grid,\n Popover,\n ScrollArea,\n Stack,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {flexRender, Header} from '@tanstack/react-table';\nimport {ReactNode} from 'react';\nimport {TableComponentsOrder} from '../Table.js';\nimport {useTableContext} from '../TableContext.js';\n\nexport type TableColumnsSelectorStylesNames = 'columnSelector' | 'columnSelectorWrapper';\n\nexport interface TableColumnsSelectorProps extends BoxProps, CompoundStylesApiProps<TableColumnsSelectorFactory> {\n /**\n * The label of the button\n * @default 'Edit columns'\n */\n label?: ReactNode;\n /**\n * The style variant of the button\n * @default 'outline'\n */\n buttonVariant?: string;\n /**\n * Whether the count of visible columns is shown in the button label.\n * @default false\n */\n showVisibleCountLabel?: boolean;\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n */\n footer?: ReactNode;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport type TableColumnsSelectorFactory = Factory<{\n props: TableColumnsSelectorProps;\n ref: HTMLDivElement;\n stylesNames: TableColumnsSelectorStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableColumnsSelectorProps> = {\n label: 'Edit columns',\n buttonVariant: 'outline',\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n showVisibleCountLabel: false,\n};\n\nexport const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {\n label,\n buttonVariant,\n showVisibleCountLabel,\n maxSelectableColumns,\n footer,\n limitReachedTooltip,\n alwaysVisibleTooltip,\n classNames,\n className,\n styles,\n style,\n vars,\n ...others\n } = useProps('TableColumnsSelector', defaultProps, props);\n const {table} = useTableContext();\n\n const allColumns = table.getAllLeafColumns();\n\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.ColumnsSelector}\n {...getStyles('columnSelector', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Popover withinPortal position=\"bottom\" shadow=\"md\">\n <Popover.Target>\n <Button variant={buttonVariant}>\n {label}\n {showVisibleCountLabel ? ` (${selectedColumnsCount})` : ''}\n </Button>\n </Popover.Target>\n <Popover.Dropdown miw={240}>\n <ScrollArea.Autosize mah={154}>\n <Stack {...getStyles('columnSelectorWrapper', stylesApiProps)}>\n {filteredColumns.map((column) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible()) ||\n alwaysVisible;\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n key={column.id}\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={column.getIsVisible() || alwaysVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n })}\n </Stack>\n </ScrollArea.Autosize>\n {maxSelectableColumns && (\n <>\n <Divider mb=\"xs\" mt=\"sm\" />\n {footer}\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n </Grid.Col>\n );\n});\n"],"names":["TableColumnsSelector","defaultProps","label","buttonVariant","limitReachedTooltip","alwaysVisibleTooltip","showVisibleCountLabel","factory","props","ref","getStyles","useTableContext","useProps","maxSelectableColumns","footer","classNames","className","styles","style","vars","others","table","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","ColumnsSelector","Popover","withinPortal","position","shadow","Target","Button","variant","Dropdown","miw","ScrollArea","Autosize","mah","Stack","map","alwaysVisible","getCanHide","isDisabled","Tooltip","disabled","div","Checkbox","flexRender","header","name","id","checked","onChange","getToggleVisibilityHandler","Divider","mb","mt"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {IconSettings} from '@coveord/plasma-react-icons';\nimport {Checkbox, Combobox, Text, Tooltip, useCombobox} from '@mantine/core';\nimport {flexRender, Header, Table} from '@tanstack/react-table';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon';\n\nexport interface TableColumnsSelectorOptions {\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n * Must be a positive integer (greater than 0).\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n * Can be a string or a function that receives the maxSelectableColumns value.\n * @default (max) => `You can display up to ${max} columns.`\n */\n footer?: string | ((maxSelectableColumns: number) => string);\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport interface TableColumnsSelectorHeaderProps {\n table: Table<unknown>;\n options?: TableColumnsSelectorOptions;\n}\n\nconst DEFAULT_OPTIONS: Omit<TableColumnsSelectorOptions, 'footer'> & {\n footer: (maxSelectableColumns: number) => string;\n} = {\n footer: (max) => `You can display up to ${max} columns.`,\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n};\n\nexport const TableColumnsSelectorHeader = ({table, options}: TableColumnsSelectorHeaderProps) => {\n const {maxSelectableColumns, footer, limitReachedTooltip, alwaysVisibleTooltip} = {\n ...DEFAULT_OPTIONS,\n ...options,\n };\n\n const combobox = useCombobox({\n onDropdownClose: () => {\n combobox.resetSelectedOption();\n },\n onDropdownOpen: () => combobox.updateSelectedOptionIndex('active'),\n });\n\n const allColumns = table.getAllLeafColumns();\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n // Validate maxSelectableColumns - must be a positive integer to be effective\n const effectiveMaxColumns =\n maxSelectableColumns !== undefined && maxSelectableColumns > 0 ? maxSelectableColumns : undefined;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const getColumnState = (column: (typeof filteredColumns)[number]) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (effectiveMaxColumns !== undefined &&\n selectedColumnsCount >= effectiveMaxColumns &&\n !column.getIsVisible()) ||\n alwaysVisible;\n const isVisible = column.getIsVisible() || alwaysVisible;\n return {alwaysVisible, isDisabled, isVisible};\n };\n\n const handleOptionClick = (columnId: string) => {\n const column = filteredColumns.find((col) => col.id === columnId);\n if (column) {\n const {isDisabled} = getColumnState(column);\n if (!isDisabled) {\n column.toggleVisibility();\n }\n }\n };\n\n const columnOptions = filteredColumns.map((column) => {\n const {alwaysVisible, isDisabled, isVisible} = getColumnState(column);\n\n return (\n <Combobox.Option value={column.id} key={column.id} disabled={isDisabled} active={isVisible}>\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n >\n <div>\n <Checkbox\n checked={isVisible}\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n disabled={isDisabled}\n />\n </div>\n </Tooltip>\n </Combobox.Option>\n );\n });\n\n return (\n <Combobox store={combobox} position=\"bottom-end\" shadow=\"md\" onOptionSubmit={handleOptionClick}>\n <Combobox.Target>\n <ActionIcon.Tertiary onClick={() => combobox.toggleDropdown()} aria-label=\"settings\">\n <IconSettings height={16} />\n </ActionIcon.Tertiary>\n </Combobox.Target>\n <Combobox.Dropdown miw={270}>\n <Combobox.Options>{columnOptions}</Combobox.Options>\n {effectiveMaxColumns && (\n <Combobox.Footer>\n <Text size=\"sm\" c=\"dimmed\">\n {typeof footer === 'function' ? footer(effectiveMaxColumns) : footer}\n </Text>\n </Combobox.Footer>\n )}\n </Combobox.Dropdown>\n </Combobox>\n );\n};\n"],"names":["TableColumnsSelectorHeader","DEFAULT_OPTIONS","footer","max","limitReachedTooltip","alwaysVisibleTooltip","table","options","maxSelectableColumns","combobox","useCombobox","onDropdownClose","resetSelectedOption","onDropdownOpen","updateSelectedOptionIndex","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","effectiveMaxColumns","undefined","getColumnState","alwaysVisible","getCanHide","isDisabled","isVisible","handleOptionClick","columnId","find","col","id","toggleVisibility","columnOptions","map","Combobox","Option","value","disabled","active","Tooltip","label","position","div","Checkbox","checked","flexRender","header","store","shadow","onOptionSubmit","Target","ActionIcon","Tertiary","onClick","toggleDropdown","aria-label","IconSettings","height","Dropdown","miw","Options","Footer","Text","size","c"],"mappings":"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"}
@@ -41,10 +41,12 @@ export { Menu, type MenuItemProps } from './components/Menu/Menu.js';
41
41
  export { Modal, type ModalFactory, type ModalProps } from './components/Modal/Modal.js';
42
42
  export * from './components/Modal/ModalFooter.js';
43
43
  export * from './components/Prompt/Prompt.js';
44
+ export { RadioCard, type RadioCardProps } from './components/RadioCard/RadioCard.js';
44
45
  export { PasswordInput } from './components/PasswordInput/PasswordInput.js';
45
46
  export { Select } from './components/Select/Select.js';
46
47
  export * from './components/StickyFooter/StickyFooter.js';
47
48
  export { flexRender as renderTableCell } from '@tanstack/react-table';
49
+ export { TableActionsColumn } from './components/Table/table-column/TableActionsColumn.js';
48
50
  export { type TablePredicateProps } from './components/Table/table-predicate/TablePredicate.js';
49
51
  export { Table, TableComponentsOrder, type PlasmaTableFactory } from './components/Table/Table.js';
50
52
  export { type TableAction, type TableLayout, type TableLayoutProps, type TableProps, } from './components/Table/Table.types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -42,12 +42,18 @@ _export(exports, {
42
42
  get PasswordInput () {
43
43
  return _PasswordInput.PasswordInput;
44
44
  },
45
+ get RadioCard () {
46
+ return _RadioCard.RadioCard;
47
+ },
45
48
  get Select () {
46
49
  return _Select.Select;
47
50
  },
48
51
  get Table () {
49
52
  return _Table.Table;
50
53
  },
54
+ get TableActionsColumn () {
55
+ return _TableActionsColumn.TableActionsColumn;
56
+ },
51
57
  get TableComponentsOrder () {
52
58
  return _Table.TableComponentsOrder;
53
59
  },
@@ -107,10 +113,12 @@ var _Menu = require("./components/Menu/Menu.js");
107
113
  var _Modal = require("./components/Modal/Modal.js");
108
114
  _export_star._(require("./components/Modal/ModalFooter.js"), exports);
109
115
  _export_star._(require("./components/Prompt/Prompt.js"), exports);
116
+ var _RadioCard = require("./components/RadioCard/RadioCard.js");
110
117
  var _PasswordInput = require("./components/PasswordInput/PasswordInput.js");
111
118
  var _Select = require("./components/Select/Select.js");
112
119
  _export_star._(require("./components/StickyFooter/StickyFooter.js"), exports);
113
120
  var _reacttable = require("@tanstack/react-table");
121
+ var _TableActionsColumn = require("./components/Table/table-column/TableActionsColumn.js");
114
122
  var _Table = require("./components/Table/Table.js");
115
123
  var _TableContext = require("./components/Table/TableContext.js");
116
124
  var _usetable = require("./components/Table/use-table.js");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {MantineColorsTuple, noop} from '@mantine/core';\nimport {type RowData} from '@tanstack/table-core';\nimport {type PlasmaColors} from './theme/PlasmaColors.js';\n\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport {Pagination} from '@mantine/core';\nexport {type DatesRangeValue} from '@mantine/dates';\nexport * from '@mantine/form';\nexport * from '@mantine/hooks';\nexport * from '@mantine/notifications';\nexport {type NotificationsProps} from '@mantine/notifications';\nexport * from '@tanstack/table-core';\n\n// Export all components\n// Accordion\nexport {Accordion} from './components/Accordion/Accordion.js';\n\n// Action Icon - override Mantine ActionIcon\nexport {ActionIcon, type ActionIconProps} from './components/ActionIcon/ActionIcon.js';\n\n// Alert - override Mantine Alert\nexport {Alert} from './components/Alert/Alert.js';\n\n// Badge - override Mantine Badge\nexport {\n Badge,\n type BadgeOverloadFactory,\n type SemanticBadge,\n type SemanticBadgeProps,\n} from './components/Badge/Badge.js';\n\n// Blank Slate\nexport * from './components/BlankSlate/BlankSlate.js';\n\n// Browser Preview\nexport * from './components/BrowserPreview/BrowserPreview.js';\n\n// Button - override Mantine Button\nexport {Button, type ButtonProps} from './components/Button/Button.js';\nexport {type ButtonWithDisabledTooltipProps} from './components/Button/ButtonWithDisabledTooltip.js';\n\n// Checkbox\nexport * from './components/CheckboxIcon/CheckboxIcon.js';\n\n// Child Form\nexport * from './components/ChildForm/ChildForm.js';\n\n// Chip - override Mantine Chip\nexport {Chip} from './components/Chip/Chip.js';\n\n// Code Editor\nexport * from './components/CodeEditor/CodeEditor.js';\n\n// Collection\nexport * from './components/Collection/Collection.js';\nexport {enhanceWithCollectionProps} from './components/Collection/enhanceWithCollectionProps.js';\n\n// Copy to Clipboard\nexport * from './components/CopyToClipboard/CopyToClipboard.js';\n\n// Date Range Picker\nexport * from './components/DateRangePicker/DateRangePicker.js';\nexport * from './components/DateRangePicker/DateRangePickerInlineCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPopoverCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPresetSelect.js';\n\n// Date Time Range Picker\nexport * from './components/DateTimeRangePicker/DateTimeRangePicker.js';\n\n// Ellipsis Text\nexport * from './components/EllipsisText/EllipsisText.js';\n\n// Header - override @tanstack/table-core Header\nexport {\n Header,\n type HeaderBreadcrumbsProps,\n type HeaderDocAnchorProps,\n type HeaderFactory,\n type HeaderProps,\n type HeaderRightProps,\n type HeaderStyleNames,\n type HeaderVariant,\n} from './components/Header/Header.js';\n\n// Info Token\nexport * from './components/InfoToken/InfoToken.js';\n\n// Inline Confirm\nexport * from './components/InlineConfirm/InlineConfirm.js';\nexport * from './components/InlineConfirm/InlineConfirmContext.js';\n\n// Last Updated\nexport * from './components/LastUpdated/LastUpdated.js';\n\n// Loader\nexport * from './components/CircleLoader/CircleLoader.js';\n\n// Menu - override Mantine Menu\nexport {Menu, type MenuItemProps} from './components/Menu/Menu.js';\n\n// Modal - override Mantine Modal\nexport {Modal, type ModalFactory, type ModalProps} from './components/Modal/Modal.js';\nexport * from './components/Modal/ModalFooter.js';\n\n// Prompt\nexport * from './components/Prompt/Prompt.js';\n\n// Read Only - override Mantine PasswordInput and Select\nexport {PasswordInput} from './components/PasswordInput/PasswordInput.js';\nexport {Select} from './components/Select/Select.js';\n\n// Sticky Footer\nexport * from './components/StickyFooter/StickyFooter.js';\n\n// Table - override Mantine Table\nexport {flexRender as renderTableCell} from '@tanstack/react-table';\nexport {type TablePredicateProps} from './components/Table/table-predicate/TablePredicate.js';\nexport {Table, TableComponentsOrder, type PlasmaTableFactory} from './components/Table/Table.js';\nexport {\n type TableAction,\n type TableLayout,\n type TableLayoutProps,\n type TableProps,\n} from './components/Table/Table.types.js';\nexport {useTableContext} from './components/Table/TableContext.js';\nexport {useTable, type TableState, type TableStore, type UseTableOptions} from './components/Table/use-table.js';\nexport {useUrlSyncedState, type SearchParamEntry, type UseUrlSyncedStateOptions} from './hooks/use-url-synced-state.js';\n\nexport {noop};\n\n// Theme\nexport * from './theme/plasmaCSSVariablesResolver.js';\nexport * from './theme/Plasmantine.js';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n colors: Record<keyof typeof PlasmaColors | (string & {}), MantineColorsTuple>;\n }\n}\n\ndeclare module '@tanstack/react-table' {\n interface ColumnMeta<TData extends RowData, TValue> {\n /**\n * Whether the column is a control column.\n * Control columns are columns that are not part of the data but are used to control the table.\n * For example, a column that contains checkboxes to select rows.\n */\n controlColumn: boolean;\n }\n}\n"],"names":["Accordion","ActionIcon","Alert","Badge","Button","Chip","Header","Menu","Modal","Pagination","PasswordInput","Select","Table","TableComponentsOrder","enhanceWithCollectionProps","noop","renderTableCell","flexRender","useTable","useTableContext","useUrlSyncedState"],"mappings":";;;;;;;;;;;QAgBQA;eAAAA,oBAAS;;QAGTC;eAAAA,sBAAU;;QAGVC;eAAAA,YAAK;;QAITC;eAAAA,YAAK;;QAaDC;eAAAA,cAAM;;QAUNC;eAAAA,UAAI;;QA0BRC;eAAAA,cAAM;;QAwBFC;eAAAA,UAAI;;QAGJC;eAAAA,YAAK;;QAhGLC;eAAAA,gBAAU;;QAuGVC;eAAAA,4BAAa;;QACbC;eAAAA,cAAM;;QAQNC;eAAAA,YAAK;;QAAEC;eAAAA,2BAAoB;;QA9D3BC;eAAAA,sDAA0B;;QAyE1BC;eAAAA,UAAI;;QAbUC;eAAdC,sBAAU;;QAUVC;eAAAA,kBAAQ;;QADRC;eAAAA,6BAAe;;QAEfC;eAAAA,oCAAiB;;;;mCA/Hc;uBAIzB;uBAIA;uBACA;uBACA;uBAEA;yBAIU;0BAGuB;qBAG3B;qBAQb;uBAGO;uBAGA;sBAGyB;uBAIzB;uBAGA;oBAGK;uBAGL;uBAGA;0CAC2B;uBAG3B;uBAGA;uBACA;uBACA;uBACA;uBAGA;uBAGA;sBAYP;uBAGO;uBAGA;uBACA;uBAGA;uBAGA;oBAGyB;qBAGiB;uBAC1C;uBAGA;6BAGc;sBACP;uBAGP;0BAG8B;qBAEuB;4BAOrC;wBACiD;iCACO;uBAKxE;uBACA"}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {MantineColorsTuple, noop} from '@mantine/core';\nimport {type RowData} from '@tanstack/table-core';\nimport {type PlasmaColors} from './theme/PlasmaColors.js';\n\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport {Pagination} from '@mantine/core';\nexport {type DatesRangeValue} from '@mantine/dates';\nexport * from '@mantine/form';\nexport * from '@mantine/hooks';\nexport * from '@mantine/notifications';\nexport {type NotificationsProps} from '@mantine/notifications';\nexport * from '@tanstack/table-core';\n\n// Export all components\n// Accordion\nexport {Accordion} from './components/Accordion/Accordion.js';\n\n// Action Icon - override Mantine ActionIcon\nexport {ActionIcon, type ActionIconProps} from './components/ActionIcon/ActionIcon.js';\n\n// Alert - override Mantine Alert\nexport {Alert} from './components/Alert/Alert.js';\n\n// Badge - override Mantine Badge\nexport {\n Badge,\n type BadgeOverloadFactory,\n type SemanticBadge,\n type SemanticBadgeProps,\n} from './components/Badge/Badge.js';\n\n// Blank Slate\nexport * from './components/BlankSlate/BlankSlate.js';\n\n// Browser Preview\nexport * from './components/BrowserPreview/BrowserPreview.js';\n\n// Button - override Mantine Button\nexport {Button, type ButtonProps} from './components/Button/Button.js';\nexport {type ButtonWithDisabledTooltipProps} from './components/Button/ButtonWithDisabledTooltip.js';\n\n// Checkbox\nexport * from './components/CheckboxIcon/CheckboxIcon.js';\n\n// Child Form\nexport * from './components/ChildForm/ChildForm.js';\n\n// Chip - override Mantine Chip\nexport {Chip} from './components/Chip/Chip.js';\n\n// Code Editor\nexport * from './components/CodeEditor/CodeEditor.js';\n\n// Collection\nexport * from './components/Collection/Collection.js';\nexport {enhanceWithCollectionProps} from './components/Collection/enhanceWithCollectionProps.js';\n\n// Copy to Clipboard\nexport * from './components/CopyToClipboard/CopyToClipboard.js';\n\n// Date Range Picker\nexport * from './components/DateRangePicker/DateRangePicker.js';\nexport * from './components/DateRangePicker/DateRangePickerInlineCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPopoverCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPresetSelect.js';\n\n// Date Time Range Picker\nexport * from './components/DateTimeRangePicker/DateTimeRangePicker.js';\n\n// Ellipsis Text\nexport * from './components/EllipsisText/EllipsisText.js';\n\n// Header - override @tanstack/table-core Header\nexport {\n Header,\n type HeaderBreadcrumbsProps,\n type HeaderDocAnchorProps,\n type HeaderFactory,\n type HeaderProps,\n type HeaderRightProps,\n type HeaderStyleNames,\n type HeaderVariant,\n} from './components/Header/Header.js';\n\n// Info Token\nexport * from './components/InfoToken/InfoToken.js';\n\n// Inline Confirm\nexport * from './components/InlineConfirm/InlineConfirm.js';\nexport * from './components/InlineConfirm/InlineConfirmContext.js';\n\n// Last Updated\nexport * from './components/LastUpdated/LastUpdated.js';\n\n// Loader\nexport * from './components/CircleLoader/CircleLoader.js';\n\n// Menu - override Mantine Menu\nexport {Menu, type MenuItemProps} from './components/Menu/Menu.js';\n\n// Modal - override Mantine Modal\nexport {Modal, type ModalFactory, type ModalProps} from './components/Modal/Modal.js';\nexport * from './components/Modal/ModalFooter.js';\n\n// Prompt\nexport * from './components/Prompt/Prompt.js';\n\n// RadioCard - override Mantine RadioCard\nexport {RadioCard, type RadioCardProps} from './components/RadioCard/RadioCard.js';\n\n// Read Only - override Mantine PasswordInput and Select\nexport {PasswordInput} from './components/PasswordInput/PasswordInput.js';\nexport {Select} from './components/Select/Select.js';\n\n// Sticky Footer\nexport * from './components/StickyFooter/StickyFooter.js';\n\n// Table - override Mantine Table\nexport {flexRender as renderTableCell} from '@tanstack/react-table';\nexport {TableActionsColumn} from './components/Table/table-column/TableActionsColumn.js';\nexport {type TablePredicateProps} from './components/Table/table-predicate/TablePredicate.js';\nexport {Table, TableComponentsOrder, type PlasmaTableFactory} from './components/Table/Table.js';\nexport {\n type TableAction,\n type TableLayout,\n type TableLayoutProps,\n type TableProps,\n} from './components/Table/Table.types.js';\nexport {useTableContext} from './components/Table/TableContext.js';\nexport {useTable, type TableState, type TableStore, type UseTableOptions} from './components/Table/use-table.js';\nexport {useUrlSyncedState, type SearchParamEntry, type UseUrlSyncedStateOptions} from './hooks/use-url-synced-state.js';\n\nexport {noop};\n\n// Theme\nexport * from './theme/plasmaCSSVariablesResolver.js';\nexport * from './theme/Plasmantine.js';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n colors: Record<keyof typeof PlasmaColors | (string & {}), MantineColorsTuple>;\n }\n}\n\ndeclare module '@tanstack/react-table' {\n interface ColumnMeta<TData extends RowData, TValue> {\n /**\n * Whether the column is a control column.\n * Control columns are columns that are not part of the data but are used to control the table.\n * For example, a column that contains checkboxes to select rows.\n */\n controlColumn: boolean;\n }\n}\n"],"names":["Accordion","ActionIcon","Alert","Badge","Button","Chip","Header","Menu","Modal","Pagination","PasswordInput","RadioCard","Select","Table","TableActionsColumn","TableComponentsOrder","enhanceWithCollectionProps","noop","renderTableCell","flexRender","useTable","useTableContext","useUrlSyncedState"],"mappings":";;;;;;;;;;;QAgBQA;eAAAA,oBAAS;;QAGTC;eAAAA,sBAAU;;QAGVC;eAAAA,YAAK;;QAITC;eAAAA,YAAK;;QAaDC;eAAAA,cAAM;;QAUNC;eAAAA,UAAI;;QA0BRC;eAAAA,cAAM;;QAwBFC;eAAAA,UAAI;;QAGJC;eAAAA,YAAK;;QAhGLC;eAAAA,gBAAU;;QA0GVC;eAAAA,4BAAa;;QAHbC;eAAAA,oBAAS;;QAITC;eAAAA,cAAM;;QASNC;eAAAA,YAAK;;QAFLC;eAAAA,sCAAkB;;QAEXC;eAAAA,2BAAoB;;QAlE3BC;eAAAA,sDAA0B;;QA6E1BC;eAAAA,UAAI;;QAdUC;eAAdC,sBAAU;;QAWVC;eAAAA,kBAAQ;;QADRC;eAAAA,6BAAe;;QAEfC;eAAAA,oCAAiB;;;;mCAnIc;uBAIzB;uBAIA;uBACA;uBACA;uBAEA;yBAIU;0BAGuB;qBAG3B;qBAQb;uBAGO;uBAGA;sBAGyB;uBAIzB;uBAGA;oBAGK;uBAGL;uBAGA;0CAC2B;uBAG3B;uBAGA;uBACA;uBACA;uBACA;uBAGA;uBAGA;sBAYP;uBAGO;uBAGA;uBACA;uBAGA;uBAGA;oBAGyB;qBAGiB;uBAC1C;uBAGA;yBAG+B;6BAGjB;sBACP;uBAGP;0BAG8B;kCACX;qBAEkC;4BAOrC;wBACiD;iCACO;uBAKxE;uBACA"}
@@ -5,7 +5,51 @@
5
5
  }
6
6
 
7
7
  .card {
8
+ display: inline-flex;
9
+ flex-direction: column;
10
+ align-items: flex-start;
11
+ padding: var(--mantine-spacing-sm);
12
+ border-radius: var(--mantine-radius-lg);
13
+
14
+ &[data-checked] {
15
+ border-color: var(--mantine-primary-color-filled);
16
+ }
17
+
8
18
  &[disabled] {
9
19
  pointer-events: none;
20
+
21
+ .title {
22
+ color: var(--mantine-color-disabled-color);
23
+ }
24
+
25
+ .description {
26
+ color: var(--mantine-color-disabled-color);
27
+ }
10
28
  }
11
29
  }
30
+
31
+ .container {
32
+ flex-wrap: nowrap;
33
+ gap: var(--mantine-spacing-sm);
34
+ align-items: baseline;
35
+ justify-content: flex-start;
36
+ width: 100%;
37
+ margin-bottom: var(--mantine-spacing-xs);
38
+ }
39
+
40
+ .title {
41
+ flex: 1;
42
+ color: var(--coveo-color-title);
43
+ word-break: break-word;
44
+ }
45
+
46
+ .description {
47
+ padding-left: var(--mantine-spacing-lg);
48
+ color: var(--mantine-color-dimmed);
49
+ font-weight: 400;
50
+ font-size: var(--mantine-font-size-xs);
51
+ }
52
+
53
+ .indicator {
54
+ cursor: pointer;
55
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../../../../src/components/CodeEditor/languages/xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AA0C5C,eAAO,MAAM,GAAG;uBAXU,MAAM,KAAG,IAAI;CAWV,CAAC"}
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../../../../src/components/CodeEditor/languages/xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AA2C5C,eAAO,MAAM,GAAG;uBAXU,MAAM,KAAG,IAAI;CAWV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/CodeEditor/languages/xml.ts"],"sourcesContent":["import {Monaco} from '@monaco-editor/react';\n\nconst format = (xml: string): string => {\n // https://stackoverflow.com/questions/57039218/doesnt-monaco-editor-support-xml-language-by-default\n const PADDING = ' '.repeat(2);\n const reg = /(>)(<)(\\/*)/g;\n let pad = 0;\n\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n\n return xml\n .split('\\r\\n')\n .map((node) => {\n let indent = 0;\n if (node.match(/.+<\\/\\w[^>]*>$/)) {\n indent = 0;\n } else if (node.match(/^<\\/\\w/) && pad > 0) {\n pad -= 1;\n } else if (node.match(/^<\\w[^>]*[^/]>.*$/)) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n pad += indent;\n\n return PADDING.repeat(pad - indent) + node;\n })\n .join('\\r\\n');\n};\n\nconst register = (monaco: Monaco): void => {\n monaco.languages.registerDocumentFormattingEditProvider('xml', {\n provideDocumentFormattingEdits: async (model) => [\n {\n range: model.getFullModelRange(),\n text: format(model.getValue()),\n },\n ],\n });\n};\n\nexport const XML = {register};\n"],"names":["format","xml","PADDING","repeat","reg","pad","replace","split","map","node","indent","match","join","register","monaco","languages","registerDocumentFormattingEditProvider","provideDocumentFormattingEdits","model","range","getFullModelRange","text","getValue","XML"],"mappings":"AAEA,MAAMA,SAAS,CAACC;IACZ,oGAAoG;IACpG,MAAMC,UAAU,IAAIC,MAAM,CAAC;IAC3B,MAAMC,MAAM;IACZ,IAAIC,MAAM;IAEVJ,MAAMA,IAAIK,OAAO,CAACF,KAAK;IAEvB,OAAOH,IACFM,KAAK,CAAC,QACNC,GAAG,CAAC,CAACC;QACF,IAAIC,SAAS;QACb,IAAID,KAAKE,KAAK,CAAC,mBAAmB;YAC9BD,SAAS;QACb,OAAO,IAAID,KAAKE,KAAK,CAAC,aAAaN,MAAM,GAAG;YACxCA,OAAO;QACX,OAAO,IAAII,KAAKE,KAAK,CAAC,sBAAsB;YACxCD,SAAS;QACb,OAAO;YACHA,SAAS;QACb;QAEAL,OAAOK;QAEP,OAAOR,QAAQC,MAAM,CAACE,MAAMK,UAAUD;IAC1C,GACCG,IAAI,CAAC;AACd;AAEA,MAAMC,WAAW,CAACC;IACdA,OAAOC,SAAS,CAACC,sCAAsC,CAAC,OAAO;QAC3DC,gCAAgC,OAAOC,QAAU;gBAC7C;oBACIC,OAAOD,MAAME,iBAAiB;oBAC9BC,MAAMrB,OAAOkB,MAAMI,QAAQ;gBAC/B;aACH;IACL;AACJ;AAEA,OAAO,MAAMC,MAAM;IAACV;AAAQ,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/CodeEditor/languages/xml.ts"],"sourcesContent":["import {Monaco} from '@monaco-editor/react';\nimport type {editor} from 'monaco-editor';\n\nconst format = (xml: string): string => {\n // https://stackoverflow.com/questions/57039218/doesnt-monaco-editor-support-xml-language-by-default\n const PADDING = ' '.repeat(2);\n const reg = /(>)(<)(\\/*)/g;\n let pad = 0;\n\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n\n return xml\n .split('\\r\\n')\n .map((node) => {\n let indent = 0;\n if (node.match(/.+<\\/\\w[^>]*>$/)) {\n indent = 0;\n } else if (node.match(/^<\\/\\w/) && pad > 0) {\n pad -= 1;\n } else if (node.match(/^<\\w[^>]*[^/]>.*$/)) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n pad += indent;\n\n return PADDING.repeat(pad - indent) + node;\n })\n .join('\\r\\n');\n};\n\nconst register = (monaco: Monaco): void => {\n monaco.languages.registerDocumentFormattingEditProvider('xml', {\n provideDocumentFormattingEdits: async (model: editor.ITextModel) => [\n {\n range: model.getFullModelRange(),\n text: format(model.getValue()),\n },\n ],\n });\n};\n\nexport const XML = {register};\n"],"names":["format","xml","PADDING","repeat","reg","pad","replace","split","map","node","indent","match","join","register","monaco","languages","registerDocumentFormattingEditProvider","provideDocumentFormattingEdits","model","range","getFullModelRange","text","getValue","XML"],"mappings":"AAGA,MAAMA,SAAS,CAACC;IACZ,oGAAoG;IACpG,MAAMC,UAAU,IAAIC,MAAM,CAAC;IAC3B,MAAMC,MAAM;IACZ,IAAIC,MAAM;IAEVJ,MAAMA,IAAIK,OAAO,CAACF,KAAK;IAEvB,OAAOH,IACFM,KAAK,CAAC,QACNC,GAAG,CAAC,CAACC;QACF,IAAIC,SAAS;QACb,IAAID,KAAKE,KAAK,CAAC,mBAAmB;YAC9BD,SAAS;QACb,OAAO,IAAID,KAAKE,KAAK,CAAC,aAAaN,MAAM,GAAG;YACxCA,OAAO;QACX,OAAO,IAAII,KAAKE,KAAK,CAAC,sBAAsB;YACxCD,SAAS;QACb,OAAO;YACHA,SAAS;QACb;QAEAL,OAAOK;QAEP,OAAOR,QAAQC,MAAM,CAACE,MAAMK,UAAUD;IAC1C,GACCG,IAAI,CAAC;AACd;AAEA,MAAMC,WAAW,CAACC;IACdA,OAAOC,SAAS,CAACC,sCAAsC,CAAC,OAAO;QAC3DC,gCAAgC,OAAOC,QAA6B;gBAChE;oBACIC,OAAOD,MAAME,iBAAiB;oBAC9BC,MAAMrB,OAAOkB,MAAMI,QAAQ;gBAC/B;aACH;IACL;AACJ;AAEA,OAAO,MAAMC,MAAM;IAACV;AAAQ,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"enhanceWithCollectionProps.d.ts","sourceRoot":"","sources":["../../../../src/components/Collection/enhanceWithCollectionProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,0BAA0B,GACnC,UAAU,EACV,eAAe,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,EAE5F,SAAS,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EACzF,OAAO,CAAC,OAAO,OAAO,EAAE,OAAO,CAAC,EAChC,UAAU;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAC,KAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,cAAc,CAoBlF,CAAC"}
1
+ {"version":3,"file":"enhanceWithCollectionProps.d.ts","sourceRoot":"","sources":["../../../../src/components/Collection/enhanceWithCollectionProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAwB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,0BAA0B,GACnC,UAAU,EACV,eAAe,SAAS,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,EAE5F,SAAS,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EACzF,OAAO,CAAC,OAAO,OAAO,EAAE,OAAO,CAAC,EAChC,UAAU;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAC,KAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,cAAc,CAoBlF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Collection/enhanceWithCollectionProps.ts"],"sourcesContent":["import {UseFormInput} from '@mantine/form';\nimport {CollectionProps} from './Collection.js';\n\nexport const enhanceWithCollectionProps = <\n FormValues,\n TransformValues extends (values: FormValues) => unknown = (values: FormValues) => FormValues,\n>(\n payload: Parameters<UseFormInput<FormValues, TransformValues>['enhanceGetInputProps']>[0],\n field: (typeof payload)['field'],\n options?: {validateInputOnChange?: boolean},\n): Pick<CollectionProps<unknown>, 'onReorderItem' | 'onInsertItem' | 'onRemoveItem'> => {\n if (payload.field === field) {\n const {validateInputOnChange = false} = options || {};\n return {\n onReorderItem: (reorderPayload: Record<'from' | 'to', number>) => {\n payload.form.reorderListItem(field, reorderPayload);\n validateInputOnChange && payload.form.validate();\n },\n onRemoveItem: (index: number) => {\n payload.form.removeListItem(field, index);\n validateInputOnChange && payload.form.validate();\n },\n onInsertItem: (valueToInsert: unknown, index: number) => {\n payload.form.insertListItem(field, valueToInsert, index);\n validateInputOnChange && payload.form.validate();\n },\n };\n }\n\n return {};\n};\n"],"names":["enhanceWithCollectionProps","payload","field","options","validateInputOnChange","onReorderItem","reorderPayload","form","reorderListItem","validate","onRemoveItem","index","removeListItem","onInsertItem","valueToInsert","insertListItem"],"mappings":"AAGA,OAAO,MAAMA,6BAA6B,CAItCC,SACAC,OACAC;IAEA,IAAIF,QAAQC,KAAK,KAAKA,OAAO;QACzB,MAAM,EAACE,wBAAwB,KAAK,EAAC,GAAGD,WAAW,CAAC;QACpD,OAAO;YACHE,eAAe,CAACC;gBACZL,QAAQM,IAAI,CAACC,eAAe,CAACN,OAAOI;gBACpCF,yBAAyBH,QAAQM,IAAI,CAACE,QAAQ;YAClD;YACAC,cAAc,CAACC;gBACXV,QAAQM,IAAI,CAACK,cAAc,CAACV,OAAOS;gBACnCP,yBAAyBH,QAAQM,IAAI,CAACE,QAAQ;YAClD;YACAI,cAAc,CAACC,eAAwBH;gBACnCV,QAAQM,IAAI,CAACQ,cAAc,CAACb,OAAOY,eAAeH;gBAClDP,yBAAyBH,QAAQM,IAAI,CAACE,QAAQ;YAClD;QACJ;IACJ;IAEA,OAAO,CAAC;AACZ,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Collection/enhanceWithCollectionProps.ts"],"sourcesContent":["import {UseFormInput, type FormArrayElement} from '@mantine/form';\nimport {CollectionProps} from './Collection.js';\n\nexport const enhanceWithCollectionProps = <\n FormValues,\n TransformValues extends (values: FormValues) => unknown = (values: FormValues) => FormValues,\n>(\n payload: Parameters<UseFormInput<FormValues, TransformValues>['enhanceGetInputProps']>[0],\n field: (typeof payload)['field'],\n options?: {validateInputOnChange?: boolean},\n): Pick<CollectionProps<unknown>, 'onReorderItem' | 'onInsertItem' | 'onRemoveItem'> => {\n if (payload.field === field) {\n const {validateInputOnChange = false} = options || {};\n return {\n onReorderItem: (reorderPayload: Record<'from' | 'to', number>) => {\n payload.form.reorderListItem(field, reorderPayload);\n validateInputOnChange && payload.form.validate();\n },\n onRemoveItem: (index: number) => {\n payload.form.removeListItem(field, index);\n validateInputOnChange && payload.form.validate();\n },\n onInsertItem: (valueToInsert: FormArrayElement<FormValues, (typeof payload)['field']>, index: number) => {\n payload.form.insertListItem(field, valueToInsert, index);\n validateInputOnChange && payload.form.validate();\n },\n };\n }\n\n return {};\n};\n"],"names":["enhanceWithCollectionProps","payload","field","options","validateInputOnChange","onReorderItem","reorderPayload","form","reorderListItem","validate","onRemoveItem","index","removeListItem","onInsertItem","valueToInsert","insertListItem"],"mappings":"AAGA,OAAO,MAAMA,6BAA6B,CAItCC,SACAC,OACAC;IAEA,IAAIF,QAAQC,KAAK,KAAKA,OAAO;QACzB,MAAM,EAACE,wBAAwB,KAAK,EAAC,GAAGD,WAAW,CAAC;QACpD,OAAO;YACHE,eAAe,CAACC;gBACZL,QAAQM,IAAI,CAACC,eAAe,CAACN,OAAOI;gBACpCF,yBAAyBH,QAAQM,IAAI,CAACE,QAAQ;YAClD;YACAC,cAAc,CAACC;gBACXV,QAAQM,IAAI,CAACK,cAAc,CAACV,OAAOS;gBACnCP,yBAAyBH,QAAQM,IAAI,CAACE,QAAQ;YAClD;YACAI,cAAc,CAACC,eAAwEH;gBACnFV,QAAQM,IAAI,CAACQ,cAAc,CAACb,OAAOY,eAAeH;gBAClDP,yBAAyBH,QAAQM,IAAI,CAACE,QAAQ;YAClD;QACJ;IACJ;IAEA,OAAO,CAAC;AACZ,EAAE"}
@@ -5,3 +5,7 @@
5
5
  .save {
6
6
  border-top: 1px solid var(--mantine-color-default-border);
7
7
  }
8
+
9
+ .input {
10
+ white-space: nowrap;
11
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,OAAO,EAGP,YAAY,EACZ,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAgC,kCAAkC,EAAC,MAAM,iCAAiC,CAAC;AAgBlH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,oBACb,SAAQ,QAAQ,EACZ,IAAI,CAAC,kCAAkC,EAAE,SAAS,GAAG,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC,EACtG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAC,EAC9C,cAAc,CAAC,sBAAsB,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,0BAA0B,CAAC;CAC3C,CAAC,CAAC;AAOH,eAAO,MAAM,eAAe;WAVjB,oBAAoB;SACtB,cAAc;iBACN,0BAA0B;EA8GzC,CAAC"}
1
+ {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,OAAO,EAGP,YAAY,EACZ,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAgC,kCAAkC,EAAC,MAAM,iCAAiC,CAAC;AAgBlH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,oBACb,SAAQ,QAAQ,EACZ,IAAI,CAAC,kCAAkC,EAAE,SAAS,GAAG,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC,EACtG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAC,EAC9C,cAAc,CAAC,sBAAsB,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,0BAA0B,CAAC;CAC3C,CAAC,CAAC;AAOH,eAAO,MAAM,eAAe;WAVjB,oBAAoB;SACtB,cAAc;iBACN,0BAA0B;EA8GzC,CAAC"}
@@ -4,6 +4,7 @@ import { factory, InputBase, Popover, useProps, useStyles } from '@mantine/core'
4
4
  import { useUncontrolled } from '@mantine/hooks';
5
5
  import dayjs from 'dayjs';
6
6
  import { useUrlSyncedState } from '../../hooks/use-url-synced-state';
7
+ import classes from './DateRange.module.css';
7
8
  import { DateRangePickerInlineCalendar } from './DateRangePickerInlineCalendar';
8
9
  const serialization = (input)=>Object.freeze(input);
9
10
  const DATE_RANGE_SERIALIZATION = serialization({
@@ -32,7 +33,7 @@ export const DateRangePicker = factory((props)=>{
32
33
  const { defaultValue, value, opened, defaultOpened, onOpenedChange, onClick, onCancel, onChange, presets, startProps, endProps, rangeCalendarProps, formatter, placeholder, syncWithUrl, error, className, classNames, style, styles, vars, unstyled, ...others } = useProps('PlasmaDateRangePicker', defaultProps, props);
33
34
  const getStyles = useStyles({
34
35
  name: 'DateRangePicker',
35
- classes: {},
36
+ classes,
36
37
  props,
37
38
  className,
38
39
  classNames,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {IconCalendar} from '@coveord/plasma-react-icons';\nimport {\n BoxProps,\n factory,\n Factory,\n InputBase,\n Popover,\n PopoverProps,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useUncontrolled} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state';\nimport {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar';\n\nconst serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>\n Object.freeze(input);\n\nconst DATE_RANGE_SERIALIZATION = serialization({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nexport type DateRangePickerStylesNames = 'input';\n\nexport interface DateRangePickerProps\n extends BoxProps,\n Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>,\n Pick<PopoverProps, 'opened' | 'defaultOpened'>,\n StylesApiProps<DateRangePickerFactory> {\n /**\n * Called when the target input is clicked\n */\n onClick?(): void;\n /**\n * Function called when the cancel button is clicked.\n */\n onCancel?(): void;\n /**\n * Function called when the date range value changes.\n */\n onChange?(dates: DatesRangeValue<string>): void;\n /**\n * Called when the popover opened state changes.\n */\n onOpenedChange?(opened: boolean): void;\n /**\n * Optional formatter function to format the date value.\n * Receives the date prop and should return a string.\n * @default (time) => dayjs(time).format('MMM D, YYYY')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The placeholder label to display when no date range is selected.\n *\n * @default \"Select date range\"\n */\n placeholder?: string;\n /**\n * Default value for uncontrolled input\n */\n defaultValue?: DatesRangeValue<string>;\n /**\n * Value for controlled input\n */\n value?: DatesRangeValue<string>;\n /**\n * Sync the selected dates to URL query parameters\n */\n syncWithUrl?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n}\n\nexport type DateRangePickerFactory = Factory<{\n props: DateRangePickerProps;\n ref: HTMLDivElement;\n stylesNames: DateRangePickerStylesNames;\n}>;\n\nconst defaultProps: Partial<DateRangePickerProps> = {\n placeholder: 'Select date range',\n formatter: (time) => dayjs(time).format('MMM D, YYYY'),\n};\n\nexport const DateRangePicker = factory<DateRangePickerFactory>((props: DateRangePickerProps) => {\n const {\n defaultValue,\n value,\n opened,\n defaultOpened,\n onOpenedChange,\n onClick,\n onCancel,\n onChange,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n formatter,\n placeholder,\n syncWithUrl,\n error,\n className,\n classNames,\n style,\n styles,\n vars,\n unstyled,\n ...others\n } = useProps('PlasmaDateRangePicker', defaultProps as Partial<DateRangePickerProps>, props);\n\n const getStyles = useStyles<DateRangePickerFactory>({\n name: 'DateRangePicker',\n classes: {},\n props,\n className,\n classNames,\n style,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const [dateRange, setDateRange] = useUrlSyncedState<DatesRangeValue<string>>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: defaultValue !== undefined ? defaultValue : [null, null],\n sync: !!syncWithUrl,\n });\n\n const handleApply = (dates: DatesRangeValue<string>) => {\n if (value === undefined) {\n setDateRange(dates);\n }\n onChange?.(dates);\n setOpened(false);\n };\n\n const handleClick = () => {\n setOpened(true);\n onClick?.();\n };\n\n const handleCancel = () => {\n setOpened(false);\n onCancel?.();\n };\n\n const _value = value ?? dateRange;\n const formattedRange = `${formatter(_value[0])} - ${formatter(_value[1])}`;\n const dateRangeInitialized = _value.every((date: DateStringValue) => typeof date === 'string' && date !== '');\n\n return (\n <Popover opened={_opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n component=\"button\"\n leftSection={<IconCalendar height={16} />}\n onClick={handleClick}\n error={error}\n {...getStyles('input', {className, style, ...stylesApiProps})}\n {...others}\n >\n {dateRangeInitialized ? formattedRange : placeholder}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={_value}\n onApply={handleApply}\n onCancel={handleCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n startProps={startProps}\n endProps={endProps}\n />\n </Popover.Dropdown>\n </Popover>\n );\n});\n"],"names":["IconCalendar","factory","InputBase","Popover","useProps","useStyles","useUncontrolled","dayjs","useUrlSyncedState","DateRangePickerInlineCalendar","serialization","input","Object","freeze","DATE_RANGE_SERIALIZATION","serializer","from","to","Date","toISOString","deserializer","params","initial","get","defaultProps","placeholder","formatter","time","format","DateRangePicker","props","defaultValue","value","opened","defaultOpened","onOpenedChange","onClick","onCancel","onChange","presets","startProps","endProps","rangeCalendarProps","syncWithUrl","error","className","classNames","style","styles","vars","unstyled","others","getStyles","name","classes","stylesApiProps","_opened","setOpened","finalValue","dateRange","setDateRange","initialState","undefined","sync","handleApply","dates","handleClick","handleCancel","_value","formattedRange","dateRangeInitialized","every","date","Target","component","leftSection","height","Dropdown","p","initialRange","onApply"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {IconCalendar} from '@coveord/plasma-react-icons';\nimport {\n BoxProps,\n factory,\n Factory,\n InputBase,\n Popover,\n PopoverProps,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useUncontrolled} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state';\nimport classes from './DateRange.module.css';\nimport {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar';\n\nconst serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>\n Object.freeze(input);\n\nconst DATE_RANGE_SERIALIZATION = serialization({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nexport type DateRangePickerStylesNames = 'input';\n\nexport interface DateRangePickerProps\n extends BoxProps,\n Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>,\n Pick<PopoverProps, 'opened' | 'defaultOpened'>,\n StylesApiProps<DateRangePickerFactory> {\n /**\n * Called when the target input is clicked\n */\n onClick?(): void;\n /**\n * Function called when the cancel button is clicked.\n */\n onCancel?(): void;\n /**\n * Function called when the date range value changes.\n */\n onChange?(dates: DatesRangeValue<string>): void;\n /**\n * Called when the popover opened state changes.\n */\n onOpenedChange?(opened: boolean): void;\n /**\n * Optional formatter function to format the date value.\n * Receives the date prop and should return a string.\n * @default (time) => dayjs(time).format('MMM D, YYYY')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The placeholder label to display when no date range is selected.\n *\n * @default \"Select date range\"\n */\n placeholder?: string;\n /**\n * Default value for uncontrolled input\n */\n defaultValue?: DatesRangeValue<string>;\n /**\n * Value for controlled input\n */\n value?: DatesRangeValue<string>;\n /**\n * Sync the selected dates to URL query parameters\n */\n syncWithUrl?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n}\n\nexport type DateRangePickerFactory = Factory<{\n props: DateRangePickerProps;\n ref: HTMLDivElement;\n stylesNames: DateRangePickerStylesNames;\n}>;\n\nconst defaultProps: Partial<DateRangePickerProps> = {\n placeholder: 'Select date range',\n formatter: (time) => dayjs(time).format('MMM D, YYYY'),\n};\n\nexport const DateRangePicker = factory<DateRangePickerFactory>((props: DateRangePickerProps) => {\n const {\n defaultValue,\n value,\n opened,\n defaultOpened,\n onOpenedChange,\n onClick,\n onCancel,\n onChange,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n formatter,\n placeholder,\n syncWithUrl,\n error,\n className,\n classNames,\n style,\n styles,\n vars,\n unstyled,\n ...others\n } = useProps('PlasmaDateRangePicker', defaultProps as Partial<DateRangePickerProps>, props);\n\n const getStyles = useStyles<DateRangePickerFactory>({\n name: 'DateRangePicker',\n classes,\n props,\n className,\n classNames,\n style,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const [dateRange, setDateRange] = useUrlSyncedState<DatesRangeValue<string>>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: defaultValue !== undefined ? defaultValue : [null, null],\n sync: !!syncWithUrl,\n });\n\n const handleApply = (dates: DatesRangeValue<string>) => {\n if (value === undefined) {\n setDateRange(dates);\n }\n onChange?.(dates);\n setOpened(false);\n };\n\n const handleClick = () => {\n setOpened(true);\n onClick?.();\n };\n\n const handleCancel = () => {\n setOpened(false);\n onCancel?.();\n };\n\n const _value = value ?? dateRange;\n const formattedRange = `${formatter(_value[0])} - ${formatter(_value[1])}`;\n const dateRangeInitialized = _value.every((date: DateStringValue) => typeof date === 'string' && date !== '');\n\n return (\n <Popover opened={_opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n component=\"button\"\n leftSection={<IconCalendar height={16} />}\n onClick={handleClick}\n error={error}\n {...getStyles('input', {className, style, ...stylesApiProps})}\n {...others}\n >\n {dateRangeInitialized ? formattedRange : placeholder}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={_value}\n onApply={handleApply}\n onCancel={handleCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n startProps={startProps}\n endProps={endProps}\n />\n </Popover.Dropdown>\n </Popover>\n );\n});\n"],"names":["IconCalendar","factory","InputBase","Popover","useProps","useStyles","useUncontrolled","dayjs","useUrlSyncedState","classes","DateRangePickerInlineCalendar","serialization","input","Object","freeze","DATE_RANGE_SERIALIZATION","serializer","from","to","Date","toISOString","deserializer","params","initial","get","defaultProps","placeholder","formatter","time","format","DateRangePicker","props","defaultValue","value","opened","defaultOpened","onOpenedChange","onClick","onCancel","onChange","presets","startProps","endProps","rangeCalendarProps","syncWithUrl","error","className","classNames","style","styles","vars","unstyled","others","getStyles","name","stylesApiProps","_opened","setOpened","finalValue","dateRange","setDateRange","initialState","undefined","sync","handleApply","dates","handleClick","handleCancel","_value","formattedRange","dateRangeInitialized","every","date","Target","component","leftSection","height","Dropdown","p","initialRange","onApply"],"mappings":"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"}