@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/read-only/Select.tsx"],"sourcesContent":["import {factory, Select as MantineSelect, SelectFactory} from '@mantine/core';\nimport {readOnlyInputStyles} from './ReadOnlyInputStyles';\n\nconst ReadOnlySelect = MantineSelect.withProps({styles: readOnlyInputStyles});\n\nexport const Select = factory<SelectFactory>((props, ref) => {\n if (props.readOnly && !props.disabled) {\n return <ReadOnlySelect ref={ref} {...props} />;\n }\n return <MantineSelect ref={ref} {...props} />;\n});\n"],"names":["Select","ReadOnlySelect","MantineSelect","withProps","styles","readOnlyInputStyles","factory","props","ref","readOnly","disabled"],"mappings":";;;;+BAKaA;;;eAAAA;;;;;oBALiD;mCAC5B;AAElC,IAAMC,iBAAiBC,YAAa,CAACC,SAAS,CAAC;IAACC,QAAQC,wCAAmB;AAAA;AAEpE,IAAML,SAASM,IAAAA,aAAO,EAAgB,SAACC,OAAOC;IACjD,IAAID,MAAME,QAAQ,IAAI,CAACF,MAAMG,QAAQ,EAAE;QACnC,qBAAO,qBAACT;YAAeO,KAAKA;WAASD;IACzC;IACA,qBAAO,qBAACL,YAAa;QAACM,KAAKA;OAASD;AACxC"}
@@ -0,0 +1,3 @@
1
+ export * from './PasswordInput';
2
+ export * from './Select';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/read-only/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ var _export_star = require("@swc/helpers/_/_export_star");
6
+ _export_star._(require("./PasswordInput"), exports);
7
+ _export_star._(require("./Select"), exports);
8
+
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/read-only/index.ts"],"sourcesContent":["export * from './PasswordInput';\nexport * from './Select';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA"}
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,IAAI,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACpE,cAAc,SAAS,CAAC;AACxB,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,IAAI,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACpE,cAAc,SAAS,CAAC;AACxB,OAAO,EAAC,KAAK,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAC,MAAM,aAAa,CAAC"}
@@ -9,9 +9,6 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- TablePredicateProps: function() {
13
- return _TablePredicate.TablePredicateProps;
14
- },
15
12
  renderTableCell: function() {
16
13
  return _reacttable.flexRender;
17
14
  },
