@clepit/core 0.7.0 → 0.8.0-beta.547

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/code.js +1 -1
  3. package/dist/code.mjs +1 -1
  4. package/dist/core/editor/action-bar/css.d.ts +1 -1
  5. package/dist/core/editor/action-bar/index.d.ts +1 -0
  6. package/dist/core/element/index.d.ts +1 -0
  7. package/dist/core/managers/block/css.d.ts +1 -1
  8. package/dist/core/managers/event.d.ts +3 -0
  9. package/dist/core/theme/index.d.ts +8 -0
  10. package/dist/core/toolbars/block/css.d.ts +1 -1
  11. package/dist/core/toolbars/block/drag.d.ts +3 -0
  12. package/dist/core/toolbars/block/index.d.ts +2 -0
  13. package/dist/core/toolbars/block/menu-keys.d.ts +2 -0
  14. package/dist/core/toolbars/inline/css.d.ts +4 -4
  15. package/dist/core/toolbars/inline/index.d.ts +9 -1
  16. package/dist/{highlight-ZIUsGHah.js → highlight-CmoYBoGM.js} +2 -2
  17. package/dist/{highlight-CJeA_s9m.mjs → highlight-D9LdKWiT.mjs} +2 -2
  18. package/dist/index.d.ts +2 -2
  19. package/dist/index.js +1 -1
  20. package/dist/index.mjs +1 -1
  21. package/dist/tools/block/alert/index.d.ts +0 -1
  22. package/dist/tools/block/audio/index.d.ts +1 -1
  23. package/dist/tools/block/checklist/index.d.ts +0 -1
  24. package/dist/tools/block/code/css.d.ts +1 -1
  25. package/dist/tools/block/code/index.d.ts +1 -1
  26. package/dist/tools/block/code/output.d.ts +5 -1
  27. package/dist/tools/block/collapsible/index.d.ts +0 -1
  28. package/dist/tools/block/collection/index.d.ts +1 -1
  29. package/dist/tools/block/columns/index.d.ts +0 -1
  30. package/dist/tools/block/date/index.d.ts +0 -1
  31. package/dist/tools/block/delimiter/index.d.ts +0 -1
  32. package/dist/tools/block/doc-card/index.d.ts +1 -1
  33. package/dist/tools/block/embed/index.d.ts +1 -1
  34. package/dist/tools/block/file/index.d.ts +1 -1
  35. package/dist/tools/block/glance/index.d.ts +0 -1
  36. package/dist/tools/block/header/css.d.ts +1 -1
  37. package/dist/tools/block/image/index.d.ts +1 -1
  38. package/dist/tools/block/issues/index.d.ts +1 -1
  39. package/dist/tools/block/list/css.d.ts +1 -1
  40. package/dist/tools/block/list/index.d.ts +0 -1
  41. package/dist/tools/block/openapi/index.d.ts +1 -1
  42. package/dist/tools/block/paragraph/css.d.ts +1 -1
  43. package/dist/tools/block/quote/css.d.ts +1 -1
  44. package/dist/tools/block/quote/index.d.ts +0 -1
  45. package/dist/tools/block/sketch/index.d.ts +1 -1
  46. package/dist/tools/block/table/css.d.ts +1 -1
  47. package/dist/tools/block/table/index.d.ts +1 -1
  48. package/dist/tools/block/toc/index.d.ts +0 -1
  49. package/dist/tools/block/typeset/index.d.ts +2 -2
  50. package/dist/tools/block/updates/index.d.ts +1 -1
  51. package/dist/tools/block/video/index.d.ts +1 -1
  52. package/dist/tools/index.d.ts +3 -1
  53. package/dist/tools/inline/code/css.d.ts +1 -1
  54. package/dist/tools/inline/link/dialog.d.ts +8 -9
  55. package/dist/tools/inline/link/index.d.ts +1 -0
  56. package/dist/tools/inline/marker/index.d.ts +0 -1
  57. package/dist/tools/inline/status/dialog.d.ts +1 -0
  58. package/dist/tools/inline/strikethrough/index.d.ts +0 -1
  59. package/dist/tools/inline/tooltip/dialog.d.ts +1 -0
  60. package/dist/tools/inline/tooltip/index.d.ts +0 -1
  61. package/dist/types.d.ts +9 -4
  62. package/dist/utils/dialogs/css.d.ts +1 -1
  63. package/dist/utils/icons.d.ts +53 -3
  64. package/dist/utils/platform.d.ts +0 -2
  65. package/package.json +5 -5
