@clepit/core 0.2.0-beta.322
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 +23 -0
- package/LICENSE +21 -0
- package/README.md +79 -0
- package/dist/core/editor/action-bar/css.d.ts +3 -0
- package/dist/core/editor/action-bar/index.d.ts +18 -0
- package/dist/core/editor/css.d.ts +3 -0
- package/dist/core/editor/index.d.ts +18 -0
- package/dist/core/editor/views/edit.d.ts +4 -0
- package/dist/core/editor/views/index.d.ts +4 -0
- package/dist/core/editor/views/json.d.ts +9 -0
- package/dist/core/editor/views/preview.d.ts +4 -0
- package/dist/core/element/index.d.ts +101 -0
- package/dist/core/i18n/index.d.ts +43 -0
- package/dist/core/managers/block/css.d.ts +3 -0
- package/dist/core/managers/block/index.d.ts +40 -0
- package/dist/core/managers/event.d.ts +13 -0
- package/dist/core/managers/style.d.ts +181 -0
- package/dist/core/renderer/draw.d.ts +27 -0
- package/dist/core/renderer/index.d.ts +15 -0
- package/dist/core/renderer/invalid-data.d.ts +4 -0
- package/dist/core/renderer/page.d.ts +37 -0
- package/dist/core/store.d.ts +42 -0
- package/dist/core/theme/css.d.ts +4 -0
- package/dist/core/theme/index.d.ts +42 -0
- package/dist/core/toolbars/block/css.d.ts +3 -0
- package/dist/core/toolbars/block/index.d.ts +38 -0
- package/dist/core/toolbars/inline/css.d.ts +6 -0
- package/dist/core/toolbars/inline/index.d.ts +43 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +2 -0
- package/dist/index.mjs +2 -0
- package/dist/tools/block/alert/css.d.ts +5 -0
- package/dist/tools/block/alert/index.d.ts +13 -0
- package/dist/tools/block/alert/input.d.ts +13 -0
- package/dist/tools/block/alert/output.d.ts +9 -0
- package/dist/tools/block/audio/css.d.ts +5 -0
- package/dist/tools/block/audio/index.d.ts +13 -0
- package/dist/tools/block/audio/input.d.ts +22 -0
- package/dist/tools/block/audio/output.d.ts +9 -0
- package/dist/tools/block/checklist/css.d.ts +5 -0
- package/dist/tools/block/checklist/index.d.ts +13 -0
- package/dist/tools/block/checklist/input.d.ts +14 -0
- package/dist/tools/block/checklist/output.d.ts +9 -0
- package/dist/tools/block/code/css.d.ts +5 -0
- package/dist/tools/block/code/grammar/engine.d.ts +52 -0
- package/dist/tools/block/code/grammar/languages.d.ts +6 -0
- package/dist/tools/block/code/highlight.d.ts +22 -0
- package/dist/tools/block/code/index.d.ts +13 -0
- package/dist/tools/block/code/input.d.ts +57 -0
- package/dist/tools/block/code/loaders/language.d.ts +17 -0
- package/dist/tools/block/code/loaders/theme.d.ts +21 -0
- package/dist/tools/block/code/output.d.ts +32 -0
- package/dist/tools/block/code/theme-css.d.ts +14 -0
- package/dist/tools/block/code/theme-generator.d.ts +27 -0
- package/dist/tools/block/code/variants.d.ts +14 -0
- package/dist/tools/block/collapsible/css.d.ts +6 -0
- package/dist/tools/block/collapsible/index.d.ts +13 -0
- package/dist/tools/block/collapsible/input.d.ts +13 -0
- package/dist/tools/block/collapsible/output.d.ts +16 -0
- package/dist/tools/block/collection/css.d.ts +6 -0
- package/dist/tools/block/collection/index.d.ts +13 -0
- package/dist/tools/block/collection/input.d.ts +11 -0
- package/dist/tools/block/collection/output.d.ts +12 -0
- package/dist/tools/block/columns/css.d.ts +6 -0
- package/dist/tools/block/columns/index.d.ts +13 -0
- package/dist/tools/block/columns/input.d.ts +12 -0
- package/dist/tools/block/columns/output.d.ts +11 -0
- package/dist/tools/block/date/css.d.ts +6 -0
- package/dist/tools/block/date/index.d.ts +13 -0
- package/dist/tools/block/date/input.d.ts +12 -0
- package/dist/tools/block/date/output.d.ts +10 -0
- package/dist/tools/block/delimiter/css.d.ts +5 -0
- package/dist/tools/block/delimiter/index.d.ts +13 -0
- package/dist/tools/block/delimiter/input.d.ts +12 -0
- package/dist/tools/block/delimiter/output.d.ts +9 -0
- package/dist/tools/block/doc-card/css.d.ts +6 -0
- package/dist/tools/block/doc-card/index.d.ts +13 -0
- package/dist/tools/block/doc-card/input.d.ts +11 -0
- package/dist/tools/block/doc-card/output.d.ts +11 -0
- package/dist/tools/block/embed/css.d.ts +6 -0
- package/dist/tools/block/embed/index.d.ts +13 -0
- package/dist/tools/block/embed/input.d.ts +11 -0
- package/dist/tools/block/embed/output.d.ts +23 -0
- package/dist/tools/block/embed/providers.d.ts +5 -0
- package/dist/tools/block/file/css.d.ts +6 -0
- package/dist/tools/block/file/index.d.ts +13 -0
- package/dist/tools/block/file/input.d.ts +14 -0
- package/dist/tools/block/file/output.d.ts +10 -0
- package/dist/tools/block/glance/css.d.ts +5 -0
- package/dist/tools/block/glance/index.d.ts +13 -0
- package/dist/tools/block/glance/input.d.ts +11 -0
- package/dist/tools/block/glance/output.d.ts +18 -0
- package/dist/tools/block/header/css.d.ts +5 -0
- package/dist/tools/block/header/index.d.ts +13 -0
- package/dist/tools/block/header/input.d.ts +13 -0
- package/dist/tools/block/header/output.d.ts +9 -0
- package/dist/tools/block/image/css.d.ts +5 -0
- package/dist/tools/block/image/index.d.ts +13 -0
- package/dist/tools/block/image/input.d.ts +22 -0
- package/dist/tools/block/image/output.d.ts +9 -0
- package/dist/tools/block/list/css.d.ts +5 -0
- package/dist/tools/block/list/index.d.ts +13 -0
- package/dist/tools/block/list/input.d.ts +16 -0
- package/dist/tools/block/list/output.d.ts +9 -0
- package/dist/tools/block/openapi/css.d.ts +5 -0
- package/dist/tools/block/openapi/index.d.ts +13 -0
- package/dist/tools/block/openapi/input.d.ts +11 -0
- package/dist/tools/block/openapi/output.d.ts +24 -0
- package/dist/tools/block/openapi/schema.d.ts +17 -0
- package/dist/tools/block/openapi/snippets.d.ts +5 -0
- package/dist/tools/block/openapi/spec.d.ts +46 -0
- package/dist/tools/block/paragraph/css.d.ts +5 -0
- package/dist/tools/block/paragraph/index.d.ts +13 -0
- package/dist/tools/block/paragraph/input.d.ts +12 -0
- package/dist/tools/block/paragraph/output.d.ts +13 -0
- package/dist/tools/block/quote/css.d.ts +5 -0
- package/dist/tools/block/quote/index.d.ts +13 -0
- package/dist/tools/block/quote/input.d.ts +15 -0
- package/dist/tools/block/quote/output.d.ts +14 -0
- package/dist/tools/block/sketch/css.d.ts +6 -0
- package/dist/tools/block/sketch/index.d.ts +13 -0
- package/dist/tools/block/sketch/input.d.ts +14 -0
- package/dist/tools/block/sketch/output.d.ts +16 -0
- package/dist/tools/block/table/css.d.ts +5 -0
- package/dist/tools/block/table/index.d.ts +13 -0
- package/dist/tools/block/table/input.d.ts +28 -0
- package/dist/tools/block/table/output.d.ts +28 -0
- package/dist/tools/block/toc/css.d.ts +6 -0
- package/dist/tools/block/toc/index.d.ts +13 -0
- package/dist/tools/block/toc/input.d.ts +11 -0
- package/dist/tools/block/toc/output.d.ts +18 -0
- package/dist/tools/block/typeset/css.d.ts +6 -0
- package/dist/tools/block/typeset/index.d.ts +22 -0
- package/dist/tools/block/typeset/input.d.ts +18 -0
- package/dist/tools/block/typeset/latex/layout.d.ts +32 -0
- package/dist/tools/block/typeset/latex/model.d.ts +64 -0
- package/dist/tools/block/typeset/latex/parse.d.ts +3 -0
- package/dist/tools/block/typeset/latex/render.d.ts +7 -0
- package/dist/tools/block/typeset/latex/symbols.d.ts +26 -0
- package/dist/tools/block/typeset/mermaid/layout.d.ts +71 -0
- package/dist/tools/block/typeset/mermaid/model.d.ts +78 -0
- package/dist/tools/block/typeset/mermaid/parse.d.ts +3 -0
- package/dist/tools/block/typeset/mermaid/render.d.ts +7 -0
- package/dist/tools/block/typeset/output.d.ts +46 -0
- package/dist/tools/block/updates/css.d.ts +6 -0
- package/dist/tools/block/updates/index.d.ts +13 -0
- package/dist/tools/block/updates/input.d.ts +14 -0
- package/dist/tools/block/updates/output.d.ts +19 -0
- package/dist/tools/block/video/css.d.ts +5 -0
- package/dist/tools/block/video/index.d.ts +13 -0
- package/dist/tools/block/video/input.d.ts +22 -0
- package/dist/tools/block/video/output.d.ts +9 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/inline/bold/css.d.ts +3 -0
- package/dist/tools/inline/bold/index.d.ts +10 -0
- package/dist/tools/inline/code/css.d.ts +3 -0
- package/dist/tools/inline/code/index.d.ts +12 -0
- package/dist/tools/inline/italic/css.d.ts +3 -0
- package/dist/tools/inline/italic/index.d.ts +10 -0
- package/dist/tools/inline/link/css.d.ts +3 -0
- package/dist/tools/inline/link/dialog.d.ts +31 -0
- package/dist/tools/inline/link/index.d.ts +11 -0
- package/dist/tools/inline/marker/css.d.ts +3 -0
- package/dist/tools/inline/marker/index.d.ts +16 -0
- package/dist/tools/inline/mention/css.d.ts +3 -0
- package/dist/tools/inline/mention/index.d.ts +10 -0
- package/dist/tools/inline/status/css.d.ts +3 -0
- package/dist/tools/inline/status/dialog.d.ts +30 -0
- package/dist/tools/inline/status/index.d.ts +12 -0
- package/dist/tools/inline/strikethrough/css.d.ts +3 -0
- package/dist/tools/inline/strikethrough/index.d.ts +10 -0
- package/dist/tools/inline/tooltip/css.d.ts +3 -0
- package/dist/tools/inline/tooltip/dialog.d.ts +52 -0
- package/dist/tools/inline/tooltip/index.d.ts +21 -0
- package/dist/tools/inline/underline/css.d.ts +3 -0
- package/dist/tools/inline/underline/index.d.ts +10 -0
- package/dist/types.d.ts +947 -0
- package/dist/utils/dialogs/css.d.ts +3 -0
- package/dist/utils/dom.d.ts +20 -0
- package/dist/utils/icons.d.ts +7 -0
- package/dist/utils/platform.d.ts +82 -0
- package/dist/utils/sanitize-html-nodom.d.ts +2 -0
- package/dist/utils/switch/css.d.ts +3 -0
- package/dist/utils/switch/index.d.ts +30 -0
- package/dist/utils/tooltip/css.d.ts +3 -0
- package/dist/utils/tooltip/index.d.ts +4 -0
- package/dist/utils/url.d.ts +52 -0
- package/package.json +66 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const invalidDataStylesKey = "clepit-invalid-data-styles";
|
|
2
|
+
export declare const invalidDataStyle = "\n/* Invalid data component styles */\n.clepit-invalid-data {\n padding: 12px 16px;\n border-radius: 4px;\n font-size: 14px;\n line-height: 1.5;\n margin: 1rem 0;\n background: #ffebee;\n color: #c62828;\n}\n\n.clepit-invalid-data-text {\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n";
|
|
3
|
+
export declare function createInvalidDataComponent(): HTMLElement;
|
|
4
|
+
//# sourceMappingURL=invalid-data.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DrawContext } from '../element';
|
|
2
|
+
import { Block } from '../../types';
|
|
3
|
+
export type PublicPage = {
|
|
4
|
+
title: string;
|
|
5
|
+
blocks: Block[];
|
|
6
|
+
/** Written to `<html lang>`, so a reader's browser and a crawler both know
|
|
7
|
+
* what language the document is in. */
|
|
8
|
+
locale?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
canonicalUrl?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Every stylesheet a drawn document needs, as text.
|
|
14
|
+
*
|
|
15
|
+
* `StyleManager.injectStyles` puts these in a live `<head>`, which a server has
|
|
16
|
+
* none of. Collected here instead so a page can carry its own styling and
|
|
17
|
+
* render correctly with no stylesheet request and nothing running.
|
|
18
|
+
*/
|
|
19
|
+
export declare const pageStylesheet: () => string;
|
|
20
|
+
/**
|
|
21
|
+
* The document's blocks as HTML, with no browser involved.
|
|
22
|
+
*
|
|
23
|
+
* A block that refuses its own data is skipped rather than replaced with an
|
|
24
|
+
* error marker: a public reader can do nothing about a malformed block, and a
|
|
25
|
+
* page that renders the rest of itself is better than one that advertises a
|
|
26
|
+
* fault.
|
|
27
|
+
*/
|
|
28
|
+
export declare const renderBlocks: (blocks: Block[], context?: DrawContext) => string;
|
|
29
|
+
/**
|
|
30
|
+
* A whole public page, ready to serve.
|
|
31
|
+
*
|
|
32
|
+
* The point of drawing without a browser: what comes back here is readable by a
|
|
33
|
+
* crawler and paints on first load, where the app-served URL painted only after
|
|
34
|
+
* booting and showed a crawler nothing.
|
|
35
|
+
*/
|
|
36
|
+
export declare const renderPage: (page: PublicPage, context?: DrawContext) => string;
|
|
37
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Block, EditorData, EditorInstance, EditorView } from '../types';
|
|
2
|
+
type Store = {
|
|
3
|
+
instances: {
|
|
4
|
+
[containerId: string]: EditorInstance;
|
|
5
|
+
};
|
|
6
|
+
addInstance: (containerId: string, instance: EditorInstance) => void;
|
|
7
|
+
updateInstance: (containerId: string, instance: EditorInstance) => void;
|
|
8
|
+
removeInstance: (containerId: string) => void;
|
|
9
|
+
getInstance: (containerId: string) => EditorInstance | null;
|
|
10
|
+
setCurrentView: (containerId: string, currentView: EditorView) => void;
|
|
11
|
+
getCurrentView: (containerId: string) => EditorView | null;
|
|
12
|
+
getData: (containerId: string) => EditorData | null;
|
|
13
|
+
setData: (containerId: string, data: EditorData) => void;
|
|
14
|
+
updateData: (containerId: string, data: EditorData) => void;
|
|
15
|
+
addBlock: (containerId: string, block: Block, index?: number) => void;
|
|
16
|
+
removeBlock: (containerId: string, blockIndex: number) => void;
|
|
17
|
+
updateBlock: (containerId: string, blockIndex: number, block: Block) => void;
|
|
18
|
+
updateBlockData: (containerId: string, blockIndex: number, data: Block['data']) => void;
|
|
19
|
+
partialUpdateBlockData: (containerId: string, blockIndex: number, data: Partial<Block['data']>) => void;
|
|
20
|
+
setIsReady: (containerId: string, isReady: boolean) => void;
|
|
21
|
+
getIsReady: (containerId: string) => boolean;
|
|
22
|
+
getContentElement: (containerId: string) => HTMLElement | null;
|
|
23
|
+
clearData: (containerId: string) => void;
|
|
24
|
+
};
|
|
25
|
+
/** Structural mirror of the store package's `StoreApi<Store>`, declared here so
|
|
26
|
+
* the emitted declarations never name `@bomdisoft/store`, which is private and
|
|
27
|
+
* has no registry entry for a consumer of the published package to resolve. */
|
|
28
|
+
type ClepitStoreApi = {
|
|
29
|
+
getState: () => Store;
|
|
30
|
+
getInitialState: () => Store;
|
|
31
|
+
setState: (partial: Store | Partial<Store> | ((state: Store) => Store | Partial<Store>), replace?: boolean) => void;
|
|
32
|
+
subscribe: {
|
|
33
|
+
(listener: (state: Store, prevState: Store) => void): () => void;
|
|
34
|
+
<U>(selector: (state: Store) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
35
|
+
equalityFn?: (a: U, b: U) => boolean;
|
|
36
|
+
fireImmediately?: boolean;
|
|
37
|
+
}): () => void;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export declare const clepitStore: ClepitStoreApi;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type ThemeTokens = Partial<{
|
|
2
|
+
bg: string;
|
|
3
|
+
surface: string;
|
|
4
|
+
surface2: string;
|
|
5
|
+
text: string;
|
|
6
|
+
textMuted: string;
|
|
7
|
+
textSubtle: string;
|
|
8
|
+
border: string;
|
|
9
|
+
borderSubtle: string;
|
|
10
|
+
primary: string;
|
|
11
|
+
primaryHover: string;
|
|
12
|
+
primaryBg: string;
|
|
13
|
+
marker: string;
|
|
14
|
+
selectionBg: string;
|
|
15
|
+
blockHighlightBg: string;
|
|
16
|
+
codeBg: string;
|
|
17
|
+
codeBorder: string;
|
|
18
|
+
codeComment: string;
|
|
19
|
+
codeFunction: string;
|
|
20
|
+
codeGutter: string;
|
|
21
|
+
codeKeyword: string;
|
|
22
|
+
codeNumber: string;
|
|
23
|
+
codePunctuation: string;
|
|
24
|
+
codeSelectionBg: string;
|
|
25
|
+
codeString: string;
|
|
26
|
+
codeText: string;
|
|
27
|
+
codeType: string;
|
|
28
|
+
success: string;
|
|
29
|
+
successBg: string;
|
|
30
|
+
warning: string;
|
|
31
|
+
warningBg: string;
|
|
32
|
+
error: string;
|
|
33
|
+
errorBg: string;
|
|
34
|
+
info: string;
|
|
35
|
+
infoBg: string;
|
|
36
|
+
}>;
|
|
37
|
+
export declare const defaultLightTokens: Required<ThemeTokens>;
|
|
38
|
+
export declare const defaultDarkTokens: Required<ThemeTokens>;
|
|
39
|
+
export declare const tokensToVariableBlock: (tokens: ThemeTokens, selector: string) => string;
|
|
40
|
+
export declare const tokensToLightDarkBlock: (light: ThemeTokens, dark: ThemeTokens, selector: string) => string;
|
|
41
|
+
export declare const tokensToPropertyDeclarations: (light: Required<ThemeTokens>) => string;
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const stylesKey = "clepit-block-toolbar-styles";
|
|
2
|
+
export declare const style = "\n/* Block Toolbar */\n.clepit-block-toolbar {\n position: absolute;\n left: 4px;\n top: 4px;\n z-index: 1000;\n display: none;\n gap: 4px;\n flex-shrink: 0;\n background: var(--clepit-bg);\n border: 1px solid var(--clepit-border);\n border-radius: 6px;\n overflow: hidden;\n padding: 4px;\n transition: transform 0.2s ease;\n}\n\n.clepit-block-toolbar--visible {\n display: flex !important;\n transform: translateY(0) !important;\n pointer-events: auto !important;\n}\n\n.clepit-block-toolbar--hidden {\n display: none !important;\n pointer-events: none !important;\n}\n\n.clepit-block--active .clepit-block-toolbar,\n.clepit-block:focus-within .clepit-block-toolbar,\n.clepit-block-toolbar[style*=\"display: flex\"] {\n display: flex;\n pointer-events: auto;\n}\n\n.clepit-block-toolbar-add,\n.clepit-block-toolbar-ops {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: var(--clepit-text-muted);\n font-size: 14px;\n font-weight: bold;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.clepit-block-toolbar-add:hover,\n.clepit-block-toolbar-ops:hover {\n background: var(--clepit-toolbar-button-hover-bg, var(--clepit-selection-bg));\n color: var(--clepit-toolbar-button-hover-color, var(--clepit-primary));\n transform: scale(1.05);\n}\n\n.clepit-block-toolbar-add:active,\n.clepit-block-toolbar-ops:active {\n transform: scale(0.95);\n}\n\n/* Block toolbar positioning and display classes */\n.clepit-block-toolbar--positioned {\n position: absolute;\n}\n\n.clepit-block-toolbar--menu-positioned {\n position: absolute;\n z-index: 1001;\n}\n\n.clepit-block-toolbar--submenu-positioned {\n position: absolute;\n z-index: 998;\n}\n\n.clepit-block-toolbar--item-hidden {\n display: none;\n}\n\n.clepit-block-toolbar--item-visible {\n display: flex;\n}\n\n.clepit-block-toolbar--separator-hidden {\n display: none;\n}\n\n.clepit-block-toolbar--separator-visible {\n display: block;\n}\n\n.clepit-block-toolbar--delete-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.clepit-block-toolbar--delete-enabled {\n color: var(--clepit-error);\n}\n\n/* The toolbar stays absolutely positioned at every width. It used to go\n * position: static below 768px, which made it a flex item of .clepit-block \u2014\n * and because it is appended after the content it landed to the RIGHT of the\n * text rather than above it, taking a further 60px off an already narrow\n * column. Absolute keeps it inside the gutter the block opens for it. */\n";
|
|
3
|
+
//# sourceMappingURL=css.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare class BlockToolbar {
|
|
2
|
+
static defaultClassName: string;
|
|
3
|
+
static menuAnchor: string;
|
|
4
|
+
private static submenuAnchorSeq;
|
|
5
|
+
private static eventListenersMap;
|
|
6
|
+
private static documentListeners;
|
|
7
|
+
private static addEventListener;
|
|
8
|
+
private static addDocumentEventListener;
|
|
9
|
+
static create({ containerId, block }: CreateParams): void;
|
|
10
|
+
private static showBlockTypeMenu;
|
|
11
|
+
private static showOperationsMenu;
|
|
12
|
+
private static showConvertSubmenu;
|
|
13
|
+
private static handleOperationSelect;
|
|
14
|
+
private static showCodeLanguageSubmenu;
|
|
15
|
+
private static showCodeThemeSubmenu;
|
|
16
|
+
static show(containerId: string, block: HTMLElement): void;
|
|
17
|
+
static hide(containerId: string): void;
|
|
18
|
+
private static hideAllToolbars;
|
|
19
|
+
private static getCurrentHeadingLevel;
|
|
20
|
+
/**
|
|
21
|
+
* Close a menu, whichever way it was opened.
|
|
22
|
+
*
|
|
23
|
+
* A popover closes through hidePopover and removes itself in its own toggle
|
|
24
|
+
* handler, so there is exactly one place that takes an open menu off the page.
|
|
25
|
+
* The fallback path has no toggle event, so it removes directly.
|
|
26
|
+
*/
|
|
27
|
+
private static closeMenu;
|
|
28
|
+
private static closeAllMenus;
|
|
29
|
+
private static getAlertIconColor;
|
|
30
|
+
static remove(block: HTMLElement): void;
|
|
31
|
+
static destroy(containerId: string): void;
|
|
32
|
+
}
|
|
33
|
+
type CreateParams = {
|
|
34
|
+
containerId: string;
|
|
35
|
+
block: HTMLElement;
|
|
36
|
+
};
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const TOOLBAR_BUTTON_WIDTH = 24;
|
|
2
|
+
export declare const TOOLBAR_BUTTON_HEIGHT = 24;
|
|
3
|
+
export declare const TOOLBAR_PADDING = 8;
|
|
4
|
+
export declare const stylesKey = "clepit-inline-toolbar-styles";
|
|
5
|
+
export declare const style = "\n/* Inline Toolbar */\n.clepit-toolbar {\n position: absolute;\n z-index: 1002;\n background: var(--clepit-toolbar-bg, var(--clepit-bg));\n border: var(--clepit-toolbar-border, 1px solid var(--clepit-border));\n border-radius: 8px;\n padding: 8px;\n box-shadow: var(--clepit-toolbar-shadow, 0 2px 8px rgba(0, 0, 0, 0.1));\n backdrop-filter: blur(8px);\n display: none;\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n white-space: nowrap;\n will-change: transform;\n}\n\n.clepit-toolbar--layout {\n display: flex;\n flex-direction: row;\n gap: 0px;\n align-items: center;\n}\n\n.clepit-toolbar--hidden {\n display: none !important;\n}\n\n.clepit-toolbar--visible {\n display: flex !important;\n transform: translateY(0) scale(1) !important;\n}\n\n@keyframes toolbarFadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n.clepit-toolbar-button {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: var(--clepit-toolbar-color, var(--clepit-text));\n font-size: 12px;\n font-weight: bold;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n line-height: 1;\n /* Ensure all content inside buttons inherits the same font size and styling */\n text-rendering: optimizeLegibility;\n will-change: transform, background-color, color;\n}\n\n/* Normalize SVG icon sizing in toolbar buttons */\n.clepit-toolbar-button svg {\n width: 14px;\n height: 14px;\n display: block;\n stroke: currentColor;\n}\n\n.clepit-toolbar-button:hover {\n background: var(--clepit-toolbar-hover-bg, var(--clepit-selection-bg));\n color: var(--clepit-toolbar-hover-color, var(--clepit-text));\n transform: scale(1.05);\n}\n\n.clepit-toolbar-button:active {\n transform: scale(0.95);\n transition: transform 0.1s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.clepit-toolbar-button.active {\n background: var(--clepit-toolbar-active-bg, var(--clepit-primary-bg));\n color: var(--clepit-toolbar-active-color, var(--clepit-primary));\n font-weight: bold;\n}\n\n/* Ensure consistent base font size for character-based icons */\n.clepit-toolbar-button { font-size: 12px; }\n\n/* Tooltip styles */\n/* Anchored to its own button and shown by :hover / :focus-visible, so no\n * JavaScript measures or centres it. :focus-visible is not decoration: the old\n * mouseenter-only version was invisible to a keyboard user.\n *\n * Guarded by @supports \u2014 anchor positioning is Baseline 2026 at ~91%. Without\n * it the tooltip simply never shows, which is what it already did before this\n * change for anyone not using a mouse. */\n.clepit-toolbar-tooltip {\n position: absolute;\n display: none;\n z-index: 9999;\n pointer-events: none;\n}\n\n@supports (anchor-name: --a) {\n .clepit-toolbar-tooltip {\n position: fixed;\n position-area: top;\n margin-block-end: 8px;\n justify-self: anchor-center;\n opacity: 0;\n transform: translateY(8px);\n transition:\n opacity 0.15s ease-in-out,\n transform 0.15s ease-in-out,\n display 0.15s allow-discrete;\n }\n\n .clepit-toolbar-button:hover + .clepit-toolbar-tooltip,\n .clepit-toolbar-button:focus-visible + .clepit-toolbar-tooltip,\n .clepit-toolbar-button:focus-visible + .clepit-toolbar-tooltip {\n display: block;\n opacity: 1;\n transform: translateY(0);\n }\n\n @starting-style {\n .clepit-toolbar-button:hover + .clepit-toolbar-tooltip,\n .clepit-toolbar-button:focus-visible + .clepit-toolbar-tooltip {\n opacity: 0;\n transform: translateY(8px);\n }\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .clepit-toolbar-tooltip {\n transition-duration: 0s;\n }\n}\n\n.clepit-toolbar-tooltip-content {\n white-space: nowrap;\n font-size: 12px;\n font-weight: 500;\n color: var(--clepit-bg);\n background-color: var(--clepit-text);\n padding: 6px 10px;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n transition: transform 0.2s ease-in-out;\n}\n\n.clepit-toolbar-tooltip-arrow {\n position: absolute;\n top: 100%;\n left: 50%;\n margin-left: -4px;\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid var(--clepit-text);\n}\n\n.clepit-toolbar-tooltip--hidden {\n display: none;\n transform: translateY(8px);\n}\n\n.clepit-toolbar-tooltip--visible {\n display: block;\n transform: translateY(0);\n}\n\n.clepit-toolbar-tooltip--fade-out {\n transform: translateY(5px);\n}\n\n/* Toolbar positioning and animation classes */\n.clepit-toolbar--positioned {\n position: absolute;\n}\n\n.clepit-toolbar--measurement {\n display: flex;\n visibility: hidden;\n opacity: 0;\n position: absolute;\n left: -9999px;\n top: -9999px;\n}\n\n.clepit-toolbar--show-animation {\n display: flex;\n visibility: visible;\n transform: translateY(-10px) scale(0.95);\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.clepit-toolbar--show-animation.clepit-toolbar--visible {\n transform: translateY(0) scale(1);\n}\n\n.clepit-toolbar--position-animation {\n transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1), top 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.clepit-toolbar--hide-animation {\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n transform: translateY(-5px) scale(0.98);\n}\n\n/* Rewrite menu \u2014 the sparkle-wand's action list, anchored under the toolbar */\n.clepit-toolbar-rewrite-menu {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n flex-direction: column;\n min-width: 160px;\n padding: 4px;\n border-radius: var(--clepit-radius-sm, 6px);\n background: var(--clepit-surface, #fff);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);\n z-index: 2;\n}\n\n.clepit-toolbar-rewrite-item {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--clepit-text-primary, inherit);\n font: inherit;\n text-align: start;\n padding: 6px 10px;\n border-radius: var(--clepit-radius-xs, 4px);\n cursor: pointer;\n}\n\n.clepit-toolbar-rewrite-item:hover,\n.clepit-toolbar-rewrite-item:focus-visible {\n background: var(--clepit-surface-hover, rgba(0, 0, 0, 0.06));\n}\n\n/* The wand stays put while a rewrite is in flight, so the toolbar does not\n reflow under the pointer mid-request. */\n.clepit-toolbar-button.busy {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .clepit-toolbar {\n flex-wrap: wrap;\n max-width: 200px;\n }\n}\n";
|
|
6
|
+
//# sourceMappingURL=css.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BoldInput } from '../../../tools/inline/bold';
|
|
2
|
+
import { InlineCodeInput } from '../../../tools/inline/code';
|
|
3
|
+
import { ItalicInput } from '../../../tools/inline/italic';
|
|
4
|
+
import { LinkInput } from '../../../tools/inline/link';
|
|
5
|
+
import { MarkerInput } from '../../../tools/inline/marker';
|
|
6
|
+
import { StatusInput } from '../../../tools/inline/status';
|
|
7
|
+
import { StrikethroughInput } from '../../../tools/inline/strikethrough';
|
|
8
|
+
import { TooltipInput } from '../../../tools/inline/tooltip';
|
|
9
|
+
import { UnderlineInput } from '../../../tools/inline/underline';
|
|
10
|
+
/*****************************************************************************************************************************************************
|
|
11
|
+
* Constants for the inline toolbar
|
|
12
|
+
*****************************************************************************************************************************************************/
|
|
13
|
+
declare const getTools: () => (typeof BoldInput | typeof InlineCodeInput | typeof ItalicInput | typeof LinkInput | typeof MarkerInput | typeof StatusInput | typeof StrikethroughInput | typeof TooltipInput | typeof UnderlineInput)[];
|
|
14
|
+
type InlineTool = ReturnType<typeof getTools>[number];
|
|
15
|
+
/*****************************************************************************************************************************************************
|
|
16
|
+
* Class for the inline toolbar
|
|
17
|
+
*****************************************************************************************************************************************************/
|
|
18
|
+
export declare class InlineToolbar {
|
|
19
|
+
private static eventListenersMap;
|
|
20
|
+
private static hideTimeoutMap;
|
|
21
|
+
private static tooltipAnchorSeq;
|
|
22
|
+
private static addEventListener;
|
|
23
|
+
static create(containerId: string): void;
|
|
24
|
+
static repaint(containerId: string, range: Range): void;
|
|
25
|
+
/**
|
|
26
|
+
* The sparkle-wand at the end of the toolbar. Opens the rewrite actions for the
|
|
27
|
+
* current selection and writes the host's replacement back in place.
|
|
28
|
+
*
|
|
29
|
+
* Painted only when the host supplied `onInlineRewrite` — see EditorConfig.
|
|
30
|
+
*/
|
|
31
|
+
static addRewriteButton(containerId: string, range: Range): void;
|
|
32
|
+
static addButton(containerId: string, tool: InlineTool, range: Range): void;
|
|
33
|
+
private static createTooltip;
|
|
34
|
+
static clearButtons(containerId: string): void;
|
|
35
|
+
static show(containerId: string, x: number, y: number): void;
|
|
36
|
+
static hide(containerId: string): void;
|
|
37
|
+
private static cancelPendingHide;
|
|
38
|
+
private static getElementFromContainerId;
|
|
39
|
+
private static getFilteredTools;
|
|
40
|
+
static destroy(containerId: string): void;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { Editor } from './core/editor';
|
|
2
|
+
export { type Backing, type ClepitElement, type DrawContext, domBacking, renderToString, stringBacking, toDomElement } from './core/element';
|
|
3
|
+
export { StyleManager } from './core/managers/style';
|
|
4
|
+
export { Renderer } from './core/renderer';
|
|
5
|
+
export { drawBlock } from './core/renderer/draw';
|
|
6
|
+
export { type PublicPage, pageStylesheet, renderBlocks, renderPage } from './core/renderer/page';
|
|
7
|
+
export type { ThemeTokens } from './core/theme';
|
|
8
|
+
export type { OpenApiGroup, OpenApiModel, OpenApiOperation, OpenApiServer } from './tools/block/openapi/spec';
|
|
9
|
+
export { parseOpenApi } from './tools/block/openapi/spec';
|
|
10
|
+
export type { ALERT_VARIANTS, AlertData, AlertVariant, AudioData, Block, BlockClassNames, BlockMargins, BlockStyles, BlockTune, CodeData, CodeVariant, CSSProperties, CSSValue, DelimiterData, DelimiterVariant, EditorAPI, EditorClassNames, EditorConfig, EditorData, EditorStyles, GlanceData, GlanceRow, HeaderData, HeaderLevel, ImageData, InlineToolType as InlineTool, InputClassNames, InputConfig, InputStyles, ListData, ListType, OpenApiData, OpenApiFilter, OutputComponent, OutputConfig, ParagraphData, QuoteData, RendererConfig, TableData, ToolType as BlockType, UploadFunction, VideoData, } from './types';
|
|
11
|
+
export { sanitizeHtmlWithoutDom } from './utils/sanitize-html-nodom';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|