@jotx-labs/editor 2.4.145 → 2.4.147

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.
@@ -1,13 +1,14 @@
1
1
  /**
2
- * EditorRibbon - Toolbar ribbon for the editor
3
- * This is a stub that can be customized per platform
2
+ * EditorRibbon - Context-aware toolbar ribbon
3
+ * Shows ALL tools always, enables/disables based on block type
4
4
  */
5
- export type EditorContext = 'paragraph' | 'heading' | 'list' | 'table' | 'code' | 'image' | 'callout' | 'mermaid' | 'chart' | 'math';
5
+ import { Editor } from '@tiptap/react';
6
+ import '../styles/EditorRibbon.css';
7
+ export type EditorContext = 'paragraph' | 'heading' | 'list' | 'table' | 'callout' | 'code' | 'mermaid' | 'chart' | 'math' | 'image';
6
8
  export interface EditorRibbonProps {
7
- editor: any;
9
+ editor: Editor | null;
10
+ expanded: boolean;
8
11
  context: EditorContext;
9
- expanded?: boolean;
10
- onToggleExpand?: () => void;
11
12
  }
12
- export declare function EditorRibbon({ editor: _editor, context: _context, expanded, onToggleExpand: _onToggleExpand }: EditorRibbonProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function EditorRibbon({ editor, expanded, context }: EditorRibbonProps): import("react/jsx-runtime").JSX.Element;
13
14
  //# sourceMappingURL=EditorRibbon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorRibbon.d.ts","sourceRoot":"","sources":["../../src/components/EditorRibbon.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,aAAa,GACnB,WAAW,GACX,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,CAAA;AAGZ,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EACzB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,EACjB,QAAgB,EAChB,cAAc,EAAE,eAAe,EAClC,EAAE,iBAAiB,2CAWnB"}
1
+ {"version":3,"file":"EditorRibbon.d.ts","sourceRoot":"","sources":["../../src/components/EditorRibbon.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAwBtC,OAAO,4BAA4B,CAAA;AAEnC,MAAM,MAAM,aAAa,GACnB,WAAW,GACX,SAAS,GACT,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,CAAA;AAEb,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,aAAa,CAAA;CACzB;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAgV5E"}
@@ -1,12 +1,83 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.EditorRibbon = EditorRibbon;
4
7
  const jsx_runtime_1 = require("react/jsx-runtime");
5
- function EditorRibbon({ editor: _editor, context: _context, expanded = false, onToggleExpand: _onToggleExpand }) {
6
- if (!expanded) {
8
+ /**
9
+ * EditorRibbon - Context-aware toolbar ribbon
10
+ * Shows ALL tools always, enables/disables based on block type
11
+ */
12
+ const react_1 = __importDefault(require("react"));
13
+ const lucide_react_1 = require("lucide-react");
14
+ require("../styles/EditorRibbon.css");
15
+ function EditorRibbon({ editor, expanded, context }) {
16
+ // Track list level with state to trigger re-renders on selection change
17
+ const [listLevel, setListLevel] = react_1.default.useState(0);
18
+ react_1.default.useEffect(() => {
19
+ if (!editor)
20
+ return;
21
+ const updateListLevel = () => {
22
+ if (context !== 'list') {
23
+ setListLevel(0);
24
+ return;
25
+ }
26
+ try {
27
+ const { $from } = editor.state.selection;
28
+ let level = 0;
29
+ for (let d = $from.depth; d > 0; d--) {
30
+ const node = $from.node(d);
31
+ const name = node.type?.name;
32
+ // Count list containers, not list items
33
+ if (name === 'bulletList' || name === 'orderedList' || name === 'taskList') {
34
+ level++;
35
+ }
36
+ }
37
+ setListLevel(Math.max(1, level));
38
+ }
39
+ catch {
40
+ setListLevel(1);
41
+ }
42
+ };
43
+ updateListLevel();
44
+ editor.on('selectionUpdate', updateListLevel);
45
+ editor.on('transaction', updateListLevel);
46
+ return () => {
47
+ editor.off('selectionUpdate', updateListLevel);
48
+ editor.off('transaction', updateListLevel);
49
+ };
50
+ }, [editor, context]);
51
+ if (!editor)
7
52
  return null;
8
- }
9
- // Stub implementation - platform-specific implementations can override
10
- return ((0, jsx_runtime_1.jsx)("div", { className: "editor-ribbon", style: { display: 'none' } }));
53
+ // Determine what's enabled based on context
54
+ const formattingEnabled = !['code', 'mermaid', 'chart', 'math'].includes(context);
55
+ // List TYPE buttons work for paragraphs too (to convert text to list)
56
+ const listTypeEnabled = formattingEnabled && !['table', 'image'].includes(context);
57
+ // Indent/outdent only work when inside a list
58
+ const listIndentEnabled = context === 'list';
59
+ // Table operations - enabled when in table context
60
+ const tableEnabled = context === 'table';
61
+ const btn = (active, enabled = true) => `editor-ribbon-btn ${active ? 'active' : ''}`;
62
+ const isTask = editor.isActive('taskList');
63
+ const itemType = isTask ? 'taskItem' : 'listItem';
64
+ return ((0, jsx_runtime_1.jsx)("div", { className: `editor-ribbon ${expanded ? 'expanded' : ''}`, children: (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-content", children: [(0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-section", children: [(0, jsx_runtime_1.jsx)("span", { className: "editor-ribbon-section-label", children: "Format" }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('bold')), title: "Bold (Ctrl/Cmd+B)", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleBold().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Bold, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('italic')), title: "Italic (Ctrl/Cmd+I)", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleItalic().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Italic, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('underline')), title: "Underline (Ctrl/Cmd+U)", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleUnderline().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Underline, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('strike')), title: "Strikethrough", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleStrike().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Strikethrough, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('code')), title: "Inline Code", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleCode().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Code, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('highlight')), title: "Highlight", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleHighlight().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Highlighter, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-color-picker", title: "Text Color", children: [(0, jsx_runtime_1.jsxs)("button", { className: "editor-ribbon-btn", disabled: !formattingEnabled, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Type, { size: 16 }), (0, jsx_runtime_1.jsx)("div", { className: "editor-ribbon-color-preview", style: {
65
+ backgroundColor: formattingEnabled
66
+ ? (editor.getAttributes('textStyle').color || 'var(--vscode-foreground)')
67
+ : 'var(--vscode-foreground)'
68
+ } })] }), (0, jsx_runtime_1.jsx)("input", { type: "color", disabled: !formattingEnabled, onInput: (e) => editor.chain().focus().setColor(e.target.value).run(), value: editor.getAttributes('textStyle').color || '#ffffff' })] }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('link')), title: "Insert Link", disabled: !formattingEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => {
69
+ const url = window.prompt('Enter URL:');
70
+ if (url) {
71
+ editor.chain().focus().setLink({ href: url }).run();
72
+ }
73
+ }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Link2, { size: 16 }) })] }), (0, jsx_runtime_1.jsx)("div", { className: "editor-ribbon-separator" }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-section", children: [(0, jsx_runtime_1.jsx)("span", { className: "editor-ribbon-section-label", children: "List" }), listIndentEnabled && listLevel > 0 && ((0, jsx_runtime_1.jsxs)("span", { className: "editor-ribbon-level-chip", title: "Nesting level", children: ["L", listLevel] })), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Outdent (Shift+Tab)", disabled: !listIndentEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().liftListItem(itemType).run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.IndentDecrease, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Indent (Tab)", disabled: !listIndentEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().sinkListItem(itemType).run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.IndentIncrease, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('bulletList')), title: "Bullet List", disabled: !listTypeEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleBulletList().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.List, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('orderedList')), title: "Numbered List", disabled: !listTypeEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleOrderedList().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ListOrdered, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: btn(editor.isActive('taskList')), title: "Task List", disabled: !listTypeEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().toggleTaskList().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.CheckSquare, { size: 16 }) })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "editor-ribbon-separator" }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-section", children: [(0, jsx_runtime_1.jsx)("span", { className: "editor-ribbon-section-label", children: "Table" }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Add Row Above", disabled: !tableEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().addRowBefore().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowUpToLine, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Add Row Below", disabled: !tableEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().addRowAfter().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowDownToLine, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Delete Row", disabled: !tableEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().deleteRow().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Rows2, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Add Column Before", disabled: !tableEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().addColumnBefore().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeftToLine, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Add Column After", disabled: !tableEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().addColumnAfter().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowRightToLine, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Delete Column", disabled: !tableEnabled, onMouseDown: (e) => e.preventDefault(), onClick: () => editor.chain().focus().deleteColumn().run(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Columns2, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "editor-ribbon-btn-group", children: [(0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Merge Cells (select multiple cells first)", disabled: !tableEnabled, onMouseDown: (e) => {
74
+ e.preventDefault();
75
+ e.stopPropagation();
76
+ editor.commands.mergeCells();
77
+ }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Combine, { size: 16 }) }), (0, jsx_runtime_1.jsx)("button", { className: "editor-ribbon-btn", title: "Split Cell (only works on merged cells)", disabled: !tableEnabled, onMouseDown: (e) => {
78
+ e.preventDefault();
79
+ e.stopPropagation();
80
+ editor.commands.splitCell();
81
+ }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Split, { size: 16 }) })] })] })] }) }));
11
82
  }
