@coveord/plasma-mantine 55.6.0 → 55.7.1

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 (96) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +54 -52
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/code-editor/CodeEditor.d.ts +7 -0
  5. package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
  6. package/dist/cjs/components/code-editor/CodeEditor.js +6 -3
  7. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  8. package/dist/cjs/components/index.d.ts +1 -0
  9. package/dist/cjs/components/index.d.ts.map +1 -1
  10. package/dist/cjs/components/index.js +1 -0
  11. package/dist/cjs/components/index.js.map +1 -1
  12. package/dist/cjs/components/modal/Modal.d.ts +11 -0
  13. package/dist/cjs/components/modal/Modal.d.ts.map +1 -0
  14. package/dist/cjs/components/modal/Modal.js +32 -0
  15. package/dist/cjs/components/modal/Modal.js.map +1 -0
  16. package/dist/cjs/components/modal/Modal.module.css +9 -0
  17. package/dist/cjs/components/modal/ModalFooter.d.ts +20 -0
  18. package/dist/cjs/components/modal/ModalFooter.d.ts.map +1 -0
  19. package/dist/cjs/components/modal/ModalFooter.js +46 -0
  20. package/dist/cjs/components/modal/ModalFooter.js.map +1 -0
  21. package/dist/cjs/components/modal/index.d.ts +3 -0
  22. package/dist/cjs/components/modal/index.d.ts.map +1 -0
  23. package/dist/cjs/components/modal/index.js +9 -0
  24. package/dist/cjs/components/modal/index.js.map +1 -0
  25. package/dist/cjs/components/prompt/Prompt.d.ts +3 -3
  26. package/dist/cjs/components/prompt/Prompt.d.ts.map +1 -1
  27. package/dist/cjs/components/prompt/Prompt.js +14 -16
  28. package/dist/cjs/components/prompt/Prompt.js.map +1 -1
  29. package/dist/cjs/components/sticky-footer/StickyFooter.d.ts +2 -0
  30. package/dist/cjs/components/sticky-footer/StickyFooter.d.ts.map +1 -1
  31. package/dist/cjs/components/sticky-footer/StickyFooter.js.map +1 -1
  32. package/dist/cjs/components/table/use-url-synced-state.d.ts.map +1 -1
  33. package/dist/cjs/components/table/use-url-synced-state.js +29 -19
  34. package/dist/cjs/components/table/use-url-synced-state.js.map +1 -1
  35. package/dist/cjs/index.d.ts +1 -1
  36. package/dist/cjs/index.d.ts.map +1 -1
  37. package/dist/cjs/index.js +3 -0
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/esm/components/code-editor/CodeEditor.d.ts +7 -0
  40. package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
  41. package/dist/esm/components/code-editor/CodeEditor.js +4 -2
  42. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  43. package/dist/esm/components/index.d.ts +1 -0
  44. package/dist/esm/components/index.d.ts.map +1 -1
  45. package/dist/esm/components/index.js +1 -0
  46. package/dist/esm/components/index.js.map +1 -1
  47. package/dist/esm/components/modal/Modal.d.ts +11 -0
  48. package/dist/esm/components/modal/Modal.d.ts.map +1 -0
  49. package/dist/esm/components/modal/Modal.js +20 -0
  50. package/dist/esm/components/modal/Modal.js.map +1 -0
  51. package/dist/esm/components/modal/Modal.module.css +9 -0
  52. package/dist/esm/components/modal/ModalFooter.d.ts +20 -0
  53. package/dist/esm/components/modal/ModalFooter.d.ts.map +1 -0
  54. package/dist/esm/components/modal/ModalFooter.js +32 -0
  55. package/dist/esm/components/modal/ModalFooter.js.map +1 -0
  56. package/dist/esm/components/modal/index.d.ts +3 -0
  57. package/dist/esm/components/modal/index.d.ts.map +1 -0
  58. package/dist/esm/components/modal/index.js +4 -0
  59. package/dist/esm/components/modal/index.js.map +1 -0
  60. package/dist/esm/components/prompt/Prompt.d.ts +3 -3
  61. package/dist/esm/components/prompt/Prompt.d.ts.map +1 -1
  62. package/dist/esm/components/prompt/Prompt.js +9 -7
  63. package/dist/esm/components/prompt/Prompt.js.map +1 -1
  64. package/dist/esm/components/sticky-footer/StickyFooter.d.ts +2 -0
  65. package/dist/esm/components/sticky-footer/StickyFooter.d.ts.map +1 -1
  66. package/dist/esm/components/sticky-footer/StickyFooter.js.map +1 -1
  67. package/dist/esm/components/table/use-url-synced-state.d.ts.map +1 -1
  68. package/dist/esm/components/table/use-url-synced-state.js +26 -18
  69. package/dist/esm/components/table/use-url-synced-state.js.map +1 -1
  70. package/dist/esm/index.d.ts +1 -1
  71. package/dist/esm/index.d.ts.map +1 -1
  72. package/dist/esm/index.js +1 -1
  73. package/dist/esm/index.js.map +1 -1
  74. package/package.json +25 -25
  75. package/src/components/code-editor/CodeEditor.tsx +8 -1
  76. package/src/components/index.ts +1 -0
  77. package/src/components/modal/Modal.module.css +9 -0
  78. package/src/components/modal/Modal.tsx +33 -0
  79. package/src/components/modal/ModalFooter.tsx +47 -0
  80. package/src/components/modal/__tests__/Modal.spec.tsx +25 -0
  81. package/src/components/modal/__tests__/ModalFooter.spec.tsx +35 -0
  82. package/src/components/modal/index.ts +2 -0
  83. package/src/components/prompt/Prompt.tsx +9 -8
  84. package/src/components/sticky-footer/StickyFooter.tsx +2 -0
  85. package/src/components/table/__tests__/use-url-synced-state.unit.spec.ts +189 -138
  86. package/src/components/table/use-url-synced-state.ts +36 -18
  87. package/src/index.ts +2 -0
  88. package/dist/cjs/components/prompt/PromptFooter.d.ts +0 -6
  89. package/dist/cjs/components/prompt/PromptFooter.d.ts.map +0 -1
  90. package/dist/cjs/components/prompt/PromptFooter.js +0 -27
  91. package/dist/cjs/components/prompt/PromptFooter.js.map +0 -1
  92. package/dist/esm/components/prompt/PromptFooter.d.ts +0 -6
  93. package/dist/esm/components/prompt/PromptFooter.d.ts.map +0 -1
  94. package/dist/esm/components/prompt/PromptFooter.js +0 -9
  95. package/dist/esm/components/prompt/PromptFooter.js.map +0 -1
  96. package/src/components/prompt/PromptFooter.tsx +0 -10
@@ -1,4 +1,5 @@
1
1
  import { InputWrapperProps, StackProps } from '@mantine/core';
2
+ import { editor as monacoEditor } from 'monaco-editor';
2
3
  import { FunctionComponent } from 'react';
3
4
  interface CodeEditorProps extends Omit<InputWrapperProps, 'inputContainer' | 'inputWrapperOrder' | 'classNames' | 'styles' | 'vars' | 'onChange'>, Omit<StackProps, 'onChange'> {
4
5
  /**
@@ -43,6 +44,12 @@ interface CodeEditorProps extends Omit<InputWrapperProps, 'inputContainer' | 'in
43
44
  * @default 'local'
44
45
  */
45
46
  monacoLoader?: 'cdn' | 'local';
47
+ /**
48
+ * Options to pass to the monaco editor.
49
+ * Currently only supporting [`tabSize`](https://microsoft.github.io/monaco-editor/typedoc/interfaces/editor.IStandaloneEditorConstructionOptions.html#tabSize).
50
+ *
51
+ */
52
+ options?: Pick<monacoEditor.IStandaloneEditorConstructionOptions, 'tabSize'>;
46
53
  }
47
54
  export declare const CodeEditor: FunctionComponent<CodeEditorProps>;
48
55
  export {};
@@ -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,CAkLzD,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;AAGvB,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AACrD,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;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,CAmLzD,CAAC"}
@@ -35,7 +35,9 @@ var defaultProps = {
35
35
  minHeight: 300
36
36
  };
