@kritzel/editor 0.4.32 → 0.4.34

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 (111) hide show
  1. package/dist/cjs/{index-q_Tg9KUw.js → index-BAdxtEc7.js} +15 -9
  2. package/dist/cjs/kritzel-active-users_46.cjs.entry.js +49 -45
  3. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  4. package/dist/cjs/kritzel-editor.cjs.js +2 -2
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +1 -1
  7. package/dist/components/index.js +1 -1
  8. package/dist/components/kritzel-active-users.js +1 -1
  9. package/dist/components/kritzel-avatar.js +1 -1
  10. package/dist/components/kritzel-awareness-cursors.js +1 -1
  11. package/dist/components/kritzel-back-to-content.js +1 -1
  12. package/dist/components/kritzel-brush-style.js +3 -3
  13. package/dist/components/kritzel-button.js +1 -1
  14. package/dist/components/kritzel-color-palette.js +1 -1
  15. package/dist/components/kritzel-color.js +1 -1
  16. package/dist/components/kritzel-context-menu.js +1 -1
  17. package/dist/components/kritzel-current-user-dialog.js +1 -1
  18. package/dist/components/kritzel-current-user.js +1 -1
  19. package/dist/components/kritzel-cursor-trail.js +1 -1
  20. package/dist/components/kritzel-dialog.js +1 -1
  21. package/dist/components/kritzel-dropdown.js +1 -1
  22. package/dist/components/kritzel-editor.js +46 -46
  23. package/dist/components/kritzel-engine.js +1 -1
  24. package/dist/components/kritzel-export.js +1 -1
  25. package/dist/components/kritzel-font-family.js +1 -1
  26. package/dist/components/kritzel-font-size.js +1 -1
  27. package/dist/components/kritzel-font.js +1 -1
  28. package/dist/components/kritzel-icon.js +1 -1
  29. package/dist/components/kritzel-input.js +1 -1
  30. package/dist/components/kritzel-line-endings.js +1 -1
  31. package/dist/components/kritzel-loading-overlay.js +1 -1
  32. package/dist/components/kritzel-login-dialog.js +1 -1
  33. package/dist/components/kritzel-master-detail.js +1 -1
  34. package/dist/components/kritzel-menu-item.js +1 -1
  35. package/dist/components/kritzel-menu.js +1 -1
  36. package/dist/components/kritzel-more-menu.js +1 -1
  37. package/dist/components/kritzel-notification-card.js +1 -1
  38. package/dist/components/kritzel-numeric-input.js +1 -1
  39. package/dist/components/kritzel-opacity-slider.js +1 -1
  40. package/dist/components/kritzel-pill-tabs.js +1 -1
  41. package/dist/components/kritzel-portal.js +1 -1
  42. package/dist/components/kritzel-settings.js +1 -1
  43. package/dist/components/kritzel-shape-fill.js +1 -1
  44. package/dist/components/kritzel-share-dialog.js +1 -1
  45. package/dist/components/kritzel-slide-toggle.js +1 -1
  46. package/dist/components/kritzel-split-button.js +1 -1
  47. package/dist/components/kritzel-stroke-size.js +1 -1
  48. package/dist/components/kritzel-tool-config.js +1 -1
  49. package/dist/components/kritzel-toolbar.js +1 -1
  50. package/dist/components/kritzel-tooltip.js +1 -1
  51. package/dist/components/kritzel-utility-panel.js +1 -1
  52. package/dist/components/kritzel-watermark.js +1 -1
  53. package/dist/components/kritzel-workspace-manager.js +1 -1
  54. package/dist/components/kritzel-zoom-panel.js +1 -1
  55. package/dist/components/{p-p2H4pOpF.js → p-2DAZSvN6.js} +4 -4
  56. package/dist/components/{p-C5fgp5y4.js → p-2gylYpXk.js} +6 -6
  57. package/dist/components/{p-Dwg30A00.js → p-B-Divd0Q.js} +3 -3
  58. package/dist/components/{p-Fzi_dVqn.js → p-B-U13Ew1.js} +1 -1
  59. package/dist/components/{p-BbXTqI4t.js → p-B1rmcPZr.js} +5 -5
  60. package/dist/components/{p-5tEZmBli.js → p-B2-SxV8E.js} +2 -2
  61. package/dist/components/{p-DSi2HiZW.js → p-B6Z_VKKH.js} +1 -1
  62. package/dist/components/{p-CPfTzGnn.js → p-B8tHdknP.js} +2 -2
  63. package/dist/components/{p-C01XOYLF.js → p-BDsuJNT_.js} +1 -1
  64. package/dist/components/{p-D53Q7EDf.js → p-BMi-i7sC.js} +1 -1
  65. package/dist/components/{p-CdwD9F0m.js → p-BZ0ReYAA.js} +1 -1
  66. package/dist/components/{p-CiSc7ASZ.js → p-BeCy6w6M.js} +53 -49
  67. package/dist/components/{p-COaLQ4Z-.js → p-Bipc1XvF.js} +1 -1
  68. package/dist/components/{p-Qk844WR4.js → p-BmFJelgk.js} +1 -1
  69. package/dist/components/{p-pWWRmEe8.js → p-BpvSYxxN.js} +4 -4
  70. package/dist/components/{p-g6VqjbL_.js → p-C0ns8IPO.js} +1 -1
  71. package/dist/components/{p-C5Hw8Wv3.js → p-C1_r9nJU.js} +2 -2
  72. package/dist/components/{p-CgCVe3_P.js → p-C2ySiAXO.js} +2 -2
  73. package/dist/components/{p-DAr69onU.js → p-C3KlONnT.js} +1 -1
  74. package/dist/components/{p-CIm1iROq.js → p-C68YXjuL.js} +1 -1
  75. package/dist/components/{p-DoNH4OhF.js → p-CCuNN278.js} +1 -1
  76. package/dist/components/{p-piYX2tVg.js → p-CNH7N3Aq.js} +3 -3
  77. package/dist/components/{p-D0lYLWkj.js → p-CO1cJlfg.js} +1 -1
  78. package/dist/components/{p-DZ0S2l6Z.js → p-CqHKGLYE.js} +1 -1
  79. package/dist/components/{p-CY3fGZlt.js → p-CrEWqua9.js} +4 -4
  80. package/dist/components/{p-EpqroVCx.js → p-Cv2nqOL8.js} +7 -7
  81. package/dist/components/{p-D5OzFEtr.js → p-D-1ixLxq.js} +12 -12
  82. package/dist/components/{p-CHelQjUo.js → p-DF8p-DxR.js} +2 -2
  83. package/dist/components/{p-D1sxfQVN.js → p-DQ3VKzAS.js} +2 -2
  84. package/dist/components/{p-DX4FbgMi.js → p-DRe-rTlX.js} +15 -15
  85. package/dist/components/{p-BhVCoiyK.js → p-DSyb29RF.js} +1 -1
  86. package/dist/components/{p-Dtm4CEHf.js → p-DYDruZIw.js} +2 -2
  87. package/dist/components/{p-xPpMDzPX.js → p-D_JxJxQ6.js} +5 -5
  88. package/dist/components/{p-Ddk64LEI.js → p-Dko_6jIh.js} +1 -1
  89. package/dist/components/{p-COGlcEiV.js → p-DnHvqeyr.js} +2 -2
  90. package/dist/components/{p-DZ4rAt6k.js → p-DqMikMrS.js} +2 -2
  91. package/dist/components/{p-CViWMGoM.js → p-DsnHq8en.js} +1 -1
  92. package/dist/components/{p-DxHrSwYy.js → p-DxFNLy9X.js} +2 -2
  93. package/dist/components/{p-l1BZ4pYI.js → p-Dzr6X2aj.js} +4 -3
  94. package/dist/components/{p-BK5rE1rd.js → p-HbHo7awi.js} +2 -2
  95. package/dist/components/{p-DYNFqwX4.js → p-Qbk7xE91.js} +2 -2
  96. package/dist/components/{p-DE6S-FN0.js → p-VYGV0cr3.js} +1 -1
  97. package/dist/components/{p-hKGrOeEa.js → p-YGBl60lb.js} +1 -1
  98. package/dist/components/{p-BuwiCK1I.js → p-clFfXKKn.js} +6 -6
  99. package/dist/components/{p-BowLPDbq.js → p-dUcCDLDF.js} +1 -1
  100. package/dist/components/{p-B6U2JNDq.js → p-kXnNX65j.js} +2 -2
  101. package/dist/esm/{index-2x7dfLlM.js → index-YR-6hzAW.js} +15 -9
  102. package/dist/esm/kritzel-active-users_46.entry.js +49 -45
  103. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  104. package/dist/esm/kritzel-editor.js +3 -3
  105. package/dist/esm/loader.js +2 -2
  106. package/dist/kritzel-editor/kritzel-editor.esm.js +4 -4
  107. package/dist/kritzel-editor/{p-285cdc18.entry.js → p-3a0f60b0.entry.js} +1 -1
  108. package/dist/kritzel-editor/{p-2x7dfLlM.js → p-YR-6hzAW.js} +15 -9
  109. package/dist/kritzel-editor/{p-d5439a4f.entry.js → p-adc45d46.entry.js} +49 -45
  110. package/dist/types/stencil-public-runtime.d.ts +61 -55
  111. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- import { K as KritzelMenu$1, d as defineCustomElement$1 } from './p-pWWRmEe8.js';
