@notectl/core 1.7.2 → 1.7.3

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 (125) hide show
  1. package/dist/chunks/{ColorGrid-Dneqb8if.mjs → ColorGrid--lBQ7jCK.mjs} +2 -2
  2. package/dist/chunks/{ColorGrid-Dneqb8if.mjs.map → ColorGrid--lBQ7jCK.mjs.map} +1 -1
  3. package/dist/chunks/{ColorPickerPopup-CiCLBbe9.mjs → ColorPickerPopup-TpIRlXc8.mjs} +8 -8
  4. package/dist/chunks/ColorPickerPopup-TpIRlXc8.mjs.map +1 -0
  5. package/dist/chunks/Document-Brtw2jL1.mjs.map +1 -1
  6. package/dist/chunks/MarkCommands-6RUJ4L3r.mjs.map +1 -1
  7. package/dist/chunks/NodeSpec-NZVvcCuH.mjs.map +1 -1
  8. package/dist/chunks/PopupPositioning-CgjgAKjp.mjs +34 -0
  9. package/dist/chunks/PopupPositioning-CgjgAKjp.mjs.map +1 -0
  10. package/dist/chunks/{StyleRuntime-ChRjVQwL.mjs → StyleRuntime-CP4NCwKT.mjs} +49 -53
  11. package/dist/chunks/StyleRuntime-CP4NCwKT.mjs.map +1 -0
  12. package/dist/chunks/ToolbarItem-BpZggUGo.mjs.map +1 -1
  13. package/dist/chunks/{index-D515iymW.mjs → index--7pBhSF4.mjs} +5 -5
  14. package/dist/chunks/index--7pBhSF4.mjs.map +1 -0
  15. package/dist/chunks/index-BXCkjDax.mjs +161 -0
  16. package/dist/chunks/index-BXCkjDax.mjs.map +1 -0
  17. package/dist/chunks/{ToolbarPlugin-DpLVJ71w.mjs → index-BcDRT4K2.mjs} +81 -93
  18. package/dist/chunks/index-BcDRT4K2.mjs.map +1 -0
  19. package/dist/chunks/{index--n1RGpq-.mjs → index-BjFBWBOC.mjs} +46 -49
  20. package/dist/chunks/index-BjFBWBOC.mjs.map +1 -0
  21. package/dist/chunks/{index-BqNUfq-y.mjs → index-CCyqQ0Dz.mjs} +2 -2
  22. package/dist/chunks/{index-BqNUfq-y.mjs.map → index-CCyqQ0Dz.mjs.map} +1 -1
  23. package/dist/chunks/{index-DyzigvbZ.mjs → index-DSAuGP4n.mjs} +50 -50
  24. package/dist/chunks/index-DSAuGP4n.mjs.map +1 -0
  25. package/dist/chunks/{index-BhDXjueu.mjs → index-DtRfqsq5.mjs} +14 -14
  26. package/dist/chunks/{index-BhDXjueu.mjs.map → index-DtRfqsq5.mjs.map} +1 -1
  27. package/dist/chunks/{index-Dk49P9N4.mjs → index-Dum8yE_t.mjs} +11 -11
  28. package/dist/chunks/{index-Dk49P9N4.mjs.map → index-Dum8yE_t.mjs.map} +1 -1
  29. package/dist/chunks/{index-CluzpB2b.mjs → index-DxbQirny.mjs} +7 -7
  30. package/dist/chunks/{index-CluzpB2b.mjs.map → index-DxbQirny.mjs.map} +1 -1
  31. package/dist/chunks/{index-CWltg1wK.mjs → index-WpbK_s_H.mjs} +20 -25
  32. package/dist/chunks/index-WpbK_s_H.mjs.map +1 -0
  33. package/dist/chunks/{index-D3NlpmT1.mjs → index-WrqH1wG8.mjs} +3 -3
  34. package/dist/chunks/{index-D3NlpmT1.mjs.map → index-WrqH1wG8.mjs.map} +1 -1
  35. package/dist/chunks/{index-BvqkuEY1.mjs → index-fx3KIap3.mjs} +3 -3
  36. package/dist/chunks/{index-BvqkuEY1.mjs.map → index-fx3KIap3.mjs.map} +1 -1
  37. package/dist/chunks/{index-BAke7kNL.mjs → index-oOJo-ywB.mjs} +41 -41
  38. package/dist/chunks/{index-BAke7kNL.mjs.map → index-oOJo-ywB.mjs.map} +1 -1
  39. package/dist/chunks/{index-ABlTDvEX.mjs → index-toj88jtL.mjs} +2 -2
  40. package/dist/chunks/{index-ABlTDvEX.mjs.map → index-toj88jtL.mjs.map} +1 -1
  41. package/dist/commands/MarkCommands.d.ts +3 -3
  42. package/dist/commands/MarkCommands.d.ts.map +1 -1
  43. package/dist/editor/CSSClassCollector.d.ts +36 -0
  44. package/dist/editor/CSSClassCollector.d.ts.map +1 -0
  45. package/dist/editor/ContentHTMLTypes.d.ts +29 -0
  46. package/dist/editor/ContentHTMLTypes.d.ts.map +1 -0
  47. package/dist/editor/ContentStyleInjector.d.ts +69 -0
  48. package/dist/editor/ContentStyleInjector.d.ts.map +1 -0
  49. package/dist/editor/DocumentParser.d.ts +9 -1
  50. package/dist/editor/DocumentParser.d.ts.map +1 -1
  51. package/dist/editor/DocumentSerializer.d.ts +6 -0
  52. package/dist/editor/DocumentSerializer.d.ts.map +1 -1
  53. package/dist/editor/MarkSerializer.d.ts +7 -0
  54. package/dist/editor/MarkSerializer.d.ts.map +1 -1
  55. package/dist/editor/NotectlEditor.d.ts +8 -11
  56. package/dist/editor/NotectlEditor.d.ts.map +1 -1
  57. package/dist/editor/styles/font-select.d.ts +1 -1
  58. package/dist/editor/styles/font-select.d.ts.map +1 -1
  59. package/dist/editor/styles/font-size-select.d.ts +1 -1
  60. package/dist/editor/styles/font-size-select.d.ts.map +1 -1
  61. package/dist/editor/styles/heading-select.d.ts +1 -1
  62. package/dist/editor/styles/heading-select.d.ts.map +1 -1
  63. package/dist/editor/styles/toolbar.d.ts +1 -1
  64. package/dist/editor/styles/toolbar.d.ts.map +1 -1
  65. package/dist/index.d.ts +10 -13
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/model/Document.d.ts +0 -4
  68. package/dist/model/Document.d.ts.map +1 -1
  69. package/dist/model/NodeSpec.d.ts +19 -2
  70. package/dist/model/NodeSpec.d.ts.map +1 -1
  71. package/dist/notectl-core.mjs +460 -336
  72. package/dist/notectl-core.mjs.map +1 -1
  73. package/dist/notectl-core.umd.js +676 -587
  74. package/dist/notectl-core.umd.js.map +1 -1
  75. package/dist/plugins/alignment.mjs +1 -1
  76. package/dist/plugins/blockquote.mjs +1 -1
  77. package/dist/plugins/caret-navigation.mjs +1 -1
  78. package/dist/plugins/code-block/CodeBlockPlugin.d.ts +0 -1
  79. package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
  80. package/dist/plugins/code-block/index.d.ts +2 -1
  81. package/dist/plugins/code-block/index.d.ts.map +1 -1
  82. package/dist/plugins/code-block.mjs +1 -1
  83. package/dist/plugins/font/FontPlugin.d.ts +0 -1
  84. package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
  85. package/dist/plugins/font-size/FontSizePlugin.d.ts +0 -2
  86. package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
  87. package/dist/plugins/font-size/FontSizePopup.d.ts +3 -1
  88. package/dist/plugins/font-size/FontSizePopup.d.ts.map +1 -1
  89. package/dist/plugins/font-size.mjs +1 -1
  90. package/dist/plugins/font.mjs +1 -1
  91. package/dist/plugins/heading.mjs +1 -1
  92. package/dist/plugins/highlight.mjs +1 -1
  93. package/dist/plugins/horizontal-rule.mjs +1 -1
  94. package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
  95. package/dist/plugins/image.mjs +1 -1
  96. package/dist/plugins/list.mjs +1 -1
  97. package/dist/plugins/shared/ColorPickerPopup.d.ts +2 -1
  98. package/dist/plugins/shared/ColorPickerPopup.d.ts.map +1 -1
  99. package/dist/plugins/shared/PopupManager.d.ts +12 -2
  100. package/dist/plugins/shared/PopupManager.d.ts.map +1 -1
  101. package/dist/plugins/shared/PopupPositioning.d.ts.map +1 -1
  102. package/dist/plugins/table/TablePlugin.d.ts.map +1 -1
  103. package/dist/plugins/table.mjs +1 -1
  104. package/dist/plugins/text-color.mjs +1 -1
  105. package/dist/plugins/toolbar/ToolbarItem.d.ts +3 -2
  106. package/dist/plugins/toolbar/ToolbarItem.d.ts.map +1 -1
  107. package/dist/plugins/toolbar/ToolbarPopupController.d.ts +0 -3
  108. package/dist/plugins/toolbar/ToolbarPopupController.d.ts.map +1 -1
  109. package/dist/plugins/toolbar.mjs +2 -2
  110. package/dist/presets/PresetTypes.d.ts +1 -1
  111. package/dist/presets/PresetTypes.d.ts.map +1 -1
  112. package/dist/style/StyleRuntime.d.ts +3 -7
  113. package/dist/style/StyleRuntime.d.ts.map +1 -1
  114. package/package.json +1 -1
  115. package/dist/chunks/ColorPickerPopup-CiCLBbe9.mjs.map +0 -1
  116. package/dist/chunks/PopupPositioning-BTT-_pQ3.mjs +0 -32
  117. package/dist/chunks/PopupPositioning-BTT-_pQ3.mjs.map +0 -1
  118. package/dist/chunks/StyleRuntime-ChRjVQwL.mjs.map +0 -1
  119. package/dist/chunks/ToolbarPlugin-DpLVJ71w.mjs.map +0 -1
  120. package/dist/chunks/index--n1RGpq-.mjs.map +0 -1
  121. package/dist/chunks/index-4or5UzNO.mjs +0 -168
  122. package/dist/chunks/index-4or5UzNO.mjs.map +0 -1
  123. package/dist/chunks/index-CWltg1wK.mjs.map +0 -1
  124. package/dist/chunks/index-D515iymW.mjs.map +0 -1
  125. package/dist/chunks/index-DyzigvbZ.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { a, A } from "../chunks/index-ABlTDvEX.mjs";