37
37
  var CodeEditor = function(props) {
38
- var _useProps = (0, _core.useProps)('CodeEditor', defaultProps, props), language = _useProps.language, defaultValue = _useProps.defaultValue, onChange = _useProps.onChange, onCopy = _useProps.onCopy, onSearch = _useProps.onSearch, onFocus = _useProps.onFocus, value = _useProps.value, label = _useProps.label, required = _useProps.required, labelProps = _useProps.labelProps, error = _useProps.error, errorProps = _useProps.errorProps, description = _useProps.description, descriptionProps = _useProps.descriptionProps, minHeight = _useProps.minHeight, maxHeight = _useProps.maxHeight, disabled = _useProps.disabled, monacoLoader = _useProps.monacoLoader, others = _object_without_properties._(_useProps, [
38
+ var _useProps = (0, _core.useProps)('CodeEditor', defaultProps, props), language = _useProps.language, defaultValue = _useProps.defaultValue, onChange = _useProps.onChange, onCopy = _useProps.onCopy, onSearch = _useProps.onSearch, onFocus = _useProps.onFocus, value = _useProps.value, label = _useProps.label, required = _useProps.required, labelProps = _useProps.labelProps, error = _useProps.error, errorProps = _useProps.errorProps, description = _useProps.description, descriptionProps = _useProps.descriptionProps, minHeight = _useProps.minHeight, maxHeight = _useProps.maxHeight, disabled = _useProps.disabled, monacoLoader = _useProps.monacoLoader, tmp = _useProps.options, tabSize = (tmp === void 0 ? {
39
+ tabSize: 2
40
+ } : tmp).tabSize, others = _object_without_properties._(_useProps, [
39
41
  "language",
40
42
  "defaultValue",
41
43
  "onChange",
@@ -53,7 +55,8 @@ var CodeEditor = function(props) {
53
55
  "minHeight",
54
56
  "maxHeight",
55
57
  "disabled",
56
- "monacoLoader"
58
+ "monacoLoader",
59
+ "options"
57
60
  ]);
58
61
  var _useState = _sliced_to_array._((0, _react1.useState)(false), 2), loaded = _useState[0], setLoaded = _useState[1];
59
62
  var _useUncontrolled = _sliced_to_array._((0, _hooks.useUncontrolled)({
@@ -196,7 +199,7 @@ var CodeEditor = function(props) {
196
199
  formatOnPaste: true,
197
200
  fontSize: (0, _core.px)(theme.fontSizes.xs),
198
201
  readOnly: disabled,
199
- tabSize: 2
202
+ tabSize: tabSize
200
203
  },
201
204
  value: _value,
202
205
  onChange: handleChange,
@@ -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 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":["CodeEditor","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useProps","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","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","renderErrorOutline","useMantineTheme","colorScheme","useMantineColorScheme","useEffect","handleValidate","markers","some","marker","severity","__getMonacoInstance","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","options","minimap","enabled","wordWrap","scrollBeyondLastLine","formatOnPaste","fontSize","px","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Center","Loader","Stack","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 * 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 ...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,\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":["CodeEditor","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useProps","onChange","onCopy","onSearch","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","options","tabSize","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","renderErrorOutline","useMantineTheme","colorScheme","useMantineColorScheme","useEffect","handleValidate","markers","some","marker","severity","__getMonacoInstance","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","getAction","run","Center","Loader","Stack","Math","max","mah"],"mappings":"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"}
@@ -10,6 +10,7 @@ export * from './ellipsis-text';
10
10
  export * from './header';
11
11
  export * from './inline-confirm';
12
12
  export * from './menu';
13
+ export * from './modal';
13
14
  export * from './prompt';
14
15
  export * from './read-only';
15
16
  export * from './sticky-footer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,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,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,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,eAAe,CAAC;AAC9B,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,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"}
@@ -15,6 +15,7 @@ _export_star._(require("./ellipsis-text"), exports);
15
15
  _export_star._(require("./header"), exports);
16
16
  _export_star._(require("./inline-confirm"), exports);
17
17
  _export_star._(require("./menu"), exports);
18
+ _export_star._(require("./modal"), exports);
18
19
  _export_star._(require("./prompt"), exports);
19
20
  _export_star._(require("./read-only"), exports);
20
21
  _export_star._(require("./sticky-footer"), exports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from './action-icon';\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 './inline-confirm';\nexport * from './menu';\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"}
1
+ {"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from './action-icon';\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 './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"}
@@ -0,0 +1,11 @@
1
+ import { ModalFactory as MantineModalFactory } from '@mantine/core';
2
+ import { ModalFooter as PlasmaModalFooter } from './ModalFooter';
3
+ type PlasmaModalFactory = Omit<MantineModalFactory, 'staticComponents'> & {
4
+ staticComponents: MantineModalFactory['staticComponents'] & {
5
+ Footer: typeof PlasmaModalFooter;
6
+ };
7
+ };
8
+ export declare const Modal: import("@mantine/core").MantineComponent<PlasmaModalFactory>;
9
+ export type ModalFactory = PlasmaModalFactory;
10
+ export {};
11
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,IAAI,mBAAmB,EAEtC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,WAAW,IAAI,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAG/D,KAAK,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAAG;IACtE,gBAAgB,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,GAAG;QACxD,MAAM,EAAE,OAAO,iBAAiB,CAAC;KACpC,CAAC;CACL,CAAC;AAiBF,eAAO,MAAM,KAAK,8DAAc,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Modal", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Modal;
9
+ }
10
+ });
11
+ var _object_spread = require("@swc/helpers/_/_object_spread");
12
+ var _jsxruntime = require("react/jsx-runtime");
13
+ var _core = require("@mantine/core");
14
+ var _ModalFooter = require("./ModalFooter");
15
+ var PlasmaModal = (0, _core.factory)(function(props, ref) {
16
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Modal, _object_spread._({
17
+ ref: ref
18
+ }, props));
19
+ });
20
+ PlasmaModal.displayName = '@coveord/plasma-mantine/Modal';
21
+ PlasmaModal.Root = _core.Modal.Root;
22
+ PlasmaModal.Body = _core.Modal.Body;
23
+ PlasmaModal.Overlay = _core.Modal.Overlay;
24
+ PlasmaModal.Content = _core.Modal.Content;
25
+ PlasmaModal.Header = _core.Modal.Header;
26
+ PlasmaModal.Title = _core.Modal.Title;
27
+ PlasmaModal.CloseButton = _core.Modal.CloseButton;
28
+ PlasmaModal.Stack = _core.Modal.Stack;
29
+ PlasmaModal.Footer = _ModalFooter.ModalFooter;
30
+ var Modal = PlasmaModal;
31
+
32
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["import {\n factory,\n Modal as MantineModal,\n ModalFactory as MantineModalFactory,\n ModalProps as MantineModalProps,\n} from '@mantine/core';\nimport {ModalFooter as PlasmaModalFooter} from './ModalFooter';\n\n// Need to redeclare the factory to override and add footer to the props type\ntype PlasmaModalFactory = Omit<MantineModalFactory, 'staticComponents'> & {\n staticComponents: MantineModalFactory['staticComponents'] & {\n Footer: typeof PlasmaModalFooter;\n };\n};\n\nconst PlasmaModal = factory<PlasmaModalFactory>((props: MantineModalProps, ref) => (\n <MantineModal ref={ref} {...props} />\n));\n\nPlasmaModal.displayName = '@coveord/plasma-mantine/Modal';\nPlasmaModal.Root = MantineModal.Root;\nPlasmaModal.Body = MantineModal.Body;\nPlasmaModal.Overlay = MantineModal.Overlay;\nPlasmaModal.Content = MantineModal.Content;\nPlasmaModal.Header = MantineModal.Header;\nPlasmaModal.Title = MantineModal.Title;\nPlasmaModal.CloseButton = MantineModal.CloseButton;\nPlasmaModal.Stack = MantineModal.Stack;\nPlasmaModal.Footer = PlasmaModalFooter;\n\nexport const Modal = PlasmaModal;\n\nexport type ModalFactory = PlasmaModalFactory;\n"],"names":["Modal","PlasmaModal","factory","props","ref","MantineModal","displayName","Root","Body","Overlay","Content","Header","Title","CloseButton","Stack","Footer","PlasmaModalFooter"],"mappings":";;;;+BA8BaA;;;eAAAA;;;;;oBAzBN;2BACwC;AAS/C,IAAMC,cAAcC,IAAAA,aAAO,EAAqB,SAACC,OAA0BC;yBACvE,qBAACC,WAAY;QAACD,KAAKA;OAASD;;AAGhCF,YAAYK,WAAW,GAAG;AAC1BL,YAAYM,IAAI,GAAGF,WAAY,CAACE,IAAI;AACpCN,YAAYO,IAAI,GAAGH,WAAY,CAACG,IAAI;AACpCP,YAAYQ,OAAO,GAAGJ,WAAY,CAACI,OAAO;AAC1CR,YAAYS,OAAO,GAAGL,WAAY,CAACK,OAAO;AAC1CT,YAAYU,MAAM,GAAGN,WAAY,CAACM,MAAM;AACxCV,YAAYW,KAAK,GAAGP,WAAY,CAACO,KAAK;AACtCX,YAAYY,WAAW,GAAGR,WAAY,CAACQ,WAAW;AAClDZ,YAAYa,KAAK,GAAGT,WAAY,CAACS,KAAK;AACtCb,YAAYc,MAAM,GAAGC,wBAAiB;AAE/B,IAAMhB,QAAQC"}
@@ -0,0 +1,9 @@
1
+ .footer {
2
+ border-top: 1px solid var(--mantine-color-gray-3);
3
+ }
4
+
5
+ .modalFooterSticky {
6
+ padding-bottom: 0;
7
+ margin: var(--mb-padding) calc(-1 * var(--mb-padding)) calc(var(--mantine-spacing-md) - var(--mb-padding))
8
+ calc(-1 * var(--mb-padding));
9
+ }
@@ -0,0 +1,20 @@
1
+ import { Factory } from '@mantine/core';
2
+ import { StickyFooterProps, StickyFooterStylesNames } from '../sticky-footer';
3
+ export interface ModalFooterProps extends Omit<StickyFooterProps, 'variant'> {
4
+ /**
5
+ * If the footer is sticky, its margin will be adjusted to counteract the padding of the Modal.Body, ensuring the footer visually sticks to the bottom of the modal.
6
+ */
7
+ sticky?: boolean;
8
+ }
9
+ export type ModalFooterStylesNames = StickyFooterStylesNames;
10
+ export type ModalFooterFactory = Factory<{
11
+ props: ModalFooterProps;
12
+ ref: HTMLDivElement;
13
+ stylesNames: ModalFooterStylesNames;
14
+ }>;
15
+ export declare const ModalFooter: import("@mantine/core").MantineComponent<{
16
+ props: ModalFooterProps;
17
+ ref: HTMLDivElement;
18
+ stylesNames: ModalFooterStylesNames;
19
+ }>;
20
+ //# sourceMappingURL=ModalFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/ModalFooter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAU,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAe,iBAAiB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AAG1F,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACxE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,sBAAsB,CAAC;CACvC,CAAC,CAAC;AAOH,eAAO,MAAM,WAAW;WAVb,gBAAgB;SAClB,cAAc;iBACN,sBAAsB;EA4BrC,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "ModalFooter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ModalFooter;
9
+ }
10
+ });
11
+ var _define_property = require("@swc/helpers/_/_define_property");
12
+ var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
13
+ var _object_spread = require("@swc/helpers/_/_object_spread");
14
+ var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
15
+ var _jsxruntime = require("react/jsx-runtime");
16
+ var _react = require("react");
17
+ var _clsx = /*#__PURE__*/ _interop_require_default._(require("clsx"));
18
+ var _core = require("@mantine/core");
19
+ var _stickyfooter = require("../sticky-footer");
20
+ var _Modalmodulecss = /*#__PURE__*/ _interop_require_default._(require("./Modal.module.css"));
21
+ var ensuresFooterHasEvenHeight = function(footer) {
22
+ var remainder = footer.offsetHeight % 2;
23
+ footer.style.height = "".concat(footer.offsetHeight - remainder + 2, "px");
24
+ };
25
+ var ModalFooter = (0, _core.factory)(function(_param, ref) {
26
+ var sticky = _param.sticky, props = _object_without_properties._(_param, [
27
+ "sticky"
28
+ ]);
29
+ var _ref = (0, _react.useRef)();
30
+ var footerRef = ref || _ref;
31
+ (0, _react.useEffect)(function() {
32
+ if (typeof footerRef !== 'function' && footerRef.current) {
33
+ ensuresFooterHasEvenHeight(footerRef.current);
34
+ }
35
+ // if ref === 'function', this is a callback ref. Haven't found any solution for adjusting the height in this case
36
+ }, [
37
+ ref,
38
+ props.h
39
+ ]);
40
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_stickyfooter.StickyFooter, _object_spread._({
41
+ className: (0, _clsx.default)(_Modalmodulecss.default.footer, _define_property._({}, _Modalmodulecss.default.modalFooterSticky, !!sticky)),
42
+ ref: footerRef
43
+ }, props));
44
+ });
45
+
46
+ //# sourceMappingURL=ModalFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import {useRef, useEffect} from 'react';\nimport clsx from 'clsx';\nimport {Factory, factory} from '@mantine/core';\nimport {StickyFooter, StickyFooterProps, StickyFooterStylesNames} from '../sticky-footer';\nimport classes from './Modal.module.css';\n\nexport interface ModalFooterProps extends Omit<StickyFooterProps, 'variant'> {\n /**\n * If the footer is sticky, its margin will be adjusted to counteract the padding of the Modal.Body, ensuring the footer visually sticks to the bottom of the modal.\n */\n sticky?: boolean;\n}\n\nexport type ModalFooterStylesNames = StickyFooterStylesNames;\n\nexport type ModalFooterFactory = Factory<{\n props: ModalFooterProps;\n ref: HTMLDivElement;\n stylesNames: ModalFooterStylesNames;\n}>;\n\nconst ensuresFooterHasEvenHeight = (footer: HTMLElement) => {\n const remainder = footer.offsetHeight % 2;\n footer.style.height = `${footer.offsetHeight - remainder + 2}px`;\n};\n\nexport const ModalFooter = factory<ModalFooterFactory>(({sticky, ...props}, ref) => {\n const _ref = useRef<HTMLDivElement>();\n\n const footerRef = ref || _ref;\n\n useEffect(() => {\n if (typeof footerRef !== 'function' && footerRef.current) {\n ensuresFooterHasEvenHeight(footerRef.current);\n }\n\n // if ref === 'function', this is a callback ref. Haven't found any solution for adjusting the height in this case\n }, [ref, props.h]);\n\n return (\n <StickyFooter\n className={clsx(classes.footer, {[classes.modalFooterSticky]: !!sticky})}\n ref={footerRef}\n {...props}\n />\n );\n});\n"],"names":["ModalFooter","ensuresFooterHasEvenHeight","footer","remainder","offsetHeight","style","height","factory","ref","sticky","props","_ref","useRef","footerRef","useEffect","current","h","StickyFooter","className","clsx","classes","modalFooterSticky"],"mappings":";;;;+BA0BaA;;;eAAAA;;;;;;;;qBA1BmB;6DACf;oBACc;4BACwC;uEACnD;AAiBpB,IAAMC,6BAA6B,SAACC;IAChC,IAAMC,YAAYD,OAAOE,YAAY,GAAG;IACxCF,OAAOG,KAAK,CAACC,MAAM,GAAG,AAAC,GAAsC,OAApCJ,OAAOE,YAAY,GAAGD,YAAY,GAAE;AACjE;AAEO,IAAMH,cAAcO,IAAAA,aAAO,EAAqB,iBAAqBC;QAAnBC,gBAAAA,QAAWC;QAAXD;;IACrD,IAAME,OAAOC,IAAAA,aAAM;IAEnB,IAAMC,YAAYL,OAAOG;IAEzBG,IAAAA,gBAAS,EAAC;QACN,IAAI,OAAOD,cAAc,cAAcA,UAAUE,OAAO,EAAE;YACtDd,2BAA2BY,UAAUE,OAAO;QAChD;IAEA,kHAAkH;IACtH,GAAG;QAACP;QAAKE,MAAMM,CAAC;KAAC;IAEjB,qBACI,qBAACC,0BAAY;QACTC,WAAWC,IAAAA,aAAI,EAACC,uBAAO,CAAClB,MAAM,EAAG,uBAACkB,uBAAO,CAACC,iBAAiB,EAAG,CAAC,CAACZ;QAChED,KAAKK;OACDH;AAGhB"}
@@ -0,0 +1,3 @@
1
+ export * from './Modal';
2
+ export * from './ModalFooter';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,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("./Modal"), exports);
7
+ _export_star._(require("./ModalFooter"), exports);
8
+
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/modal/index.ts"],"sourcesContent":["export * from './Modal';\nexport * from './ModalFooter';\n"],"names":[],"mappings":";;;;;uBAAc;uBACA"}
@@ -1,8 +1,8 @@
1
1
  import { Factory, ModalRootProps, ModalStylesNames, StylesApiProps } from '@mantine/core';