12
83
  //# sourceMappingURL=EditorRibbon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorRibbon.js","sourceRoot":"","sources":["../../src/components/EditorRibbon.tsx"],"names":[],"mappings":";;AA2BA,oCAgBC;;AAhBD,SAAgB,YAAY,CAAC,EACzB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,EACjB,QAAQ,GAAG,KAAK,EAChB,cAAc,EAAE,eAAe,EACf;IAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACf,CAAC;IAED,uEAAuE;IACvE,OAAO,CACH,gCAAK,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAEnD,CACT,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"EditorRibbon.js","sourceRoot":"","sources":["../../src/components/EditorRibbon.tsx"],"names":[],"mappings":";;;;;AAkDA,oCAgVC;;AAlYD;;;GAGG;AAEH,kDAAyB;AAEzB,+CAsBqB;AACrB,sCAAmC;AAoBnC,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAqB;IACzE,wEAAwE;IACxE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEnD,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,eAAe,GAAG,GAAG,EAAE;YACzB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrB,YAAY,CAAC,CAAC,CAAC,CAAA;gBACf,OAAM;YACV,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA;gBACxC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;oBAC5B,wCAAwC;oBACxC,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;wBACzE,KAAK,EAAE,CAAA;oBACX,CAAC;gBACL,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC;gBACL,YAAY,CAAC,CAAC,CAAC,CAAA;YACnB,CAAC;QACL,CAAC,CAAA;QAED,eAAe,EAAE,CAAA;QACjB,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAA;QAC7C,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;QAEzC,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAA;YAC9C,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;QAC9C,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAErB,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,4CAA4C;IAC5C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAEjF,sEAAsE;IACtE,MAAM,eAAe,GAAG,iBAAiB,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAClF,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,OAAO,KAAK,MAAM,CAAA;IAE5C,mDAAmD;IACnD,MAAM,YAAY,GAAG,OAAO,KAAK,OAAO,CAAA;IAExC,MAAM,GAAG,GAAG,CAAC,MAAe,EAAE,UAAmB,IAAI,EAAE,EAAE,CACrD,qBAAqB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEjD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IAEjD,OAAO,CACH,gCAAK,SAAS,EAAE,iBAAiB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,YACzD,iCAAK,SAAS,EAAC,uBAAuB,aAGlC,iCAAK,SAAS,EAAC,uBAAuB,aAClC,iCAAM,SAAS,EAAC,6BAA6B,uBAAc,EAE3D,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACvC,KAAK,EAAC,mBAAmB,EACzB,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,YAExD,uBAAC,mBAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACb,EAET,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACzC,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAE1D,uBAAC,qBAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACf,EAET,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAC5C,KAAK,EAAC,wBAAwB,EAC9B,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,YAE7D,uBAAC,wBAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EAET,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACzC,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAE1D,uBAAC,4BAAa,IAAC,IAAI,EAAE,EAAE,GAAI,GACtB,IACP,EAEN,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACvC,KAAK,EAAC,aAAa,EACnB,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,YAExD,uBAAC,mBAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACb,EAET,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAC5C,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,YAE7D,uBAAC,0BAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,IACP,EAGN,iCAAK,SAAS,EAAC,4BAA4B,EAAC,KAAK,EAAC,YAAY,aAC1D,oCAAQ,SAAS,EAAC,mBAAmB,EAAC,QAAQ,EAAE,CAAC,iBAAiB,aAC9D,uBAAC,mBAAI,IAAC,IAAI,EAAE,EAAE,GAAI,EAClB,gCACI,SAAS,EAAC,6BAA6B,EACvC,KAAK,EAAE;gDACH,eAAe,EAAE,iBAAiB;oDAC9B,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,0BAA0B,CAAC;oDACzE,CAAC,CAAC,0BAA0B;6CACnC,GACH,IACG,EACT,kCACI,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAC3F,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,SAAS,GAC7D,IACA,EAGN,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACvC,KAAK,EAAC,aAAa,EACnB,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE;gCACV,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gCACvC,IAAI,GAAG,EAAE,CAAC;oCACN,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;gCACvD,CAAC;4BACL,CAAC,YAED,uBAAC,oBAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,IACP,EAEN,gCAAK,SAAS,EAAC,yBAAyB,GAAG,EAG3C,iCAAK,SAAS,EAAC,uBAAuB,aAClC,iCAAM,SAAS,EAAC,6BAA6B,qBAAY,EAExD,iBAAiB,IAAI,SAAS,GAAG,CAAC,IAAI,CACnC,kCAAM,SAAS,EAAC,0BAA0B,EAAC,KAAK,EAAC,eAAe,kBAC1D,SAAS,IACR,CACV,EAED,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,YAElE,uBAAC,6BAAc,IAAC,IAAI,EAAE,EAAE,GAAI,GACvB,EAET,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,cAAc,EACpB,QAAQ,EAAE,CAAC,iBAAiB,EAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,YAElE,uBAAC,6BAAc,IAAC,IAAI,EAAE,EAAE,GAAI,GACvB,IACP,EAEN,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAC7C,KAAK,EAAC,aAAa,EACnB,QAAQ,EAAE,CAAC,eAAe,EAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,YAE9D,uBAAC,mBAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACb,EAET,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAC9C,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,eAAe,EAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,YAE/D,uBAAC,0BAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,EAET,mCACI,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAC3C,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,CAAC,eAAe,EAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,YAE5D,uBAAC,0BAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,IACP,IACJ,EAEN,gCAAK,SAAS,EAAC,yBAAyB,GAAG,EAG3C,iCAAK,SAAS,EAAC,uBAAuB,aAClC,iCAAM,SAAS,EAAC,6BAA6B,sBAAa,EAE1D,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAE1D,uBAAC,4BAAa,IAAC,IAAI,EAAE,EAAE,GAAI,GACtB,EAET,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,YAEzD,uBAAC,8BAAe,IAAC,IAAI,EAAE,EAAE,GAAI,GACxB,EAET,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,YAAY,EAClB,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,YAEvD,uBAAC,oBAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,IACP,EAEN,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,mBAAmB,EACzB,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,YAE7D,uBAAC,8BAAe,IAAC,IAAI,EAAE,EAAE,GAAI,GACxB,EAET,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,kBAAkB,EACxB,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,YAE5D,uBAAC,+BAAgB,IAAC,IAAI,EAAE,EAAE,GAAI,GACzB,EAET,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAE1D,uBAAC,uBAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,IACP,EAEN,iCAAK,SAAS,EAAC,yBAAyB,aACpC,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,2CAA2C,EACjD,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;wCACf,CAAC,CAAC,cAAc,EAAE,CAAA;wCAClB,CAAC,CAAC,eAAe,EAAE,CAAA;wCACnB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;oCAChC,CAAC,YAED,uBAAC,sBAAO,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EAET,mCACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAC,yCAAyC,EAC/C,QAAQ,EAAE,CAAC,YAAY,EACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;wCACf,CAAC,CAAC,cAAc,EAAE,CAAA;wCAClB,CAAC,CAAC,eAAe,EAAE,CAAA;wCACnB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;oCAC/B,CAAC,YAED,uBAAC,oBAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,IACP,IACJ,IACJ,GACJ,CACT,CAAA;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -61,4 +61,5 @@ export { ExportMenu } from './components/DocumentHeader/ExportMenu';
