kempo-ui 0.3.6 → 0.3.8
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/dist/components/Accordion.js +5 -5
- package/dist/components/Aside.js +16 -16
- package/dist/components/Card.js +3 -3
- package/dist/components/ColorPicker.js +4 -4
- package/dist/components/ContentSlider.js +3 -3
- package/dist/components/Context.js +1 -1
- package/dist/components/Dialog.js +7 -7
- package/dist/components/Dropdown.js +7 -4
- package/dist/components/FilterItem.js +2 -2
- package/dist/components/FilterList.js +2 -2
- package/dist/components/FocusCapture.js +2 -2
- package/dist/components/HtmlEditor.js +62 -39
- package/dist/components/HybridComponent.js +1 -1
- package/dist/components/Icon.js +2 -2
- package/dist/components/Import.js +1 -1
- package/dist/components/LightComponent.js +1 -1
- package/dist/components/Main.js +3 -3
- package/dist/components/Nav.js +2 -2
- package/dist/components/NavSpacer.js +6 -0
- package/dist/components/PhotoViewer.js +3 -3
- package/dist/components/Resize.js +3 -3
- package/dist/components/ShadowComponent.js +1 -1
- package/dist/components/ShowMore.js +3 -3
- package/dist/components/Sortable.js +3 -3
- package/dist/components/Spinner.js +2 -2
- package/dist/components/Split.js +3 -3
- package/dist/components/Table.js +27 -27
- package/dist/components/Tabs.js +7 -7
- package/dist/components/Tags.js +4 -4
- package/dist/components/ThemeSelect.js +4 -4
- package/dist/components/ThemeSwitcher.js +5 -5
- package/dist/components/Timestamp.js +1 -1
- package/dist/components/Toast.js +3 -3
- package/dist/components/Toggle.js +3 -3
- package/dist/components/Tree.js +10 -10
- package/dist/components/htmlEditorControls/AlignCenter.js +4 -4
- package/dist/components/htmlEditorControls/AlignJustify.js +4 -4
- package/dist/components/htmlEditorControls/AlignLeft.js +4 -4
- package/dist/components/htmlEditorControls/AlignRight.js +4 -4
- package/dist/components/htmlEditorControls/Bold.js +4 -4
- package/dist/components/htmlEditorControls/BulletList.js +4 -4
- package/dist/components/htmlEditorControls/CharacterCount.js +3 -3
- package/dist/components/htmlEditorControls/ClearFormatting.js +4 -4
- package/dist/components/htmlEditorControls/CodeBlock.js +3 -3
- package/dist/components/htmlEditorControls/ControlGroup.js +2 -2
- package/dist/components/htmlEditorControls/ControlSpacer.js +2 -2
- package/dist/components/htmlEditorControls/CreateLink.js +3 -3
- package/dist/components/htmlEditorControls/DropdownControl.js +3 -3
- package/dist/components/htmlEditorControls/FormatBlock.js +4 -4
- package/dist/components/htmlEditorControls/HtmlEditorControl.js +2 -2
- package/dist/components/htmlEditorControls/InlineCode.js +3 -3
- package/dist/components/htmlEditorControls/InsertTable.js +3 -3
- package/dist/components/htmlEditorControls/Italic.js +4 -4
- package/dist/components/htmlEditorControls/Mode.js +3 -3
- package/dist/components/htmlEditorControls/NumberList.js +4 -4
- package/dist/components/htmlEditorControls/Strikethrough.js +4 -4
- package/dist/components/htmlEditorControls/TextBackgroundColor.js +6 -6
- package/dist/components/htmlEditorControls/TextColor.js +7 -7
- package/dist/components/htmlEditorControls/Underline.js +4 -4
- package/dist/components/htmlEditorControls/WordCount.js +3 -3
- package/dist/components/htmlEditorNodes/HtmlComment.js +24 -0
- package/dist/components/tableControls/DeleteRecord.js +2 -2
- package/dist/components/tableControls/DeleteSelected.js +2 -2
- package/dist/components/tableControls/Edit.js +4 -4
- package/dist/components/tableControls/ExportCSV.js +2 -2
- package/dist/components/tableControls/ExportJson.js +2 -2
- package/dist/components/tableControls/FieldSortHide.js +4 -4
- package/dist/components/tableControls/Filters.js +17 -17
- package/dist/components/tableControls/FirstPage.js +2 -2
- package/dist/components/tableControls/HiddenCount.js +2 -2
- package/dist/components/tableControls/Hide.js +2 -2
- package/dist/components/tableControls/LastPage.js +2 -2
- package/dist/components/tableControls/NextPage.js +2 -2
- package/dist/components/tableControls/PageSelect.js +4 -4
- package/dist/components/tableControls/PageSize.js +3 -3
- package/dist/components/tableControls/PrevPage.js +2 -2
- package/dist/components/tableControls/Search.js +2 -2
- package/dist/components/tableControls/ShowAll.js +2 -2
- package/dist/components/tableControls/TableControl.js +2 -2
- package/dist/utils/context.js +1 -1
- package/dist/utils/debounce.js +1 -1
- package/dist/utils/object.js +1 -1
- package/dist/utils/theme.js +1 -1
- package/dist/utils/wait.js +0 -1
- package/docs/components/accordion.html +2 -0
- package/docs/components/aside.html +55 -111
- package/docs/components/card.html +2 -0
- package/docs/components/color-picker.html +2 -0
- package/docs/components/content-slider.html +2 -0
- package/docs/components/context.html +2 -0
- package/docs/components/dialog.html +2 -0
- package/docs/components/dropdown.html +2 -0
- package/docs/components/filter-list.html +2 -0
- package/docs/components/focus-capture.html +2 -0
- package/docs/components/html-editor.html +54 -6
- package/docs/components/hybrid-component.html +2 -0
- package/docs/components/icon.html +2 -0
- package/docs/components/import.html +2 -0
- package/docs/components/light-component.html +2 -0
- package/docs/components/nav-spacer.html +315 -0
- package/docs/components/nav.html +2 -0
- package/docs/components/photo-viewer.html +2 -0
- package/docs/components/resize.html +2 -0
- package/docs/components/shadow-component.html +2 -0
- package/docs/components/show-more.html +2 -0
- package/docs/components/sortable.html +2 -0
- package/docs/components/spinner.html +2 -0
- package/docs/components/split.html +2 -0
- package/docs/components/table.html +2 -0
- package/docs/components/tableControls.html +2 -0
- package/docs/components/tableCustomFields.html +2 -0
- package/docs/components/tableFetchRecords.html +2 -0
- package/docs/components/tableFieldSortHide.html +2 -0
- package/docs/components/tablePagination.html +2 -0
- package/docs/components/tablePlaceholder.html +2 -0
- package/docs/components/tableRecordEditing.html +2 -0
- package/docs/components/tableRecordFiltering.html +2 -0
- package/docs/components/tableRecordHiding.html +2 -0
- package/docs/components/tableRecordSearching.html +2 -0
- package/docs/components/tableRecordSelection.html +2 -0
- package/docs/components/tableRowControls.html +2 -0
- package/docs/components/tableServerSync.html +2 -0
- package/docs/components/tableSorting.html +2 -0
- package/docs/components/tabs.html +2 -0
- package/docs/components/tags.html +2 -0
- package/docs/components/theme-select.html +2 -0
- package/docs/components/theme-switcher.html +2 -0
- package/docs/components/timestamp.html +2 -0
- package/docs/components/toast.html +2 -0
- package/docs/components/toggle.html +2 -0
- package/docs/components/tree.html +2 -0
- package/docs/icons/comment.svg +1 -0
- package/docs/index.html +8 -0
- package/docs/src/components/Accordion.js +5 -5
- package/docs/src/components/Aside.js +16 -16
- package/docs/src/components/Card.js +3 -3
- package/docs/src/components/ColorPicker.js +4 -4
- package/docs/src/components/ContentSlider.js +3 -3
- package/docs/src/components/Context.js +1 -1
- package/docs/src/components/Dialog.js +7 -7
- package/docs/src/components/Dropdown.js +7 -4
- package/docs/src/components/FilterItem.js +2 -2
- package/docs/src/components/FilterList.js +2 -2
- package/docs/src/components/FocusCapture.js +2 -2
- package/docs/src/components/HtmlEditor.js +62 -39
- package/docs/src/components/HybridComponent.js +1 -1
- package/docs/src/components/Icon.js +2 -2
- package/docs/src/components/Import.js +1 -1
- package/docs/src/components/LightComponent.js +1 -1
- package/docs/src/components/Main.js +3 -3
- package/docs/src/components/Nav.js +2 -2
- package/docs/src/components/NavSpacer.js +6 -0
- package/docs/src/components/PhotoViewer.js +3 -3
- package/docs/src/components/Resize.js +3 -3
- package/docs/src/components/ShadowComponent.js +1 -1
- package/docs/src/components/ShowMore.js +3 -3
- package/docs/src/components/Sortable.js +3 -3
- package/docs/src/components/Spinner.js +2 -2
- package/docs/src/components/Split.js +3 -3
- package/docs/src/components/Table.js +27 -27
- package/docs/src/components/Tabs.js +7 -7
- package/docs/src/components/Tags.js +4 -4
- package/docs/src/components/ThemeSelect.js +4 -4
- package/docs/src/components/ThemeSwitcher.js +5 -5
- package/docs/src/components/Timestamp.js +1 -1
- package/docs/src/components/Toast.js +3 -3
- package/docs/src/components/Toggle.js +3 -3
- package/docs/src/components/Tree.js +10 -10
- package/docs/src/components/htmlEditorControls/AlignCenter.js +4 -4
- package/docs/src/components/htmlEditorControls/AlignJustify.js +4 -4
- package/docs/src/components/htmlEditorControls/AlignLeft.js +4 -4
- package/docs/src/components/htmlEditorControls/AlignRight.js +4 -4
- package/docs/src/components/htmlEditorControls/Bold.js +4 -4
- package/docs/src/components/htmlEditorControls/BulletList.js +4 -4
- package/docs/src/components/htmlEditorControls/CharacterCount.js +3 -3
- package/docs/src/components/htmlEditorControls/ClearFormatting.js +4 -4
- package/docs/src/components/htmlEditorControls/CodeBlock.js +3 -3
- package/docs/src/components/htmlEditorControls/ControlGroup.js +2 -2
- package/docs/src/components/htmlEditorControls/ControlSpacer.js +2 -2
- package/docs/src/components/htmlEditorControls/CreateLink.js +3 -3
- package/docs/src/components/htmlEditorControls/DropdownControl.js +3 -3
- package/docs/src/components/htmlEditorControls/FormatBlock.js +4 -4
- package/docs/src/components/htmlEditorControls/HtmlEditorControl.js +2 -2
- package/docs/src/components/htmlEditorControls/InlineCode.js +3 -3
- package/docs/src/components/htmlEditorControls/InsertTable.js +3 -3
- package/docs/src/components/htmlEditorControls/Italic.js +4 -4
- package/docs/src/components/htmlEditorControls/Mode.js +3 -3
- package/docs/src/components/htmlEditorControls/NumberList.js +4 -4
- package/docs/src/components/htmlEditorControls/Strikethrough.js +4 -4
- package/docs/src/components/htmlEditorControls/TextBackgroundColor.js +6 -6
- package/docs/src/components/htmlEditorControls/TextColor.js +7 -7
- package/docs/src/components/htmlEditorControls/Underline.js +4 -4
- package/docs/src/components/htmlEditorControls/WordCount.js +3 -3
- package/docs/src/components/htmlEditorNodes/HtmlComment.js +24 -0
- package/docs/src/components/tableControls/DeleteRecord.js +2 -2
- package/docs/src/components/tableControls/DeleteSelected.js +2 -2
- package/docs/src/components/tableControls/Edit.js +4 -4
- package/docs/src/components/tableControls/ExportCSV.js +2 -2
- package/docs/src/components/tableControls/ExportJson.js +2 -2
- package/docs/src/components/tableControls/FieldSortHide.js +4 -4
- package/docs/src/components/tableControls/Filters.js +17 -17
- package/docs/src/components/tableControls/FirstPage.js +2 -2
- package/docs/src/components/tableControls/HiddenCount.js +2 -2
- package/docs/src/components/tableControls/Hide.js +2 -2
- package/docs/src/components/tableControls/LastPage.js +2 -2
- package/docs/src/components/tableControls/NextPage.js +2 -2
- package/docs/src/components/tableControls/PageSelect.js +4 -4
- package/docs/src/components/tableControls/PageSize.js +3 -3
- package/docs/src/components/tableControls/PrevPage.js +2 -2
- package/docs/src/components/tableControls/Search.js +2 -2
- package/docs/src/components/tableControls/ShowAll.js +2 -2
- package/docs/src/components/tableControls/TableControl.js +2 -2
- package/docs/src/utils/context.js +1 -1
- package/docs/src/utils/debounce.js +1 -1
- package/docs/src/utils/object.js +1 -1
- package/docs/src/utils/theme.js +1 -1
- package/docs/src/utils/wait.js +0 -1
- package/docs/utils/context.html +2 -0
- package/docs/utils/cookie.html +2 -0
- package/docs/utils/debounce.html +2 -0
- package/docs/utils/drag.html +2 -0
- package/docs/utils/elevation.html +2 -0
- package/docs/utils/formatTimestamp.html +8 -6
- package/docs/utils/object.html +2 -0
- package/docs/utils/propConverters.html +2 -0
- package/docs/utils/string.html +2 -0
- package/docs/utils/theme.html +2 -0
- package/docs/utils/toTitleCase.html +8 -6
- package/docs/utils/type.html +2 -0
- package/docs/utils/wait.html +2 -0
- package/docs-src/components/aside.page.html +53 -111
- package/docs-src/components/html-editor.page.html +52 -6
- package/docs-src/components/nav-spacer.page.html +65 -0
- package/docs-src/index.page.html +6 -0
- package/docs-src/nav.fragment.html +2 -0
- package/docs-src/utils/formatTimestamp.page.html +6 -6
- package/docs-src/utils/toTitleCase.page.html +6 -6
- package/icons/comment.svg +1 -0
- package/llm.txt +1 -0
- package/package.json +3 -3
- package/scripts/build.js +1 -1
- package/src/components/Accordion.js +1 -1
- package/src/components/Aside.js +12 -1
- package/src/components/Dropdown.js +7 -3
- package/src/components/HtmlEditor.js +699 -1206
- package/src/components/Main.js +1 -1
- package/src/components/NavSpacer.js +55 -0
- package/src/components/htmlEditorControls/AlignCenter.js +5 -5
- package/src/components/htmlEditorControls/AlignJustify.js +5 -5
- package/src/components/htmlEditorControls/AlignLeft.js +5 -5
- package/src/components/htmlEditorControls/AlignRight.js +5 -5
- package/src/components/htmlEditorControls/Bold.js +5 -5
- package/src/components/htmlEditorControls/BulletList.js +5 -5
- package/src/components/htmlEditorControls/ClearFormatting.js +5 -5
- package/src/components/htmlEditorControls/CodeBlock.js +16 -8
- package/src/components/htmlEditorControls/CreateLink.js +3 -7
- package/src/components/htmlEditorControls/FormatBlock.js +5 -5
- package/src/components/htmlEditorControls/InlineCode.js +1 -13
- package/src/components/htmlEditorControls/InsertTable.js +43 -44
- package/src/components/htmlEditorControls/Italic.js +5 -5
- package/src/components/htmlEditorControls/Mode.js +1 -1
- package/src/components/htmlEditorControls/NumberList.js +5 -5
- package/src/components/htmlEditorControls/Strikethrough.js +5 -5
- package/src/components/htmlEditorControls/Underline.js +5 -5
- package/src/components/htmlEditorNodes/HtmlComment.js +118 -0
- package/tests/components/Accordion.browser-test.js +154 -0
- package/tests/components/Aside.browser-test.js +75 -0
- package/tests/components/Dropdown.browser-test.js +85 -0
- package/tests/components/HtmlComment.browser-test.js +115 -0
- package/tests/components/HtmlEditor.browser-test.js +379 -0
- package/tests/components/NavSpacer.browser-test.js +81 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.unorderedList()};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="format_list_bulleted"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-bullet-list",
|
|
12
|
+
`}}customElements.define("k-hec-bullet-list",s);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as r}from"../../lit-all.min.js";export default class s extends t{static properties={count:{type:Number,state:!0}};constructor(){super(),this.count=0}connectedCallback(){super.connectedCallback(),this.editor&&(this.editor.addEventListener("ready",()=>{this.updateCount()}),this.editor.addEventListener("change",()=>{this.updateCount()}),setTimeout(()=>this.updateCount(),0))}updateCount=()=>{if(!this.editor)return;const t=(new DOMParser).parseFromString(this.editor.getValue(),"text/html").body.innerText||"";this.count=t.length};render(){return e`
|
|
2
2
|
<span class="character-count">
|
|
3
3
|
<slot name="label">Characters:</slot> ${this.count}
|
|
4
4
|
</span>
|
|
5
|
-
`}static styles=[
|
|
5
|
+
`}static styles=[t.styles,r`
|
|
6
6
|
:host {
|
|
7
7
|
display: inline-flex;
|
|
8
8
|
align-items: center;
|
|
@@ -15,4 +15,4 @@ import HtmlEditorControl from"./HtmlEditorControl.js";import{html,css}from"../..
|
|
|
15
15
|
align-items: center;
|
|
16
16
|
gap: 0.25rem;
|
|
17
17
|
}
|
|
18
|
-
`]}customElements.define("k-hec-character-count",
|
|
18
|
+
`]}customElements.define("k-hec-character-count",s);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.removeFormat()};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="format_clear"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-clear-formatting",
|
|
12
|
+
`}}customElements.define("k-hec-clear-formatting",s);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.formatBlock(this.isInCodeBlock()?"p":"pre")};isInCodeBlock(){if(!this.editor?.lexicalEditor)return!1;let t=!1;const{lexical:e,code:o}=this.editor.lx;return this.editor.lexicalEditor.getEditorState().read(()=>{const i=e.$getSelection();if(!e.$isRangeSelection(i))return;const s=i.anchor.getNode().getTopLevelElementOrThrow();t=o.$isCodeNode(s)}),t}updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
6
|
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="code_blocks"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-code-block",
|
|
12
|
+
`}}customElements.define("k-hec-code-block",i);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"../ShadowComponent.js";import{html as e,css as i}from"../../lit-all.min.js";export default class s extends t{static properties={editorMode:{type:String,state:!0},hidden:{type:Boolean,reflect:!0}};constructor(){super()}connectedCallback(){super.connectedCallback(),this.hasAttribute("class")||this.setAttribute("class","b r mq"),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}get editor(){return this.closest("k-html-editor")}updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode,this.requestUpdate())}hasVisibleChildren(){return Array.from(this.children).filter(t=>t.tagName.startsWith("K-HEC-")&&"K-HEC-SPACER"!==t.tagName).some(t=>{if(!1===t.hidden||void 0===t.hidden){return"none"!==window.getComputedStyle(t).display}return!1})}static styles=i`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
@@ -11,4 +11,4 @@ import ShadowComponent from"../ShadowComponent.js";import{html,css}from"../../li
|
|
|
11
11
|
margin-top: -1px;
|
|
12
12
|
margin-bottom: -1px;
|
|
13
13
|
}
|
|
14
|
-
`;render(){return
|
|
14
|
+
`;render(){return e`<slot></slot>`}updated(){super.updated(),requestAnimationFrame(()=>{this.hidden=!this.hasVisibleChildren()})}}customElements.define("k-hec-group",s);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"../ShadowComponent.js";import{html as t,css as s}from"../../lit-all.min.js";export default class l extends e{static styles=s`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
flex: 1;
|
|
5
5
|
}
|
|
6
|
-
`;render(){return
|
|
6
|
+
`;render(){return t``}}customElements.define("k-hec-spacer",l);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"./HtmlEditorControl.js";import{html as t,css as i}from"../../lit-all.min.js";import"../Icon.js";import o from"../Dialog.js";export default class n extends e{static properties={editorMode:{type:String,state:!0}};constructor(){super()}connectedCallback(){super.connectedCallback(),this.editor&&(this.editorMode=this.editor.mode,this.editor?.addEventListener("mode-changed",()=>{this.editor&&(this.editorMode=this.editor.mode)}))}handleMouseDown=e=>{if(!this.editor)return;e.preventDefault(),e.stopPropagation();const t=this.editor.selection?.text||"",i=document.createElement("input");i.type="text",i.placeholder="https://example.com",i.style.cssText="padding: 0.5rem; border: 1px solid var(--border-color, #ccc); border-radius: 4px; font-size: 1rem;";const n=document.createElement("input");n.type="text",n.placeholder="Enter link text",n.value=t,n.style.cssText="padding: 0.5rem; border: 1px solid var(--border-color, #ccc); border-radius: 4px; font-size: 1rem;";const s=document.createElement("div");s.className="p",s.style.cssText="display: flex; flex-direction: column; gap: 1rem;",s.innerHTML='\n\t\t\t<div style="display: flex; flex-direction: column; gap: 0.5rem;">\n\t\t\t\t<label style="font-weight: bold;">URL</label>\n\t\t\t</div>\n\t\t\t<div style="display: flex; flex-direction: column; gap: 0.5rem;">\n\t\t\t\t<label style="font-weight: bold;">Link Text</label>\n\t\t\t</div>\n\t\t',s.children[0].appendChild(i),s.children[1].appendChild(n),o.create(s,{title:"Create Link",cancelText:"Cancel",confirmText:"Insert Link",confirmClasses:"success ml",confirmAction:e=>{const o=i.value.trim(),s=n.value.trim();o?!this.editor.selection||s&&s!==t?this.editor.createLinkWithText(o,s||o):this.editor.createLink(o):e.keepDialogOpen=!0}})};render(){return this.hidden="code"===this.editorMode,t`
|
|
2
2
|
<button
|
|
3
3
|
class="${this.buttonClasses}"
|
|
4
4
|
@mousedown="${this.handleMouseDown}"
|
|
@@ -8,8 +8,8 @@ import HtmlEditorControl from"./HtmlEditorControl.js";import{html,css}from"../..
|
|
|
8
8
|
</slot>
|
|
9
9
|
<slot></slot>
|
|
10
10
|
</button>
|
|
11
|
-
`}static styles=[
|
|
11
|
+
`}static styles=[e.styles,i`
|
|
12
12
|
:host {
|
|
13
13
|
display: inline-flex;
|
|
14
14
|
}
|
|
15
|
-
`]}customElements.define("k-hec-create-link",
|
|
15
|
+
`]}customElements.define("k-hec-create-link",n);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as o,css as e}from"../../lit-all.min.js";import"../Dropdown.js";import"../Icon.js";export default class n extends t{static properties={opened:{type:Boolean,reflect:!0},editorMode:{type:String,state:!0}};constructor(){super(),this.opened=!1}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}updated(t){super.updated(t),t.has("editorMode")&&requestAnimationFrame(()=>{this.hidden="code"===this.editorMode&&!this.hasVisibleChildren()})}updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}hasVisibleChildren(){return Array.from(this.children).filter(t=>!t.hasAttribute("slot")).some(t=>{if(!1===t.hidden||void 0===t.hidden){return"none"!==window.getComputedStyle(t).display}return!1})}static styles=[t.styles,e`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
@@ -37,7 +37,7 @@ import HtmlEditorControl from"./HtmlEditorControl.js";import{html,css}from"../..
|
|
|
37
37
|
::slotted(:not([slot="icon"]):not([slot="label"]):last-of-type) button {
|
|
38
38
|
border-bottom: none !important;
|
|
39
39
|
}
|
|
40
|
-
`];handleToggle=()=>{this.opened=!this.opened};handleOpened=()=>{this.opened=!0};handleClosed=()=>{this.opened=!1};render(){return
|
|
40
|
+
`];handleToggle=()=>{this.opened=!this.opened};handleOpened=()=>{this.opened=!0};handleClosed=()=>{this.opened=!1};render(){return o`
|
|
41
41
|
<k-dropdown
|
|
42
42
|
?opened=${this.opened}
|
|
43
43
|
@opened=${this.handleOpened}
|
|
@@ -54,4 +54,4 @@ import HtmlEditorControl from"./HtmlEditorControl.js";import{html,css}from"../..
|
|
|
54
54
|
</button>
|
|
55
55
|
<slot></slot>
|
|
56
56
|
</k-dropdown>
|
|
57
|
-
`}}customElements.define("k-hec-dropdown",
|
|
57
|
+
`}}customElements.define("k-hec-dropdown",n);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class a extends t{static properties={editorMode:{type:String,state:!0},tag:{type:String},label:{type:String}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];constructor(){super(),this.tag="p",this.label=""}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];constructor(){super(),this.tag="p",this.label=""}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.formatBlock(this.tag)};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){this.hidden="code"===this.editorMode;this.label||this.getDefaultLabel();const t=this.getDefaultIcon();return e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="${t}"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}getDefaultLabel(){return{h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6",p:"Paragraph"}[this.tag]||this.tag.toUpperCase()}getDefaultIcon(){return{h1:"format_h1",h2:"format_h2",h3:"format_h3",h4:"format_h4",h5:"format_h5",h6:"format_h6",p:"format_paragraph"}[this.tag]||"format_paragraph"}}customElements.define("k-hec-format-block",
|
|
12
|
+
`}getDefaultLabel(){return{h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6",p:"Paragraph"}[this.tag]||this.tag.toUpperCase()}getDefaultIcon(){return{h1:"format_h1",h2:"format_h2",h3:"format_h3",h4:"format_h4",h5:"format_h5",h6:"format_h6",p:"format_paragraph"}[this.tag]||"format_paragraph"}}customElements.define("k-hec-format-block",a);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"../ShadowComponent.js";import{html as n,css as o}from"../../lit-all.min.js";export default class r extends t{static properties={btnClass:{type:String,attribute:"btn-class"},groupBtnClass:{type:String,attribute:"group-btn-class"},groupLastBtnClass:{type:String,attribute:"group-last-btn-class"},hidden:{type:Boolean,reflect:!0}};constructor(){super(),this.btnClass="b r mq ph",this.groupBtnClass="br ph",this.groupLastBtnClass="ph"}get editor(){let t=this.getRootNode();for(;t instanceof ShadowRoot;){const n=t.host,o=n.closest("k-html-editor");if(o)return o;t=n.getRootNode()}return this.closest("k-html-editor")}get isInGroup(){const t=this.parentElement;return t&&"K-HEC-GROUP"===t.tagName}get isInDropdown(){const t=this.parentElement;return t&&"K-HEC-DROPDOWN"===t.tagName}get isLastInGroup(){if(!this.isInGroup)return!1;const t=this.parentElement,n=Array.from(t.children).filter(t=>t.tagName.startsWith("K-HEC-")&&"K-HEC-SPACER"!==t.tagName);return n[n.length-1]===this}get buttonClasses(){let t;return t=this.isInDropdown?"dropdown-item":this.isInGroup?this.isLastInGroup?this.groupLastBtnClass:this.groupBtnClass:this.btnClass,`no-btn icon-btn ${t}`.trim()}static styles=o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
@@ -41,4 +41,4 @@ import ShadowComponent from"../ShadowComponent.js";import{html,css}from"../../li
|
|
|
41
41
|
:host(:last-child) .icon-btn.dropdown-item {
|
|
42
42
|
border-bottom: none !important;
|
|
43
43
|
}
|
|
44
|
-
`}customElements.define("k-html-editor-control",
|
|
44
|
+
`}customElements.define("k-html-editor-control",r);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.lexicalFormat("code")};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
6
|
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="code_blocks"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-inline-code",
|
|
12
|
+
`}}customElements.define("k-hec-inline-code",i);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"./HtmlEditorControl.js";import{html as t,css as l}from"../../lit-all.min.js";import"../Icon.js";import i from"../Dialog.js";export default class o extends e{static properties={editorMode:{type:String,state:!0}};constructor(){super()}connectedCallback(){super.connectedCallback(),this.editor&&(this.editorMode=this.editor.mode,this.editor?.addEventListener("mode-changed",()=>{this.editor&&(this.editorMode=this.editor.mode)}))}handleMouseDown=e=>{if(!this.editor)return;e.preventDefault(),e.stopPropagation();let t=!1,l=3,o=3,n=!0,r=null,s=null;if(this.editor.lexicalEditor){const{lexical:e,table:i}=this.editor.lx;this.editor.lexicalEditor.getEditorState().read(()=>{const d=e.$getSelection();if(!e.$isRangeSelection(d))return;let a=d.anchor.getNode();for(;a;){if(i.$isTableNode(a)){t=!0,s=a.getKey(),r=[];const e=a.getChildren();let d=!1;e.forEach((e,t)=>{const l=[];e.getChildren().forEach(e=>{0===t&&i.$isTableCellNode(e)&&e.getHeaderStyles()===i.TableCellHeaderStates.ROW&&(d=!0),l.push(e.getTextContent())}),r.push(l),l.length>o&&(o=l.length)}),n=d,l=d?e.length-1:e.length;break}a=a.getParent()}})}const d=document.createElement("input");d.type="number",d.min="1",d.max="20",d.value=l.toString(),d.style.cssText="padding: 0.5rem; border: 1px solid var(--border-color, #ccc); border-radius: 4px; font-size: 1rem;";const a=document.createElement("input");a.type="number",a.min="1",a.max="10",a.value=o.toString(),a.style.cssText="padding: 0.5rem; border: 1px solid var(--border-color, #ccc); border-radius: 4px; font-size: 1rem;";const c=document.createElement("input");c.type="checkbox",c.checked=n,c.id="table-headers-checkbox";const h=document.createElement("div");h.className="p",h.style.cssText="display: flex; flex-direction: column; gap: 1rem;",h.innerHTML='\n\t\t\t<div style="display: flex; flex-direction: column; gap: 0.5rem;">\n\t\t\t\t<label style="font-weight: bold;">Rows</label>\n\t\t\t</div>\n\t\t\t<div style="display: flex; flex-direction: column; gap: 0.5rem;">\n\t\t\t\t<label style="font-weight: bold;">Columns</label>\n\t\t\t</div>\n\t\t\t<div style="display: flex; align-items: center; gap: 0.5rem;">\n\t\t\t\t<label for="table-headers-checkbox" style="font-weight: bold;">Include Headers</label>\n\t\t\t</div>\n\t\t',h.children[0].appendChild(d),h.children[1].appendChild(a),h.children[2].insertBefore(c,h.children[2].firstChild),i.create(h,{title:t?"Edit Table":"Insert Table",cancelText:"Cancel",confirmText:t?"Update Table":"Insert Table",confirmClasses:"success",confirmAction:()=>{const e=parseInt(d.value)||3,l=parseInt(a.value)||3,i=c.checked;if(t&&s){const{lexical:e}=this.editor.lx;this.editor.lexicalEditor.update(()=>{const t=e.$getNodeByKey(s);t&&t.remove()},{discrete:!0})}this.editor.insertTable(e,l,i,r)}})};render(){return this.hidden="code"===this.editorMode,t`
|
|
2
2
|
<button
|
|
3
3
|
class="${this.buttonClasses}"
|
|
4
4
|
@mousedown="${this.handleMouseDown}"
|
|
@@ -8,8 +8,8 @@ import HtmlEditorControl from"./HtmlEditorControl.js";import{html,css}from"../..
|
|
|
8
8
|
</slot>
|
|
9
9
|
<slot></slot>
|
|
10
10
|
</button>
|
|
11
|
-
`}static styles=[
|
|
11
|
+
`}static styles=[e.styles,l`
|
|
12
12
|
:host {
|
|
13
13
|
display: inline-flex;
|
|
14
14
|
}
|
|
15
|
-
`]}customElements.define("k-hec-insert-table",
|
|
15
|
+
`]}customElements.define("k-hec-insert-table",o);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.italic()};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="format_italic"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-italic",
|
|
12
|
+
`}}customElements.define("k-hec-italic",i);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static properties={mode:{type:String,reflect:!0}};connectedCallback(){super.connectedCallback(),this.updateMode(),this.editor?.addEventListener("mode-changed",()=>this.updateMode())}handleClick=()=>{this.editor&&this.editor.toggleMode()};updateMode(){this.editor&&(this.mode=this.editor.mode)}static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];render(){const t="code"===this.mode?`${this.buttonClasses} bg-primary`:this.buttonClasses;return
|
|
5
|
+
`];render(){const t="code"===this.mode?`${this.buttonClasses} bg-primary`:this.buttonClasses;return e`
|
|
6
6
|
<button class="${t}" @click="${this.handleClick}">
|
|
7
7
|
<k-icon name="code"></k-icon>
|
|
8
8
|
</button>
|
|
9
|
-
`}}customElements.define("k-hec-mode",
|
|
9
|
+
`}}customElements.define("k-hec-mode",s);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.orderedList()};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="format_list_numbered"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-number-list",
|
|
12
|
+
`}}customElements.define("k-hec-number-list",s);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.strikethrough()};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="strikethrough_s"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-strikethrough",
|
|
12
|
+
`}}customElements.define("k-hec-strikethrough",s);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"./DropdownControl.js";import{html as e,css as t}from"../../lit-all.min.js";import"../Icon.js";export default class r extends o{static properties={editorMode:{type:String,state:!0},colors:{type:String},disableRemove:{type:Boolean,attribute:"disable-remove"},disablePicker:{type:Boolean,attribute:"disable-picker"}};static styles=[o.styles,t`
|
|
2
2
|
.dropdown-content {
|
|
3
3
|
padding: 8px;
|
|
4
4
|
min-width: 200px;
|
|
@@ -53,7 +53,7 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
53
53
|
border-radius: 4px;
|
|
54
54
|
cursor: pointer;
|
|
55
55
|
}
|
|
56
|
-
`];constructor(){super(),this.colors="#ffff00,#00ffff,#ff66ff,#99ff99,#ffcc99,#ff9999,#cccccc,#ffffff,#ffffcc,#ccffff,#ffccff,#ccffcc",this.disableRemove=!1,this.disablePicker=!1,this.icon="format_color_fill"}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleRemove=o=>{o.preventDefault(),o.stopPropagation(),this.editor&&this.editor.removeTextBackgroundColor(),this.opened=!1};handleSwatchClick=o=>{o.preventDefault(),o.stopPropagation();const e=o.target.style.backgroundColor;if(this.editor&&e){const o=e.match(/\d+/g),t=o?"#"+o.map(o=>parseInt(o).toString(16).padStart(2,"0")).join(""):e;this.editor.setTextBackgroundColor(t)}this.opened=!1};handlePickerChange=o=>{o.preventDefault(),o.stopPropagation();const e=o.target.value;this.editor&&e&&this.editor.setTextBackgroundColor(e),this.opened=!1};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}getColorArray(){return this.colors.split(",").map(o=>o.trim()).filter(o=>o)}render(){this.hidden="code"===this.editorMode;const o=this.getColorArray();return
|
|
56
|
+
`];constructor(){super(),this.colors="#ffff00,#00ffff,#ff66ff,#99ff99,#ffcc99,#ff9999,#cccccc,#ffffff,#ffffcc,#ccffff,#ffccff,#ccffcc",this.disableRemove=!1,this.disablePicker=!1,this.icon="format_color_fill"}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleRemove=o=>{o.preventDefault(),o.stopPropagation(),this.editor&&this.editor.removeTextBackgroundColor(),this.opened=!1};handleSwatchClick=o=>{o.preventDefault(),o.stopPropagation();const e=o.target.style.backgroundColor;if(this.editor&&e){const o=e.match(/\d+/g),t=o?"#"+o.map(o=>parseInt(o).toString(16).padStart(2,"0")).join(""):e;this.editor.setTextBackgroundColor(t)}this.opened=!1};handlePickerChange=o=>{o.preventDefault(),o.stopPropagation();const e=o.target.value;this.editor&&e&&this.editor.setTextBackgroundColor(e),this.opened=!1};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}getColorArray(){return this.colors.split(",").map(o=>o.trim()).filter(o=>o)}render(){this.hidden="code"===this.editorMode;const o=this.getColorArray();return e`
|
|
57
57
|
<k-dropdown
|
|
58
58
|
?opened=${this.opened}
|
|
59
59
|
@opened=${this.handleOpened}
|
|
@@ -67,14 +67,14 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
67
67
|
</button>
|
|
68
68
|
|
|
69
69
|
<div class="dropdown-content">
|
|
70
|
-
${this.disableRemove?"":
|
|
70
|
+
${this.disableRemove?"":e`
|
|
71
71
|
<button class="remove-btn" @click=${this.handleRemove}>
|
|
72
72
|
Remove Color
|
|
73
73
|
</button>
|
|
74
74
|
`}
|
|
75
75
|
|
|
76
76
|
<div class="color-swatches">
|
|
77
|
-
${o.map(o=>
|
|
77
|
+
${o.map(o=>e`
|
|
78
78
|
<button
|
|
79
79
|
class="color-swatch"
|
|
80
80
|
style="background-color: ${o}"
|
|
@@ -83,7 +83,7 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
83
83
|
`)}
|
|
84
84
|
</div>
|
|
85
85
|
|
|
86
|
-
${this.disablePicker?"":
|
|
86
|
+
${this.disablePicker?"":e`
|
|
87
87
|
<div class="picker-row">
|
|
88
88
|
<label>Custom:</label>
|
|
89
89
|
<input
|
|
@@ -94,4 +94,4 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
94
94
|
`}
|
|
95
95
|
</div>
|
|
96
96
|
</k-dropdown>
|
|
97
|
-
`}}customElements.define("k-hec-text-background-color",
|
|
97
|
+
`}}customElements.define("k-hec-text-background-color",r);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"./DropdownControl.js";import{html as o,css as t}from"../../lit-all.min.js";import"../Icon.js";export default class r extends e{static properties={editorMode:{type:String,state:!0},colors:{type:String},disableRemove:{type:Boolean,attribute:"disable-remove"},disablePicker:{type:Boolean,attribute:"disable-picker"}};static styles=[e.styles,t`
|
|
2
2
|
.dropdown-content {
|
|
3
3
|
padding: 8px;
|
|
4
4
|
min-width: 200px;
|
|
@@ -53,7 +53,7 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
53
53
|
border-radius: 4px;
|
|
54
54
|
cursor: pointer;
|
|
55
55
|
}
|
|
56
|
-
`];constructor(){super(),this.colors="#000000,#e60000,#ff9900,#ffff00,#008a00,#0066cc,#9933ff,#ffffff,#facccc,#ffebcc,#ffffcc,#cce8cc,#cce0f5,#ebd6ff",this.disableRemove=!1,this.disablePicker=!1,this.icon="format_color_text"}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleRemove=
|
|
56
|
+
`];constructor(){super(),this.colors="#000000,#e60000,#ff9900,#ffff00,#008a00,#0066cc,#9933ff,#ffffff,#facccc,#ffebcc,#ffffcc,#cce8cc,#cce0f5,#ebd6ff",this.disableRemove=!1,this.disablePicker=!1,this.icon="format_color_text"}connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleRemove=e=>{e.preventDefault(),e.stopPropagation(),this.editor&&this.editor.removeTextColor(),this.opened=!1};handleSwatchClick=e=>{e.preventDefault(),e.stopPropagation();const o=e.target.style.backgroundColor;if(this.editor&&o){const e=o.match(/\d+/g),t=e?"#"+e.map(e=>parseInt(e).toString(16).padStart(2,"0")).join(""):o;this.editor.setTextColor(t)}this.opened=!1};handlePickerChange=e=>{e.preventDefault(),e.stopPropagation();const o=e.target.value;this.editor&&o&&this.editor.setTextColor(o),this.opened=!1};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}getColorArray(){return this.colors.split(",").map(e=>e.trim()).filter(e=>e)}render(){this.hidden="code"===this.editorMode;const e=this.getColorArray();return o`
|
|
57
57
|
<k-dropdown
|
|
58
58
|
?opened=${this.opened}
|
|
59
59
|
@opened=${this.handleOpened}
|
|
@@ -67,23 +67,23 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
67
67
|
</button>
|
|
68
68
|
|
|
69
69
|
<div class="dropdown-content">
|
|
70
|
-
${this.disableRemove?"":
|
|
70
|
+
${this.disableRemove?"":o`
|
|
71
71
|
<button class="remove-btn" @click=${this.handleRemove}>
|
|
72
72
|
Remove Color
|
|
73
73
|
</button>
|
|
74
74
|
`}
|
|
75
75
|
|
|
76
76
|
<div class="color-swatches">
|
|
77
|
-
${
|
|
77
|
+
${e.map(e=>o`
|
|
78
78
|
<button
|
|
79
79
|
class="color-swatch"
|
|
80
|
-
style="background-color: ${
|
|
80
|
+
style="background-color: ${e}"
|
|
81
81
|
@click=${this.handleSwatchClick}
|
|
82
82
|
></button>
|
|
83
83
|
`)}
|
|
84
84
|
</div>
|
|
85
85
|
|
|
86
|
-
${this.disablePicker?"":
|
|
86
|
+
${this.disablePicker?"":o`
|
|
87
87
|
<div class="picker-row">
|
|
88
88
|
<label>Custom:</label>
|
|
89
89
|
<input
|
|
@@ -94,4 +94,4 @@ import DropdownControl from"./DropdownControl.js";import{html,css}from"../../lit
|
|
|
94
94
|
`}
|
|
95
95
|
</div>
|
|
96
96
|
</k-dropdown>
|
|
97
|
-
`}}customElements.define("k-hec-text-color",
|
|
97
|
+
`}}customElements.define("k-hec-text-color",r);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static properties={editorMode:{type:String,state:!0}};static styles=[t.styles,o`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
}
|
|
5
|
-
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}
|
|
6
|
-
<button class="${this.buttonClasses}" @
|
|
5
|
+
`];connectedCallback(){super.connectedCallback(),this.updateEditorMode(),this.editor?.addEventListener("mode-changed",()=>this.updateEditorMode())}handleMouseDown=t=>{t.preventDefault(),t.stopPropagation(),this.editor&&this.editor.underline()};updateEditorMode(){this.editor&&(this.editorMode=this.editor.mode)}render(){return this.hidden="code"===this.editorMode,e`
|
|
6
|
+
<button class="${this.buttonClasses}" @mousedown="${this.handleMouseDown}">
|
|
7
7
|
<slot name="icon">
|
|
8
8
|
<k-icon name="format_underlined"></k-icon>
|
|
9
9
|
</slot>
|
|
10
10
|
<slot></slot>
|
|
11
11
|
</button>
|
|
12
|
-
`}}customElements.define("k-hec-underline",
|
|
12
|
+
`}}customElements.define("k-hec-underline",i);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./HtmlEditorControl.js";import{html as e,css as s}from"../../lit-all.min.js";export default class r extends t{static properties={count:{type:Number,state:!0}};constructor(){super(),this.count=0}connectedCallback(){super.connectedCallback(),this.editor&&(this.editor.addEventListener("ready",()=>{this.updateCount()}),this.editor.addEventListener("change",()=>{this.updateCount()}),setTimeout(()=>this.updateCount(),0))}updateCount=()=>{if(!this.editor)return;const t=((new DOMParser).parseFromString(this.editor.getValue(),"text/html").body.innerText||"").trim().split(/\s+/).filter(t=>t.length>0);this.count=t.length};render(){return e`
|
|
2
2
|
<span class="word-count">
|
|
3
3
|
<slot name="label">Words:</slot> ${this.count}
|
|
4
4
|
</span>
|
|
5
|
-
`}static styles=[
|
|
5
|
+
`}static styles=[t.styles,s`
|
|
6
6
|
:host {
|
|
7
7
|
display: inline-flex;
|
|
8
8
|
align-items: center;
|
|
@@ -15,4 +15,4 @@ import HtmlEditorControl from"./HtmlEditorControl.js";import{html,css}from"../..
|
|
|
15
15
|
align-items: center;
|
|
16
16
|
gap: 0.25rem;
|
|
17
17
|
}
|
|
18
|
-
`]}customElements.define("k-hec-word-count",
|
|
18
|
+
`]}customElements.define("k-hec-word-count",r);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{html as t,render as e}from"../../lit-all.min.js";import"../Icon.js";import"../Dropdown.js";const{DecoratorNode:o,$applyNodeReplacement:n,$getNodeByKey:m}=await import("https://esm.sh/lexical@0.43.0");class r extends o{static getType(){return"html-comment"}static clone(t){return new r(t.__comment,t.__key)}static isVisualCompatible(t){return t.nodeType===Node.COMMENT_NODE}static preprocessHtml(t){return t.replace(/<!--(.*?)-->/gs,(t,e)=>`<span data-html-comment="${e.replace(/"/g,""")}"></span>`)}static importDOM(){return{span:t=>t.hasAttribute("data-html-comment")?{conversion:t=>({node:s(t.getAttribute("data-html-comment")||"")}),priority:2}:null}}static importJSON(t){return s(t.comment||"")}constructor(t="",e){super(e),this.__comment=t}getComment(){return this.getLatest().__comment}setComment(t){const e=this.getWritable();return e.__comment=t,e}createDOM(o,n){const r=document.createElement("span"),s=this.__key;return e(t`
|
|
2
|
+
<k-dropdown close-on-select="false" open-direction="down left"
|
|
3
|
+
contenteditable="false"
|
|
4
|
+
data-html-comment=${this.__comment}
|
|
5
|
+
title=${this.__comment||"HTML Comment (empty)"}
|
|
6
|
+
@mousedown=${t=>t.stopPropagation()}
|
|
7
|
+
>
|
|
8
|
+
<k-icon slot="trigger" name="comment" class="tc-muted"
|
|
9
|
+
style="cursor:pointer"
|
|
10
|
+
@mousedown=${t=>{t.preventDefault(),t.stopPropagation()}}
|
|
11
|
+
></k-icon>
|
|
12
|
+
<div class="pq">
|
|
13
|
+
<div class="small tc-muted mbh">HTML Comment</div>
|
|
14
|
+
<textarea class="ff-mono full p0"
|
|
15
|
+
style="resize: both"
|
|
16
|
+
.value=${this.__comment}
|
|
17
|
+
@input=${t=>{const e=t.target.closest("[data-html-comment]");e&&(e.setAttribute("data-html-comment",t.target.value),e.title=t.target.value)}}
|
|
18
|
+
@blur=${t=>{n.update(()=>{const e=m(s);e&&e.setComment(t.target.value)})}}
|
|
19
|
+
@keydown=${t=>t.stopPropagation()}
|
|
20
|
+
@beforeinput=${t=>t.stopPropagation()}
|
|
21
|
+
></textarea>
|
|
22
|
+
</div>
|
|
23
|
+
</k-dropdown>
|
|
24
|
+
`,r),r.firstElementChild}updateDOM(t,e){return t.__comment!==this.__comment&&(e.setAttribute("data-html-comment",this.__comment),e.title=this.__comment||"HTML Comment (empty)"),!1}exportDOM(){return{element:document.createComment(this.__comment)}}exportJSON(){return{...super.exportJSON(),type:"html-comment",comment:this.__comment}}isInline(){return!0}isKeyboardSelectable(){return!0}decorate(){return null}}const s=(t="")=>n(new r(t)),a=t=>t instanceof r;export{r as HtmlCommentLexicalNode,s as $createHtmlCommentNode,a as $isHtmlCommentNode};export default class c extends HTMLElement{static lexicalNode=r}customElements.define("k-hen-html-comment",c);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"./TableControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class o extends e{delete=()=>{this.record&&this.table.deleteRecord(this.record)};render(){return t`
|
|
2
2
|
<button class="no-btn icon-btn" @click="${this.delete}">
|
|
3
3
|
<slot>
|
|
4
4
|
<k-icon name="delete"></k-icon>
|
|
5
5
|
</slot>
|
|
6
6
|
</button>
|
|
7
|
-
`}}customElements.define("k-tc-delete-record",
|
|
7
|
+
`}}customElements.define("k-tc-delete-record",o);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"./TableControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class l extends e{deleteSelected=()=>{this.table.deleteSelected()};render(){return t`
|
|
2
2
|
<button class="no-btn icon-btn" title="Delete Selected" @click="${this.deleteSelected}">
|
|
3
3
|
<slot>
|
|
4
4
|
<k-icon name="delete_sweep"></k-icon>
|
|
5
5
|
</slot>
|
|
6
6
|
</button>
|
|
7
|
-
`}}customElements.define("k-tc-delete-selected",
|
|
7
|
+
`}}customElements.define("k-tc-delete-selected",l);
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./TableControl.js";import{html as e,css as i}from"../../lit-all.min.js";import"../Icon.js";export default class n extends t{static properties={isEditing:{type:Boolean}};static styles=[t.styles,i`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
width: max-content;
|
|
5
5
|
align-items: baseline;
|
|
6
6
|
}
|
|
7
|
-
`];constructor(){super({maxWidth:80})}connectedCallback(){super.connectedCallback(),this.onTableEvent("editingChange",this.handleEditingChange)}handleEditingChange=t=>{t.detail.record===this.record&&(this.isEditing=t.detail.editing)};handleEdit=()=>{this.record&&this.table.editRecord(this.record)};handleSave=()=>{this.record&&this.table.saveEditedRecord(this.record)};handleCancel=()=>{this.record&&this.table.cancelEditedRecord(this.record)};render(){return this.isEditing?
|
|
7
|
+
`];constructor(){super({maxWidth:80})}connectedCallback(){super.connectedCallback(),this.onTableEvent("editingChange",this.handleEditingChange)}handleEditingChange=t=>{t.detail.record===this.record&&(this.isEditing=t.detail.editing)};handleEdit=()=>{this.record&&this.table.editRecord(this.record)};handleSave=()=>{this.record&&this.table.saveEditedRecord(this.record)};handleCancel=()=>{this.record&&this.table.cancelEditedRecord(this.record)};render(){return this.isEditing?e`
|
|
8
8
|
<button class="no-btn icon-btn bg-success" @click="${this.handleSave}">
|
|
9
9
|
<k-icon name="check"></k-icon>
|
|
10
10
|
</button>
|
|
11
11
|
<button class="no-btn icon-btn bg-danger" @click="${this.handleCancel}">
|
|
12
12
|
<k-icon name="close"></k-icon>
|
|
13
13
|
</button>
|
|
14
|
-
`:
|
|
14
|
+
`:e`
|
|
15
15
|
<button class="no-btn icon-btn" @click="${this.handleEdit}">
|
|
16
16
|
<k-icon name="edit"></k-icon>
|
|
17
17
|
</button>
|
|
18
|
-
`}}customElements.define("k-tc-edit",
|
|
18
|
+
`}}customElements.define("k-tc-edit",n);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./TableControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{constructor(){super(),this.maxWidth=136}getCSV(){const t=this.table;if(!t)return"";let e="";const o=[];if(t.fields.forEach(({name:t,calculator:e})=>{e||o.push(t)}),e+=o.join(",")+"\n",this.record){const t=o.map(t=>this.record[t]||"");e+=t.join(",")+"\n"}else t.records.forEach(t=>{const r=o.map(e=>t[e]||"");e+=r.join(",")+"\n"});return e}export=()=>{const t=this.getCSV(),e=new Blob([t],{type:"text/csv"}),o=URL.createObjectURL(e),r=document.createElement("a");r.href=o,r.download="data.csv",r.click(),URL.revokeObjectURL(o)};render(){return e`
|
|
2
2
|
<button class="no-btn ph" @click="${this.export}">
|
|
3
3
|
<slot>
|
|
4
4
|
<k-icon name="export-file"></k-icon>
|
|
5
5
|
Export CSV
|
|
6
6
|
</slot>
|
|
7
7
|
</button>
|
|
8
|
-
`}}customElements.define("k-tc-export-csv",
|
|
8
|
+
`}}customElements.define("k-tc-export-csv",o);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"./TableControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{constructor(){super(),this.maxWidth=136}export=()=>{const t=this.record;if(t){const e=JSON.stringify(t),o=new Blob([e],{type:"application/json"}),n=URL.createObjectURL(o),r=document.createElement("a");r.href=n,r.download="data.json",r.click(),URL.revokeObjectURL(n)}else{const t=JSON.stringify(this.table.records),e=new Blob([t],{type:"application/json"}),o=URL.createObjectURL(e),n=document.createElement("a");n.href=o,n.download="data.json",n.click(),URL.revokeObjectURL(o)}};render(){return e`
|
|
2
2
|
<button class="no-btn ph" @click="${this.export}">
|
|
3
3
|
<slot>
|
|
4
4
|
<k-icon name="export-file"></k-icon>
|
|
5
5
|
Export JSON
|
|
6
6
|
</slot>
|
|
7
7
|
</button>
|
|
8
|
-
`}}customElements.define("k-tc-export-json",
|
|
8
|
+
`}}customElements.define("k-tc-export-json",o);
|