neuphlo-editor 1.0.3 → 1.0.5

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,4 +1,7 @@
1
1
  /* src/styles.css */
2
+ :root {
3
+ --nph-z: 9999;
4
+ }
2
5
  .nph-editor,
3
6
  .ProseMirror.nph-editor {
4
7
  min-height: 240px;
@@ -228,41 +231,13 @@
228
231
  padding: 0.25rem;
229
232
  font-size: 0.875rem;
230
233
  max-width: calc(100vw - 16px);
231
- overflow: hidden;
232
- z-index: 9999 !important;
233
- position: relative !important;
234
+ overflow: visible;
235
+ position: relative;
236
+ z-index: var(--nph-z) !important;
234
237
  }
235
238
  [data-tippy-root],
236
- .tippy-box,
237
- .ProseMirror-menubar,
238
- [role=tooltip] {
239
- z-index: 9999 !important;
240
- }
241
- .bubble-menu,
242
- *[class*=bubble],
243
- *[class*=menu][class*=floating],
244
- *[data-tippy-root] .bubble-menu {
245
- z-index: 9999 !important;
246
- position: relative !important;
247
- }
248
- [data-floating-ui-portal],
249
- [data-floating-ui-portal] *,
250
- .floating-ui-portal,
251
- [style*="position: fixed"],
252
- [style*="position: absolute"][style*="top:"][style*="left:"] {
253
- z-index: 9999 !important;
254
- }
255
- :is(.bubble-menu, [class*=bubble]) {
256
- --bubble-menu-z-index: 9999;
257
- z-index: var(--bubble-menu-z-index) !important;
258
- }
259
- .nph-command {
260
- background-color: var(--background, #ffffff);
261
- color: var(--foreground, #111827);
262
- border: 1px solid var(--border, rgba(0, 0, 0, 0.08));
263
- border-radius: 0.5rem;
264
- box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));
265
- padding: 0.25rem;
239
+ .tippy-box {
240
+ z-index: var(--nph-z) !important;
266
241
  }
267
242
  .nph-dropdown {
268
243
  position: relative;
@@ -272,8 +247,16 @@
272
247
  top: 100%;
273
248
  left: 0;
274
249
  margin-top: 0.25rem;
275
- z-index: 50;
276
250
  min-width: 11rem;
251
+ z-index: calc(var(--nph-z) + 1) !important;
252
+ }
253
+ .nph-command {
254
+ background-color: var(--background, #ffffff);
255
+ color: var(--foreground, #111827);
256
+ border: 1px solid var(--border, rgba(0, 0, 0, 0.08));
257
+ border-radius: 0.5rem;
258
+ box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));
259
+ padding: 0.25rem;
277
260
  }
278
261
  .nph-command__list {
279
262
  list-style: none;
@@ -397,18 +380,18 @@
397
380
  .bubble-menu button[aria-pressed=true],
398
381
  .nph-btn.is-active,
399
382
  .nph-btn[aria-pressed=true] {
400
- background-color: var( --accent, rgba(0, 0, 0, 0.08) );
383
+ background-color: var(--accent, rgba(0, 0, 0, 0.08));
401
384
  color: inherit;
402
385
  }
403
386
  .bubble-menu button.is-active:hover,
404
387
  .bubble-menu button[aria-pressed=true]:hover,
405
388
  .nph-btn.is-active:hover,
406
389
  .nph-btn[aria-pressed=true]:hover {
407
- background-color: var( --accent-hover, rgba(0, 0, 0, 0.12) );
390
+ background-color: var(--accent-hover, rgba(0, 0, 0, 0.12));
408
391
  }
409
392
  .nph-input {
410
393
  width: 100%;
411
- border: 1px solid var(--border, rgba(127,127,127,0.3));
394
+ border: 1px solid var(--border, rgba(127, 127, 127, 0.3));
412
395
  background: var(--background, transparent);
413
396
  color: inherit;
414
397
  border-radius: 0.375rem;
@@ -419,9 +402,9 @@
419
402
  gap: 6px;
420
403
  background: var(--background, #fff);
421
404
  color: inherit;
422
- border: 1px solid var(--border, rgba(127,127,127,0.3));
405
+ border: 1px solid var(--border, rgba(127, 127, 127, 0.3));
423
406
  border-radius: 0.7rem;
424
- box-shadow: var(--shadow, 0 4px 16px rgba(0,0,0,0.08));
407
+ box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));
425
408
  padding: 6px 8px;
426
409
  }
427
410
  .nph-link-popover__input {
@@ -436,27 +419,27 @@
436
419
  .nph-link-popover__divider {
437
420
  width: 1px;
438
421
  height: 18px;
439
- background: var(--border, rgba(127,127,127,0.3));
422
+ background: var(--border, rgba(127, 127, 127, 0.3));
440
423
  margin: 0 2px;
441
424
  }
442
425
  @media (prefers-color-scheme: dark) {
443
426
  .nph-link-popover {
444
427
  background: var(--background, #111);
445
- border-color: var(--border, rgba(255,255,255,0.16));
446
- box-shadow: var(--shadow, 0 8px 24px rgba(0,0,0,0.4));
428
+ border-color: var(--border, rgba(255, 255, 255, 0.16));
429
+ box-shadow: var(--shadow, 0 8px 24px rgba(0, 0, 0, 0.4));
447
430
  }
448
431
  .nph-link-popover__divider {
449
- background: var(--border, rgba(255,255,255,0.16));
432
+ background: var(--border, rgba(255, 255, 255, 0.16));
450
433
  }
451
434
  }
452
435
  @media (prefers-color-scheme: dark) {
453
436
  .bubble-menu button.is-active,
454
437
  .bubble-menu button[aria-pressed=true] {
455
- background-color: var( --accent, rgba(255, 255, 255, 0.14) );
438
+ background-color: var(--accent, rgba(255, 255, 255, 0.14));
456
439
  }
457
440
  .bubble-menu button.is-active:hover,
458
441
  .bubble-menu button[aria-pressed=true]:hover {
459
- background-color: var( --accent-hover, rgba(255, 255, 255, 0.18) );
442
+ background-color: var(--accent-hover, rgba(255, 255, 255, 0.18));
460
443
  }
461
444
  }
462
445
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/styles.css"],"sourcesContent":["/* Neuphlo Editor default styles (TipTap-friendly) */\n/* Note: Highlight.js theme is now optional. Import\n 'neuphlo-editor/highlight.css' or your preferred theme separately. */\n.nph-editor,\n.ProseMirror.nph-editor {\n min-height: 240px;\n line-height: 1.65;\n color: inherit;\n caret-color: currentColor;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n word-break: break-word;\n}\n\n/* Trim outer spacing */\n.nph-editor > *:first-child,\n.ProseMirror.nph-editor > *:first-child { margin-top: 0; }\n.nph-editor > *:last-child,\n.ProseMirror.nph-editor > *:last-child { margin-bottom: 0; }\n\n/* Paragraphs */\n.nph-editor p,\n.ProseMirror.nph-editor p { margin: 0.75em 0; }\n\n/* Headings */\n.nph-editor h1,\n.nph-editor h2,\n.nph-editor h3,\n.nph-editor h4,\n.nph-editor h5,\n.nph-editor h6,\n.ProseMirror.nph-editor h1,\n.ProseMirror.nph-editor h2,\n.ProseMirror.nph-editor h3,\n.ProseMirror.nph-editor h4,\n.ProseMirror.nph-editor h5,\n.ProseMirror.nph-editor h6 {\n line-height: 1.2;\n font-weight: 700;\n margin-top: 2.5rem;\n margin-bottom: 0.75rem;\n text-wrap: pretty;\n}\n.nph-editor h1,\n.nph-editor h2,\n.ProseMirror.nph-editor h1,\n.ProseMirror.nph-editor h2 {\n margin-top: 3rem;\n margin-bottom: 1rem;\n}\n.nph-editor h1,\n.ProseMirror.nph-editor h1 { font-size: 1.5rem; }\n.nph-editor h2,\n.ProseMirror.nph-editor h2 { font-size: 1.25rem; }\n.nph-editor h3,\n.ProseMirror.nph-editor h3 { font-size: 1.125rem; }\n.nph-editor h4,\n.nph-editor h5,\n.nph-editor h6,\n.ProseMirror.nph-editor h4,\n.ProseMirror.nph-editor h5,\n.ProseMirror.nph-editor h6 { font-size: 1rem; }\n\n/* Lists */\n.nph-editor ul,\n.nph-editor ol,\n.ProseMirror.nph-editor ul,\n.ProseMirror.nph-editor ol {\n padding-left: 1.25rem;\n margin: 1.25rem 1rem 1.25rem 0.4rem;\n}\n.nph-editor ul,\n.ProseMirror.nph-editor ul { list-style: disc outside; }\n.nph-editor ul ul,\n.ProseMirror.nph-editor ul ul { list-style: circle outside; }\n.nph-editor ul ul ul,\n.ProseMirror.nph-editor ul ul ul { list-style: square outside; }\n.nph-editor ol,\n.ProseMirror.nph-editor ol { list-style: decimal outside; }\n.nph-editor li p,\n.ProseMirror.nph-editor li p { margin-top: 0.25em; margin-bottom: 0.25em; }\n\n/* Blockquote */\n.nph-editor blockquote,\n.ProseMirror.nph-editor blockquote {\n border-left: 3px solid var(--border, rgba(0, 0, 0, 0.12));\n margin: 1.5rem 0;\n padding-left: 1rem;\n color: var(--muted-foreground, #6b7280);\n}\n\n/* Code (inline) */\n.nph-editor code,\n.ProseMirror.nph-editor code {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n border-radius: 0.375rem;\n color: inherit;\n font-size: 0.875em;\n padding: 0.15em 0.35em;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n/* Code blocks */\n.nph-editor pre,\n.ProseMirror.nph-editor pre {\n background: var(--muted, #f4f4f5);\n border-radius: 0.5rem;\n color: var(--foreground, #111827);\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n margin: 1.5rem 0;\n padding: 0.75rem 1rem;\n overflow-x: auto;\n}\n.nph-editor pre code,\n.ProseMirror.nph-editor pre code {\n background: none;\n color: inherit;\n font-size: 0.85em;\n padding: 0;\n}\n/* Normalize highlight.js base element to integrate with our block styling */\n.nph-editor pre code.hljs,\n.ProseMirror.nph-editor pre code.hljs {\n display: block;\n background: none;\n padding: 0;\n}\n\n/* Horizontal rule */\n.nph-editor hr,\n.ProseMirror.nph-editor hr {\n border: none;\n border-top: 1px solid var(--border, rgba(0, 0, 0, 0.12));\n margin: 2rem 0;\n}\n\n/* Links */\n.nph-editor a,\n.ProseMirror.nph-editor a {\n color: var(--primary, #2563eb);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n/* Images */\n.nph-editor img,\n.ProseMirror.nph-editor img { max-width: 100%; height: auto; }\n\n/* Tables */\n.nph-editor table,\n.ProseMirror.nph-editor table {\n width: 100%;\n table-layout: auto;\n border-collapse: collapse;\n margin: 1.25rem 0;\n}\n.nph-editor th,\n.nph-editor td,\n.ProseMirror.nph-editor th,\n.ProseMirror.nph-editor td {\n border: 1px solid var(--border, rgba(0, 0, 0, 0.12));\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n}\n.nph-editor th,\n.ProseMirror.nph-editor th {\n background: var(--muted, #f4f4f5);\n font-weight: 600;\n}\n\n/* Task list (if enabled) */\n.nph-editor ul[data-type=\"taskList\"],\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] { list-style: none; padding-left: 0; }\n.nph-editor ul[data-type=\"taskList\"] li,\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] li { display: flex; align-items: flex-start; gap: 0.5rem; }\n.nph-editor ul[data-type=\"taskList\"] li > label,\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] li > label { margin-right: 0.5rem; user-select: none; }\n.nph-editor ul[data-type=\"taskList\"] li input[type=\"checkbox\"],\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] li input[type=\"checkbox\"] { margin: 0.25rem 0.5rem 0 0; }\n\n/* ProseMirror helpers */\n.nph-editor .ProseMirror-gapcursor,\n.ProseMirror.nph-editor .ProseMirror-gapcursor { display: none; }\n.nph-editor .ProseMirror-selectednode,\n.ProseMirror.nph-editor .ProseMirror-selectednode { outline: 2px solid var(--ring, rgba(59, 130, 246, 0.5)); }\n\n/* Placeholder (requires Placeholder extension) */\n.nph-editor p.is-editor-empty:first-child::before,\n.ProseMirror.nph-editor p.is-editor-empty:first-child::before {\n color: var(--muted-foreground, #6b7280);\n content: attr(data-placeholder);\n float: left;\n height: 0;\n pointer-events: none;\n}\n\n/* Bubble menu */\n.bubble-menu {\n /* Themed surface */\n background-color: var(--background, #ffffff);\n color: var(--foreground, #111827);\n border: 1px solid var(--border, rgba(0, 0, 0, 0.08));\n border-radius: 0.7rem;\n box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));\n\n /* Layout */\n display: flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem;\n font-size: 0.875rem; /* ~text-sm */\n \n /* Ensure menu stays within bounds */\n max-width: calc(100vw - 16px);\n overflow: hidden;\n \n /* Ensure bubble menu appears above other UI elements */\n z-index: 9999 !important;\n position: relative !important;\n}\n\n/* Target Tiptap's bubble menu wrapper directly */\n[data-tippy-root],\n.tippy-box,\n.ProseMirror-menubar,\n[role=\"tooltip\"] {\n z-index: 9999 !important;\n}\n\n/* Additional targeting for any potential bubble menu containers */\n.bubble-menu,\n*[class*=\"bubble\"],\n*[class*=\"menu\"][class*=\"floating\"],\n*[data-tippy-root] .bubble-menu {\n z-index: 9999 !important;\n position: relative !important;\n}\n\n/* Target Floating UI and other positioning systems */\n[data-floating-ui-portal],\n[data-floating-ui-portal] *,\n.floating-ui-portal,\n[style*=\"position: fixed\"],\n[style*=\"position: absolute\"][style*=\"top:\"][style*=\"left:\"] {\n z-index: 9999 !important;\n}\n\n/* Ensure all bubble menu related elements have high z-index */\n:is(.bubble-menu, [class*=\"bubble\"]) {\n --bubble-menu-z-index: 9999;\n z-index: var(--bubble-menu-z-index) !important;\n}\n\n/* Command menu (slash menu) */\n.nph-command {\n background-color: var(--background, #ffffff);\n color: var(--foreground, #111827);\n border: 1px solid var(--border, rgba(0, 0, 0, 0.08));\n border-radius: 0.5rem;\n box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));\n padding: 0.25rem;\n}\n\n/* Generic dropdown container and panel (used in TextMenu) */\n.nph-dropdown { position: relative; }\n.nph-dropdown__panel {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 0.25rem;\n z-index: 50;\n min-width: 11rem;\n}\n\n.nph-command__list {\n list-style: none;\n margin: 0;\n padding: 0.125rem;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n max-height: 320px;\n overflow: auto;\n /* Show only the thumb (pill), hide track */\n scrollbar-width: thin; /* Firefox */\n /* Light default (overridden in dark mode below) */\n scrollbar-color: #e5e7eb transparent; /* thumb track */\n}\n\n/* WebKit: keep a small thumb, hide the track */\n.nph-command__list::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background: transparent; /* track area */\n}\n.nph-command__list::-webkit-scrollbar-track {\n background: transparent;\n}\n.nph-command__list::-webkit-scrollbar-thumb {\n background-color: #e5e7eb; /* light gray */\n border-radius: 9999px; /* pill */\n}\n.nph-command__list:hover::-webkit-scrollbar-thumb {\n background-color: #d1d5db; /* slightly darker on hover */\n}\n\n@media (prefers-color-scheme: dark) {\n .nph-command__list {\n scrollbar-color: #4b5563 transparent; /* darker gray thumb */\n }\n .nph-command__list::-webkit-scrollbar-thumb {\n background-color: #4b5563; /* dark gray */\n }\n .nph-command__list:hover::-webkit-scrollbar-thumb {\n background-color: #6b7280; /* lighter on hover */\n }\n}\n\n.nph-command__item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.375rem;\n padding: 0.375rem 0.5rem;\n cursor: pointer;\n}\n\n.nph-command__item:hover {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n}\n\n.nph-command__item.is-active,\n.nph-command__item[aria-selected=\"true\"] {\n background-color: var(--accent, rgba(0, 0, 0, 0.08));\n}\n\n@media (prefers-color-scheme: dark) {\n .nph-command__item.is-active,\n .nph-command__item[aria-selected=\"true\"] {\n background-color: var(--accent, rgba(255, 255, 255, 0.14));\n }\n}\n\n/* Base buttons for headless UI */\n.nph-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: 0.375rem; /* rounded-md */\n font-size: 0.875rem; /* text-sm */\n font-weight: 500; /* font-medium */\n transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;\n outline: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n background: transparent;\n color: inherit;\n border: none;\n}\n\n.nph-btn:focus-visible {\n outline: 2px solid var(--ring, rgba(59, 130, 246, 0.5));\n outline-offset: 2px; /* ring-offset */\n}\n\n.nph-btn:disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n\n/* Ghost variant */\n.nph-btn-ghost {\n background: transparent;\n}\n.nph-btn-ghost:hover {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n}\n\n/* Size: sm */\n.nph-btn-sm {\n height: 2.25rem; /* h-9 */\n padding: 0 0.75rem; /* px-3 */\n}\n\n/* Size: xs (more compact than sm) */\n.nph-btn-xs {\n height: 1.75rem; /* ~28px */\n padding: 0 0.5rem; /* 8px */\n font-size: 0.8125rem; /* ~13px */\n}\n\n/* Icon variant: square buttons with equal width/height */\n.nph-btn-icon {\n width: 1.75rem; /* match xs height */\n min-width: 1.75rem;\n padding-left: 0;\n padding-right: 0;\n}\n\n/* Keep generic styling for bubble menu buttons if custom classes not applied */\n.bubble-menu button {\n background: transparent;\n color: inherit;\n border: none;\n border-radius: 0.5rem;\n padding: 0.25rem 0.4rem;\n cursor: pointer;\n}\n\n.bubble-menu button:hover {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n}\n\n.bubble-menu button.is-active,\n.bubble-menu button[aria-pressed=\"true\"],\n.nph-btn.is-active,\n.nph-btn[aria-pressed=\"true\"] {\n /* Subtle, neutral active state */\n background-color: var(\n --accent,\n rgba(0, 0, 0, 0.08)\n );\n color: inherit;\n}\n\n.bubble-menu button.is-active:hover,\n.bubble-menu button[aria-pressed=\"true\"]:hover,\n.nph-btn.is-active:hover,\n.nph-btn[aria-pressed=\"true\"]:hover {\n background-color: var(\n --accent-hover,\n rgba(0, 0, 0, 0.12)\n );\n}\n\n/* Basic input style for small inline editors */\n.nph-input {\n width: 100%;\n border: 1px solid var(--border, rgba(127,127,127,0.3));\n background: var(--background, transparent);\n color: inherit;\n border-radius: 0.375rem;\n}\n\n/* Link popover pill */\n.nph-link-popover {\n display: flex;\n align-items: center;\n gap: 6px;\n background: var(--background, #fff);\n color: inherit;\n border: 1px solid var(--border, rgba(127,127,127,0.3));\n border-radius: 0.7rem; /* match bubble-menu corners */\n box-shadow: var(--shadow, 0 4px 16px rgba(0,0,0,0.08));\n padding: 6px 8px;\n}\n.nph-link-popover__input {\n appearance: none;\n border: none;\n background: transparent;\n color: inherit;\n outline: none;\n min-width: 200px;\n font-size: 14px;\n}\n.nph-link-popover__divider {\n width: 1px;\n height: 18px;\n background: var(--border, rgba(127,127,127,0.3));\n margin: 0 2px;\n}\n\n@media (prefers-color-scheme: dark) {\n .nph-link-popover {\n background: var(--background, #111);\n border-color: var(--border, rgba(255,255,255,0.16));\n box-shadow: var(--shadow, 0 8px 24px rgba(0,0,0,0.4));\n }\n .nph-link-popover__divider {\n background: var(--border, rgba(255,255,255,0.16));\n }\n}\n\n@media (prefers-color-scheme: dark) {\n .bubble-menu button.is-active,\n .bubble-menu button[aria-pressed=\"true\"] {\n background-color: var(\n --accent,\n rgba(255, 255, 255, 0.14)\n );\n }\n .bubble-menu button.is-active:hover,\n .bubble-menu button[aria-pressed=\"true\"]:hover {\n background-color: var(\n --accent-hover,\n rgba(255, 255, 255, 0.18)\n );\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/styles.css"],"sourcesContent":["/* Neuphlo Editor default styles (TipTap-friendly) */\n/* Note: Highlight.js theme is now optional. Import\n 'neuphlo-editor/highlight.css' or your preferred theme separately. */\n\n:root {\n --nph-z: 9999;\n}\n\n.nph-editor,\n.ProseMirror.nph-editor {\n min-height: 240px;\n line-height: 1.65;\n color: inherit;\n caret-color: currentColor;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n word-break: break-word;\n}\n\n/* Trim outer spacing */\n.nph-editor > *:first-child,\n.ProseMirror.nph-editor > *:first-child {\n margin-top: 0;\n}\n.nph-editor > *:last-child,\n.ProseMirror.nph-editor > *:last-child {\n margin-bottom: 0;\n}\n\n/* Paragraphs */\n.nph-editor p,\n.ProseMirror.nph-editor p {\n margin: 0.75em 0;\n}\n\n/* Headings */\n.nph-editor h1,\n.nph-editor h2,\n.nph-editor h3,\n.nph-editor h4,\n.nph-editor h5,\n.nph-editor h6,\n.ProseMirror.nph-editor h1,\n.ProseMirror.nph-editor h2,\n.ProseMirror.nph-editor h3,\n.ProseMirror.nph-editor h4,\n.ProseMirror.nph-editor h5,\n.ProseMirror.nph-editor h6 {\n line-height: 1.2;\n font-weight: 700;\n margin-top: 2.5rem;\n margin-bottom: 0.75rem;\n text-wrap: pretty;\n}\n.nph-editor h1,\n.nph-editor h2,\n.ProseMirror.nph-editor h1,\n.ProseMirror.nph-editor h2 {\n margin-top: 3rem;\n margin-bottom: 1rem;\n}\n.nph-editor h1,\n.ProseMirror.nph-editor h1 {\n font-size: 1.5rem;\n}\n.nph-editor h2,\n.ProseMirror.nph-editor h2 {\n font-size: 1.25rem;\n}\n.nph-editor h3,\n.ProseMirror.nph-editor h3 {\n font-size: 1.125rem;\n}\n.nph-editor h4,\n.nph-editor h5,\n.nph-editor h6,\n.ProseMirror.nph-editor h4,\n.ProseMirror.nph-editor h5,\n.ProseMirror.nph-editor h6 {\n font-size: 1rem;\n}\n\n/* Lists */\n.nph-editor ul,\n.nph-editor ol,\n.ProseMirror.nph-editor ul,\n.ProseMirror.nph-editor ol {\n padding-left: 1.25rem;\n margin: 1.25rem 1rem 1.25rem 0.4rem;\n}\n.nph-editor ul,\n.ProseMirror.nph-editor ul {\n list-style: disc outside;\n}\n.nph-editor ul ul,\n.ProseMirror.nph-editor ul ul {\n list-style: circle outside;\n}\n.nph-editor ul ul ul,\n.ProseMirror.nph-editor ul ul ul {\n list-style: square outside;\n}\n.nph-editor ol,\n.ProseMirror.nph-editor ol {\n list-style: decimal outside;\n}\n.nph-editor li p,\n.ProseMirror.nph-editor li p {\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n/* Blockquote */\n.nph-editor blockquote,\n.ProseMirror.nph-editor blockquote {\n border-left: 3px solid var(--border, rgba(0, 0, 0, 0.12));\n margin: 1.5rem 0;\n padding-left: 1rem;\n color: var(--muted-foreground, #6b7280);\n}\n\n/* Code (inline) */\n.nph-editor code,\n.ProseMirror.nph-editor code {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n border-radius: 0.375rem;\n color: inherit;\n font-size: 0.875em;\n padding: 0.15em 0.35em;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n/* Code blocks */\n.nph-editor pre,\n.ProseMirror.nph-editor pre {\n background: var(--muted, #f4f4f5);\n border-radius: 0.5rem;\n color: var(--foreground, #111827);\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n margin: 1.5rem 0;\n padding: 0.75rem 1rem;\n overflow-x: auto;\n}\n.nph-editor pre code,\n.ProseMirror.nph-editor pre code {\n background: none;\n color: inherit;\n font-size: 0.85em;\n padding: 0;\n}\n/* Normalize highlight.js base element to integrate with our block styling */\n.nph-editor pre code.hljs,\n.ProseMirror.nph-editor pre code.hljs {\n display: block;\n background: none;\n padding: 0;\n}\n\n/* Horizontal rule */\n.nph-editor hr,\n.ProseMirror.nph-editor hr {\n border: none;\n border-top: 1px solid var(--border, rgba(0, 0, 0, 0.12));\n margin: 2rem 0;\n}\n\n/* Links */\n.nph-editor a,\n.ProseMirror.nph-editor a {\n color: var(--primary, #2563eb);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n/* Images */\n.nph-editor img,\n.ProseMirror.nph-editor img {\n max-width: 100%;\n height: auto;\n}\n\n/* Tables */\n.nph-editor table,\n.ProseMirror.nph-editor table {\n width: 100%;\n table-layout: auto;\n border-collapse: collapse;\n margin: 1.25rem 0;\n}\n.nph-editor th,\n.nph-editor td,\n.ProseMirror.nph-editor th,\n.ProseMirror.nph-editor td {\n border: 1px solid var(--border, rgba(0, 0, 0, 0.12));\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n}\n.nph-editor th,\n.ProseMirror.nph-editor th {\n background: var(--muted, #f4f4f5);\n font-weight: 600;\n}\n\n/* Task list (if enabled) */\n.nph-editor ul[data-type=\"taskList\"],\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] {\n list-style: none;\n padding-left: 0;\n}\n.nph-editor ul[data-type=\"taskList\"] li,\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] li {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n}\n.nph-editor ul[data-type=\"taskList\"] li > label,\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] li > label {\n margin-right: 0.5rem;\n user-select: none;\n}\n.nph-editor ul[data-type=\"taskList\"] li input[type=\"checkbox\"],\n.ProseMirror.nph-editor ul[data-type=\"taskList\"] li input[type=\"checkbox\"] {\n margin: 0.25rem 0.5rem 0 0;\n}\n\n/* ProseMirror helpers */\n.nph-editor .ProseMirror-gapcursor,\n.ProseMirror.nph-editor .ProseMirror-gapcursor {\n display: none;\n}\n.nph-editor .ProseMirror-selectednode,\n.ProseMirror.nph-editor .ProseMirror-selectednode {\n outline: 2px solid var(--ring, rgba(59, 130, 246, 0.5));\n}\n\n/* Placeholder (requires Placeholder extension) */\n.nph-editor p.is-editor-empty:first-child::before,\n.ProseMirror.nph-editor p.is-editor-empty:first-child::before {\n color: var(--muted-foreground, #6b7280);\n content: attr(data-placeholder);\n float: left;\n height: 0;\n pointer-events: none;\n}\n\n/* ------------------\n Bubble menu & dropdown\n ------------------ */\n.bubble-menu {\n /* Themed surface */\n background-color: var(--background, #ffffff);\n color: var(--foreground, #111827);\n border: 1px solid var(--border, rgba(0, 0, 0, 0.08));\n border-radius: 0.7rem;\n box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));\n\n /* Layout */\n display: flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem;\n font-size: 0.875rem; /* ~text-sm */\n\n /* Keep menu content visible for dropdowns */\n max-width: calc(100vw - 16px);\n overflow: visible; /* allow inner dropdown to escape the shell */\n\n /* On top of editor */\n position: relative;\n z-index: var(--nph-z) !important;\n}\n\n/* Ensure Tiptap/Tippy bubble root stacks high */\n[data-tippy-root],\n.tippy-box {\n z-index: var(--nph-z) !important;\n}\n\n/* Generic dropdown container and panel (used in TextMenu) */\n.nph-dropdown {\n position: relative;\n}\n.nph-dropdown__panel {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 0.25rem;\n min-width: 11rem;\n z-index: calc(var(--nph-z) + 1) !important; /* above the bubble itself */\n}\n\n/* Command menu (slash menu & the block-type panel) */\n.nph-command {\n background-color: var(--background, #ffffff);\n color: var(--foreground, #111827);\n border: 1px solid var(--border, rgba(0, 0, 0, 0.08));\n border-radius: 0.5rem;\n box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));\n padding: 0.25rem;\n}\n\n.nph-command__list {\n list-style: none;\n margin: 0;\n padding: 0.125rem;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n max-height: 320px;\n overflow: auto;\n /* Show only the thumb (pill), hide track */\n scrollbar-width: thin; /* Firefox */\n scrollbar-color: #e5e7eb transparent; /* thumb track */\n}\n\n/* WebKit: keep a small thumb, hide the track */\n.nph-command__list::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background: transparent;\n}\n.nph-command__list::-webkit-scrollbar-track {\n background: transparent;\n}\n.nph-command__list::-webkit-scrollbar-thumb {\n background-color: #e5e7eb;\n border-radius: 9999px;\n}\n.nph-command__list:hover::-webkit-scrollbar-thumb {\n background-color: #d1d5db;\n}\n\n@media (prefers-color-scheme: dark) {\n .nph-command__list {\n scrollbar-color: #4b5563 transparent;\n }\n .nph-command__list::-webkit-scrollbar-thumb {\n background-color: #4b5563;\n }\n .nph-command__list:hover::-webkit-scrollbar-thumb {\n background-color: #6b7280;\n }\n}\n\n.nph-command__item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-radius: 0.375rem;\n padding: 0.375rem 0.5rem;\n cursor: pointer;\n}\n\n.nph-command__item:hover {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n}\n\n.nph-command__item.is-active,\n.nph-command__item[aria-selected=\"true\"] {\n background-color: var(--accent, rgba(0, 0, 0, 0.08));\n}\n\n@media (prefers-color-scheme: dark) {\n .nph-command__item.is-active,\n .nph-command__item[aria-selected=\"true\"] {\n background-color: var(--accent, rgba(255, 255, 255, 0.14));\n }\n}\n\n/* Base buttons for headless UI */\n.nph-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: 0.375rem; /* rounded-md */\n font-size: 0.875rem; /* text-sm */\n font-weight: 500; /* font-medium */\n transition:\n background-color 0.2s ease,\n color 0.2s ease,\n box-shadow 0.2s ease;\n outline: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n background: transparent;\n color: inherit;\n border: none;\n}\n\n.nph-btn:focus-visible {\n outline: 2px solid var(--ring, rgba(59, 130, 246, 0.5));\n outline-offset: 2px; /* ring-offset */\n}\n\n.nph-btn:disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n\n/* Ghost variant */\n.nph-btn-ghost {\n background: transparent;\n}\n.nph-btn-ghost:hover {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n}\n\n/* Size: sm */\n.nph-btn-sm {\n height: 2.25rem;\n padding: 0 0.75rem;\n}\n\n/* Size: xs (more compact than sm) */\n.nph-btn-xs {\n height: 1.75rem;\n padding: 0 0.5rem;\n font-size: 0.8125rem;\n}\n\n/* Icon variant: square buttons with equal width/height */\n.nph-btn-icon {\n width: 1.75rem;\n min-width: 1.75rem;\n padding-left: 0;\n padding-right: 0;\n}\n\n/* Keep generic styling for bubble menu buttons if custom classes not applied */\n.bubble-menu button {\n background: transparent;\n color: inherit;\n border: none;\n border-radius: 0.5rem;\n padding: 0.25rem 0.4rem;\n cursor: pointer;\n}\n\n.bubble-menu button:hover {\n background-color: var(--muted, rgba(127, 127, 127, 0.12));\n}\n\n.bubble-menu button.is-active,\n.bubble-menu button[aria-pressed=\"true\"],\n.nph-btn.is-active,\n.nph-btn[aria-pressed=\"true\"] {\n /* Subtle, neutral active state */\n background-color: var(--accent, rgba(0, 0, 0, 0.08));\n color: inherit;\n}\n\n.bubble-menu button.is-active:hover,\n.bubble-menu button[aria-pressed=\"true\"]:hover,\n.nph-btn.is-active:hover,\n.nph-btn[aria-pressed=\"true\"]:hover {\n background-color: var(--accent-hover, rgba(0, 0, 0, 0.12));\n}\n\n/* Basic input style for small inline editors */\n.nph-input {\n width: 100%;\n border: 1px solid var(--border, rgba(127, 127, 127, 0.3));\n background: var(--background, transparent);\n color: inherit;\n border-radius: 0.375rem;\n}\n\n/* Link popover pill */\n.nph-link-popover {\n display: flex;\n align-items: center;\n gap: 6px;\n background: var(--background, #fff);\n color: inherit;\n border: 1px solid var(--border, rgba(127, 127, 127, 0.3));\n border-radius: 0.7rem; /* match bubble-menu corners */\n box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));\n padding: 6px 8px;\n}\n.nph-link-popover__input {\n appearance: none;\n border: none;\n background: transparent;\n color: inherit;\n outline: none;\n min-width: 200px;\n font-size: 14px;\n}\n.nph-link-popover__divider {\n width: 1px;\n height: 18px;\n background: var(--border, rgba(127, 127, 127, 0.3));\n margin: 0 2px;\n}\n\n@media (prefers-color-scheme: dark) {\n .nph-link-popover {\n background: var(--background, #111);\n border-color: var(--border, rgba(255, 255, 255, 0.16));\n box-shadow: var(--shadow, 0 8px 24px rgba(0, 0, 0, 0.4));\n }\n .nph-link-popover__divider {\n background: var(--border, rgba(255, 255, 255, 0.16));\n }\n}\n\n@media (prefers-color-scheme: dark) {\n .bubble-menu button.is-active,\n .bubble-menu button[aria-pressed=\"true\"] {\n background-color: var(--accent, rgba(255, 255, 255, 0.14));\n }\n .bubble-menu button.is-active:hover,\n .bubble-menu button[aria-pressed=\"true\"]:hover {\n background-color: var(--accent-hover, rgba(255, 255, 255, 0.18));\n }\n}\n"],"mappings":"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","names":[]}
package/dist/styles.css CHANGED
@@ -1,6 +1,11 @@
1
1
  /* Neuphlo Editor default styles (TipTap-friendly) */
2
2
  /* Note: Highlight.js theme is now optional. Import
3
3
  'neuphlo-editor/highlight.css' or your preferred theme separately. */
4
+
5
+ :root {
6
+ --nph-z: 9999;
7
+ }
8
+
4
9
  .nph-editor,
5
10
  .ProseMirror.nph-editor {
6
11
  min-height: 240px;
@@ -14,13 +19,19 @@
14
19
 
15
20
  /* Trim outer spacing */
16
21
  .nph-editor > *:first-child,
17
- .ProseMirror.nph-editor > *:first-child { margin-top: 0; }
22
+ .ProseMirror.nph-editor > *:first-child {
23
+ margin-top: 0;
24
+ }
18
25
  .nph-editor > *:last-child,
19
- .ProseMirror.nph-editor > *:last-child { margin-bottom: 0; }
26
+ .ProseMirror.nph-editor > *:last-child {
27
+ margin-bottom: 0;
28
+ }
20
29
 
21
30
  /* Paragraphs */
22
31
  .nph-editor p,
23
- .ProseMirror.nph-editor p { margin: 0.75em 0; }
32
+ .ProseMirror.nph-editor p {
33
+ margin: 0.75em 0;
34
+ }
24
35
 
25
36
  /* Headings */
26
37
  .nph-editor h1,
@@ -49,17 +60,25 @@
49
60
  margin-bottom: 1rem;
50
61
  }
51
62
  .nph-editor h1,
52
- .ProseMirror.nph-editor h1 { font-size: 1.5rem; }
63
+ .ProseMirror.nph-editor h1 {
64
+ font-size: 1.5rem;
65
+ }
53
66
  .nph-editor h2,
54
- .ProseMirror.nph-editor h2 { font-size: 1.25rem; }
67
+ .ProseMirror.nph-editor h2 {
68
+ font-size: 1.25rem;
69
+ }
55
70
  .nph-editor h3,
56
- .ProseMirror.nph-editor h3 { font-size: 1.125rem; }
71
+ .ProseMirror.nph-editor h3 {
72
+ font-size: 1.125rem;
73
+ }
57
74
  .nph-editor h4,
58
75
  .nph-editor h5,
59
76
  .nph-editor h6,
60
77
  .ProseMirror.nph-editor h4,
61
78
  .ProseMirror.nph-editor h5,
62
- .ProseMirror.nph-editor h6 { font-size: 1rem; }
79
+ .ProseMirror.nph-editor h6 {
80
+ font-size: 1rem;
81
+ }
63
82
 
64
83
  /* Lists */
65
84
  .nph-editor ul,
@@ -70,15 +89,26 @@
70
89
  margin: 1.25rem 1rem 1.25rem 0.4rem;
71
90
  }
72
91
  .nph-editor ul,
73
- .ProseMirror.nph-editor ul { list-style: disc outside; }
92
+ .ProseMirror.nph-editor ul {
93
+ list-style: disc outside;
94
+ }
74
95
  .nph-editor ul ul,
75
- .ProseMirror.nph-editor ul ul { list-style: circle outside; }
96
+ .ProseMirror.nph-editor ul ul {
97
+ list-style: circle outside;
98
+ }
76
99
  .nph-editor ul ul ul,
77
- .ProseMirror.nph-editor ul ul ul { list-style: square outside; }
100
+ .ProseMirror.nph-editor ul ul ul {
101
+ list-style: square outside;
102
+ }
78
103
  .nph-editor ol,
79
- .ProseMirror.nph-editor ol { list-style: decimal outside; }
104
+ .ProseMirror.nph-editor ol {
105
+ list-style: decimal outside;
106
+ }
80
107
  .nph-editor li p,
81
- .ProseMirror.nph-editor li p { margin-top: 0.25em; margin-bottom: 0.25em; }
108
+ .ProseMirror.nph-editor li p {
109
+ margin-top: 0.25em;
110
+ margin-bottom: 0.25em;
111
+ }
82
112
 
83
113
  /* Blockquote */
84
114
  .nph-editor blockquote,
@@ -144,7 +174,10 @@
144
174
 
145
175
  /* Images */
146
176
  .nph-editor img,
147
- .ProseMirror.nph-editor img { max-width: 100%; height: auto; }
177
+ .ProseMirror.nph-editor img {
178
+ max-width: 100%;
179
+ height: auto;
180
+ }
148
181
 
149
182
  /* Tables */
150
183
  .nph-editor table,
@@ -170,19 +203,35 @@
170
203
 
171
204
  /* Task list (if enabled) */
172
205
  .nph-editor ul[data-type="taskList"],
173
- .ProseMirror.nph-editor ul[data-type="taskList"] { list-style: none; padding-left: 0; }
206
+ .ProseMirror.nph-editor ul[data-type="taskList"] {
207
+ list-style: none;
208
+ padding-left: 0;
209
+ }
174
210
  .nph-editor ul[data-type="taskList"] li,
175
- .ProseMirror.nph-editor ul[data-type="taskList"] li { display: flex; align-items: flex-start; gap: 0.5rem; }
211
+ .ProseMirror.nph-editor ul[data-type="taskList"] li {
212
+ display: flex;
213
+ align-items: flex-start;
214
+ gap: 0.5rem;
215
+ }
176
216
  .nph-editor ul[data-type="taskList"] li > label,
177
- .ProseMirror.nph-editor ul[data-type="taskList"] li > label { margin-right: 0.5rem; user-select: none; }
217
+ .ProseMirror.nph-editor ul[data-type="taskList"] li > label {
218
+ margin-right: 0.5rem;
219
+ user-select: none;
220
+ }
178
221
  .nph-editor ul[data-type="taskList"] li input[type="checkbox"],
179
- .ProseMirror.nph-editor ul[data-type="taskList"] li input[type="checkbox"] { margin: 0.25rem 0.5rem 0 0; }
222
+ .ProseMirror.nph-editor ul[data-type="taskList"] li input[type="checkbox"] {
223
+ margin: 0.25rem 0.5rem 0 0;
224
+ }
180
225
 
181
226
  /* ProseMirror helpers */
182
227
  .nph-editor .ProseMirror-gapcursor,
183
- .ProseMirror.nph-editor .ProseMirror-gapcursor { display: none; }
228
+ .ProseMirror.nph-editor .ProseMirror-gapcursor {
229
+ display: none;
230
+ }
184
231
  .nph-editor .ProseMirror-selectednode,
185
- .ProseMirror.nph-editor .ProseMirror-selectednode { outline: 2px solid var(--ring, rgba(59, 130, 246, 0.5)); }
232
+ .ProseMirror.nph-editor .ProseMirror-selectednode {
233
+ outline: 2px solid var(--ring, rgba(59, 130, 246, 0.5));
234
+ }
186
235
 
187
236
  /* Placeholder (requires Placeholder extension) */
188
237
  .nph-editor p.is-editor-empty:first-child::before,
@@ -194,7 +243,9 @@
194
243
  pointer-events: none;
195
244
  }
196
245
 
197
- /* Bubble menu */
246
+ /* ------------------
247
+ Bubble menu & dropdown
248
+ ------------------ */
198
249
  .bubble-menu {
199
250
  /* Themed surface */
200
251
  background-color: var(--background, #ffffff);
@@ -209,49 +260,36 @@
209
260
  gap: 0.25rem;
210
261
  padding: 0.25rem;
211
262
  font-size: 0.875rem; /* ~text-sm */
212
-
213
- /* Ensure menu stays within bounds */
263
+
264
+ /* Keep menu content visible for dropdowns */
214
265
  max-width: calc(100vw - 16px);
215
- overflow: hidden;
216
-
217
- /* Ensure bubble menu appears above other UI elements */
218
- z-index: 9999 !important;
219
- position: relative !important;
220
- }
266
+ overflow: visible; /* allow inner dropdown to escape the shell */
221
267
 
222
- /* Target Tiptap's bubble menu wrapper directly */
223
- [data-tippy-root],
224
- .tippy-box,
225
- .ProseMirror-menubar,
226
- [role="tooltip"] {
227
- z-index: 9999 !important;
268
+ /* On top of editor */
269
+ position: relative;
270
+ z-index: var(--nph-z) !important;
228
271
  }
229
272
 
230
- /* Additional targeting for any potential bubble menu containers */
231
- .bubble-menu,
232
- *[class*="bubble"],
233
- *[class*="menu"][class*="floating"],
234
- *[data-tippy-root] .bubble-menu {
235
- z-index: 9999 !important;
236
- position: relative !important;
273
+ /* Ensure Tiptap/Tippy bubble root stacks high */
274
+ [data-tippy-root],
275
+ .tippy-box {
276
+ z-index: var(--nph-z) !important;
237
277
  }
238
278
 
239
- /* Target Floating UI and other positioning systems */
240
- [data-floating-ui-portal],
241
- [data-floating-ui-portal] *,
242
- .floating-ui-portal,
243
- [style*="position: fixed"],
244
- [style*="position: absolute"][style*="top:"][style*="left:"] {
245
- z-index: 9999 !important;
279
+ /* Generic dropdown container and panel (used in TextMenu) */
280
+ .nph-dropdown {
281
+ position: relative;
246
282
  }
247
-
248
- /* Ensure all bubble menu related elements have high z-index */
249
- :is(.bubble-menu, [class*="bubble"]) {
250
- --bubble-menu-z-index: 9999;
251
- z-index: var(--bubble-menu-z-index) !important;
283
+ .nph-dropdown__panel {
284
+ position: absolute;
285
+ top: 100%;
286
+ left: 0;
287
+ margin-top: 0.25rem;
288
+ min-width: 11rem;
289
+ z-index: calc(var(--nph-z) + 1) !important; /* above the bubble itself */
252
290
  }
253
291
 
254
- /* Command menu (slash menu) */
292
+ /* Command menu (slash menu & the block-type panel) */
255
293
  .nph-command {
256
294
  background-color: var(--background, #ffffff);
257
295
  color: var(--foreground, #111827);
@@ -261,17 +299,6 @@
261
299
  padding: 0.25rem;
262
300
  }
263
301
 
264
- /* Generic dropdown container and panel (used in TextMenu) */
265
- .nph-dropdown { position: relative; }
266
- .nph-dropdown__panel {
267
- position: absolute;
268
- top: 100%;
269
- left: 0;
270
- margin-top: 0.25rem;
271
- z-index: 50;
272
- min-width: 11rem;
273
- }
274
-
275
302
  .nph-command__list {
276
303
  list-style: none;
277
304
  margin: 0;
@@ -283,7 +310,6 @@
283
310
  overflow: auto;
284
311
  /* Show only the thumb (pill), hide track */
285
312
  scrollbar-width: thin; /* Firefox */
286
- /* Light default (overridden in dark mode below) */
287
313
  scrollbar-color: #e5e7eb transparent; /* thumb track */
288
314
  }
289
315
 
@@ -291,28 +317,28 @@
291
317
  .nph-command__list::-webkit-scrollbar {
292
318
  width: 6px;
293
319
  height: 6px;
294
- background: transparent; /* track area */
320
+ background: transparent;
295
321
  }
296
322
  .nph-command__list::-webkit-scrollbar-track {
297
323
  background: transparent;
298
324
  }
299
325
  .nph-command__list::-webkit-scrollbar-thumb {
300
- background-color: #e5e7eb; /* light gray */
301
- border-radius: 9999px; /* pill */
326
+ background-color: #e5e7eb;
327
+ border-radius: 9999px;
302
328
  }
303
329
  .nph-command__list:hover::-webkit-scrollbar-thumb {
304
- background-color: #d1d5db; /* slightly darker on hover */
330
+ background-color: #d1d5db;
305
331
  }
306
332
 
307
333
  @media (prefers-color-scheme: dark) {
308
334
  .nph-command__list {
309
- scrollbar-color: #4b5563 transparent; /* darker gray thumb */
335
+ scrollbar-color: #4b5563 transparent;
310
336
  }
311
337
  .nph-command__list::-webkit-scrollbar-thumb {
312
- background-color: #4b5563; /* dark gray */
338
+ background-color: #4b5563;
313
339
  }
314
340
  .nph-command__list:hover::-webkit-scrollbar-thumb {
315
- background-color: #6b7280; /* lighter on hover */
341
+ background-color: #6b7280;
316
342
  }
317
343
  }
318
344
 
@@ -350,7 +376,10 @@
350
376
  border-radius: 0.375rem; /* rounded-md */
351
377
  font-size: 0.875rem; /* text-sm */
352
378
  font-weight: 500; /* font-medium */
353
- transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
379
+ transition:
380
+ background-color 0.2s ease,
381
+ color 0.2s ease,
382
+ box-shadow 0.2s ease;
354
383
  outline: none;
355
384
  user-select: none;
356
385
  -webkit-tap-highlight-color: transparent;
@@ -379,20 +408,20 @@
379
408
 
380
409
  /* Size: sm */
381
410
  .nph-btn-sm {
382
- height: 2.25rem; /* h-9 */
383
- padding: 0 0.75rem; /* px-3 */
411
+ height: 2.25rem;
412
+ padding: 0 0.75rem;
384
413
  }
385
414
 
386
415
  /* Size: xs (more compact than sm) */
387
416
  .nph-btn-xs {
388
- height: 1.75rem; /* ~28px */
389
- padding: 0 0.5rem; /* 8px */
390
- font-size: 0.8125rem; /* ~13px */
417
+ height: 1.75rem;
418
+ padding: 0 0.5rem;
419
+ font-size: 0.8125rem;
391
420
  }
392
421
 
393
422
  /* Icon variant: square buttons with equal width/height */
394
423
  .nph-btn-icon {
395
- width: 1.75rem; /* match xs height */
424
+ width: 1.75rem;
396
425
  min-width: 1.75rem;
397
426
  padding-left: 0;
398
427
  padding-right: 0;
@@ -417,10 +446,7 @@
417
446
  .nph-btn.is-active,
418
447
  .nph-btn[aria-pressed="true"] {
419
448
  /* Subtle, neutral active state */
420
- background-color: var(
421
- --accent,
422
- rgba(0, 0, 0, 0.08)
423
- );
449
+ background-color: var(--accent, rgba(0, 0, 0, 0.08));
424
450
  color: inherit;
425
451
  }
426
452
 
@@ -428,16 +454,13 @@
428
454
  .bubble-menu button[aria-pressed="true"]:hover,
429
455
  .nph-btn.is-active:hover,
430
456
  .nph-btn[aria-pressed="true"]:hover {
431
- background-color: var(
432
- --accent-hover,
433
- rgba(0, 0, 0, 0.12)
434
- );
457
+ background-color: var(--accent-hover, rgba(0, 0, 0, 0.12));
435
458
  }
436
459
 
437
460
  /* Basic input style for small inline editors */
438
461
  .nph-input {
439
462
  width: 100%;
440
- border: 1px solid var(--border, rgba(127,127,127,0.3));
463
+ border: 1px solid var(--border, rgba(127, 127, 127, 0.3));
441
464
  background: var(--background, transparent);
442
465
  color: inherit;
443
466
  border-radius: 0.375rem;
@@ -450,9 +473,9 @@
450
473
  gap: 6px;
451
474
  background: var(--background, #fff);
452
475
  color: inherit;
453
- border: 1px solid var(--border, rgba(127,127,127,0.3));
476
+ border: 1px solid var(--border, rgba(127, 127, 127, 0.3));
454
477
  border-radius: 0.7rem; /* match bubble-menu corners */
455
- box-shadow: var(--shadow, 0 4px 16px rgba(0,0,0,0.08));
478
+ box-shadow: var(--shadow, 0 4px 16px rgba(0, 0, 0, 0.08));
456
479
  padding: 6px 8px;
457
480
  }
458
481
  .nph-link-popover__input {
@@ -467,34 +490,28 @@
467
490
  .nph-link-popover__divider {
468
491
  width: 1px;
469
492
  height: 18px;
470
- background: var(--border, rgba(127,127,127,0.3));
493
+ background: var(--border, rgba(127, 127, 127, 0.3));
471
494
  margin: 0 2px;
472
495
  }
473
496
 
474
497
  @media (prefers-color-scheme: dark) {
475
498
  .nph-link-popover {
476
499
  background: var(--background, #111);
477
- border-color: var(--border, rgba(255,255,255,0.16));
478
- box-shadow: var(--shadow, 0 8px 24px rgba(0,0,0,0.4));
500
+ border-color: var(--border, rgba(255, 255, 255, 0.16));
501
+ box-shadow: var(--shadow, 0 8px 24px rgba(0, 0, 0, 0.4));
479
502
  }
480
503
  .nph-link-popover__divider {
481
- background: var(--border, rgba(255,255,255,0.16));
504
+ background: var(--border, rgba(255, 255, 255, 0.16));
482
505
  }
483
506
  }
484
507
 
485
508
  @media (prefers-color-scheme: dark) {
486
509
  .bubble-menu button.is-active,
487
510
  .bubble-menu button[aria-pressed="true"] {
488
- background-color: var(
489
- --accent,
490
- rgba(255, 255, 255, 0.14)
491
- );
511
+ background-color: var(--accent, rgba(255, 255, 255, 0.14));
492
512
  }
493
513
  .bubble-menu button.is-active:hover,
494
514
  .bubble-menu button[aria-pressed="true"]:hover {
495
- background-color: var(
496
- --accent-hover,
497
- rgba(255, 255, 255, 0.18)
498
- );
515
+ background-color: var(--accent-hover, rgba(255, 255, 255, 0.18));
499
516
  }
500
517
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neuphlo-editor",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "private": false,
5
5
  "description": "A lightweight React wrapper around Tiptap with sensible defaults.",
6
6
  "type": "module",