61
61
  export { ViewOptions } from './components/DocumentHeader/ViewOptions';
62
62
  export { JotxLogo } from './components/Brand/JotxLogo';
63
63
  export { GraphView, type GraphViewProps, type GraphData } from './components/GraphView/GraphView';
64
+ export { EditorRibbon, type EditorRibbonProps, type EditorContext } from './components/EditorRibbon';
64
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.TableFilterExtension = exports.JotxTable = exports.GridCardNode = exports.ButtonNode = exports.CardNode = exports.SectionNode = exports.ToggleNode = exports.LinkNode = exports.AttachNode = exports.CalloutNode = exports.JotxLinkNode = exports.DateTimeNode = exports.MathNode = exports.VideoBlockNode = exports.FloatImageBlockNode = exports.ImageBlockNode = exports.ImageNode = exports.CodeReferenceNode = exports.CodeBlockNode = exports.ChartNode = exports.MermaidNode = exports.ReadonlyMermaid = exports.ReadonlyBlockRenderer = exports.CodeReferenceNodeView = exports.GridCardNodeView = exports.ButtonNodeView = exports.CardNodeView = exports.SectionNodeView = exports.ToggleNodeView = exports.JotxLinkNodeView = exports.DateTimeNodeView = exports.MathNodeView = exports.VideoBlockNodeView = exports.FloatImageBlockNodeView = exports.ImageBlockNodeView = exports.CodeBlockNodeView = exports.ChartNodeView = exports.MermaidNodeView = exports.NodePickerDialog = exports.LinkDialog = exports.ImageToolbar = exports.TableToolbar = exports.SearchBar = exports.SlashMenu = exports.BlockMenu = exports.JotxEditor = exports.BridgeContext = exports.useBridge = exports.BridgeProvider = exports.defaultBridge = void 0;
9
- exports.GraphView = exports.JotxLogo = exports.ViewOptions = exports.ExportMenu = exports.DocumentHeader = exports.searchPluginKey = exports.SearchExtension = exports.slashMenuPluginKey = exports.SlashMenuExtension = exports.FormattingExtensions = exports.CalloutActionsExtension = exports.BlockOpsExtension = void 0;
9
+ exports.EditorRibbon = exports.GraphView = exports.JotxLogo = exports.ViewOptions = exports.ExportMenu = exports.DocumentHeader = exports.searchPluginKey = exports.SearchExtension = exports.slashMenuPluginKey = exports.SlashMenuExtension = exports.FormattingExtensions = exports.CalloutActionsExtension = exports.BlockOpsExtension = void 0;
10
10
  // Bridge types and context