@@ -25,7 +22,6 @@ _export(exports, {
25
22
  var _export_star = require("@swc/helpers/_/_export_star");
26
23
  var _reacttable = require("@tanstack/react-table");
27
24
  _export_star._(require("./Table"), exports);
28
- var _TablePredicate = require("./table-predicate/TablePredicate");
29
25
  var _TableContext = require("./TableContext");
30
26
  var _usetable = require("./use-table");
31
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/index.ts"],"sourcesContent":["export {flexRender as renderTableCell} from '@tanstack/react-table';\nexport * from './Table';\nexport {TablePredicateProps} from './table-predicate/TablePredicate';\nexport {type TableAction, type TableLayout, type TableLayoutProps, type TableProps} from './Table.types';\nexport {useTableContext} from './TableContext';\nexport {useTable, type TableState, type TableStore, type UseTableOptions} from './use-table';\n"],"names":["TablePredicateProps","renderTableCell","flexRender","useTable","useTableContext"],"mappings":";;;;;;;;;;;IAEQA,mBAAmB;eAAnBA,mCAAmB;;IAFLC,eAAe;eAA7BC,sBAAU;;IAKVC,QAAQ;eAARA,kBAAQ;;IADRC,eAAe;eAAfA,6BAAe;;;;0BAJqB;uBAC9B;8BACoB;4BAEJ;wBACiD"}
1
+ {"version":3,"sources":["../../../../src/components/table/index.ts"],"sourcesContent":["export {flexRender as renderTableCell} from '@tanstack/react-table';\nexport * from './Table';\nexport {type TablePredicateProps} from './table-predicate/TablePredicate';\nexport {type TableAction, type TableLayout, type TableLayoutProps, type TableProps} from './Table.types';\nexport {useTableContext} from './TableContext';\nexport {useTable, type TableState, type TableStore, type UseTableOptions} from './use-table';\n"],"names":["renderTableCell","flexRender","useTable","useTableContext"],"mappings":";;;;;;;;;;;IAAsBA,eAAe;eAA7BC,sBAAU;;IAKVC,QAAQ;eAARA,kBAAQ;;IADRC,eAAe;eAAfA,6BAAe;;;;0BAJqB;uBAC9B;4BAGgB;wBACiD"}
@@ -11,11 +11,10 @@ export interface TablePredicateProps extends BoxProps, Pick<SelectProps, 'render
11
11
  */
12
12
  data: ComboboxData;
13
13
  /**
14
- * Input label (not displayed for now)
14
+ * The label to display next to the Select
15
15
  *
16
- * @default default to the predicate id
17
16
  */
18
- label?: string;
17
+ label: string;
19
18
  }
20
19
  export type TablePredicateFactory = Factory<{
21
20
  props: TablePredicateProps;
@@ -1 +1 @@
1
- {"version":3,"file":"TablePredicate.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-predicate/TablePredicate.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,sBAAsB,EAEtB,OAAO,EAIP,WAAW,EAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAEhH,MAAM,WAAW,mBACb,SAAQ,QAAQ,EACZ,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EACjC,sBAAsB,CAAC,qBAAqB,CAAC;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC;IACxC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,yBAAyB,CAAC;IACvC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,mBAAmB,CAsChE,CAAC"}
1
+ {"version":3,"file":"TablePredicate.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-predicate/TablePredicate.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,sBAAsB,EAEtB,OAAO,EAIP,WAAW,EAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAEhH,MAAM,WAAW,mBACb,SAAQ,QAAQ,EACZ,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EACjC,sBAAsB,CAAC,qBAAqB,CAAC;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC;IACxC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,yBAAyB,CAAC;IACvC,QAAQ,EAAE,IAAI,CAAC;CAClB,CAAC,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,mBAAmB,CAsChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/table/table-predicate/TablePredicate.tsx"],"sourcesContent":["import {\n BoxProps,\n ComboboxData,\n CompoundStylesApiProps,\n factory,\n Factory,\n Grid,\n Group,\n Select,\n SelectProps,\n Text,\n useProps,\n} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TablePredicateStylesNames = 'predicate' | 'predicateWrapper' | 'predicateLabel' | 'predicateSelect';\n\nexport interface TablePredicateProps\n extends BoxProps,\n Pick<SelectProps, 'renderOption'>,\n CompoundStylesApiProps<TablePredicateFactory> {\n /**\n * Unique identifier for this predicate. Will be used to access the selected value in the table state\n */\n id: string;\n /**\n * The values to display in the predicate\n */\n data: ComboboxData;\n /**\n * Input label (not displayed for now)\n *\n * @default default to the predicate id\n */\n label?: string;\n}\n\nexport type TablePredicateFactory = Factory<{\n props: TablePredicateProps;\n ref: HTMLDivElement;\n stylesNames: TablePredicateStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TablePredicateProps> = {};\n\nexport const TablePredicate: FunctionComponent<TablePredicateProps> = factory<TablePredicateFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {id, data, label, classNames, className, styles, style, renderOption, vars, ...others} = useProps(\n 'PlasmaTablePredicate',\n defaultProps,\n props,\n );\n\n const handleChange = (newValue: string) => {\n store.setPredicates((prev) => ({...prev, [id]: newValue}));\n store.setPagination((prev) => ({...prev, pageIndex: 0}));\n };\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Predicate}\n ref={ref}\n {...getStyles('predicate', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('predicateWrapper', stylesApiProps)}>\n {label ? <Text {...getStyles('predicateLabel', stylesApiProps)}>{label}:</Text> : null}\n <Select\n comboboxProps={{withinPortal: true}}\n value={store.state.predicates[id]}\n onChange={handleChange}\n data={data}\n aria-label={label ?? id}\n searchable={data.length > 7}\n renderOption={renderOption}\n {...getStyles('predicateSelect', stylesApiProps)}\n />\n </Group>\n </Grid.Col>\n );\n});\n"],"names":["TablePredicate","defaultProps","factory","props","ref","useTableContext","store","getStyles","useProps","id","data","label","classNames","className","styles","style","renderOption","vars","others","handleChange","newValue","setPredicates","prev","setPagination","pageIndex","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Predicate","Group","gap","Text","Select","comboboxProps","withinPortal","value","state","predicates","onChange","aria-label","searchable","length"],"mappings":";;;;+BAiDaA;;;eAAAA;;;;;;;;oBArCN;qBAG4B;4BACL;AA+B9B,IAAMC,eAA6C,CAAC;AAE7C,IAAMD,iBAAyDE,IAAAA,aAAO,EAAwB,SAACC,OAAOC;IACzG,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAA+FC,YAAAA,IAAAA,cAAQ,EACnG,wBACAP,cACAE,QAHGM,KAAwFD,UAAxFC,IAAIC,OAAoFF,UAApFE,MAAMC,QAA8EH,UAA9EG,OAAOC,aAAuEJ,UAAvEI,YAAYC,YAA2DL,UAA3DK,WAAWC,SAAgDN,UAAhDM,QAAQC,QAAwCP,UAAxCO,OAAOC,eAAiCR,UAAjCQ,cAAcC,OAAmBT,UAAnBS,MAASC,sCAAUV;QAAxFC;QAAIC;QAAMC;QAAOC;QAAYC;QAAWC;QAAQC;QAAOC;QAAcC;;IAM5E,IAAME,eAAe,SAACC;QAClBd,MAAMe,aAAa,CAAC,SAACC;mBAAU,4CAAIA,OAAM,uBAACb,IAAKW;;QAC/Cd,MAAMiB,aAAa,CAAC,SAACD;mBAAU,4CAAIA;gBAAME,WAAW;;;IACxD;IAEA,IAAMC,iBAAiB;QAACb,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,qBACI,qBAACY,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,SAAS;QACrC3B,KAAKA;OACDG,UAAU,aAAa;QAACM,WAAAA;QAAWE,OAAAA;OAAUU,kBAC7CP;kBAEJ,cAAA,sBAACc,WAAK;YAACC,KAAI;WAAS1B,UAAU,oBAAoBkB;;gBAC7Cd,sBAAQ,sBAACuB,UAAI,8CAAK3B,UAAU,kBAAkBkB;;wBAAkBd;wBAAM;;sBAAW;8BAClF,qBAACwB,YAAM;oBACHC,eAAe;wBAACC,cAAc;oBAAI;oBAClCC,OAAOhC,MAAMiC,KAAK,CAACC,UAAU,CAAC/B,GAAG;oBACjCgC,UAAUtB;oBACVT,MAAMA;oBACNgC,cAAY/B,kBAAAA,mBAAAA,QAASF;oBACrBkC,YAAYjC,KAAKkC,MAAM,GAAG;oBAC1B5B,cAAcA;mBACVT,UAAU,mBAAmBkB;;;;AAKrD"}
1
+ {"version":3,"sources":["../../../../../src/components/table/table-predicate/TablePredicate.tsx"],"sourcesContent":["import {\n BoxProps,\n ComboboxData,\n CompoundStylesApiProps,\n factory,\n Factory,\n Grid,\n Group,\n Select,\n SelectProps,\n Text,\n useProps,\n} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {TableComponentsOrder} from '../Table';\nimport {useTableContext} from '../TableContext';\n\nexport type TablePredicateStylesNames = 'predicate' | 'predicateWrapper' | 'predicateLabel' | 'predicateSelect';\n\nexport interface TablePredicateProps\n extends BoxProps,\n Pick<SelectProps, 'renderOption'>,\n CompoundStylesApiProps<TablePredicateFactory> {\n /**\n * Unique identifier for this predicate. Will be used to access the selected value in the table state\n */\n id: string;\n /**\n * The values to display in the predicate\n */\n data: ComboboxData;\n /**\n * The label to display next to the Select\n *\n */\n label: string;\n}\n\nexport type TablePredicateFactory = Factory<{\n props: TablePredicateProps;\n ref: HTMLDivElement;\n stylesNames: TablePredicateStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TablePredicateProps> = {};\n\nexport const TablePredicate: FunctionComponent<TablePredicateProps> = factory<TablePredicateFactory>((props, ref) => {\n const {store, getStyles} = useTableContext();\n const {id, data, label, classNames, className, styles, style, renderOption, vars, ...others} = useProps(\n 'PlasmaTablePredicate',\n defaultProps,\n props,\n );\n\n const handleChange = (newValue: string) => {\n store.setPredicates((prev) => ({...prev, [id]: newValue}));\n store.setPagination((prev) => ({...prev, pageIndex: 0}));\n };\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Predicate}\n ref={ref}\n {...getStyles('predicate', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('predicateWrapper', stylesApiProps)}>\n {label ? <Text {...getStyles('predicateLabel', stylesApiProps)}>{label}:</Text> : null}\n <Select\n comboboxProps={{withinPortal: true}}\n value={store.state.predicates[id]}\n onChange={handleChange}\n data={data}\n aria-label={label ?? id}\n searchable={data.length > 7}\n renderOption={renderOption}\n {...getStyles('predicateSelect', stylesApiProps)}\n />\n </Group>\n </Grid.Col>\n );\n});\n"],"names":["TablePredicate","defaultProps","factory","props","ref","useTableContext","store","getStyles","useProps","id","data","label","classNames","className","styles","style","renderOption","vars","others","handleChange","newValue","setPredicates","prev","setPagination","pageIndex","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Predicate","Group","gap","Text","Select","comboboxProps","withinPortal","value","state","predicates","onChange","aria-label","searchable","length"],"mappings":";;;;+BAgDaA;;;eAAAA;;;;;;;;oBApCN;qBAG4B;4BACL;AA8B9B,IAAMC,eAA6C,CAAC;AAE7C,IAAMD,iBAAyDE,IAAAA,aAAO,EAAwB,SAACC,OAAOC;IACzG,IAA2BC,mBAAAA,IAAAA,6BAAe,KAAnCC,QAAoBD,iBAApBC,OAAOC,YAAaF,iBAAbE;IACd,IAA+FC,YAAAA,IAAAA,cAAQ,EACnG,wBACAP,cACAE,QAHGM,KAAwFD,UAAxFC,IAAIC,OAAoFF,UAApFE,MAAMC,QAA8EH,UAA9EG,OAAOC,aAAuEJ,UAAvEI,YAAYC,YAA2DL,UAA3DK,WAAWC,SAAgDN,UAAhDM,QAAQC,QAAwCP,UAAxCO,OAAOC,eAAiCR,UAAjCQ,cAAcC,OAAmBT,UAAnBS,MAASC,sCAAUV;QAAxFC;QAAIC;QAAMC;QAAOC;QAAYC;QAAWC;QAAQC;QAAOC;QAAcC;;IAM5E,IAAME,eAAe,SAACC;QAClBd,MAAMe,aAAa,CAAC,SAACC;mBAAU,4CAAIA,OAAM,uBAACb,IAAKW;;QAC/Cd,MAAMiB,aAAa,CAAC,SAACD;mBAAU,4CAAIA;gBAAME,WAAW;;;IACxD;IAEA,IAAMC,iBAAiB;QAACb,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,qBACI,qBAACY,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,SAAS;QACrC3B,KAAKA;OACDG,UAAU,aAAa;QAACM,WAAAA;QAAWE,OAAAA;OAAUU,kBAC7CP;kBAEJ,cAAA,sBAACc,WAAK;YAACC,KAAI;WAAS1B,UAAU,oBAAoBkB;;gBAC7Cd,sBAAQ,sBAACuB,UAAI,8CAAK3B,UAAU,kBAAkBkB;;wBAAkBd;wBAAM;;sBAAW;8BAClF,qBAACwB,YAAM;oBACHC,eAAe;wBAACC,cAAc;oBAAI;oBAClCC,OAAOhC,MAAMiC,KAAK,CAACC,UAAU,CAAC/B,GAAG;oBACjCgC,UAAUtB;oBACVT,MAAMA;oBACNgC,cAAY/B,kBAAAA,mBAAAA,QAASF;oBACrBkC,YAAYjC,KAAKkC,MAAM,GAAG;oBAC1B5B,cAAcA;mBACVT,UAAU,mBAAmBkB;;;;AAKrD"}
@@ -11,7 +11,7 @@ export { type NotificationsProps } from '@mantine/notifications';
11
11
  export * from '@tanstack/table-core';
12
12
  export * from './components';
13
13
  export { noop };
14
- export { ActionIcon, BrowserPreview, Button, CopyToClipboard, Header, Menu, Table, type ActionIconProps, type ButtonProps, type CopyToClipboardProps, type HeaderProps, type MenuItemProps, type TableProps, type TableState, } from './components';
14
+ export { ActionIcon, BrowserPreview, Button, CopyToClipboard, Header, Menu, PasswordInput, Select, Table, type ActionIconProps, type ButtonProps, type CopyToClipboardProps, type HeaderProps, type MenuItemProps, type TableProps, type TableState, } from './components';
15
15
  export * from './theme';
16
16
  declare module '@mantine/core' {
17
17
  interface MantineThemeColorsOverride {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAC,KAAK,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC/D,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,EACH,UAAU,EACV,cAAc,EACd,MAAM,EACN,eAAe,EACf,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,GAClB,MAAM,cAAc,CAAC;AAEtB,cAAc,SAAS,CAAC;AAExB,OAAO,QAAQ,eAAe,CAAC;IAC3B,UAAiB,0BAA0B;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;KACjF;CACJ;AAED,OAAO,QAAQ,uBAAuB,CAAC;IACnC,UAAU,UAAU,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM;QAC9C;;;;WAIG;QACH,aAAa,EAAE,OAAO,CAAC;KAC1B;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAC,KAAK,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC/D,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,EACH,UAAU,EACV,cAAc,EACd,MAAM,EACN,eAAe,EACf,MAAM,EACN,IAAI,EACJ,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,GAClB,MAAM,cAAc,CAAC;AAEtB,cAAc,SAAS,CAAC;AAExB,OAAO,QAAQ,eAAe,CAAC;IAC3B,UAAiB,0BAA0B;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM,OAAO,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;KACjF;CACJ;AAED,OAAO,QAAQ,uBAAuB,CAAC;IACnC,UAAU,UAAU,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM;QAC9C;;;;WAIG;QACH,aAAa,EAAE,OAAO,CAAC;KAC1B;CACJ"}
package/dist/cjs/index.js CHANGED
@@ -30,6 +30,12 @@ _export(exports, {
30
30
  Pagination: function() {
31
31
  return _core.Pagination;
32
32
  },
33
+ PasswordInput: function() {
34
+ return _components.PasswordInput;
35
+ },
36
+ Select: function() {
37
+ return _components.Select;
38
+ },
33
39
  Table: function() {
34
40
  return _components.Table;
35
41
  },
@@ -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';\n\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport {Pagination} from '@mantine/core';\nexport * from '@mantine/form';\nexport * from '@mantine/hooks';\nexport * from '@mantine/notifications';\nexport {type NotificationsProps} from '@mantine/notifications';\nexport * from '@tanstack/table-core';\nexport * from './components';\nexport {noop};\n\n// explicitly overriding mantine components\nexport {\n ActionIcon,\n BrowserPreview,\n Button,\n CopyToClipboard,\n Header,\n Menu,\n Table,\n type ActionIconProps,\n type ButtonProps,\n type CopyToClipboardProps,\n type HeaderProps,\n type MenuItemProps,\n type TableProps,\n type TableState,\n} from './components';\n\nexport * from './theme';\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":["ActionIcon","BrowserPreview","Button","CopyToClipboard","Header","Menu","Pagination","Table","noop"],"mappings":";;;;;;;;;;;IAiBIA,UAAU;eAAVA,sBAAU;;IACVC,cAAc;eAAdA,0BAAc;;IACdC,MAAM;eAANA,kBAAM;;IACNC,eAAe;eAAfA,2BAAe;;IACfC,MAAM;eAANA,kBAAM;;IACNC,IAAI;eAAJA,gBAAI;;IAhBAC,UAAU;eAAVA,gBAAU;;IAiBdC,KAAK;eAALA,iBAAK;;IAVDC,IAAI;eAAJA,UAAI;;;;mCAb2B;uBAIzB;uBAGA;uBACA;uBACA;uBAEA;yCACA;uBAqBA"}
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';\n\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport {Pagination} from '@mantine/core';\nexport * from '@mantine/form';\nexport * from '@mantine/hooks';\nexport * from '@mantine/notifications';\nexport {type NotificationsProps} from '@mantine/notifications';\nexport * from '@tanstack/table-core';\nexport * from './components';\nexport {noop};\n\n// explicitly overriding mantine components\nexport {\n ActionIcon,\n BrowserPreview,\n Button,\n CopyToClipboard,\n Header,\n Menu,\n PasswordInput,\n Select,\n Table,\n type ActionIconProps,\n type ButtonProps,\n type CopyToClipboardProps,\n type HeaderProps,\n type MenuItemProps,\n type TableProps,\n type TableState,\n} from './components';\n\nexport * from './theme';\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":["ActionIcon","BrowserPreview","Button","CopyToClipboard","Header","Menu","Pagination","PasswordInput","Select","Table","noop"],"mappings":";;;;;;;;;;;IAiBIA,UAAU;eAAVA,sBAAU;;IACVC,cAAc;eAAdA,0BAAc;;IACdC,MAAM;eAANA,kBAAM;;IACNC,eAAe;eAAfA,2BAAe;;IACfC,MAAM;eAANA,kBAAM;;IACNC,IAAI;eAAJA,gBAAI;;IAhBAC,UAAU;eAAVA,gBAAU;;IAiBdC,aAAa;eAAbA,yBAAa;;IACbC,MAAM;eAANA,kBAAM;;IACNC,KAAK;eAALA,iBAAK;;IAZDC,IAAI;eAAJA,UAAI;;;;mCAb2B;uBAIzB;uBAGA;uBACA;uBACA;uBAEA;yCACA;uBAuBA"}
@@ -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
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAUA,OAAO,EAkBH,oBAAoB,EAkBvB,MAAM,eAAe,CAAC;AA8BvB,eAAO,MAAM,WAAW,EAAE,oBAwNxB,CAAC"}
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../../src/theme/Theme.tsx"],"names":[],"mappings":"AAUA,OAAO,EAmBH,oBAAoB,EAmBvB,MAAM,eAAe,CAAC;AAgCvB,eAAO,MAAM,WAAW,EAAE,oBAuSxB,CAAC"}
@@ -31,6 +31,8 @@ var _NavLinkmodulecss = /*#__PURE__*/ _interop_require_default._(require("../sty
31
31
  var _Notificationmodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/Notification.module.css"));
32
32
  var _Paginationmodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/Pagination.module.css"));
33
33
  var _Radiomodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/Radio.module.css"));
34
+ var _ReadOnlyInputmodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/ReadOnlyInput.module.css"));
35
+ var _ReadOnlyStatemodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/ReadOnlyState.module.css"));
34
36
  var _ScrollAreamodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/ScrollArea.module.css"));
35
37
  var _SegmentedControlmodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/SegmentedControl.module.css"));
36
38
  var _Selectmodulecss = /*#__PURE__*/ _interop_require_default._(require("../styles/Select.module.css"));
@@ -145,9 +147,24 @@ var plasmaTheme = (0, _core.createTheme)({
145
147
  defaultProps: {
146
148
  radius: 'sm'
147
149
  },
148
- classNames: {
149
- label: _Checkboxmodulecss.default.label,
150
- input: _Checkboxmodulecss.default.input
150
+ classNames: function(theme, props) {
151
+ if (props.readOnly && !props.disabled) {
152
+ return (0, _core.deepMerge)(_Checkboxmodulecss.default, _ReadOnlyStatemodulecss.default);
153
+ }
154
+ return _Checkboxmodulecss.default;
155
+ },
156
+ vars: function(theme, props) {
157
+ if (props.readOnly && !props.disabled) {
158
+ return {
159
+ root: {
160
+ '--checkbox-icon-color': theme.colors.gray[7],
161
+ '--checkbox-color': theme.colors.gray[2]
162
+ }
163
+ };
164
+ }
165
+ return {
166
+ root: {}
167
+ };
151
168
  }
152
169
  }),
153
170
  CloseButton: _core.CloseButton.extend({
@@ -190,10 +207,36 @@ var plasmaTheme = (0, _core.createTheme)({
190
207
  }
191
208
  }),
192
209
  Input: _core.Input.extend({
193
- classNames: _Inputmodulecss.default
210
+ classNames: function(theme, props) {
211
+ var anyProps = props;
212
+ // eslint-disable-next-line no-underscore-dangle
213
+ if (anyProps.readOnly && !props.disabled && ![
214
+ 'Select'
215
+ ].includes(anyProps.__staticSelector)) {
216
+ return (0, _core.deepMerge)(_Inputmodulecss.default, _ReadOnlyInputmodulecss.default);
217
+ }
218
+ return _Inputmodulecss.default;
219
+ }
194
220
  }),
195
221
  InputWrapper: _core.InputWrapper.extend({
196
- classNames: _InputWrappermodulecss.default
222
+ classNames: _InputWrappermodulecss.default,
223
+ vars: function(theme, props) {
224
+ var anyProps = props;
225
+ if (anyProps.readOnly || anyProps.disabled) {
226
+ return {
227
+ label: {
228
+ '--input-asterisk-color': theme.colors.red[2]
229
+ },
230
+ error: {},
231
+ description: {}
232
+ };
233
+ }
234
+ return {
235
+ label: {},
236
+ error: {},
237
+ description: {}
238
+ };
239
+ }
197
240
  }),
198
241
  Loader: _core.Loader.extend({
199
242
  defaultProps: {
@@ -269,7 +312,25 @@ var plasmaTheme = (0, _core.createTheme)({
269
312
  }
270
313
  }),
271
314
  Radio: _core.Radio.extend({
272
- classNames: _Radiomodulecss.default
315
+ classNames: function(theme, props) {
316
+ if (props.readOnly && !props.disabled) {
317
+ return (0, _core.deepMerge)(_Radiomodulecss.default, _ReadOnlyStatemodulecss.default);
318
+ }
319
+ return _Radiomodulecss.default;
320
+ },
321
+ vars: function(theme, props) {
322
+ if (props.readOnly && !props.disabled) {
323
+ return {
324
+ root: {
325
+ '--radio-icon-color': theme.colors.gray[7],
326
+ '--radio-color': theme.colors.gray[2]
327
+ }
328
+ };
329
+ }
330
+ return {
331
+ root: {}
332
+ };
333
+ }
273
334
  }),
274
335
  ScrollArea: _core.ScrollArea.extend({
275
336
  classNames: {
@@ -308,6 +369,33 @@ var plasmaTheme = (0, _core.createTheme)({
308
369
  verticalSeparator: _Steppermodulecss.default.verticalSeparator
309
370
  }
310
371
  }),
372
+ Switch: _core.Switch.extend({
373
+ classNames: function(theme, props) {
374
+ if (props.readOnly && !props.disabled) {
375
+ return _ReadOnlyStatemodulecss.default;
376
+ }
377
+ return {};
378
+ },
379
+ vars: function(theme, props) {
380
+ if (props.readOnly && !props.disabled) {
381
+ return {
382
+ root: {},
383
+ track: {
384
+ '--switch-bg': theme.colors.gray[2],
385
+ '--switch-bd': 'transparent'
386
+ },
387
+ thumb: {
388
+ '--switch-thumb-bd': 'transparent'
389
+ }
390
+ };
391
+ }
392
+ return {
393
+ root: {},
394
+ track: {},
395
+ thumb: {}
396
+ };
397
+ }
398
+ }),
311
399
  Tabs: _core.Tabs.extend({
312
400
  classNames: _Tabsmodulecss.default
313
401
  }),
@@ -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":["plasmaTheme","createTheme","fontFamily","black","color","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","PlasmaColors","components","ActionIcon","extend","classNames","root","ActionIconClasses","Alert","defaultProps","icon","InfoSize16Px","height","AlertClasses","Anchor","AnchorClasses","AppShellNavbar","navbar","AppShellNavBarClasses","Badge","BadgeClasses","variant","Button","ButtonClasses","Checkbox","radius","label","CheckboxClasses","input","CloseButton","CrossSize16Px","aria-label","ColorSwatch","size","withShadow","Combobox","option","SelectClasses","search","ComboboxClasses","ComboboxSearch","placeholder","rightSection","FilterSize16Px","DatePicker","monthCell","DatePickerClasses","Divider","Input","InputClasses","InputWrapper","InputWrapperClasses","Loader","type","role","List","ListClasses","MenuItem","fw","Modal","ModalClasses","ModalOverlay","Overlay","navy","backgroundOpacity","ModalRoot","Root","padding","MultiSelect","hidePickedOptions","NavLink","NavLinkClasses","Notification","InfoSize24Px","NotificationClasses","closeButton","vars","NotificationVars","Pagination","PaginationClasses","nextIcon","ArrowHeadRightSize16Px","previousIcon","ArrowHeadLeftSize16Px","Popover","shadow","withArrow","Radio","RadioClasses","ScrollArea","viewport","ScrollAreaClasses","SegmentedControl","SegmentedControlClasses","Select","withCheckIcon","allowDeselect","Skeleton","SkeletonClasses","Stepper","completedIcon","CheckSize16Px","step","StepperClasses","stepIcon","stepCompletedIcon","stepDescription","separator","verticalSeparator","Tabs","TabsClasses","TabsTab","Tab","px","Text","TextClasses","TextVars","TextInput","Tooltip","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":["plasmaTheme","createTheme","fontFamily","black","color","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","PlasmaColors","components","ActionIcon","extend","classNames","root","ActionIconClasses","Alert","defaultProps","icon","InfoSize16Px","height","AlertClasses","Anchor","AnchorClasses","AppShellNavbar","navbar","AppShellNavBarClasses","Badge","BadgeClasses","variant","Button","ButtonClasses","Checkbox","radius","theme","props","readOnly","disabled","deepMerge","CheckboxClasses","ReadOnlyStateClasses","vars","CloseButton","CrossSize16Px","aria-label","ColorSwatch","size","withShadow","Combobox","option","SelectClasses","search","ComboboxClasses","ComboboxSearch","placeholder","rightSection","FilterSize16Px","DatePicker","monthCell","DatePickerClasses","Divider","Input","anyProps","includes","__staticSelector","InputClasses","ReadOnlyInputClasses","InputWrapper","InputWrapperClasses","label","red","error","description","Loader","type","role","List","ListClasses","MenuItem","fw","Modal","ModalClasses","ModalOverlay","Overlay","navy","backgroundOpacity","ModalRoot","Root","padding","MultiSelect","hidePickedOptions","NavLink","NavLinkClasses","Notification","InfoSize24Px","NotificationClasses","closeButton","NotificationVars","Pagination","PaginationClasses","nextIcon","ArrowHeadRightSize16Px","previousIcon","ArrowHeadLeftSize16Px","Popover","shadow","withArrow","Radio","RadioClasses","ScrollArea","viewport","ScrollAreaClasses","SegmentedControl","SegmentedControlClasses","Select","withCheckIcon","allowDeselect","input","Skeleton","SkeletonClasses","Stepper","completedIcon","CheckSize16Px","step","StepperClasses","stepIcon","stepCompletedIcon","stepDescription","separator","verticalSeparator","Switch","track","thumb","Tabs","TabsClasses","TabsTab","Tab","px","Text","TextClasses","TextVars","TextInput","Tooltip","maw","multiline","zIndex"],"mappings":"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"}
@@ -21,7 +21,7 @@ export interface ButtonWithDisabledTooltipProps {
21
21
  }
22
22
  export declare const ButtonWithDisabledTooltip: (<C = "div">(props: import("@mantine/utils").PolymorphicComponentProps<C, ButtonWithDisabledTooltipProps>) => React.ReactElement) & Omit<import("react").FunctionComponent<(ButtonWithDisabledTooltipProps & {
23
23
  component?: any;
24
- } & Omit<Pick<any, string | number | symbol>, "component" | keyof ButtonWithDisabledTooltipProps> & {
24
+ } & Omit<Pick<any, string | number | symbol>, keyof ButtonWithDisabledTooltipProps | "component"> & {
25
25
  ref?: any;
26
26
  }) | (ButtonWithDisabledTooltipProps & {
27
27
  component: React.ElementType<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKH,iBAAiB,EAIjB,UAAU,EAKb,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAC,iBAAiB,EAA8B,MAAM,OAAO,CAAC;AAQrE,UAAU,eACN,SAAQ,IAAI,CACJ,iBAAiB,EACjB,gBAAgB,GAAG,mBAAmB,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CACzF,EACD,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IACrF,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB,+CAA+C;IAC/C,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;CAClC;AASD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CAyJzD,CAAC"}
1
+ {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKH,iBAAiB,EAIjB,UAAU,EAKb,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAC,iBAAiB,EAA8B,MAAM,OAAO,CAAC;AAQrE,UAAU,eACN,SAAQ,IAAI,CACJ,iBAAiB,EACjB,gBAAgB,GAAG,mBAAmB,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CACzF,EACD,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IACrF,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB,+CAA+C;IAC/C,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;CAClC;AASD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CAkLzD,CAAC"}
@@ -38,6 +38,24 @@ export const CodeEditor = (props)=>{
38
38
  XML.register(monaco);
39
39
  }
40
40
  };
41
+ const registerThemes = (monaco)=>{
42
+ monaco.editor.defineTheme('light-disabled', {
43
+ base: 'vs',
44
+ inherit: true,
45
+ rules: [],
46
+ colors: {
47
+ 'editor.background': theme.colors.gray[2]
48
+ }
49
+ });
50
+ monaco.editor.defineTheme('vs-dark-disabled', {
51
+ base: 'vs-dark',
52
+ inherit: true,
53
+ rules: [],
54
+ colors: {
55
+ 'editor.background': theme.colors.navy[7]
56
+ }
57
+ });
58
+ };
41
59
  const handleSearch = ()=>{
42
60
  if (editorRef.current) {
43
61
  editorRef.current.focus();
@@ -94,6 +112,10 @@ export const CodeEditor = (props)=>{
94
112
  })
95
113
  ]
96
114
  });
115
+ let editorTheme = colorScheme === 'light' ? 'light' : 'vs-dark';
116
+ if (disabled) {
117
+ editorTheme += '-disabled';
118
+ }
97
119
  const _editor = loaded ? /*#__PURE__*/ _jsx(Box, {
98
120
  p: "md",
99
121
  pl: "xs",
@@ -101,12 +123,14 @@ export const CodeEditor = (props)=>{
101
123
  [CodeEditorClasses.valid]: !renderErrorOutline
102
124
  }, {
103
125
  [CodeEditorClasses.error]: renderErrorOutline
126
+ }, {
127
+ [CodeEditorClasses.disabled]: disabled
104
128
  }),
105
129
  "data-testid": "editor-wrapper",
106
130
  children: /*#__PURE__*/ _jsx(Editor, {
107
131
  onValidate: handleValidate,
108
132
  defaultLanguage: language,
109
- theme: colorScheme === 'light' ? 'light' : 'vs-dark',
133
+ theme: editorTheme,
110
134
  options: {
111
135
  minimap: {
112
136
  enabled: false
@@ -123,6 +147,7 @@ export const CodeEditor = (props)=>{
123
147
  onMount: (editor, monaco)=>{
124
148
  editorRef.current = editor;
125
149
  registerLanguages(monaco);
150
+ registerThemes(monaco);
126
151
  editor.onDidFocusEditorText(()=>onFocus?.());
127
152
  editor.onDidBlurEditorText(async ()=>{
128
153
  await editor.getAction('editor.action.formatDocument').run();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {\n Box,\n Center,\n Group,\n Input,\n InputWrapperProps,\n Loader,\n Space,\n Stack,\n StackProps,\n px,\n useMantineColorScheme,\n useMantineTheme,\n useProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {Monaco, loader} from '@monaco-editor/react';\nimport {editor as monacoEditor} from 'monaco-editor';\nimport {FunctionComponent, useEffect, useRef, useState} from 'react';\n\nimport cx from 'clsx';\nimport {useParentHeight} from '../../hooks';\nimport {CopyToClipboard} from '../copyToClipboard';\nimport CodeEditorClasses from './CodeEditor.module.css';\nimport {XML} from './languages/xml';\nimport {Search} from './search';\ninterface CodeEditorProps\n extends Omit<\n InputWrapperProps,\n 'inputContainer' | 'inputWrapperOrder' | 'classNames' | 'styles' | 'vars' | 'onChange'\n >,\n Omit<StackProps, 'onChange'> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml' | (string & unknown);\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the search icon is clicked */\n onSearch?(): void;\n /** Called whenever the copy icon is clicked */\n onCopy?(): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onCopy,\n onSearch,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n const editorRef = useRef(null);\n const loadLocalMonaco = async () => {\n const monacoInstance = await import('monaco-editor');\n loader.config({monaco: monacoInstance});\n setLoaded(true);\n };\n\n const registerLanguages = (monaco: Monaco) => {\n if (monaco && language === 'xml') {\n XML.register(monaco);\n }\n };\n\n const handleSearch = () => {\n if (editorRef.current) {\n editorRef.current.focus();\n editorRef.current.trigger('editor', 'actions.find', '');\n onSearch?.();\n }\n };\n\n const [hasMonacoError, setHasMonacoError] = useState(false);\n const renderErrorOutline = !!error || hasMonacoError;\n const theme = useMantineTheme();\n const {colorScheme} = useMantineColorScheme();\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const handleValidate = (markers: monacoEditor.IMarker[]) => {\n setHasMonacoError(\n markers.some((marker) => marker.severity === loader.__getMonacoInstance().MarkerSeverity.Error),\n );\n };\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : (\n <Space h=\"xs\" />\n );\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _buttons = (\n <Group justify=\"right\" gap={0}>\n <Search handleSearch={handleSearch} />\n <CopyToClipboard value={_value} onCopy={() => onCopy?.()} />\n </Group>\n );\n\n const _editor = loaded ? (\n <Box\n p=\"md\"\n pl=\"xs\"\n className={cx(\n CodeEditorClasses.editor,\n {[CodeEditorClasses.valid]: !renderErrorOutline},\n {[CodeEditorClasses.error]: renderErrorOutline},\n )}\n data-testid=\"editor-wrapper\"\n >\n <Editor\n onValidate={handleValidate}\n defaultLanguage={language}\n theme={colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: px(theme.fontSizes.xs) as number,\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n registerLanguages(monaco);\n editor.onDidFocusEditorText(() => onFocus?.());\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={CodeEditorClasses.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack justify=\"flex-start\" gap={0} h={Math.max(parentHeight, minHeight)} mah={maxHeight} ref={ref} {...others}>\n {_header}\n {_buttons}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["Box","Center","Group","Input","Loader","Space","Stack","px","useMantineColorScheme","useMantineTheme","useProps","useUncontrolled","Editor","loader","useEffect","useRef","useState","cx","useParentHeight","CopyToClipboard","CodeEditorClasses","XML","Search","defaultProps","language","monacoLoader","defaultValue","minHeight","CodeEditor","props","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","loaded","setLoaded","_value","handleChange","finalValue","parentHeight","ref","editorRef","loadLocalMonaco","monacoInstance","config","monaco","registerLanguages","register","handleSearch","current","focus","trigger","hasMonacoError","setHasMonacoError","renderErrorOutline","theme","colorScheme","handleValidate","markers","some","marker","severity","__getMonacoInstance","MarkerSeverity","Error","_label","Label","_description","Description","_error","mt","h","_header","_buttons","justify","gap","_editor","p","pl","className","editor","valid","data-testid","onValidate","defaultLanguage","options","minimap","enabled","wordWrap","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Math","max","mah"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {\n Box,\n Center,\n Group,\n Input,\n InputWrapperProps,\n Loader,\n Space,\n Stack,\n StackProps,\n px,\n useMantineColorScheme,\n useMantineTheme,\n useProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {Monaco, loader} from '@monaco-editor/react';\nimport {editor as monacoEditor} from 'monaco-editor';\nimport {FunctionComponent, useEffect, useRef, useState} from 'react';\n\nimport cx from 'clsx';\nimport {useParentHeight} from '../../hooks';\nimport {CopyToClipboard} from '../copyToClipboard';\nimport CodeEditorClasses from './CodeEditor.module.css';\nimport {XML} from './languages/xml';\nimport {Search} from './search';\ninterface CodeEditorProps\n extends Omit<\n InputWrapperProps,\n 'inputContainer' | 'inputWrapperOrder' | 'classNames' | 'styles' | 'vars' | 'onChange'\n >,\n Omit<StackProps, 'onChange'> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml' | (string & unknown);\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the search icon is clicked */\n onSearch?(): void;\n /** Called whenever the copy icon is clicked */\n onCopy?(): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onCopy,\n onSearch,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n const editorRef = useRef(null);\n const loadLocalMonaco = async () => {\n const monacoInstance = await import('monaco-editor');\n loader.config({monaco: monacoInstance});\n setLoaded(true);\n };\n\n const registerLanguages = (monaco: Monaco) => {\n if (monaco && language === 'xml') {\n XML.register(monaco);\n }\n };\n\n const registerThemes = (monaco: Monaco) => {\n monaco.editor.defineTheme('light-disabled', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': theme.colors.gray[2],\n },\n });\n monaco.editor.defineTheme('vs-dark-disabled', {\n base: 'vs-dark',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': theme.colors.navy[7],\n },\n });\n };\n\n const handleSearch = () => {\n if (editorRef.current) {\n editorRef.current.focus();\n editorRef.current.trigger('editor', 'actions.find', '');\n onSearch?.();\n }\n };\n\n const [hasMonacoError, setHasMonacoError] = useState(false);\n const renderErrorOutline = !!error || hasMonacoError;\n const theme = useMantineTheme();\n const {colorScheme} = useMantineColorScheme();\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const handleValidate = (markers: monacoEditor.IMarker[]) => {\n setHasMonacoError(\n markers.some((marker) => marker.severity === loader.__getMonacoInstance().MarkerSeverity.Error),\n );\n };\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : (\n <Space h=\"xs\" />\n );\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _buttons = (\n <Group justify=\"right\" gap={0}>\n <Search handleSearch={handleSearch} />\n <CopyToClipboard value={_value} onCopy={() => onCopy?.()} />\n </Group>\n );\n let editorTheme = colorScheme === 'light' ? 'light' : 'vs-dark';\n if (disabled) {\n editorTheme += '-disabled';\n }\n\n const _editor = loaded ? (\n <Box\n p=\"md\"\n pl=\"xs\"\n className={cx(\n CodeEditorClasses.editor,\n {[CodeEditorClasses.valid]: !renderErrorOutline},\n {[CodeEditorClasses.error]: renderErrorOutline},\n {[CodeEditorClasses.disabled]: disabled},\n )}\n data-testid=\"editor-wrapper\"\n >\n <Editor\n onValidate={handleValidate}\n defaultLanguage={language}\n theme={editorTheme}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: px(theme.fontSizes.xs) as number,\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n registerLanguages(monaco);\n registerThemes(monaco);\n editor.onDidFocusEditorText(() => onFocus?.());\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={CodeEditorClasses.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack justify=\"flex-start\" gap={0} h={Math.max(parentHeight, minHeight)} mah={maxHeight} ref={ref} {...others}>\n {_header}\n {_buttons}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["Box","Center","Group","Input","Loader","Space","Stack","px","useMantineColorScheme","useMantineTheme","useProps","useUncontrolled","Editor","loader","useEffect","useRef","useState","cx","useParentHeight","CopyToClipboard","CodeEditorClasses","XML","Search","defaultProps","language","monacoLoader","defaultValue","minHeight","CodeEditor","props","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","loaded","setLoaded","_value","handleChange","finalValue","parentHeight","ref","editorRef","loadLocalMonaco","monacoInstance","config","monaco","registerLanguages","register","registerThemes","editor","defineTheme","base","inherit","rules","colors","theme","gray","navy","handleSearch","current","focus","trigger","hasMonacoError","setHasMonacoError","renderErrorOutline","colorScheme","handleValidate","markers","some","marker","severity","__getMonacoInstance","MarkerSeverity","Error","_label","Label","_description","Description","_error","mt","h","_header","_buttons","justify","gap","editorTheme","_editor","p","pl","className","valid","data-testid","onValidate","defaultLanguage","options","minimap","enabled","wordWrap","scrollBeyondLastLine","formatOnPaste","fontSize","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Math","max","mah"],"mappings":"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"}
@@ -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
+ }
@@ -71,6 +71,12 @@ export interface CollectionProps<T> extends __InputWrapperProps, BoxProps, Style
71
71
  * @default false
72
72
  */
73
73
  disabled?: boolean;
74
+ /**
75
+ * Whether the collection is readOnly. If true, the collection will not allow adding or removing items
76
+ *
77
+ * @default false
78
+ */
79
+ readOnly?: boolean;
74
80
  /**
75
81
  * Function that determines if the add item button should be enabled given the current items of the collection.
76
82
  * The button is always enabled if this props remains undefined