1
+ import { a, A } from "../chunks/index-toj88jtL.mjs";
2
2
  export {
3
3
  a as ALIGNMENT_ICONS,
4
4
  A as AlignmentPlugin
@@ -1,4 +1,4 @@
1
- import { B } from "../chunks/index-Dk49P9N4.mjs";
1
+ import { B } from "../chunks/index-Dum8yE_t.mjs";
2
2
  export {
3
3
  B as BlockquotePlugin
4
4
  };
@@ -1,4 +1,4 @@
1
- import { C } from "../chunks/index-BAke7kNL.mjs";
1
+ import { C } from "../chunks/index-oOJo-ywB.mjs";
2
2
  export {
3
3
  C as CaretNavigationPlugin
4
4
  };
@@ -3,7 +3,6 @@ import { EditorState } from '../../state/EditorState.js';
3
3
  import { Transaction } from '../../state/Transaction.js';
4
4
  import { Plugin, PluginContext } from '../Plugin.js';
5
5
  import { CodeBlockConfig } from './CodeBlockTypes.js';
6
- export { CODE_BLOCK_SERVICE_KEY, type CodeBlockConfig, type CodeBlockKeymap, type CodeBlockService, type SyntaxHighlighter, type SyntaxToken, } from './CodeBlockTypes.js';
7
6
  export declare class CodeBlockPlugin implements Plugin {
8
7
  readonly id = "code-block";
9
8
  readonly name = "Code Block";
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAiBrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO1D,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EACN,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GAChB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyD;IACxF,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAQ7C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlC,OAAO,IAAI,IAAI;IAIf,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAgCnF,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa;IA+B9C,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,eAAe;CAQvB"}
1
+ {"version":3,"file":"CodeBlockPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/CodeBlockPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAiBrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO1D,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,qBAAqB,CAAC;AAGzF,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyD;IACxF,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAQ7C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlC,OAAO,IAAI,IAAI;IAIf,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAgCnF,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa;IA+B9C,OAAO,CAAC,gBAAgB;IAiDxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,eAAe;CAQvB"}
@@ -1,2 +1,3 @@
1
- export { CodeBlockPlugin, CODE_BLOCK_SERVICE_KEY, type CodeBlockConfig, type CodeBlockKeymap, type CodeBlockService, type SyntaxHighlighter, type SyntaxToken, } from './CodeBlockPlugin.js';
1
+ export { CodeBlockPlugin } from './CodeBlockPlugin.js';
2
+ export { CODE_BLOCK_SERVICE_KEY, type CodeBlockConfig, type CodeBlockKeymap, type CodeBlockService, type SyntaxHighlighter, type SyntaxToken, } from './CodeBlockTypes.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GAChB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/code-block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACN,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GAChB,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { c, C } from "../chunks/index-D515iymW.mjs";
1
+ import { c, C } from "../chunks/index--7pBhSF4.mjs";
2
2
  export {
3
3
  c as CODE_BLOCK_SERVICE_KEY,
4
4
  C as CodeBlockPlugin
@@ -75,7 +75,6 @@ export declare class FontPlugin implements Plugin {
75
75
  applyFont(context: PluginContext, state: EditorState, family: string): boolean;
76
76
  private removeFont;
77
77
  private injectFontFaces;
78
- private dismissPopup;
79
78
  private renderFontPopup;
80
79
  private createFontItem;
81
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FontPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/font/FontPlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIhE,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACzB;CACD;AAID,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IAClC,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IACrF;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAID,MAAM,WAAW,UAAU;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC7B;AAID,qBAAa,UAAW,YAAW,MAAM;IACxC,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,EAAE,UAAU;IAI9B,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAWlC,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,KAAK,WAAW,GAUtB;IAED,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;IAIpB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAMhD,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAS9E,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IA4CvB,OAAO,CAAC,cAAc;CAkCtB"}
1
+ {"version":3,"file":"FontPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/font/FontPlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIhE,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACzB;CACD;AAID,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IAClC,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IACrF;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAID,MAAM,WAAW,UAAU;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC7B;AAID,qBAAa,UAAW,YAAW,MAAM;IACxC,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,EAAE,UAAU;IAI9B,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAWlC,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,KAAK,WAAW,GAUtB;IAED,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;IAIpB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAMhD,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAS9E,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,cAAc;CAkCtB"}
@@ -35,7 +35,6 @@ export declare class FontSizePlugin implements Plugin {
35
35
  private readonly sizes;
36
36
  private readonly defaultSize;
37
37
  private locale;
38
- private context;
39
38
  constructor(config?: Partial<FontSizeConfig>);
40
39
  init(context: PluginContext): void;
41
40
  destroy(): void;
@@ -49,6 +48,5 @@ export declare class FontSizePlugin implements Plugin {
49
48
  * browser default (16px).
50
49
  */
51
50
  private applyDefaultSizeToContainer;
52
- private dismissPopup;
53
51
  }
54
52
  //# sourceMappingURL=FontSizePlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FontSizePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/font-size/FontSizePlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW7E,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B;CACD;AAID,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAE/C,CAAC;AAMF,MAAM,WAAW,cAAc;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CACjC;AAID,qBAAa,cAAe,YAAW,MAAM;IAC5C,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAM5C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAYlC,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,mBAAmB;IAwB3B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,YAAY;CAIpB"}
1
+ {"version":3,"file":"FontSizePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/font-size/FontSizePlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW7E,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B;CACD;AAID,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAE/C,CAAC;AAMF,MAAM,WAAW,cAAc;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CACjC;AAID,qBAAa,cAAe,YAAW,MAAM;IAC5C,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAM5C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAWlC,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,mBAAmB;IAyB3B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;CAInC"}
@@ -1,9 +1,11 @@
1
1
  import { PluginContext } from '../Plugin.js';
2
+ import { PopupCloseOptions } from '../shared/PopupManager.js';
2
3
  import { FontSizeLocale } from './FontSizeLocale.js';
3
4
  export interface FontSizePopupConfig {
4
5
  readonly sizes: readonly number[];
5
6
  readonly defaultSize: number;
6
- readonly dismissPopup: () => void;
7
+ readonly onClose: (options?: PopupCloseOptions) => void;
8
+ readonly contentElement: HTMLElement;
7
9
  readonly locale?: FontSizeLocale;
8
10
  }
9
11
  /** Builds the font-size picker DOM inside the given container. */
@@ -1 +1 @@
1
- {"version":3,"file":"FontSizePopup.d.ts","sourceRoot":"","sources":["../../../src/plugins/font-size/FontSizePopup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAU1D,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CACjC;AAID,kEAAkE;AAClE,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,mBAAmB,GACzB,IAAI,CAaN"}
1
+ {"version":3,"file":"FontSizePopup.d.ts","sourceRoot":"","sources":["../../../src/plugins/font-size/FontSizePopup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAU1D,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CACjC;AAID,kEAAkE;AAClE,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,mBAAmB,GACzB,IAAI,CAaN"}
@@ -1,4 +1,4 @@
1
- import { F } from "../chunks/index-4or5UzNO.mjs";
1
+ import { F } from "../chunks/index-BXCkjDax.mjs";
2
2
  export {
3
3
  F as FontSizePlugin
4
4
  };
@@ -1,4 +1,4 @@
1
- import { F } from "../chunks/index-CWltg1wK.mjs";
1
+ import { F } from "../chunks/index-WpbK_s_H.mjs";
2
2
  export {
3
3
  F as FontPlugin
4
4
  };
@@ -1,4 +1,4 @@
1
- import { H } from "../chunks/index--n1RGpq-.mjs";
1
+ import { H } from "../chunks/index-BjFBWBOC.mjs";
2
2
  export {
3
3
  H as HeadingPlugin
4
4
  };
@@ -1,4 +1,4 @@
1
- import { H } from "../chunks/index-D3NlpmT1.mjs";
1
+ import { H } from "../chunks/index-WrqH1wG8.mjs";
2
2
  export {
3
3
  H as HighlightPlugin
4
4
  };
@@ -1,4 +1,4 @@
1
- import { H } from "../chunks/index-CluzpB2b.mjs";
1
+ import { H } from "../chunks/index-DxbQirny.mjs";
2
2
  export {
3
3
  H as HorizontalRulePlugin
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/image/ImagePlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAU1D,OAAO,EAKN,KAAK,iBAAiB,EAEtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,KAAK,EAAE;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;SACnC,CAAC;KACF;CACD;AAID,qBAAa,WAAY,YAAW,MAAM;IACzC,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqD;IACpF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAK/C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAalC,OAAO,IAAI,IAAI;IASf,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAmBnF,OAAO,CAAC,gBAAgB;IAkHxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,sBAAsB;IAoC9B,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,gBAAgB;YA8BV,UAAU;IAwCxB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,gBAAgB;IAkHxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,mBAAmB;CAc3B"}
1
+ {"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/image/ImagePlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAU1D,OAAO,EAKN,KAAK,iBAAiB,EAEtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,KAAK,EAAE;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;SACnC,CAAC;KACF;CACD;AAID,qBAAa,WAAY,YAAW,MAAM;IACzC,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqD;IACpF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAK/C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAalC,OAAO,IAAI,IAAI;IASf,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAmBnF,OAAO,CAAC,gBAAgB;IAuHxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,sBAAsB;IAoC9B,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,gBAAgB;YA8BV,UAAU;IAwCxB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,gBAAgB;IAkHxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,mBAAmB;CAc3B"}
@@ -1,4 +1,4 @@
1
- import { D, c, I } from "../chunks/index-DyzigvbZ.mjs";
1
+ import { D, c, I } from "../chunks/index-DSAuGP4n.mjs";
2
2
  export {
3
3
  D as DEFAULT_IMAGE_KEYMAP,
4
4
  c as IMAGE_UPLOAD_SERVICE,
@@ -1,4 +1,4 @@
1
- import { L } from "../chunks/index-BqNUfq-y.mjs";
1
+ import { L } from "../chunks/index-CCyqQ0Dz.mjs";
2
2
  export {
3
3
  L as ListPlugin
4
4
  };
@@ -1,5 +1,6 @@
1
1
  import { MarkAttrRegistry } from '../../model/AttrRegistry.js';
2
2
  import { PluginContext } from '../Plugin.js';
3
+ import { PopupCloseOptions } from './PopupManager.js';
3
4
  /** Color mark type names that have `{ color: string }` attrs. */
4
5
  type ColorMarkType = {
5
6
  [K in keyof MarkAttrRegistry]: MarkAttrRegistry[K] extends {
@@ -14,7 +15,7 @@ export interface ColorPickerConfig {
14
15
  readonly resetLabel: string;
15
16
  readonly resetCommand: string;
16
17
  readonly ariaLabelPrefix: string;
17
- readonly onClose: () => void;
18
+ readonly onClose: (options?: PopupCloseOptions) => void;
18
19
  }
19
20
  /**
20
21
  * Renders an accessible color picker popup into `container`.
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPickerPopup.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/ColorPickerPopup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,iEAAiE;AACjE,KAAK,aAAa,GAAG;KACnB,CAAC,IAAI,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CACxF,CAAC,MAAM,gBAAgB,CAAC,CAAC;AAE1B,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC7B;AAID;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,iBAAiB,GACvB,IAAI,CAuCN"}
1
+ {"version":3,"file":"ColorPickerPopup.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/ColorPickerPopup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,iEAAiE;AACjE,KAAK,aAAa,GAAG;KACnB,CAAC,IAAI,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CACxF,CAAC,MAAM,gBAAgB,CAAC,CAAC;AAE1B,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACxD;AAID;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,iBAAiB,GACvB,IAAI,CAwCN"}
@@ -1,8 +1,18 @@
1
1
  import { ServiceKey } from '../Plugin.js';
2
2
  import { PopupPosition } from './PopupPositioning.js';
3
+ /** Options for overriding focus restoration when closing a popup. */
4
+ export interface PopupCloseOptions {
5
+ /**
6
+ * Override the default focus target on close.
7
+ * - `HTMLElement` → focus that element instead of `config.restoreFocusTo`
8
+ * - `null` → skip focus restoration entirely
9
+ * - `undefined` / omitted → use default `config.restoreFocusTo`
10
+ */
11
+ readonly restoreFocusTo?: HTMLElement | null;
12
+ }
3
13
  export interface PopupConfig {
4
14
  readonly anchor: HTMLElement | DOMRect;
5
- readonly content: (container: HTMLElement, close: () => void) => void;
15
+ readonly content: (container: HTMLElement, close: (options?: PopupCloseOptions) => void) => void;
6
16
  readonly className?: string;
7
17
  readonly ariaRole?: 'menu' | 'listbox' | 'grid' | 'dialog';
8
18
  readonly ariaLabel?: string;
@@ -13,7 +23,7 @@ export interface PopupConfig {
13
23
  readonly referenceNode?: Node;
14
24
  }
15
25
  export interface PopupHandle {
16
- close(): void;
26
+ close(options?: PopupCloseOptions): void;
17
27
  getElement(): HTMLElement;
18
28
  }
19
29
  export interface PopupServiceAPI {
@@ -1 +1 @@
1
- {"version":3,"file":"PopupManager.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/PopupManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAC;AAIxF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,UAAU,IAAI,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,6BAA2C,CAAC;AAaxE,qBAAa,YAAa,YAAW,eAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAO;gBAEzB,aAAa,EAAE,IAAI;IAI/B,mFAAmF;IACnF,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAgEtC,6CAA6C;IAC7C,KAAK,IAAI,IAAI;IAOb,8BAA8B;IAC9B,QAAQ,IAAI,IAAI;IAShB,mDAAmD;IACnD,MAAM,IAAI,OAAO;IAIjB,gDAAgD;IAChD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,cAAc;CAWtB"}
1
+ {"version":3,"file":"PopupManager.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/PopupManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,uBAAuB,CAAC;AAIxF,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,KAAK,IAAI,CAAC;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,UAAU,IAAI,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,6BAA2C,CAAC;AAaxE,qBAAa,YAAa,YAAW,eAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAO;gBAEzB,aAAa,EAAE,IAAI;IAI/B,mFAAmF;IACnF,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAgEtC,6CAA6C;IAC7C,KAAK,IAAI,IAAI;IAOb,8BAA8B;IAC9B,QAAQ,IAAI,IAAI;IAShB,mDAAmD;IACnD,MAAM,IAAI,OAAO;IAIjB,gDAAgD;IAChD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,cAAc;CAWtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopupPositioning.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/PopupPositioning.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAUD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CA4DjG;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAO5E"}
1
+ {"version":3,"file":"PopupPositioning.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/PopupPositioning.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAUD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAiEjG;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAO5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"TablePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/table/TablePlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAenE,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,KAAK,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,UAAU,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD;CACD;AAID,MAAM,WAAW,WAAW;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAoCD,qBAAa,WAAY,YAAW,MAAM;IACzC,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAIzC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlC,OAAO,IAAI,IAAI;IAMf,OAAO,IAAI,IAAI;IAOf,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAcpF,OAAO,CAAC,iBAAiB;IA8DzB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;CA2B3B"}
1
+ {"version":3,"file":"TablePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/table/TablePlugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAenE,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,KAAK,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,UAAU,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD;CACD;AAID,MAAM,WAAW,WAAW;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAoCD,qBAAa,WAAY,YAAW,MAAM;IACzC,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAIzC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAgBlC,OAAO,IAAI,IAAI;IAMf,OAAO,IAAI,IAAI;IAOf,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAcpF,OAAO,CAAC,iBAAiB;IAgEzB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;CA2B3B"}
@@ -1,4 +1,4 @@
1
- import { B, b, c, d, e, f, g, h, i, T, j, m, k, n, l, r, s } from "../chunks/index-BhDXjueu.mjs";
1
+ import { B, b, c, d, e, f, g, h, i, T, j, m, k, n, l, r, s } from "../chunks/index-DtRfqsq5.mjs";
2
2
  export {
3
3
  B as BORDER_COLOR_PALETTE,
4
4
  b as TABLE_LOCALE_AR,
@@ -1,4 +1,4 @@
1
- import { T } from "../chunks/index-BvqkuEY1.mjs";
1
+ import { T } from "../chunks/index-fx3KIap3.mjs";
2
2
  export {
3
3
  T as TextColorPlugin
4
4
  };
@@ -1,5 +1,6 @@
1
1
  import { EditorState } from '../../state/EditorState.js';
2
2
  import { PluginContext } from '../Plugin.js';
3
+ import { PopupCloseOptions } from '../shared/PopupManager.js';
3
4
  export interface GridPickerConfig {
4
5
  readonly maxRows: number;
5
6
  readonly maxCols: number;
@@ -51,7 +52,7 @@ interface ToolbarItemDropdown extends ToolbarItemBase {
51
52
  }
52
53
  interface ToolbarItemCustomPopup extends ToolbarItemBase {
53
54
  readonly popupType: 'custom';
54
- renderPopup(container: HTMLElement, context: PluginContext, onClose: () => void): void;
55
+ renderPopup(container: HTMLElement, context: PluginContext, onClose: (options?: PopupCloseOptions) => void): void;
55
56
  }
56
57
  export interface ToolbarItemCombobox extends Omit<ToolbarItemBase, 'icon'> {
57
58
  readonly popupType: 'combobox';
@@ -60,7 +61,7 @@ export interface ToolbarItemCombobox extends Omit<ToolbarItemBase, 'icon'> {
60
61
  /** Pure function returning the current label text. Called on every state change. */
61
62
  getLabel(state: EditorState): string;
62
63
  /** Renders the popup content when the combobox is opened. */
63
- renderPopup(container: HTMLElement, context: PluginContext, onClose: () => void): void;
64
+ renderPopup(container: HTMLElement, context: PluginContext, onClose: (options?: PopupCloseOptions) => void): void;
64
65
  }
65
66
  export type ToolbarItem = ToolbarItemNoPopup | ToolbarItemGridPicker | ToolbarItemDropdown | ToolbarItemCustomPopup | ToolbarItemCombobox;
66
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItem.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarItem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7E;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACzE,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1E,UAAU,eAAe;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IACvC,SAAS,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;CACxC;AAED,UAAU,kBAAmB,SAAQ,eAAe;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,UAAU,qBAAsB,SAAQ,eAAe;IACtD,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;CACvC;AAED,UAAU,mBAAoB,SAAQ,eAAe;IACpD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACrC;AAED,UAAU,sBAAuB,SAAQ,eAAe;IACvD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACvF;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,6DAA6D;IAC7D,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACvF;AAED,MAAM,MAAM,WAAW,GACpB,kBAAkB,GAClB,qBAAqB,GACrB,mBAAmB,GACnB,sBAAsB,GACtB,mBAAmB,CAAC;AAEvB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAStD"}
1
+ {"version":3,"file":"ToolbarItem.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarItem.ts"],"names":[],"mappings":"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"}
@@ -20,11 +20,8 @@ export declare class ToolbarPopupController {
20
20
  closeAndRestoreFocus(): void;
21
21
  destroy(): void;
22
22
  private openViaManager;
23
- private openLegacy;
24
23
  private renderPopupContent;
25
24
  private clearButtonState;
26
- private positionAndAppend;
27
- private focusFirstItem;
28
25
  private handlePopupKeydown;
29
26
  private handleDropdownKeydown;
30
27
  private handleGridKeydown;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPopupController.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarPopupController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,qBAAa,sBAAsB;IAClC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,YAAY,CAA6B;gBAErC,gBAAgB,EAAE,MAAM,OAAO,GAAG,IAAI;IAIlD,6EAA6E;IAC7E,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI5C,yCAAyC;IACzC,MAAM,IAAI,OAAO;IAIjB,oDAAoD;IACpD,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAalF,6DAA6D;IAC7D,KAAK,IAAI,IAAI;IAiBb,6DAA6D;IAC7D,oBAAoB,IAAI,IAAI;IAM5B,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,UAAU;IAuClB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,wBAAwB;CA8BhC"}
1
+ {"version":3,"file":"ToolbarPopupController.d.ts","sourceRoot":"","sources":["../../../src/plugins/toolbar/ToolbarPopupController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAkC,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,qBAAa,sBAAsB;IAClC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,YAAY,CAA6B;gBAErC,gBAAgB,EAAE,MAAM,OAAO,GAAG,IAAI;IAIlD,6EAA6E;IAC7E,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI5C,yCAAyC;IACzC,MAAM,IAAI,OAAO;IAIjB,oDAAoD;IACpD,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IASlF,6DAA6D;IAC7D,KAAK,IAAI,IAAI;IAiBb,6DAA6D;IAC7D,oBAAoB,IAAI,IAAI;IAM5B,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,wBAAwB;CA8BhC"}
@@ -1,8 +1,8 @@
1
- import { T, a } from "../chunks/ToolbarPlugin-DpLVJ71w.mjs";
1
+ import { T, e } from "../chunks/index-BcDRT4K2.mjs";
2
2
  import { f } from "../chunks/ToolbarItem-BpZggUGo.mjs";
3
3
  export {
4
4
  T as ToolbarPlugin,
5
- a as ToolbarServiceKey,
5
+ e as ToolbarServiceKey,
6
6
  f as formatShortcut
7
7
  };
8
8
  //# sourceMappingURL=toolbar.mjs.map
@@ -1,7 +1,7 @@
1
1
  import { Plugin } from '../plugins/Plugin.js';
2
2
  import { AlignmentConfig } from '../plugins/alignment/AlignmentPlugin.js';
3
3
  import { BlockquoteConfig } from '../plugins/blockquote/BlockquotePlugin.js';
4
- import { CodeBlockConfig } from '../plugins/code-block/CodeBlockPlugin.js';
4
+ import { CodeBlockConfig } from '../plugins/code-block/CodeBlockTypes.js';
5
5
  import { FontSizeConfig } from '../plugins/font-size/FontSizePlugin.js';
6
6
  import { FontConfig } from '../plugins/font/FontPlugin.js';
7
7
  import { HeadingConfig } from '../plugins/heading/HeadingPlugin.js';
@@ -1 +1 @@
1
- {"version":3,"file":"PresetTypes.d.ts","sourceRoot":"","sources":["../../src/presets/PresetTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PresetTypes.d.ts","sourceRoot":"","sources":["../../src/presets/PresetTypes.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  /**
2
2
  * Runtime style abstraction.
3
3
  *
4
- * - `inline` mode writes directly to `HTMLElement.style` (legacy behavior)
5
- * - `strict` mode writes no inline styles and instead assigns token attributes
6
- * backed by dynamic CSS rules in a stylesheet.
4
+ * Writes no inline styles and instead assigns token attributes
5
+ * backed by dynamic CSS rules in a stylesheet.
6
+ * Elements outside a registered root fall back to inline styles.
7
7
  */
8
- export type RuntimeStyleMode = 'inline' | 'strict';
9
8
  export interface StyleRootOptions {
10
- readonly mode: RuntimeStyleMode;
11
9
  readonly nonce?: string;
12
10
  readonly sheet?: CSSStyleSheet | null;
13
11
  }
@@ -28,8 +26,6 @@ export declare function setStyleProperties(el: HTMLElement, properties: Readonly
28
26
  export declare function setStyleText(el: HTMLElement, cssText: string): void;
29
27
  /** Merges a cssText fragment into current element styles. */
30
28
  export declare function appendStyleText(el: HTMLElement, cssText: string): void;
31
- /** Alias for legacy `setAttribute('style', ...)` sites. */
32
- export declare function setStyleAttribute(el: HTMLElement, cssText: string): void;
33
29
  /** Returns serialized styles for an element. */
34
30
  export declare function getStyleText(el: HTMLElement): string;
35
31
  /** Returns the configured CSP nonce for the node's style root (if any). */
@@ -1 +1 @@
1
- {"version":3,"file":"StyleRuntime.d.ts","sourceRoot":"","sources":["../../src/style/StyleRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAcvC,2EAA2E;AAC3E,wBAAgB,uBAAuB,IAAI,aAAa,GAAG,IAAI,CAO9D;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAWlF;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAOzD;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOvF;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE3E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CACjC,EAAE,EAAE,WAAW,EACf,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,GAC7D,IAAI,CASN;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOnE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQtE;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAExE;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAIpD;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAInE"}
1
+ {"version":3,"file":"StyleRuntime.d.ts","sourceRoot":"","sources":["../../src/style/StyleRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAavC,2EAA2E;AAC3E,wBAAgB,uBAAuB,IAAI,aAAa,GAAG,IAAI,CAO9D;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAUlF;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAOzD;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOvF;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE3E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CACjC,EAAE,EAAE,WAAW,EACf,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,GAC7D,IAAI,CASN;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOnE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQtE;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAIpD;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAInE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notectl/core",
3
- "version": "1.7.2",
3
+ "version": "1.7.3",
4
4
  "description": "A modern and accessible rich text editor shipped as a single Web Component. Immutable state, transaction-based architecture, and a plugin system that powers every feature.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorPickerPopup-CiCLBbe9.mjs","sources":["../../src/editor/styles/color-picker.ts","../../src/plugins/shared/ColorMarkOperations.ts","../../src/plugins/shared/ColorPickerPopup.ts"],"sourcesContent":["/** Color picker popup styles (text-color + highlight plugins). */\nexport const COLOR_PICKER_CSS = `\n/* Color Picker Popup */\n.notectl-color-picker {\n\tpadding: 8px;\n\tmin-width: 240px;\n}\n\n.notectl-color-picker__default {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 6px 12px;\n\tmargin-bottom: 8px;\n\tborder: 1px solid var(--notectl-border);\n\tborder-radius: 4px;\n\tbackground: var(--notectl-bg);\n\tcursor: pointer;\n\tfont-size: 13px;\n\tcolor: var(--notectl-fg);\n\ttext-align: center;\n}\n\n.notectl-color-picker__default:hover {\n\tbackground: var(--notectl-hover-bg);\n}\n\n.notectl-color-picker__grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(10, 1fr);\n\tgap: 3px;\n}\n\n.notectl-color-picker__grid [role=\"row\"] {\n\tdisplay: contents;\n}\n\n.notectl-color-picker__swatch {\n\twidth: 22px;\n\theight: 22px;\n\tborder: 1px solid transparent;\n\tborder-radius: 3px;\n\tpadding: 0;\n\tcursor: pointer;\n\ttransition: transform 0.1s;\n}\n\n.notectl-color-picker__swatch:hover,\n.notectl-color-picker__swatch:focus-visible {\n\ttransform: scale(1.25);\n\tz-index: 1;\n}\n\n.notectl-color-picker__swatch:focus-visible {\n\toutline: 2px solid var(--notectl-focus-ring);\n\toutline-offset: 1px;\n}\n\n.notectl-color-picker__swatch--active {\n\tborder: 2px solid var(--notectl-primary-fg);\n\tborder-radius: 3px;\n}\n\n.notectl-toolbar-btn--textColor .notectl-toolbar-btn__color-indicator {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 3px;\n\tmargin-top: 1px;\n\tborder-radius: 1px;\n}\n`;\n","/**\n * Shared color mark operations for color-based mark plugins.\n * All functions are parameterized by mark type name so they work\n * identically for TextColor, Highlight, or any future color mark.\n *\n * Delegates to the generic AttributedMarkCommands helpers for the\n * collapsed-vs-range branching logic.\n */\n\nimport {\n\tapplyAttributedMark,\n\tgetMarkAttrAtSelection,\n\tremoveAttributedMark,\n} from '../../commands/AttributedMarkCommands.js';\nimport type { MarkAttrRegistry } from '../../model/AttrRegistry.js';\nimport { markType } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { PluginContext } from '../Plugin.js';\nimport { isValidCSSColor } from './ColorValidation.js';\n\n/** Color mark type names that have `{ color: string }` attrs. */\ntype ColorMarkType = {\n\t[K in keyof MarkAttrRegistry]: MarkAttrRegistry[K] extends { color: string } ? K : never;\n}[keyof MarkAttrRegistry];\n\n/**\n * Returns the active color value for the given mark type at the current\n * selection, or `null` if the mark is not present.\n */\nexport function getActiveColor(state: EditorState, markTypeName: ColorMarkType): string | null {\n\treturn getMarkAttrAtSelection(state, markTypeName, (m) => m.attrs.color ?? null);\n}\n\n/** Returns `true` when the given color mark is active at the current selection. */\nexport function isColorMarkActive(state: EditorState, markTypeName: ColorMarkType): boolean {\n\treturn getActiveColor(state, markTypeName) !== null;\n}\n\n/**\n * Applies the given color to the selection. For collapsed selections,\n * sets stored marks. For range selections, removes then re-adds the mark.\n */\nexport function applyColorMark(\n\tcontext: PluginContext,\n\tstate: EditorState,\n\tmarkTypeName: ColorMarkType,\n\tcolor: string,\n): boolean {\n\tif (!isValidCSSColor(color)) return false;\n\n\tconst mark = { type: markType(markTypeName), attrs: { color } };\n\tconst tr = applyAttributedMark(state, mark);\n\tif (!tr) return false;\n\n\tcontext.dispatch(tr);\n\treturn true;\n}\n\n/**\n * Removes the given color mark from the selection.\n * Returns `false` when the mark was not present.\n */\nexport function removeColorMark(\n\tcontext: PluginContext,\n\tstate: EditorState,\n\tmarkTypeName: ColorMarkType,\n): boolean {\n\tconst tr = removeAttributedMark(state, markType(markTypeName));\n\tif (!tr) return false;\n\n\tcontext.dispatch(tr);\n\treturn true;\n}\n","/**\n * Shared color picker popup rendering with WAI-ARIA grid keyboard navigation.\n * Used by TextColorPlugin and HighlightPlugin.\n * Delegates grid rendering to the shared ColorGrid module.\n */\n\nimport type { MarkAttrRegistry } from '../../model/AttrRegistry.js';\nimport type { PluginContext } from '../Plugin.js';\nimport { renderColorGrid } from './ColorGrid.js';\nimport { applyColorMark, getActiveColor } from './ColorMarkOperations.js';\n\n/** Color mark type names that have `{ color: string }` attrs. */\ntype ColorMarkType = {\n\t[K in keyof MarkAttrRegistry]: MarkAttrRegistry[K] extends { color: string } ? K : never;\n}[keyof MarkAttrRegistry];\n\n/** Configuration for `renderColorPickerPopup`. */\nexport interface ColorPickerConfig {\n\treadonly markType: ColorMarkType;\n\treadonly colors: readonly string[];\n\treadonly columns: number;\n\treadonly resetLabel: string;\n\treadonly resetCommand: string;\n\treadonly ariaLabelPrefix: string;\n\treadonly onClose: () => void;\n}\n\nconst COLUMNS = 10;\n\n/**\n * Renders an accessible color picker popup into `container`.\n *\n * Features:\n * - WAI-ARIA `role=\"grid\"` with row/gridcell structure\n * - Arrow key navigation (wraps around, clamps on partial last row)\n * - Enter/Space selects color and closes popup\n * - Escape closes popup\n * - Roving tabindex on swatches\n */\nexport function renderColorPickerPopup(\n\tcontainer: HTMLElement,\n\tcontext: PluginContext,\n\tconfig: ColorPickerConfig,\n): void {\n\tcontainer.classList.add('notectl-color-picker');\n\n\tconst state = context.getState();\n\tconst activeColor: string | null = getActiveColor(state, config.markType);\n\tconst columns: number = config.columns || COLUMNS;\n\n\t// --- Reset button ---\n\tconst resetBtn: HTMLButtonElement = document.createElement('button');\n\tresetBtn.type = 'button';\n\tresetBtn.className = 'notectl-color-picker__default';\n\tresetBtn.textContent = config.resetLabel;\n\tresetBtn.addEventListener('mousedown', (e: MouseEvent) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tcontext.executeCommand(config.resetCommand);\n\t\tconfig.onClose();\n\t});\n\tresetBtn.addEventListener('keydown', (e: KeyboardEvent) => {\n\t\tif (e.key === 'Escape') {\n\t\t\te.preventDefault();\n\t\t\tconfig.onClose();\n\t\t}\n\t});\n\tcontainer.appendChild(resetBtn);\n\n\t// --- Color grid (delegated to shared ColorGrid) ---\n\trenderColorGrid(container, {\n\t\tcolors: config.colors,\n\t\tcolumns,\n\t\tariaLabel: `${config.ariaLabelPrefix} color picker`,\n\t\tariaLabelPrefix: config.ariaLabelPrefix,\n\t\tactiveColor,\n\t\tonSelect: (color: string) => {\n\t\t\tapplyColorMark(context, context.getState(), config.markType, color);\n\t\t\tconfig.onClose();\n\t\t},\n\t\tonClose: config.onClose,\n\t});\n}\n"],"names":["COLOR_PICKER_CSS","getActiveColor","state","markTypeName","getMarkAttrAtSelection","m","attrs","color","isColorMarkActive","removeColorMark","context","tr","removeAttributedMark","markType","dispatch","renderColorPickerPopup","container","config","classList","add","activeColor","getState","columns","resetBtn","document","createElement","type","className","textContent","resetLabel","addEventListener","e","preventDefault","stopPropagation","executeCommand","resetCommand","onClose","key","appendChild","renderColorGrid","colors","ariaLabel","ariaLabelPrefix","onSelect","isValidCSSColor","mark","applyAttributedMark"],"mappings":";;;;AACO,MAAMA,IAAmB;AC4BzB,SAASC,EAAeC,IAAoBC,IAAAA;AAClD,SAAOC,EAAuBF,IAAOC,IAAeE,CAAAA,OAAMA,GAAEC,MAAMC,SAAS,IAAA;AAC5E;AAGO,SAASC,EAAkBN,IAAoBC,IAAAA;AACrD,SAA+C,SAAxCF,EAAeC,IAAOC;AAC9B;AA0BO,SAASM,EACfC,IACAR,IACAC;AAEA,QAAMQ,KAAKC,EAAqBV,IAAOW,EAASV,EAAAA,CAAAA;AAChD,SAAA,CAAA,CAAKQ,OAELD,GAAQI,SAASH;AAElB;ACjCO,SAASI,EACfC,IACAN,IACAO,IAAAA;AAEAD,EAAAA,GAAUE,UAAUC,IAAI;AAExB,QACMC,KAA6BnB,EADrBS,GAAQW,YACmCJ,GAAOJ,QAAAA,GAC1DS,KAAkBL,GAAOK,WArBhB,IAwBTC,KAA8BC,SAASC,cAAc,QAAA;AAC3DF,EAAAA,GAASG,OAAO,UAChBH,GAASI,YAAY,iCACrBJ,GAASK,cAAcX,GAAOY,YAC9BN,GAASO,iBAAiB,aAAcC,CAAAA,OAAAA;AACvCA,IAAAA,GAAEC,kBACFD,GAAEE,gBAAAA,GACFvB,GAAQwB,eAAejB,GAAOkB,YAAAA,GAC9BlB,GAAOmB;MAERb,GAASO,iBAAiB,WAAYC,CAAAA,OAAAA;AACvB,iBAAVA,GAAEM,QACLN,GAAEC,eAAAA,GACFf,GAAOmB;MAGTpB,GAAUsB,YAAYf,KAGtBgB,EAAgBvB,IAAW,EAC1BwB,QAAQvB,GAAOuB,QACflB,SAAAA,IACAmB,WAAW,GAAGxB,GAAOyB,eAAAA,iBACrBA,iBAAiBzB,GAAOyB,iBACxBtB,iBACAuB,UAAWpC,CAAAA,OAAAA;AAAAA,MDlCN,SACNG,IACAR,IACAC,IACAI,IAAAA;AAEA,WAAKqC,EAAgBrC,EAAAA,EAAQ;AAE7B,YAAMsC,KAAO,EAAEnB,MAAMb,EAASV,EAAAA,GAAeG,OAAO,EAAEC,OAAAA,GAAAA,EAAAA,GAChDI,KAAKmC,EAAoB5C,IAAO2C,EAAAA;AACjClC,MAAAA,MAELD,GAAQI,SAASH,EAAAA;AAAAA,IAElB,GCqBkBD,IAASA,GAAQW,SAAAA,GAAYJ,GAAOJ,UAAUN,EAAAA,GAC7DU,GAAOmB;KAERA,SAASnB,GAAOmB;AAElB;"}
@@ -1,32 +0,0 @@
1
- import { s as t } from "./StyleRuntime-ChRjVQwL.mjs";
2
- function o(o2, e2, i) {
3
- const f = i.offset ?? 2, s = window.innerWidth, n = window.innerHeight, h = { position: "fixed", zIndex: "10000" };
4
- switch (i.position) {
5
- case "below-start": {
6
- let t2 = e2.bottom + f, i2 = e2.left;
7
- i2 + o2.offsetWidth > s - 4 && (i2 = s - o2.offsetWidth - 4), t2 + o2.offsetHeight > n - 4 && (t2 = e2.top - o2.offsetHeight - f), i2 < 4 && (i2 = 4), t2 < 4 && (t2 = 4), h.top = `${t2}px`, h.left = `${i2}px`, h.right = "auto";
8
- break;
9
- }
10
- case "below-end": {
11
- let t2 = e2.bottom + f;
12
- const i2 = s - e2.right;
13
- t2 + o2.offsetHeight > n - 4 && (t2 = e2.top - o2.offsetHeight - f), t2 < 4 && (t2 = 4), h.top = `${t2}px`, h.right = `${i2}px`, h.left = "auto";
14
- break;
15
- }
16
- case "right": {
17
- let t2 = e2.right + f, i2 = e2.top;
18
- t2 + o2.offsetWidth > s - 4 && (t2 = e2.left - o2.offsetWidth - f), i2 + o2.offsetHeight > n - 4 && (i2 = n - o2.offsetHeight - 4), t2 < 4 && (t2 = 4), i2 < 4 && (i2 = 4), h.top = `${i2}px`, h.left = `${t2}px`, h.right = "auto";
19
- break;
20
- }
21
- }
22
- t(o2, h);
23
- }
24
- function e(t2, o2) {
25
- const e2 = o2.getRootNode();
26
- e2 instanceof ShadowRoot ? e2.appendChild(t2) : document.body.appendChild(t2);
27
- }
28
- export {
29
- e as a,
30
- o as p
31
- };
32
- //# sourceMappingURL=PopupPositioning-BTT-_pQ3.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PopupPositioning-BTT-_pQ3.mjs","sources":["../../src/plugins/shared/PopupPositioning.ts"],"sourcesContent":["/**\n * Shared popup positioning logic. Positions a popup element relative to an\n * anchor rectangle, clamping to the viewport. Also provides a shadow DOM-aware\n * append helper.\n */\n\nimport { setStyleProperties } from '../../style/StyleRuntime.js';\n\n// --- Types ---\n\nexport type PopupPosition = 'below-start' | 'below-end' | 'right';\n\nexport interface PositionOptions {\n\treadonly position: PopupPosition;\n\treadonly offset?: number;\n}\n\n// --- Constants ---\n\nconst DEFAULT_OFFSET = 2;\nconst Z_INDEX = '10000';\nconst POPUP_MIN_MARGIN = 4;\n\n// --- Positioning ---\n\n/**\n * Positions a popup element relative to the given anchor rectangle.\n * Uses fixed positioning and clamps to the viewport edges.\n */\nexport function positionPopup(popup: HTMLElement, anchor: DOMRect, options: PositionOptions): void {\n\tconst offset: number = options.offset ?? DEFAULT_OFFSET;\n\tconst vpWidth: number = window.innerWidth;\n\tconst vpHeight: number = window.innerHeight;\n\tconst styles: Record<string, string> = {\n\t\tposition: 'fixed',\n\t\tzIndex: Z_INDEX,\n\t};\n\n\tswitch (options.position) {\n\t\tcase 'below-start': {\n\t\t\tlet top: number = anchor.bottom + offset;\n\t\t\tlet left: number = anchor.left;\n\n\t\t\tif (left + popup.offsetWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\tleft = vpWidth - popup.offsetWidth - POPUP_MIN_MARGIN;\n\t\t\t}\n\t\t\tif (top + popup.offsetHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\ttop = anchor.top - popup.offsetHeight - offset;\n\t\t\t}\n\t\t\tif (left < POPUP_MIN_MARGIN) left = POPUP_MIN_MARGIN;\n\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\tstyles.top = `${top}px`;\n\t\t\tstyles.left = `${left}px`;\n\t\t\tstyles.right = 'auto';\n\t\t\tbreak;\n\t\t}\n\t\tcase 'below-end': {\n\t\t\tlet top: number = anchor.bottom + offset;\n\t\t\tconst rightEdge: number = vpWidth - anchor.right;\n\n\t\t\tif (top + popup.offsetHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\ttop = anchor.top - popup.offsetHeight - offset;\n\t\t\t}\n\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\tstyles.top = `${top}px`;\n\t\t\tstyles.right = `${rightEdge}px`;\n\t\t\tstyles.left = 'auto';\n\t\t\tbreak;\n\t\t}\n\t\tcase 'right': {\n\t\t\tlet left: number = anchor.right + offset;\n\t\t\tlet top: number = anchor.top;\n\n\t\t\tif (left + popup.offsetWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\tleft = anchor.left - popup.offsetWidth - offset;\n\t\t\t}\n\t\t\tif (top + popup.offsetHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\ttop = vpHeight - popup.offsetHeight - POPUP_MIN_MARGIN;\n\t\t\t}\n\t\t\tif (left < POPUP_MIN_MARGIN) left = POPUP_MIN_MARGIN;\n\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\tstyles.top = `${top}px`;\n\t\t\tstyles.left = `${left}px`;\n\t\t\tstyles.right = 'auto';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tsetStyleProperties(popup, styles);\n}\n\n/**\n * Appends an element to the appropriate root: the shadow root if the\n * reference node lives inside one, otherwise `document.body`.\n */\nexport function appendToRoot(element: HTMLElement, referenceNode: Node): void {\n\tconst root: Node = referenceNode.getRootNode();\n\tif (root instanceof ShadowRoot) {\n\t\troot.appendChild(element);\n\t} else {\n\t\tdocument.body.appendChild(element);\n\t}\n}\n"],"names":["positionPopup","popup","anchor","options","offset","vpWidth","window","innerWidth","vpHeight","innerHeight","styles","position","zIndex","top","bottom","left","offsetWidth","offsetHeight","right","rightEdge","setStyleProperties","appendToRoot","element","referenceNode","root","getRootNode","ShadowRoot","appendChild","document","body"],"mappings":";AA6BO,SAASA,EAAcC,IAAoBC,IAAiBC,GAAAA;AAClE,QAAMC,IAAiBD,EAAQC,UAXT,GAYhBC,IAAkBC,OAAOC,YACzBC,IAAmBF,OAAOG,aAC1BC,IAAiC,EACtCC,UAAU,SACVC,QAfc;AAkBf,UAAQT,EAAQQ;IACf,KAAK,eAAe;AACnB,UAAIE,KAAcX,GAAOY,SAASV,GAC9BW,KAAeb,GAAOa;AAEtBA,MAAAA,KAAOd,GAAMe,cAAcX,IAtBT,MAuBrBU,KAAOV,IAAUJ,GAAMe,cAvBF,IAyBlBH,KAAMZ,GAAMgB,eAAeT,IAzBT,MA0BrBK,KAAMX,GAAOW,MAAMZ,GAAMgB,eAAeb,IAErCW,KA5BkB,MA4BOA,KA5BP,IA6BlBF,KA7BkB,MA6BMA,KA7BN,IA8BtBH,EAAOG,MAAM,GAAGA,EAAAA,MAChBH,EAAOK,OAAO,GAAGA,EAAAA,MACjBL,EAAOQ,QAAQ;AACf;AAAA,IACD;AAAA,IACA,KAAK,aAAa;AACjB,UAAIL,KAAcX,GAAOY,SAASV;AAClC,YAAMe,KAAoBd,IAAUH,GAAOgB;AAEvCL,MAAAA,KAAMZ,GAAMgB,eAAeT,IAvCT,MAwCrBK,KAAMX,GAAOW,MAAMZ,GAAMgB,eAAeb,IAErCS,KA1CkB,MA0CMA,KA1CN,IA2CtBH,EAAOG,MAAM,GAAGA,EAAAA,MAChBH,EAAOQ,QAAQ,GAAGC,EAAAA,MAClBT,EAAOK,OAAO;AACd;AAAA,IACD;AAAA,IACA,KAAK,SAAS;AACb,UAAIA,KAAeb,GAAOgB,QAAQd,GAC9BS,KAAcX,GAAOW;AAErBE,MAAAA,KAAOd,GAAMe,cAAcX,IApDT,MAqDrBU,KAAOb,GAAOa,OAAOd,GAAMe,cAAcZ,IAEtCS,KAAMZ,GAAMgB,eAAeT,IAvDT,MAwDrBK,KAAML,IAAWP,GAAMgB,eAxDF,IA0DlBF,KA1DkB,MA0DOA,KA1DP,IA2DlBF,KA3DkB,MA2DMA,KA3DN,IA4DtBH,EAAOG,MAAM,GAAGA,EAAAA,MAChBH,EAAOK,OAAO,GAAGA,EAAAA,MACjBL,EAAOQ,QAAQ;AACf;AAAA,IACD;AAAA;AAGDE,IAAmBnB,IAAOS;AAC3B;AAMO,SAASW,EAAaC,IAAsBC,IAAAA;AAClD,QAAMC,KAAaD,GAAcE;AAC7BD,EAAAA,cAAgBE,aACnBF,GAAKG,YAAYL,EAAAA,IAEjBM,SAASC,KAAKF,YAAYL,EAAAA;AAE5B;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StyleRuntime-ChRjVQwL.mjs","sources":["../../src/style/StyleRuntime.ts"],"sourcesContent":["/**\n * Runtime style abstraction.\n *\n * - `inline` mode writes directly to `HTMLElement.style` (legacy behavior)\n * - `strict` mode writes no inline styles and instead assigns token attributes\n * backed by dynamic CSS rules in a stylesheet.\n */\n\nexport type RuntimeStyleMode = 'inline' | 'strict';\n\nexport interface StyleRootOptions {\n\treadonly mode: RuntimeStyleMode;\n\treadonly nonce?: string;\n\treadonly sheet?: CSSStyleSheet | null;\n}\n\ntype StyleRoot = ShadowRoot | Document;\n\ninterface RootConfig {\n\treadonly mode: RuntimeStyleMode;\n\treadonly nonce?: string;\n\treadonly sheet: CSSStyleSheet | null;\n}\n\nconst STYLE_TOKEN_ATTR = 'data-notectl-style-token';\nconst STYLE_ELEMENT_ATTR = 'data-notectl-runtime-styles';\n\nconst rootConfigs: WeakMap<StyleRoot, RootConfig> = new WeakMap();\nconst strictEngines: WeakMap<StyleRoot, StrictStyleEngine> = new WeakMap();\n\n/** Creates a constructable stylesheet when the environment supports it. */\nexport function createRuntimeStyleSheet(): CSSStyleSheet | null {\n\tif (typeof CSSStyleSheet === 'undefined') return null;\n\ttry {\n\t\treturn new CSSStyleSheet();\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n/** Registers styling mode for a root (shadow root or document). */\nexport function registerStyleRoot(root: StyleRoot, options: StyleRootOptions): void {\n\tconst previous = strictEngines.get(root);\n\tif (previous) {\n\t\tprevious.destroy();\n\t\tstrictEngines.delete(root);\n\t}\n\trootConfigs.set(root, {\n\t\tmode: options.mode,\n\t\tnonce: options.nonce,\n\t\tsheet: options.sheet ?? null,\n\t});\n}\n\n/** Unregisters root styling and tears down strict runtime state if present. */\nexport function unregisterStyleRoot(root: StyleRoot): void {\n\tconst engine = strictEngines.get(root);\n\tif (engine) {\n\t\tengine.destroy();\n\t\tstrictEngines.delete(root);\n\t}\n\trootConfigs.delete(root);\n}\n\n/** Sets a single style property. Empty value removes the property. */\nexport function setStyleProperty(el: HTMLElement, property: string, value: string): void {\n\tconst config = resolveConfig(el);\n\tif (!config || config.mode === 'inline') {\n\t\tsetInlineProperty(el, property, value);\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).setProperty(el, property, value);\n}\n\n/** Removes a single style property. */\nexport function removeStyleProperty(el: HTMLElement, property: string): void {\n\tsetStyleProperty(el, property, '');\n}\n\n/** Sets multiple style properties in one call. */\nexport function setStyleProperties(\n\tel: HTMLElement,\n\tproperties: Readonly<Record<string, string | undefined | null>>,\n): void {\n\tconst config = resolveConfig(el);\n\tif (!config || config.mode === 'inline') {\n\t\tfor (const [property, value] of Object.entries(properties)) {\n\t\t\tsetInlineProperty(el, property, value ?? '');\n\t\t}\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).setProperties(el, properties);\n}\n\n/** Replaces the element style text. */\nexport function setStyleText(el: HTMLElement, cssText: string): void {\n\tconst config = resolveConfig(el);\n\tif (!config || config.mode === 'inline') {\n\t\tel.style.cssText = cssText;\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).setStyleText(el, cssText);\n}\n\n/** Merges a cssText fragment into current element styles. */\nexport function appendStyleText(el: HTMLElement, cssText: string): void {\n\tconst config = resolveConfig(el);\n\tif (!config || config.mode === 'inline') {\n\t\tconst current = el.style.cssText;\n\t\tel.style.cssText = current ? `${current}; ${cssText}` : cssText;\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).appendStyleText(el, cssText);\n}\n\n/** Alias for legacy `setAttribute('style', ...)` sites. */\nexport function setStyleAttribute(el: HTMLElement, cssText: string): void {\n\tsetStyleText(el, cssText);\n}\n\n/** Returns serialized styles for an element. */\nexport function getStyleText(el: HTMLElement): string {\n\tconst config = resolveConfig(el);\n\tif (!config || config.mode === 'inline') return el.style.cssText;\n\treturn getStrictEngine(config.root, config.settings).getStyleText(el);\n}\n\n/** Returns the configured CSP nonce for the node's style root (if any). */\nexport function getStyleNonceForNode(node: Node): string | undefined {\n\tconst root = resolveStyleRootFromNode(node);\n\tif (!root) return undefined;\n\treturn rootConfigs.get(root)?.nonce;\n}\n\nfunction setInlineProperty(el: HTMLElement, property: string, value: string): void {\n\tif (property.startsWith('--')) {\n\t\tif (value) {\n\t\t\tel.style.setProperty(property, value);\n\t\t} else {\n\t\t\tel.style.removeProperty(property);\n\t\t}\n\t\treturn;\n\t}\n\tif (property.includes('-')) {\n\t\tif (value) {\n\t\t\tel.style.setProperty(property, value);\n\t\t} else {\n\t\t\tel.style.removeProperty(property);\n\t\t}\n\t\treturn;\n\t}\n\t(el.style as CSSStyleDeclaration & Record<string, string>)[property] = value;\n}\n\nfunction resolveConfig(\n\tel: HTMLElement,\n): { root: StyleRoot; mode: RuntimeStyleMode; settings: RootConfig } | null {\n\tconst root = resolveStyleRoot(el);\n\tif (!root) return null;\n\tconst settings = rootConfigs.get(root);\n\tif (!settings) return null;\n\treturn { root, mode: settings.mode, settings };\n}\n\nfunction resolveStyleRoot(el: HTMLElement): StyleRoot | null {\n\treturn resolveStyleRootFromNode(el);\n}\n\nfunction getStrictEngine(root: StyleRoot, config: RootConfig): StrictStyleEngine {\n\tconst cached = strictEngines.get(root);\n\tif (cached) return cached;\n\tconst engine = new StrictStyleEngine(root, config);\n\tstrictEngines.set(root, engine);\n\treturn engine;\n}\n\nfunction isShadowRoot(value: unknown): value is ShadowRoot {\n\treturn typeof ShadowRoot !== 'undefined' && value instanceof ShadowRoot;\n}\n\nfunction isDocument(value: unknown): value is Document {\n\treturn typeof Document !== 'undefined' && value instanceof Document;\n}\n\nfunction resolveStyleRootFromNode(node: Node): StyleRoot | null {\n\tconst rootNode: Node = isShadowRoot(node) || isDocument(node) ? node : node.getRootNode();\n\tif (isShadowRoot(rootNode)) return rootNode;\n\tif (isDocument(rootNode)) return rootNode;\n\tif (typeof document !== 'undefined') return document;\n\treturn null;\n}\n\nclass StrictStyleEngine {\n\tprivate readonly declarationByElement: WeakMap<HTMLElement, Map<string, string>> = new WeakMap();\n\tprivate readonly tokenByDeclaration: Map<string, string> = new Map();\n\tprivate readonly declarationByToken: Map<string, string> = new Map();\n\tprivate readonly tokenRefCount: Map<string, number> = new Map();\n\tprivate readonly tokenByElement: WeakMap<HTMLElement, string> = new WeakMap();\n\tprivate tokenCounter = 0;\n\tprivate readonly root: StyleRoot;\n\tprivate readonly nonce?: string;\n\tprivate sheet: CSSStyleSheet | null;\n\tprivate fallbackStyleElement: HTMLStyleElement | null = null;\n\tprivate ownsAdoptedSheet = false;\n\n\tconstructor(root: StyleRoot, config: RootConfig) {\n\t\tthis.root = root;\n\t\tthis.nonce = config.nonce;\n\t\tthis.sheet = config.sheet ?? null;\n\t}\n\n\tdestroy(): void {\n\t\tthis.clearRuntimeRules();\n\t\tif (this.ownsAdoptedSheet && this.sheet && 'adoptedStyleSheets' in this.root) {\n\t\t\tthis.root.adoptedStyleSheets = this.root.adoptedStyleSheets.filter(\n\t\t\t\t(adoptedSheet: CSSStyleSheet): boolean => adoptedSheet !== this.sheet,\n\t\t\t);\n\t\t}\n\t\tthis.fallbackStyleElement?.remove();\n\t\tthis.fallbackStyleElement = null;\n\t\tthis.sheet = null;\n\t\tthis.ownsAdoptedSheet = false;\n\t\tthis.tokenByDeclaration.clear();\n\t\tthis.declarationByToken.clear();\n\t\tthis.tokenRefCount.clear();\n\t\tthis.tokenCounter = 0;\n\t}\n\n\tsetProperty(el: HTMLElement, property: string, value: string): void {\n\t\tconst declarations = this.getOrCreateDeclarations(el);\n\t\tconst name = normalizePropertyName(property);\n\t\tif (!value) {\n\t\t\tdeclarations.delete(name);\n\t\t} else {\n\t\t\tdeclarations.set(name, value);\n\t\t}\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tsetProperties(\n\t\tel: HTMLElement,\n\t\tproperties: Readonly<Record<string, string | undefined | null>>,\n\t): void {\n\t\tconst declarations = this.getOrCreateDeclarations(el);\n\t\tfor (const [property, value] of Object.entries(properties)) {\n\t\t\tconst name = normalizePropertyName(property);\n\t\t\tif (!value) {\n\t\t\t\tdeclarations.delete(name);\n\t\t\t} else {\n\t\t\t\tdeclarations.set(name, value);\n\t\t\t}\n\t\t}\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tsetStyleText(el: HTMLElement, cssText: string): void {\n\t\tconst declarations = parseStyleText(cssText);\n\t\tif (declarations.size === 0) {\n\t\t\tthis.clearElementStyles(el);\n\t\t\treturn;\n\t\t}\n\t\tthis.declarationByElement.set(el, declarations);\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tappendStyleText(el: HTMLElement, cssText: string): void {\n\t\tconst parsed = parseStyleText(cssText);\n\t\tif (parsed.size === 0) return;\n\t\tconst declarations = this.getOrCreateDeclarations(el);\n\t\tfor (const [property, value] of parsed) {\n\t\t\tdeclarations.set(property, value);\n\t\t}\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tgetStyleText(el: HTMLElement): string {\n\t\tconst declarations = this.declarationByElement.get(el);\n\t\tif (!declarations || declarations.size === 0) return '';\n\t\treturn serializeDeclarations(declarations);\n\t}\n\n\tprivate getOrCreateDeclarations(el: HTMLElement): Map<string, string> {\n\t\tconst existing = this.declarationByElement.get(el);\n\t\tif (existing) return existing;\n\t\tconst created = new Map<string, string>();\n\t\tthis.declarationByElement.set(el, created);\n\t\treturn created;\n\t}\n\n\tprivate syncElementToken(el: HTMLElement, declarations: Map<string, string>): void {\n\t\tconst previousToken = this.tokenByElement.get(el);\n\t\tif (declarations.size === 0) {\n\t\t\tthis.clearElementStyles(el);\n\t\t\treturn;\n\t\t}\n\n\t\tconst declarationText = serializeDeclarations(declarations);\n\t\tlet token = this.tokenByDeclaration.get(declarationText);\n\t\tif (!token) {\n\t\t\ttoken = `s${this.tokenCounter.toString(36)}`;\n\t\t\tthis.tokenCounter += 1;\n\t\t\tthis.tokenByDeclaration.set(declarationText, token);\n\t\t\tthis.declarationByToken.set(token, declarationText);\n\t\t\tthis.insertRule(token, declarationText);\n\t\t}\n\t\tif (previousToken !== token) {\n\t\t\tthis.retainToken(token);\n\t\t\tif (previousToken) {\n\t\t\t\tthis.releaseToken(previousToken);\n\t\t\t}\n\t\t\tthis.tokenByElement.set(el, token);\n\t\t}\n\t\tel.setAttribute(STYLE_TOKEN_ATTR, token);\n\t}\n\n\tprivate insertRule(token: string, declarationText: string): void {\n\t\tconst rule = `${buildTokenSelector(token)} { ${declarationText}; }`;\n\t\tconst sheet = this.ensureSheet();\n\t\tif (!sheet) return;\n\t\ttry {\n\t\t\tsheet.insertRule(rule, sheet.cssRules.length);\n\t\t} catch {\n\t\t\t// Ignore malformed declarations from third-party plugin attrs.\n\t\t}\n\t}\n\n\tprivate ensureSheet(): CSSStyleSheet | null {\n\t\tif (this.sheet) return this.sheet;\n\n\t\tif (typeof CSSStyleSheet !== 'undefined') {\n\t\t\ttry {\n\t\t\t\tconst sheet = new CSSStyleSheet();\n\t\t\t\tif ('adoptedStyleSheets' in this.root) {\n\t\t\t\t\tconst adopted = this.root.adoptedStyleSheets;\n\t\t\t\t\tthis.root.adoptedStyleSheets = [...adopted, sheet];\n\t\t\t\t\tthis.sheet = sheet;\n\t\t\t\t\tthis.ownsAdoptedSheet = true;\n\t\t\t\t\treturn sheet;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Fall through to style element fallback.\n\t\t\t}\n\t\t}\n\n\t\tconst style = this.ensureFallbackStyleElement();\n\t\tthis.sheet = (style.sheet as CSSStyleSheet | null) ?? null;\n\t\treturn this.sheet;\n\t}\n\n\tprivate clearElementStyles(el: HTMLElement): void {\n\t\tthis.declarationByElement.delete(el);\n\t\tconst token = this.tokenByElement.get(el);\n\t\tif (token) {\n\t\t\tthis.tokenByElement.delete(el);\n\t\t\tthis.releaseToken(token);\n\t\t}\n\t\tel.removeAttribute(STYLE_TOKEN_ATTR);\n\t}\n\n\tprivate retainToken(token: string): void {\n\t\tconst current = this.tokenRefCount.get(token) ?? 0;\n\t\tthis.tokenRefCount.set(token, current + 1);\n\t}\n\n\tprivate releaseToken(token: string): void {\n\t\tconst current = this.tokenRefCount.get(token);\n\t\tif (!current) return;\n\t\tif (current > 1) {\n\t\t\tthis.tokenRefCount.set(token, current - 1);\n\t\t\treturn;\n\t\t}\n\t\tthis.tokenRefCount.delete(token);\n\t\tconst declaration = this.declarationByToken.get(token);\n\t\tif (declaration) {\n\t\t\tthis.declarationByToken.delete(token);\n\t\t\tthis.tokenByDeclaration.delete(declaration);\n\t\t}\n\t\tthis.deleteRule(token);\n\t}\n\n\tprivate deleteRule(token: string): void {\n\t\tconst sheet = this.sheet;\n\t\tif (!sheet) return;\n\t\tconst selector = buildTokenSelector(token);\n\t\tfor (let index = sheet.cssRules.length - 1; index >= 0; index -= 1) {\n\t\t\tconst rule = sheet.cssRules[index];\n\t\t\tif (!rule || !isTokenSelectorMatch(rule, selector)) continue;\n\t\t\ttry {\n\t\t\t\tsheet.deleteRule(index);\n\t\t\t} catch {\n\t\t\t\t// Ignore parser/runtime discrepancies in unsupported environments.\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t}\n\n\tprivate clearRuntimeRules(): void {\n\t\tconst sheet = this.sheet;\n\t\tif (!sheet) return;\n\t\tfor (let index = sheet.cssRules.length - 1; index >= 0; index -= 1) {\n\t\t\tconst rule = sheet.cssRules[index];\n\t\t\tif (!rule || !rule.cssText.includes(`[${STYLE_TOKEN_ATTR}=\"`)) continue;\n\t\t\ttry {\n\t\t\t\tsheet.deleteRule(index);\n\t\t\t} catch {\n\t\t\t\t// Ignore parser/runtime discrepancies in unsupported environments.\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate ensureFallbackStyleElement(): HTMLStyleElement {\n\t\tif (this.fallbackStyleElement) return this.fallbackStyleElement;\n\t\tconst style: HTMLStyleElement = document.createElement('style');\n\t\tstyle.setAttribute(STYLE_ELEMENT_ATTR, '');\n\t\tif (this.nonce) {\n\t\t\tstyle.setAttribute('nonce', this.nonce);\n\t\t}\n\t\tif (isShadowRoot(this.root)) {\n\t\t\tthis.root.appendChild(style);\n\t\t} else {\n\t\t\tconst host = this.root.head ?? this.root.documentElement;\n\t\t\thost.appendChild(style);\n\t\t}\n\t\tthis.fallbackStyleElement = style;\n\t\treturn style;\n\t}\n}\n\nfunction parseStyleText(styleText: string): Map<string, string> {\n\tconst declarations = new Map<string, string>();\n\tfor (const rawPart of styleText.split(';')) {\n\t\tconst part = rawPart.trim();\n\t\tif (!part) continue;\n\t\tconst separator = part.indexOf(':');\n\t\tif (separator <= 0) continue;\n\t\tconst property = normalizePropertyName(part.slice(0, separator));\n\t\tconst value = part.slice(separator + 1).trim();\n\t\tif (!value) {\n\t\t\tdeclarations.delete(property);\n\t\t} else {\n\t\t\tdeclarations.set(property, value);\n\t\t}\n\t}\n\treturn declarations;\n}\n\nfunction serializeDeclarations(declarations: Map<string, string>): string {\n\tconst ordered: [string, string][] = Array.from(declarations.entries()).sort(([a], [b]) =>\n\t\ta.localeCompare(b),\n\t);\n\treturn ordered.map(([property, value]) => `${property}: ${value}`).join('; ');\n}\n\nfunction normalizePropertyName(property: string): string {\n\tconst trimmed = property.trim();\n\tif (!trimmed) return '';\n\tif (trimmed.startsWith('--')) return trimmed;\n\tif (trimmed.includes('-')) return trimmed.toLowerCase();\n\treturn trimmed.replace(/[A-Z]/g, (char: string) => `-${char.toLowerCase()}`).toLowerCase();\n}\n\nfunction buildTokenSelector(token: string): string {\n\treturn `[${STYLE_TOKEN_ATTR}=\"${token}\"]`;\n}\n\nfunction isTokenSelectorMatch(rule: CSSRule, selector: string): boolean {\n\tif (typeof CSSStyleRule !== 'undefined' && rule instanceof CSSStyleRule) {\n\t\treturn rule.selectorText === selector;\n\t}\n\treturn rule.cssText.includes(selector);\n}\n"],"names":["STYLE_TOKEN_ATTR","rootConfigs","WeakMap","strictEngines","createRuntimeStyleSheet","CSSStyleSheet","registerStyleRoot","root","options","previous","get","destroy","delete","set","mode","nonce","sheet","unregisterStyleRoot","engine","setStyleProperty","el","property","value","config","resolveConfig","getStrictEngine","settings","setProperty","setInlineProperty","removeStyleProperty","setStyleProperties","properties","setProperties","Object","entries","setStyleText","cssText","style","appendStyleText","current","setStyleAttribute","getStyleNonceForNode","node","resolveStyleRootFromNode","startsWith","includes","removeProperty","cached","StrictStyleEngine","isShadowRoot","ShadowRoot","isDocument","Document","rootNode","getRootNode","document","declarationByElement","tokenByDeclaration","Map","declarationByToken","tokenRefCount","tokenByElement","tokenCounter","fallbackStyleElement","ownsAdoptedSheet","this","clearRuntimeRules","adoptedStyleSheets","filter","adoptedSheet","remove","clear","declarations","getOrCreateDeclarations","name","normalizePropertyName","syncElementToken","parseStyleText","size","clearElementStyles","parsed","serializeDeclarations","existing","created","previousToken","declarationText","token","toString","insertRule","retainToken","releaseToken","setAttribute","rule","buildTokenSelector","ensureSheet","cssRules","length","adopted","ensureFallbackStyleElement","removeAttribute","declaration","deleteRule","selector","index","isTokenSelectorMatch","createElement","appendChild","head","documentElement","styleText","rawPart","split","part","trim","separator","indexOf","slice","Array","from","sort","a","b","localeCompare","map","join","trimmed","toLowerCase","replace","char","CSSStyleRule","selectorText"],"mappings":"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"}