@solace-health/ui 0.10.538 → 0.10.540

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.
@@ -12,7 +12,17 @@
12
12
  color: var(--color-gray-700);
13
13
  }
14
14
 
15
+ .mdxeditor-toolbar button[role='combobox'] {
16
+ width: 100px;
17
+ border: solid 1px var(--color-gray-200);
18
+ }
19
+
20
+ .mdxeditor-toolbar button[role='combobox'] span:first-child {
21
+ color: var(--color-gray-600);
22
+ }
23
+
15
24
  .mdxeditor-popup-container {
25
+ position: absolute;
16
26
  pointer-events: auto;
17
27
  border-width: 0;
18
28
  box-shadow: none;
@@ -32,6 +42,7 @@
32
42
  border: 0;
33
43
  font-weight: 700;
34
44
  cursor: pointer;
45
+ padding: var(--spacing-1) var(--spacing-3);
35
46
  }
36
47
 
37
48
  .mdxeditor-popup-container button[type='submit'] {
@@ -64,38 +75,10 @@
64
75
  h5,
65
76
  h6 {
66
77
  font-weight: 700;
67
- margin-bottom: 0.5rem;
68
- margin-top: 0.5rem;
69
- }
70
-
71
- h1 {
72
- font-size: 1.5rem;
73
- line-height: 2.5rem;
74
- }
75
-
76
- h2 {
77
- font-size: 1.25rem;
78
- line-height: 2rem;
79
- }
80
-
81
- h3 {
78
+ margin-bottom: 0.75rem;
79
+ margin-top: 0.75rem;
82
80
  font-size: 1.125rem;
83
- line-height: 1.75rem;
84
- }
85
-
86
- h4 {
87
- font-size: 1rem;
88
- line-height: 1.5rem;
89
- }
90
-
91
- h5 {
92
- font-size: 1rem;
93
- line-height: 1.5rem;
94
- }
95
-
96
- h6 {
97
- font-size: 1rem;
98
- line-height: 1.5rem;
81
+ line-height: 1.25rem;
99
82
  }
100
83
 
101
84
  ul,
@@ -160,6 +143,10 @@
160
143
  }
161
144
  }
162
145
 
