@coveord/plasma-mantine 55.7.2-next.21 → 55.7.2-next.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +53 -51
- package/__mocks__/@monaco-editor/react.tsx +1 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/checkbox/CheckboxIcon.d.ts +7 -0
- package/dist/cjs/components/checkbox/CheckboxIcon.d.ts.map +1 -0
- package/dist/cjs/components/checkbox/CheckboxIcon.js +29 -0
- package/dist/cjs/components/checkbox/CheckboxIcon.js.map +1 -0
- package/dist/cjs/components/checkbox/index.d.ts +2 -0
- package/dist/cjs/components/checkbox/index.d.ts.map +1 -0
- package/dist/cjs/components/checkbox/index.js +8 -0
- package/dist/cjs/components/checkbox/index.js.map +1 -0
- package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +19 -21
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.module.css +10 -6
- package/dist/cjs/components/collection/CollectionItem.d.ts.map +1 -1
- package/dist/cjs/components/collection/CollectionItem.js +9 -4
- package/dist/cjs/components/collection/CollectionItem.js.map +1 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +2 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/loader/CircleLoader.d.ts +3 -0
- package/dist/cjs/components/loader/CircleLoader.d.ts.map +1 -0
- package/dist/cjs/components/loader/CircleLoader.js +32 -0
- package/dist/cjs/components/loader/CircleLoader.js.map +1 -0
- package/dist/cjs/components/loader/CircleLoader.module.css +29 -0
- package/dist/cjs/components/loader/index.d.ts +2 -0
- package/dist/cjs/components/loader/index.d.ts.map +1 -0
- package/dist/cjs/components/loader/index.js +8 -0
- package/dist/cjs/components/loader/index.js.map +1 -0
- package/dist/cjs/components/read-only/ReadOnlyInputStyles.js +2 -2
- package/dist/cjs/components/read-only/ReadOnlyInputStyles.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayout.module.css +1 -1
- package/dist/cjs/styles/Badge.module.css +2 -0
- package/dist/cjs/styles/Checkbox.module.css +41 -5
- package/dist/cjs/styles/CheckboxIndicator.module.css +8 -1
- package/dist/cjs/styles/Input.module.css +8 -2
- package/dist/cjs/styles/Pagination.module.css +10 -1
- package/dist/cjs/styles/Radio.module.css +30 -2
- package/dist/cjs/styles/ReadOnlyInput.module.css +7 -3
- package/dist/cjs/styles/Select.module.css +46 -0
- package/dist/cjs/theme/Theme.d.ts.map +1 -1
- package/dist/cjs/theme/Theme.js +16 -19
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/cjs/theme/plasmaCSSVariablesResolver.d.ts.map +1 -1
- package/dist/cjs/theme/plasmaCSSVariablesResolver.js +6 -1
- package/dist/cjs/theme/plasmaCSSVariablesResolver.js.map +1 -1
- package/dist/esm/components/checkbox/CheckboxIcon.d.ts +7 -0
- package/dist/esm/components/checkbox/CheckboxIcon.d.ts.map +1 -0
- package/dist/esm/components/checkbox/CheckboxIcon.js +16 -0
- package/dist/esm/components/checkbox/CheckboxIcon.js.map +1 -0
- package/dist/esm/components/checkbox/index.d.ts +2 -0
- package/dist/esm/components/checkbox/index.d.ts.map +1 -0
- package/dist/esm/components/checkbox/index.js +3 -0
- package/dist/esm/components/checkbox/index.js.map +1 -0
- package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +18 -19
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.module.css +10 -6
- package/dist/esm/components/collection/CollectionItem.d.ts.map +1 -1
- package/dist/esm/components/collection/CollectionItem.js +5 -2
- package/dist/esm/components/collection/CollectionItem.js.map +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/loader/CircleLoader.d.ts +3 -0
- package/dist/esm/components/loader/CircleLoader.d.ts.map +1 -0
- package/dist/esm/components/loader/CircleLoader.js +13 -0
- package/dist/esm/components/loader/CircleLoader.js.map +1 -0
- package/dist/esm/components/loader/CircleLoader.module.css +29 -0
- package/dist/esm/components/loader/index.d.ts +2 -0
- package/dist/esm/components/loader/index.d.ts.map +1 -0
- package/dist/esm/components/loader/index.js +3 -0
- package/dist/esm/components/loader/index.js.map +1 -0
- package/dist/esm/components/read-only/ReadOnlyInputStyles.js +2 -2
- package/dist/esm/components/read-only/ReadOnlyInputStyles.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayout.module.css +1 -1
- package/dist/esm/styles/Badge.module.css +2 -0
- package/dist/esm/styles/Checkbox.module.css +41 -5
- package/dist/esm/styles/CheckboxIndicator.module.css +8 -1
- package/dist/esm/styles/Input.module.css +8 -2
- package/dist/esm/styles/Pagination.module.css +10 -1
- package/dist/esm/styles/Radio.module.css +30 -2
- package/dist/esm/styles/ReadOnlyInput.module.css +7 -3
- package/dist/esm/styles/Select.module.css +46 -0
- package/dist/esm/theme/Theme.d.ts.map +1 -1
- package/dist/esm/theme/Theme.js +17 -20
- package/dist/esm/theme/Theme.js.map +1 -1
- package/dist/esm/theme/plasmaCSSVariablesResolver.d.ts.map +1 -1
- package/dist/esm/theme/plasmaCSSVariablesResolver.js +6 -1
- package/dist/esm/theme/plasmaCSSVariablesResolver.js.map +1 -1
- package/package.json +3 -3
- package/src/components/checkbox/CheckboxIcon.tsx +14 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/code-editor/CodeEditor.module.css +10 -6
- package/src/components/code-editor/CodeEditor.tsx +23 -26
- package/src/components/collection/CollectionItem.tsx +9 -3
- package/src/components/collection/__tests__/Collection.spec.tsx +140 -44
- package/src/components/index.ts +2 -0
- package/src/components/loader/CircleLoader.module.css +29 -0
- package/src/components/loader/CircleLoader.tsx +8 -0
- package/src/components/loader/index.ts +1 -0
- package/src/components/read-only/ReadOnlyInputStyles.ts +2 -2
- package/src/components/table/layouts/row-layout/RowLayout.module.css +1 -1
- package/src/styles/Badge.module.css +2 -0
- package/src/styles/Checkbox.module.css +41 -5
- package/src/styles/CheckboxIndicator.module.css +8 -1
- package/src/styles/Input.module.css +8 -2
- package/src/styles/Pagination.module.css +10 -1
- package/src/styles/Radio.module.css +30 -2
- package/src/styles/ReadOnlyInput.module.css +7 -3
- package/src/styles/Select.module.css +46 -0
- package/src/theme/Theme.tsx +9 -14
- package/src/theme/plasmaCSSVariablesResolver.ts +11 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, FunctionComponent } from 'react';
|
|
2
|
+
interface CheckboxIconProps extends ComponentPropsWithoutRef<'svg'> {
|
|
3
|
+
indeterminate: boolean | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare const CheckboxIcon: FunctionComponent<CheckboxIconProps>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=CheckboxIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/checkbox/CheckboxIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,wBAAwB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAElE,UAAU,iBAAkB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAC/D,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,CAM7D,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "CheckboxIcon", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return CheckboxIcon;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _object_spread = require("@swc/helpers/_/_object_spread");
|
|
12
|
+
var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
13
|
+
var _jsxruntime = require("react/jsx-runtime");
|
|
14
|
+
var _plasmareacticons = require("@coveord/plasma-react-icons");
|
|
15
|
+
var CheckboxIcon = function(_param) {
|
|
16
|
+
var indeterminate = _param.indeterminate, others = _object_without_properties._(_param, [
|
|
17
|
+
"indeterminate"
|
|
18
|
+
]);
|
|
19
|
+
if (indeterminate) {
|
|
20
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.IconMinus, _object_spread._({
|
|
21
|
+
stroke: 3
|
|
22
|
+
}, others));
|
|
23
|
+
}
|
|
24
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.IconCheck, _object_spread._({
|
|
25
|
+
stroke: 3
|
|
26
|
+
}, others));
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=CheckboxIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/CheckboxIcon.tsx"],"sourcesContent":["import {IconCheck, IconMinus} from '@coveord/plasma-react-icons';\nimport {ComponentPropsWithoutRef, FunctionComponent} from 'react';\n\ninterface CheckboxIconProps extends ComponentPropsWithoutRef<'svg'> {\n indeterminate: boolean | undefined;\n}\n\nexport const CheckboxIcon: FunctionComponent<CheckboxIconProps> = ({indeterminate, ...others}: CheckboxIconProps) => {\n if (indeterminate) {\n return <IconMinus stroke={3} {...others} />;\n }\n\n return <IconCheck stroke={3} {...others} />;\n};\n"],"names":["CheckboxIcon","indeterminate","others","IconMinus","stroke","IconCheck"],"mappings":";;;;+BAOaA;;;eAAAA;;;;;;gCAPsB;AAO5B,IAAMA,eAAqD;QAAEC,uBAAAA,eAAkBC;QAAlBD;;IAChE,IAAIA,eAAe;QACf,qBAAO,qBAACE,2BAAS;YAACC,QAAQ;WAAOF;IACrC;IAEA,qBAAO,qBAACG,2BAAS;QAACD,QAAQ;OAAOF;AACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/checkbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/checkbox/index.ts"],"sourcesContent":["export * from './CheckboxIcon';\n"],"names":[],"mappings":";;;;;uBAAc"}
|
|
@@ -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;AAGvB,OAAO,EAAiB,MAAM,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AACrE,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,oEAAoE;IACpE,YAAY,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACjF;;;;;;;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;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;CAChF;AASD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,
|
|
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;AAGvB,OAAO,EAAiB,MAAM,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AACrE,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,oEAAoE;IACpE,YAAY,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACjF;;;;;;;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;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;CAChF;AASD,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CA4LzD,CAAC"}
|
|
@@ -103,20 +103,12 @@ var CodeEditor = function(props) {
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
var registerThemes = function(monaco) {
|
|
106
|
-
monaco.editor.defineTheme('light
|
|
106
|
+
monaco.editor.defineTheme('light', {
|
|
107
107
|
base: 'vs',
|
|
108
108
|
inherit: true,
|
|
109
109
|
rules: [],
|
|
110
110
|
colors: {
|
|
111
|
-
'editor.background': theme.colors.gray[
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
monaco.editor.defineTheme('vs-dark-disabled', {
|
|
115
|
-
base: 'vs-dark',
|
|
116
|
-
inherit: true,
|
|
117
|
-
rules: [],
|
|
118
|
-
colors: {
|
|
119
|
-
'editor.background': theme.colors.navy[7]
|
|
111
|
+
'editor.background': theme.colors.gray[0]
|
|
120
112
|
}
|
|
121
113
|
});
|
|
122
114
|
};
|
|
@@ -153,14 +145,13 @@ var CodeEditor = function(props) {
|
|
|
153
145
|
var _description = description ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Input.Description, _object_spread_props._(_object_spread._({}, descriptionProps), {
|
|
154
146
|
children: description
|
|
155
147
|
})) : null;
|
|
156
|
-
var _error = error ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Input.Error, _object_spread_props._(_object_spread._({
|
|
157
|
-
mt: "xs"
|
|
158
|
-
}, errorProps), {
|
|
148
|
+
var _error = error ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Input.Error, _object_spread_props._(_object_spread._({}, errorProps), {
|
|
159
149
|
children: error
|
|
160
150
|
})) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Space, {
|
|
161
151
|
h: "xs"
|
|
162
152
|
});
|
|
163
|
-
var _header = _label || _description ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.
|
|
153
|
+
var _header = _label || _description ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Stack, {
|
|
154
|
+
gap: "xxs",
|
|
164
155
|
children: [
|
|
165
156
|
_label,
|
|
166
157
|
_description
|
|
@@ -168,7 +159,7 @@ var CodeEditor = function(props) {
|
|
|
168
159
|
}) : null;
|
|
169
160
|
var _buttons = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, {
|
|
170
161
|
justify: "right",
|
|
171
|
-
gap:
|
|
162
|
+
gap: "xs",
|
|
172
163
|
children: [
|
|
173
164
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_search.Search, {
|
|
174
165
|
handleSearch: handleSearch
|
|
@@ -207,13 +198,15 @@ var CodeEditor = function(props) {
|
|
|
207
198
|
},
|
|
208
199
|
value: _value,
|
|
209
200
|
onChange: handleChange,
|
|
210
|
-
|
|
201
|
+
beforeMount: function(monaco) {
|
|
202
|
+
registerLanguages(monaco);
|
|
203
|
+
registerThemes(monaco);
|
|
204
|
+
},
|
|
205
|
+
onMount: function(editor) {
|
|
211
206
|
editorRef.current = editor;
|
|
212
207
|
if (editorHandle) {
|
|
213
208
|
editorHandle.current = editor;
|
|
214
209
|
}
|
|
215
|
-
registerLanguages(monaco);
|
|
216
|
-
registerThemes(monaco);
|
|
217
210
|
editor.onDidFocusEditorText(function() {
|
|
218
211
|
return onFocus === null || onFocus === void 0 ? void 0 : onFocus();
|
|
219
212
|
});
|
|
@@ -256,14 +249,19 @@ var CodeEditor = function(props) {
|
|
|
256
249
|
});
|
|
257
250
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Stack, _object_spread_props._(_object_spread._({
|
|
258
251
|
justify: "flex-start",
|
|
259
|
-
gap:
|
|
252
|
+
gap: "sm",
|
|
260
253
|
h: Math.max(parentHeight, minHeight),
|
|
261
254
|
mah: maxHeight,
|
|
262
255
|
ref: ref
|
|
263
256
|
}, others), {
|
|
264
257
|
children: [
|
|
265
|
-
|
|
266
|
-
|
|
258
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, {
|
|
259
|
+
justify: "space-between",
|
|
260
|
+
children: [
|
|
261
|
+
_header,
|
|
262
|
+
_buttons
|
|
263
|
+
]
|
|
264
|
+
}),
|
|
267
265
|
_editor,
|
|
268
266
|
_error
|
|
269
267
|
]
|
|
@@ -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 {MarkerSeverity, 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 /** Ref object that provides access to the editor's functionality */\n editorHandle?: React.MutableRefObject<monacoEditor.IStandaloneCodeEditor | null>;\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 * Options to pass to the monaco editor.\n * Currently only supporting [`tabSize`](https://microsoft.github.io/monaco-editor/typedoc/interfaces/editor.IStandaloneEditorConstructionOptions.html#tabSize).\n *\n */\n options?: Pick<monacoEditor.IStandaloneEditorConstructionOptions, 'tabSize'>;\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 options: {tabSize} = {tabSize: 2},\n editorHandle,\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\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 hasMonacoErrorRef = useRef(false);\n\n hasMonacoErrorRef.current = hasMonacoError;\n\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(markers.some((marker) => marker.severity === MarkerSeverity.Error));\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,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n if (editorHandle) {\n editorHandle.current = editor;\n }\n registerLanguages(monaco);\n registerThemes(monaco);\n editor.onDidFocusEditorText(() => onFocus?.());\n editor.onDidBlurEditorText(async () => {\n // monaco editor has a timeout of 500ms populating errors, we want to ensure that checking errors happen after that\n setTimeout(async () => {\n if (!hasMonacoErrorRef.current) {\n await editor?.getAction('editor.action.formatDocument')?.run();\n }\n }, 550);\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":["CodeEditor","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useProps","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","options","tabSize","editorHandle","others","useState","loaded","setLoaded","useUncontrolled","finalValue","_value","handleChange","useParentHeight","parentHeight","ref","editorRef","useRef","loadLocalMonaco","monacoInstance","loader","config","monaco","registerLanguages","XML","register","registerThemes","editor","defineTheme","base","inherit","rules","colors","theme","gray","navy","handleSearch","current","focus","trigger","hasMonacoError","setHasMonacoError","hasMonacoErrorRef","renderErrorOutline","useMantineTheme","colorScheme","useMantineColorScheme","useEffect","handleValidate","markers","some","marker","severity","MarkerSeverity","Error","_label","Input","Label","_description","Description","_error","mt","Space","h","_header","Box","_buttons","Group","justify","gap","Search","CopyToClipboard","editorTheme","_editor","p","pl","className","cx","CodeEditorClasses","valid","data-testid","Editor","onValidate","defaultLanguage","minimap","enabled","wordWrap","scrollBeyondLastLine","formatOnPaste","fontSize","px","fontSizes","xs","readOnly","onMount","onDidFocusEditorText","onDidBlurEditorText","setTimeout","getAction","run","Center","Loader","Stack","Math","max","mah"],"mappings":";;;;+BA2FaA;;;eAAAA;;;;;;;;;;;;;oBA7EN;qBACuB;+DACO;4BACgB;sBACQ;6DAE9C;sBACe;+BACA;4EACA;mBACZ;sBACG;AA2DrB,IAAMC,eAAyC;IAC3CC,UAAU;IACVC,cAAc;IACdC,cAAc;IACdC,WAAW;AACf;AAEO,IAAML,aAAiD,SAACM;IAC3D,IAsBIC,YAAAA,IAAAA,cAAQ,EAAC,cAAcN,cAAcK,QArBrCJ,WAqBAK,UArBAL,UACAE,eAoBAG,UApBAH,cACAI,WAmBAD,UAnBAC,UACAC,SAkBAF,UAlBAE,QACAC,WAiBAH,UAjBAG,UACAC,UAgBAJ,UAhBAI,SACAC,QAeAL,UAfAK,OACAC,QAcAN,UAdAM,OACAC,WAaAP,UAbAO,UACAC,aAYAR,UAZAQ,YACAC,QAWAT,UAXAS,OACAC,aAUAV,UAVAU,YACAC,cASAX,UATAW,aACAC,mBAQAZ,UARAY,kBACAd,YAOAE,UAPAF,WACAe,YAMAb,UANAa,WACAC,WAKAd,UALAc,UACAlB,eAIAI,UAJAJ,cACS,MAGTI,UAHAe,SAAS,AAACC,WAAD,iBAAY;QAACA,SAAS;IAAC,IAAvB,KAACA,SACVC,eAEAjB,UAFAiB,cACGC,sCACHlB;QArBAL;QACAE;QACAI;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAd;QACAe;QACAC;QACAlB;QACAmB;QACAE;;IAGJ,IAA4BE,+BAAAA,IAAAA,gBAAQ,EAAC,YAA9BC,SAAqBD,cAAbE,YAAaF;IAC5B,IAA+BG,sCAAAA,IAAAA,sBAAe,EAAS;QACnDjB,OAAAA;QACAR,cAAAA;QACAI,UAAAA;QACAsB,YAAY;IAChB,QALOC,SAAwBF,qBAAhBG,eAAgBH;IAM/B,IAA4BI,sCAAAA,IAAAA,uBAAe,SAApCC,eAAqBD,qBAAPE,MAAOF;IAC5B,IAAMG,YAAYC,IAAAA,cAAM,EAAC;IAEzB,IAAMC;mBAAkB,sBAAA;gBACdC;;;;wBAAiB;;4BAAM;iFAAA,QAAO;;;;wBAA9BA,iBAAiB;wBACvBC,aAAM,CAACC,MAAM,CAAC;4BAACC,QAAQH;wBAAc;wBACrCX,UAAU;;;;;;QACd;wBAJMU;;;;IAMN,IAAMK,oBAAoB,SAACD;QACvB,IAAIA,UAAUxC,aAAa,OAAO;YAC9B0C,QAAG,CAACC,QAAQ,CAACH;QACjB;IACJ;IAEA,IAAMI,iBAAiB,SAACJ;QACpBA,OAAOK,MAAM,CAACC,WAAW,CAAC,kBAAkB;YACxCC,MAAM;YACNC,SAAS;YACTC,OAAO,EAAE;YACTC,QAAQ;gBACJ,qBAAqBC,MAAMD,MAAM,CAACE,IAAI,CAAC,EAAE;YAC7C;QACJ;QACAZ,OAAOK,MAAM,CAACC,WAAW,CAAC,oBAAoB;YAC1CC,MAAM;YACNC,SAAS;YACTC,OAAO,EAAE;YACTC,QAAQ;gBACJ,qBAAqBC,MAAMD,MAAM,CAACG,IAAI,CAAC,EAAE;YAC7C;QACJ;IACJ;IAEA,IAAMC,eAAe;QACjB,IAAIpB,UAAUqB,OAAO,EAAE;YACnBrB,UAAUqB,OAAO,CAACC,KAAK;YACvBtB,UAAUqB,OAAO,CAACE,OAAO,CAAC,UAAU,gBAAgB;YACpDjD,qBAAAA,+BAAAA;QACJ;IACJ;IAEA,IAA4CgB,gCAAAA,IAAAA,gBAAQ,EAAC,YAA9CkC,iBAAqClC,eAArBmC,oBAAqBnC;IAC5C,IAAMoC,oBAAoBzB,IAAAA,cAAM,EAAC;IAEjCyB,kBAAkBL,OAAO,GAAGG;IAE5B,IAAMG,qBAAqB,CAAC,CAAC/C,SAAS4C;IACtC,IAAMP,QAAQW,IAAAA,qBAAe;IAC7B,IAAM,AAACC,cAAeC,IAAAA,2BAAqB,IAApCD;IAEPE,IAAAA,iBAAS,EAAC;QACN,IAAIhE,iBAAiB,SAAS;YAC1BmC;QACJ,OAAO;YACHV,UAAU;QACd;IACJ,GAAG,EAAE;IAEL,IAAMwC,iBAAiB,SAACC;QACpBR,kBAAkBQ,QAAQC,IAAI,CAAC,SAACC;mBAAWA,OAAOC,QAAQ,KAAKC,4BAAc,CAACC,KAAK;;IACvF;IAEA,IAAMC,SAAS9D,sBACX,qBAAC+D,WAAK,CAACC,KAAK;QAAC/D,UAAUA;OAAcC;kBAChCF;UAEL;IAEJ,IAAMiE,eAAe5D,4BACjB,qBAAC0D,WAAK,CAACG,WAAW,8CAAK5D;kBAAmBD;UAC1C;IAEJ,IAAM8D,SAAShE,sBACX,qBAAC4D,WAAK,CAACF,KAAK;QAACO,IAAG;OAAShE;kBACpBD;wBAGL,qBAACkE,WAAK;QAACC,GAAE;;IAGb,IAAMC,UACFT,UAAUG,6BACN,sBAACO,SAAG;;YACCV;YACAG;;SAEL;IAER,IAAMQ,yBACF,sBAACC,WAAK;QAACC,SAAQ;QAAQC,KAAK;;0BACxB,qBAACC,cAAM;gBAAClC,cAAcA;;0BACtB,qBAACmC,gCAAe;gBAAC/E,OAAOmB;gBAAQtB,QAAQ;2BAAMA,mBAAAA,6BAAAA;;;;;IAGtD,IAAImF,cAAc3B,gBAAgB,UAAU,UAAU;IACtD,IAAI5C,UAAU;QACVuE,eAAe;IACnB;IAEA,IAAMC,UAAUlE,uBACZ,qBAAC0D,SAAG;QACAS,GAAE;QACFC,IAAG;QACHC,WAAWC,IAAAA,aAAE,EACTC,4BAAiB,CAACnD,MAAM,EACvB,uBAACmD,4BAAiB,CAACC,KAAK,EAAG,CAACpC,qBAC5B,uBAACmC,4BAAiB,CAAClF,KAAK,EAAG+C,qBAC3B,uBAACmC,4BAAiB,CAAC7E,QAAQ,EAAGA;QAEnC+E,eAAY;kBAEZ,cAAA,qBAACC,cAAM;YACHC,YAAYlC;YACZmC,iBAAiBrG;YACjBmD,OAAOuC;YACPtE,SAAS;gBACLkF,SAAS;oBAACC,SAAS;gBAAK;gBACxBC,UAAU;gBACVC,sBAAsB;gBACtBC,eAAe;gBACfC,UAAUC,IAAAA,QAAE,EAACzD,MAAM0D,SAAS,CAACC,EAAE;gBAC/BC,UAAU5F;gBACVE,SAAAA;YACJ;YACAX,OAAOmB;YACPvB,UAAUwB;YACVkF,SAAS,SAACnE,QAAQL;gBACdN,UAAUqB,OAAO,GAAGV;gBACpB,IAAIvB,cAAc;oBACdA,aAAaiC,OAAO,GAAGV;gBAC3B;gBACAJ,kBAAkBD;gBAClBI,eAAeJ;gBACfK,OAAOoE,oBAAoB,CAAC;2BAAMxG,oBAAAA,8BAAAA;;gBAClCoC,OAAOqE,mBAAmB,qCAAC;;wBACvB,mHAAmH;wBACnHC,+CAAW;gCAEGtE;;;;6CADN,CAACe,kBAAkBL,OAAO,EAA1B;;;;wCACA;;4CAAMV,mBAAAA,8BAAAA,oBAAAA,OAAQuE,SAAS,CAAC,6CAAlBvE,wCAAAA,kBAAmDwE,GAAG;;;wCAA5D;;;;;;;;wBAER,IAAG;;;;;gBACP;YACJ;;uBAIR,qBAACC,YAAM;QAACxB,WAAWE,4BAAiB,CAACnD,MAAM;kBACvC,cAAA,qBAAC0E,YAAM;;IAIf,qBACI,sBAACC,WAAK;QAAClC,SAAQ;QAAaC,KAAK;QAAGN,GAAGwC,KAAKC,GAAG,CAAC1F,cAAc7B;QAAYwH,KAAKzG;QAAWe,KAAKA;OAASV;;YACnG2D;YACAE;YACAO;YACAb;;;AAGb"}
|
|
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 {MarkerSeverity, 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 /** Ref object that provides access to the editor's functionality */\n editorHandle?: React.MutableRefObject<monacoEditor.IStandaloneCodeEditor | null>;\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 * Options to pass to the monaco editor.\n * Currently only supporting [`tabSize`](https://microsoft.github.io/monaco-editor/typedoc/interfaces/editor.IStandaloneEditorConstructionOptions.html#tabSize).\n *\n */\n options?: Pick<monacoEditor.IStandaloneEditorConstructionOptions, 'tabSize'>;\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 options: {tabSize} = {tabSize: 2},\n editorHandle,\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\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', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': theme.colors.gray[0],\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 hasMonacoErrorRef = useRef(false);\n\n hasMonacoErrorRef.current = hasMonacoError;\n\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(markers.some((marker) => marker.severity === MarkerSeverity.Error));\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 ? <Input.Error {...errorProps}>{error}</Input.Error> : <Space h=\"xs\" />;\n\n const _header =\n _label || _description ? (\n <Stack gap=\"xxs\">\n {_label}\n {_description}\n </Stack>\n ) : null;\n\n const _buttons = (\n <Group justify=\"right\" gap=\"xs\">\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,\n }}\n value={_value}\n onChange={handleChange}\n beforeMount={(monaco) => {\n registerLanguages(monaco);\n registerThemes(monaco);\n }}\n onMount={(editor) => {\n editorRef.current = editor;\n if (editorHandle) {\n editorHandle.current = editor;\n }\n editor.onDidFocusEditorText(() => onFocus?.());\n editor.onDidBlurEditorText(async () => {\n // monaco editor has a timeout of 500ms populating errors, we want to ensure that checking errors happen after that\n setTimeout(async () => {\n if (!hasMonacoErrorRef.current) {\n await editor?.getAction('editor.action.formatDocument')?.run();\n }\n }, 550);\n });\n }}\n />\n </Box>\n ) : (\n <Center className={CodeEditorClasses.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n gap=\"sm\"\n h={Math.max(parentHeight, minHeight)}\n mah={maxHeight}\n ref={ref}\n {...others}\n >\n <Group justify=\"space-between\">\n {_header}\n {_buttons}\n </Group>\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CodeEditor","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useProps","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","options","tabSize","editorHandle","others","useState","loaded","setLoaded","useUncontrolled","finalValue","_value","handleChange","useParentHeight","parentHeight","ref","editorRef","useRef","loadLocalMonaco","monacoInstance","loader","config","monaco","registerLanguages","XML","register","registerThemes","editor","defineTheme","base","inherit","rules","colors","theme","gray","handleSearch","current","focus","trigger","hasMonacoError","setHasMonacoError","hasMonacoErrorRef","renderErrorOutline","useMantineTheme","colorScheme","useMantineColorScheme","useEffect","handleValidate","markers","some","marker","severity","MarkerSeverity","Error","_label","Input","Label","_description","Description","_error","Space","h","_header","Stack","gap","_buttons","Group","justify","Search","CopyToClipboard","editorTheme","_editor","Box","p","pl","className","cx","CodeEditorClasses","valid","data-testid","Editor","onValidate","defaultLanguage","minimap","enabled","wordWrap","scrollBeyondLastLine","formatOnPaste","fontSize","px","fontSizes","xs","readOnly","beforeMount","onMount","onDidFocusEditorText","onDidBlurEditorText","setTimeout","getAction","run","Center","Loader","Math","max","mah"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
outline-width: thin;
|
|
7
7
|
|
|
8
8
|
@mixin light {
|
|
9
|
-
background-color: var(--mantine-color-
|
|
9
|
+
background-color: var(--mantine-color-gray-0);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
@mixin dark {
|
|
@@ -20,16 +20,20 @@
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.error {
|
|
23
|
-
outline-color: var(--mantine-color-
|
|
23
|
+
outline-color: var(--mantine-color-error);
|
|
24
24
|
outline-style: solid;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.disabled {
|
|
28
28
|
@mixin light {
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
border: 1px solid var(--mantine-color-gray-1);
|
|
30
|
+
background-color: var(--mantine-color-gray-1);
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
:global {
|
|
33
|
+
.monaco-editor {
|
|
34
|
+
--vscode-editor-background: var(--mantine-color-gray-1);
|
|
35
|
+
--vscode-editorGutter-background: var(--mantine-color-gray-1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
34
38
|
}
|
|
35
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/CollectionItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,UAAU,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAK3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,UAAU;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"CollectionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/CollectionItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,UAAU,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAK3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,UAAU;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAyED,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAYpF,CAAC"}
|
|
@@ -39,12 +39,14 @@ var RemoveButtonPlaceholder = function() {
|
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
41
|
var StaticCollectionItem = function(param) {
|
|
42
|
-
var onRemove = param.onRemove, _param_removable = param.removable, removable = _param_removable === void 0 ? true : _param_removable, children = param.children;
|
|
42
|
+
var onRemove = param.onRemove, _param_removable = param.removable, removable = _param_removable === void 0 ? true : _param_removable, id = param.id, children = param.children;
|
|
43
43
|
var ctx = (0, _CollectionContext.useCollectionContext)();
|
|
44
44
|
var removeButton = removable && onRemove ? /*#__PURE__*/ (0, _jsxruntime.jsx)(RemoveButton, {
|
|
45
45
|
onClick: onRemove
|
|
46
46
|
}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(RemoveButtonPlaceholder, {});
|
|
47
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, _object_spread_props._(_object_spread._({
|
|
47
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, _object_spread_props._(_object_spread._({
|
|
48
|
+
"data-testid": "item-".concat(id)
|
|
49
|
+
}, ctx.getStyles('item')), {
|
|
48
50
|
children: [
|
|
49
51
|
children,
|
|
50
52
|
removeButton
|
|
@@ -52,9 +54,11 @@ var StaticCollectionItem = function(param) {
|
|
|
52
54
|
}));
|
|
53
55
|
};
|
|
54
56
|
var DisabledCollectionItem = function(param) {
|
|
55
|
-
var children = param.children;
|
|
57
|
+
var id = param.id, children = param.children;
|
|
56
58
|
var ctx = (0, _CollectionContext.useCollectionContext)();
|
|
57
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Group, _object_spread_props._(_object_spread._({
|
|
59
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Group, _object_spread_props._(_object_spread._({
|
|
60
|
+
"data-testid": "item-".concat(id)
|
|
61
|
+
}, ctx.getStyles('item')), {
|
|
58
62
|
children: children
|
|
59
63
|
}));
|
|
60
64
|
};
|
|
@@ -68,6 +72,7 @@ var DraggableCollectionItem = function(param) {
|
|
|
68
72
|
id: id
|
|
69
73
|
}), attributes = _useSortable.attributes, listeners = _useSortable.listeners, setNodeRef = _useSortable.setNodeRef, transform = _useSortable.transform, transition = _useSortable.transition, isDragging = _useSortable.isDragging, setActivatorNodeRef = _useSortable.setActivatorNodeRef;
|
|
70
74
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, _object_spread_props._(_object_spread._({
|
|
75
|
+
"data-testid": "item-".concat(id),
|
|
71
76
|
ref: setNodeRef
|
|
72
77
|
}, ctx.getStyles('item', {
|
|
73
78
|
style: transform ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/collection/CollectionItem.tsx"],"sourcesContent":["import {DragAndDropSize24Px, IconCircleMinus} from '@coveord/plasma-react-icons';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport {ActionIcon} from '../action-icon';\nimport {useCollectionContext} from './CollectionContext';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends GroupProps {\n id: string;\n onRemove?: React.MouseEventHandler<HTMLButtonElement>;\n removable?: boolean;\n}\n\nconst RemoveButton: FunctionComponent<{\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({onClick}) => (\n <ActionIcon.Quaternary style={{alignSelf: 'center'}} onClick={onClick}>\n <IconCircleMinus aria-label=\"Remove\" size={20} />\n </ActionIcon.Quaternary>\n);\n\nconst RemoveButtonPlaceholder = () => <div style={{width: 28}} />;\n\nconst StaticCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group {...ctx.getStyles('item')}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({children}) => {\n const ctx = useCollectionContext();\n return <Group {...ctx.getStyles('item')}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/collection/CollectionItem.tsx"],"sourcesContent":["import {DragAndDropSize24Px, IconCircleMinus} from '@coveord/plasma-react-icons';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport {ActionIcon} from '../action-icon';\nimport {useCollectionContext} from './CollectionContext';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends GroupProps {\n id: string;\n onRemove?: React.MouseEventHandler<HTMLButtonElement>;\n removable?: boolean;\n}\n\nconst RemoveButton: FunctionComponent<{\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({onClick}) => (\n <ActionIcon.Quaternary style={{alignSelf: 'center'}} onClick={onClick}>\n <IconCircleMinus aria-label=\"Remove\" size={20} />\n </ActionIcon.Quaternary>\n);\n\nconst RemoveButtonPlaceholder = () => <div style={{width: 28}} />;\n\nconst StaticCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n onRemove,\n removable = true,\n id,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group data-testid={`item-${id}`} {...ctx.getStyles('item')}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({id, children}) => {\n const ctx = useCollectionContext();\n return (\n <Group data-testid={`item-${id}`} {...ctx.getStyles('item')}>\n {children}\n </Group>\n );\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n id,\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : null;\n const {attributes, listeners, setNodeRef, transform, transition, isDragging, setActivatorNodeRef} = useSortable({\n id,\n });\n\n return (\n <Group\n data-testid={`item-${id}`}\n ref={setNodeRef}\n {...ctx.getStyles('item', {\n style: transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined,\n })}\n data-isdragging={isDragging}\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} {...ctx.getStyles('dragHandle')}>\n <DragAndDropSize24Px height={16} />\n </div>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nexport const CollectionItem: FunctionComponent<PropsWithChildren<CollectionItemProps>> = ({\n draggable,\n disabled,\n ...otherProps\n}) => {\n if (disabled) {\n return <DisabledCollectionItem {...otherProps} />;\n }\n if (draggable) {\n return <DraggableCollectionItem {...otherProps} />;\n }\n return <StaticCollectionItem {...otherProps} />;\n};\n"],"names":["CollectionItem","RemoveButton","onClick","ActionIcon","Quaternary","style","alignSelf","IconCircleMinus","aria-label","size","RemoveButtonPlaceholder","div","width","StaticCollectionItem","onRemove","removable","id","children","ctx","useCollectionContext","removeButton","Group","data-testid","getStyles","DisabledCollectionItem","DraggableCollectionItem","useSortable","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","CSS","Transform","toString","undefined","data-isdragging","DragAndDropSize24Px","height","draggable","disabled","otherProps"],"mappings":";;;;+BA2FaA;;;eAAAA;;;;;;;gCA3FsC;wBACzB;yBACR;oBACc;0BAGP;iCACU;AAanC,IAAMC,eAED;QAAEC,gBAAAA;yBACH,qBAACC,sBAAU,CAACC,UAAU;QAACC,OAAO;YAACC,WAAW;QAAQ;QAAGJ,SAASA;kBAC1D,cAAA,qBAACK,iCAAe;YAACC,cAAW;YAASC,MAAM;;;;AAInD,IAAMC,0BAA0B;yBAAM,qBAACC;QAAIN,OAAO;YAACO,OAAO;QAAE;;;AAE5D,IAAMC,uBAAwF;QAC1FC,iBAAAA,mCACAC,WAAAA,0CAAY,yBACZC,WAAAA,IACAC,iBAAAA;IAEA,IAAMC,MAAMC,IAAAA,uCAAoB;IAChC,IAAMC,eAAeL,aAAaD,yBAAW,qBAACb;QAAaC,SAASY;uBAAe,qBAACJ;IAEpF,qBACI,sBAACW,WAAK;QAACC,eAAa,AAAC,QAAU,OAAHN;OAAUE,IAAIK,SAAS,CAAC;;YAC/CN;YACAG;;;AAGb;AAEA,IAAMI,yBAA0F;QAAER,WAAAA,IAAIC,iBAAAA;IAClG,IAAMC,MAAMC,IAAAA,uCAAoB;IAChC,qBACI,qBAACE,WAAK;QAACC,eAAa,AAAC,QAAU,OAAHN;OAAUE,IAAIK,SAAS,CAAC;kBAC/CN;;AAGb;AAEA,IAAMQ,0BAA2F;QAC7FT,WAAAA,IACAF,iBAAAA,mCACAC,WAAAA,0CAAY,yBACZE,iBAAAA;IAEA,IAAMC,MAAMC,IAAAA,uCAAoB;IAChC,IAAMC,eAAeL,aAAaD,yBAAW,qBAACb;QAAaC,SAASY;SAAe;IACnF,IAAoGY,eAAAA,IAAAA,qBAAW,EAAC;QAC5GV,IAAAA;IACJ,IAFOW,aAA6FD,aAA7FC,YAAYC,YAAiFF,aAAjFE,WAAWC,aAAsEH,aAAtEG,YAAYC,YAA0DJ,aAA1DI,WAAWC,aAA+CL,aAA/CK,YAAYC,aAAmCN,aAAnCM,YAAYC,sBAAuBP,aAAvBO;IAI7E,qBACI,sBAACZ,WAAK;QACFC,eAAa,AAAC,QAAU,OAAHN;QACrBkB,KAAKL;OACDX,IAAIK,SAAS,CAAC,QAAQ;QACtBlB,OAAOyB,YACD;YACIA,WAAWK,cAAG,CAACC,SAAS,CAACC,QAAQ,CAACP;YAClCC,YAAAA;QACJ,IACAO;IACV;QACAC,mBAAiBP;;0BAEjB,qBAACrB;gBAAIuB,KAAKD;eAAyBL,WAAeD,YAAgBT,IAAIK,SAAS,CAAC;0BAC5E,cAAA,qBAACiB,qCAAmB;oBAACC,QAAQ;;;YAEhCxB;YACAG;;;AAGb;AAEO,IAAMpB,iBAA4E;QACrF0C,mBAAAA,WACAC,kBAAAA,UACGC;QAFHF;QACAC;;IAGA,IAAIA,UAAU;QACV,qBAAO,qBAACnB,6CAA2BoB;IACvC;IACA,IAAIF,WAAW;QACX,qBAAO,qBAACjB,8CAA4BmB;IACxC;IACA,qBAAO,qBAAC/B,2CAAyB+B;AACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
@@ -25,5 +25,7 @@ _export_star._(require("./read-only"), exports);
|
|
|
25
25
|
_export_star._(require("./sticky-footer"), exports);
|
|
26
26
|
_export_star._(require("./table"), exports);
|
|
27
27
|
_export_star._(require("./child-form"), exports);
|
|
28
|
+
_export_star._(require("./checkbox"), exports);
|
|
29
|
+
_export_star._(require("./loader"), exports);
|
|
28
30
|
|
|
29
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from './accordion';\nexport * from './action-icon';\nexport * from './alert';\nexport * from './badge';\nexport * from './blank-slate';\nexport * from './browser-preview';\nexport * from './button';\nexport * from './code-editor';\nexport * from './collection';\nexport * from './copyToClipboard';\nexport * from './date-range-picker';\nexport * from './ellipsis-text';\nexport * from './header';\nexport * from './info-token';\nexport * from './inline-confirm';\nexport * from './menu';\nexport * from './modal';\nexport * from './prompt';\nexport * from './read-only';\nexport * from './sticky-footer';\nexport * from './table';\nexport * from './child-form';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from './accordion';\nexport * from './action-icon';\nexport * from './alert';\nexport * from './badge';\nexport * from './blank-slate';\nexport * from './browser-preview';\nexport * from './button';\nexport * from './code-editor';\nexport * from './collection';\nexport * from './copyToClipboard';\nexport * from './date-range-picker';\nexport * from './ellipsis-text';\nexport * from './header';\nexport * from './info-token';\nexport * from './inline-confirm';\nexport * from './menu';\nexport * from './modal';\nexport * from './prompt';\nexport * from './read-only';\nexport * from './sticky-footer';\nexport * from './table';\nexport * from './child-form';\nexport * from './checkbox';\nexport * from './loader';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircleLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/loader/CircleLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAK1D,eAAO,MAAM,YAAY,EAAE,sBAEzB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "CircleLoader", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return CircleLoader;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
12
|
+
var _object_spread = require("@swc/helpers/_/_object_spread");
|
|
13
|
+
var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
|
|
14
|
+
var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
15
|
+
var _jsxruntime = require("react/jsx-runtime");
|
|
16
|
+
var _core = require("@mantine/core");
|
|
17
|
+
var _clsx = /*#__PURE__*/ _interop_require_default._(require("clsx"));
|
|
18
|
+
var _react = require("react");
|
|
19
|
+
var _CircleLoadermodulecss = /*#__PURE__*/ _interop_require_default._(require("./CircleLoader.module.css"));
|
|
20
|
+
var CircleLoader = /*#__PURE__*/ (0, _react.forwardRef)(function(_param, ref) {
|
|
21
|
+
var className = _param.className, others = _object_without_properties._(_param, [
|
|
22
|
+
"className"
|
|
23
|
+
]);
|
|
24
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Box, _object_spread_props._(_object_spread._({
|
|
25
|
+
component: "span",
|
|
26
|
+
className: (0, _clsx.default)(_CircleLoadermodulecss.default.root, className)
|
|
27
|
+
}, others), {
|
|
28
|
+
ref: ref
|
|
29
|
+
}));
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=CircleLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/loader/CircleLoader.tsx"],"sourcesContent":["import {Box, MantineLoaderComponent} from '@mantine/core';\nimport cx from 'clsx';\nimport {forwardRef} from 'react';\nimport classes from './CircleLoader.module.css';\n\nexport const CircleLoader: MantineLoaderComponent = forwardRef(({className, ...others}, ref) => (\n <Box component=\"span\" className={cx(classes.root, className)} {...others} ref={ref} />\n));\n"],"names":["CircleLoader","forwardRef","ref","className","others","Box","component","cx","classes","root"],"mappings":";;;;+BAKaA;;;eAAAA;;;;;;;;oBAL6B;6DAC3B;qBACU;8EACL;AAEb,IAAMA,6BAAuCC,IAAAA,iBAAU,EAAC,iBAAyBC;QAAvBC,mBAAAA,WAAcC;QAAdD;;yBAC7D,qBAACE,SAAG;QAACC,WAAU;QAAOH,WAAWI,IAAAA,aAAE,EAACC,8BAAO,CAACC,IAAI,EAAEN;OAAgBC;QAAQF,KAAKA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
--loader-light-color: var(--mantine-primary-color-light);
|
|
3
|
+
|
|
4
|
+
display: inline-block;
|
|
5
|
+
width: var(--loader-size);
|
|
6
|
+
height: var(--loader-size);
|
|
7
|
+
|
|
8
|
+
&::after {
|
|
9
|
+
content: '';
|
|
10
|
+
display: block;
|
|
11
|
+
width: var(--loader-size);
|
|
12
|
+
height: var(--loader-size);
|
|
13
|
+
border-radius: 10000px;
|
|
14
|
+
border-width: calc(var(--loader-size) / 8);
|
|
15
|
+
border-style: solid;
|
|
16
|
+
border-color: var(--loader-light-color) var(--loader-light-color) var(--loader-light-color) var(--loader-color);
|
|
17
|
+
animation: circle-loader-animation 1.2s linear infinite;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@keyframes circle-loader-animation {
|
|
22
|
+
0% {
|
|
23
|
+
transform: rotate(0deg);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
100% {
|
|
27
|
+
transform: rotate(360deg);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/loader/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/loader/index.ts"],"sourcesContent":["export * from './CircleLoader';\n"],"names":[],"mappings":";;;;;uBAAc"}
|
|
@@ -11,8 +11,8 @@ Object.defineProperty(exports, "readOnlyInputStyles", {
|
|
|
11
11
|
var readOnlyInputStyles = function(theme) {
|
|
12
12
|
return {
|
|
13
13
|
wrapper: {
|
|
14
|
-
'--input-bd': '
|
|
15
|
-
'--input-bg': theme.colors.gray[
|
|
14
|
+
'--input-bd': 'var(--mantine-color-default-border)',
|
|
15
|
+
'--input-bg': theme.colors.gray[1],
|
|
16
16
|
'--input-color': theme.colors.gray[7],
|
|
17
17
|
'--input-placeholder-color': theme.colors.gray[7]
|
|
18
18
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/read-only/ReadOnlyInputStyles.ts"],"sourcesContent":["import {type MantineTheme} from '@mantine/core';\n\nexport const readOnlyInputStyles = (theme: MantineTheme) => ({\n wrapper: {\n '--input-bd': '
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/read-only/ReadOnlyInputStyles.ts"],"sourcesContent":["import {type MantineTheme} from '@mantine/core';\n\nexport const readOnlyInputStyles = (theme: MantineTheme) => ({\n wrapper: {\n '--input-bd': 'var(--mantine-color-default-border)',\n '--input-bg': theme.colors.gray[1],\n '--input-color': theme.colors.gray[7],\n '--input-placeholder-color': theme.colors.gray[7],\n },\n label: {\n '--input-asterisk-color': theme.colors.red[2],\n },\n input: {\n cursor: 'text',\n },\n});\n"],"names":["readOnlyInputStyles","theme","wrapper","colors","gray","label","red","input","cursor"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,IAAMA,sBAAsB,SAACC;WAAyB;QACzDC,SAAS;YACL,cAAc;YACd,cAAcD,MAAME,MAAM,CAACC,IAAI,CAAC,EAAE;YAClC,iBAAiBH,MAAME,MAAM,CAACC,IAAI,CAAC,EAAE;YACrC,6BAA6BH,MAAME,MAAM,CAACC,IAAI,CAAC,EAAE;QACrD;QACAC,OAAO;YACH,0BAA0BJ,MAAME,MAAM,CAACG,GAAG,CAAC,EAAE;QACjD;QACAC,OAAO;YACHC,QAAQ;QACZ;IACJ"}
|
|
@@ -1,9 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
`readonly` state on checkboxes is not something that exists in Mantine.
|
|
3
|
+
So we are allowing ourselves some custom style to achieve the desired effect
|
|
4
|
+
*/
|
|
5
|
+
.input {
|
|
6
|
+
@mixin light {
|
|
7
|
+
/* targets the default checkbox without overiding mantine's base rules */
|
|
8
|
+
&:not([data-indeterminate], :checked, [readonly], :disabled, [data-error='true']) {
|
|
9
|
+
border-color: var(--coveo-color-input-border);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* mantine doesn't have a concept of readonly checkbox */
|
|
13
|
+
&[readonly] {
|
|
14
|
+
border-color: var(--mantine-color-default-border);
|
|
15
|
+
background-color: var(--coveo-color-bg-readonly);
|
|
16
|
+
color: var(--coveo-color-text-readonly);
|
|
17
|
+
|
|
18
|
+
& + .icon {
|
|
19
|
+
color: var(--coveo-color-text-readonly);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* mantine hardcodes disabled styles so we need to write custom styles */
|
|
24
|
+
&:disabled {
|
|
25
|
+
border-color: var(--mantine-color-default-border);
|
|
26
|
+
background-color: var(--coveo-color-bg-disabled);
|
|
27
|
+
color: var(--coveo-color-text-disabled);
|
|
28
|
+
|
|
29
|
+
& + .icon {
|
|
30
|
+
color: var(--coveo-color-text-disabled);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
3
34
|
}
|
|
4
35
|
|
|
5
|
-
.
|
|
6
|
-
@mixin
|
|
7
|
-
|
|
36
|
+
.labelWrapper {
|
|
37
|
+
@mixin light {
|
|
38
|
+
&[data-disabled] {
|
|
39
|
+
.label,
|
|
40
|
+
.description {
|
|
41
|
+
color: var(--coveo-color-text-disabled);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
8
44
|
}
|
|
9
45
|
}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
`readonly` state on checkboxes is not something that exists in Mantine.
|
|
3
|
+
So we are allowing ourselves some custom style to achieve the desired effect
|
|
4
|
+
*/
|
|
1
5
|
.indicator {
|
|
2
6
|
@mixin where-light {
|
|
3
|
-
|
|
7
|
+
&[readonly] {
|
|
8
|
+
border-color: var(--coveo-color-input-border);
|
|
9
|
+
background-color: var(--checkbox-color);
|
|
10
|
+
}
|
|
4
11
|
}
|
|
5
12
|
}
|
|
@@ -10,10 +10,16 @@
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
&[data-disabled] {
|
|
13
|
-
|
|
13
|
+
> .section {
|
|
14
|
+
> svg {
|
|
15
|
+
color: var(--input-disabled-color);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
.section {
|
|
18
|
-
|
|
22
|
+
> svg {
|
|
23
|
+
color: var(--mantine-color-gray-3);
|
|
24
|
+
}
|
|
19
25
|
}
|