1
+ import { K as KritzelMenu$1, d as defineCustomElement$1 } from './p-BpvSYxxN.js';
2
2
 
3
3
  const KritzelMenu = KritzelMenu$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelMoreMenu$1, d as defineCustomElement$1 } from './p-BbXTqI4t.js';
1
+ import { K as KritzelMoreMenu$1, d as defineCustomElement$1 } from './p-B1rmcPZr.js';
2
2
 
3
3
  const KritzelMoreMenu = KritzelMoreMenu$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelNotificationCard$1, d as defineCustomElement$1 } from './p-Dtm4CEHf.js';
1
+ import { K as KritzelNotificationCard$1, d as defineCustomElement$1 } from './p-DYDruZIw.js';
2
2
 
3
3
  const KritzelNotificationCard = KritzelNotificationCard$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelNumericInput$1, d as defineCustomElement$1 } from './p-BhVCoiyK.js';
1
+ import { K as KritzelNumericInput$1, d as defineCustomElement$1 } from './p-DSyb29RF.js';
2
2
 
3
3
  const KritzelNumericInput = KritzelNumericInput$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelOpacitySlider$1, d as defineCustomElement$1 } from './p-DE6S-FN0.js';
1
+ import { K as KritzelOpacitySlider$1, d as defineCustomElement$1 } from './p-VYGV0cr3.js';
2
2
 
3
3
  const KritzelOpacitySlider = KritzelOpacitySlider$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelPillTabs$1, d as defineCustomElement$1 } from './p-5tEZmBli.js';
1
+ import { K as KritzelPillTabs$1, d as defineCustomElement$1 } from './p-B2-SxV8E.js';
2
2
 
3
3
  const KritzelPillTabs = KritzelPillTabs$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelPortal$1, d as defineCustomElement$1 } from './p-Qk844WR4.js';
1
+ import { K as KritzelPortal$1, d as defineCustomElement$1 } from './p-BmFJelgk.js';
2
2
 
3
3
  const KritzelPortal = KritzelPortal$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelSettings$1, d as defineCustomElement$1 } from './p-EpqroVCx.js';
1
+ import { K as KritzelSettings$1, d as defineCustomElement$1 } from './p-Cv2nqOL8.js';
2
2
 
3
3
  const KritzelSettings = KritzelSettings$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelShapeFill$1, d as defineCustomElement$1 } from './p-D53Q7EDf.js';
1
+ import { K as KritzelShapeFill$1, d as defineCustomElement$1 } from './p-BMi-i7sC.js';
2
2
 
3
3
  const KritzelShapeFill = KritzelShapeFill$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelShareDialog$1, d as defineCustomElement$1 } from './p-CY3fGZlt.js';
1
+ import { K as KritzelShareDialog$1, d as defineCustomElement$1 } from './p-CrEWqua9.js';
2
2
 
3
3
  const KritzelShareDialog = KritzelShareDialog$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelSlideToggle$1, d as defineCustomElement$1 } from './p-hKGrOeEa.js';
1
+ import { K as KritzelSlideToggle$1, d as defineCustomElement$1 } from './p-YGBl60lb.js';
2
2
 
3
3
  const KritzelSlideToggle = KritzelSlideToggle$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelSplitButton$1, d as defineCustomElement$1 } from './p-xPpMDzPX.js';
1
+ import { K as KritzelSplitButton$1, d as defineCustomElement$1 } from './p-D_JxJxQ6.js';
2
2
 
3
3
  const KritzelSplitButton = KritzelSplitButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelStrokeSize$1, d as defineCustomElement$1 } from './p-BK5rE1rd.js';
1
+ import { K as KritzelStrokeSize$1, d as defineCustomElement$1 } from './p-HbHo7awi.js';
2
2
 
3
3
  const KritzelStrokeSize = KritzelStrokeSize$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelToolConfig$1, d as defineCustomElement$1 } from './p-D5OzFEtr.js';
1
+ import { K as KritzelToolConfig$1, d as defineCustomElement$1 } from './p-D-1ixLxq.js';
2
2
 
3
3
  const KritzelToolConfig = KritzelToolConfig$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelToolbar$1, d as defineCustomElement$1 } from './p-DX4FbgMi.js';
1
+ import { K as KritzelToolbar$1, d as defineCustomElement$1 } from './p-DRe-rTlX.js';
2
2
 
3
3
  const KritzelToolbar = KritzelToolbar$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelTooltip$1, d as defineCustomElement$1 } from './p-DoNH4OhF.js';
1
+ import { K as KritzelTooltip$1, d as defineCustomElement$1 } from './p-CCuNN278.js';
2
2
 
3
3
  const KritzelTooltip = KritzelTooltip$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelUtilityPanel$1, d as defineCustomElement$1 } from './p-COGlcEiV.js';
