kempo-ui 0.4.19 → 0.4.21
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/CHANGELOG.md +20 -0
- package/dist/components/Chat.js +10 -10
- package/dist/components/CodeEditor.js +23 -24
- package/dist/components/ControlGroup.js +17 -0
- package/dist/components/HtmlEditor.js +105 -106
- package/dist/components/MarkdownEditor.js +49 -49
- package/dist/components/Pagination.js +11 -11
- package/dist/components/Table.js +1 -1
- package/dist/components/controls/AlignCenter.js +1 -0
- package/dist/components/controls/AlignJustify.js +1 -0
- package/dist/components/controls/AlignLeft.js +1 -0
- package/dist/components/controls/AlignRight.js +1 -0
- package/dist/components/controls/Bold.js +1 -0
- package/dist/components/controls/BulletList.js +1 -0
- package/dist/components/controls/ButtonControl.js +33 -0
- package/dist/components/controls/CharacterCount.js +4 -0
- package/dist/components/controls/ClearFormatting.js +1 -0
- package/dist/components/controls/CodeBlock.js +1 -0
- package/dist/components/controls/Control.js +12 -0
- package/dist/components/controls/CopyCode.js +1 -0
- package/dist/components/controls/CreateLink.js +1 -0
- package/dist/components/controls/EditorTheme.js +30 -0
- package/dist/components/controls/FindReplace.js +1 -0
- package/dist/components/controls/FoldAll.js +1 -0
- package/dist/components/controls/FontSize.js +8 -0
- package/dist/components/controls/FontSizeDecrease.js +1 -0
- package/dist/components/controls/FontSizeIncrease.js +1 -0
- package/dist/components/controls/FormatBlock.js +8 -0
- package/dist/components/controls/FormatCode.js +1 -0
- package/dist/components/controls/Fullscreen.js +1 -0
- package/dist/components/controls/InlineCode.js +1 -0
- package/dist/components/controls/InsertTable.js +1 -0
- package/dist/components/controls/Italic.js +1 -0
- package/dist/components/controls/Language.js +21 -0
- package/dist/components/controls/MdImage.js +23 -0
- package/dist/components/controls/MdLink.js +1 -0
- package/dist/components/controls/MdSpeechToText.js +10 -0
- package/dist/components/controls/MdTable.js +19 -0
- package/dist/components/controls/Menu.js +51 -0
- package/dist/components/controls/Minimap.js +1 -0
- package/dist/components/controls/Mode.js +1 -0
- package/dist/components/controls/NumberList.js +1 -0
- package/dist/components/controls/PgCount.js +1 -0
- package/dist/components/controls/PgFirst.js +1 -0
- package/dist/components/controls/PgGotoPage.js +15 -0
- package/dist/components/controls/PgItemsPerPage.js +12 -0
- package/dist/components/controls/PgLast.js +1 -0
- package/dist/components/controls/PgNext.js +1 -0
- package/dist/components/controls/PgPageInfo.js +3 -0
- package/dist/components/controls/PgPrev.js +1 -0
- package/dist/components/controls/Quote.js +1 -0
- package/dist/components/controls/Redo.js +1 -0
- package/dist/components/{htmlEditorControls/ControlSpacer.js → controls/Spacer.js} +5 -5
- package/dist/components/controls/Strikethrough.js +1 -0
- package/dist/components/controls/TcDeleteRecord.js +1 -0
- package/dist/components/controls/TcDeleteSelected.js +1 -0
- package/dist/components/controls/TcEdit.js +12 -0
- package/dist/components/controls/TcExportCsv.js +3 -0
- package/dist/components/controls/TcExportJson.js +3 -0
- package/dist/components/controls/TcFieldSortHide.js +21 -0
- package/dist/components/controls/TcFilters.js +34 -0
- package/dist/components/controls/TcFirstPage.js +1 -0
- package/dist/components/controls/TcHiddenCount.js +1 -0
- package/dist/components/controls/TcHide.js +1 -0
- package/dist/components/controls/TcLastPage.js +1 -0
- package/dist/components/controls/TcNextPage.js +1 -0
- package/dist/components/controls/TcPageSelect.js +9 -0
- package/dist/components/controls/TcPageSize.js +5 -0
- package/dist/components/controls/TcPrevPage.js +1 -0
- package/dist/components/controls/TcSearch.js +1 -0
- package/dist/components/controls/TcShowAll.js +1 -0
- package/dist/components/controls/TextBackgroundColor.js +26 -0
- package/dist/components/controls/TextColor.js +26 -0
- package/dist/components/controls/Underline.js +1 -0
- package/dist/components/controls/Undo.js +1 -0
- package/dist/components/controls/WordCount.js +4 -0
- package/dist/components/controls/WordWrap.js +1 -0
- package/docs/components/code-editor.html +69 -48
- package/docs/components/html-editor.html +70 -69
- package/docs/components/markdown-editor.html +59 -78
- package/docs/components/pagination.html +51 -51
- package/docs/components/tableControls.html +5 -5
- package/docs/components/tableCustomFields.html +3 -3
- package/docs/components/tableFetchRecords.html +13 -13
- package/docs/components/tableFieldSortHide.html +4 -4
- package/docs/components/tablePagination.html +13 -13
- package/docs/components/tablePlaceholder.html +3 -3
- package/docs/components/tableRecordEditing.html +4 -4
- package/docs/components/tableRecordFiltering.html +5 -5
- package/docs/components/tableRecordHiding.html +7 -7
- package/docs/components/tableRecordSearching.html +3 -3
- package/docs/components/tableRowControls.html +6 -6
- package/docs/components/tableServerSync.html +7 -7
- package/docs/src/components/Chat.js +10 -10
- package/docs/src/components/CodeEditor.js +23 -24
- package/docs/src/components/ControlGroup.js +17 -0
- package/docs/src/components/HtmlEditor.js +105 -106
- package/docs/src/components/MarkdownEditor.js +49 -49
- package/docs/src/components/Pagination.js +11 -11
- package/docs/src/components/Table.js +1 -1
- package/docs/src/components/controls/AlignCenter.js +1 -0
- package/docs/src/components/controls/AlignJustify.js +1 -0
- package/docs/src/components/controls/AlignLeft.js +1 -0
- package/docs/src/components/controls/AlignRight.js +1 -0
- package/docs/src/components/controls/Bold.js +1 -0
- package/docs/src/components/controls/BulletList.js +1 -0
- package/docs/src/components/controls/ButtonControl.js +33 -0
- package/docs/src/components/controls/CharacterCount.js +4 -0
- package/docs/src/components/controls/ClearFormatting.js +1 -0
- package/docs/src/components/controls/CodeBlock.js +1 -0
- package/docs/src/components/controls/Control.js +12 -0
- package/docs/src/components/controls/CopyCode.js +1 -0
- package/docs/src/components/controls/CreateLink.js +1 -0
- package/docs/src/components/controls/EditorTheme.js +30 -0
- package/docs/src/components/controls/FindReplace.js +1 -0
- package/docs/src/components/controls/FoldAll.js +1 -0
- package/docs/src/components/controls/FontSize.js +8 -0
- package/docs/src/components/controls/FontSizeDecrease.js +1 -0
- package/docs/src/components/controls/FontSizeIncrease.js +1 -0
- package/docs/src/components/controls/FormatBlock.js +8 -0
- package/docs/src/components/controls/FormatCode.js +1 -0
- package/docs/src/components/controls/Fullscreen.js +1 -0
- package/docs/src/components/controls/InlineCode.js +1 -0
- package/docs/src/components/controls/InsertTable.js +1 -0
- package/docs/src/components/controls/Italic.js +1 -0
- package/docs/src/components/controls/Language.js +21 -0
- package/docs/src/components/controls/MdImage.js +23 -0
- package/docs/src/components/controls/MdLink.js +1 -0
- package/docs/src/components/controls/MdSpeechToText.js +10 -0
- package/docs/src/components/controls/MdTable.js +19 -0
- package/docs/src/components/controls/Menu.js +51 -0
- package/docs/src/components/controls/Minimap.js +1 -0
- package/docs/src/components/controls/Mode.js +1 -0
- package/docs/src/components/controls/NumberList.js +1 -0
- package/docs/src/components/controls/PgCount.js +1 -0
- package/docs/src/components/controls/PgFirst.js +1 -0
- package/docs/src/components/controls/PgGotoPage.js +15 -0
- package/docs/src/components/controls/PgItemsPerPage.js +12 -0
- package/docs/src/components/controls/PgLast.js +1 -0
- package/docs/src/components/controls/PgNext.js +1 -0
- package/docs/src/components/controls/PgPageInfo.js +3 -0
- package/docs/src/components/controls/PgPrev.js +1 -0
- package/docs/src/components/controls/Quote.js +1 -0
- package/docs/src/components/controls/Redo.js +1 -0
- package/docs/src/components/{codeEditorControls/ControlSpacer.js → controls/Spacer.js} +5 -5
- package/docs/src/components/controls/Strikethrough.js +1 -0
- package/docs/src/components/controls/TcDeleteRecord.js +1 -0
- package/docs/src/components/controls/TcDeleteSelected.js +1 -0
- package/docs/src/components/controls/TcEdit.js +12 -0
- package/docs/src/components/controls/TcExportCsv.js +3 -0
- package/docs/src/components/controls/TcExportJson.js +3 -0
- package/docs/src/components/controls/TcFieldSortHide.js +21 -0
- package/docs/src/components/controls/TcFilters.js +34 -0
- package/docs/src/components/controls/TcFirstPage.js +1 -0
- package/docs/src/components/controls/TcHiddenCount.js +1 -0
- package/docs/src/components/controls/TcHide.js +1 -0
- package/docs/src/components/controls/TcLastPage.js +1 -0
- package/docs/src/components/controls/TcNextPage.js +1 -0
- package/docs/src/components/controls/TcPageSelect.js +9 -0
- package/docs/src/components/controls/TcPageSize.js +5 -0
- package/docs/src/components/controls/TcPrevPage.js +1 -0
- package/docs/src/components/controls/TcSearch.js +1 -0
- package/docs/src/components/controls/TcShowAll.js +1 -0
- package/docs/src/components/controls/TextBackgroundColor.js +26 -0
- package/docs/src/components/controls/TextColor.js +26 -0
- package/docs/src/components/controls/Underline.js +1 -0
- package/docs/src/components/controls/Undo.js +1 -0
- package/docs/src/components/controls/WordCount.js +4 -0
- package/docs/src/components/controls/WordWrap.js +1 -0
- package/docs-src/components/code-editor.page.html +69 -48
- package/docs-src/components/html-editor.page.html +70 -69
- package/docs-src/components/markdown-editor.page.html +59 -78
- package/docs-src/components/pagination.page.html +51 -51
- package/docs-src/components/tableControls.page.html +5 -5
- package/docs-src/components/tableCustomFields.page.html +3 -3
- package/docs-src/components/tableFetchRecords.page.html +13 -13
- package/docs-src/components/tableFieldSortHide.page.html +4 -4
- package/docs-src/components/tablePagination.page.html +13 -13
- package/docs-src/components/tablePlaceholder.page.html +3 -3
- package/docs-src/components/tableRecordEditing.page.html +4 -4
- package/docs-src/components/tableRecordFiltering.page.html +5 -5
- package/docs-src/components/tableRecordHiding.page.html +7 -7
- package/docs-src/components/tableRecordSearching.page.html +3 -3
- package/docs-src/components/tableRowControls.page.html +6 -6
- package/docs-src/components/tableServerSync.page.html +7 -7
- package/llms.txt +37 -3
- package/package.json +1 -1
- package/src/components/Chat.js +14 -14
- package/src/components/CodeEditor.js +26 -32
- package/src/components/{codeEditorControls/ControlGroup.js → ControlGroup.js} +10 -6
- package/src/components/HtmlEditor.js +107 -125
- package/src/components/MarkdownEditor.js +117 -59
- package/src/components/Pagination.js +18 -23
- package/src/components/Table.js +5 -0
- package/src/components/controls/AlignCenter.js +19 -0
- package/src/components/controls/AlignJustify.js +19 -0
- package/src/components/controls/AlignLeft.js +19 -0
- package/src/components/controls/AlignRight.js +19 -0
- package/src/components/controls/Bold.js +19 -0
- package/src/components/controls/BulletList.js +19 -0
- package/src/components/controls/ButtonControl.js +114 -0
- package/src/components/controls/CharacterCount.js +48 -0
- package/src/components/controls/ClearFormatting.js +19 -0
- package/src/components/controls/CodeBlock.js +27 -0
- package/src/components/controls/Control.js +176 -0
- package/src/components/controls/CopyCode.js +19 -0
- package/src/components/controls/CreateLink.js +63 -0
- package/src/components/controls/EditorTheme.js +71 -0
- package/src/components/controls/FindReplace.js +19 -0
- package/src/components/controls/FoldAll.js +35 -0
- package/src/components/controls/FontSize.js +31 -0
- package/src/components/controls/FontSizeDecrease.js +19 -0
- package/src/components/controls/FontSizeIncrease.js +19 -0
- package/src/components/controls/FormatBlock.js +64 -0
- package/src/components/controls/FormatCode.js +19 -0
- package/src/components/controls/Fullscreen.js +42 -0
- package/src/components/controls/InlineCode.js +19 -0
- package/src/components/controls/InsertTable.js +67 -0
- package/src/components/controls/Italic.js +19 -0
- package/src/components/controls/Language.js +69 -0
- package/src/components/controls/MdImage.js +72 -0
- package/src/components/controls/MdLink.js +60 -0
- package/src/components/controls/MdSpeechToText.js +46 -0
- package/src/components/controls/MdTable.js +79 -0
- package/src/components/controls/Menu.js +98 -0
- package/src/components/controls/Minimap.js +36 -0
- package/src/components/controls/Mode.js +30 -0
- package/src/components/controls/NumberList.js +19 -0
- package/src/components/controls/PgCount.js +12 -0
- package/src/components/controls/PgFirst.js +28 -0
- package/src/components/controls/PgGotoPage.js +48 -0
- package/src/components/controls/PgItemsPerPage.js +36 -0
- package/src/components/controls/PgLast.js +28 -0
- package/src/components/controls/PgNext.js +25 -0
- package/src/components/controls/PgPageInfo.js +22 -0
- package/src/components/controls/PgPrev.js +25 -0
- package/src/components/controls/Quote.js +19 -0
- package/src/components/controls/Redo.js +18 -0
- package/src/components/controls/Spacer.js +15 -0
- package/src/components/controls/Strikethrough.js +19 -0
- package/src/components/controls/TcDeleteRecord.js +30 -0
- package/src/components/controls/TcDeleteSelected.js +16 -0
- package/src/components/controls/TcEdit.js +73 -0
- package/src/components/controls/TcExportCsv.js +60 -0
- package/src/components/controls/TcExportJson.js +46 -0
- package/src/components/controls/TcFieldSortHide.js +56 -0
- package/src/components/controls/TcFilters.js +86 -0
- package/src/components/controls/TcFirstPage.js +24 -0
- package/src/components/controls/TcHiddenCount.js +39 -0
- package/src/components/controls/TcHide.js +30 -0
- package/src/components/controls/TcLastPage.js +24 -0
- package/src/components/controls/TcNextPage.js +24 -0
- package/src/components/controls/TcPageSelect.js +36 -0
- package/src/components/controls/TcPageSize.js +23 -0
- package/src/components/controls/TcPrevPage.js +24 -0
- package/src/components/controls/TcSearch.js +34 -0
- package/src/components/controls/TcShowAll.js +18 -0
- package/src/components/controls/TextBackgroundColor.js +84 -0
- package/src/components/controls/TextColor.js +84 -0
- package/src/components/controls/Underline.js +19 -0
- package/src/components/controls/Undo.js +18 -0
- package/src/components/controls/WordCount.js +48 -0
- package/src/components/controls/WordWrap.js +36 -0
- package/tasks/released/0006-create-pagination-component.md +1 -1
- package/tasks/released/0007-code-editor-updates/branch-custom-controls.png +0 -0
- package/tasks/released/0007-code-editor-updates/branch-toolbar.png +0 -0
- package/tasks/released/0007-code-editor-updates/docs-overview.png +0 -0
- package/tasks/released/0007-code-editor-updates/form-integration.png +0 -0
- package/tasks/released/0007-code-editor-updates/live-builtin-controls.png +0 -0
- package/tasks/released/0007-code-editor-updates/live-custom-controls.png +0 -0
- package/tasks/released/0007-code-editor-updates/live-toolbar.png +0 -0
- package/tasks/released/0007-code-editor-updates/local-builtin-controls.png +0 -0
- package/tasks/released/0007-code-editor-updates/local-fixed-builtin.png +0 -0
- package/tasks/released/0007-code-editor-updates/theme-selector.png +0 -0
- package/tasks/released/0007-code-editor-updates.md +96 -0
- package/tests/components/CodeEditor.browser-test.js +0 -42
- package/tests/components/HtmlEditor.browser-test.js +0 -88
- package/tests/components/MarkdownEditor.browser-test.js +0 -72
- package/tests/components/Pagination.browser-test.js +12 -90
- package/tests/components/{htmlEditorControls → controls}/Align.browser-test.js +16 -16
- package/tests/components/{htmlEditorControls → controls}/Bold.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/BulletList.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/CharacterCount.browser-test.js +5 -5
- package/tests/components/{htmlEditorControls → controls}/ClearFormatting.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/CodeBlock.browser-test.js +8 -8
- package/tests/components/controls/Control.browser-test.js +147 -0
- package/tests/components/{htmlEditorControls → controls}/ControlGroup.browser-test.js +9 -9
- package/tests/components/{htmlEditorControls → controls}/ControlSpacer.browser-test.js +4 -4
- package/tests/components/{codeEditorControls → controls}/CopyCode.browser-test.js +8 -8
- package/tests/components/{htmlEditorControls → controls}/CreateLink.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/DropdownControl.browser-test.js +8 -8
- package/tests/components/{codeEditorControls → controls}/EditorTheme.browser-test.js +4 -4
- package/tests/components/{tableControls → controls}/ExportControls.browser-test.js +22 -46
- package/tests/components/{tableControls → controls}/FieldSortHide.browser-test.js +14 -26
- package/tests/components/{tableControls → controls}/Filters.browser-test.js +15 -27
- package/tests/components/{codeEditorControls → controls}/FindReplace.browser-test.js +8 -8
- package/tests/components/{codeEditorControls → controls}/FoldAll.browser-test.js +10 -10
- package/tests/components/{codeEditorControls → controls}/FontSize.browser-test.js +19 -14
- package/tests/components/{htmlEditorControls → controls}/FormatBlock.browser-test.js +9 -9
- package/tests/components/{htmlEditorControls → controls}/FormatCode.browser-test.js +17 -18
- package/tests/components/{codeEditorControls → controls}/Fullscreen.browser-test.js +11 -32
- package/tests/components/{tableControls → controls}/HiddenCount.browser-test.js +4 -4
- package/tests/components/{htmlEditorControls → controls}/InlineCode.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/InsertTable.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/Italic.browser-test.js +7 -7
- package/tests/components/{codeEditorControls → controls}/LanguageSelect.browser-test.js +4 -4
- package/tests/components/{codeEditorControls → controls}/Minimap.browser-test.js +8 -8
- package/tests/components/{htmlEditorControls → controls}/Mode.browser-test.js +7 -7
- package/tests/components/{codeEditorControls → controls}/ModeVisibility.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/NumberList.browser-test.js +7 -7
- package/tests/components/{tableControls → controls}/PaginationControls.browser-test.js +45 -45
- package/tests/components/{tableControls → controls}/RecordControls.browser-test.js +24 -60
- package/tests/components/{tableControls → controls}/Search.browser-test.js +4 -16
- package/tests/components/{htmlEditorControls → controls}/Strikethrough.browser-test.js +7 -7
- package/tests/components/{htmlEditorControls → controls}/TextBackgroundColor.browser-test.js +5 -5
- package/tests/components/{htmlEditorControls → controls}/TextColor.browser-test.js +5 -5
- package/tests/components/{htmlEditorControls → controls}/Underline.browser-test.js +7 -7
- package/tests/components/{codeEditorControls → controls}/UndoRedo.browser-test.js +15 -15
- package/tests/components/{htmlEditorControls → controls}/WordCount.browser-test.js +5 -5
- package/tests/components/{codeEditorControls → controls}/WordWrap.browser-test.js +8 -8
- package/dist/components/codeEditorControls/CodeEditorControl.js +0 -17
- package/dist/components/codeEditorControls/ControlGroup.js +0 -12
- package/dist/components/codeEditorControls/ControlSpacer.js +0 -6
- package/dist/components/codeEditorControls/CopyCode.js +0 -9
- package/dist/components/codeEditorControls/EditorTheme.js +0 -26
- package/dist/components/codeEditorControls/FindReplace.js +0 -7
- package/dist/components/codeEditorControls/FoldAll.js +0 -7
- package/dist/components/codeEditorControls/FontSize.js +0 -13
- package/dist/components/codeEditorControls/FormatCode.js +0 -9
- package/dist/components/codeEditorControls/Fullscreen.js +0 -12
- package/dist/components/codeEditorControls/LanguageSelect.js +0 -15
- package/dist/components/codeEditorControls/Minimap.js +0 -8
- package/dist/components/codeEditorControls/Redo.js +0 -7
- package/dist/components/codeEditorControls/Undo.js +0 -7
- package/dist/components/codeEditorControls/WordWrap.js +0 -8
- package/dist/components/htmlEditorControls/AlignCenter.js +0 -12
- package/dist/components/htmlEditorControls/AlignJustify.js +0 -12
- package/dist/components/htmlEditorControls/AlignLeft.js +0 -12
- package/dist/components/htmlEditorControls/AlignRight.js +0 -12
- package/dist/components/htmlEditorControls/Bold.js +0 -12
- package/dist/components/htmlEditorControls/BulletList.js +0 -12
- package/dist/components/htmlEditorControls/CharacterCount.js +0 -18
- package/dist/components/htmlEditorControls/ClearFormatting.js +0 -12
- package/dist/components/htmlEditorControls/CodeBlock.js +0 -12
- package/dist/components/htmlEditorControls/ControlGroup.js +0 -12
- package/dist/components/htmlEditorControls/CreateLink.js +0 -15
- package/dist/components/htmlEditorControls/DropdownControl.js +0 -57
- package/dist/components/htmlEditorControls/FormatBlock.js +0 -12
- package/dist/components/htmlEditorControls/FormatCode.js +0 -1
- package/dist/components/htmlEditorControls/HtmlEditorControl.js +0 -44
- package/dist/components/htmlEditorControls/InlineCode.js +0 -12
- package/dist/components/htmlEditorControls/InsertTable.js +0 -15
- package/dist/components/htmlEditorControls/Italic.js +0 -12
- package/dist/components/htmlEditorControls/Mode.js +0 -9
- package/dist/components/htmlEditorControls/NumberList.js +0 -12
- package/dist/components/htmlEditorControls/Strikethrough.js +0 -12
- package/dist/components/htmlEditorControls/TextBackgroundColor.js +0 -97
- package/dist/components/htmlEditorControls/TextColor.js +0 -97
- package/dist/components/htmlEditorControls/Underline.js +0 -12
- package/dist/components/htmlEditorControls/WordCount.js +0 -18
- package/dist/components/markdownEditorControls/Bold.js +0 -11
- package/dist/components/markdownEditorControls/BulletList.js +0 -11
- package/dist/components/markdownEditorControls/Code.js +0 -11
- package/dist/components/markdownEditorControls/FormatBlock.js +0 -30
- package/dist/components/markdownEditorControls/Heading.js +0 -11
- package/dist/components/markdownEditorControls/Image.js +0 -93
- package/dist/components/markdownEditorControls/Italic.js +0 -11
- package/dist/components/markdownEditorControls/Link.js +0 -11
- package/dist/components/markdownEditorControls/MarkdownEditorControl.js +0 -39
- package/dist/components/markdownEditorControls/Menu.js +0 -30
- package/dist/components/markdownEditorControls/NumberedList.js +0 -11
- package/dist/components/markdownEditorControls/Quote.js +0 -11
- package/dist/components/markdownEditorControls/SpeechToText.js +0 -16
- package/dist/components/markdownEditorControls/Strikethrough.js +0 -11
- package/dist/components/markdownEditorControls/Table.js +0 -80
- package/dist/components/paginationControls/FirstPage.js +0 -1
- package/dist/components/paginationControls/GotoPage.js +0 -17
- package/dist/components/paginationControls/ItemsPerPage.js +0 -15
- package/dist/components/paginationControls/LastPage.js +0 -1
- package/dist/components/paginationControls/NextPage.js +0 -1
- package/dist/components/paginationControls/PageCount.js +0 -1
- package/dist/components/paginationControls/PageInfo.js +0 -6
- package/dist/components/paginationControls/PaginationButtonControl.js +0 -20
- package/dist/components/paginationControls/PaginationControl.js +0 -5
- package/dist/components/paginationControls/PrevPage.js +0 -1
- package/dist/components/tableControls/DeleteRecord.js +0 -7
- package/dist/components/tableControls/DeleteSelected.js +0 -7
- package/dist/components/tableControls/Edit.js +0 -18
- package/dist/components/tableControls/ExportCSV.js +0 -8
- package/dist/components/tableControls/ExportJson.js +0 -8
- package/dist/components/tableControls/FieldSortHide.js +0 -25
- package/dist/components/tableControls/Filters.js +0 -46
- package/dist/components/tableControls/FirstPage.js +0 -9
- package/dist/components/tableControls/HiddenCount.js +0 -3
- package/dist/components/tableControls/Hide.js +0 -5
- package/dist/components/tableControls/LastPage.js +0 -9
- package/dist/components/tableControls/NextPage.js +0 -9
- package/dist/components/tableControls/PageSelect.js +0 -22
- package/dist/components/tableControls/PageSize.js +0 -5
- package/dist/components/tableControls/PrevPage.js +0 -9
- package/dist/components/tableControls/Search.js +0 -9
- package/dist/components/tableControls/ShowAll.js +0 -5
- package/dist/components/tableControls/TableControl.js +0 -16
- package/docs/src/components/codeEditorControls/CodeEditorControl.js +0 -17
- package/docs/src/components/codeEditorControls/ControlGroup.js +0 -12
- package/docs/src/components/codeEditorControls/CopyCode.js +0 -9
- package/docs/src/components/codeEditorControls/EditorTheme.js +0 -26
- package/docs/src/components/codeEditorControls/FindReplace.js +0 -7
- package/docs/src/components/codeEditorControls/FoldAll.js +0 -7
- package/docs/src/components/codeEditorControls/FontSize.js +0 -13
- package/docs/src/components/codeEditorControls/FormatCode.js +0 -9
- package/docs/src/components/codeEditorControls/Fullscreen.js +0 -12
- package/docs/src/components/codeEditorControls/LanguageSelect.js +0 -15
- package/docs/src/components/codeEditorControls/Minimap.js +0 -8
- package/docs/src/components/codeEditorControls/Redo.js +0 -7
- package/docs/src/components/codeEditorControls/Undo.js +0 -7
- package/docs/src/components/codeEditorControls/WordWrap.js +0 -8
- package/docs/src/components/htmlEditorControls/AlignCenter.js +0 -12
- package/docs/src/components/htmlEditorControls/AlignJustify.js +0 -12
- package/docs/src/components/htmlEditorControls/AlignLeft.js +0 -12
- package/docs/src/components/htmlEditorControls/AlignRight.js +0 -12
- package/docs/src/components/htmlEditorControls/Bold.js +0 -12
- package/docs/src/components/htmlEditorControls/BulletList.js +0 -12
- package/docs/src/components/htmlEditorControls/CharacterCount.js +0 -18
- package/docs/src/components/htmlEditorControls/ClearFormatting.js +0 -12
- package/docs/src/components/htmlEditorControls/CodeBlock.js +0 -12
- package/docs/src/components/htmlEditorControls/ControlGroup.js +0 -12
- package/docs/src/components/htmlEditorControls/ControlSpacer.js +0 -6
- package/docs/src/components/htmlEditorControls/CreateLink.js +0 -15
- package/docs/src/components/htmlEditorControls/DropdownControl.js +0 -57
- package/docs/src/components/htmlEditorControls/FormatBlock.js +0 -12
- package/docs/src/components/htmlEditorControls/FormatCode.js +0 -1
- package/docs/src/components/htmlEditorControls/HtmlEditorControl.js +0 -44
- package/docs/src/components/htmlEditorControls/InlineCode.js +0 -12
- package/docs/src/components/htmlEditorControls/InsertTable.js +0 -15
- package/docs/src/components/htmlEditorControls/Italic.js +0 -12
- package/docs/src/components/htmlEditorControls/Mode.js +0 -9
- package/docs/src/components/htmlEditorControls/NumberList.js +0 -12
- package/docs/src/components/htmlEditorControls/Strikethrough.js +0 -12
- package/docs/src/components/htmlEditorControls/TextBackgroundColor.js +0 -97
- package/docs/src/components/htmlEditorControls/TextColor.js +0 -97
- package/docs/src/components/htmlEditorControls/Underline.js +0 -12
- package/docs/src/components/htmlEditorControls/WordCount.js +0 -18
- package/docs/src/components/markdownEditorControls/Bold.js +0 -11
- package/docs/src/components/markdownEditorControls/BulletList.js +0 -11
- package/docs/src/components/markdownEditorControls/Code.js +0 -11
- package/docs/src/components/markdownEditorControls/FormatBlock.js +0 -30
- package/docs/src/components/markdownEditorControls/Heading.js +0 -11
- package/docs/src/components/markdownEditorControls/Image.js +0 -93
- package/docs/src/components/markdownEditorControls/Italic.js +0 -11
- package/docs/src/components/markdownEditorControls/Link.js +0 -11
- package/docs/src/components/markdownEditorControls/MarkdownEditorControl.js +0 -39
- package/docs/src/components/markdownEditorControls/Menu.js +0 -30
- package/docs/src/components/markdownEditorControls/NumberedList.js +0 -11
- package/docs/src/components/markdownEditorControls/Quote.js +0 -11
- package/docs/src/components/markdownEditorControls/SpeechToText.js +0 -16
- package/docs/src/components/markdownEditorControls/Strikethrough.js +0 -11
- package/docs/src/components/markdownEditorControls/Table.js +0 -80
- package/docs/src/components/paginationControls/FirstPage.js +0 -1
- package/docs/src/components/paginationControls/GotoPage.js +0 -17
- package/docs/src/components/paginationControls/ItemsPerPage.js +0 -15
- package/docs/src/components/paginationControls/LastPage.js +0 -1
- package/docs/src/components/paginationControls/NextPage.js +0 -1
- package/docs/src/components/paginationControls/PageCount.js +0 -1
- package/docs/src/components/paginationControls/PageInfo.js +0 -6
- package/docs/src/components/paginationControls/PaginationButtonControl.js +0 -20
- package/docs/src/components/paginationControls/PaginationControl.js +0 -5
- package/docs/src/components/paginationControls/PrevPage.js +0 -1
- package/docs/src/components/tableControls/DeleteRecord.js +0 -7
- package/docs/src/components/tableControls/DeleteSelected.js +0 -7
- package/docs/src/components/tableControls/Edit.js +0 -18
- package/docs/src/components/tableControls/ExportCSV.js +0 -8
- package/docs/src/components/tableControls/ExportJson.js +0 -8
- package/docs/src/components/tableControls/FieldSortHide.js +0 -25
- package/docs/src/components/tableControls/Filters.js +0 -46
- package/docs/src/components/tableControls/FirstPage.js +0 -9
- package/docs/src/components/tableControls/HiddenCount.js +0 -3
- package/docs/src/components/tableControls/Hide.js +0 -5
- package/docs/src/components/tableControls/LastPage.js +0 -9
- package/docs/src/components/tableControls/NextPage.js +0 -9
- package/docs/src/components/tableControls/PageSelect.js +0 -22
- package/docs/src/components/tableControls/PageSize.js +0 -5
- package/docs/src/components/tableControls/PrevPage.js +0 -9
- package/docs/src/components/tableControls/Search.js +0 -9
- package/docs/src/components/tableControls/ShowAll.js +0 -5
- package/docs/src/components/tableControls/TableControl.js +0 -16
- package/src/components/codeEditorControls/CodeEditorControl.js +0 -134
- package/src/components/codeEditorControls/ControlSpacer.js +0 -23
- package/src/components/codeEditorControls/CopyCode.js +0 -37
- package/src/components/codeEditorControls/EditorTheme.js +0 -81
- package/src/components/codeEditorControls/FindReplace.js +0 -35
- package/src/components/codeEditorControls/FoldAll.js +0 -49
- package/src/components/codeEditorControls/FontSize.js +0 -45
- package/src/components/codeEditorControls/FormatCode.js +0 -37
- package/src/components/codeEditorControls/Fullscreen.js +0 -72
- package/src/components/codeEditorControls/LanguageSelect.js +0 -74
- package/src/components/codeEditorControls/Minimap.js +0 -60
- package/src/components/codeEditorControls/Redo.js +0 -35
- package/src/components/codeEditorControls/Undo.js +0 -35
- package/src/components/codeEditorControls/WordWrap.js +0 -60
- package/src/components/htmlEditorControls/AlignCenter.js +0 -63
- package/src/components/htmlEditorControls/AlignJustify.js +0 -63
- package/src/components/htmlEditorControls/AlignLeft.js +0 -63
- package/src/components/htmlEditorControls/AlignRight.js +0 -63
- package/src/components/htmlEditorControls/Bold.js +0 -63
- package/src/components/htmlEditorControls/BulletList.js +0 -63
- package/src/components/htmlEditorControls/CharacterCount.js +0 -75
- package/src/components/htmlEditorControls/ClearFormatting.js +0 -63
- package/src/components/htmlEditorControls/CodeBlock.js +0 -64
- package/src/components/htmlEditorControls/ControlGroup.js +0 -70
- package/src/components/htmlEditorControls/ControlSpacer.js +0 -23
- package/src/components/htmlEditorControls/CreateLink.js +0 -115
- package/src/components/htmlEditorControls/DropdownControl.js +0 -149
- package/src/components/htmlEditorControls/FormatBlock.js +0 -106
- package/src/components/htmlEditorControls/FormatCode.js +0 -7
- package/src/components/htmlEditorControls/HtmlEditorControl.js +0 -164
- package/src/components/htmlEditorControls/InlineCode.js +0 -63
- package/src/components/htmlEditorControls/InsertTable.js +0 -126
- package/src/components/htmlEditorControls/Italic.js +0 -63
- package/src/components/htmlEditorControls/Mode.js +0 -68
- package/src/components/htmlEditorControls/NumberList.js +0 -63
- package/src/components/htmlEditorControls/Strikethrough.js +0 -63
- package/src/components/htmlEditorControls/TextBackgroundColor.js +0 -189
- package/src/components/htmlEditorControls/TextColor.js +0 -189
- package/src/components/htmlEditorControls/Underline.js +0 -63
- package/src/components/htmlEditorControls/WordCount.js +0 -76
- package/src/components/markdownEditorControls/Bold.js +0 -30
- package/src/components/markdownEditorControls/BulletList.js +0 -30
- package/src/components/markdownEditorControls/Code.js +0 -39
- package/src/components/markdownEditorControls/FormatBlock.js +0 -102
- package/src/components/markdownEditorControls/Heading.js +0 -46
- package/src/components/markdownEditorControls/Image.js +0 -250
- package/src/components/markdownEditorControls/Italic.js +0 -30
- package/src/components/markdownEditorControls/Link.js +0 -74
- package/src/components/markdownEditorControls/MarkdownEditorControl.js +0 -158
- package/src/components/markdownEditorControls/Menu.js +0 -86
- package/src/components/markdownEditorControls/NumberedList.js +0 -69
- package/src/components/markdownEditorControls/Quote.js +0 -30
- package/src/components/markdownEditorControls/SpeechToText.js +0 -65
- package/src/components/markdownEditorControls/Strikethrough.js +0 -35
- package/src/components/markdownEditorControls/Table.js +0 -165
- package/src/components/paginationControls/FirstPage.js +0 -26
- package/src/components/paginationControls/GotoPage.js +0 -56
- package/src/components/paginationControls/ItemsPerPage.js +0 -44
- package/src/components/paginationControls/LastPage.js +0 -26
- package/src/components/paginationControls/NextPage.js +0 -26
- package/src/components/paginationControls/PageCount.js +0 -10
- package/src/components/paginationControls/PageInfo.js +0 -23
- package/src/components/paginationControls/PaginationButtonControl.js +0 -76
- package/src/components/paginationControls/PaginationControl.js +0 -43
- package/src/components/paginationControls/PrevPage.js +0 -26
- package/src/components/tableControls/DeleteRecord.js +0 -29
- package/src/components/tableControls/DeleteSelected.js +0 -27
- package/src/components/tableControls/Edit.js +0 -86
- package/src/components/tableControls/ExportCSV.js +0 -71
- package/src/components/tableControls/ExportJson.js +0 -55
- package/src/components/tableControls/FieldSortHide.js +0 -76
- package/src/components/tableControls/Filters.js +0 -113
- package/src/components/tableControls/FirstPage.js +0 -65
- package/src/components/tableControls/HiddenCount.js +0 -43
- package/src/components/tableControls/Hide.js +0 -34
- package/src/components/tableControls/LastPage.js +0 -65
- package/src/components/tableControls/NextPage.js +0 -65
- package/src/components/tableControls/PageSelect.js +0 -101
- package/src/components/tableControls/PageSize.js +0 -68
- package/src/components/tableControls/PrevPage.js +0 -65
- package/src/components/tableControls/Search.js +0 -56
- package/src/components/tableControls/ShowAll.js +0 -34
- package/src/components/tableControls/TableControl.js +0 -103
- package/tasks/0006-create-pagination-component/screenshot-01-top.png +0 -0
- package/tasks/0006-create-pagination-component/screenshot-02-controls.png +0 -0
- package/tasks/0006-create-pagination-component/screenshot-03-preconfigured.png +0 -0
- package/tasks/0006-create-pagination-component/screenshot-04-live-demo-page1.png +0 -0
- package/tasks/0006-create-pagination-component/screenshot-05-live-demo-page2.png +0 -0
- package/tasks/0006-create-pagination-component/screenshot-06-live-demo-last-page.png +0 -0
- package/tasks/0006-create-pagination-component/screenshot-07-js-reference.png +0 -0
- package/tasks/0006-create-pagination-component.md +0 -136
- package/tests/components/tableControls/TableControl.browser-test.js +0 -300
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{html as e,css as t,unsafeStatic as s,literal as i}from"../lit-all.min.js";import r from"./ShadowComponent.js";import{toTitleCase as o}from"../utils/string.js";import{boolExists as n}from"../utils/propConverters.js";const l=Symbol("selected"),a=Symbol("hidden"),d=Symbol("index"),c=Symbol("editing");export default class h extends r{static properties={enablePages:{type:Boolean,reflect:!0,converter:n,attribute:"enable-pages"},pageSize:{type:Number,reflect:!0,attribute:"page-size"},currentPage:{type:Number,reflect:!0,attribute:"current-page"},pageSizeOptions:{type:Array,attribute:"page-size-options"},enableSelection:{type:Boolean,reflect:!0,converter:n,attribute:"enable-selection"},enableSorting:{type:Boolean,reflect:!0,converter:n,attribute:"enable-sorting"},caseSensitiveFilters:{type:Boolean,reflect:!0,converter:n,attribute:"case-sensitive-filters"},requestEdit:{type:Boolean,reflect:!0,converter:n,attribute:"request-edit"},requestDelete:{type:Boolean,reflect:!0,converter:n,attribute:"request-delete"},placeholder:{type:String,reflect:!0},filteredPlaceholder:{type:String,reflect:!0,attribute:"filtered-placeholder"},fields:{type:Array},records:{type:Array},filters:{type:Array},sort:{type:Array},columnSizes:{type:Object},fetchPending:{type:Boolean}};constructor(e={}){super(),void 0===this.pageSize&&(this.pageSize=50),void 0===this.currentPage&&(this.currentPage=1),void 0===this.pageSizeOptions&&(this.pageSizeOptions=[10,25,50,100,500]),void 0===this.records&&(this.records=e.records||[]),void 0===this.fields&&(this.fields=e.fields||[]),void 0===this.filters&&(this.filters=e.filters||[]),void 0===this.sort&&(this.sort=[]),void 0===this.columnSizes&&(this.columnSizes={}),void 0===this.fetchPending&&(this.fetchPending=!1),void 0===this.requestEdit&&(this.requestEdit=!1),void 0===this.requestDelete&&(this.requestDelete=!1),void 0===this.placeholder&&(this.placeholder="No Records"),void 0===this.filteredPlaceholder&&(this.filteredPlaceholder="")}handleSelectAllChange=e=>{e.target.checked?this.selectAllOnPage():this.deselectAllOnPage()};handleFieldClick=e=>{const t=this.sort.find(t=>t.name===e),s=!t||!t.asc;this.sortBy(e,s)};handleRecordSelectionChange=(e,t)=>{e[l]=!!t.target.checked,this.requestUpdate(),this.dispatchEvent(new CustomEvent("selectionChange",{bubbles:!0}))};firstUpdated(){this.setData({records:this.records,fields:this.fields,filters:this.filters})}childrenUpdated(){this.requestUpdate()}updated(e){if(super.updated(e),this.enableSelection){const e=this.shadowRoot.getElementById("select-all");e&&(e.checked=this.getDisplayedRecords().length>0&&this.allOnPageSelected())}}renderColgroupTemplate(){const t=[];return this.enableSelection&&t.push(e`<col style="width: 40px" />`),this.hasBeforeControls()&&t.push(e`<col style="width: ${this.columnSizes.beforeControls}px" />`),this.fields.forEach(({size:s,hidden:i})=>{i||t.push(s?e`<col style="width: ${s}px" />`:e`<col />`)}),this.hasAfterControls()&&t.push(e`<col style="width: ${this.columnSizes.afterControls}px" />`),t}getColumnCount(){let e=0;return this.enableSelection&&e++,this.hasBeforeControls()&&e++,this.fields.forEach(({hidden:t})=>{t||e++}),this.hasAfterControls()&&e++,e}renderFieldsTemplate(){const t=[];return this.enableSelection&&t.push(e`
|
|
1
|
+
import{html as e,css as t,unsafeStatic as s,literal as i}from"../lit-all.min.js";import r from"./ShadowComponent.js";import{toTitleCase as o}from"../utils/string.js";import{boolExists as n}from"../utils/propConverters.js";const l=Symbol("selected"),a=Symbol("hidden"),d=Symbol("index"),c=Symbol("editing");export default class h extends r{static properties={enablePages:{type:Boolean,reflect:!0,converter:n,attribute:"enable-pages"},pageSize:{type:Number,reflect:!0,attribute:"page-size"},currentPage:{type:Number,reflect:!0,attribute:"current-page"},pageSizeOptions:{type:Array,attribute:"page-size-options"},enableSelection:{type:Boolean,reflect:!0,converter:n,attribute:"enable-selection"},enableSorting:{type:Boolean,reflect:!0,converter:n,attribute:"enable-sorting"},caseSensitiveFilters:{type:Boolean,reflect:!0,converter:n,attribute:"case-sensitive-filters"},requestEdit:{type:Boolean,reflect:!0,converter:n,attribute:"request-edit"},requestDelete:{type:Boolean,reflect:!0,converter:n,attribute:"request-delete"},placeholder:{type:String,reflect:!0},filteredPlaceholder:{type:String,reflect:!0,attribute:"filtered-placeholder"},fields:{type:Array},records:{type:Array},filters:{type:Array},sort:{type:Array},columnSizes:{type:Object},fetchPending:{type:Boolean}};constructor(e={}){super(),void 0===this.pageSize&&(this.pageSize=50),void 0===this.currentPage&&(this.currentPage=1),void 0===this.pageSizeOptions&&(this.pageSizeOptions=[10,25,50,100,500]),void 0===this.records&&(this.records=e.records||[]),void 0===this.fields&&(this.fields=e.fields||[]),void 0===this.filters&&(this.filters=e.filters||[]),void 0===this.sort&&(this.sort=[]),void 0===this.columnSizes&&(this.columnSizes={}),void 0===this.fetchPending&&(this.fetchPending=!1),void 0===this.requestEdit&&(this.requestEdit=!1),void 0===this.requestDelete&&(this.requestDelete=!1),void 0===this.placeholder&&(this.placeholder="No Records"),void 0===this.filteredPlaceholder&&(this.filteredPlaceholder="")}handleSelectAllChange=e=>{e.target.checked?this.selectAllOnPage():this.deselectAllOnPage()};handleFieldClick=e=>{const t=this.sort.find(t=>t.name===e),s=!t||!t.asc;this.sortBy(e,s)};handleRecordSelectionChange=(e,t)=>{e[l]=!!t.target.checked,this.requestUpdate(),this.dispatchEvent(new CustomEvent("selectionChange",{bubbles:!0}))};connectedCallback(){super.connectedCallback(),this.hasAttribute("controlled")||this.setAttribute("controlled","")}firstUpdated(){this.setData({records:this.records,fields:this.fields,filters:this.filters})}childrenUpdated(){this.requestUpdate()}updated(e){if(super.updated(e),this.enableSelection){const e=this.shadowRoot.getElementById("select-all");e&&(e.checked=this.getDisplayedRecords().length>0&&this.allOnPageSelected())}}renderColgroupTemplate(){const t=[];return this.enableSelection&&t.push(e`<col style="width: 40px" />`),this.hasBeforeControls()&&t.push(e`<col style="width: ${this.columnSizes.beforeControls}px" />`),this.fields.forEach(({size:s,hidden:i})=>{i||t.push(s?e`<col style="width: ${s}px" />`:e`<col />`)}),this.hasAfterControls()&&t.push(e`<col style="width: ${this.columnSizes.afterControls}px" />`),t}getColumnCount(){let e=0;return this.enableSelection&&e++,this.hasBeforeControls()&&e++,this.fields.forEach(({hidden:t})=>{t||e++}),this.hasAfterControls()&&e++,e}renderFieldsTemplate(){const t=[];return this.enableSelection&&t.push(e`
|
|
2
2
|
<th class="controls field-select">
|
|
3
3
|
<input type="checkbox" id="select-all" @change=${this.handleSelectAllChange} />
|
|
4
4
|
</th>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class n extends t{static requires=["alignCenter"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Align Center")}handleAction(){this.host?.alignCenter?.()}render(){return e`<slot><k-icon name="format_align_center"></k-icon></slot>`}}customElements.define("kc-align-center",n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as i}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static requires=["alignJustify"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Justify")}handleAction(){this.host?.alignJustify?.()}render(){return i`<slot><k-icon name="format_align_justify"></k-icon></slot>`}}customElements.define("kc-align-justify",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static requires=["alignLeft"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Align Left")}handleAction(){this.host?.alignLeft?.()}render(){return e`<slot><k-icon name="format_align_left"></k-icon></slot>`}}customElements.define("kc-align-left",i);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as i}from"../../lit-all.min.js";import"../Icon.js";export default class e extends t{static requires=["alignRight"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Align Right")}handleAction(){this.host?.alignRight?.()}render(){return i`<slot><k-icon name="format_align_right"></k-icon></slot>`}}customElements.define("kc-align-right",e);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as o}from"../../lit-all.min.js";import"../Icon.js";export default class e extends t{static requires=["bold"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Bold")}handleAction(){this.host?.bold?.()}render(){return o`<slot><k-icon name="format_bold"></k-icon></slot>`}}customElements.define("kc-bold",e);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class l extends t{static requires=["bulletList"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Bulleted List")}handleAction(){this.host?.bulletList?.()}render(){return e`<slot><k-icon name="format_list_bulleted"></k-icon></slot>`}}customElements.define("kc-bullet-list",l);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import e from"./Control.js";import{css as t,html as i}from"../../lit-all.min.js";export default class s extends e{connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","button"),this.hasAttribute("tabindex")||(this.tabIndex=this.disabled?-1:0),this.setAttribute("aria-disabled",String(!!this.disabled)),this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeyDown)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this.handleClick),this.removeEventListener("keydown",this.handleKeyDown)}updated(e){super.updated(e),e.has("disabled")&&(this.tabIndex=this.disabled?-1:0,this.setAttribute("aria-disabled",String(this.disabled)))}handleAction(){}handleClick=e=>{this.disabled?e.stopImmediatePropagation():this.handleAction()};handleKeyDown=e=>{this.disabled||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.click())};render(){return i`<slot></slot>`}static styles=[e.styles,t`
|
|
2
|
+
:host {
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
min-width: 2rem;
|
|
6
|
+
min-height: 2rem;
|
|
7
|
+
background: transparent;
|
|
8
|
+
border: 1px solid var(--c_border);
|
|
9
|
+
border-radius: var(--radius);
|
|
10
|
+
margin: var(--spacer_q);
|
|
11
|
+
padding: var(--spacer_h);
|
|
12
|
+
color: inherit;
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
outline: none;
|
|
15
|
+
font-size: inherit;
|
|
16
|
+
user-select: none;
|
|
17
|
+
transition: background-color var(--animation_ms), box-shadow var(--animation_ms);
|
|
18
|
+
}
|
|
19
|
+
:host(:not([disabled]):hover) {
|
|
20
|
+
background: oklch(from var(--c_bg__inv) l c h / 0.15);
|
|
21
|
+
}
|
|
22
|
+
:host(:not([disabled]):focus),
|
|
23
|
+
:host(:not([disabled]):focus-visible) {
|
|
24
|
+
box-shadow: var(--focus_shadow);
|
|
25
|
+
z-index: 1;
|
|
26
|
+
}
|
|
27
|
+
:host([disabled]) {
|
|
28
|
+
cursor: default;
|
|
29
|
+
}
|
|
30
|
+
:host([active]) {
|
|
31
|
+
background: oklch(from var(--c_primary) l c h / 0.18);
|
|
32
|
+
}
|
|
33
|
+
`]}customElements.define("kc-button",s);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as e,css as s}from"../../lit-all.min.js";export default class n extends t{static hostEvents=["change","ready"];static properties={...t.properties,count:{type:Number,state:!0}};constructor(){super(),this.count=0}connectedCallback(){super.connectedCallback(),setTimeout(()=>this.updateCount(),0)}willUpdate(t){super.willUpdate?.(t),this.updateCount()}updateCount(){const t=this.host;if(!t||"function"!=typeof t.getValue)return;const e=t.getValue()||"",s=e.includes("<")?(new DOMParser).parseFromString(e,"text/html").body.innerText||"":e;this.count=s.length}render(){return e`<span class="character-count"><slot name="label">Characters:</slot> ${this.count}</span>`}static styles=[t.styles,s`
|
|
2
|
+
:host { align-items: center; padding: 0 0.5rem; font-size: 0.875rem; color: var(--tc_muted, #666); }
|
|
3
|
+
.character-count { display: flex; align-items: center; gap: 0.25rem; }
|
|
4
|
+
`]}customElements.define("kc-character-count",n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["removeFormat"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Clear Formatting")}handleAction(){this.host?.removeFormat?.()}render(){return e`<slot><k-icon name="format_clear"></k-icon></slot>`}}customElements.define("kc-clear-formatting",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as o}from"../../lit-all.min.js";import"../Icon.js";export default class e extends t{static requires=["formatBlock"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Code Block")}handleAction(){const t=this.host,o=t?.isSelectionInCodeBlock?.();t?.formatBlock?.(o?"p":"pre")}render(){return o`<slot><k-icon name="code_blocks"></k-icon></slot>`}}customElements.define("kc-code-block",e);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import t from"../ShadowComponent.js";import{css as e}from"../../lit-all.min.js";export default class s extends t{static properties={hidden:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0}};static requires=[];static hostEvents=[];constructor(){super(),this.hidden=!1,this.disabled=!1}connectedCallback(){super.connectedCallback();const t=this.host;if(this.boundHost=t,this.updateHostSupport(),t){this.modeHandler=()=>{this.updateModeVisibility(),this.requestUpdate()},t.addEventListener("mode-changed",this.modeHandler),this.hostEventHandler=()=>this.requestUpdate();for(const e of this.constructor.hostEvents||[])t.addEventListener(e,this.hostEventHandler);this.updateModeVisibility()}}disconnectedCallback(){if(super.disconnectedCallback(),this.boundHost&&(this.modeHandler&&this.boundHost.removeEventListener("mode-changed",this.modeHandler),this.hostEventHandler))for(const t of this.constructor.hostEvents||[])this.boundHost.removeEventListener(t,this.hostEventHandler);this.modeHandler=null,this.hostEventHandler=null,this.boundHost=null}updated(t){super.updated(t),t.has("hidden")&&this.dispatchEvent(new CustomEvent("control_visibility_change",{bubbles:!0}))}get host(){if(this.boundHost)return this.boundHost;let t=this.getRootNode();for(;t instanceof ShadowRoot;){const e=t.host,s=e?.closest?.("[controlled]")||(e?.hasAttribute?.("controlled")?e:null);if(s)return s;t=e.getRootNode()}return this.closest("[controlled]")}updateHostSupport(){const t=this.host,e=this.constructor.requires||[],s=!(t&&e.every(e=>"function"==typeof t[e]));this.disabled!==s&&(this.disabled=s)}updateModeVisibility(){const t=this.constructor.hostMode;if(!t)return;const e=this.host;if(!e)return;if(!("mode"in e))return;const s=!(Array.isArray(t)?t:[t]).includes(e.mode);this.hidden!==s&&(this.hidden=s)}static load=(()=>{const t=/<(kc-[a-z][a-z0-9-]*|k-control-group)\b/g,e=new Set,s=t=>{if("k-control-group"===t)return"../ControlGroup.js";return`./${t.slice(3).split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}.js`},o=(e,s=new Set)=>{if(!e)return s;if(Array.isArray(e))return e.forEach(t=>o(t,s)),s;if(e.strings)for(const o of e.strings){let e;for(t.lastIndex=0;null!==(e=t.exec(o));)s.add(e[1])}if("object"==typeof e)for(const t of Object.values(e))t&&(Array.isArray(t)||t.strings)&&o(t,s);return s};return async t=>{const n=o(t),i=new URL("./",import.meta.url).href,r=[];for(const t of n)e.has(t)||(e.add(t),r.push(import(new URL(s(t),i).href)));r.length&&await Promise.all(r)}})();static styles=e`
|
|
2
|
+
:host {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
}
|
|
5
|
+
:host([hidden]) {
|
|
6
|
+
display: none !important;
|
|
7
|
+
}
|
|
8
|
+
:host([disabled]) {
|
|
9
|
+
opacity: 0.5;
|
|
10
|
+
pointer-events: none;
|
|
11
|
+
}
|
|
12
|
+
`}customElements.define("kc-control",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as o}from"../../lit-all.min.js";import"../Icon.js";export default class e extends t{static requires=["copyToClipboard"];static hostMode="code";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Copy Code")}handleAction(){this.host?.copyToClipboard?.()}render(){return o`<slot><k-icon name="content_copy"></k-icon></slot>`}}customElements.define("kc-copy-code",e);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";import n from"../Dialog.js";export default class i extends e{static requires=["createLink"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Insert Link")}handleAction(){const e=this.host;if(!e)return;const t=e.getSelectedText?.()||"",i=document.createElement("input");i.type="text",i.placeholder="https://example.com",i.style.cssText="padding: 0.5rem; border: 1px solid var(--c_border); border-radius: var(--radius); font: inherit;";const l=document.createElement("input");l.type="text",l.placeholder="Enter link text",l.value=t,l.style.cssText="padding: 0.5rem; border: 1px solid var(--c_border); border-radius: var(--radius); font: inherit;";const r=document.createElement("div");r.className="p",r.style.cssText="display: flex; flex-direction: column; gap: 1rem;",r.innerHTML='\n <div style="display: flex; flex-direction: column; gap: 0.5rem;">\n <label style="font-weight: bold;">URL</label>\n </div>\n <div style="display: flex; flex-direction: column; gap: 0.5rem;">\n <label style="font-weight: bold;">Link Text</label>\n </div>\n ',r.children[0].appendChild(i),r.children[1].appendChild(l),n.create(r,{title:"Create Link",cancelText:"Cancel",confirmText:"Insert Link",confirmClasses:"success ml",confirmAction:n=>{const r=i.value.trim(),o=l.value.trim();r?!e.selection||o&&o!==t?e.createLinkWithText?.(r,o||r):e.createLink(r):n.keepDialogOpen=!0}})}render(){return t`<slot><k-icon name="link"></k-icon></slot>`}}customElements.define("kc-create-link",i);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class r extends t{static requires=["setEditorTheme"];static hostMode="code";static hostEvents=["editor-theme-changed"];static properties={...t.properties,value:{type:String,state:!0}};constructor(){super(),this.value="auto"}connectedCallback(){super.connectedCallback(),this.host&&(this.value=this.host.editorTheme||"auto")}willUpdate(t){super.willUpdate?.(t),this.host&&(this.value=this.host.editorTheme||"auto")}handleChange=t=>{this.host?.setEditorTheme?.(t.target.value)};static styles=[t.styles,o`
|
|
2
|
+
:host {
|
|
3
|
+
position: relative;
|
|
4
|
+
background-color: var(--input_bg);
|
|
5
|
+
color: var(--input_tc);
|
|
6
|
+
border: var(--input_border_width) solid var(--c_input_border);
|
|
7
|
+
border-radius: var(--radius);
|
|
8
|
+
transition: box-shadow var(--animation_ms);
|
|
9
|
+
margin-right: var(--spacer_q);
|
|
10
|
+
}
|
|
11
|
+
k-icon {
|
|
12
|
+
position: absolute;
|
|
13
|
+
left: 0.5rem;
|
|
14
|
+
top: 50%;
|
|
15
|
+
transform: translateY(-50%);
|
|
16
|
+
pointer-events: none;
|
|
17
|
+
}
|
|
18
|
+
select {
|
|
19
|
+
border: 0;
|
|
20
|
+
padding: var(--spacer_h) 1rem var(--spacer_h) 2rem;
|
|
21
|
+
min-height: 2.5rem;
|
|
22
|
+
}
|
|
23
|
+
`];render(){return e`
|
|
24
|
+
<k-icon name="contrast"></k-icon>
|
|
25
|
+
<select .value=${this.value} @change=${this.handleChange} title="Editor Theme">
|
|
26
|
+
<option value="auto">Auto</option>
|
|
27
|
+
<option value="light">Light</option>
|
|
28
|
+
<option value="dark">Dark</option>
|
|
29
|
+
</select>
|
|
30
|
+
`}}customElements.define("kc-editor-theme",r);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class n extends t{static requires=["openFind"];static hostMode="code";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Find & Replace")}handleAction(){this.host?.openFind?.()}render(){return e`<slot><k-icon name="search"></k-icon></slot>`}}customElements.define("kc-find-replace",n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as l}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["foldAll","unfoldAll"];static hostMode="code";static properties={...t.properties,folded:{type:Boolean,state:!0}};constructor(){super(),this.folded=!1}connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Fold All")}handleAction(){this.folded=!this.folded,this.folded?this.host?.foldAll?.():this.host?.unfoldAll?.()}render(){return l`<slot><k-icon name="${this.folded?"unfold_more":"unfold_less"}"></k-icon></slot>`}}customElements.define("kc-fold-all",o);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import e from"./Control.js";import{html as o,css as s}from"../../lit-all.min.js";import"./FontSizeIncrease.js";import"./FontSizeDecrease.js";import"../ControlGroup.js";export default class t extends e{static hostMode="code";static styles=[e.styles,s`
|
|
2
|
+
:host { gap: 0; }
|
|
3
|
+
`];render(){return o`
|
|
4
|
+
<k-control-group class="b r mq">
|
|
5
|
+
<kc-font-size-decrease></kc-font-size-decrease>
|
|
6
|
+
<kc-font-size-increase></kc-font-size-increase>
|
|
7
|
+
</k-control-group>
|
|
8
|
+
`}}customElements.define("kc-font-size",t);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class o extends e{static requires=["decreaseFontSize"];static hostMode="code";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Decrease Font Size")}handleAction(){this.host?.decreaseFontSize?.()}render(){return t`<slot><k-icon name="text_decrease"></k-icon></slot>`}}customElements.define("kc-font-size-decrease",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class n extends e{static requires=["increaseFontSize"];static hostMode="code";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Increase Font Size")}handleAction(){this.host?.increaseFontSize?.()}render(){return t`<slot><k-icon name="text_increase"></k-icon></slot>`}}customElements.define("kc-font-size-increase",n);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as a,css as e}from"../../lit-all.min.js";import"../Icon.js";const o={p:"Paragraph",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6",blockquote:"Blockquote",pre:"Code Block"},r={p:"format_paragraph",h1:"format_h1",h2:"format_h2",h3:"format_h3",h4:"format_h4",h5:"format_h5",h6:"format_h6",blockquote:"format_quote",pre:"code_blocks"};export default class s extends t{static requires=["formatBlock"];static hostMode=["visual","write"];static properties={...t.properties,tag:{type:String,reflect:!0}};constructor(){super(),this.tag="p"}connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title=o[this.tag]||this.tag)}getDefaultLabel(t){return o[t||this.tag]||(t||this.tag).toUpperCase()}getDefaultIcon(t){return r[t||this.tag]||"format_paragraph"}handleAction(){this.host?.formatBlock?.(this.tag)}render(){const t=o[this.tag]||this.tag.toUpperCase(),e=r[this.tag]||"format_paragraph";return a`
|
|
2
|
+
<slot name="icon"><k-icon name=${e}></k-icon></slot>
|
|
3
|
+
<slot>${t}</slot>
|
|
4
|
+
`}static styles=[t.styles,e`
|
|
5
|
+
:host {
|
|
6
|
+
gap: 0.5rem;
|
|
7
|
+
}
|
|
8
|
+
`]}customElements.define("kc-format-block",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["formatCode"];static hostMode="code";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Format Code")}handleAction(){this.host?.formatCode?.()}render(){return e`<slot><k-icon name="frame_source"></k-icon></slot>`}}customElements.define("kc-format-code",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class s extends e{static requires=["toggleFullscreen"];static hostEvents=["fullscreen-changed"];static properties={...e.properties,fullscreen:{type:Boolean,state:!0}};constructor(){super(),this.fullscreen=!1}connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Fullscreen"),this.host&&(this.fullscreen=!!this.host.fullscreen)}willUpdate(e){super.willUpdate?.(e),this.host&&(this.fullscreen=!!this.host.fullscreen)}updated(e){super.updated(e),e.has("fullscreen")&&this.toggleAttribute("active",this.fullscreen)}handleAction(){this.host?.toggleFullscreen?.()}render(){return t`<slot><k-icon name="${this.fullscreen?"fullscreen_exit":"fullscreen"}"></k-icon></slot>`}}customElements.define("kc-fullscreen",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static requires=["inlineCode"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Inline Code")}handleAction(){this.host?.inlineCode?.()}render(){return e`<slot><k-icon name="code_blocks"></k-icon></slot>`}}customElements.define("kc-inline-code",i);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";import l from"../Dialog.js";export default class n extends e{static requires=["insertTable"];static hostMode="visual";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Insert Table")}handleAction(){const e=this.host;if(!e)return;const t=e.getTableAtSelection?.(),n=!!t,r=t?.rows??3,i=t?.cols??3,s=t?.hasHeaders??!0,a=t?.cellData??null,o=document.createElement("input");o.type="number",o.min="1",o.max="20",o.value=String(r),o.style.cssText="padding: 0.5rem; border: 1px solid var(--c_border); border-radius: var(--radius); font: inherit;";const c=document.createElement("input");c.type="number",c.min="1",c.max="10",c.value=String(i),c.style.cssText="padding: 0.5rem; border: 1px solid var(--c_border); border-radius: var(--radius); font: inherit;";const d=document.createElement("input");d.type="checkbox",d.checked=s,d.id="kc-table-headers";const m=document.createElement("div");m.className="p",m.style.cssText="display: flex; flex-direction: column; gap: 1rem;",m.innerHTML='\n <div style="display: flex; flex-direction: column; gap: 0.5rem;"><label style="font-weight: bold;">Rows</label></div>\n <div style="display: flex; flex-direction: column; gap: 0.5rem;"><label style="font-weight: bold;">Columns</label></div>\n <div style="display: flex; align-items: center; gap: 0.5rem;"><label for="kc-table-headers" style="font-weight: bold;">Include Headers</label></div>\n ',m.children[0].appendChild(o),m.children[1].appendChild(c),m.children[2].insertBefore(d,m.children[2].firstChild),l.create(m,{title:n?"Edit Table":"Insert Table",cancelText:"Cancel",confirmText:n?"Update Table":"Insert Table",confirmClasses:"success",confirmAction:()=>{const l=parseInt(o.value)||3,r=parseInt(c.value)||3,i=d.checked;n&&e.removeTableByKey?.(t.key),e.insertTable(l,r,i,a)}})}render(){return t`<slot><k-icon name="table"></k-icon></slot>`}}customElements.define("kc-insert-table",n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as i}from"../../lit-all.min.js";import"../Icon.js";export default class e extends t{static requires=["italic"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Italic")}handleAction(){this.host?.italic?.()}render(){return i`<slot><k-icon name="format_italic"></k-icon></slot>`}}customElements.define("kc-italic",e);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as a,css as e}from"../../lit-all.min.js";import"../Icon.js";const s=["javascript","typescript","html","css","json","markdown","python","java","csharp","cpp","go","rust","php","ruby","sql","xml","yaml","shell","plaintext"];export default class r extends t{static requires=["setLanguage"];static hostMode="code";static hostEvents=["language-changed"];static properties={...t.properties,value:{type:String,state:!0}};constructor(){super(),this.value="javascript"}connectedCallback(){super.connectedCallback(),this.host&&(this.value=this.host.language||"javascript")}willUpdate(t){super.willUpdate?.(t),this.host&&(this.value=this.host.language||"javascript")}handleChange=t=>{this.host?.setLanguage?.(t.target.value)};static styles=[t.styles,e`
|
|
2
|
+
:host {
|
|
3
|
+
background-color: var(--input_bg);
|
|
4
|
+
color: var(--input_tc);
|
|
5
|
+
border: var(--input_border_width) solid var(--c_input_border);
|
|
6
|
+
border-radius: var(--radius);
|
|
7
|
+
transition: box-shadow var(--animation_ms);
|
|
8
|
+
margin-right: var(--spacer_q);
|
|
9
|
+
}
|
|
10
|
+
select {
|
|
11
|
+
border: 0;
|
|
12
|
+
padding: var(--spacer_h) var(--spacer);
|
|
13
|
+
min-height: 2.5rem;
|
|
14
|
+
}
|
|
15
|
+
`];render(){return a`
|
|
16
|
+
<select .value=${this.value} @change=${this.handleChange} title="Language">
|
|
17
|
+
${s.map(t=>a`
|
|
18
|
+
<option value="${t}" ?selected=${this.value===t}>${t}</option>
|
|
19
|
+
`)}
|
|
20
|
+
</select>
|
|
21
|
+
`}}customElements.define("kc-language",r);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import e from"./Control.js";import{html as t,css as o}from"../../lit-all.min.js";import"../Icon.js";import"../Dropdown.js";export default class r extends e{static requires=["replaceSelection"];static hostMode="write";handleDropdownOpened=()=>{requestAnimationFrame(()=>{const e=this.shadowRoot.querySelector(".image-url"),t=this.shadowRoot.querySelector(".image-alt");e?.focus();const o=this.host?.textarea;o&&t&&(t.value=o.value.substring(o.selectionStart,o.selectionEnd)||"")})};handleDropdownClosed=()=>{const e=this.shadowRoot.querySelector(".image-url"),t=this.shadowRoot.querySelector(".image-alt");e&&(e.value=""),t&&(t.value="")};handleFormKeydown=e=>{"Enter"===e.key?(e.preventDefault(),this.submit()):"Escape"===e.key&&this.shadowRoot.querySelector("k-dropdown")?.close()};submit(){const e=this.shadowRoot.querySelector(".image-url").value.trim(),t=this.shadowRoot.querySelector(".image-alt").value.trim();e?(this.host?.replaceSelection?.(``,{selectInserted:!1}),this.shadowRoot.querySelector("k-dropdown")?.close()):this.shadowRoot.querySelector(".image-url").focus()}render(){return t`
|
|
2
|
+
<k-dropdown @opened=${this.handleDropdownOpened} @closed=${this.handleDropdownClosed}>
|
|
3
|
+
<button slot="trigger" type="button" class="trigger" title="Image"><k-icon name="image"></k-icon></button>
|
|
4
|
+
<div class="image-form" @keydown=${this.handleFormKeydown}>
|
|
5
|
+
<label>Image URL</label>
|
|
6
|
+
<input class="image-url" type="url" required placeholder="https://example.com/image.png" />
|
|
7
|
+
<label>Alt text</label>
|
|
8
|
+
<input class="image-alt" type="text" placeholder="Description for screen readers" />
|
|
9
|
+
<div class="image-actions">
|
|
10
|
+
<button type="button" @click=${()=>this.shadowRoot.querySelector("k-dropdown").close()}>Cancel</button>
|
|
11
|
+
<button type="button" class="primary" @click=${()=>this.submit()}>Insert</button>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
</k-dropdown>
|
|
15
|
+
`}static styles=[e.styles,o`
|
|
16
|
+
.trigger { min-width: 2.5rem; min-height: 2.5rem; background: transparent; border: none; cursor: pointer; }
|
|
17
|
+
.image-form { display: flex; flex-direction: column; gap: 0.5rem; padding: 0.75rem; min-width: 16rem; }
|
|
18
|
+
.image-form label { font-weight: bold; font-size: 0.875rem; }
|
|
19
|
+
.image-form input { padding: 0.5rem; border: 1px solid var(--c_border); border-radius: var(--radius); font: inherit; }
|
|
20
|
+
.image-actions { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.25rem; }
|
|
21
|
+
.image-actions button { padding: 0.4rem 0.8rem; border: 1px solid var(--c_border); border-radius: var(--radius); cursor: pointer; font: inherit; }
|
|
22
|
+
.image-actions button.primary { background: var(--c_primary); color: white; border-color: var(--c_primary); }
|
|
23
|
+
`]}customElements.define("kc-md-image",r);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class n extends t{static requires=["replaceSelection"];static hostMode="write";connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Link")}handleAction(){const t=this.host;if(!t)return;const e=t.textarea;if(!e)return;const n=e.selectionStart,s=e.selectionEnd,l=e.value.substring(n,s),i=/\[([^\]]*)\]\([^)]*\)/g;let o;for(;null!==(o=i.exec(e.value));){const l=o.index,i=l+o[0].length;if(n>=l&&s<=i){const n=o[1],s=e.value.substring(0,l)+n+e.value.substring(i);return e.value=s,e.selectionStart=l,e.selectionEnd=l+n.length,e.focus(),t.value=s,void e.dispatchEvent(new Event("input",{bubbles:!0}))}}const c=l||"link text",r=`[${c}](url)`,u=e.value.substring(0,n)+r+e.value.substring(s),a=n+1+c.length+2;e.value=u,e.selectionStart=a,e.selectionEnd=a+3,e.focus(),t.value=u,e.dispatchEvent(new Event("input",{bubbles:!0}))}render(){return e`<slot><k-icon name="link"></k-icon></slot>`}}customElements.define("kc-md-link",n);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import e from"./Control.js";import{html as t,css as s}from"../../lit-all.min.js";import"../SpeechToText.js";export default class o extends e{static requires=["replaceSelection"];static hostMode="write";static properties={...e.properties,language:{type:String,reflect:!0},continuous:{type:Boolean,reflect:!0}};constructor(){super(),this.language="en-US",this.continuous=!1}handleEnd=e=>{const t=(e.detail?.text||"").trim();t&&this.host?.replaceSelection?.(t+" ",{selectInserted:!1})};render(){return t`
|
|
2
|
+
<k-speech-to-text
|
|
3
|
+
language=${this.language}
|
|
4
|
+
?continuous=${this.continuous}
|
|
5
|
+
@end=${this.handleEnd}
|
|
6
|
+
></k-speech-to-text>
|
|
7
|
+
`}static styles=[e.styles,s`
|
|
8
|
+
:host { margin: var(--spacer_q); }
|
|
9
|
+
k-speech-to-text { --btn_size: 2rem; }
|
|
10
|
+
`]}customElements.define("kc-md-speech-to-text",o);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import e from"./Control.js";import{html as t,css as r}from"../../lit-all.min.js";import"../Icon.js";import"../Dropdown.js";import{bound as o}from"../../utils/number.js";export default class n extends e{static requires=["replaceSelection"];static hostMode="write";handleDropdownOpened=()=>{requestAnimationFrame(()=>{const e=this.shadowRoot.querySelector(".tbl-cols");e&&(e.value="3",e.select());const t=this.shadowRoot.querySelector(".tbl-rows");t&&(t.value="2")})};handleFormKeydown=e=>{"Enter"===e.key?(e.preventDefault(),this.submit()):"Escape"===e.key&&this.shadowRoot.querySelector("k-dropdown")?.close()};submit(){const e=this.clamp(this.shadowRoot.querySelector(".tbl-cols").value,1,20),t=this.clamp(this.shadowRoot.querySelector(".tbl-rows").value,1,50);e&&t&&(this.host?.replaceSelection?.(this.buildTable(e,t),{selectInserted:!1}),this.shadowRoot.querySelector("k-dropdown")?.close())}clamp(e,t,r){const n=parseInt(e,10);return Number.isFinite(n)?o(n,t,r):0}buildTable(e,t){const r=Array.from({length:e},(e,t)=>` Header ${t+1} `).join("|"),o=Array.from({length:e},()=>" --- ").join("|"),n=Array.from({length:e},()=>" ").join("|");return`\n${[`|${r}|`,`|${o}|`,...Array.from({length:t},()=>`|${n}|`)].join("\n")}\n`}render(){return t`
|
|
2
|
+
<k-dropdown @opened=${this.handleDropdownOpened}>
|
|
3
|
+
<button slot="trigger" type="button" class="trigger" title="Table"><k-icon name="table"></k-icon></button>
|
|
4
|
+
<div class="tbl-form" @keydown=${this.handleFormKeydown}>
|
|
5
|
+
<input class="tbl-cols" type="number" min="1" max="20" inputmode="numeric" aria-label="Columns" value="3" />
|
|
6
|
+
<span class="tbl-x" aria-hidden="true">×</span>
|
|
7
|
+
<input class="tbl-rows" type="number" min="1" max="50" inputmode="numeric" aria-label="Rows" value="2" />
|
|
8
|
+
<button type="button" class="primary" @click=${()=>this.submit()}>Insert</button>
|
|
9
|
+
</div>
|
|
10
|
+
</k-dropdown>
|
|
11
|
+
`}static styles=[e.styles,r`
|
|
12
|
+
.trigger { min-width: 2.5rem; min-height: 2.5rem; background: transparent; border: none; cursor: pointer; }
|
|
13
|
+
.tbl-form { display: flex; align-items: center; gap: 0.4rem; padding: 0.5rem; }
|
|
14
|
+
.tbl-form input { width: 2.5rem; padding: 0.35rem 0.4rem; border: 1px solid var(--c_border); border-radius: var(--radius); font: inherit; text-align: center; -moz-appearance: textfield; }
|
|
15
|
+
.tbl-form input::-webkit-inner-spin-button,
|
|
16
|
+
.tbl-form input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
|
|
17
|
+
.tbl-x { color: var(--tc_muted); font-weight: bold; }
|
|
18
|
+
.tbl-form button.primary { padding: 0.4rem 0.8rem; border: 1px solid var(--c_primary); border-radius: var(--radius); background: var(--c_primary); color: white; cursor: pointer; font: inherit; }
|
|
19
|
+
`]}customElements.define("kc-md-table",n);
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import e from"./Control.js";import{css as o,html as t}from"../../lit-all.min.js";import"../Dropdown.js";import"../Icon.js";export default class n extends e{static properties={...e.properties,opened:{type:Boolean,reflect:!0}};constructor(){super(),this.opened=!1}handleToggle=()=>{this.opened=!this.opened};handleOpened=()=>{this.opened=!0};handleClosed=()=>{this.opened=!1};render(){return t`
|
|
2
|
+
<k-dropdown
|
|
3
|
+
?opened=${this.opened}
|
|
4
|
+
@opened=${this.handleOpened}
|
|
5
|
+
@closed=${this.handleClosed}
|
|
6
|
+
>
|
|
7
|
+
<button slot="trigger" class="no-btn icon-btn">
|
|
8
|
+
<slot name="icon"><k-icon name="arrow_drop_down"></k-icon></slot>
|
|
9
|
+
<slot name="label"></slot>
|
|
10
|
+
</button>
|
|
11
|
+
<slot></slot>
|
|
12
|
+
</k-dropdown>
|
|
13
|
+
`}static styles=[e.styles,o`
|
|
14
|
+
:host {
|
|
15
|
+
border: 1px solid var(--c_border);
|
|
16
|
+
border-radius: var(--radius);
|
|
17
|
+
margin: var(--spacer_q);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
k-dropdown {
|
|
21
|
+
display: inline-flex;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
button[slot="trigger"] {
|
|
25
|
+
display: inline-flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
gap: 0.5rem;
|
|
29
|
+
min-width: 2.5rem;
|
|
30
|
+
min-height: 2.5rem;
|
|
31
|
+
padding: 0 0.75rem;
|
|
32
|
+
background: transparent;
|
|
33
|
+
border: none;
|
|
34
|
+
color: inherit;
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
font-size: inherit;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Slotted menu items: remove individual borders/radii so the menu
|
|
40
|
+
reads as a single unified surface. */
|
|
41
|
+
::slotted(:not([slot="icon"]):not([slot="label"])) {
|
|
42
|
+
display: block !important;
|
|
43
|
+
margin: 0 !important;
|
|
44
|
+
border: none !important;
|
|
45
|
+
border-radius: 0 !important;
|
|
46
|
+
border-bottom: 1px solid var(--c_border) !important;
|
|
47
|
+
}
|
|
48
|
+
::slotted(:not([slot="icon"]):not([slot="label"]):last-child) {
|
|
49
|
+
border-bottom: none !important;
|
|
50
|
+
}
|
|
51
|
+
`]}customElements.define("kc-menu",n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as i}from"../../lit-all.min.js";import"../Icon.js";export default class e extends t{static requires=["toggleMinimap"];static hostMode="code";static hostEvents=["minimap-changed"];static properties={...t.properties,active:{type:Boolean,reflect:!0}};constructor(){super(),this.active=!1}connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Toggle Minimap"),this.host&&(this.active=!!this.host.minimapEnabled)}willUpdate(t){super.willUpdate?.(t),this.host&&(this.active=!!this.host.minimapEnabled)}handleAction(){this.host?.toggleMinimap?.()}render(){return i`<slot><k-icon name="map"></k-icon></slot>`}}customElements.define("kc-minimap",e);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["toggleMode"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Toggle Code View")}updated(t){super.updated(t);const e=this.host;e&&this.toggleAttribute("active","code"===e.mode)}get mode(){return this.host?.mode}handleAction(){this.host?.toggleMode?.()}render(){return e`<slot><k-icon name="code"></k-icon></slot>`}}customElements.define("kc-mode",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static requires=["numberList"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Numbered List")}handleAction(){this.host?.numberList?.()}render(){return e`<slot><k-icon name="format_list_numbered"></k-icon></slot>`}}customElements.define("kc-number-list",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as e}from"../../lit-all.min.js";export default class s extends t{static hostEvents=["page-change"];render(){return e`<span>${this.host?.totalPages??1}</span>`}}customElements.define("kc-pg-count",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static hostEvents=["page-change"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="First Page"),this.hasAttribute("aria-label")||this.setAttribute("aria-label","First Page")}willUpdate(t){super.willUpdate(t);const e=this.host;this.disabled=!e||e.page<=1}handleAction(){const t=this.host;t&&(t.page=1)}render(){return e`<slot><k-icon name="chevron-line" direction="left"></k-icon></slot>`}}customElements.define("kc-pg-first",i);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Combobox.js";export default class s extends t{static hostEvents=["page-change"];handleInput=t=>{const e=this.host;if(e&&t.target.value){const o=parseInt(t.target.value,10);!isNaN(o)&&o>0&&(e.page=o)}};handleBlur=t=>{const e=this.host;e&&(t.target.value=String(e.page))};render(){const t=this.host,o=t?.page??1,s=t?.totalPages??1;return e`
|
|
2
|
+
<k-combobox
|
|
3
|
+
.value=${String(o)}
|
|
4
|
+
@input=${this.handleInput}
|
|
5
|
+
@blur=${this.handleBlur}
|
|
6
|
+
placeholder="page"
|
|
7
|
+
no-results-message="Invalid Page"
|
|
8
|
+
>
|
|
9
|
+
${Array.from({length:s},(t,o)=>e`
|
|
10
|
+
<k-option value=${o+1}>${o+1}</k-option>
|
|
11
|
+
`)}
|
|
12
|
+
</k-combobox>
|
|
13
|
+
`}static styles=[t.styles,o`
|
|
14
|
+
k-combobox { width: 5rem; }
|
|
15
|
+
`]}customElements.define("kc-pg-goto-page",s);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import e from"./Control.js";import{html as t,css as s}from"../../lit-all.min.js";export default class a extends e{static hostEvents=["page-change"];handleChange=e=>{const t=this.host;t&&(t.itemsPerPage=parseInt(e.target.value,10))};render(){const e=this.host,s=e?.itemsPerPage??10,a=e?.pageSizes??[5,10,25,50,100];return t`
|
|
2
|
+
<label>
|
|
3
|
+
<slot>Items per page:</slot>
|
|
4
|
+
<select @change=${this.handleChange}>
|
|
5
|
+
${a.map(e=>t`<option value=${e} ?selected=${e===s}>${e}</option>`)}
|
|
6
|
+
</select>
|
|
7
|
+
</label>
|
|
8
|
+
`}static styles=[e.styles,s`
|
|
9
|
+
:host { align-items: center; }
|
|
10
|
+
label { display: inline-flex; align-items: center; gap: var(--spacer_q, 0.25rem); padding: 0; white-space: nowrap; }
|
|
11
|
+
select { min-height: 2.5rem; box-sizing: border-box; }
|
|
12
|
+
`]}customElements.define("kc-pg-items-per-page",a);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static hostEvents=["page-change"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Last Page"),this.hasAttribute("aria-label")||this.setAttribute("aria-label","Last Page")}willUpdate(t){super.willUpdate(t);const e=this.host;this.disabled=!e||e.page>=e.totalPages}handleAction(){const t=this.host;t&&(t.page=t.totalPages)}render(){return e`<slot><k-icon name="chevron-line"></k-icon></slot>`}}customElements.define("kc-pg-last",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static hostEvents=["page-change"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Next Page"),this.hasAttribute("aria-label")||this.setAttribute("aria-label","Next Page")}willUpdate(t){super.willUpdate(t);const e=this.host;this.disabled=!e||e.page>=e.totalPages}handleAction(){this.host?.nextPage()}render(){return e`<slot><k-icon name="chevron"></k-icon></slot>`}}customElements.define("kc-pg-next",s);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import s from"./Control.js";import{html as e,css as t}from"../../lit-all.min.js";export default class a extends s{static hostEvents=["page-change"];render(){const s=this.host;return e`<span class="info">Page ${s?.page??1} of ${s?.totalPages??1}</span>`}static styles=[s.styles,t`
|
|
2
|
+
.info { padding: 0 var(--spacer_q, 0.25rem); white-space: nowrap; }
|
|
3
|
+
`]}customElements.define("kc-pg-page-info",a);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class i extends t{static hostEvents=["page-change"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Previous Page"),this.hasAttribute("aria-label")||this.setAttribute("aria-label","Previous Page")}willUpdate(t){super.willUpdate(t);const e=this.host;this.disabled=!e||e.page<=1}handleAction(){this.host?.previousPage()}render(){return e`<slot><k-icon name="chevron" direction="left"></k-icon></slot>`}}customElements.define("kc-pg-prev",i);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["quote"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Quote")}handleAction(){this.host?.quote?.()}render(){return e`<slot><k-icon name="format_quote"></k-icon></slot>`}}customElements.define("kc-quote",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["redo"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Redo")}handleAction(){this.host?.redo?.()}render(){return e`<slot><k-icon name="redo"></k-icon></slot>`}}customElements.define("kc-redo",o);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
:host {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
flex: 1;
|
|
5
|
+
}
|
|
6
|
+
`;render(){return t``}}customElements.define("kc-spacer",l);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{static requires=["strikethrough"];static hostMode=["visual","write"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Strikethrough")}handleAction(){this.host?.strikethrough?.()}render(){return e`<slot><k-icon name="strikethrough_s"></k-icon></slot>`}}customElements.define("kc-strikethrough",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class o extends e{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Delete Record")}get record(){const e=this.closest(".record");if(e){const t=e.dataset.index;if(void 0!==t)return this.host?.records?.[t]}return null}delete(){this.handleAction()}handleAction(){const e=this.record;e&&this.host?.deleteRecord(e)}render(){return t`<slot><k-icon name="delete"></k-icon></slot>`}}customElements.define("kc-tc-delete-record",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t}from"../../lit-all.min.js";import"../Icon.js";export default class l extends e{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Delete Selected")}handleAction(){this.host?.deleteSelected()}render(){return t`<slot><k-icon name="delete_sweep"></k-icon></slot>`}}customElements.define("kc-tc-delete-selected",l);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as e,css as i}from"../../lit-all.min.js";import"../Icon.js";export default class n extends t{static hostEvents=["editingChange"];static properties={...t.properties,isEditing:{type:Boolean,state:!0}};constructor(){super(),this.isEditing=!1}get record(){const t=this.closest(".record");if(t){const e=t.dataset.index;if(void 0!==e)return this.host?.records?.[e]}return null}connectedCallback(){super.connectedCallback();const t=this.host;t&&t.addEventListener("editingChange",t=>{t.detail.record===this.record&&(this.isEditing=t.detail.editing)})}handleEdit=()=>{const t=this.record;t&&this.host?.editRecord(t)};handleSave=()=>{const t=this.record;t&&this.host?.saveEditedRecord(t)};handleCancel=()=>{const t=this.record;t&&this.host?.cancelEditedRecord(t)};render(){return this.isEditing?e`
|
|
2
|
+
<button class="edit-btn save" @click=${this.handleSave}><k-icon name="check"></k-icon></button>
|
|
3
|
+
<button class="edit-btn cancel" @click=${this.handleCancel}><k-icon name="close"></k-icon></button>
|
|
4
|
+
`:e`
|
|
5
|
+
<button class="edit-btn" @click=${this.handleEdit}><k-icon name="edit"></k-icon></button>
|
|
6
|
+
`}static styles=[t.styles,i`
|
|
7
|
+
:host { align-items: baseline; gap: 0.25rem; }
|
|
8
|
+
.edit-btn { background: transparent; border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: var(--radius); }
|
|
9
|
+
.edit-btn:hover { background: oklch(from var(--c_bg__inv) l c h / 0.1); }
|
|
10
|
+
.save { color: var(--c_success, green); }
|
|
11
|
+
.cancel { color: var(--c_danger, red); }
|
|
12
|
+
`]}customElements.define("kc-tc-edit",n);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class r extends t{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Export CSV")}get record(){const t=this.closest(".record");if(t){const e=t.dataset.index;if(void 0!==e)return this.host?.records?.[e]}return null}getCSV(){const t=this.host;if(!t)return"";const e=[];t.fields.forEach(({name:t,calculator:o})=>{o||e.push(t)});let o=e.join(",")+"\n";const r=this.record;return r?o+=e.map(t=>r[t]||"").join(",")+"\n":t.records.forEach(t=>{o+=e.map(e=>t[e]||"").join(",")+"\n"}),o}export(){this.handleAction()}handleAction(){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`<slot><k-icon name="export-file"></k-icon> Export CSV</slot>`}static styles=[t.styles,o`
|
|
2
|
+
:host { gap: 0.25rem; padding: 0 var(--spacer_h, 0.5rem); }
|
|
3
|
+
`]}customElements.define("kc-tc-export-csv",r);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e,css as o}from"../../lit-all.min.js";import"../Icon.js";export default class r extends t{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Export JSON")}get record(){const t=this.closest(".record");if(t){const e=t.dataset.index;if(void 0!==e)return this.host?.records?.[e]}return null}export(){this.handleAction()}handleAction(){const t=this.record,e=t?JSON.stringify(t):JSON.stringify(this.host?.records||[]),o=new Blob([e],{type:"application/json"}),r=URL.createObjectURL(o),s=document.createElement("a");s.href=r,s.download="data.json",s.click(),URL.revokeObjectURL(r)}render(){return e`<slot><k-icon name="export-file"></k-icon> Export JSON</slot>`}static styles=[t.styles,o`
|
|
2
|
+
:host { gap: 0.25rem; padding: 0 var(--spacer_h, 0.5rem); }
|
|
3
|
+
`]}customElements.define("kc-tc-export-json",r);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import e from"./ButtonControl.js";import{html as t,render as i}from"../../lit-all.min.js";import"../Icon.js";import l from"../Dialog.js";export default class o extends e{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Show / Hide / Order Fields")}openDialog(){this.handleAction()}handleAction(){import("../Sortable.js");const e=this.host;if(!e)return;const o=document.createElement("div");i(t`
|
|
2
|
+
<div class="m">
|
|
3
|
+
<k-sortable id="sorting" @sort=${t=>{const i=Array.from(t.target.querySelectorAll("k-sortable-item")).map(e=>e.getAttribute("data-field"));e.reorderFields(i)}}>
|
|
4
|
+
${e.fields.map(i=>t`
|
|
5
|
+
<k-sortable-item data-field="${i.name}">
|
|
6
|
+
<label class="field pb0">
|
|
7
|
+
<input
|
|
8
|
+
class="field-visibility"
|
|
9
|
+
data-field="${i.name}"
|
|
10
|
+
type="checkbox"
|
|
11
|
+
.checked="${!i.hidden}"
|
|
12
|
+
@change="${t=>e.setFieldHiddenState(i.name,!t.target.checked)}"
|
|
13
|
+
style="height: 1.25rem; width: 1.25rem"
|
|
14
|
+
/>
|
|
15
|
+
${i.label}
|
|
16
|
+
</label>
|
|
17
|
+
</k-sortable-item>
|
|
18
|
+
`)}
|
|
19
|
+
</k-sortable>
|
|
20
|
+
</div>
|
|
21
|
+
`,o),l.create(o,{title:"Show / Hide / Order Fields",width:"400px",cancelText:"Close"})}render(){return t`<slot><k-icon name="table-visibility"></k-icon></slot>`}}customElements.define("kc-tc-field-sort-hide",o);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e,render as l}from"../../lit-all.min.js";import"../Icon.js";import i from"../Dialog.js";const n={equals:"equals","not-equals":"does not equal",contains:"contains","not-contains":"does not contain","greater-than":"is greater than","greater-than-or-equal":"is greater than or equal to","less-than":"is less than","less-than-or-equal":"is less than or equal to"};export default class o extends t{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Filters")}handleFilter(){this.handleAction()}handleAction(){this.openDialog()}openDialog=()=>{const t=this.host;if(!t)return;const o=document.createElement("div");l(e`
|
|
2
|
+
<div class="p">
|
|
3
|
+
${0===t.filters.length?e`<p>No Current Filters.</p>`:e`
|
|
4
|
+
<h5>Current Filters</h5>
|
|
5
|
+
<ul id="currentFilters">
|
|
6
|
+
${t.filters.map(({field:l,condition:i,value:o})=>e`
|
|
7
|
+
<li data-field="${l}" data-condition="${i}" data-value="${o}">
|
|
8
|
+
${t.getFieldLabel(l)} ${n[i]} "${o}"
|
|
9
|
+
<button class="remove-filter no-btn pq" @click=${()=>{t.removeFilter(l,i,o),s.close(),this.openDialog()}}>
|
|
10
|
+
<k-icon name="close"></k-icon>
|
|
11
|
+
</button>
|
|
12
|
+
</li>
|
|
13
|
+
`)}
|
|
14
|
+
</ul>
|
|
15
|
+
`}
|
|
16
|
+
<hr />
|
|
17
|
+
<h5>Add A Filter</h5>
|
|
18
|
+
<form id="addFilter" @submit=${e=>{e.preventDefault();const l=e.target;t.addFilter(l.filterField.value,l.filterCondition.value,l.filterValue.value),s.close(),this.openDialog()}}>
|
|
19
|
+
<select id="filterField" class="mb">
|
|
20
|
+
${t.fields.map(({name:t,label:l})=>e`<option value="${t}">${l}</option>`)}
|
|
21
|
+
</select>
|
|
22
|
+
<select id="filterCondition" class="mb">
|
|
23
|
+
${Object.entries(n).map(([t,l])=>e`
|
|
24
|
+
<option value="${t}" ?selected="${"contains"===t}">${l}</option>
|
|
25
|
+
`)}
|
|
26
|
+
</select>
|
|
27
|
+
<input id="filterValue" type="text" class="mb" />
|
|
28
|
+
<button type="submit" class="btn primary mb mr">Add Filter</button>
|
|
29
|
+
${0===t.filters.length?"":e`
|
|
30
|
+
<button type="button" class="btn danger mb mr" @click=${()=>{t.removeAllFilters(),s.close()}}>Clear All Filters</button>
|
|
31
|
+
`}
|
|
32
|
+
</form>
|
|
33
|
+
</div>
|
|
34
|
+
`,o);const s=i.create(o,{width:"600px",title:"Filters"})};render(){return e`<slot><k-icon name="filter"></k-icon></slot>`}}customElements.define("kc-tc-filters",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static hostEvents=["pageChange"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="First Page")}willUpdate(t){super.willUpdate(t);const e=this.host;this.disabled=!e||1===e.getCurrentPage()}handleAction(){this.host?.firstPage()}render(){return e`<slot><k-icon name="chevron-line" direction="left"></k-icon></slot>`}}customElements.define("kc-tc-first-page",s);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./Control.js";import{html as e}from"../../lit-all.min.js";export default class d extends t{static hostEvents=["recordHidden","recordShown"];static properties={...t.properties,hiddenCount:{type:Number,state:!0}};constructor(){super(),this.hiddenCount=0}connectedCallback(){super.connectedCallback(),this.updateCount()}willUpdate(t){super.willUpdate?.(t),this.updateCount()}updateHiddenCount(){this.updateCount()}handleHiddenChange(){this.updateCount()}updateCount(){this.hiddenCount=this.host?.getHiddenRecords?.()?.length||0}render(){return e`<div><span>${this.hiddenCount}</span> Hidden Records</div>`}}customElements.define("kc-tc-hidden-count",d);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class o extends t{connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Hide Record")}get record(){const t=this.closest(".record");if(t){const e=t.dataset.index;if(void 0!==e)return this.host?.records?.[e]}return null}handleHide(){this.handleAction()}handleAction(){const t=this.record;t&&this.host?.hideRecord(t)}render(){return e`<slot><k-icon name="hide"></k-icon></slot>`}}customElements.define("kc-tc-hide",o);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"./ButtonControl.js";import{html as e}from"../../lit-all.min.js";import"../Icon.js";export default class s extends t{static hostEvents=["pageChange"];connectedCallback(){super.connectedCallback(),this.hasAttribute("title")||(this.title="Last Page")}willUpdate(t){super.willUpdate(t);const e=this.host;this.disabled=!e||e.getCurrentPage()===e.getTotalPages()}handleAction(){this.host?.lastPage()}render(){return e`<slot><k-icon name="chevron-line"></k-icon></slot>`}}customElements.define("kc-tc-last-page",s);
|