@coveord/plasma-mantine 54.4.0 → 55.0.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 (122) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +35 -35
  3. package/__mocks__/@monaco-editor/react.tsx +5 -1
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/cjs/components/button/ButtonWithDisabledTooltip.d.ts +1 -1
  6. package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
  7. package/dist/cjs/components/code-editor/CodeEditor.js +25 -2
  8. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  9. package/dist/cjs/components/code-editor/CodeEditor.module.css +10 -0
  10. package/dist/cjs/components/collection/Collection.d.ts +6 -0
  11. package/dist/cjs/components/collection/Collection.d.ts.map +1 -1
  12. package/dist/cjs/components/collection/Collection.js +7 -4
  13. package/dist/cjs/components/collection/Collection.js.map +1 -1
  14. package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts +9 -1
  15. package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
  16. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js +5 -6
  17. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  18. package/dist/cjs/components/index.d.ts +7 -6
  19. package/dist/cjs/components/index.d.ts.map +1 -1
  20. package/dist/cjs/components/index.js +7 -6
  21. package/dist/cjs/components/index.js.map +1 -1
  22. package/dist/cjs/components/read-only/PasswordInput.d.ts +8 -0
  23. package/dist/cjs/components/read-only/PasswordInput.d.ts.map +1 -0
  24. package/dist/cjs/components/read-only/PasswordInput.js +29 -0
  25. package/dist/cjs/components/read-only/PasswordInput.js.map +1 -0
  26. package/dist/cjs/components/read-only/ReadOnlyInputStyles.d.ts +13 -0
  27. package/dist/cjs/components/read-only/ReadOnlyInputStyles.d.ts.map +1 -0
  28. package/dist/cjs/components/read-only/ReadOnlyInputStyles.js +25 -0
  29. package/dist/cjs/components/read-only/ReadOnlyInputStyles.js.map +1 -0
  30. package/dist/cjs/components/read-only/Select.d.ts +7 -0
  31. package/dist/cjs/components/read-only/Select.d.ts.map +1 -0
  32. package/dist/cjs/components/read-only/Select.js +29 -0
  33. package/dist/cjs/components/read-only/Select.js.map +1 -0
  34. package/dist/cjs/components/read-only/index.d.ts +3 -0
  35. package/dist/cjs/components/read-only/index.d.ts.map +1 -0
  36. package/dist/cjs/components/read-only/index.js +9 -0
  37. package/dist/cjs/components/read-only/index.js.map +1 -0
  38. package/dist/cjs/components/table/index.d.ts +1 -1
  39. package/dist/cjs/components/table/index.d.ts.map +1 -1
  40. package/dist/cjs/components/table/index.js +0 -4
  41. package/dist/cjs/components/table/index.js.map +1 -1
  42. package/dist/cjs/components/table/table-predicate/TablePredicate.d.ts +2 -3
  43. package/dist/cjs/components/table/table-predicate/TablePredicate.d.ts.map +1 -1
  44. package/dist/cjs/components/table/table-predicate/TablePredicate.js.map +1 -1
  45. package/dist/cjs/index.d.ts +1 -1
  46. package/dist/cjs/index.d.ts.map +1 -1
  47. package/dist/cjs/index.js +6 -0
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/styles/Input.module.css +1 -1
  50. package/dist/cjs/styles/ReadOnlyInput.module.css +8 -0
  51. package/dist/cjs/styles/ReadOnlyState.module.css +3 -0
  52. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  53. package/dist/cjs/theme/Theme.js +94 -6
  54. package/dist/cjs/theme/Theme.js.map +1 -1
  55. package/dist/esm/components/button/ButtonWithDisabledTooltip.d.ts +1 -1
  56. package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
  57. package/dist/esm/components/code-editor/CodeEditor.js +26 -1
  58. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  59. package/dist/esm/components/code-editor/CodeEditor.module.css +10 -0
  60. package/dist/esm/components/collection/Collection.d.ts +6 -0
  61. package/dist/esm/components/collection/Collection.d.ts.map +1 -1
  62. package/dist/esm/components/collection/Collection.js +6 -4
  63. package/dist/esm/components/collection/Collection.js.map +1 -1
  64. package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts +9 -1
  65. package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
  66. package/dist/esm/components/copyToClipboard/CopyToClipboard.js +3 -5
  67. package/dist/esm/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  68. package/dist/esm/components/index.d.ts +7 -6
  69. package/dist/esm/components/index.d.ts.map +1 -1
  70. package/dist/esm/components/index.js +7 -6
  71. package/dist/esm/components/index.js.map +1 -1
  72. package/dist/esm/components/read-only/PasswordInput.d.ts +8 -0
  73. package/dist/esm/components/read-only/PasswordInput.d.ts.map +1 -0
  74. package/dist/esm/components/read-only/PasswordInput.js +20 -0
  75. package/dist/esm/components/read-only/PasswordInput.js.map +1 -0
  76. package/dist/esm/components/read-only/ReadOnlyInputStyles.d.ts +13 -0
  77. package/dist/esm/components/read-only/ReadOnlyInputStyles.d.ts.map +1 -0
  78. package/dist/esm/components/read-only/ReadOnlyInputStyles.js +13 -0
  79. package/dist/esm/components/read-only/ReadOnlyInputStyles.js.map +1 -0
  80. package/dist/esm/components/read-only/Select.d.ts +7 -0
  81. package/dist/esm/components/read-only/Select.d.ts.map +1 -0
  82. package/dist/esm/components/read-only/Select.js +20 -0
  83. package/dist/esm/components/read-only/Select.js.map +1 -0
  84. package/dist/esm/components/read-only/index.d.ts +3 -0
  85. package/dist/esm/components/read-only/index.d.ts.map +1 -0
  86. package/dist/esm/components/read-only/index.js +4 -0
  87. package/dist/esm/components/read-only/index.js.map +1 -0
  88. package/dist/esm/components/table/index.d.ts +1 -1
  89. package/dist/esm/components/table/index.d.ts.map +1 -1
  90. package/dist/esm/components/table/index.js +0 -1
  91. package/dist/esm/components/table/index.js.map +1 -1
  92. package/dist/esm/components/table/table-predicate/TablePredicate.d.ts +2 -3
  93. package/dist/esm/components/table/table-predicate/TablePredicate.d.ts.map +1 -1
  94. package/dist/esm/components/table/table-predicate/TablePredicate.js.map +1 -1
  95. package/dist/esm/index.d.ts +1 -1
  96. package/dist/esm/index.d.ts.map +1 -1
  97. package/dist/esm/index.js +1 -1
  98. package/dist/esm/index.js.map +1 -1
  99. package/dist/esm/styles/Input.module.css +1 -1
  100. package/dist/esm/styles/ReadOnlyInput.module.css +8 -0
  101. package/dist/esm/styles/ReadOnlyState.module.css +3 -0
  102. package/dist/esm/theme/Theme.d.ts.map +1 -1
  103. package/dist/esm/theme/Theme.js +95 -7
  104. package/dist/esm/theme/Theme.js.map +1 -1
  105. package/package.json +9 -9
  106. package/src/components/code-editor/CodeEditor.module.css +10 -0
  107. package/src/components/code-editor/CodeEditor.tsx +26 -1
  108. package/src/components/collection/Collection.tsx +12 -3
  109. package/src/components/copyToClipboard/CopyToClipboard.tsx +12 -6
  110. package/src/components/index.ts +7 -6
  111. package/src/components/read-only/PasswordInput.tsx +11 -0
  112. package/src/components/read-only/ReadOnlyInputStyles.ts +13 -0
  113. package/src/components/read-only/Select.tsx +11 -0
  114. package/src/components/read-only/index.ts +2 -0
  115. package/src/components/table/__tests__/TablePredicate.spec.tsx +2 -1
  116. package/src/components/table/index.ts +1 -1
  117. package/src/components/table/table-predicate/TablePredicate.tsx +2 -3
  118. package/src/index.ts +2 -0
  119. package/src/styles/Input.module.css +1 -1
  120. package/src/styles/ReadOnlyInput.module.css +8 -0
  121. package/src/styles/ReadOnlyState.module.css +3 -0
  122. package/src/theme/Theme.tsx +86 -3
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { ArrowHeadLeftSize16Px, ArrowHeadRightSize16Px, CheckSize16Px, CrossSize16Px, FilterSize16Px, InfoSize16Px, InfoSize24Px } from '@coveord/plasma-react-icons';
3
3
  import { color } from '@coveord/plasma-tokens';