@@ -6,7 +6,6 @@ export declare const AlertTool: {
6
6
  readonly input: typeof AlertInput;
7
7
  label: string;
8
8
  readonly output: typeof AlertOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,7 @@ export declare const AudioTool: {
6
6
  readonly input: typeof AudioInput;
7
7
  label: string;
8
8
  readonly output: typeof AudioOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,6 @@ export declare const ChecklistTool: {
6
6
  readonly input: typeof ChecklistInput;
7
7
  label: string;
8
8
  readonly output: typeof ChecklistOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -1,5 +1,5 @@
1
1
  export declare const inputStylesKey = "clepit-code-input-styles";
2
2
  export declare const inputStyle: string;
3
3
  export declare const outputStylesKey = "clepit-code-output-styles";
4
- export declare const outputStyle = "\n/* Output Code Block */\n/* No margin of its own \u2014 every consumer already governs the gap around this\n * container (page rhythm via the block wrapper's margin-block, or a flex\n * container's gap inside the openapi block). A margin here just adds a second,\n * inconsistent gap on top of whichever one the consumer already applies. */\n.clepit-output-code-container {\n border: 1px solid var(--clepit-code-border);\n border-radius: var(--clepit-radius-md);\n overflow: hidden;\n background: var(--clepit-code-bg);\n margin: 0;\n}\n\n.clepit-output-code-header {\n background: var(--clepit-code-bg);\n padding: 8px 34px;\n border-bottom: 1px solid var(--clepit-code-border);\n font-size: 12px;\n color: var(--clepit-text-muted);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n/* Output header \u2014 theme-agnostic; tokens handle light/dark automatically */\n.clepit-output-code-header {\n background: var(--clepit-code-bg);\n color: var(--clepit-text-muted);\n border-bottom-color: var(--clepit-code-border);\n --clepit-svg-stroke-color: var(--clepit-text-muted);\n --clepit-btn-hover-bg: var(--clepit-block-highlight-bg);\n}\n\n/* Output code variant tabs */\n.clepit-output-code-tabs {\n display: flex;\n align-items: stretch;\n gap: 4px;\n margin: -8px 0 -8px -18px;\n overflow-x: auto;\n scrollbar-width: none;\n}\n\n.clepit-output-code-tabs::-webkit-scrollbar {\n display: none;\n}\n\n.clepit-output-code-tab {\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n border-bottom: 2px solid transparent;\n color: var(--clepit-text-muted);\n cursor: pointer;\n font: inherit;\n padding: 8px 10px;\n transition: color 0.2s ease, border-color 0.2s ease;\n white-space: nowrap;\n}\n\n.clepit-output-code-tab:hover {\n color: var(--clepit-text);\n}\n\n.clepit-output-code-tab[aria-selected=\"true\"] {\n border-bottom-color: var(--clepit-primary);\n color: var(--clepit-primary);\n}\n\n.clepit-output-code-tab:focus-visible {\n outline: 2px solid var(--clepit-primary);\n outline-offset: -2px;\n}\n\n.clepit-output-code-editor {\n overflow-y: auto;\n max-height: 60vh;\n position: relative;\n border: none;\n border-radius: 0;\n}\n\n/* The output panes: one pre per variant, the inactive ones carrying a hidden attribute.\n * Colour comes from the generated theme stylesheet, keyed on the container's\n * data-theme, so a published page keeps its palette with nothing running. */\n.clepit-output-code-pane {\n margin: 0;\n padding: 12px 34px;\n max-height: 60vh;\n overflow-y: auto;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n tab-size: 2;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n/* Code Output */\n.clepit-output-code {\n margin: 1rem 0;\n background-color: var(--clepit-code-bg);\n border: 1px solid var(--clepit-code-border);\n border-radius: var(--clepit-radius-md);\n overflow: hidden;\n}\n\n.clepit-output-code code {\n display: block;\n padding: 1rem;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--clepit-code-text);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n/* Output code copy button */\n.clepit-output-code-copy-btn {\n margin-left: auto;\n width: 24px;\n height: 24px;\n border: none;\n outline: none;\n cursor: pointer;\n border-radius: 50%;\n background: transparent;\n transition: all 0.2s ease;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.clepit-output-code-copy-btn {\n color: var(--clepit-text-muted);\n}\n\n.clepit-output-code-copy-btn:hover {\n background: var(--clepit-block-highlight-bg);\n color: var(--clepit-primary);\n}\n\n.clepit-output-code-copy-btn:hover .clepit-copy-icon {\n stroke: var(--clepit-primary);\n}\n\n.clepit-output-code-copy-btn:active {\n transform: scale(0.95);\n}\n\n.clepit-copy-icon,\n.clepit-check-icon {\n width: 20px;\n height: 20px;\n stroke: var(--clepit-svg-stroke-color);\n stroke-width: 2;\n fill: none;\n display: block;\n}\n\n/* Code output button animation styles */\n.clepit-output-code-copy-btn--animating {\n color: var(--clepit-success);\n transform: scale(1.1);\n}\n\n.clepit-output-code-copy-btn--normal {\n color: var(--clepit-svg-stroke-color);\n transform: scale(1);\n}\n";
4
+ export declare const outputStyle = "\n/* Output Code Block */\n/* No margin of its own \u2014 every consumer already governs the gap around this\n * container (page rhythm via the block wrapper's margin-block, or a flex\n * container's gap inside the openapi block). A margin here just adds a second,\n * inconsistent gap on top of whichever one the consumer already applies. */\n.clepit-output-code-container {\n border: 1px solid var(--clepit-code-border);\n border-radius: var(--clepit-radius-md);\n overflow: hidden;\n background: var(--clepit-code-bg);\n margin: 0;\n}\n\n.clepit-output-code-header {\n background: var(--clepit-code-bg);\n padding: 8px 34px;\n border-bottom: 1px solid var(--clepit-code-border);\n font-size: 12px;\n color: var(--clepit-text-muted);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n/* Output header \u2014 theme-agnostic; tokens handle light/dark automatically */\n.clepit-output-code-header {\n background: var(--clepit-code-bg);\n color: var(--clepit-text-muted);\n border-bottom-color: var(--clepit-code-border);\n --clepit-svg-stroke-color: var(--clepit-text-muted);\n --clepit-btn-hover-bg: var(--clepit-block-highlight-bg);\n}\n\n/* Output code variant tabs */\n.clepit-output-code-tabs {\n display: flex;\n align-items: stretch;\n gap: 4px;\n margin: -8px 0 -8px -18px;\n overflow-x: auto;\n scrollbar-width: none;\n}\n\n.clepit-output-code-tabs::-webkit-scrollbar {\n display: none;\n}\n\n.clepit-output-code-tab {\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n border-bottom: 2px solid transparent;\n color: var(--clepit-text-muted);\n cursor: pointer;\n font: inherit;\n padding: 8px 10px;\n transition: color 0.2s ease, border-color 0.2s ease;\n white-space: nowrap;\n}\n\n.clepit-output-code-tab:hover {\n color: var(--clepit-text);\n}\n\n.clepit-output-code-tab[aria-selected=\"true\"] {\n border-bottom-color: var(--clepit-primary);\n color: var(--clepit-primary);\n}\n\n.clepit-output-code-tab:focus-visible {\n outline: 2px solid var(--clepit-primary);\n outline-offset: -2px;\n}\n\n.clepit-output-code-editor {\n overflow-y: auto;\n max-height: 60vh;\n position: relative;\n border: none;\n border-radius: 0;\n}\n\n/* The output panes: one pre per variant, the inactive ones carrying a hidden attribute.\n * Colour comes from the generated theme stylesheet, keyed on the container's\n * data-theme, so a published page keeps its palette with nothing running. */\n.clepit-output-code-pane {\n margin: 0;\n padding: 12px 34px;\n max-height: 60vh;\n overflow-y: auto;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n tab-size: 2;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n/* Code Output */\n.clepit-output-code {\n margin: 1rem 0;\n background-color: var(--clepit-code-bg);\n border: 1px solid var(--clepit-code-border);\n border-radius: var(--clepit-radius-md);\n overflow: hidden;\n}\n\n.clepit-output-code code {\n display: block;\n padding: 1rem;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--clepit-code-text);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n/* Output code copy button */\n.clepit-output-code-copy-btn {\n margin-left: auto;\n width: 24px;\n height: 24px;\n border: none;\n outline: none;\n cursor: pointer;\n border-radius: 50%;\n background: transparent;\n transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.clepit-output-code-copy-btn {\n color: var(--clepit-text-muted);\n}\n\n.clepit-output-code-copy-btn:hover {\n background: var(--clepit-block-highlight-bg);\n color: var(--clepit-primary);\n}\n\n.clepit-output-code-copy-btn:hover .clepit-copy-icon {\n stroke: var(--clepit-primary);\n}\n\n.clepit-output-code-copy-btn:active {\n transform: scale(0.95);\n}\n\n.clepit-copy-icon,\n.clepit-check-icon {\n width: 20px;\n height: 20px;\n stroke: var(--clepit-svg-stroke-color);\n stroke-width: 2;\n fill: none;\n display: block;\n}\n\n/* Code output button animation styles */\n.clepit-output-code-copy-btn--animating {\n color: var(--clepit-success);\n transform: scale(1.1);\n}\n\n.clepit-output-code-copy-btn--normal {\n color: var(--clepit-svg-stroke-color);\n transform: scale(1);\n}\n";
5
5
  //# sourceMappingURL=css.d.ts.map
@@ -6,7 +6,7 @@ export declare const CodeTool: {
6
6
  readonly input: typeof CodeInput;
7
7
  label: string;
8
8
  readonly output: typeof CodeOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -11,7 +11,10 @@ export declare class CodeOutput {
11
11
  * carries.
12
12
  *
13
13
  * Every variant pane is drawn, not only the active one, so the tabs have
14
- * something to switch between the moment a browser picks the block up.
14
+ * something to switch between the moment a browser picks the block up. Only
15
+ * the active pane is coloured: the rest carry their text and language and are
16
+ * coloured the first time they are shown, which keeps a reference with many
17
+ * samples per operation from drawing every language's spans up front.
15
18
  */
16
19
  static draw(data: CodeData, backing?: Backing, context?: DrawContext): ClepitElement | null;
17
20
  static render(data: CodeData, _config?: OutputConfig, styles?: BlockStyles['code'], classNames?: BlockClassNames['code'], containerId?: string): HTMLElement;
@@ -22,6 +25,7 @@ export declare class CodeOutput {
22
25
  * can activate on mount and release on unmount.
23
26
  */
24
27
  static activate(container: HTMLElement, data: CodeData): () => void;
28
+ static reveal(root: HTMLElement): void;
25
29
  /**
26
30
  * Like `activate`, but for embedded samples whose block data is not at
27
31
  * hand — an openapi reference draws its snippets through `draw` and only
@@ -6,7 +6,6 @@ export declare const CollapsibleTool: {
6
6
  readonly input: typeof CollapsibleInput;
7
7
  label: string;
8
8
  readonly output: typeof CollapsibleOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,7 @@ export declare const CollectionTool: {
6
6
  readonly input: typeof CollectionInput;
7
7
  label: string;
8
8
  readonly output: typeof CollectionOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,6 @@ export declare const ColumnsTool: {
6
6
  readonly input: typeof ColumnsInput;
7
7
  label: string;
8
8
  readonly output: typeof ColumnsOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,6 @@ export declare const DateTool: {
6
6
  readonly input: typeof DateInput;
7
7
  label: string;
8
8
  readonly output: typeof DateOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,6 @@ export declare const DelimiterTool: {
6
6
  readonly input: typeof DelimiterInput;
7
7
  label: string;
8
8
  readonly output: typeof DelimiterOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,7 @@ export declare const DocCardTool: {
6
6
  readonly input: typeof DocCardInput;
7
7
  label: string;
8
8
  readonly output: typeof DocCardOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,7 @@ export declare const EmbedTool: {
6
6
  readonly input: typeof EmbedInput;
7
7
  label: string;
8
8
  readonly output: typeof EmbedOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,7 @@ export declare const FileTool: {
6
6
  readonly input: typeof FileInput;
7
7
  label: string;
8
8
  readonly output: typeof FileOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,6 @@ export declare const GlanceTool: {
6
6
  readonly input: typeof GlanceInput;
7
7
  label: string;
8
8
  readonly output: typeof GlanceOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -1,5 +1,5 @@
1
1
  export declare const inputStylesKey = "clepit-header-input-styles";
2
2
  export declare const inputStyle = "\n/* Header block styles */\n.clepit-header {\n outline: none;\n margin: 0;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n padding: 0 20px;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content {\n font-weight: bold;\n margin: 16px 0 8px 0;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content h1 {\n font-size: 32px;\n margin: 0;\n color: inherit;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content h2 {\n font-size: 24px;\n margin: 0;\n color: inherit;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content h3 {\n font-size: 20px;\n margin: 0;\n color: inherit;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content h4 {\n font-size: 18px;\n margin: 0;\n color: inherit;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content h5 {\n font-size: 16px;\n margin: 0;\n color: inherit;\n}\n\n.clepit-block[data-tool=\"header\"] .clepit-block-content h6 {\n font-size: 14px;\n margin: 0;\n color: inherit;\n}\n\n/* Header placeholder styles */\n.clepit-header[data-placeholder]:empty::before {\n content: attr(data-placeholder);\n color: var(--clepit-text-subtle);\n pointer-events: none;\n font-style: italic;\n}\n\n/* Header link styles */\n.clepit-header a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-header a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Header inline code styling */\n.clepit-header code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Header marker brush effect */\n.clepit-header mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0; /* create stacking context so ::before sits behind text, not page */\n white-space: pre-wrap; /* ensure leading/trailing spaces inside mark render */\n}\n\n.clepit-header mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1; /* behind text but within mark's stacking context */\n}\n\n";
3
3
  export declare const outputStylesKey = "clepit-header-output-styles";
4
- export declare const outputStyle = "\n/* Output header styles */\n.clepit-output-header {\n margin: 0 0 1rem 0;\n font-weight: 600;\n color: var(--clepit-text);\n}\n\nh1.clepit-output-header {\n font-size: 2.5rem;\n line-height: 1.2;\n}\n\nh2.clepit-output-header {\n font-size: 2rem;\n line-height: 1.3;\n}\n\nh3.clepit-output-header {\n font-size: 1.75rem;\n line-height: 1.4;\n}\n\nh4.clepit-output-header {\n font-size: 1.5rem;\n line-height: 1.4;\n}\n\nh5.clepit-output-header {\n font-size: 1.25rem;\n line-height: 1.4;\n}\n\nh6.clepit-output-header {\n font-size: 1rem;\n line-height: 1.4;\n}\n\n/* Output header inline code styling */\n.clepit-output-header code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Output header marker brush effect */\n.clepit-output-header mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-header mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n/* Output header link styles */\n.clepit-output-header a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-header a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n h1.clepit-output-header {\n font-size: 2rem;\n }\n\n h2.clepit-output-header {\n font-size: 1.75rem;\n }\n\n h3.clepit-output-header {\n font-size: 1.5rem;\n }\n}\n";
4
+ export declare const outputStyle = "\n/* Output header styles */\n.clepit-output-header {\n margin: 0 0 1rem 0;\n font-weight: 600;\n color: var(--clepit-text);\n}\n\nh1.clepit-output-header {\n font-size: 2.5rem;\n line-height: 1.2;\n}\n\nh2.clepit-output-header {\n font-size: 2rem;\n line-height: 1.3;\n}\n\nh3.clepit-output-header {\n font-size: 1.75rem;\n line-height: 1.4;\n}\n\nh4.clepit-output-header {\n font-size: 1.5rem;\n line-height: 1.4;\n}\n\nh5.clepit-output-header {\n font-size: 1.25rem;\n line-height: 1.4;\n}\n\nh6.clepit-output-header {\n font-size: 1rem;\n line-height: 1.4;\n}\n\n/* Output header inline code styling */\n.clepit-output-header code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n/* Output header marker brush effect */\n.clepit-output-header mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-header mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n/* Output header link styles */\n.clepit-output-header a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-header a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n h1.clepit-output-header {\n font-size: 2rem;\n }\n\n h2.clepit-output-header {\n font-size: 1.75rem;\n }\n\n h3.clepit-output-header {\n font-size: 1.5rem;\n }\n}\n";
5
5
  //# sourceMappingURL=css.d.ts.map
@@ -6,7 +6,7 @@ export declare const ImageTool: {
6
6
  readonly input: typeof ImageInput;
7
7
  label: string;
8
8
  readonly output: typeof ImageOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,7 @@ export declare const IssuesTool: {
6
6
  readonly input: typeof IssuesInput;
7
7
  label: string;
8
8
  readonly output: typeof IssuesOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -1,5 +1,5 @@
1
1
  export declare const inputStylesKey = "clepit-list-input-styles";
2
2
  export declare const inputStyle = "\n/* List block styles */\n.clepit-list {\n margin: 0;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n padding: 0 16px;\n}\n\n.clepit-list-item {\n margin: 0;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n padding: 0;\n}\n\n.clepit-block[data-tool=\"list\"] .clepit-block-content {\n padding-left: 40px;\n}\n\n.clepit-block[data-tool=\"list\"] .clepit-block-content ul,\n.clepit-block[data-tool=\"list\"] .clepit-block-content ol {\n margin: 0;\n padding-left: 20px;\n}\n\n.clepit-block[data-tool=\"list\"] .clepit-block-content li {\n margin: 4px 0;\n}\n\n/* List item placeholder styles */\n.clepit-list-item[data-placeholder]:empty::before {\n content: attr(data-placeholder);\n color: var(--clepit-text-subtle);\n pointer-events: none;\n font-style: italic;\n}\n\n/* List item link styles */\n.clepit-list-item a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-list-item a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* List item inline code styling */\n.clepit-list-item code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* List item marker brush effect */\n.clepit-list-item mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0; /* create stacking context so ::before sits behind text, not page */\n white-space: pre-wrap; /* ensure leading/trailing spaces inside mark render */\n}\n\n.clepit-list-item mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1; /* behind text but within mark's stacking context */\n}\n\n";
3
3
  export declare const outputStylesKey = "clepit-list-output-styles";
4
- export declare const outputStyle = "\n/* Output list styles */\n.clepit-output-list {\n margin: 0 0 1rem 0;\n padding-left: 2rem;\n}\n\n.clepit-output-list-item {\n margin: 0.5rem 0;\n line-height: 1.6;\n}\n\n/* Output list link styles */\n.clepit-output-list a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-list a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Output list inline code styling */\n.clepit-output-list li code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Output list marker brush effect */\n.clepit-output-list li mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-list li mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .clepit-output-list {\n padding-left: 1.5rem;\n }\n}\n";
4
+ export declare const outputStyle = "\n/* Output list styles */\n.clepit-output-list {\n margin: 0 0 1rem 0;\n padding-left: 2rem;\n}\n\n.clepit-output-list-item {\n margin: 0.5rem 0;\n line-height: 1.6;\n}\n\n/* Output list link styles */\n.clepit-output-list a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-list a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Output list inline code styling */\n.clepit-output-list li code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n/* Output list marker brush effect */\n.clepit-output-list li mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-list li mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .clepit-output-list {\n padding-left: 1.5rem;\n }\n}\n";
5
5
  //# sourceMappingURL=css.d.ts.map
@@ -6,7 +6,6 @@ export declare const ListTool: {
6
6
  readonly input: typeof ListInput;
7
7
  label: string;
8
8
  readonly output: typeof ListOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,7 @@ export declare const OpenApiTool: {
6
6
  readonly input: typeof OpenApiInput;
7
7
  label: string;
8
8
  readonly output: typeof OpenApiOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -1,5 +1,5 @@
1
1
  export declare const inputStylesKey = "clepit-paragraph-input-styles";
2
2
  export declare const inputStyle = "\n/* Paragraph block styles */\n.clepit-paragraph {\n outline: none;\n margin: 0;\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n padding: 0 20px;\n}\n\n.clepit-block[data-tool=\"paragraph\"] .clepit-block-content {\n font-size: 16px;\n line-height: 1.6;\n}\n\n/* Paragraph placeholder styles */\n.clepit-paragraph[data-placeholder]:empty::before {\n content: attr(data-placeholder);\n color: var(--clepit-text-subtle);\n pointer-events: none;\n font-style: italic;\n}\n\n/* Paragraph link styles */\n.clepit-paragraph a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-paragraph a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Paragraph inline code styling */\n.clepit-paragraph code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Paragraph marker brush effect */\n.clepit-paragraph mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0; /* create stacking context so ::before sits behind text, not page */\n white-space: pre-wrap; /* ensure leading/trailing spaces inside mark render */\n}\n\n.clepit-paragraph mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1; /* behind text but within mark's stacking context */\n}\n\n";
3
3
  export declare const outputStylesKey = "clepit-paragraph-output-styles";
4
- export declare const outputStyle = "\n/* Output paragraph styles */\n.clepit-output-paragraph {\n margin: 0 0 1rem 0;\n line-height: 1.6;\n color: var(--clepit-text);\n}\n\n/* Output paragraph inline code styling */\n.clepit-output-paragraph code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Output paragraph marker brush effect */\n.clepit-output-paragraph mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-paragraph mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n/* Output paragraph link styles */\n.clepit-output-paragraph a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-paragraph a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n";
4
+ export declare const outputStyle = "\n/* Output paragraph styles */\n.clepit-output-paragraph {\n margin: 0 0 1rem 0;\n line-height: 1.6;\n color: var(--clepit-text);\n}\n\n/* Output paragraph inline code styling */\n.clepit-output-paragraph code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n/* Output paragraph marker brush effect */\n.clepit-output-paragraph mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-paragraph mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n/* Output paragraph link styles */\n.clepit-output-paragraph a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-paragraph a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n";
5
5
  //# sourceMappingURL=css.d.ts.map
@@ -1,5 +1,5 @@
1
1
  export declare const inputStylesKey = "clepit-quote-input-styles";
2
2
  export declare const inputStyle: string;
3
3
  export declare const outputStylesKey = "clepit-quote-output-styles";
4
- export declare const outputStyle = "\n/* Output quote styles */\n.clepit-output-quote-container {\n background: var(--clepit-surface);\n border: 1px solid var(--clepit-border);\n border-radius: var(--clepit-radius-md);\n padding: 12px 14px;\n margin: 20px 0;\n position: relative;\n}\n\n.clepit-output-quote-author {\n color: var(--clepit-text-muted);\n font-size: 0.9em;\n font-style: normal;\n font-family: inherit;\n text-align: right;\n margin-top: 10px;\n}\n\n.clepit-output-quote-divider {\n height: 1px;\n margin: 15px 0;\n background: linear-gradient(to right, transparent, var(--clepit-border-subtle), transparent);\n}\n\n.clepit-output-quote-text {\n font-size: 1.2em;\n line-height: 1.6;\n font-family: cursive, serif;\n font-style: italic;\n margin-bottom: 15px;\n}\n\n.clepit-output-quote-content {\n /* Content styling handled by parent */\n}\n\n/* Output quote link styles */\n.clepit-output-quote a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-quote a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Output quote inline code styling */\n.clepit-output-quote code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n.clepit-output-quote cite code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Output quote marker brush effect */\n.clepit-output-quote mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-quote mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n.clepit-output-quote cite mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-quote cite mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n";
4
+ export declare const outputStyle = "\n/* Output quote styles */\n.clepit-output-quote-container {\n background: var(--clepit-surface);\n border: 1px solid var(--clepit-border);\n border-radius: var(--clepit-radius-md);\n padding: 12px 14px;\n margin: 20px 0;\n position: relative;\n}\n\n.clepit-output-quote-author {\n color: var(--clepit-text-muted);\n font-size: 0.9em;\n font-style: normal;\n font-family: inherit;\n text-align: right;\n margin-top: 10px;\n}\n\n.clepit-output-quote-divider {\n height: 1px;\n margin: 15px 0;\n background: linear-gradient(to right, transparent, var(--clepit-border-subtle), transparent);\n}\n\n.clepit-output-quote-text {\n font-size: 1.2em;\n line-height: 1.6;\n font-family: cursive, serif;\n font-style: italic;\n margin-bottom: 15px;\n}\n\n.clepit-output-quote-content {\n /* Content styling handled by parent */\n}\n\n/* Output quote link styles */\n.clepit-output-quote a {\n color: var(--clepit-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s ease;\n}\n\n.clepit-output-quote a:hover {\n color: var(--clepit-primary-hover);\n text-decoration: none;\n}\n\n/* Output quote inline code styling */\n.clepit-output-quote code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n.clepit-output-quote cite code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n/* Output quote marker brush effect */\n.clepit-output-quote mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-quote mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n\n.clepit-output-quote cite mark {\n background: none;\n position: relative;\n color: inherit;\n display: inline-block;\n z-index: 0;\n white-space: pre-wrap;\n}\n\n.clepit-output-quote cite mark::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: 0.15em;\n height: 1.25em;\n transform: rotate(-0.4deg);\n background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'><path d='M0,8 C5,2 15,1 25,3 35,5 45,2 55,4 65,6 75,5 85,7 95,9 100,8 100,8 100,14 95,18 85,17 75,16 65,19 55,17 45,15 35,18 25,16 15,14 5,15 0,12 Z' fill='%23FFE047'/></svg>\") no-repeat center / 100% 100%;\n z-index: -1;\n}\n";
5
5
  //# sourceMappingURL=css.d.ts.map
@@ -6,7 +6,6 @@ export declare const QuoteTool: {
6
6
  readonly input: typeof QuoteInput;
7
7
  label: string;
8
8
  readonly output: typeof QuoteOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,7 @@ export declare const SketchTool: {
6
6
  readonly input: typeof SketchInput;
7
7
  label: string;
8
8
  readonly output: typeof SketchOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -1,5 +1,5 @@
1
1
  export declare const inputStylesKey = "clepit-table-input-styles";
2
2
  export declare const inputStyle: string;
3
3
  export declare const outputStylesKey = "clepit-table-output-styles";
4
- export declare const outputStyle = "\n/* Output table styles */\n.clepit-output-table-container {\n margin: 1rem 0;\n overflow-x: auto;\n}\n\n.clepit-output-table {\n width: 100%;\n border-collapse: collapse;\n border: 0;\n overflow: hidden;\n background: var(--clepit-bg);\n}\n\n/* House style: rows carry no horizontal dividers and no column rules. Rows are\n * told apart by zebra striping, which is what does that job instead \u2014 removing\n * the rules is not a licence to remove the banding too. */\n/* These four rules were assigned from JavaScript, one element at a time, which\n * is a browser call inside a render path. In a stylesheet they cost nothing to\n * a page that draws without a browser, and a caller's own inline style still\n * wins over them exactly as it did before. */\n.clepit-output-table-wrapper {\n overflow: hidden;\n width: 100%;\n border: 1px solid var(--clepit-border);\n border-radius: var(--clepit-radius-md);\n margin-bottom: 1rem;\n}\n\n.clepit-output-table-scroller {\n overflow-x: auto;\n}\n\n.clepit-output-table {\n table-layout: auto;\n margin-top: 0;\n margin-bottom: 0;\n border-radius: 0;\n}\n\n.clepit-output-table th,\n.clepit-output-table td {\n padding: 10px 12px;\n text-align: left;\n min-width: 120px;\n max-width: 400px;\n}\n\n.clepit-output-table th {\n background: var(--clepit-surface);\n border-bottom: 1px solid var(--clepit-border);\n color: var(--clepit-text);\n font-weight: 600;\n}\n\n.clepit-output-table tbody tr:nth-child(odd) {\n background: var(--clepit-bg);\n}\n\n.clepit-output-table tbody tr:nth-child(even) {\n background: var(--clepit-surface);\n}\n\n/* No hover state: a rendered table is display, not a control. A row that\n * changes colour under the pointer reads as clickable when it is not. */\n\n/* Table Output Caption */\n.clepit-output-table-caption {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n color: var(--clepit-text-muted);\n font-style: italic;\n text-align: center;\n}\n\n/* Make footer cell neutral so caption styles are visible */\n.clepit-output-table tfoot td,\n.clepit-output-table tfoot .clepit-output-table-caption-cell {\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n.clepit-output-table-download-btn {\n margin-left: auto;\n width: 24px;\n height: 24px;\n border: none;\n outline: none;\n cursor: pointer;\n border-radius: 50%;\n background: transparent;\n transition: all 0.2s ease;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.clepit-output-table-download-btn:hover {\n background: var(--clepit-bg);\n}\n\n.clepit-output-table-download-btn:hover .clepit-download-icon {\n stroke: var(--clepit-primary);\n}\n\n.clepit-output-table-download-btn:active {\n transform: scale(0.95);\n}\n\n.clepit-download-icon {\n width: 20px;\n height: 20px;\n stroke: var(--clepit-text-muted);\n transition: stroke 0.2s ease;\n}\n\n.clepit-output-table-footer-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: var(--clepit-surface);\n border-top: 1px solid var(--clepit-border);\n}\n";
4
+ export declare const outputStyle = "\n/* Output table styles */\n.clepit-output-table-container {\n margin: 1rem 0;\n overflow-x: auto;\n}\n\n.clepit-output-table {\n width: 100%;\n border-collapse: collapse;\n border: 0;\n overflow: hidden;\n background: var(--clepit-bg);\n}\n\n/* House style: rows carry no horizontal dividers and no column rules. Rows are\n * told apart by zebra striping, which is what does that job instead \u2014 removing\n * the rules is not a licence to remove the banding too. */\n/* These four rules were assigned from JavaScript, one element at a time, which\n * is a browser call inside a render path. In a stylesheet they cost nothing to\n * a page that draws without a browser, and a caller's own inline style still\n * wins over them exactly as it did before. */\n.clepit-output-table-wrapper {\n overflow: hidden;\n width: 100%;\n border: 1px solid var(--clepit-border);\n border-radius: var(--clepit-radius-md);\n margin-bottom: 1rem;\n}\n\n.clepit-output-table-scroller {\n overflow-x: auto;\n}\n\n.clepit-output-table {\n table-layout: auto;\n margin-top: 0;\n margin-bottom: 0;\n border-radius: 0;\n}\n\n.clepit-output-table th,\n.clepit-output-table td {\n padding: 10px 12px;\n text-align: left;\n min-width: 120px;\n max-width: 400px;\n}\n\n.clepit-output-table th {\n background: var(--clepit-surface);\n border-bottom: 1px solid var(--clepit-border);\n color: var(--clepit-text);\n font-weight: 600;\n}\n\n.clepit-output-table tbody tr:nth-child(odd) {\n background: var(--clepit-bg);\n}\n\n.clepit-output-table tbody tr:nth-child(even) {\n background: var(--clepit-surface);\n}\n\n/* No hover state: a rendered table is display, not a control. A row that\n * changes colour under the pointer reads as clickable when it is not. */\n\n/* Table Output Caption */\n.clepit-output-table-caption {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n color: var(--clepit-text-muted);\n font-style: italic;\n text-align: center;\n}\n\n/* Make footer cell neutral so caption styles are visible */\n.clepit-output-table tfoot td,\n.clepit-output-table tfoot .clepit-output-table-caption-cell {\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n.clepit-output-table-download-btn {\n margin-left: auto;\n width: 24px;\n height: 24px;\n border: none;\n outline: none;\n cursor: pointer;\n border-radius: 50%;\n background: transparent;\n transition: background-color 0.2s ease, transform 0.2s ease;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.clepit-output-table-download-btn:hover {\n background: var(--clepit-bg);\n}\n\n.clepit-output-table-download-btn:hover .clepit-download-icon {\n stroke: var(--clepit-primary);\n}\n\n.clepit-output-table-download-btn:active {\n transform: scale(0.95);\n}\n\n.clepit-download-icon {\n width: 20px;\n height: 20px;\n stroke: var(--clepit-text-muted);\n transition: stroke 0.2s ease;\n}\n\n.clepit-output-table-footer-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: var(--clepit-surface);\n border-top: 1px solid var(--clepit-border);\n}\n";
5
5
  //# sourceMappingURL=css.d.ts.map
@@ -6,7 +6,7 @@ export declare const TableTool: {
6
6
  readonly input: typeof TableInput;
7
7
  label: string;
8
8
  readonly output: typeof TableOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,6 @@ export declare const TocTool: {
6
6
  readonly input: typeof TocInput;
7
7
  label: string;
8
8
  readonly output: typeof TocOutput;
9
- shortcut: string;
10
9
  testId: string;
11
10
  type: ToolType;
12
11
  };
@@ -6,7 +6,7 @@ export declare const LatexTool: {
6
6
  readonly input: typeof LatexInput;
7
7
  label: string;
8
8
  readonly output: typeof LatexOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -15,7 +15,7 @@ export declare const MermaidTool: {
15
15
  readonly input: typeof MermaidInput;
16
16
  label: string;
17
17
  readonly output: typeof MermaidOutput;
18
- shortcut: string;
18
+ section: "media";
19
19
  testId: string;
20
20
  type: ToolType;
21
21
  };
@@ -6,7 +6,7 @@ export declare const UpdatesTool: {
6
6
  readonly input: typeof UpdatesInput;
7
7
  label: string;
8
8
  readonly output: typeof UpdatesOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -6,7 +6,7 @@ export declare const VideoTool: {
6
6
  readonly input: typeof VideoInput;
7
7
  label: string;
8
8
  readonly output: typeof VideoOutput;
9
- shortcut: string;
9
+ section: "media";
10
10
  testId: string;
11
11
  type: ToolType;
12
12
  };
@@ -1,3 +1,5 @@
1
- import { Tool } from '../types';
1
+ import { Tool, ToolSection } from '../types';
2
+ export declare const toolSection: (tool: Tool) => ToolSection;
3
+ export declare const uniqueShortcuts: (tools: Tool[]) => Set<string>;
2
4
  export declare const blockTools: Tool[];
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
1
  export declare const stylesKey = "clepit-inline-code-styles";
2
- export declare const style = "\n/* Inline code styling when <code> is within editable text */\n.clepit-paragraph code,\n.clepit-header code,\n.clepit-list-item code,\n.clepit-quote-text code,\n.clepit-quote-caption code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Output inline code styling */\n.clepit-output-paragraph code,\n.clepit-output-header code,\n.clepit-output-list li code,\n.clepit-output-quote code,\n.clepit-output-quote cite code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n}\n\n/* Toolbar button code styling */\n.clepit-toolbar-button strong,\n.clepit-toolbar-button em,\n.clepit-toolbar-button u,\n.clepit-toolbar-button code,\n.clepit-toolbar-button mark {\n font-size: inherit;\n font-weight: inherit;\n font-style: inherit;\n text-decoration: inherit;\n background: transparent;\n padding: 0;\n border-radius: 0;\n font-family: inherit;\n}\n";
2
+ export declare const style = "\n/* Inline code styling when <code> is within editable text */\n.clepit-paragraph code,\n.clepit-header code,\n.clepit-list-item code,\n.clepit-quote-text code,\n.clepit-quote-caption code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n/* Output inline code styling */\n.clepit-output-paragraph code,\n.clepit-output-header code,\n.clepit-output-list li code,\n.clepit-output-quote code,\n.clepit-output-quote cite code {\n background: var(--clepit-error-bg);\n color: var(--clepit-error);\n padding: 0 4px;\n border-radius: 4px;\n overflow-wrap: anywhere;\n}\n\n/* Toolbar button code styling */\n.clepit-toolbar-button strong,\n.clepit-toolbar-button em,\n.clepit-toolbar-button u,\n.clepit-toolbar-button code,\n.clepit-toolbar-button mark {\n font-size: inherit;\n font-weight: inherit;\n font-style: inherit;\n text-decoration: inherit;\n background: transparent;\n padding: 0;\n border-radius: 0;\n font-family: inherit;\n}\n";
3
3
  //# sourceMappingURL=css.d.ts.map
@@ -2,7 +2,10 @@ import { DialogLabel, EditorClassNames, EditorStyles } from '../../../types';
2
2
  export interface LinkDialogOptions {
3
3
  text: string;
4
4
  url: string;
5
+ isLinked: boolean;
6
+ anchor?: DOMRect;
5
7
  onConfirm: (text: string, url: string) => void;
8
+ onRemove: () => void;
6
9
  onCancel: () => void;
7
10
  styles?: EditorStyles['dialogs'];
8
11
  classNames?: EditorClassNames['dialogs'];
@@ -10,22 +13,18 @@ export interface LinkDialogOptions {
10
13
  }
11
14
  export declare class LinkDialog {
12
15
  private static isOpen;
13
- private overlay;
14
- private dialog;
15
- private textInput;
16
+ private card;
16
17
  private urlInput;
17
18
  private options;
18
19
  constructor(options: LinkDialogOptions);
19
20
  show(): void;
20
21
  hide(): void;
21
22
  private word;
22
- private createDialog;
23
- private createInputGroup;
24
- private createButtonGroup;
25
- private bindEvents;
26
- private handleKeyDown;
23
+ private createCard;
24
+ private applyUrl;
25
+ private dismiss;
27
26
  private handleInputKeyDown;
28
- private focusFirstInput;
27
+ private handleToggle;
29
28
  private applyStyles;
30
29
  private applyClassNames;
31
30
  destroy(): void;
@@ -4,6 +4,7 @@ export declare class LinkInput {
4
4
  static icon: string;
5
5
  static shortcut: string;
6
6
  static apply(range: Range, classNames: EditorClassNames['dialogs'], styles: EditorStyles['dialogs'], labels?: Partial<Record<DialogLabel, string>>): void;
7
+ private static announce;
7
8
  static remove(range: Range): void;
8
9
  private static findLinkElement;
9
10
  static isActive(range: Range): boolean;
@@ -2,7 +2,6 @@ import { BlockClassNames, BlockStyles } from '../../../types';
2
2
  export declare class MarkerInput {
3
3
  static label: string;
4
4
  static icon: string;
5
- static shortcut: string;
6
5
  static apply(range: Range, classNames: BlockClassNames['marker'], styles: BlockStyles['marker']): void;
7
6
  static remove(range: Range): void;
8
7
  private static cleanupSpaces;
@@ -12,6 +12,7 @@ export type StatusDialogOptions = {
12
12
  };
13
13
  export declare class StatusDialog {
14
14
  private static isOpen;
15
+ private static count;
15
16
  private overlay;
16
17
  private dialog;
17
18
  private textInput;
@@ -1,7 +1,6 @@
1
1
  export declare class StrikethroughInput {
2
2
  static label: string;
3
3
  static icon: string;
4
- static shortcut: string;
5
4
  static apply(range: Range): void;
6
5
  static remove(range: Range): void;
7
6
  static isActive(range: Range): boolean;
@@ -31,6 +31,7 @@ export type TooltipDialogOptions = {
31
31
  };
32
32
  };
33
33
  export declare class TooltipDialog {
34
+ private static count;
34
35
  private overlay;
35
36
  private dialog;
36
37
  private inputText;
@@ -10,7 +10,6 @@ type BlockStylesAndClassNames = {
10
10
  export declare class TooltipInput {
11
11
  static label: string;
12
12
  static icon: string;
13
- static shortcut: string;
14
13
  static apply(range: Range, editorStylesAndClassNames: EditorStylesAndClassNames, blockStylesAndClassNames: BlockStylesAndClassNames, labels?: Partial<Record<DialogLabel, string>>): void;
15
14
  static remove(range: Range): void;
16
15
  static isActive(range: Range): boolean;
package/dist/types.d.ts CHANGED
@@ -69,10 +69,12 @@ export type HeaderLevel = (typeof HEADER_LEVELS)[number];
69
69
  export type InlineToolType = (typeof INLINE_TOOLS)[number];
70
70
  export type BlockToolType = (typeof BLOCK_TOOLS)[number];
71
71
  export type ToolType = BlockToolType | InlineToolType;
72
+ export type ToolSection = 'basic' | 'media';
72
73
  export type Tool = {
73
74
  icon: string;
74
75
  label: string;
75
- shortcut: string;
76
+ section?: ToolSection;
77
+ shortcut?: string;
76
78
  testId: string;
77
79
  type: ToolType;
78
80
  input: typeof AlertInput | typeof CollapsibleInput | typeof CollectionInput | typeof EmbedInput | typeof SketchInput | typeof LatexInput | typeof MermaidInput | typeof ColumnsInput | typeof DateInput | typeof DocCardInput | typeof FileInput | typeof IssuesInput | typeof TocInput | typeof UpdatesInput | typeof GlanceInput | typeof DelimiterInput | typeof ListInput | typeof OpenApiInput | typeof HeaderInput | typeof QuoteInput | typeof CodeInput | typeof TableInput | typeof ImageInput | typeof AudioInput | typeof VideoInput | typeof ParagraphInput | typeof ChecklistInput;
@@ -1011,6 +1013,7 @@ export type EditorConfig = {
1011
1013
  inlineRewriteTooltip?: string;
1012
1014
  blockToolLabels?: Partial<Record<BlockToolType, string>>;
1013
1015
  blockToolbarLabels?: Partial<Record<BlockToolbarLabel, string>>;
1016
+ inlineToolbarLabels?: Partial<Record<InlineToolbarLabel, string>>;
1014
1017
  controlLabels?: Partial<Record<ControlLabel, string>>;
1015
1018
  dialogLabels?: Partial<Record<DialogLabel, string>>;
1016
1019
  resolveLink?: (url: string) => Promise<Partial<EmbedData>>;
@@ -1029,13 +1032,15 @@ export type EditorConfig = {
1029
1032
  };
1030
1033
  export declare const BLOCK_TOOLBAR_OPERATIONS: readonly ["convert", "moveUp", "moveDown", "delete"];
1031
1034
  export type BlockToolbarOperation = (typeof BLOCK_TOOLBAR_OPERATIONS)[number];
1032
- export declare const BLOCK_MENU_LABELS: readonly ["searchBlocks", "searchOperations", "searchConvertOptions", "searchLanguages", "searchThemes", "noBlockTypesFound", "noOperationsFound", "noConvertOptionsFound", "alignLeft", "alignCenter", "alignRight", "codeLanguage", "codeTheme", "headingH1", "headingH2", "headingH3", "headingH4", "headingH5", "headingH6", "listUnordered", "listOrdered", "variantInfo", "variantWarning", "variantError", "variantSuccess", "variantPlain", "delimiterLine", "delimiterStars", "embedShowLive", "embedShowCard", "embedShowLink", "embedCopyLink", "embedShowChip", "alertTextHint", "checklistItemHint", "codeHint", "collapsibleTitleHint", "glanceLabelHint", "glanceValueHint", "headerHint", "listItemHint", "mediaCaptionHint", "openApiSourceHint", "quoteAuthorHint", "quoteBodyHint", "tableCaptionHint", "tableCellHint", "tableHeaderHint", "tableInsertAbove", "tableInsertBelow", "tableInsertLeft", "tableInsertRight", "tableMoveLeft", "tableMoveRight", "tableRowActions", "tableColumnActions", "diagramTitleHint", "formulaTitleHint", "imageDropTitle", "imageDropAction", "imageDropFormats", "imageUploading", "imageUploadFailed", "imageInvalidType"];
1035
+ export declare const BLOCK_MENU_LABELS: readonly ["addBlock", "blockActions", "searchBlocks", "searchOperations", "searchConvertOptions", "searchLanguages", "searchThemes", "sectionBasic", "sectionMedia", "noBlockTypesFound", "noOperationsFound", "noConvertOptionsFound", "deleteLastBlock", "alignLeft", "alignCenter", "alignRight", "codeLanguage", "codeTheme", "headingH1", "headingH2", "headingH3", "headingH4", "headingH5", "headingH6", "listUnordered", "listOrdered", "variantInfo", "variantWarning", "variantError", "variantSuccess", "variantPlain", "delimiterLine", "delimiterStars", "embedShowLive", "embedShowCard", "embedShowLink", "embedCopyLink", "embedShowChip", "alertTextHint", "checklistItemHint", "codeHint", "collapsibleTitleHint", "glanceLabelHint", "glanceValueHint", "headerHint", "listItemHint", "mediaCaptionHint", "openApiSourceHint", "quoteAuthorHint", "quoteBodyHint", "tableCaptionHint", "tableCellHint", "tableHeaderHint", "tableInsertAbove", "tableInsertBelow", "tableInsertLeft", "tableInsertRight", "tableMoveLeft", "tableMoveRight", "tableRowActions", "tableColumnActions", "diagramTitleHint", "formulaTitleHint", "imageDropTitle", "imageDropAction", "imageDropFormats", "imageUploading", "imageUploadFailed", "imageInvalidType"];
1033
1036
  export type BlockMenuLabel = (typeof BLOCK_MENU_LABELS)[number];
1034
- export declare const CONTROL_LABELS: readonly ["editView", "previewView", "jsonView", "copyJson", "downloadJson", "clearEditor"];
1037
+ export declare const CONTROL_LABELS: readonly ["editView", "previewView", "jsonView", "copyJson", "downloadJson", "clearEditor", "viewSwitcher"];
1035
1038
  export type ControlLabel = (typeof CONTROL_LABELS)[number];
1036
- export declare const DIALOG_LABELS: readonly ["insertLink", "insertTooltip", "inlineStatus", "textField", "urlField", "tooltipField", "statusLabelField", "statusVariantField", "urlPlaceholder", "linkTextPlaceholder", "textPlaceholder", "tooltipPlaceholder", "statusLabelPlaceholder", "cancel", "apply", "statusInfo", "statusSuccess", "statusWarning", "statusError", "statusPlain"];
1039
+ export declare const DIALOG_LABELS: readonly ["insertLink", "insertTooltip", "inlineStatus", "textField", "urlField", "tooltipField", "statusLabelField", "statusVariantField", "urlPlaceholder", "textPlaceholder", "tooltipPlaceholder", "statusLabelPlaceholder", "cancel", "apply", "removeLink", "statusInfo", "statusSuccess", "statusWarning", "statusError", "statusPlain"];
1037
1040
  export type DialogLabel = (typeof DIALOG_LABELS)[number];
1038
1041
  export type BlockToolbarLabel = BlockToolbarOperation | BlockMenuLabel;
1042
+ export declare const INLINE_TOOLBAR_LABELS: readonly ["formatText", "textType", "text", "more", "bold", "italic", "underline", "strikethrough", "inlineCode", "link", "highlight", "status", "tooltip"];
1043
+ export type InlineToolbarLabel = (typeof INLINE_TOOLBAR_LABELS)[number];
1039
1044
  export declare const INLINE_REWRITE_ACTIONS: readonly ["improve", "shorten", "lengthen", "simplify", "fix_grammar"];
1040
1045
  export type InlineRewriteAction = (typeof INLINE_REWRITE_ACTIONS)[number];
1041
1046
  export type RendererConfig = {
@@ -1,3 +1,3 @@
1
1
  export declare const stylesKey = "clepit-dialogs-styles";
2
- export declare const style = "\n/* Dialog Overlay */\n/* A native <dialog>. showModal() puts it in the top layer and paints a real\n * ::backdrop, so the full-screen scrim, the z-index and the manual centring are\n * the browser's job now. The non-modal branch below keeps the old flex overlay\n * for a DOM without showModal, where the element is an ordinary block. */\n.clepit-dialog-overlay {\n border: none;\n padding: 0;\n background: transparent;\n max-width: none;\n max-height: none;\n}\n\n.clepit-dialog-overlay[open] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.clepit-dialog-overlay::backdrop {\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n}\n\n/* Fallback: no showModal, so the element is not in the top layer and paints no\n * backdrop of its own. */\n.clepit-dialog-overlay:not([open]) {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n align-items: center;\n justify-content: center;\n z-index: 10000;\n backdrop-filter: blur(2px);\n}\n\n/* Dialog Container */\n.clepit-dialog {\n background: var(--clepit-bg);\n border-radius: 8px;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\n padding: 24px;\n min-width: 400px;\n max-width: 500px;\n max-height: 80vh;\n overflow-y: auto;\n position: relative;\n transform: scale(0.95);\n opacity: 0;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.clepit-dialog--hidden {\n transform: scale(0.95);\n opacity: 0;\n}\n\n.clepit-dialog:not(.clepit-dialog--hidden) {\n transform: scale(1);\n opacity: 1;\n}\n\n/* Dialog Title */\n.clepit-dialog-title {\n margin: 0 0 20px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--clepit-text);\n text-align: center;\n}\n\n/* Dialog Group */\n.clepit-dialog-group {\n margin-bottom: 16px;\n}\n\n/* Dialog Label */\n.clepit-dialog-label {\n display: block;\n margin-bottom: 6px;\n font-size: 14px;\n font-weight: 500;\n color: var(--clepit-text);\n}\n\n/* Dialog Input */\n.clepit-dialog-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid var(--clepit-border);\n border-radius: 6px;\n font-size: 14px;\n color: var(--clepit-text);\n background: var(--clepit-bg);\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n box-sizing: border-box;\n}\n\n.clepit-dialog-input:focus {\n outline: none;\n border-color: var(--clepit-primary);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.clepit-dialog-input::placeholder {\n color: var(--clepit-text-subtle);\n}\n\n/* Dialog Buttons */\n.clepit-dialog-buttons {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n margin-top: 24px;\n}\n\n/* Dialog Button */\n.clepit-dialog-button {\n padding: 10px 20px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n min-width: 80px;\n}\n\n.clepit-dialog-button--cancel {\n background: var(--clepit-surface);\n color: var(--clepit-text);\n border: 1px solid var(--clepit-border);\n}\n\n.clepit-dialog-button--cancel:hover {\n background: var(--clepit-border);\n border-color: var(--clepit-text-subtle);\n}\n\n.clepit-dialog-button--save {\n background: var(--clepit-primary);\n color: white;\n}\n\n.clepit-dialog-button--save:hover {\n background: var(--clepit-primary);\n}\n\n.clepit-dialog-button--save:disabled {\n background: var(--clepit-text-subtle);\n cursor: not-allowed;\n}\n\n/* Responsive */\n@media (max-width: 640px) {\n .clepit-dialog {\n min-width: 320px;\n max-width: 90vw;\n margin: 20px;\n }\n\n .clepit-dialog-buttons {\n flex-direction: column;\n }\n\n .clepit-dialog-button {\n width: 100%;\n }\n}\n";
2
+ export declare const style = "\n.clepit-dialog-overlay {\n border: none;\n padding: 0;\n background: transparent;\n max-width: none;\n max-height: none;\n}\n\n.clepit-dialog-overlay[open] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.clepit-dialog-overlay::backdrop {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.clepit-dialog-overlay:not([open]) {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n align-items: center;\n justify-content: center;\n z-index: 10000;\n}\n\n.clepit-dialog {\n position: relative;\n box-sizing: border-box;\n width: min(440px, calc(100vw - 32px));\n max-height: 80vh;\n overflow-y: auto;\n padding: 24px;\n border: 1px solid var(--clepit-border);\n border-radius: var(--clepit-radius-lg);\n background: var(--clepit-menu-bg);\n box-shadow: var(--clepit-menu-shadow);\n color: var(--clepit-text);\n font-family: inherit;\n transform: scale(0.98);\n opacity: 0;\n transition: transform 0.15s ease-out, opacity 0.15s ease-out;\n}\n\n.clepit-dialog:not(.clepit-dialog--hidden) {\n transform: scale(1);\n opacity: 1;\n}\n\n.clepit-dialog--hidden {\n transform: scale(0.98);\n opacity: 0;\n}\n\n.clepit-dialog-title {\n margin: 0 0 16px;\n font-size: 17px;\n font-weight: 600;\n line-height: 1.4;\n color: var(--clepit-text);\n}\n\n.clepit-dialog-group {\n margin-bottom: 16px;\n}\n\n.clepit-dialog-label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: var(--clepit-text);\n}\n\n.clepit-dialog-input {\n display: block;\n width: 100%;\n height: 36px;\n margin-bottom: 16px;\n padding: 0 10px;\n border: 1px solid var(--clepit-border);\n border-radius: var(--clepit-radius-md);\n background: var(--clepit-bg);\n color: var(--clepit-text);\n font: inherit;\n font-size: 14px;\n box-sizing: border-box;\n}\n\n.clepit-dialog-group .clepit-dialog-input {\n margin-bottom: 0;\n}\n\n.clepit-dialog-input:focus-visible {\n outline: 2px solid var(--clepit-focus-ring);\n outline-offset: -1px;\n border-color: transparent;\n}\n\n.clepit-dialog-input::placeholder {\n color: var(--clepit-text-subtle);\n}\n\n.clepit-dialog-buttons {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 24px;\n}\n\n.clepit-dialog-button {\n height: 30px;\n padding: 0 14px;\n border: 0;\n border-radius: var(--clepit-radius-md);\n font: inherit;\n font-size: 13.5px;\n font-weight: 500;\n white-space: nowrap;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.clepit-dialog-button:focus-visible {\n outline: 2px solid var(--clepit-focus-ring);\n outline-offset: 1px;\n}\n\n.clepit-dialog-button--cancel {\n background: transparent;\n color: var(--clepit-text-muted);\n}\n\n.clepit-dialog-button--cancel:hover {\n background: var(--clepit-hover-bg);\n color: var(--clepit-text);\n}\n\n.clepit-dialog-button--save {\n background: var(--clepit-primary);\n color: var(--clepit-on-primary);\n}\n\n.clepit-dialog-button--save:hover {\n background: var(--clepit-primary-hover);\n}\n\n.clepit-dialog-button--save:disabled {\n background: var(--clepit-text-subtle);\n cursor: not-allowed;\n}\n\n@media (pointer: coarse) {\n .clepit-dialog-input,\n .clepit-dialog-button {\n height: 44px;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .clepit-dialog,\n .clepit-dialog-button {\n transition: none;\n }\n}\n";
3
3
  //# sourceMappingURL=css.d.ts.map