11
11
  var types_1 = require("./bridge/types");
12
12
  Object.defineProperty(exports, "defaultBridge", { enumerable: true, get: function () { return types_1.defaultBridge; } });
@@ -134,7 +134,10 @@ var ViewOptions_1 = require("./components/DocumentHeader/ViewOptions");
134
134
  Object.defineProperty(exports, "ViewOptions", { enumerable: true, get: function () { return ViewOptions_1.ViewOptions; } });
135
135
  var JotxLogo_1 = require("./components/Brand/JotxLogo");
136
136
  Object.defineProperty(exports, "JotxLogo", { enumerable: true, get: function () { return JotxLogo_1.JotxLogo; } });
137
- // Graph visualization
137
+ //Graph visualization
138
138
  var GraphView_1 = require("./components/GraphView/GraphView");
139
139
  Object.defineProperty(exports, "GraphView", { enumerable: true, get: function () { return GraphView_1.GraphView; } });
140
+ // Editor Ribbon (toolbar)
141
+ var EditorRibbon_1 = require("./components/EditorRibbon");
142
+ Object.defineProperty(exports, "EditorRibbon", { enumerable: true, get: function () { return EditorRibbon_1.EditorRibbon; } });
140
143
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -82,8 +82,8 @@
82
82
  color: #1f2937;