163
- .preview div[role='textbox'] {
146
+ .mdxeditor.preview div[role='textbox'] {
164
147
  padding: 0;
165
148
  }
149
+
150
+ .mdxeditor.no-toolbar .mdxeditor-root-contenteditable {
151
+ height: 100%;
152
+ }
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkQRO22BPZ_cjs=require('./chunk-QRO22BPZ.cjs'),editor=require('@mdxeditor/editor'),U=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var U__default=/*#__PURE__*/_interopDefault(U);var f={undoRedo:false,blockType:true,boldItalicUnderline:true,strikeThrough:true,lists:true,link:true,table:false,horizontalRule:true,toolbar:true},N=U__default.default.forwardRef(({className:i="",preview:m=false,options:R=f,markdown:a="",...n},s)=>{let o={...f,...R};if(m)return jsxRuntime.jsx(editor.MDXEditor,{markdown:a,plugins:[editor.headingsPlugin(),editor.listsPlugin(),editor.quotePlugin(),editor.thematicBreakPlugin(),editor.linkPlugin(),editor.linkDialogPlugin(),editor.tablePlugin()],className:chunkQRO22BPZ_cjs.a("preview overflow-y-auto",i),...n,readOnly:true,ref:s},"preview");let t=[];o.toolbar&&o.undoRedo&&t.push(jsxRuntime.jsx(editor.UndoRedo,{},"undoRedo")),o.toolbar&&o.blockType&&t.push(jsxRuntime.jsx(editor.BlockTypeSelect,{},"blockType")),o.toolbar&&o.boldItalicUnderline&&t.push(jsxRuntime.jsx(editor.BoldItalicUnderlineToggles,{},"boldItalicUnderline")),o.toolbar&&o.strikeThrough&&t.push(jsxRuntime.jsx(editor.StrikeThroughSupSubToggles,{options:["Strikethrough"]},"strikeThrough")),o.toolbar&&o.lists&&t.push(jsxRuntime.jsx(editor.ListsToggle,{},"lists")),o.toolbar&&o.link&&t.push(jsxRuntime.jsx(editor.CreateLink,{},"link")),o.toolbar&&o.table&&t.push(jsxRuntime.jsx(editor.InsertTable,{},"table")),o.toolbar&&o.horizontalRule&&t.push(jsxRuntime.jsx(editor.InsertThematicBreak,{},"horizontalRule"));let r=[];return t.forEach((T,d)=>{r.push(T),d<t.length-1&&r.push(jsxRuntime.jsx(editor.Separator,{},`separator-${d}`));}),jsxRuntime.jsx(editor.MDXEditor,{markdown:a,plugins:[editor.headingsPlugin({allowedHeadingLevels:[1]}),editor.listsPlugin(),editor.quotePlugin(),editor.thematicBreakPlugin(),editor.linkPlugin(),editor.linkDialogPlugin(),editor.tablePlugin(),editor.markdownShortcutPlugin(),...o.toolbar?[editor.toolbarPlugin({toolbarContents:()=>r})]:[]],className:chunkQRO22BPZ_cjs.a("overflow-y-auto rounded-md border border-gray-300 shadow-xs transition-all hover:border-green-800",!o.toolbar&&"no-toolbar",i),...n,ref:s},`editor-${o.toolbar}`)});N.displayName="RichTextEditor";exports.a=f;exports.b=N;//# sourceMappingURL=chunk-E4FXHWN3.cjs.map
2
+ //# sourceMappingURL=chunk-E4FXHWN3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/v2/rich-text-editor/rich-text-editor.tsx"],"names":["defaultOptions","RichTextEditor","React","className","preview","options","markdown","props","editorRef","finalOptions","jsx","MDXEditor","headingsPlugin","listsPlugin","quotePlugin","thematicBreakPlugin","linkPlugin","linkDialogPlugin","tablePlugin","cn","toolbarItems","UndoRedo","BlockTypeSelect","BoldItalicUnderlineToggles","StrikeThroughSupSubToggles","ListsToggle","CreateLink","InsertTable","InsertThematicBreak","toolbarItemsWithSeparators","item","index","Separator","markdownShortcutPlugin","toolbarPlugin"],"mappings":"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","file":"chunk-E4FXHWN3.cjs","sourcesContent":["/* eslint-disable react/no-array-index-key */\n/* eslint-disable react/require-default-props */\n/* eslint-disable react/no-unstable-nested-components */\nimport type { ForwardedRef, ReactNode } from 'react';\nimport {\n headingsPlugin,\n listsPlugin,\n quotePlugin,\n thematicBreakPlugin,\n MDXEditor,\n type MDXEditorMethods,\n type MDXEditorProps,\n toolbarPlugin,\n linkDialogPlugin,\n linkPlugin,\n tablePlugin,\n markdownShortcutPlugin,\n BlockTypeSelect,\n BoldItalicUnderlineToggles,\n CreateLink,\n InsertTable,\n InsertThematicBreak,\n ListsToggle,\n StrikeThroughSupSubToggles,\n UndoRedo,\n Separator,\n} from '@mdxeditor/editor';\nimport React from 'react';\nimport { cn } from '@/lib/utils';\n\ntype EditorOptions = {\n undoRedo?: boolean;\n blockType?: boolean;\n boldItalicUnderline?: boolean;\n strikeThrough?: boolean;\n lists?: boolean;\n link?: boolean;\n table?: boolean;\n horizontalRule?: boolean;\n toolbar?: boolean;\n};\n\ntype RichTextEditorProps = {\n preview?: boolean;\n options?: EditorOptions;\n markdown?: string;\n} & Omit<MDXEditorProps, 'markdown'>;\n\nexport const defaultOptions: EditorOptions = {\n undoRedo: false,\n blockType: true,\n boldItalicUnderline: true,\n strikeThrough: true,\n lists: true,\n link: true,\n table: false,\n horizontalRule: true,\n toolbar: true,\n};\n\nexport const RichTextEditor = React.forwardRef(\n (\n {\n className = '',\n preview = false,\n options = defaultOptions,\n markdown = '',\n ...props\n }: RichTextEditorProps,\n editorRef?: ForwardedRef<MDXEditorMethods> | null,\n ) => {\n const finalOptions = { ...defaultOptions, ...options };\n if (preview) {\n return (\n <MDXEditor\n key=\"preview\"\n markdown={markdown}\n plugins={[\n headingsPlugin(),\n listsPlugin(),\n quotePlugin(),\n thematicBreakPlugin(),\n linkPlugin(),\n linkDialogPlugin(),\n tablePlugin(),\n ]}\n className={cn('preview overflow-y-auto', className)}\n {...props}\n readOnly\n ref={editorRef}\n />\n );\n }\n\n const toolbarItems: ReactNode[] = [];\n\n if (finalOptions.toolbar && finalOptions.undoRedo) {\n toolbarItems.push(<UndoRedo key=\"undoRedo\" />);\n }\n if (finalOptions.toolbar && finalOptions.blockType) {\n toolbarItems.push(<BlockTypeSelect key=\"blockType\" />);\n }\n if (finalOptions.toolbar && finalOptions.boldItalicUnderline) {\n toolbarItems.push(<BoldItalicUnderlineToggles key=\"boldItalicUnderline\" />);\n }\n if (finalOptions.toolbar && finalOptions.strikeThrough) {\n toolbarItems.push(\n <StrikeThroughSupSubToggles key=\"strikeThrough\" options={['Strikethrough']} />,\n );\n }\n if (finalOptions.toolbar && finalOptions.lists) {\n toolbarItems.push(<ListsToggle key=\"lists\" />);\n }\n if (finalOptions.toolbar && finalOptions.link) {\n toolbarItems.push(<CreateLink key=\"link\" />);\n }\n if (finalOptions.toolbar && finalOptions.table) {\n toolbarItems.push(<InsertTable key=\"table\" />);\n }\n if (finalOptions.toolbar && finalOptions.horizontalRule) {\n toolbarItems.push(<InsertThematicBreak key=\"horizontalRule\" />);\n }\n\n const toolbarItemsWithSeparators: ReactNode[] = [];\n toolbarItems.forEach((item, index) => {\n toolbarItemsWithSeparators.push(item);\n if (index < toolbarItems.length - 1) {\n toolbarItemsWithSeparators.push(<Separator key={`separator-${index}`} />);\n }\n });\n\n return (\n <MDXEditor\n key={`editor-${finalOptions.toolbar}`}\n markdown={markdown}\n plugins={[\n headingsPlugin({ allowedHeadingLevels: [1] }),\n listsPlugin(),\n quotePlugin(),\n thematicBreakPlugin(),\n linkPlugin(),\n linkDialogPlugin(),\n tablePlugin(),\n markdownShortcutPlugin(),\n ...(finalOptions.toolbar\n ? [\n toolbarPlugin({\n toolbarContents: () => toolbarItemsWithSeparators,\n }),\n ]\n : []),\n ]}\n className={cn(\n 'overflow-y-auto rounded-md border border-gray-300 shadow-xs transition-all hover:border-green-800',\n !finalOptions.toolbar && 'no-toolbar',\n className,\n )}\n {...props}\n ref={editorRef}\n />\n );\n },\n);\n\nRichTextEditor.displayName = 'RichTextEditor';\n\nexport { type MDXEditorMethods, type MDXEditorProps };\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-YTIIAU4W.js';import {MDXEditor,headingsPlugin,listsPlugin,quotePlugin,thematicBreakPlugin,linkPlugin,linkDialogPlugin,tablePlugin,UndoRedo,BlockTypeSelect,BoldItalicUnderlineToggles,StrikeThroughSupSubToggles,ListsToggle,CreateLink,InsertTable,InsertThematicBreak,Separator,markdownShortcutPlugin,toolbarPlugin}from'@mdxeditor/editor';import U from'react';import {jsx}from'react/jsx-runtime';var f={undoRedo:false,blockType:true,boldItalicUnderline:true,strikeThrough:true,lists:true,link:true,table:false,horizontalRule:true,toolbar:true},N=U.forwardRef(({className:i="",preview:m=false,options:R=f,markdown:a$1="",...n},s)=>{let o={...f,...R};if(m)return jsx(MDXEditor,{markdown:a$1,plugins:[headingsPlugin(),listsPlugin(),quotePlugin(),thematicBreakPlugin(),linkPlugin(),linkDialogPlugin(),tablePlugin()],className:a("preview overflow-y-auto",i),...n,readOnly:true,ref:s},"preview");let t=[];o.toolbar&&o.undoRedo&&t.push(jsx(UndoRedo,{},"undoRedo")),o.toolbar&&o.blockType&&t.push(jsx(BlockTypeSelect,{},"blockType")),o.toolbar&&o.boldItalicUnderline&&t.push(jsx(BoldItalicUnderlineToggles,{},"boldItalicUnderline")),o.toolbar&&o.strikeThrough&&t.push(jsx(StrikeThroughSupSubToggles,{options:["Strikethrough"]},"strikeThrough")),o.toolbar&&o.lists&&t.push(jsx(ListsToggle,{},"lists")),o.toolbar&&o.link&&t.push(jsx(CreateLink,{},"link")),o.toolbar&&o.table&&t.push(jsx(InsertTable,{},"table")),o.toolbar&&o.horizontalRule&&t.push(jsx(InsertThematicBreak,{},"horizontalRule"));let r=[];return t.forEach((T,d)=>{r.push(T),d<t.length-1&&r.push(jsx(Separator,{},`separator-${d}`));}),jsx(MDXEditor,{markdown:a$1,plugins:[headingsPlugin({allowedHeadingLevels:[1]}),listsPlugin(),quotePlugin(),thematicBreakPlugin(),linkPlugin(),linkDialogPlugin(),tablePlugin(),markdownShortcutPlugin(),...o.toolbar?[toolbarPlugin({toolbarContents:()=>r})]:[]],className:a("overflow-y-auto rounded-md border border-gray-300 shadow-xs transition-all hover:border-green-800",!o.toolbar&&"no-toolbar",i),...n,ref:s},`editor-${o.toolbar}`)});N.displayName="RichTextEditor";export{f as a,N as b};//# sourceMappingURL=chunk-NVG2QBOG.js.map
2
+ //# sourceMappingURL=chunk-NVG2QBOG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/v2/rich-text-editor/rich-text-editor.tsx"],"names":["defaultOptions","RichTextEditor","React","className","preview","options","markdown","props","editorRef","finalOptions","jsx","MDXEditor","headingsPlugin","listsPlugin","quotePlugin","thematicBreakPlugin","linkPlugin","linkDialogPlugin","tablePlugin","cn","toolbarItems","UndoRedo","BlockTypeSelect","BoldItalicUnderlineToggles","StrikeThroughSupSubToggles","ListsToggle","CreateLink","InsertTable","InsertThematicBreak","toolbarItemsWithSeparators","item","index","Separator","markdownShortcutPlugin","toolbarPlugin"],"mappings":"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","file":"chunk-NVG2QBOG.js","sourcesContent":["/* eslint-disable react/no-array-index-key */\n/* eslint-disable react/require-default-props */\n/* eslint-disable react/no-unstable-nested-components */\nimport type { ForwardedRef, ReactNode } from 'react';\nimport {\n headingsPlugin,\n listsPlugin,\n quotePlugin,\n thematicBreakPlugin,\n MDXEditor,\n type MDXEditorMethods,\n type MDXEditorProps,\n toolbarPlugin,\n linkDialogPlugin,\n linkPlugin,\n tablePlugin,\n markdownShortcutPlugin,\n BlockTypeSelect,\n BoldItalicUnderlineToggles,\n CreateLink,\n InsertTable,\n InsertThematicBreak,\n ListsToggle,\n StrikeThroughSupSubToggles,\n UndoRedo,\n Separator,\n} from '@mdxeditor/editor';\nimport React from 'react';\nimport { cn } from '@/lib/utils';\n\ntype EditorOptions = {\n undoRedo?: boolean;\n blockType?: boolean;\n boldItalicUnderline?: boolean;\n strikeThrough?: boolean;\n lists?: boolean;\n link?: boolean;\n table?: boolean;\n horizontalRule?: boolean;\n toolbar?: boolean;\n};\n\ntype RichTextEditorProps = {\n preview?: boolean;\n options?: EditorOptions;\n markdown?: string;\n} & Omit<MDXEditorProps, 'markdown'>;\n\nexport const defaultOptions: EditorOptions = {\n undoRedo: false,\n blockType: true,\n boldItalicUnderline: true,\n strikeThrough: true,\n lists: true,\n link: true,\n table: false,\n horizontalRule: true,\n toolbar: true,\n};\n\nexport const RichTextEditor = React.forwardRef(\n (\n {\n className = '',\n preview = false,\n options = defaultOptions,\n markdown = '',\n ...props\n }: RichTextEditorProps,\n editorRef?: ForwardedRef<MDXEditorMethods> | null,\n ) => {\n const finalOptions = { ...defaultOptions, ...options };\n if (preview) {\n return (\n <MDXEditor\n key=\"preview\"\n markdown={markdown}\n plugins={[\n headingsPlugin(),\n listsPlugin(),\n quotePlugin(),\n thematicBreakPlugin(),\n linkPlugin(),\n linkDialogPlugin(),\n tablePlugin(),\n ]}\n className={cn('preview overflow-y-auto', className)}\n {...props}\n readOnly\n ref={editorRef}\n />\n );\n }\n\n const toolbarItems: ReactNode[] = [];\n\n if (finalOptions.toolbar && finalOptions.undoRedo) {\n toolbarItems.push(<UndoRedo key=\"undoRedo\" />);\n }\n if (finalOptions.toolbar && finalOptions.blockType) {\n toolbarItems.push(<BlockTypeSelect key=\"blockType\" />);\n }\n if (finalOptions.toolbar && finalOptions.boldItalicUnderline) {\n toolbarItems.push(<BoldItalicUnderlineToggles key=\"boldItalicUnderline\" />);\n }\n if (finalOptions.toolbar && finalOptions.strikeThrough) {\n toolbarItems.push(\n <StrikeThroughSupSubToggles key=\"strikeThrough\" options={['Strikethrough']} />,\n );\n }\n if (finalOptions.toolbar && finalOptions.lists) {\n toolbarItems.push(<ListsToggle key=\"lists\" />);\n }\n if (finalOptions.toolbar && finalOptions.link) {\n toolbarItems.push(<CreateLink key=\"link\" />);\n }\n if (finalOptions.toolbar && finalOptions.table) {\n toolbarItems.push(<InsertTable key=\"table\" />);\n }\n if (finalOptions.toolbar && finalOptions.horizontalRule) {\n toolbarItems.push(<InsertThematicBreak key=\"horizontalRule\" />);\n }\n\n const toolbarItemsWithSeparators: ReactNode[] = [];\n toolbarItems.forEach((item, index) => {\n toolbarItemsWithSeparators.push(item);\n if (index < toolbarItems.length - 1) {\n toolbarItemsWithSeparators.push(<Separator key={`separator-${index}`} />);\n }\n });\n\n return (\n <MDXEditor\n key={`editor-${finalOptions.toolbar}`}\n markdown={markdown}\n plugins={[\n headingsPlugin({ allowedHeadingLevels: [1] }),\n listsPlugin(),\n quotePlugin(),\n thematicBreakPlugin(),\n linkPlugin(),\n linkDialogPlugin(),\n tablePlugin(),\n markdownShortcutPlugin(),\n ...(finalOptions.toolbar\n ? [\n toolbarPlugin({\n toolbarContents: () => toolbarItemsWithSeparators,\n }),\n ]\n : []),\n ]}\n className={cn(\n 'overflow-y-auto rounded-md border border-gray-300 shadow-xs transition-all hover:border-green-800',\n !finalOptions.toolbar && 'no-toolbar',\n className,\n )}\n {...props}\n ref={editorRef}\n />\n );\n },\n);\n\nRichTextEditor.displayName = 'RichTextEditor';\n\nexport { type MDXEditorMethods, type MDXEditorProps };\n"]}