1
+ import { K as KritzelUtilityPanel$1, d as defineCustomElement$1 } from './p-DnHvqeyr.js';
2
2
 
3
3
  const KritzelUtilityPanel = KritzelUtilityPanel$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelWatermark$1, d as defineCustomElement$1 } from './p-BowLPDbq.js';
1
+ import { K as KritzelWatermark$1, d as defineCustomElement$1 } from './p-dUcCDLDF.js';
2
2
 
3
3
  const KritzelWatermark = KritzelWatermark$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelWorkspaceManager$1, d as defineCustomElement$1 } from './p-C5fgp5y4.js';
1
+ import { K as KritzelWorkspaceManager$1, d as defineCustomElement$1 } from './p-2gylYpXk.js';
2
2
 
3
3
  const KritzelWorkspaceManager = KritzelWorkspaceManager$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { K as KritzelZoomPanel$1, d as defineCustomElement$1 } from './p-DxHrSwYy.js';
1
+ import { K as KritzelZoomPanel$1, d as defineCustomElement$1 } from './p-DxFNLy9X.js';
2
2
 
3
3
  const KritzelZoomPanel = KritzelZoomPanel$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
2
- import { d as defineCustomElement$3 } from './p-COaLQ4Z-.js';
3
- import { d as defineCustomElement$2 } from './p-CViWMGoM.js';
4
- import { d as defineCustomElement$1 } from './p-g6VqjbL_.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
+ import { d as defineCustomElement$3 } from './p-Bipc1XvF.js';
3
+ import { d as defineCustomElement$2 } from './p-DsnHq8en.js';
4
+ import { d as defineCustomElement$1 } from './p-C0ns8IPO.js';
5
5
 
6
6
  const kritzelCurrentUserDialogCss = () => `:host{display:contents}kritzel-dialog{--kritzel-dialog-width-small:380px}.user-info{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0}.user-name{font-size:18px;font-weight:600;color:var(--kritzel-current-user-dialog-name-color, #333333);text-align:center;margin-top:8px}.user-email{font-size:14px;color:var(--kritzel-current-user-dialog-email-color, #666666);text-align:center}.logout-button{margin-top:16px;width:100%;--kritzel-button-width:100%;--kritzel-button-primary-background-color:var(--kritzel-current-user-dialog-logout-button-background-color, #007AFF);--kritzel-button-primary-hover-background-color:var(--kritzel-current-user-dialog-logout-button-hover-background-color, #006ae6);--kritzel-button-primary-active-background-color:var(--kritzel-current-user-dialog-logout-button-active-background-color, #005bbf);--kritzel-button-primary-color:var(--kritzel-current-user-dialog-logout-button-color, #ffffff)}`;
7
7
 
@@ -1,10 +1,10 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelWorkspace } from '@kritzel/engine';
3
- import { d as defineCustomElement$5 } from './p-DSi2HiZW.js';
4
- import { d as defineCustomElement$4 } from './p-pWWRmEe8.js';
5
- import { d as defineCustomElement$3 } from './p-Dwg30A00.js';
6
- import { d as defineCustomElement$2 } from './p-Qk844WR4.js';
7
- import { d as defineCustomElement$1 } from './p-xPpMDzPX.js';
3
+ import { d as defineCustomElement$5 } from './p-B6Z_VKKH.js';
4
+ import { d as defineCustomElement$4 } from './p-BpvSYxxN.js';
5
+ import { d as defineCustomElement$3 } from './p-B-Divd0Q.js';
6
+ import { d as defineCustomElement$2 } from './p-BmFJelgk.js';
7
+ import { d as defineCustomElement$1 } from './p-D_JxJxQ6.js';
8
8
 
9
9
  const kritzelWorkspaceManagerCss = () => `:host{display:flex;flex-direction:column;z-index:1}.manager{opacity:0;pointer-events:none;transition:opacity 0.2s ease-out}.manager.visible{opacity:1;pointer-events:auto}`;
10
10
 
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelDevicesHelper } from '@kritzel/engine';
3
- import { d as defineCustomElement$2 } from './p-DSi2HiZW.js';
4
- import { d as defineCustomElement$1 } from './p-Qk844WR4.js';
3
+ import { d as defineCustomElement$2 } from './p-B6Z_VKKH.js';
4
+ import { d as defineCustomElement$1 } from './p-BmFJelgk.js';
5
5
 
6
6
  const kritzelMenuItemCss = () => `:host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:var(--kritzel-menu-font-family, var(--kritzel-global-font-family, sans-serif));font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px);-webkit-tap-highlight-color:transparent}:host:focus:not(:focus-visible){outline:none}:host(:hover) .menu-item-overlay,:host(:focus-within) .menu-item-overlay{background-color:var(--kritzel-menu-item-overlay-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.selected){background-color:var(--kritzel-menu-item-selected-background-color, #007aff);color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected.editing){background-color:var(--kritzel-menu-item-selected-background-color, #007aff)}:host(.selected) .edit-input{color:var(--kritzel-menu-item-selected-color, #ffffff);caret-color:var(--kritzel-menu-item-input-caret-color-on-selected, #ffffff);border-color:var(--kritzel-menu-item-input-border-color-on-selected, #ffffff)}:host(.selected) .action-button kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-color, #333333)}:host(.selected) kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color-on-selected, rgba(255, 255, 255, 0.3));color:var(--kritzel-menu-item-input-selection-text-color-on-selected, #ffffff)}:host(.editing){background-color:var(--kritzel-menu-item-editing-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.disabled){opacity:0.5;pointer-events:none !important}:host(.child-open){background-color:var(--kritzel-menu-item-child-open-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.child-open.selected){background-color:var(--kritzel-menu-item-selected-background-color, #007aff)}.menu-item-overlay{position:absolute;inset:0;background-color:transparent;z-index:0;pointer-events:none;border-radius:var(--kritzel-menu-item-border-radius, 12px)}.menu-item-content{display:flex;align-items:center;gap:8px;position:relative;z-index:1;height:100%}.menu-item-content span{display:flex;align-items:center;line-height:0}.left{justify-content:flex-start;flex:1;min-width:0}.left>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{justify-content:flex-end}.edit-input{flex:1;height:var(--kritzel-menu-item-input-height, 24px);padding:0;background-color:transparent;border-radius:0;border:none;border-bottom:var(--kritzel-menu-item-input-border, 1px solid #ccc);font-size:var(--kritzel-menu-item-font-size, 14px);width:100%;min-width:0;box-sizing:border-box;outline:none;color:inherit}.edit-input{caret-color:var(--kritzel-menu-item-input-caret-color, currentColor)}.edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, #007bff);color:var(--kritzel-menu-item-input-selection-text-color, #ffffff)}.action-button{padding:4px;border-radius:8px;border:none;cursor:var(--kritzel-global-pointer-cursor, pointer);display:flex;align-items:center;justify-content:center;background-color:transparent;background:transparent;-webkit-tap-highlight-color:transparent}.action-button:hover,.action-button:focus{background-color:var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.action-button.disabled{pointer-events:none;opacity:0.5}`;