83
83
  }
84
84
 
85
- @media (prefer's-color-scheme: dark) {
86
- .jotx-header-type-button {
85
+ @media (prefers-color-scheme: dark) {
86
+ .jotx-header-type-button {
87
87
  background: #2d2d2d;
88
88
  border-color: #4a4a4a;
89
89
  color: #d4d4d4;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * EditorRibbon CSS
3
+ * Zero gap from header, sticky, centered, full width
4
+ */
5
+
6
+ .editor-ribbon {
7
+ /* Pull up to eliminate gap from parent padding */
8
+ margin: -40px -40px 0 -40px;
9
+ padding: 0;
10
+
11
+ /* Visual styling */
12
+ background: var(--vscode-editor-background);
13
+ border-bottom: 1px solid var(--vscode-panel-border);
14
+
15
+ /* Sticky when scrolling */
16
+ position: sticky;
17
+ top: 0;
18
+ z-index: 90;
19
+
20
+ /* Smooth slide animation */
21
+ max-height: 0;
22
+ overflow: hidden;
23
+ opacity: 0;
24
+ transition: max-height 0.2s ease-out, opacity 0.15s ease-out, padding 0.2s ease-out;
25
+ }
26
+
27
+ .editor-ribbon.expanded {
28
+ max-height: 100px;
29
+ opacity: 1;
30
+ padding: 8px 16px;
31
+ margin-bottom: 16px;
32
+ }
33
+
34
+ .editor-ribbon-content {
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ gap: 16px;
39
+ flex-wrap: wrap;
40
+ }
41
+
42
+ /* Section separator */
43
+ .editor-ribbon-separator {
44
+ width: 1px;
45
+ height: 24px;
46
+ background: var(--vscode-panel-border);
47
+ flex-shrink: 0;
48
+ }
49
+
50
+ /* Section container */
51
+ .editor-ribbon-section {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 2px;
55
+ flex-wrap: nowrap;
56
+ }
57
+
58
+ .editor-ribbon-section-label {
59
+ font-size: 10px;
60
+ color: var(--vscode-descriptionForeground);
61
+ text-transform: uppercase;
62
+ letter-spacing: 0.5px;
63
+ margin-right: 6px;
64
+ user-select: none;
65
+ flex-shrink: 0;
66
+ }
67
+
68
+ /* Button styles */
69
+ .editor-ribbon-btn {
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ width: 28px;
74
+ height: 28px;
75
+ padding: 0;
76
+ border: none;
77
+ border-radius: 4px;
78
+ background: transparent;
79
+ color: var(--vscode-foreground);
80
+ cursor: pointer;
81
+ transition: background 0.1s, color 0.1s, opacity 0.1s;
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ .editor-ribbon-btn:hover:not(:disabled) {
86
+ background: var(--vscode-toolbar-hoverBackground);
87
+ }
88
+
89
+ .editor-ribbon-btn:active:not(:disabled) {
90
+ background: var(--vscode-toolbar-activeBackground);
91
+ }
92
+
93
+ .editor-ribbon-btn.active {
94
+ background: var(--primary, #14b8a6);
95
+ color: #ffffff;
96
+ }
97
+
98
+ .editor-ribbon-btn:disabled {
99
+ opacity: 0.35;
100
+ cursor: not-allowed;
101
+ }
102
+
103
+ /* Button group */
104
+ .editor-ribbon-btn-group {
105
+ display: flex;
106
+ align-items: center;
107
+ gap: 1px;
108
+ background: var(--vscode-input-background);
109
+ border-radius: 4px;
110
+ padding: 2px;
111
+ }
112
+
113
+ /* Color picker wrapper */
114
+ .editor-ribbon-color-picker {
115
+ position: relative;
116
+ display: flex;
117
+ align-items: center;
118
+ }
119
+
120
+ .editor-ribbon-color-picker input[type="color"] {
121
+ position: absolute;
122
+ opacity: 0;
123
+ width: 28px;
124
+ height: 28px;
125
+ cursor: pointer;
126
+ }
127
+
128
+ .editor-ribbon-color-preview {
129
+ position: absolute;
130
+ bottom: 2px;
131
+ right: 2px;
132
+ width: 8px;
133
+ height: 3px;
134
+ border-radius: 1px;
135
+ }
136
+
137
+ /* Level indicator chip - teal brand accent */
138
+ .editor-ribbon-level-chip {
139
+ font-size: 11px;
140
+ font-weight: 600;
141
+ padding: 2px 6px;
142
+ border-radius: 3px;
143
+ background: var(--primary, #14b8a6);
144
+ color: #ffffff;
145
+ margin-right: 4px;
146
+ }
147
+
148
+ /* Responsive: stack on narrow widths */
149
+ @media (max-width: 600px) {
150
+ .editor-ribbon {
151
+ margin: -40px -16px 0 -16px;
152
+ }
153
+
154
+ .editor-ribbon.expanded {
155
+ max-height: 100px;
156
+ }
157
+
158
+ .editor-ribbon-content {
159
+ gap: 8px;
160
+ }
161
+
162
+ .editor-ribbon-separator {
163
+ display: none;
164
+ }
165
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jotx-labs/editor",
3
- "version": "2.4.145",
3
+ "version": "2.4.147",
4
4
  "files": [
5
5
  "dist",
6
6
  "src/styles"
@@ -82,8 +82,8 @@
82
82
  color: #1f2937;
83
83
  }
84
84
 
85
- @media (prefer's-color-scheme: dark) {
86
- .jotx-header-type-button {
85
+ @media (prefers-color-scheme: dark) {
86
+ .jotx-header-type-button {
87
87
  background: #2d2d2d;
88
88
  border-color: #4a4a4a;
89
89
  color: #d4d4d4;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * EditorRibbon CSS
3
+ * Zero gap from header, sticky, centered, full width
4
+ */
5
+
6
+ .editor-ribbon {
7
+ /* Pull up to eliminate gap from parent padding */
8
+ margin: -40px -40px 0 -40px;
9
+ padding: 0;
10
+
11
+ /* Visual styling */
12
+ background: var(--vscode-editor-background);
13
+ border-bottom: 1px solid var(--vscode-panel-border);
14
+
15
+ /* Sticky when scrolling */
16
+ position: sticky;
17
+ top: 0;
18
+ z-index: 90;
19
+
20
+ /* Smooth slide animation */
21
+ max-height: 0;
22
+ overflow: hidden;
23
+ opacity: 0;
24
+ transition: max-height 0.2s ease-out, opacity 0.15s ease-out, padding 0.2s ease-out;
25
+ }
26
+
27
+ .editor-ribbon.expanded {
28
+ max-height: 100px;
29
+ opacity: 1;
30
+ padding: 8px 16px;
31
+ margin-bottom: 16px;
32
+ }
33
+
34
+ .editor-ribbon-content {
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ gap: 16px;
39
+ flex-wrap: wrap;
40
+ }
41
+
42
+ /* Section separator */
43
+ .editor-ribbon-separator {
44
+ width: 1px;
45
+ height: 24px;
46
+ background: var(--vscode-panel-border);
47
+ flex-shrink: 0;
48
+ }
49
+
50
+ /* Section container */
51
+ .editor-ribbon-section {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 2px;
55
+ flex-wrap: nowrap;
56
+ }
57
+
58
+ .editor-ribbon-section-label {
59
+ font-size: 10px;
60
+ color: var(--vscode-descriptionForeground);
61
+ text-transform: uppercase;
62
+ letter-spacing: 0.5px;
63
+ margin-right: 6px;
64
+ user-select: none;
65
+ flex-shrink: 0;
66
+ }
67
+
68
+ /* Button styles */
69
+ .editor-ribbon-btn {
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ width: 28px;
74
+ height: 28px;
75
+ padding: 0;
76
+ border: none;
77
+ border-radius: 4px;
78
+ background: transparent;
79
+ color: var(--vscode-foreground);
80
+ cursor: pointer;
81
+ transition: background 0.1s, color 0.1s, opacity 0.1s;
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ .editor-ribbon-btn:hover:not(:disabled) {
86
+ background: var(--vscode-toolbar-hoverBackground);
87
+ }
88
+
89
+ .editor-ribbon-btn:active:not(:disabled) {
90
+ background: var(--vscode-toolbar-activeBackground);
91
+ }
92
+
93
+ .editor-ribbon-btn.active {
94
+ background: var(--primary, #14b8a6);
95
+ color: #ffffff;
96
+ }
97
+
98
+ .editor-ribbon-btn:disabled {
99
+ opacity: 0.35;
100
+ cursor: not-allowed;
101
+ }
102
+
103
+ /* Button group */
104
+ .editor-ribbon-btn-group {
105
+ display: flex;
106
+ align-items: center;
107
+ gap: 1px;
108
+ background: var(--vscode-input-background);
109
+ border-radius: 4px;
110
+ padding: 2px;
111
+ }
112
+
113
+ /* Color picker wrapper */
114
+ .editor-ribbon-color-picker {
115
+ position: relative;
116
+ display: flex;
117
+ align-items: center;
118
+ }
119
+
120
+ .editor-ribbon-color-picker input[type="color"] {
121
+ position: absolute;
122
+ opacity: 0;
123
+ width: 28px;
124
+ height: 28px;
125
+ cursor: pointer;
126
+ }
127
+
128
+ .editor-ribbon-color-preview {
129
+ position: absolute;
130
+ bottom: 2px;
131
+ right: 2px;
132
+ width: 8px;
133
+ height: 3px;
134
+ border-radius: 1px;
135
+ }
136
+
137
+ /* Level indicator chip - teal brand accent */
138
+ .editor-ribbon-level-chip {
139
+ font-size: 11px;
140
+ font-weight: 600;
141
+ padding: 2px 6px;
142
+ border-radius: 3px;
143
+ background: var(--primary, #14b8a6);
144
+ color: #ffffff;
145
+ margin-right: 4px;
146
+ }
147
+
148
+ /* Responsive: stack on narrow widths */
149
+ @media (max-width: 600px) {
150
+ .editor-ribbon {
151
+ margin: -40px -16px 0 -16px;
152
+ }
153
+
154
+ .editor-ribbon.expanded {
155
+ max-height: 100px;
156
+ }
157
+
158
+ .editor-ribbon-content {
159
+ gap: 8px;
160
+ }
161
+
162
+ .editor-ribbon-separator {
163
+ display: none;
164
+ }
165
+ }