4
- import { ActionIcon, Alert, Anchor, AppShellNavbar, Badge, Button, Checkbox, CloseButton, ColorSwatch, Combobox, ComboboxSearch, createTheme, Divider, Input, InputWrapper, List, Loader, MenuItem, Modal, MultiSelect, NavLink, Notification, Pagination, Popover, Radio, ScrollArea, SegmentedControl, Select, Skeleton, Stepper, Tabs, Text, TextInput, Tooltip } from '@mantine/core';
4
+ import { ActionIcon, Alert, Anchor, AppShellNavbar, Badge, Button, Checkbox, CloseButton, ColorSwatch, Combobox, ComboboxSearch, createTheme, deepMerge, Divider, Input, InputWrapper, List, Loader, MenuItem, Modal, MultiSelect, NavLink, Notification, Pagination, Popover, Radio, ScrollArea, SegmentedControl, Select, Skeleton, Stepper, Switch, Tabs, Text, TextInput, Tooltip } from '@mantine/core';
5
5
  import { DatePicker } from '@mantine/dates';
6
6
  import ActionIconClasses from '../styles/ActionIcon.module.css';
7
7
  import AlertClasses from '../styles/Alert.module.css';
@@ -20,6 +20,8 @@ import NavLinkClasses from '../styles/NavLink.module.css';
20
20
  import NotificationClasses from '../styles/Notification.module.css';
21
21
  import PaginationClasses from '../styles/Pagination.module.css';
22
22
  import RadioClasses from '../styles/Radio.module.css';
23
+ import ReadOnlyInputClasses from '../styles/ReadOnlyInput.module.css';
24
+ import ReadOnlyStateClasses from '../styles/ReadOnlyState.module.css';
23
25
  import ScrollAreaClasses from '../styles/ScrollArea.module.css';
24
26
  import SegmentedControlClasses from '../styles/SegmentedControl.module.css';
25
27
  import SelectClasses from '../styles/Select.module.css';