7
7
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const kritzelDropdownCss = () => `:host{display:inline-flex;vertical-align:middle;width:100%;position:relative}.dropdown-wrapper{display:flex;align-items:center;border:1px solid var(--kritzel-dropdown-border-color, #ebebeb);border-radius:var(--kritzel-dropdown-border-radius, 6px);overflow:visible;height:38px;width:100%;position:relative}.dropdown-wrapper:hover:not(:focus-within){border-color:var(--kritzel-dropdown-hover-border-color, #cccccc)}.dropdown-container{flex:1;height:100%;min-width:0}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;height:100%;width:100%;box-sizing:border-box;border-radius:var(--kritzel-dropdown-border-radius, 6px);border:none;background-color:var(--kritzel-dropdown-background, #ffffff);cursor:var(--kritzel-global-pointer-cursor, pointer);outline:none;font-size:inherit;font-family:inherit;color:var(--kritzel-dropdown-text-color, #333333);-webkit-tap-highlight-color:transparent;text-align:left}.dropdown-trigger:focus-visible{outline:revert}.dropdown-trigger.has-suffix-border{border-right:1px solid var(--kritzel-global-border-color, #ebebeb);border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-trigger.has-prefix-border{border-left:1px solid var(--kritzel-global-border-color, #ebebeb);border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dropdown-trigger-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform 0.2s ease}.dropdown-trigger-arrow svg{width:100%;height:100%}.dropdown-trigger.is-open .dropdown-trigger-arrow{transform:rotate(180deg)}.dropdown-trigger.is-open.open-up .dropdown-trigger-arrow{transform:rotate(0deg)}.dropdown-menu{position:absolute;left:0;right:0;margin:0;padding:4px 0;list-style:none;background-color:var(--kritzel-dropdown-background, #ffffff);border:1px solid var(--kritzel-global-border-color, #ebebeb);border-radius:var(--kritzel-dropdown-menu-border-radius, var(--kritzel-dropdown-border-radius, 6px));box-shadow:var(--kritzel-toolbar-box-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));z-index:1000;max-height:240px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;outline:none}.dropdown-menu.open-down{top:calc(100% + 4px);bottom:auto;transform:translateY(-8px)}.dropdown-menu.open-up{bottom:calc(100% + 4px);top:auto;transform:translateY(8px)}.dropdown-menu.is-open{opacity:1;visibility:inherit;transform:translateY(0)}.dropdown-menu.open-up{box-shadow:var(--kritzel-toolbar-box-shadow, 0 -4px 12px rgba(0, 0, 0, 0.15))}.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:var(--kritzel-global-pointer-cursor, pointer);color:var(--kritzel-dropdown-text-color, #333333);transition:background-color 0.1s ease;-webkit-tap-highlight-color:transparent}.dropdown-option.is-focused{background-color:var(--kritzel-dropdown-hover-background-color, #f0f0f0)}.dropdown-option.is-selected{font-weight:600;background-color:var(--kritzel-dropdown-selected-background-color, #007bff1a)}.dropdown-option-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--kritzel-dropdown-accent-color, #007bff)}.dropdown-option-check svg{width:100%;height:100%}.dropdown-menu{scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin}::slotted(*){height:100%;box-sizing:border-box}`;
4
4
 
@@ -1,9 +1,9 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelDevicesHelper } from '@kritzel/engine';
3
- import { d as defineCustomElement$4 } from './p-DSi2HiZW.js';
4
- import { d as defineCustomElement$3 } from './p-pWWRmEe8.js';
5
- import { d as defineCustomElement$2 } from './p-Dwg30A00.js';
6
- import { d as defineCustomElement$1 } from './p-Qk844WR4.js';
3
+ import { d as defineCustomElement$4 } from './p-B6Z_VKKH.js';
4
+ import { d as defineCustomElement$3 } from './p-BpvSYxxN.js';
5
+ import { d as defineCustomElement$2 } from './p-B-Divd0Q.js';
6
+ import { d as defineCustomElement$1 } from './p-BmFJelgk.js';
7
7
 
8
8
  const kritzelMoreMenuCss = () => `:host{display:inline-flex;z-index:1}.more-menu-wrapper{display:inline-flex;padding:var(--kritzel-more-menu-padding, 4px);background-color:var(--kritzel-more-menu-background-color, #ffffff);border-radius:var(--kritzel-more-menu-border-radius, 12px);box-shadow:var(--kritzel-more-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-more-menu-border, 1px solid #ebebeb);opacity:0;pointer-events:none;transition:opacity 0.2s ease-out}.more-menu-wrapper.visible{opacity:1;pointer-events:auto}:host(.mobile){--kritzel-more-menu-button-hover-background-color:transparent;--kritzel-more-menu-button-active-background-color:transparent}.more-menu-button{display:flex;align-items:center;justify-content:center;width:var(--kritzel-more-menu-button-width, 40px);height:var(--kritzel-more-menu-button-height, 40px);padding:0;border:none;border-radius:var(--kritzel-more-menu-inner-border-radius, 12px);background-color:transparent;cursor:var(--kritzel-global-pointer-cursor, pointer);box-shadow:none;transition:background-color 150ms ease;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--kritzel-more-menu-button-color, currentColor)}.more-menu-button:hover{background-color:var(--kritzel-more-menu-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.more-menu-button:focus-visible{background-color:var(--kritzel-more-menu-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.more-menu-button:active{background-color:var(--kritzel-more-menu-button-active-background-color, hsl(0, 0%, 0%, 4.3%))}`;
9
9
 
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
2
- import { d as defineCustomElement$1 } from './p-DSi2HiZW.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
+ import { d as defineCustomElement$1 } from './p-B6Z_VKKH.js';
3
3
 