2
2
  import { ReactNode } from 'react';
3
+ import { Modal } from '../modal';
3
4
  import { PromptCancelButton, PromptCancelButtonStylesNamesVariant } from './PromptCancelButton';
4
5
  import { PromptConfirmButton, PromptConfirmButtonStylesNamesVariant } from './PromptConfirmButton';
5
- import { PromptFooter } from './PromptFooter';
6
6
  export type PromptVariant = 'success' | 'warning' | 'critical' | 'info';
7
7
  export type PromptVars = {
8
8
  root: '--prompt-icon-size';
@@ -28,7 +28,7 @@ export type PromptFactory = Factory<{
28
28
  staticComponents: {
29
29
  CancelButton: typeof PromptCancelButton;
30
30
  ConfirmButton: typeof PromptConfirmButton;
31
- Footer: typeof PromptFooter;
31
+ Footer: typeof Modal.Footer;
32
32
  };
33
33
  }>;
34
34
  export declare const Prompt: import("@mantine/core").MantineComponent<{
@@ -40,7 +40,7 @@ export declare const Prompt: import("@mantine/core").MantineComponent<{
40
40
  staticComponents: {
41
41
  CancelButton: typeof PromptCancelButton;
42
42
  ConfirmButton: typeof PromptConfirmButton;
43
- Footer: typeof PromptFooter;
43
+ Footer: typeof Modal.Footer;
44
44
  };
45
45
  }>;
46
46
  //# sourceMappingURL=Prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../../../src/components/prompt/Prompt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EAGP,cAAc,EACd,gBAAgB,EAChB,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAyB,SAAS,EAAC,MAAM,OAAO,CAAC;AAOxD,OAAO,EAAC,kBAAkB,EAAE,oCAAoC,EAAC,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAC,mBAAmB,EAAE,qCAAqC,EAAC,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GACvB,gBAAgB,GAChB,MAAM,GACN,oCAAoC,GACpC,qCAAqC,CAAC;AAE5C,MAAM,WAAW,WACb,SAAQ,cAAc,CAAC,aAAa,CAAC,EACjC,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1D;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,gBAAgB,EAAE;QACd,YAAY,EAAE,OAAO,kBAAkB,CAAC;QACxC,aAAa,EAAE,OAAO,mBAAmB,CAAC;QAC1C,MAAM,EAAE,OAAO,YAAY,CAAC;KAC/B,CAAC;CACL,CAAC,CAAC;AAoBH,eAAO,MAAM,MAAM;WA9BR,WAAW;SACb,cAAc;UACb,UAAU;aACP,aAAa;iBACT,iBAAiB;sBACZ;QACd,YAAY,EAAE,OAAO,kBAAkB,CAAC;QACxC,aAAa,EAAE,OAAO,mBAAmB,CAAC;QAC1C,MAAM,EAAE,OAAO,YAAY,CAAC;KAC/B;EAsEH,CAAC"}
1
+ {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../../../src/components/prompt/Prompt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EAEP,cAAc,EACd,gBAAgB,EAChB,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAyB,SAAS,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAO/B,OAAO,EAAC,kBAAkB,EAAE,oCAAoC,EAAC,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAC,mBAAmB,EAAE,qCAAqC,EAAC,MAAM,uBAAuB,CAAC;AAEjG,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GACvB,gBAAgB,GAChB,MAAM,GACN,oCAAoC,GACpC,qCAAqC,CAAC;AAE5C,MAAM,WAAW,WACb,SAAQ,cAAc,CAAC,aAAa,CAAC,EACjC,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1D;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,gBAAgB,EAAE;QACd,YAAY,EAAE,OAAO,kBAAkB,CAAC;QACxC,aAAa,EAAE,OAAO,mBAAmB,CAAC;QAC1C,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC;KAC/B,CAAC;CACL,CAAC,CAAC;AAoBH,eAAO,MAAM,MAAM;WA9BR,WAAW;SACb,cAAc;UACb,UAAU;aACP,aAAa;iBACT,iBAAiB;sBACZ;QACd,YAAY,EAAE,OAAO,kBAAkB,CAAC;QACxC,aAAa,EAAE,OAAO,mBAAmB,CAAC;QAC1C,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC;KAC/B;EAwEH,CAAC"}
@@ -15,6 +15,7 @@ var _object_without_properties = require("@swc/helpers/_/_object_without_propert
15
15
  var _jsxruntime = require("react/jsx-runtime");
16
16
  var _core = require("@mantine/core");
17
17
  var _react = require("react");
18
+ var _modal = require("../modal");
18
19
  var _criticalsvg = /*#__PURE__*/ _interop_require_default._(require("./icons/critical.svg"));
19
20
  var _infosvg = /*#__PURE__*/ _interop_require_default._(require("./icons/info.svg"));
20
21
  var _successsvg = /*#__PURE__*/ _interop_require_default._(require("./icons/success.svg"));
@@ -23,7 +24,6 @@ var _Promptcontext = require("./Prompt.context");
23
24
  var _Promptmodulecss = /*#__PURE__*/ _interop_require_default._(require("./Prompt.module.css"));
24
25
  var _PromptCancelButton = require("./PromptCancelButton");
25
26
  var _PromptConfirmButton = require("./PromptConfirmButton");
26
- var _PromptFooter = require("./PromptFooter");
27
27
  var PROMPT_VARIANT_ICONS_SRC = {
28
28
  success: _successsvg.default,
29
29
  warning: _warningsvg.default,
@@ -72,28 +72,26 @@ var Prompt = (0, _core.factory)(function(_props, ref) {
72
72
  classNames: classNames,
73
73
  styles: styles
74
74
  };
75
- var convertedChildren = _react.Children.toArray(children);
76
- var otherChildren = convertedChildren.filter(function(child) {
77
- return child.type !== _PromptFooter.PromptFooter;
78
- });
79
- var footer = convertedChildren.find(function(child) {
80
- return child.type === _PromptFooter.PromptFooter;
75
+ var footers = [];
76
+ var otherChildren = [];
77
+ _react.Children.forEach(children, function(child) {
78
+ (child.type === _modal.Modal.Footer ? footers : otherChildren).push(child);
81
79
  });
82
80
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Promptcontext.PromptContextProvider, {
83
81
  value: {
84
82
  variant: variant,
85
83
  getStyles: getStyles
86
84
  },
87
- children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Modal.Root, _object_spread_props._(_object_spread._({
85
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_modal.Modal.Root, _object_spread_props._(_object_spread._({
88
86
  ref: ref,
89
87
  variant: "prompt",
90
88
  size: "sm"
91
89
  }, others, getStyles('root')), {
92
90
  children: [
93
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Modal.Overlay, _object_spread._({}, getStyles('overlay', stylesApiProps))),
94
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Modal.Content, _object_spread_props._(_object_spread._({}, getStyles('content', stylesApiProps)), {
91
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_modal.Modal.Overlay, _object_spread._({}, getStyles('overlay', stylesApiProps))),
92
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_modal.Modal.Content, _object_spread_props._(_object_spread._({}, getStyles('content', stylesApiProps)), {
95
93
  children: [
96
- /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Modal.Header, _object_spread_props._(_object_spread._({}, getStyles('header', stylesApiProps)), {
94
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_modal.Modal.Header, _object_spread_props._(_object_spread._({}, getStyles('header', stylesApiProps)), {
97
95
  children: [
98
96
  icon || icon === null ? icon : /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Image, _object_spread_props._(_object_spread._({
99
97
  alt: "",
@@ -101,18 +99,18 @@ var Prompt = (0, _core.factory)(function(_props, ref) {
101
99
  }, getStyles('icon', stylesApiProps)), {
102
100
  src: PROMPT_VARIANT_ICONS_SRC[variant]
103
101
  })),
104
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Modal.Title, _object_spread_props._(_object_spread._({}, getStyles('title', stylesApiProps)), {
102
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_modal.Modal.Title, _object_spread_props._(_object_spread._({}, getStyles('title', stylesApiProps)), {
105
103
  children: title
106
104
  })),
107
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Modal.CloseButton, _object_spread._({}, getStyles('close', stylesApiProps)))
105
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_modal.Modal.CloseButton, _object_spread._({}, getStyles('close', stylesApiProps)))
108
106
  ]
109
107
  })),
110
- /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Modal.Body, _object_spread_props._(_object_spread._({}, getStyles('body', stylesApiProps)), {
108
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_modal.Modal.Body, _object_spread_props._(_object_spread._({}, getStyles('body', stylesApiProps)), {
111
109
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Box, _object_spread_props._(_object_spread._({}, getStyles('inner', stylesApiProps)), {
112
110
  children: otherChildren
113
111
  }))
114
112
  })),
115
- footer
113
+ footers
116
114
  ]
117
115
  }))
118
116
  ]
@@ -121,6 +119,6 @@ var Prompt = (0, _core.factory)(function(_props, ref) {
121
119
  });
122
120
  Prompt.CancelButton = _PromptCancelButton.PromptCancelButton;
123
121
  Prompt.ConfirmButton = _PromptConfirmButton.PromptConfirmButton;
124
- Prompt.Footer = _PromptFooter.PromptFooter;
122
+ Prompt.Footer = _modal.Modal.Footer;
125
123
 
126
124
  //# sourceMappingURL=Prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/prompt/Prompt.tsx"],"sourcesContent":["import {\n Box,\n createVarsResolver,\n factory,\n Factory,\n Image,\n Modal,\n ModalRootProps,\n ModalStylesNames,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {Children, ReactElement, ReactNode} from 'react';\nimport Critical from './icons/critical.svg';\nimport Info from './icons/info.svg';\nimport Success from './icons/success.svg';\nimport Warning from './icons/warning.svg';\nimport {PromptContextProvider} from './Prompt.context';\nimport classes from './Prompt.module.css';\nimport {PromptCancelButton, PromptCancelButtonStylesNamesVariant} from './PromptCancelButton';\nimport {PromptConfirmButton, PromptConfirmButtonStylesNamesVariant} from './PromptConfirmButton';\nimport {PromptFooter} from './PromptFooter';\n\nexport type PromptVariant = 'success' | 'warning' | 'critical' | 'info';\nexport type PromptVars = {root: '--prompt-icon-size'};\nexport type PromptStylesNames =\n | ModalStylesNames\n | 'icon'\n | PromptCancelButtonStylesNamesVariant\n | PromptConfirmButtonStylesNamesVariant;\n\nexport interface PromptProps\n extends StylesApiProps<PromptFactory>,\n Omit<ModalRootProps, 'classNames' | 'styles' | 'vars'> {\n /**\n * Controls prompt appearance\n *\n * @default \"info\"\n */\n variant?: PromptVariant;\n children: ReactNode;\n title: ReactNode;\n icon?: ReactNode;\n}\n\nexport type PromptFactory = Factory<{\n props: PromptProps;\n ref: HTMLDivElement;\n vars: PromptVars;\n variant: PromptVariant;\n stylesNames: PromptStylesNames;\n staticComponents: {\n CancelButton: typeof PromptCancelButton;\n ConfirmButton: typeof PromptConfirmButton;\n Footer: typeof PromptFooter;\n };\n}>;\n\nconst PROMPT_VARIANT_ICONS_SRC: Record<PromptVariant, string> = {\n success: Success,\n warning: Warning,\n critical: Critical,\n info: Info,\n};\n\nconst defaultProps: Partial<PromptProps> = {\n variant: 'info',\n centered: true,\n};\n\nconst varsResolver = createVarsResolver<PromptFactory>((_theme, {icon}) => ({\n root: {\n '--prompt-icon-size': icon ? undefined : '88px',\n },\n}));\n\nexport const Prompt = factory<PromptFactory>((_props, ref) => {\n const props = useProps('Prompt', defaultProps, _props);\n const {variant, title, icon, children, className, classNames, style, styles, unstyled, vars, ...others} = props;\n const getStyles = useStyles<PromptFactory>({\n name: 'Prompt',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n const stylesApiProps = {classNames, styles};\n\n const convertedChildren = Children.toArray(children) as ReactElement[];\n\n const otherChildren = convertedChildren.filter((child) => child.type !== PromptFooter);\n const footer = convertedChildren.find((child) => child.type === PromptFooter);\n\n return (\n <PromptContextProvider value={{variant, getStyles}}>\n <Modal.Root ref={ref} variant=\"prompt\" size=\"sm\" {...others} {...getStyles('root')}>\n <Modal.Overlay {...getStyles('overlay', stylesApiProps)} />\n <Modal.Content {...getStyles('content', stylesApiProps)}>\n <Modal.Header {...getStyles('header', stylesApiProps)}>\n {icon || icon === null ? (\n icon\n ) : (\n <Image\n alt=\"\"\n role=\"presentation\"\n {...getStyles('icon', stylesApiProps)}\n src={PROMPT_VARIANT_ICONS_SRC[variant]}\n />\n )}\n <Modal.Title {...getStyles('title', stylesApiProps)}>{title}</Modal.Title>\n <Modal.CloseButton {...getStyles('close', stylesApiProps)} />\n </Modal.Header>\n <Modal.Body {...getStyles('body', stylesApiProps)}>\n <Box {...getStyles('inner', stylesApiProps)}>{otherChildren}</Box>\n </Modal.Body>\n {footer}\n </Modal.Content>\n </Modal.Root>\n </PromptContextProvider>\n );\n});\n\nPrompt.CancelButton = PromptCancelButton;\nPrompt.ConfirmButton = PromptConfirmButton;\nPrompt.Footer = PromptFooter;\n"],"names":["Prompt","PROMPT_VARIANT_ICONS_SRC","success","Success","warning","Warning","critical","Critical","info","Info","defaultProps","variant","centered","varsResolver","createVarsResolver","_theme","icon","root","undefined","factory","_props","ref","props","useProps","title","children","className","classNames","style","styles","unstyled","vars","others","getStyles","useStyles","name","classes","stylesApiProps","convertedChildren","Children","toArray","otherChildren","filter","child","type","PromptFooter","footer","find","PromptContextProvider","value","Modal","Root","size","Overlay","Content","Header","Image","alt","role","src","Title","CloseButton","Body","Box","CancelButton","PromptCancelButton","ConfirmButton","PromptConfirmButton","Footer"],"mappings":";;;;+BA6EaA;;;eAAAA;;;;;;;;oBAjEN;qBACyC;oEAC3B;gEACJ;mEACG;mEACA;6BACgB;wEAChB;kCACmD;mCACE;4BAC9C;AAqC3B,IAAMC,2BAA0D;IAC5DC,SAASC,mBAAO;IAChBC,SAASC,mBAAO;IAChBC,UAAUC,oBAAQ;IAClBC,MAAMC,gBAAI;AACd;AAEA,IAAMC,eAAqC;IACvCC,SAAS;IACTC,UAAU;AACd;AAEA,IAAMC,eAAeC,IAAAA,wBAAkB,EAAgB,SAACC;QAASC,aAAAA;WAAW;QACxEC,MAAM;YACF,sBAAsBD,OAAOE,YAAY;QAC7C;IACJ;;AAEO,IAAMlB,SAASmB,IAAAA,aAAO,EAAgB,SAACC,QAAQC;IAClD,IAAMC,QAAQC,IAAAA,cAAQ,EAAC,UAAUb,cAAcU;IAC/C,IAAOT,UAAmGW,MAAnGX,SAASa,QAA0FF,MAA1FE,OAAOR,OAAmFM,MAAnFN,MAAMS,WAA6EH,MAA7EG,UAAUC,YAAmEJ,MAAnEI,WAAWC,aAAwDL,MAAxDK,YAAYC,QAA4CN,MAA5CM,OAAOC,SAAqCP,MAArCO,QAAQC,WAA6BR,MAA7BQ,UAAUC,OAAmBT,MAAnBS,MAASC,sCAAUV;QAAnGX;QAASa;QAAOR;QAAMS;QAAUC;QAAWC;QAAYC;QAAOC;QAAQC;QAAUC;;IACvF,IAAME,YAAYC,IAAAA,eAAS,EAAgB;QACvCC,MAAM;QACNb,OAAAA;QACAc,SAAAA,wBAAO;QACPV,WAAAA;QACAE,OAAAA;QACAD,YAAAA;QACAE,QAAAA;QACAC,UAAAA;QACAC,MAAAA;QACAlB,cAAAA;IACJ;IACA,IAAMwB,iBAAiB;QAACV,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,IAAMS,oBAAoBC,eAAQ,CAACC,OAAO,CAACf;IAE3C,IAAMgB,gBAAgBH,kBAAkBI,MAAM,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKC,0BAAY;;IACrF,IAAMC,SAASR,kBAAkBS,IAAI,CAAC,SAACJ;eAAUA,MAAMC,IAAI,KAAKC,0BAAY;;IAE5E,qBACI,qBAACG,oCAAqB;QAACC,OAAO;YAACtC,SAAAA;YAASsB,WAAAA;QAAS;kBAC7C,cAAA,sBAACiB,WAAK,CAACC,IAAI;YAAC9B,KAAKA;YAAKV,SAAQ;YAASyC,MAAK;WAASpB,QAAYC,UAAU;;8BACvE,qBAACiB,WAAK,CAACG,OAAO,uBAAKpB,UAAU,WAAWI;8BACxC,sBAACa,WAAK,CAACI,OAAO,8CAAKrB,UAAU,WAAWI;;sCACpC,sBAACa,WAAK,CAACK,MAAM,8CAAKtB,UAAU,UAAUI;;gCACjCrB,QAAQA,SAAS,OACdA,qBAEA,qBAACwC,WAAK;oCACFC,KAAI;oCACJC,MAAK;mCACDzB,UAAU,QAAQI;oCACtBsB,KAAK1D,wBAAwB,CAACU,QAAQ;;8CAG9C,qBAACuC,WAAK,CAACU,KAAK,8CAAK3B,UAAU,SAASI;8CAAkBb;;8CACtD,qBAAC0B,WAAK,CAACW,WAAW,uBAAK5B,UAAU,SAASI;;;sCAE9C,qBAACa,WAAK,CAACY,IAAI,8CAAK7B,UAAU,QAAQI;sCAC9B,cAAA,qBAAC0B,SAAG,8CAAK9B,UAAU,SAASI;0CAAkBI;;;wBAEjDK;;;;;;AAKrB;AAEA9C,OAAOgE,YAAY,GAAGC,sCAAkB;AACxCjE,OAAOkE,aAAa,GAAGC,wCAAmB;AAC1CnE,OAAOoE,MAAM,GAAGvB,0BAAY"}
1
+ {"version":3,"sources":["../../../../src/components/prompt/Prompt.tsx"],"sourcesContent":["import {\n Box,\n createVarsResolver,\n factory,\n Factory,\n Image,\n ModalRootProps,\n ModalStylesNames,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {Children, ReactElement, ReactNode} from 'react';\nimport {Modal} from '../modal';\nimport Critical from './icons/critical.svg';\nimport Info from './icons/info.svg';\nimport Success from './icons/success.svg';\nimport Warning from './icons/warning.svg';\nimport {PromptContextProvider} from './Prompt.context';\nimport classes from './Prompt.module.css';\nimport {PromptCancelButton, PromptCancelButtonStylesNamesVariant} from './PromptCancelButton';\nimport {PromptConfirmButton, PromptConfirmButtonStylesNamesVariant} from './PromptConfirmButton';\n\nexport type PromptVariant = 'success' | 'warning' | 'critical' | 'info';\nexport type PromptVars = {root: '--prompt-icon-size'};\nexport type PromptStylesNames =\n | ModalStylesNames\n | 'icon'\n | PromptCancelButtonStylesNamesVariant\n | PromptConfirmButtonStylesNamesVariant;\n\nexport interface PromptProps\n extends StylesApiProps<PromptFactory>,\n Omit<ModalRootProps, 'classNames' | 'styles' | 'vars'> {\n /**\n * Controls prompt appearance\n *\n * @default \"info\"\n */\n variant?: PromptVariant;\n children: ReactNode;\n title: ReactNode;\n icon?: ReactNode;\n}\n\nexport type PromptFactory = Factory<{\n props: PromptProps;\n ref: HTMLDivElement;\n vars: PromptVars;\n variant: PromptVariant;\n stylesNames: PromptStylesNames;\n staticComponents: {\n CancelButton: typeof PromptCancelButton;\n ConfirmButton: typeof PromptConfirmButton;\n Footer: typeof Modal.Footer;\n };\n}>;\n\nconst PROMPT_VARIANT_ICONS_SRC: Record<PromptVariant, string> = {\n success: Success,\n warning: Warning,\n critical: Critical,\n info: Info,\n};\n\nconst defaultProps: Partial<PromptProps> = {\n variant: 'info',\n centered: true,\n};\n\nconst varsResolver = createVarsResolver<PromptFactory>((_theme, {icon}) => ({\n root: {\n '--prompt-icon-size': icon ? undefined : '88px',\n },\n}));\n\nexport const Prompt = factory<PromptFactory>((_props, ref) => {\n const props = useProps('Prompt', defaultProps, _props);\n const {variant, title, icon, children, className, classNames, style, styles, unstyled, vars, ...others} = props;\n const getStyles = useStyles<PromptFactory>({\n name: 'Prompt',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n const stylesApiProps = {classNames, styles};\n\n const footers: ReactElement[] = [];\n const otherChildren: ReactElement[] = [];\n\n Children.forEach(children, (child: ReactElement) => {\n (child.type === Modal.Footer ? footers : otherChildren).push(child);\n });\n\n return (\n <PromptContextProvider value={{variant, getStyles}}>\n <Modal.Root ref={ref} variant=\"prompt\" size=\"sm\" {...others} {...getStyles('root')}>\n <Modal.Overlay {...getStyles('overlay', stylesApiProps)} />\n <Modal.Content {...getStyles('content', stylesApiProps)}>\n <Modal.Header {...getStyles('header', stylesApiProps)}>\n {icon || icon === null ? (\n icon\n ) : (\n <Image\n alt=\"\"\n role=\"presentation\"\n {...getStyles('icon', stylesApiProps)}\n src={PROMPT_VARIANT_ICONS_SRC[variant]}\n />\n )}\n <Modal.Title {...getStyles('title', stylesApiProps)}>{title}</Modal.Title>\n <Modal.CloseButton {...getStyles('close', stylesApiProps)} />\n </Modal.Header>\n <Modal.Body {...getStyles('body', stylesApiProps)}>\n <Box {...getStyles('inner', stylesApiProps)}>{otherChildren}</Box>\n </Modal.Body>\n {footers}\n </Modal.Content>\n </Modal.Root>\n </PromptContextProvider>\n );\n});\n\nPrompt.CancelButton = PromptCancelButton;\nPrompt.ConfirmButton = PromptConfirmButton;\nPrompt.Footer = Modal.Footer;\n"],"names":["Prompt","PROMPT_VARIANT_ICONS_SRC","success","Success","warning","Warning","critical","Critical","info","Info","defaultProps","variant","centered","varsResolver","createVarsResolver","_theme","icon","root","undefined","factory","_props","ref","props","useProps","title","children","className","classNames","style","styles","unstyled","vars","others","getStyles","useStyles","name","classes","stylesApiProps","footers","otherChildren","Children","forEach","child","type","Modal","Footer","push","PromptContextProvider","value","Root","size","Overlay","Content","Header","Image","alt","role","src","Title","CloseButton","Body","Box","CancelButton","PromptCancelButton","ConfirmButton","PromptConfirmButton"],"mappings":";;;;+BA4EaA;;;eAAAA;;;;;;;;oBAjEN;qBACyC;qBAC5B;oEACC;gEACJ;mEACG;mEACA;6BACgB;wEAChB;kCACmD;mCACE;AAqCzE,IAAMC,2BAA0D;IAC5DC,SAASC,mBAAO;IAChBC,SAASC,mBAAO;IAChBC,UAAUC,oBAAQ;IAClBC,MAAMC,gBAAI;AACd;AAEA,IAAMC,eAAqC;IACvCC,SAAS;IACTC,UAAU;AACd;AAEA,IAAMC,eAAeC,IAAAA,wBAAkB,EAAgB,SAACC;QAASC,aAAAA;WAAW;QACxEC,MAAM;YACF,sBAAsBD,OAAOE,YAAY;QAC7C;IACJ;;AAEO,IAAMlB,SAASmB,IAAAA,aAAO,EAAgB,SAACC,QAAQC;IAClD,IAAMC,QAAQC,IAAAA,cAAQ,EAAC,UAAUb,cAAcU;IAC/C,IAAOT,UAAmGW,MAAnGX,SAASa,QAA0FF,MAA1FE,OAAOR,OAAmFM,MAAnFN,MAAMS,WAA6EH,MAA7EG,UAAUC,YAAmEJ,MAAnEI,WAAWC,aAAwDL,MAAxDK,YAAYC,QAA4CN,MAA5CM,OAAOC,SAAqCP,MAArCO,QAAQC,WAA6BR,MAA7BQ,UAAUC,OAAmBT,MAAnBS,MAASC,sCAAUV;QAAnGX;QAASa;QAAOR;QAAMS;QAAUC;QAAWC;QAAYC;QAAOC;QAAQC;QAAUC;;IACvF,IAAME,YAAYC,IAAAA,eAAS,EAAgB;QACvCC,MAAM;QACNb,OAAAA;QACAc,SAAAA,wBAAO;QACPV,WAAAA;QACAE,OAAAA;QACAD,YAAAA;QACAE,QAAAA;QACAC,UAAAA;QACAC,MAAAA;QACAlB,cAAAA;IACJ;IACA,IAAMwB,iBAAiB;QAACV,YAAAA;QAAYE,QAAAA;IAAM;IAE1C,IAAMS,UAA0B,EAAE;IAClC,IAAMC,gBAAgC,EAAE;IAExCC,eAAQ,CAACC,OAAO,CAAChB,UAAU,SAACiB;QACvBA,CAAAA,MAAMC,IAAI,KAAKC,YAAK,CAACC,MAAM,GAAGP,UAAUC,aAAY,EAAGO,IAAI,CAACJ;IACjE;IAEA,qBACI,qBAACK,oCAAqB;QAACC,OAAO;YAACrC,SAAAA;YAASsB,WAAAA;QAAS;kBAC7C,cAAA,sBAACW,YAAK,CAACK,IAAI;YAAC5B,KAAKA;YAAKV,SAAQ;YAASuC,MAAK;WAASlB,QAAYC,UAAU;;8BACvE,qBAACW,YAAK,CAACO,OAAO,uBAAKlB,UAAU,WAAWI;8BACxC,sBAACO,YAAK,CAACQ,OAAO,8CAAKnB,UAAU,WAAWI;;sCACpC,sBAACO,YAAK,CAACS,MAAM,8CAAKpB,UAAU,UAAUI;;gCACjCrB,QAAQA,SAAS,OACdA,qBAEA,qBAACsC,WAAK;oCACFC,KAAI;oCACJC,MAAK;mCACDvB,UAAU,QAAQI;oCACtBoB,KAAKxD,wBAAwB,CAACU,QAAQ;;8CAG9C,qBAACiC,YAAK,CAACc,KAAK,8CAAKzB,UAAU,SAASI;8CAAkBb;;8CACtD,qBAACoB,YAAK,CAACe,WAAW,uBAAK1B,UAAU,SAASI;;;sCAE9C,qBAACO,YAAK,CAACgB,IAAI,8CAAK3B,UAAU,QAAQI;sCAC9B,cAAA,qBAACwB,SAAG,8CAAK5B,UAAU,SAASI;0CAAkBE;;;wBAEjDD;;;;;;AAKrB;AAEAtC,OAAO8D,YAAY,GAAGC,sCAAkB;AACxC/D,OAAOgE,aAAa,GAAGC,wCAAmB;AAC1CjE,OAAO6C,MAAM,GAAGD,YAAK,CAACC,MAAM"}
@@ -14,6 +14,8 @@ export interface StickyFooterProps extends Omit<GroupProps, 'classNames' | 'styl
14
14
  *
15
15
  * The 'modal-footer' removes the modal's default padding so that the footer properly hugs the bottom of the modal.
16
16
  * It also adds a border on top of the footer.
17
+ *
18
+ * @deprecated Use Modal.Footer from @coveord/plasma-mantine/Modal for modal footers. For other cases, the 'default' variant should suffice.
17
19
  */
18
20
  variant?: 'default' | 'modal-footer';
19
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StickyFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/sticky-footer/StickyFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAS,UAAU,EAAE,cAAc,EAA+B,MAAM,eAAe,CAAC;AAEvG,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGhC,MAAM,WAAW,iBACb,SAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,EAClE,cAAc,CAAC,mBAAmB,CAAC;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;CACxC;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACtC,KAAK,EAAE,iBAAiB,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,uBAAuB,CAAC;CACxC,CAAC,CAAC;AAOH,eAAO,MAAM,YAAY;WAVd,iBAAiB;SACnB,cAAc;iBACN,uBAAuB;EAoCtC,CAAC"}
1
+ {"version":3,"file":"StickyFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/sticky-footer/StickyFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAS,UAAU,EAAE,cAAc,EAA+B,MAAM,eAAe,CAAC;AAEvG,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGhC,MAAM,WAAW,iBACb,SAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,EAClE,cAAc,CAAC,mBAAmB,CAAC;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;CACxC;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACtC,KAAK,EAAE,iBAAiB,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,uBAAuB,CAAC;CACxC,CAAC,CAAC;AAOH,eAAO,MAAM,YAAY;WAVd,iBAAiB;SACnB,cAAc;iBACN,uBAAuB;EAoCtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/sticky-footer/StickyFooter.tsx"],"sourcesContent":["import {Factory, Group, GroupProps, StylesApiProps, factory, useProps, useStyles} from '@mantine/core';\nimport clsx from 'clsx';\nimport {ReactNode} from 'react';\nimport classes from './StickyFooter.module.css';\n\nexport interface StickyFooterProps\n extends Omit<GroupProps, 'classNames' | 'styles' | 'vars' | 'variant'>,\n StylesApiProps<StickyFooterFactory> {\n /**\n * Whether a border is render on top of the footer\n */\n borderTop?: boolean;\n /**\n * Footer's children, usually buttons\n */\n children?: ReactNode;\n /**\n * Use variant 'modal-footer' when rendering the `StickyFooter` inside `Modal`.\n *\n * The 'modal-footer' removes the modal's default padding so that the footer properly hugs the bottom of the modal.\n * It also adds a border on top of the footer.\n */\n variant?: 'default' | 'modal-footer';\n}\n\nexport type StickyFooterStylesNames = 'root';\n\nexport type StickyFooterFactory = Factory<{\n props: StickyFooterProps;\n ref: HTMLDivElement;\n stylesNames: StickyFooterStylesNames;\n}>;\n\nconst defaultProps: Partial<StickyFooterProps> = {\n gap: 'sm',\n justify: 'flex-end',\n};\n\nexport const StickyFooter = factory<StickyFooterFactory>((props, ref) => {\n const {borderTop, justify, gap, children, className, classNames, style, styles, unstyled, vars, ...others} =\n useProps('StickyFooter', defaultProps, props);\n const getStyles = useStyles<StickyFooterFactory>({\n name: 'StickyFooter',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const css = getStyles('root');\n\n return (\n <Group\n justify={justify}\n gap={gap}\n className={clsx(css.className, {[classes.border]: !!borderTop})}\n style={css.style}\n ref={ref}\n {...others}\n >\n {children}\n </Group>\n );\n});\n"],"names":["StickyFooter","defaultProps","gap","justify","factory","props","ref","useProps","borderTop","children","className","classNames","style","styles","unstyled","vars","others","getStyles","useStyles","name","classes","css","Group","clsx","border"],"mappings":";;;;+BAsCaA;;;eAAAA;;;;;;;;;oBAtC0E;6DACtE;8EAEG;AA8BpB,IAAMC,eAA2C;IAC7CC,KAAK;IACLC,SAAS;AACb;AAEO,IAAMH,eAAeI,IAAAA,aAAO,EAAsB,SAACC,OAAOC;IAC7D,IACIC,YAAAA,IAAAA,cAAQ,EAAC,gBAAgBN,cAAcI,QADpCG,YACHD,UADGC,WAAWL,UACdI,UADcJ,SAASD,MACvBK,UADuBL,KAAKO,WAC5BF,UAD4BE,UAAUC,YACtCH,UADsCG,WAAWC,aACjDJ,UADiDI,YAAYC,QAC7DL,UAD6DK,OAAOC,SACpEN,UADoEM,QAAQC,WAC5EP,UAD4EO,UAAUC,OACtFR,UADsFQ,MAASC,sCAC/FT;QADGC;QAAWL;QAASD;QAAKO;QAAUC;QAAWC;QAAYC;QAAOC;QAAQC;QAAUC;;IAE1F,IAAME,YAAYC,IAAAA,eAAS,EAAsB;QAC7CC,MAAM;QACNC,SAAAA,8BAAO;QACPf,OAAAA;QACAK,WAAAA;QACAE,OAAAA;QACAD,YAAAA;QACAE,QAAAA;QACAC,UAAAA;IACJ;IAEA,IAAMO,MAAMJ,UAAU;IAEtB,qBACI,qBAACK,WAAK;QACFnB,SAASA;QACTD,KAAKA;QACLQ,WAAWa,IAAAA,aAAI,EAACF,IAAIX,SAAS,EAAG,uBAACU,8BAAO,CAACI,MAAM,EAAG,CAAC,CAAChB;QACpDI,OAAOS,IAAIT,KAAK;QAChBN,KAAKA;OACDU;kBAEHP;;AAGb"}
1
+ {"version":3,"sources":["../../../../src/components/sticky-footer/StickyFooter.tsx"],"sourcesContent":["import {Factory, Group, GroupProps, StylesApiProps, factory, useProps, useStyles} from '@mantine/core';\nimport clsx from 'clsx';\nimport {ReactNode} from 'react';\nimport classes from './StickyFooter.module.css';\n\nexport interface StickyFooterProps\n extends Omit<GroupProps, 'classNames' | 'styles' | 'vars' | 'variant'>,\n StylesApiProps<StickyFooterFactory> {\n /**\n * Whether a border is render on top of the footer\n */\n borderTop?: boolean;\n /**\n * Footer's children, usually buttons\n */\n children?: ReactNode;\n /**\n * Use variant 'modal-footer' when rendering the `StickyFooter` inside `Modal`.\n *\n * The 'modal-footer' removes the modal's default padding so that the footer properly hugs the bottom of the modal.\n * It also adds a border on top of the footer.\n *\n * @deprecated Use Modal.Footer from @coveord/plasma-mantine/Modal for modal footers. For other cases, the 'default' variant should suffice.\n */\n variant?: 'default' | 'modal-footer';\n}\n\nexport type StickyFooterStylesNames = 'root';\n\nexport type StickyFooterFactory = Factory<{\n props: StickyFooterProps;\n ref: HTMLDivElement;\n stylesNames: StickyFooterStylesNames;\n}>;\n\nconst defaultProps: Partial<StickyFooterProps> = {\n gap: 'sm',\n justify: 'flex-end',\n};\n\nexport const StickyFooter = factory<StickyFooterFactory>((props, ref) => {\n const {borderTop, justify, gap, children, className, classNames, style, styles, unstyled, vars, ...others} =\n useProps('StickyFooter', defaultProps, props);\n const getStyles = useStyles<StickyFooterFactory>({\n name: 'StickyFooter',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const css = getStyles('root');\n\n return (\n <Group\n justify={justify}\n gap={gap}\n className={clsx(css.className, {[classes.border]: !!borderTop})}\n style={css.style}\n ref={ref}\n {...others}\n >\n {children}\n </Group>\n );\n});\n"],"names":["StickyFooter","defaultProps","gap","justify","factory","props","ref","useProps","borderTop","children","className","classNames","style","styles","unstyled","vars","others","getStyles","useStyles","name","classes","css","Group","clsx","border"],"mappings":";;;;+BAwCaA;;;eAAAA;;;;;;;;;oBAxC0E;6DACtE;8EAEG;AAgCpB,IAAMC,eAA2C;IAC7CC,KAAK;IACLC,SAAS;AACb;AAEO,IAAMH,eAAeI,IAAAA,aAAO,EAAsB,SAACC,OAAOC;IAC7D,IACIC,YAAAA,IAAAA,cAAQ,EAAC,gBAAgBN,cAAcI,QADpCG,YACHD,UADGC,WAAWL,UACdI,UADcJ,SAASD,MACvBK,UADuBL,KAAKO,WAC5BF,UAD4BE,UAAUC,YACtCH,UADsCG,WAAWC,aACjDJ,UADiDI,YAAYC,QAC7DL,UAD6DK,OAAOC,SACpEN,UADoEM,QAAQC,WAC5EP,UAD4EO,UAAUC,OACtFR,UADsFQ,MAASC,sCAC/FT;QADGC;QAAWL;QAASD;QAAKO;QAAUC;QAAWC;QAAYC;QAAOC;QAAQC;QAAUC;;IAE1F,IAAME,YAAYC,IAAAA,eAAS,EAAsB;QAC7CC,MAAM;QACNC,SAAAA,8BAAO;QACPf,OAAAA;QACAK,WAAAA;QACAE,OAAAA;QACAD,YAAAA;QACAE,QAAAA;QACAC,UAAAA;IACJ;IAEA,IAAMO,MAAMJ,UAAU;IAEtB,qBACI,qBAACK,WAAK;QACFnB,SAASA;QACTD,KAAKA;QACLQ,WAAWa,IAAAA,aAAI,EAACF,IAAIX,SAAS,EAAG,uBAACU,8BAAO,CAACI,MAAM,EAAG,CAAC,CAAChB;QACpDI,OAAOS,IAAIT,KAAK;QAChBN,KAAKA;OACDU;kBAEHP;;AAGb"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-url-synced-state.d.ts","sourceRoot":"","sources":["../../../../src/components/table/use-url-synced-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAoB,MAAM,OAAO,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAyC7E,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACvC;;;;OAIG;IACH,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B;;;;;;;;;OASG;IACH,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1D;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9D;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAKD,eAAO,MAAM,iBAAiB,GAAI,CAAC,WAAW,wBAAwB,CAAC,CAAC,CAAC,8CA+CxE,CAAC"}
1
+ {"version":3,"file":"use-url-synced-state.d.ts","sourceRoot":"","sources":["../../../../src/components/table/use-url-synced-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAoB,MAAM,OAAO,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAuD7E,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACvC;;;;OAIG;IACH,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B;;;;;;;;;OASG;IACH,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1D;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9D;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAKD,eAAO,MAAM,iBAAiB,GAAI,CAAC,WAAW,wBAAwB,CAAC,CAAC,CAAC,8CAmDxE,CAAC"}