@@ -134,9 +136,24 @@ export const plasmaTheme = createTheme({
134
136
  defaultProps: {
135
137
  radius: 'sm'
136
138
  },
137
- classNames: {
138
- label: CheckboxClasses.label,
139
- input: CheckboxClasses.input
139
+ classNames: (theme, props)=>{
140
+ if (props.readOnly && !props.disabled) {
141
+ return deepMerge(CheckboxClasses, ReadOnlyStateClasses);
142
+ }
143
+ return CheckboxClasses;
144
+ },
145
+ vars: (theme, props)=>{
146
+ if (props.readOnly && !props.disabled) {
147
+ return {
148
+ root: {
149
+ '--checkbox-icon-color': theme.colors.gray[7],
150
+ '--checkbox-color': theme.colors.gray[2]
151
+ }
152
+ };
153
+ }
154
+ return {
155
+ root: {}
156
+ };
140
157
  }
141
158
  }),
142
159
  CloseButton: CloseButton.extend({
@@ -179,10 +196,36 @@ export const plasmaTheme = createTheme({
179
196
  }
180
197
  }),
181
198
  Input: Input.extend({
182
- classNames: InputClasses
199
+ classNames: (theme, props)=>{
200
+ const anyProps = props;
201
+ // eslint-disable-next-line no-underscore-dangle
202
+ if (anyProps.readOnly && !props.disabled && ![
203
+ 'Select'
204
+ ].includes(anyProps.__staticSelector)) {
205
+ return deepMerge(InputClasses, ReadOnlyInputClasses);
206
+ }
207
+ return InputClasses;
208
+ }
183
209
  }),
184
210
  InputWrapper: InputWrapper.extend({
185
- classNames: InputWrapperClasses
211
+ classNames: InputWrapperClasses,
212
+ vars: (theme, props)=>{
213
+ const anyProps = props;
214
+ if (anyProps.readOnly || anyProps.disabled) {
215
+ return {
216
+ label: {
217
+ '--input-asterisk-color': theme.colors.red[2]
218
+ },
219
+ error: {},
220
+ description: {}
221
+ };
222
+ }
223
+ return {
224
+ label: {},
225
+ error: {},
226
+ description: {}
227
+ };
228
+ }
186
229
  }),
187
230
  Loader: Loader.extend({
188
231
  defaultProps: {
@@ -256,7 +299,25 @@ export const plasmaTheme = createTheme({
256
299
  }
257
300
  }),
258
301
  Radio: Radio.extend({
259
- classNames: RadioClasses
302
+ classNames: (theme, props)=>{
303
+ if (props.readOnly && !props.disabled) {
304
+ return deepMerge(RadioClasses, ReadOnlyStateClasses);
305
+ }
306
+ return RadioClasses;
307
+ },
308
+ vars: (theme, props)=>{
309
+ if (props.readOnly && !props.disabled) {
310
+ return {
311
+ root: {
312
+ '--radio-icon-color': theme.colors.gray[7],
313
+ '--radio-color': theme.colors.gray[2]
314
+ }
315
+ };
316
+ }
317
+ return {
318
+ root: {}
319
+ };
320
+ }
260
321
  }),
261
322
  ScrollArea: ScrollArea.extend({
262
323
  classNames: {
@@ -295,6 +356,33 @@ export const plasmaTheme = createTheme({
295
356
  verticalSeparator: StepperClasses.verticalSeparator
296
357
  }
297
358
  }),
359
+ Switch: Switch.extend({
360
+ classNames: (theme, props)=>{
361
+ if (props.readOnly && !props.disabled) {
362
+ return ReadOnlyStateClasses;
363
+ }
364
+ return {};
365
+ },
366
+ vars: (theme, props)=>{
367
+ if (props.readOnly && !props.disabled) {
368
+ return {
369
+ root: {},
370
+ track: {
371
+ '--switch-bg': theme.colors.gray[2],
372
+ '--switch-bd': 'transparent'
373
+ },
374
+ thumb: {
375
+ '--switch-thumb-bd': 'transparent'
376
+ }
377
+ };
378
+ }
379
+ return {
380
+ root: {},
381
+ track: {},
382
+ thumb: {}
383
+ };
384
+ }
385
+ }),
298
386
  Tabs: Tabs.extend({
299
387
  classNames: TabsClasses
300
388
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {\n ArrowHeadLeftSize16Px,\n ArrowHeadRightSize16Px,\n CheckSize16Px,\n CrossSize16Px,\n FilterSize16Px,\n InfoSize16Px,\n InfoSize24Px,\n} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n ActionIcon,\n Alert,\n Anchor,\n AppShellNavbar,\n Badge,\n Button,\n Checkbox,\n CloseButton,\n ColorSwatch,\n Combobox,\n ComboboxSearch,\n createTheme,\n Divider,\n Input,\n InputWrapper,\n List,\n Loader,\n MantineThemeOverride,\n MenuItem,\n Modal,\n MultiSelect,\n NavLink,\n Notification,\n Pagination,\n Popover,\n Radio,\n ScrollArea,\n SegmentedControl,\n Select,\n Skeleton,\n Stepper,\n Tabs,\n Text,\n TextInput,\n Tooltip,\n} from '@mantine/core';\nimport {DatePicker} from '@mantine/dates';\nimport ActionIconClasses from '../styles/ActionIcon.module.css';\nimport AlertClasses from '../styles/Alert.module.css';\nimport AnchorClasses from '../styles/Anchor.module.css';\nimport AppShellNavBarClasses from '../styles/AppShellNavBar.module.css';\nimport BadgeClasses from '../styles/Badge.module.css';\nimport ButtonClasses from '../styles/Button.module.css';\nimport CheckboxClasses from '../styles/Checkbox.module.css';\nimport ComboboxClasses from '../styles/Combobox.module.css';\nimport DatePickerClasses from '../styles/DatePicker.module.css';\nimport InputClasses from '../styles/Input.module.css';\nimport InputWrapperClasses from '../styles/InputWrapper.module.css';\nimport ListClasses from '../styles/List.module.css';\nimport ModalClasses from '../styles/Modal.module.css';\nimport NavLinkClasses from '../styles/NavLink.module.css';\nimport NotificationClasses from '../styles/Notification.module.css';\nimport PaginationClasses from '../styles/Pagination.module.css';\nimport RadioClasses from '../styles/Radio.module.css';\nimport ScrollAreaClasses from '../styles/ScrollArea.module.css';\nimport SegmentedControlClasses from '../styles/SegmentedControl.module.css';\nimport SelectClasses from '../styles/Select.module.css';\nimport SkeletonClasses from '../styles/Skeleton.module.css';\nimport StepperClasses from '../styles/Stepper.module.css';\nimport TabsClasses from '../styles/Tabs.module.css';\nimport TextClasses from '../styles/Text.module.css';\nimport {NotificationVars} from '../vars/Notification.vars';\nimport {TextVars} from '../vars/Text.vars';\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = createTheme({\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/packages/%40mantine/core/src/core/MantineProvider/default-theme.ts\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeights: {md: '1.5'},\n spacing: {\n xxs: '4px',\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: '500',\n sizes: {\n h1: {fontSize: '48px', lineHeight: '1.5', fontWeight: '300'},\n h2: {fontSize: '32px', lineHeight: '1.5', fontWeight: '500'},\n h3: {fontSize: '24px', lineHeight: '1.5', fontWeight: '500'},\n h4: {fontSize: '18px', lineHeight: '1.5', fontWeight: '300'},\n h5: {fontSize: '14px', lineHeight: '1.5', fontWeight: '500'},\n h6: {fontSize: '12px', lineHeight: '1.5', fontWeight: '500'},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n ActionIcon: ActionIcon.extend({\n classNames: {root: ActionIconClasses.root},\n }),\n Alert: Alert.extend({\n defaultProps: {\n icon: <InfoSize16Px height={16} />,\n color: 'navy',\n },\n classNames: AlertClasses,\n }),\n Anchor: Anchor.extend({\n defaultProps: {\n color: 'action.6',\n },\n classNames: {root: AnchorClasses.root},\n }),\n AppShellNavbar: AppShellNavbar.extend({\n classNames: {navbar: AppShellNavBarClasses.navbar},\n }),\n Badge: Badge.extend({\n classNames: {root: BadgeClasses.root},\n defaultProps: {\n variant: 'light',\n },\n }),\n Button: Button.extend({\n classNames: ButtonClasses,\n }),\n Checkbox: Checkbox.extend({\n defaultProps: {\n radius: 'sm',\n },\n classNames: {label: CheckboxClasses.label, input: CheckboxClasses.input},\n }),\n CloseButton: CloseButton.extend({\n defaultProps: {\n icon: <CrossSize16Px height={16} aria-label=\"close\" />,\n },\n }),\n ColorSwatch: ColorSwatch.extend({\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n }),\n Combobox: Combobox.extend({\n classNames: {option: SelectClasses.option, search: ComboboxClasses.search},\n }),\n ComboboxSearch: ComboboxSearch.extend({\n defaultProps: {\n placeholder: 'Search',\n rightSection: <FilterSize16Px height={16} color=\"gray.5\" />,\n },\n }),\n DatePicker: DatePicker.extend({\n classNames: {monthCell: DatePickerClasses.monthCell},\n }),\n Divider: Divider.extend({\n defaultProps: {\n color: 'gray.3',\n },\n }),\n Input: Input.extend({\n classNames: InputClasses,\n }),\n InputWrapper: InputWrapper.extend({\n classNames: InputWrapperClasses,\n }),\n Loader: Loader.extend({\n defaultProps: {\n type: 'dots',\n color: 'action',\n role: 'presentation',\n },\n }),\n List: List.extend({\n classNames: {root: ListClasses.root},\n }),\n MenuItem: MenuItem.extend({\n defaultProps: {\n fw: 300,\n },\n }),\n Modal: Modal.extend({\n classNames: ModalClasses,\n }),\n ModalOverlay: Modal.Overlay.extend({\n defaultProps: {\n color: color.primary.navy[9],\n backgroundOpacity: 0.9,\n },\n }),\n ModalRoot: Modal.Root.extend({\n defaultProps: {\n padding: 'lg',\n },\n }),\n MultiSelect: MultiSelect.extend({defaultProps: {hidePickedOptions: true}}),\n NavLink: NavLink.extend({classNames: NavLinkClasses}),\n Notification: Notification.extend({\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n classNames: {\n root: NotificationClasses.root,\n icon: NotificationClasses.icon,\n closeButton: NotificationClasses.closeButton,\n },\n vars: NotificationVars,\n }),\n Pagination: Pagination.extend({\n classNames: PaginationClasses,\n vars: () => ({root: {'--pagination-control-fz': 'var(--mantine-font-size-sm)'}}),\n defaultProps: {\n nextIcon: ArrowHeadRightSize16Px,\n previousIcon: ArrowHeadLeftSize16Px,\n },\n }),\n Popover: Popover.extend({\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n }),\n Radio: Radio.extend({classNames: RadioClasses}),\n ScrollArea: ScrollArea.extend({\n classNames: {viewport: ScrollAreaClasses.viewport},\n }),\n SegmentedControl: SegmentedControl.extend({\n classNames: SegmentedControlClasses,\n }),\n Select: Select.extend({\n defaultProps: {withCheckIcon: false, allowDeselect: false},\n classNames: {input: SelectClasses.input, option: SelectClasses.option},\n }),\n Skeleton: Skeleton.extend({\n classNames: {root: SkeletonClasses.root},\n }),\n Stepper: Stepper.extend({\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n classNames: {\n step: StepperClasses.step,\n stepIcon: StepperClasses.stepIcon,\n stepCompletedIcon: StepperClasses.stepCompletedIcon,\n stepDescription: StepperClasses.stepDescription,\n separator: StepperClasses.separator,\n verticalSeparator: StepperClasses.verticalSeparator,\n },\n }),\n Tabs: Tabs.extend({\n classNames: TabsClasses,\n }),\n TabsTab: Tabs.Tab.extend({\n defaultProps: {\n px: 'sm',\n },\n }),\n Text: Text.extend({\n classNames: TextClasses,\n vars: TextVars,\n }),\n TextInput: TextInput.extend({\n defaultProps: {\n radius: 8,\n },\n }),\n Tooltip: Tooltip.extend({\n defaultProps: {\n color: 'navy',\n maw: 300,\n multiline: true,\n withArrow: true,\n zIndex: 10000,\n },\n }),\n },\n});\n"],"names":["ArrowHeadLeftSize16Px","ArrowHeadRightSize16Px","CheckSize16Px","CrossSize16Px","FilterSize16Px","InfoSize16Px","InfoSize24Px","color","ActionIcon","Alert","Anchor","AppShellNavbar","Badge","Button","Checkbox","CloseButton","ColorSwatch","Combobox","ComboboxSearch","createTheme","Divider","Input","InputWrapper","List","Loader","MenuItem","Modal","MultiSelect","NavLink","Notification","Pagination","Popover","Radio","ScrollArea","SegmentedControl","Select","Skeleton","Stepper","Tabs","Text","TextInput","Tooltip","DatePicker","ActionIconClasses","AlertClasses","AnchorClasses","AppShellNavBarClasses","BadgeClasses","ButtonClasses","CheckboxClasses","ComboboxClasses","DatePickerClasses","InputClasses","InputWrapperClasses","ListClasses","ModalClasses","NavLinkClasses","NotificationClasses","PaginationClasses","RadioClasses","ScrollAreaClasses","SegmentedControlClasses","SelectClasses","SkeletonClasses","StepperClasses","TabsClasses","TextClasses","NotificationVars","TextVars","PlasmaColors","plasmaTheme","fontFamily","black","primary","gray","defaultRadius","lineHeights","md","spacing","xxs","xs","sm","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","lineHeight","h2","h3","h4","h5","h6","shadows","colors","components","extend","classNames","root","defaultProps","icon","height","navbar","variant","radius","label","input","aria-label","size","withShadow","option","search","placeholder","rightSection","monthCell","type","role","fw","ModalOverlay","Overlay","navy","backgroundOpacity","ModalRoot","Root","padding","hidePickedOptions","closeButton","vars","nextIcon","previousIcon","shadow","withArrow","viewport","withCheckIcon","allowDeselect","completedIcon","step","stepIcon","stepCompletedIcon","stepDescription","separator","verticalSeparator","TabsTab","Tab","px","maw","multiline","zIndex"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/theme/Theme.tsx"],"sourcesContent":["import {\n ArrowHeadLeftSize16Px,\n ArrowHeadRightSize16Px,\n CheckSize16Px,\n CrossSize16Px,\n FilterSize16Px,\n InfoSize16Px,\n InfoSize24Px,\n} from '@coveord/plasma-react-icons';\nimport {color} from '@coveord/plasma-tokens';\nimport {\n ActionIcon,\n Alert,\n Anchor,\n AppShellNavbar,\n Badge,\n Button,\n Checkbox,\n CloseButton,\n ColorSwatch,\n Combobox,\n ComboboxSearch,\n createTheme,\n deepMerge,\n Divider,\n Input,\n InputWrapper,\n List,\n Loader,\n MantineThemeOverride,\n MenuItem,\n Modal,\n MultiSelect,\n NavLink,\n Notification,\n Pagination,\n Popover,\n Radio,\n ScrollArea,\n SegmentedControl,\n Select,\n Skeleton,\n Stepper,\n Switch,\n Tabs,\n Text,\n TextInput,\n Tooltip,\n} from '@mantine/core';\nimport {DatePicker} from '@mantine/dates';\nimport ActionIconClasses from '../styles/ActionIcon.module.css';\nimport AlertClasses from '../styles/Alert.module.css';\nimport AnchorClasses from '../styles/Anchor.module.css';\nimport AppShellNavBarClasses from '../styles/AppShellNavBar.module.css';\nimport BadgeClasses from '../styles/Badge.module.css';\nimport ButtonClasses from '../styles/Button.module.css';\nimport CheckboxClasses from '../styles/Checkbox.module.css';\nimport ComboboxClasses from '../styles/Combobox.module.css';\nimport DatePickerClasses from '../styles/DatePicker.module.css';\nimport InputClasses from '../styles/Input.module.css';\nimport InputWrapperClasses from '../styles/InputWrapper.module.css';\nimport ListClasses from '../styles/List.module.css';\nimport ModalClasses from '../styles/Modal.module.css';\nimport NavLinkClasses from '../styles/NavLink.module.css';\nimport NotificationClasses from '../styles/Notification.module.css';\nimport PaginationClasses from '../styles/Pagination.module.css';\nimport RadioClasses from '../styles/Radio.module.css';\nimport ReadOnlyInputClasses from '../styles/ReadOnlyInput.module.css';\nimport ReadOnlyStateClasses from '../styles/ReadOnlyState.module.css';\nimport ScrollAreaClasses from '../styles/ScrollArea.module.css';\nimport SegmentedControlClasses from '../styles/SegmentedControl.module.css';\nimport SelectClasses from '../styles/Select.module.css';\nimport SkeletonClasses from '../styles/Skeleton.module.css';\nimport StepperClasses from '../styles/Stepper.module.css';\nimport TabsClasses from '../styles/Tabs.module.css';\nimport TextClasses from '../styles/Text.module.css';\nimport {NotificationVars} from '../vars/Notification.vars';\nimport {TextVars} from '../vars/Text.vars';\nimport {PlasmaColors} from './PlasmaColors';\n\nexport const plasmaTheme: MantineThemeOverride = createTheme({\n // These are overrides over https://github.com/mantinedev/mantine/blob/master/packages/%40mantine/core/src/core/MantineProvider/default-theme.ts\n fontFamily: 'canada-type-gibson, sans-serif',\n black: color.primary.gray[9],\n defaultRadius: 8,\n lineHeights: {md: '1.5'},\n spacing: {\n xxs: '4px',\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n xl: '40px',\n },\n primaryColor: 'action',\n headings: {\n fontFamily: 'canada-type-gibson, sans-serif',\n fontWeight: '500',\n sizes: {\n h1: {fontSize: '48px', lineHeight: '1.5', fontWeight: '300'},\n h2: {fontSize: '32px', lineHeight: '1.5', fontWeight: '500'},\n h3: {fontSize: '24px', lineHeight: '1.5', fontWeight: '500'},\n h4: {fontSize: '18px', lineHeight: '1.5', fontWeight: '300'},\n h5: {fontSize: '14px', lineHeight: '1.5', fontWeight: '500'},\n h6: {fontSize: '12px', lineHeight: '1.5', fontWeight: '500'},\n },\n },\n shadows: {\n xs: '0px 1px 0px rgba(4, 8, 31, 0.08)',\n sm: '0px 2px 4px rgba(4, 8, 31, 0.12)',\n md: '0px 4px 8px rgba(4, 8, 31, 0.08)',\n lg: '0px 8px 16px rgba(7, 12, 41, 0.06)',\n xl: '0px 16px 24px rgba(4, 8, 31, 0.06)',\n },\n colors: PlasmaColors,\n components: {\n ActionIcon: ActionIcon.extend({\n classNames: {root: ActionIconClasses.root},\n }),\n Alert: Alert.extend({\n defaultProps: {\n icon: <InfoSize16Px height={16} />,\n color: 'navy',\n },\n classNames: AlertClasses,\n }),\n Anchor: Anchor.extend({\n defaultProps: {\n color: 'action.6',\n },\n classNames: {root: AnchorClasses.root},\n }),\n AppShellNavbar: AppShellNavbar.extend({\n classNames: {navbar: AppShellNavBarClasses.navbar},\n }),\n Badge: Badge.extend({\n classNames: {root: BadgeClasses.root},\n defaultProps: {\n variant: 'light',\n },\n }),\n Button: Button.extend({\n classNames: ButtonClasses,\n }),\n Checkbox: Checkbox.extend({\n defaultProps: {\n radius: 'sm',\n },\n classNames: (theme, props) => {\n if (props.readOnly && !props.disabled) {\n return deepMerge(CheckboxClasses, ReadOnlyStateClasses);\n }\n return CheckboxClasses;\n },\n vars: (theme, props) => {\n if (props.readOnly && !props.disabled) {\n return {\n root: {\n '--checkbox-icon-color': theme.colors.gray[7],\n '--checkbox-color': theme.colors.gray[2],\n },\n };\n }\n return {root: {}};\n },\n }),\n CloseButton: CloseButton.extend({\n defaultProps: {\n icon: <CrossSize16Px height={16} aria-label=\"close\" />,\n },\n }),\n ColorSwatch: ColorSwatch.extend({\n defaultProps: {\n size: 8,\n withShadow: false,\n },\n }),\n Combobox: Combobox.extend({\n classNames: {option: SelectClasses.option, search: ComboboxClasses.search},\n }),\n ComboboxSearch: ComboboxSearch.extend({\n defaultProps: {\n placeholder: 'Search',\n rightSection: <FilterSize16Px height={16} color=\"gray.5\" />,\n },\n }),\n DatePicker: DatePicker.extend({\n classNames: {monthCell: DatePickerClasses.monthCell},\n }),\n Divider: Divider.extend({\n defaultProps: {\n color: 'gray.3',\n },\n }),\n Input: Input.extend({\n classNames: (theme, props) => {\n const anyProps = props as any;\n // eslint-disable-next-line no-underscore-dangle\n if (anyProps.readOnly && !props.disabled && !['Select'].includes(anyProps.__staticSelector)) {\n return deepMerge(InputClasses, ReadOnlyInputClasses);\n }\n return InputClasses;\n },\n }),\n InputWrapper: InputWrapper.extend({\n classNames: InputWrapperClasses,\n vars: (theme, props) => {\n const anyProps = props as any;\n if (anyProps.readOnly || anyProps.disabled) {\n return {\n label: {'--input-asterisk-color': theme.colors.red[2]},\n error: {},\n description: {},\n };\n }\n return {\n label: {},\n error: {},\n description: {},\n };\n },\n }),\n Loader: Loader.extend({\n defaultProps: {\n type: 'dots',\n color: 'action',\n role: 'presentation',\n },\n }),\n List: List.extend({\n classNames: {root: ListClasses.root},\n }),\n MenuItem: MenuItem.extend({\n defaultProps: {\n fw: 300,\n },\n }),\n Modal: Modal.extend({\n classNames: ModalClasses,\n }),\n ModalOverlay: Modal.Overlay.extend({\n defaultProps: {\n color: color.primary.navy[9],\n backgroundOpacity: 0.9,\n },\n }),\n ModalRoot: Modal.Root.extend({\n defaultProps: {\n padding: 'lg',\n },\n }),\n MultiSelect: MultiSelect.extend({defaultProps: {hidePickedOptions: true}}),\n NavLink: NavLink.extend({classNames: NavLinkClasses}),\n Notification: Notification.extend({\n defaultProps: {\n icon: <InfoSize24Px height={24} />,\n color: 'info',\n },\n classNames: {\n root: NotificationClasses.root,\n icon: NotificationClasses.icon,\n closeButton: NotificationClasses.closeButton,\n },\n vars: NotificationVars,\n }),\n Pagination: Pagination.extend({\n classNames: PaginationClasses,\n vars: () => ({root: {'--pagination-control-fz': 'var(--mantine-font-size-sm)'}}),\n defaultProps: {\n nextIcon: ArrowHeadRightSize16Px,\n previousIcon: ArrowHeadLeftSize16Px,\n },\n }),\n Popover: Popover.extend({\n defaultProps: {\n shadow: 'md',\n withArrow: true,\n },\n }),\n Radio: Radio.extend({\n classNames: (theme, props) => {\n if (props.readOnly && !props.disabled) {\n return deepMerge(RadioClasses, ReadOnlyStateClasses);\n }\n return RadioClasses;\n },\n vars: (theme, props) => {\n if (props.readOnly && !props.disabled) {\n return {\n root: {\n '--radio-icon-color': theme.colors.gray[7],\n '--radio-color': theme.colors.gray[2],\n },\n };\n }\n return {root: {}};\n },\n }),\n ScrollArea: ScrollArea.extend({\n classNames: {viewport: ScrollAreaClasses.viewport},\n }),\n SegmentedControl: SegmentedControl.extend({\n classNames: SegmentedControlClasses,\n }),\n Select: Select.extend({\n defaultProps: {withCheckIcon: false, allowDeselect: false},\n classNames: {input: SelectClasses.input, option: SelectClasses.option},\n }),\n Skeleton: Skeleton.extend({\n classNames: {root: SkeletonClasses.root},\n }),\n Stepper: Stepper.extend({\n defaultProps: {\n size: 'xs',\n completedIcon: <CheckSize16Px />,\n },\n classNames: {\n step: StepperClasses.step,\n stepIcon: StepperClasses.stepIcon,\n stepCompletedIcon: StepperClasses.stepCompletedIcon,\n stepDescription: StepperClasses.stepDescription,\n separator: StepperClasses.separator,\n verticalSeparator: StepperClasses.verticalSeparator,\n },\n }),\n Switch: Switch.extend({\n classNames: (theme, props) => {\n if (props.readOnly && !props.disabled) {\n return ReadOnlyStateClasses;\n }\n return {};\n },\n vars: (theme, props) => {\n if (props.readOnly && !props.disabled) {\n return {\n root: {},\n track: {\n '--switch-bg': theme.colors.gray[2],\n '--switch-bd': 'transparent',\n },\n thumb: {\n '--switch-thumb-bd': 'transparent',\n },\n };\n }\n return {root: {}, track: {}, thumb: {}};\n },\n }),\n Tabs: Tabs.extend({\n classNames: TabsClasses,\n }),\n TabsTab: Tabs.Tab.extend({\n defaultProps: {\n px: 'sm',\n },\n }),\n Text: Text.extend({\n classNames: TextClasses,\n vars: TextVars,\n }),\n TextInput: TextInput.extend({\n defaultProps: {\n radius: 8,\n },\n }),\n Tooltip: Tooltip.extend({\n defaultProps: {\n color: 'navy',\n maw: 300,\n multiline: true,\n withArrow: true,\n zIndex: 10000,\n },\n }),\n },\n});\n"],"names":["ArrowHeadLeftSize16Px","ArrowHeadRightSize16Px","CheckSize16Px","CrossSize16Px","FilterSize16Px","InfoSize16Px","InfoSize24Px","color","ActionIcon","Alert","Anchor","AppShellNavbar","Badge","Button","Checkbox","CloseButton","ColorSwatch","Combobox","ComboboxSearch","createTheme","deepMerge","Divider","Input","InputWrapper","List","Loader","MenuItem","Modal","MultiSelect","NavLink","Notification","Pagination","Popover","Radio","ScrollArea","SegmentedControl","Select","Skeleton","Stepper","Switch","Tabs","Text","TextInput","Tooltip","DatePicker","ActionIconClasses","AlertClasses","AnchorClasses","AppShellNavBarClasses","BadgeClasses","ButtonClasses","CheckboxClasses","ComboboxClasses","DatePickerClasses","InputClasses","InputWrapperClasses","ListClasses","ModalClasses","NavLinkClasses","NotificationClasses","PaginationClasses","RadioClasses","ReadOnlyInputClasses","ReadOnlyStateClasses","ScrollAreaClasses","SegmentedControlClasses","SelectClasses","SkeletonClasses","StepperClasses","TabsClasses","TextClasses","NotificationVars","TextVars","PlasmaColors","plasmaTheme","fontFamily","black","primary","gray","defaultRadius","lineHeights","md","spacing","xxs","xs","sm","lg","xl","primaryColor","headings","fontWeight","sizes","h1","fontSize","lineHeight","h2","h3","h4","h5","h6","shadows","colors","components","extend","classNames","root","defaultProps","icon","height","navbar","variant","radius","theme","props","readOnly","disabled","vars","aria-label","size","withShadow","option","search","placeholder","rightSection","monthCell","anyProps","includes","__staticSelector","label","red","error","description","type","role","fw","ModalOverlay","Overlay","navy","backgroundOpacity","ModalRoot","Root","padding","hidePickedOptions","closeButton","nextIcon","previousIcon","shadow","withArrow","viewport","withCheckIcon","allowDeselect","input","completedIcon","step","stepIcon","stepCompletedIcon","stepDescription","separator","verticalSeparator","track","thumb","TabsTab","Tab","px","maw","multiline","zIndex"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveord/plasma-mantine",
3
- "version": "54.4.0",
3
+ "version": "55.0.0",
4
4
  "description": "A Plasma flavoured Mantine theme",
5
5
  "keywords": [
6
6
  "plasma",
@@ -42,8 +42,8 @@
42
42
  "lodash.debounce": "4.0.8",
43
43
  "lodash.defaultsdeep": "4.6.1",
44
44
  "monaco-editor": "0.52.0",
45
- "@coveord/plasma-react-icons": "54.4.0",
46
- "@coveord/plasma-tokens": "54.4.0"
45
+ "@coveord/plasma-react-icons": "55.0.0",
46
+ "@coveord/plasma-tokens": "55.0.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@mantine/carousel": "7.13.2",
@@ -55,7 +55,7 @@
55
55
  "@mantine/modals": "7.13.2",
56
56
  "@mantine/notifications": "7.13.2",
57
57
  "@swc/cli": "0.4.0",
58
- "@swc/core": "1.7.28",
58
+ "@swc/core": "1.7.36",
59
59
  "@testing-library/dom": "10.4.0",
60
60
  "@testing-library/jest-dom": "6.5.0",
61
61
  "@testing-library/react": "16.0.1",
@@ -63,7 +63,7 @@
63
63
  "@types/lodash.debounce": "4.0.9",
64
64
  "@types/lodash.defaultsdeep": "4.6.9",
65
65
  "@types/react": "18.3.11",
66
- "@types/react-dom": "18.3.0",
66
+ "@types/react-dom": "18.3.1",
67
67
  "embla-carousel-react": "7.1.0",
68
68
  "identity-obj-proxy": "3.0.0",
69
69
  "jsdom": "25.0.1",
@@ -74,10 +74,10 @@
74
74
  "react": "18.3.1",
75
75
  "react-dom": "18.3.1",
76
76
  "rimraf": "6.0.1",
77
- "sass": "1.79.4",
78
- "tslib": "2.7.0",
79
- "typescript": "5.6.2",
80
- "vitest": "2.1.2"
77
+ "sass": "1.79.5",
78
+ "tslib": "2.8.0",
79
+ "typescript": "5.6.3",
80
+ "vitest": "2.1.3"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "@mantine/carousel": "^7.6.1",
@@ -23,3 +23,13 @@
23
23
  outline-color: var(--mantine-color-red-6);
24
24
  outline-style: solid;
25
25
  }
26
+
27
+ .disabled {
28
+ @mixin light {
29
+ background-color: var(--mantine-color-gray-2);
30
+ }
31
+
32
+ @mixin dark {
33
+ background-color: var(--mantine-color-navy-7);
34
+ }
35
+ }
@@ -124,6 +124,25 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
124
124
  }
125
125
  };
126
126
 
127
+ const registerThemes = (monaco: Monaco) => {
128
+ monaco.editor.defineTheme('light-disabled', {
129
+ base: 'vs',
130
+ inherit: true,
131
+ rules: [],
132
+ colors: {
133
+ 'editor.background': theme.colors.gray[2],
134
+ },
135
+ });
136
+ monaco.editor.defineTheme('vs-dark-disabled', {
137
+ base: 'vs-dark',
138
+ inherit: true,
139
+ rules: [],
140
+ colors: {
141
+ 'editor.background': theme.colors.navy[7],
142
+ },
143
+ });
144
+ };
145
+
127
146
  const handleSearch = () => {
128
147
  if (editorRef.current) {
129
148
  editorRef.current.focus();
@@ -183,6 +202,10 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
183
202
  <CopyToClipboard value={_value} onCopy={() => onCopy?.()} />
184
203
  </Group>
185
204
  );
205
+ let editorTheme = colorScheme === 'light' ? 'light' : 'vs-dark';
206
+ if (disabled) {
207
+ editorTheme += '-disabled';
208
+ }
186
209
 
187
210
  const _editor = loaded ? (
188
211
  <Box
@@ -192,13 +215,14 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
192
215
  CodeEditorClasses.editor,
193
216
  {[CodeEditorClasses.valid]: !renderErrorOutline},
194
217
  {[CodeEditorClasses.error]: renderErrorOutline},
218
+ {[CodeEditorClasses.disabled]: disabled},
195
219
  )}
196
220
  data-testid="editor-wrapper"
197
221
  >
198
222
  <Editor
199
223
  onValidate={handleValidate}
200
224
  defaultLanguage={language}
201
- theme={colorScheme === 'light' ? 'light' : 'vs-dark'}
225
+ theme={editorTheme}
202
226
  options={{
203
227
  minimap: {enabled: false},
204
228
  wordWrap: 'on',
@@ -213,6 +237,7 @@ export const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {
213
237
  onMount={(editor, monaco) => {
214
238
  editorRef.current = editor;
215
239
  registerLanguages(monaco);
240
+ registerThemes(monaco);
216
241
  editor.onDidFocusEditorText(() => onFocus?.());
217
242
  editor.onDidBlurEditorText(async () => {
218
243
  await editor.getAction('editor.action.formatDocument').run();
@@ -95,6 +95,12 @@ export interface CollectionProps<T> extends __InputWrapperProps, BoxProps, Style
95
95
  * @default false
96
96
  */
97
97
  disabled?: boolean;
98
+ /**
99
+ * Whether the collection is readOnly. If true, the collection will not allow adding or removing items
100
+ *
101
+ * @default false
102
+ */
103
+ readOnly?: boolean;
98
104
  /**
99
105
  * Function that determines if the add item button should be enabled given the current items of the collection.
100
106
  * The button is always enabled if this props remains undefined
@@ -141,6 +147,7 @@ const defaultProps: Partial<CollectionProps<unknown>> = {
141
147
  addLabel: 'Add item',
142
148
  addDisabledTooltip: 'There is already an empty item',
143
149
  disabled: false,
150
+ readOnly: false,
144
151
  gap: 'xs',
145
152
  required: false,
146
153
  getItemId: ({id}: any) => id,
@@ -154,6 +161,7 @@ export const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<H
154
161
  onReorderItem,
155
162
  onInsertItem,
156
163
  disabled,
164
+ readOnly,
157
165
  draggable,
158
166
  children,
159
167
  gap,
@@ -198,6 +206,7 @@ export const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<H
198
206
  }),
199
207
  );
200
208
 
209
+ const canEdit = !disabled && !readOnly;
201
210
  const hasOnlyOneItem = value.length === 1;
202
211
 
203
212
  /**
@@ -232,7 +241,7 @@ export const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<H
232
241
  <CollectionItem
233
242
  key={item.id}
234
243
  id={item.id}
235
- disabled={disabled}
244
+ disabled={!canEdit}
236
245
  draggable={draggable}
237
246
  onRemove={() => onRemoveItem?.(index)}
238
247
  removable={!(required && hasOnlyOneItem)}
@@ -243,7 +252,7 @@ export const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<H
243
252
 
244
253
  const addAllowed = allowAdd?.(value) ?? true;
245
254
 
246
- const _addButton = disabled ? null : (
255
+ const _addButton = canEdit ? (
247
256
  <Group>
248
257
  <Tooltip label={addDisabledTooltip} disabled={addAllowed}>
249
258
  <Box>
@@ -258,7 +267,7 @@ export const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<H
258
267
  </Box>
259
268
  </Tooltip>
260
269
  </Group>
261
- );
270
+ ) : null;
262
271
 
263
272
  const getIndex = (id: string) => standardizedItems.findIndex((item) => item.id === id);
264
273
 
@@ -1,5 +1,6 @@
1
1
  import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';
2
- import {ActionIcon, CopyButton, TextInput, Tooltip} from '@mantine/core';
2
+ import {ActionIcon, CopyButton, MantineColor, TextInput, Tooltip} from '@mantine/core';
3
+ import {FunctionComponent} from 'react';
3
4
 
4
5
  export interface CopyToClipboardProps {
5
6
  /**
@@ -16,15 +17,21 @@ export interface CopyToClipboardProps {
16
17
  * Called each time the value is copied to the clipboard
17
18
  */
18
19
  onCopy?: () => void;
20
+ /**
21
+ * The color of the icon when idle
22
+ *
23
+ * @default 'gray'
24
+ */
25
+ color?: MantineColor | (string & {});
19
26
  }
20
27
 
21
- const CopyToClipboardButton: React.FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({value, onCopy}) => (
28
+ const CopyToClipboardButton: FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({value, onCopy, color}) => (
22
29
  <CopyButton value={value} timeout={2000}>
23
30
  {({copied, copy}) => (
24
31
  <Tooltip label={copied ? 'Copied' : 'Copy'}>
25
32
  <ActionIcon
26
33
  variant="subtle"
27
- color={copied ? 'success' : 'gray'}
34
+ color={copied ? 'success' : color}
28
35
  onClick={() => {
29
36
  copy();
30
37
  onCopy?.();
@@ -37,14 +44,13 @@ const CopyToClipboardButton: React.FunctionComponent<Omit<CopyToClipboardProps,
37
44
  </CopyButton>
38
45
  );
39
46
 
40
- export const CopyToClipboard: React.FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) =>
47
+ export const CopyToClipboard: FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) =>
41
48
  withLabel ? (
42
49
  <TextInput
43
- classNames={{input: 'var(--mantine-color-gray-7)'}}
44
50
  value={others.value}
45
51
  readOnly
46
52
  autoComplete="off"
47
- rightSection={<CopyToClipboardButton {...others} />}
53
+ rightSection={<CopyToClipboardButton color="action" {...others} />}
48
54
  />
49
55
  ) : (
50
56
  <CopyToClipboardButton {...others} />
@@ -1,14 +1,15 @@
1
+ export * from './action-icon';
1
2
  export * from './blank-slate';
2
3
  export * from './browser-preview';
4
+ export * from './button';
3
5
  export * from './code-editor';
4
6
  export * from './collection';
7
+ export * from './copyToClipboard';
5
8
  export * from './date-range-picker';
6
- export * from './sticky-footer';
7
9
  export * from './header';
8
10
  export * from './inline-confirm';
9
- export * from './table';
10
- export * from './prompt';
11
- export * from './button';
12
- export * from './action-icon';
13
11
  export * from './menu';
14
- export * from './copyToClipboard';
12
+ export * from './prompt';
13
+ export * from './read-only';
14
+ export * from './sticky-footer';
15
+ export * from './table';
@@ -0,0 +1,11 @@
1
+ import {factory, PasswordInput as MantinePasswordInput, type PasswordInputFactory} from '@mantine/core';
2
+ import {readOnlyInputStyles} from './ReadOnlyInputStyles';
3
+
4
+ const ReadOnlyPasswordInput = MantinePasswordInput.withProps({styles: readOnlyInputStyles});
5
+
6
+ export const PasswordInput = factory<PasswordInputFactory>((props, ref) => {
7
+ if (props.readOnly && !props.disabled) {
8
+ return <ReadOnlyPasswordInput ref={ref} {...props} />;
9
+ }
10
+ return <MantinePasswordInput ref={ref} {...props} />;
11
+ });
@@ -0,0 +1,13 @@
1
+ import {type MantineTheme} from '@mantine/core';
2
+
3
+ export const readOnlyInputStyles = (theme: MantineTheme) => ({
4
+ wrapper: {
5
+ '--input-bd': 'transparent',
6
+ '--input-bg': theme.colors.gray[2],
7
+ '--input-color': theme.colors.gray[7],
8
+ '--input-placeholder-color': theme.colors.gray[7],
9
+ },
10
+ input: {
11
+ cursor: 'text',
12
+ },
13
+ });
@@ -0,0 +1,11 @@
1
+ import {factory, Select as MantineSelect, SelectFactory} from '@mantine/core';
2
+ import {readOnlyInputStyles} from './ReadOnlyInputStyles';
3
+
4
+ const ReadOnlySelect = MantineSelect.withProps({styles: readOnlyInputStyles});
5
+
6
+ export const Select = factory<SelectFactory>((props, ref) => {
7
+ if (props.readOnly && !props.disabled) {
8
+ return <ReadOnlySelect ref={ref} {...props} />;
9
+ }
10
+ return <MantineSelect ref={ref} {...props} />;
11
+ });
@@ -0,0 +1,2 @@
1
+ export * from './PasswordInput';
2
+ export * from './Select';
@@ -20,6 +20,7 @@ describe('Table.Predicate', () => {
20
20
  <Table.Header>
21
21
  <Table.Predicate
22
22
  id="rank"
23
+ label="Rank"
23
24
  data={[
24
25
  {value: 'first', label: 'First'},
25
26
  {value: 'second', label: 'Second'},
@@ -35,7 +36,7 @@ describe('Table.Predicate', () => {
35
36
  };
36
37
  render(<Fixture />);
37
38
  expect(screen.getByRole('button', {name: '2', current: 'page'})).toBeVisible();
38
- await user.click(screen.getByRole('textbox', {name: 'rank'}));
39
+ await user.click(screen.getByRole('textbox', {name: 'Rank'}));
39
40
  await user.click(screen.getByRole('option', {name: 'First'}));
40
41
  expect(screen.getByRole('button', {name: '1', current: 'page'})).toBeVisible();
41
42
  });
@@ -1,6 +1,6 @@
1
1
  export {flexRender as renderTableCell} from '@tanstack/react-table';
2
2
  export * from './Table';
3
- export {TablePredicateProps} from './table-predicate/TablePredicate';
3
+ export {type TablePredicateProps} from './table-predicate/TablePredicate';
4
4
  export {type TableAction, type TableLayout, type TableLayoutProps, type TableProps} from './Table.types';
5
5
  export {useTableContext} from './TableContext';
6
6
  export {useTable, type TableState, type TableStore, type UseTableOptions} from './use-table';
@@ -31,11 +31,10 @@ export interface TablePredicateProps
31
31
  */
32
32
  data: ComboboxData;
33
33
  /**
34
- * Input label (not displayed for now)
34
+ * The label to display next to the Select
35
35
  *
36
- * @default default to the predicate id
37
36
  */
38
- label?: string;
37
+ label: string;
39
38
  }
40
39
 
41
40
  export type TablePredicateFactory = Factory<{
package/src/index.ts CHANGED
@@ -21,6 +21,8 @@ export {
21
21
  CopyToClipboard,
22
22
  Header,
23
23
  Menu,
24
+ PasswordInput,
25
+ Select,
24
26
  Table,
25
27
  type ActionIconProps,
26
28
  type ButtonProps,
@@ -1,3 +1,3 @@
1
1
  .input {
2
- color: var(--mantine-color-gray-7);
2
+ --input-color: var(--mantine-color-gray-7);
3
3
  }
@@ -0,0 +1,8 @@
1
+ .input {
2
+ cursor: text;
3
+
4
+ --input-bd: transparent;
5
+ --input-bg: var(--mantine-color-gray-2);
6
+ --input-color: var(--mantine-color-gray-7);
7
+ --input-placeholder-color: var(--mantine-color-gray-7);
8
+ }
@@ -0,0 +1,3 @@
1
+ .root {
2
+ pointer-events: none;
3
+ }