4
4
  const kritzelPillTabsCss = () => `:host{display:block;max-width:100%}.pill-tabs-container{display:inline-flex;align-items:center;gap:4px;padding:4px;max-width:100%;border-radius:var(--kritzel-pill-tabs-border-radius, 10px);background:var(--kritzel-pill-tabs-background, #f0f0f0);box-sizing:border-box}.pill-tab{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;max-width:100%;padding:8px 16px;border:none;border-radius:var(--kritzel-pill-tabs-tab-border-radius, 8px);background:var(--kritzel-pill-tabs-tab-background, transparent);color:var(--kritzel-pill-tabs-tab-text-color, #666666);font-family:inherit;font-size:14px;font-weight:500;cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;white-space:nowrap}.pill-tab:hover:not(.selected){background:var(--kritzel-pill-tabs-tab-background-hover, rgba(0, 0, 0, 0.05))}.pill-tab.selected{background:var(--kritzel-pill-tabs-tab-background-selected, #ffffff);color:var(--kritzel-pill-tabs-tab-text-color-selected, #000000);box-shadow:var(--kritzel-pill-tabs-tab-shadow-selected, 0 1px 3px rgba(0, 0, 0, 0.1))}.pill-tab:focus{outline:none}.pill-tab:focus-visible{box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.pill-tab-label{display:block;min-width:0;max-width:var(--kritzel-pill-tabs-tab-label-max-width, 10rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1}.pill-tab kritzel-icon{flex-shrink:0}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, f as forceUpdate, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, f as forceUpdate, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const KRITZEL_ICON_REGISTRY_KEY = '__kritzelIconRegistry__';
4
4
  const getGlobalRegistryStore = () => {
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
2
- import { d as defineCustomElement$1 } from './p-DSi2HiZW.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
+ import { d as defineCustomElement$1 } from './p-B6Z_VKKH.js';
3
3
 
4
4
  const kritzelMasterDetailCss = () => `:host{display:block;width:100%;height:100%}.master-detail-container{display:flex;width:100%;height:100%;min-height:var(--kritzel-master-detail-min-height, 300px);gap:var(--kritzel-master-detail-gap, 0);background-color:var(--kritzel-master-detail-background-color, transparent)}.master-menu{display:flex;flex-direction:column;width:var(--kritzel-master-detail-menu-width, 200px);min-width:var(--kritzel-master-detail-menu-min-width, 160px);padding:var(--kritzel-master-detail-menu-padding, 8px);background-color:var(--kritzel-master-detail-menu-background-color, #ffffff);border-right:var(--kritzel-master-detail-menu-border-right, 1px solid #ebebeb);gap:var(--kritzel-master-detail-menu-gap, 4px);overflow-y:auto}.menu-item{display:flex;align-items:center;gap:var(--kritzel-master-detail-menu-item-gap, 10px);padding:var(--kritzel-master-detail-menu-item-padding, 10px 12px);border:none;border-radius:var(--kritzel-master-detail-menu-item-border-radius, 6px);background-color:var(--kritzel-master-detail-menu-item-background-color, transparent);color:var(--kritzel-master-detail-menu-item-color, #333333);font-family:inherit;font-size:var(--kritzel-master-detail-menu-item-font-size, 14px);font-weight:var(--kritzel-master-detail-menu-item-font-weight, 400);text-align:left;cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 150ms ease, color 150ms ease;-webkit-tap-highlight-color:transparent}.menu-item:hover:not(.is-disabled){background-color:var(--kritzel-master-detail-menu-item-hover-background-color, #ebebeb)}.menu-item:active:not(.is-disabled){background-color:var(--kritzel-master-detail-menu-item-active-background-color, #e0e0e0)}.menu-item.is-selected{background-color:var(--kritzel-master-detail-menu-item-selected-background-color, #0066cc);color:var(--kritzel-master-detail-menu-item-selected-color, #ffffff);font-weight:var(--kritzel-master-detail-menu-item-selected-font-weight, 500)}.menu-item.is-selected:hover{background-color:var(--kritzel-master-detail-menu-item-selected-hover-background-color, #0052a3)}.menu-item.is-disabled{color:var(--kritzel-master-detail-menu-item-disabled-color, #999999);cursor:not-allowed;opacity:0.6}.menu-item:focus-visible{outline:var(--kritzel-master-detail-menu-item-focus-outline, revert);outline-offset:var(--kritzel-master-detail-menu-item-focus-outline-offset, revert)}.menu-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.menu-item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-panel{flex:1;min-height:0;padding:var(--kritzel-master-detail-detail-padding, 16px);background-color:var(--kritzel-master-detail-detail-background-color, #ffffff);overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin}.detail-panel:focus{outline:none}.detail-panel:focus-visible{outline:var(--kritzel-master-detail-detail-focus-outline, revert);outline-offset:var(--kritzel-master-detail-detail-focus-outline-offset, revert)}.mobile-back-button{display:none;align-items:center;gap:8px;background:none;border:none;padding:0 0 16px 0;cursor:pointer;-webkit-tap-highlight-color:transparent;color:var(--kritzel-master-detail-back-button-color, #333333);font-weight:500;font-size:14px;font-family:inherit}.mobile-back-icon{display:flex;align-items:center;flex-shrink:0}.menu-item-chevron{display:none;flex-shrink:0;margin-left:auto;color:var(--kritzel-master-detail-menu-item-chevron-color, #999999)}.menu-item-chevron svg{width:16px;height:16px;stroke:currentColor}@media (max-width: 768px){.master-menu{width:100%;border-right:none}.detail-panel{display:none;width:100%}.master-detail-container.is-mobile-detail-visible .master-menu{display:none}.master-detail-container.is-mobile-detail-visible .detail-panel{display:block}.mobile-back-button{display:flex}.menu-item.is-selected{background-color:transparent;color:var(--kritzel-master-detail-menu-item-color, #333333);font-weight:var(--kritzel-master-detail-menu-item-font-weight, 400)}.menu-item.is-selected:hover{background-color:var(--kritzel-master-detail-menu-item-hover-background-color, #ebebeb)}.menu-item-chevron{display:flex;align-items:center}}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const kritzelLineEndingsCss = () => `:host{display:flex;flex-direction:column;gap:12px;padding:0;box-sizing:border-box}.endings-section{display:flex;flex-direction:column;gap:6px}.section-label{font-size:12px;font-weight:500;color:var(--kritzel-line-endings-label-color, #666666);padding-left:4px}.endings-row{display:flex;align-items:center;gap:4px}.ending-option{display:flex;justify-content:center;align-items:center;width:48px;height:32px;border-radius:6px;cursor:var(--kritzel-global-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background:var(--kritzel-line-endings-option-background, #ffffff);padding:4px;transition:background-color 0.15s ease, border-color 0.15s ease}.ending-option:hover{background-color:var(--kritzel-line-endings-hover-background-color, #ebebeb)}.ending-option.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-line-endings-selected-background-color, #ebebeb)}.ending-option:focus{outline:none;box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.ending-icon{width:100%;height:100%}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const kritzelShapeFillCss = () => `:host{display:flex;flex-direction:column;gap:12px;padding:0;box-sizing:border-box}.fill-row{display:flex;align-items:center;gap:4px}.fill-option{display:flex;justify-content:center;align-items:center;width:48px;height:32px;border-radius:6px;cursor:var(--kritzel-global-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background:var(--kritzel-shape-fill-option-background, #ffffff);padding:4px;transition:background-color 0.15s ease, border-color 0.15s ease}.fill-option:hover{background-color:var(--kritzel-shape-fill-hover-background-color, #ebebeb)}.fill-option.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-shape-fill-selected-background-color, #ebebeb)}.fill-option:focus{outline:none;box-shadow:0 0 0 2px var(--kritzel-global-focus-ring-color, rgba(0, 122, 255, 0.3))}.fill-icon{width:100%;height:100%}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  var cjs = {};
4
4
 
@@ -1,9 +1,9 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
2
- import { a as KritzelMouseButton, d as defineCustomElement$3 } from './p-DZ0S2l6Z.js';
3
- import { a as KritzelBaseObject, b as KritzelLine, c as KritzelMathHelper, e as KritzelGeometryHelper, f as KritzelColorHelper, D as DEFAULT_COLOR_PALETTE, g as KritzelPath, O as ObjectHelper, h as KritzelThemeManager, d as defineCustomElement$4 } from './p-CdwD9F0m.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
+ import { a as KritzelMouseButton, d as defineCustomElement$3 } from './p-CqHKGLYE.js';
3
+ import { a as KritzelBaseObject, b as KritzelLine, c as KritzelMathHelper, e as KritzelGeometryHelper, f as KritzelColorHelper, D as DEFAULT_COLOR_PALETTE, g as KritzelPath, O as ObjectHelper, h as KritzelThemeManager, d as defineCustomElement$4 } from './p-BZ0ReYAA.js';
4
4
  import { c as commonjsGlobal } from './p-BFTU3MAI.js';
5
- import { A as ABSOLUTE_SCALE_MAX, a as ABSOLUTE_SCALE_MIN, d as defineCustomElement$1 } from './p-BowLPDbq.js';
6
- import { a as KritzelIconRegistry, d as defineCustomElement$2 } from './p-DSi2HiZW.js';
5
+ import { A as ABSOLUTE_SCALE_MAX, a as ABSOLUTE_SCALE_MIN, d as defineCustomElement$1 } from './p-dUcCDLDF.js';
6
+ import { a as KritzelIconRegistry, d as defineCustomElement$2 } from './p-B6Z_VKKH.js';
7
7
 
8
8
  /**
9
9
  * Represents a visual selection box used for multi-object selection on the canvas.
@@ -22165,7 +22165,6 @@ class Mark {
22165
22165
  if (!type)
22166
22166
  throw new RangeError(`There is no mark type ${json.type} in this schema`);
22167
22167
  let mark = type.create(json.attrs);
22168
- type.checkAttrs(mark.attrs);
22169
22168
  return mark;
22170
22169
  }
22171
22170
  /**
@@ -23145,11 +23144,11 @@ class Node {
23145
23144
  */
23146
23145
  check() {
23147
23146
  this.type.checkContent(this.content);
23148
- this.type.checkAttrs(this.attrs);
23147
+ checkAttrs(this.type.attrs, this.attrs, "node", this.type.name);
23149
23148
  let copy = Mark.none;
23150
23149
  for (let i = 0; i < this.marks.length; i++) {
23151
23150
  let mark = this.marks[i];
23152
- mark.type.checkAttrs(mark.attrs);
23151
+ checkAttrs(mark.type.attrs, mark.attrs, "mark", mark.type.name);
23153
23152
  copy = mark.addToSet(copy);
23154
23153
  }
23155
23154
  if (!Mark.sameSet(copy, this.marks))
@@ -23190,7 +23189,6 @@ class Node {
23190
23189
  }
23191
23190
  let content = Fragment.fromJSON(schema, json.content);
23192
23191
  let node = schema.nodeType(json.type).create(json.attrs, content, marks);
23193
- node.type.checkAttrs(node.attrs);
23194
23192
  return node;
23195
23193
  }
23196
23194
  }
@@ -23240,6 +23238,15 @@ function wrapMarks(marks, str) {
23240
23238
  str = marks[i].type.name + "(" + str + ")";
23241
23239
  return str;
23242
23240
  }
23241
+ function checkAttrs(attrs, values, type, name) {
23242
+ for (let attr in values)
23243
+ if (!(attr in attrs))
23244
+ throw new RangeError(`Unsupported attribute ${attr} for ${type} of type ${name}`);
23245
+ for (let attr in attrs) {
23246
+ if (attrs[attr].validate)
23247
+ attrs[attr].validate(values[attr]);
23248
+ }
23249
+ }
23243
23250
 
23244
23251
  /**
23245
23252
  Instances of this class represent a match state of a node type's
@@ -23694,27 +23701,21 @@ function defaultAttrs(attrs) {
23694
23701
  function computeAttrs(attrs, value) {
23695
23702
  let built = Object.create(null);
23696
23703
  for (let name in attrs) {
23704
+ let attr = attrs[name];
23697
23705
  let given = value && value[name];
23698
23706
  if (given === undefined) {
23699
- let attr = attrs[name];
23700
23707
  if (attr.hasDefault)
23701
23708
  given = attr.default;
23702
23709
  else
23703
23710
  throw new RangeError("No value supplied for attribute " + name);
23704
23711
  }
23712
+ else if (attr.validate) {
23713
+ attr.validate(given);
23714
+ }
23705
23715
  built[name] = given;
23706
23716
  }
23707
23717
  return built;
23708
23718
  }
23709
- function checkAttrs(attrs, values, type, name) {
23710
- for (let attr in values)
23711
- if (!(attr in attrs))
23712
- throw new RangeError(`Unsupported attribute ${attr} for ${type} of type ${name}`);
23713
- for (let attr in attrs) {
23714
- if (attrs[attr].validate)
23715
- attrs[attr].validate(values[attr]);
23716
- }
23717
- }
23718
23719
  function initAttrs(typeName, attrs) {
23719
23720
  let result = Object.create(null);
23720
23721
  if (attrs)
@@ -23886,11 +23887,9 @@ let NodeType$1 = class NodeType {
23886
23887
  throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);
23887
23888
  }
23888
23889
  /**
23889
- @internal
23890
+ @internal no longer useful, but called by old prosemirror-view versions
23890
23891
  */
23891
- checkAttrs(attrs) {
23892
- checkAttrs(this.attrs, attrs, "node", this.name);
23893
- }
23892
+ checkAttrs(attrs) { }
23894
23893
  /**
23895
23894
  Check whether the given mark type is allowed in this node.
23896
23895
  */
@@ -24037,12 +24036,6 @@ class MarkType {
24037
24036
  return set[i];
24038
24037
  }
24039
24038
  /**
24040
- @internal
24041
- */
24042
- checkAttrs(attrs) {
24043
- checkAttrs(this.attrs, attrs, "mark", this.name);
24044
- }
24045
- /**
24046
24039
  Queries whether a given mark type is
24047
24040
  [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.
24048
24041
  */
@@ -30734,7 +30727,8 @@ function nodeLen(node) {
30734
30727
  }
30735
30728
  function isIgnorable(dom, dir) {
30736
30729
  let desc = dom.pmViewDesc;
30737
- return desc && desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != "BR");
30730
+ return desc ? desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != "BR")
30731
+ : dom.nodeType == 1 && dom.contentEditable == "false";
30738
30732
  }
30739
30733
  function skipIgnoredNodes(view, dir) {
30740
30734
  return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);
@@ -31323,12 +31317,11 @@ function addContext(slice, context) {
31323
31317
  if (!type || type.hasRequiredAttrs())
31324
31318
  break;
31325
31319
  try {
31326
- type.checkAttrs(array[i + 1]);
31320
+ content = Fragment.from(type.create(array[i + 1], content));
31327
31321
  }
31328
31322
  catch (e) {
31329
31323
  break;
31330
31324
  }
31331
- content = Fragment.from(type.create(array[i + 1], content));
31332
31325
  openStart++;
31333
31326
  openEnd++;
31334
31327
  }
@@ -31808,7 +31801,7 @@ editHandlers.compositionstart = editHandlers.compositionupdate = view => {
31808
31801
  if (!view.composing) {
31809
31802
  view.domObserver.flush();
31810
31803
  let { state } = view, $pos = state.selection.$to;
31811
- if (state.selection instanceof TextSelection &&
31804
+ if (state.selection instanceof TextSelection && state.selection.empty &&
31812
31805
  (state.storedMarks ||
31813
31806
  (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)) ||
31814
31807
  chrome && windows$1 && selectionBeforeUneditable(view))) { // Issue #1500
@@ -33445,9 +33438,7 @@ function readDOMChange(view, from, to, typeOver, addedNodes) {
33445
33438
  // as being an iOS enter press), just dispatch an Enter key instead.
33446
33439
  if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&
33447
33440
  (!inlineChange || addedNodes.some(n => n.nodeName == "DIV" || n.nodeName == "P"))) ||
33448
- (!inlineChange && $from.pos < parse.doc.content.size &&
33449
- (!$from.sameParent($to) || !$from.parent.inlineContent) &&
33450
- $from.pos < $to.pos && !/\S/.test(parse.doc.textBetween($from.pos, $to.pos, "", "")))) &&
33441
+ (!inlineChange && looksLikeEnter(parse.doc, $from.pos, $to.pos))) &&
33451
33442
  view.someProp("handleKeyDown", f => f(view, keyEvent(13, "Enter")))) {
33452
33443
  view.input.lastIOSEnter = 0;
33453
33444
  return;
@@ -33598,6 +33589,16 @@ function looksLikeBackspace(old, start, end, $newStart, $newEnd) {
33598
33589
  // The fragments after the join point must match
33599
33590
  return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);
33600
33591
  }
33592
+ function looksLikeEnter(content, from, to) {
33593
+ let newTextlines = 0, newLeaves = 0;
33594
+ content.nodesBetween(from, to, (node, pos) => {
33595
+ if (node.isTextblock && pos >= from && pos < to)
33596
+ newTextlines++;
33597
+ else if (node.isText ? /\S/.test(node.text.slice(Math.max(0, from - pos), Math.min(node.nodeSize, to - pos))) : node.isLeaf)
33598
+ newLeaves++;
33599
+ });
33600
+ return newLeaves == 0 && newTextlines == 1;
33601
+ }
33601
33602
  function skipClosingAndOpening($pos, fromEnd, mayOpen) {
33602
33603
  let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;
33603
33604
  while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {
@@ -45995,20 +45996,22 @@ const cleanupTransactions = (transactionCleanups, i) => {
45995
45996
  // We need to think about the possibility that the user transforms the
45996
45997
  // Y.Doc in the event.
45997
45998
  if (type._dEH.l.length > 0 && (type._item === null || !type._item.deleted)) {
45998
- events = events
45999
- .filter(event =>
46000
- event.target._item === null || !event.target._item.deleted
46001
- );
46002
- events
46003
- .forEach(event => {
46004
- event.currentTarget = type;
46005
- // path is relative to the current target
46006
- event._path = null;
46007
- });
46008
- // sort events by path length so that top-level events are fired first.
46009
- events
46010
- .sort((event1, event2) => event1.path.length - event2.path.length);
46011
45999
  fs.push(() => {
46000
+ // The same event instance is shared by all parent types. Hence, we must set
46001
+ // currentTarget right before calling the handlers (see #768).
46002
+ events = events
46003
+ .filter(event =>
46004
+ event.target._item === null || !event.target._item.deleted
46005
+ );
46006
+ events
46007
+ .forEach(event => {
46008
+ event.currentTarget = type;
46009
+ // path is relative to the current target
46010
+ event._path = null;
46011
+ });
46012
+ // sort events by path length so that top-level events are fired first.
46013
+ events
46014
+ .sort((event1, event2) => event1.path.length - event2.path.length);
46012
46015
  // We don't need to check for events.length
46013
46016
  // because we know it has at least one element
46014
46017
  callEventHandlerListeners(type._dEH, events, transaction);
@@ -46022,6 +46025,7 @@ const cleanupTransactions = (transactionCleanups, i) => {
46022
46025
  }
46023
46026
  });
46024
46027
  });
46028
+ // note the nested fs calls, must not modify fs at this point
46025
46029
  callAll(fs, []);
46026
46030
  } finally {
46027
46031
  // Replace deleted items with ItemDeleted / GC.
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const kritzelAvatarCss = () => `:host{display:inline-flex;justify-content:center;align-items:center;border-radius:50%;overflow:hidden;user-select:none;flex-shrink:0}.avatar-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-initials{display:flex;justify-content:center;align-items:center;width:100%;height:100%;border-radius:50%;color:var(--kritzel-avatar-initials-color, #ffffff);font-weight:var(--kritzel-avatar-initials-font-weight, 500);font-family:var(--kritzel-avatar-initials-font-family, sans-serif);line-height:1}.avatar-default{display:flex;justify-content:center;align-items:center;width:100%;height:100%;border-radius:50%;background-color:var(--kritzel-avatar-default-background, #e0e0e0);color:var(--kritzel-avatar-default-color, #9e9e9e)}.avatar-default svg{width:60%;height:60%}:host(.has-image){border:var(--kritzel-avatar-border, none)}:host(.has-initials){border:var(--kritzel-avatar-border, none)}:host(.has-default){border:var(--kritzel-avatar-border, none)}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelHTMLHelper, ObjectHelper } from '@kritzel/engine';
3
3
 
4
4
  const KritzelPortal = /*@__PURE__*/ proxyCustomElement(class KritzelPortal extends H {
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
2
- import { d as defineCustomElement$3 } from './p-DSi2HiZW.js';
3
- import { d as defineCustomElement$2 } from './p-Dwg30A00.js';
4
- import { d as defineCustomElement$1 } from './p-Qk844WR4.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
+ import { d as defineCustomElement$3 } from './p-B6Z_VKKH.js';
3
+ import { d as defineCustomElement$2 } from './p-B-Divd0Q.js';
4
+ import { d as defineCustomElement$1 } from './p-BmFJelgk.js';
5
5
 
6
6
  const kritzelMenuCss = () => `:host{position:relative;display:flex;flex-direction:column;font-family:var(--kritzel-menu-font-family, var(--kritzel-global-font-family, sans-serif));background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin;max-height:var(--kritzel-portal-max-height, 300px);box-sizing:border-box;-webkit-tap-highlight-color:transparent;outline:none;clip-path:inset(0 round var(--kritzel-menu-border-radius, 12px))}:host:focus-visible{outline:auto}.has-open-child-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3}`;
7
7
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelHTMLHelper } from '@kritzel/engine';
3
3
 
4
4
  const kritzelDialogCss = () => `:host{display:contents}.dialog-content{text-align:start;line-height:normal}.backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10002;display:flex;align-items:center;justify-content:center;background-color:var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));opacity:1;transition:opacity 150ms ease-out}.backdrop.is-animating{opacity:0}.dialog-content{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-dialog-background-color, #ffffff);border-radius:var(--kritzel-dialog-border-radius, 12px);box-shadow:var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));border:var(--kritzel-dialog-border, 1px solid #ebebeb);max-height:var(--kritzel-dialog-max-height, 90vh);max-width:var(--kritzel-dialog-max-width, 90vw);overflow:hidden;transform:scale(1);opacity:1;transition:transform 200ms ease-out, opacity 200ms ease-out;font-family:var(--kritzel-dialog-font-family, var(--kritzel-global-font-family, sans-serif))}.dialog-content.is-animating{transform:scale(0.95);opacity:0}.dialog-content.size-small{width:var(--kritzel-dialog-width-small, 320px);height:var(--kritzel-dialog-height-small, auto)}.dialog-content.size-medium{width:var(--kritzel-dialog-width-medium, 480px);height:var(--kritzel-dialog-height-medium, auto)}.dialog-content.size-large{width:var(--kritzel-dialog-width-large, 640px);height:var(--kritzel-dialog-height-large, auto)}.dialog-content.size-fullscreen{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}.backdrop.contained-fullscreen{background-color:transparent}.dialog-content.contained-fullscreen{border-radius:0}.dialog-content.contained-fullscreen .dialog-body{display:flex;flex-direction:column}.dialog-content.contained-fullscreen .dialog-body ::slotted(*){flex:1;min-height:0}@media (max-width: 576px), (max-height: 576px) and (orientation: landscape){.backdrop:has(.fullscreen-on-mobile){background-color:transparent}.dialog-content.fullscreen-on-mobile{width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}.dialog-content.fullscreen-on-mobile .dialog-body{display:flex;flex-direction:column}.dialog-content.fullscreen-on-mobile .dialog-body ::slotted(*){flex:1;min-height:0}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kritzel-dialog-header-padding, 16px 20px);border-bottom:var(--kritzel-dialog-header-border, 1px solid #ebebeb);gap:12px}.dialog-title{margin:0;font-size:var(--kritzel-dialog-title-font-size, 18px);font-weight:var(--kritzel-dialog-title-font-weight, 600);color:var(--kritzel-dialog-title-color, #1a1a1a);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.close-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--kritzel-dialog-close-button-border-radius, 6px);background-color:var(--kritzel-dialog-close-button-background, transparent);color:var(--kritzel-dialog-close-button-color, #666666);cursor:var(--kritzel-global-pointer-cursor, pointer);transition:background-color 150ms ease, color 150ms ease;flex-shrink:0;-webkit-tap-highlight-color:transparent}.close-button:hover{background-color:var(--kritzel-dialog-close-button-hover-background, #f5f5f5);color:var(--kritzel-dialog-close-button-hover-color, #1a1a1a)}.close-button:active{background-color:var(--kritzel-dialog-close-button-active-background, #ebebeb)}.close-button:focus-visible{outline:revert;outline-offset:revert}.dialog-body{padding:var(--kritzel-dialog-body-padding, 20px);overflow-y:auto;flex:1;min-height:0;scrollbar-color:var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;scrollbar-width:thin}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--kritzel-dialog-footer-gap, 8px);padding:var(--kritzel-dialog-footer-padding, 16px 20px);border-top:var(--kritzel-dialog-footer-border, 1px solid #ebebeb)}::slotted([slot='header']){flex:1}::slotted([slot='footer']){display:contents}`;
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
2
- import { d as defineCustomElement$1 } from './p-Fzi_dVqn.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
+ import { d as defineCustomElement$1 } from './p-B-U13Ew1.js';
3
3
 
4
4
  const kritzelFontFamilyCss = () => `:host{display:flex;align-items:flex-start;gap:8px;padding:0;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:var(--kritzel-global-pointer-cursor, pointer);border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}`;
5
5
 
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelColorHelper } from '@kritzel/engine';
3
- import { d as defineCustomElement$1 } from './p-D0lYLWkj.js';
3
+ import { d as defineCustomElement$1 } from './p-CO1cJlfg.js';
4
4
 
5
5
  const kritzelColorPaletteCss = () => `:host{display:flex;align-items:flex-start;gap:8px;padding:0;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-global-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.color-container:hover{background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}`;
6
6
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const kritzelLoadingOverlayCss = () => `:host{position:absolute;inset:0;z-index:var(--kritzel-editor-loading-overlay-z-index, 1);display:block;pointer-events:none}.loading-overlay{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;gap:10px;background-color:var(--kritzel-editor-loading-overlay-background, rgba(255, 255, 255, 0.6));color:var(--kritzel-editor-loading-overlay-color, #333);font-family:var(--kritzel-global-font-family, sans-serif);font-size:1.25rem;opacity:0;pointer-events:none;visibility:hidden;transition:opacity 300ms ease, visibility 0s linear 300ms}.loading-overlay.visible{opacity:1;pointer-events:all;visibility:visible;transition:opacity 300ms ease, visibility 0s linear 0s}.loading-spinner{width:20px;height:20px;box-sizing:border-box;display:block;flex-shrink:0;border:2px solid var(--kritzel-editor-loading-overlay-spinner-color, #cccccc);border-top-color:var(--kritzel-editor-loading-overlay-spinner-active-color, #333333);border-radius:50%;animation:kritzel-loading-spin 0.6s linear infinite}@keyframes kritzel-loading-spin{to{transform:rotate(360deg)}}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
 
3
3
  const kritzelInputCss = () => `:host{display:block}.input-container{display:flex;flex-direction:column;gap:6px}.input-label{font-size:14px;font-weight:500;color:var(--kritzel-text-input-label-color, #333333)}.input-wrapper{display:flex;align-items:center;border:1px solid var(--kritzel-text-input-border-color, #ebebeb);border-radius:var(--kritzel-text-input-border-radius, 6px);overflow:hidden;background:var(--kritzel-text-input-background, #ffffff);transition:border-color 150ms ease}.input-wrapper:hover:not(:focus-within){border-color:var(--kritzel-text-input-hover-border-color, #cccccc)}.input-wrapper:focus-within{border-color:var(--kritzel-text-input-focus-border-color, #007AFF);border-width:2px}.text-input{flex:1;padding:10px 12px;border:none;outline:none;font-size:14px;font-family:inherit;background:transparent;color:var(--kritzel-text-input-text-color, #333333);box-sizing:border-box}.text-input::placeholder{color:var(--kritzel-text-input-placeholder-color, #999999)}.text-input::selection{background-color:var(--kritzel-text-input-selection-background, #007AFF);color:var(--kritzel-text-input-selection-color, #ffffff)}.text-input:disabled{cursor:not-allowed;opacity:0.6}.input-suffix{padding:10px 12px;background:var(--kritzel-text-input-suffix-background, #f5f5f5);color:var(--kritzel-text-input-suffix-color, #666666);font-size:14px;border-left:1px solid var(--kritzel-text-input-border-color, #ebebeb);flex-shrink:0}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-l1BZ4pYI.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host, t as transformTag } from './p-Dzr6X2aj.js';
2
2
  import { KritzelHTMLHelper } from '@kritzel/engine';
3
3
 
4
4
  const kritzelTooltipCss = () => `:host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-tooltip-background-color, #ffffff);color:var(--kritzel-tooltip-color, #000000);padding:var(--kritzel-tooltip-padding, 12px);border:var(--kritzel-tooltip-border, 1px solid #ebebeb);border-radius:var(--kritzel-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}`;