ooxml-ui 1.30.0 → 1.31.0

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 (156) hide show
  1. package/README.md +10 -0
  2. package/custom-elements.json +4 -0
  3. package/dist/{chunk-SBBFNAKM.js → chunk-32P252JS.js} +3 -3
  4. package/dist/{chunk-E4H3Y7M4.js → chunk-6TS7ASDJ.js} +1 -1
  5. package/dist/{chunk-BKHWBIXP.js → chunk-CALEXPBD.js} +132 -69
  6. package/dist/{chunk-SXVOXSTE.js → chunk-CDC5MAZS.js} +1 -1
  7. package/dist/chunk-DA57FPSN.js +54 -0
  8. package/dist/{chunk-HNREZW5U.js → chunk-KYXSQFDB.js} +484 -1
  9. package/dist/{chunk-IE6HKH4X.js → chunk-OKEFAQJT.js} +1 -1
  10. package/dist/controls.d.ts +6 -0
  11. package/dist/controls.d.ts.map +1 -1
  12. package/dist/controls.js +1 -1
  13. package/dist/dialog/dialog-session.d.ts +19 -0
  14. package/dist/dialog/dialog-session.d.ts.map +1 -0
  15. package/dist/docx/smartart-node-view.d.ts +1 -1
  16. package/dist/docx.js +36 -20
  17. package/dist/fonts/availability.d.ts +10 -0
  18. package/dist/fonts/availability.d.ts.map +1 -0
  19. package/dist/fonts/catalog.d.ts +63 -0
  20. package/dist/fonts/catalog.d.ts.map +1 -0
  21. package/dist/fonts/custom-fonts.d.ts +75 -0
  22. package/dist/fonts/custom-fonts.d.ts.map +1 -0
  23. package/dist/form/color-input/live-color-input.d.ts +93 -0
  24. package/dist/form/color-input/live-color-input.d.ts.map +1 -0
  25. package/dist/form/color-input/live-color-leaves.d.ts +34 -0
  26. package/dist/form/color-input/live-color-leaves.d.ts.map +1 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.js +6 -5
  29. package/dist/picture-effects.d.ts +6 -0
  30. package/dist/pptx/ai/host.cjs +41 -37
  31. package/dist/pptx/ai/host.d.ts +2 -0
  32. package/dist/pptx/ai/host.d.ts.map +1 -1
  33. package/dist/pptx/ai/host.mjs +2 -2
  34. package/dist/pptx/ai/index.cjs +47 -43
  35. package/dist/pptx/ai/index.d.ts +2 -0
  36. package/dist/pptx/ai/index.d.ts.map +1 -1
  37. package/dist/pptx/ai/index.mjs +3 -3
  38. package/dist/pptx/{chart-3d-view-scene-ZUGA3DKM.mjs → chart-3d-view-scene-HNL4NWJT.mjs} +2 -2
  39. package/dist/pptx/{chart-3d-view-scene-N7UQOYFI.cjs → chart-3d-view-scene-OPVBTZL5.cjs} +38 -38
  40. package/dist/pptx/chunk-3RIGT7H6.cjs +82 -0
  41. package/dist/pptx/{chunk-45OYSCLD.mjs → chunk-52Z74ESQ.mjs} +310 -157
  42. package/dist/pptx/{chunk-KY75GY5O.mjs → chunk-7FXQHSPE.mjs} +6 -24
  43. package/dist/pptx/{chunk-6KLPQQYP.cjs → chunk-D4LJJ7Z7.cjs} +77 -327
  44. package/dist/pptx/{chunk-MNSWEXYO.mjs → chunk-DACFW5LO.mjs} +26 -3
  45. package/dist/pptx/{chunk-IOOI63TH.cjs → chunk-FFWLDANS.cjs} +6 -24
  46. package/dist/pptx/{chunk-D7UYDESZ.mjs → chunk-KCZWGNWT.mjs} +3 -3
  47. package/dist/pptx/{chunk-SMMEIEEJ.mjs → chunk-KGDMMWIY.mjs} +1 -1
  48. package/dist/pptx/{chunk-LXEMMWVI.mjs → chunk-LCCRLB7Q.mjs} +1 -1
  49. package/dist/pptx/{chunk-BMMTD6PB.cjs → chunk-M55PNMFQ.cjs} +2 -2
  50. package/dist/pptx/chunk-PM2SOLK3.mjs +79 -0
  51. package/dist/pptx/{chunk-QX6XPYVA.mjs → chunk-PTIGQSTY.mjs} +31 -14
  52. package/dist/pptx/{chunk-34LEUH5R.mjs → chunk-RZVEPTLN.mjs} +63 -316
  53. package/dist/pptx/{chunk-CQYWHRZE.cjs → chunk-S3L5NNCK.cjs} +1 -1
  54. package/dist/pptx/{chunk-H5IPNKX6.cjs → chunk-S5I64Y55.cjs} +12 -12
  55. package/dist/pptx/{chunk-WQA3KZRB.mjs → chunk-SPOECCPV.mjs} +1 -1
  56. package/dist/pptx/{chunk-2CBK46AW.cjs → chunk-UG72HBSV.cjs} +48 -48
  57. package/dist/pptx/{chunk-QWF3PGUX.cjs → chunk-VEFFYJGG.cjs} +26 -2
  58. package/dist/pptx/{chunk-YMWEU56T.cjs → chunk-W4GPWC2Z.cjs} +651 -470
  59. package/dist/pptx/{chunk-BSGCZ4JZ.cjs → chunk-WBGU7BWD.cjs} +31 -14
  60. package/dist/pptx/dom/index.cjs +428 -428
  61. package/dist/pptx/dom/index.mjs +12 -12
  62. package/dist/pptx/export/html2canvas-clone.cjs +6 -6
  63. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  64. package/dist/pptx/index.cjs +3403 -3355
  65. package/dist/pptx/index.mjs +8 -8
  66. package/dist/pptx/render/chart-box-whisker.d.ts.map +1 -1
  67. package/dist/pptx/render/chart-combo-stock.cjs +3 -3
  68. package/dist/pptx/render/chart-combo-stock.mjs +1 -1
  69. package/dist/pptx/render/chart-data-table-metrics.d.ts +1 -1
  70. package/dist/pptx/render/chart-data-table-metrics.d.ts.map +1 -1
  71. package/dist/pptx/render/chart-data-table-render.d.ts.map +1 -1
  72. package/dist/pptx/render/chart-date-axis.d.ts +1 -1
  73. package/dist/pptx/render/chart-date-axis.d.ts.map +1 -1
  74. package/dist/pptx/render/chart-date-format.d.ts +1 -30
  75. package/dist/pptx/render/chart-date-format.d.ts.map +1 -1
  76. package/dist/pptx/render/chart-funnel-sunburst.d.ts +1 -1
  77. package/dist/pptx/render/chart-funnel-sunburst.d.ts.map +1 -1
  78. package/dist/pptx/render/chart-line-path.d.ts +2 -26
  79. package/dist/pptx/render/chart-line-path.d.ts.map +1 -1
  80. package/dist/pptx/render/chart-manual-layout.d.ts +1 -1
  81. package/dist/pptx/render/chart-manual-layout.d.ts.map +1 -1
  82. package/dist/pptx/render/chart-overlays.cjs +7 -7
  83. package/dist/pptx/render/chart-overlays.mjs +1 -1
  84. package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
  85. package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
  86. package/dist/pptx/render/chart-view-model-layout.d.ts.map +1 -1
  87. package/dist/pptx/render/chart-view-model.cjs +44 -44
  88. package/dist/pptx/render/chart-view-model.mjs +1 -1
  89. package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
  90. package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
  91. package/dist/pptx/render/controller/ai-assistant.d.ts +73 -0
  92. package/dist/pptx/render/controller/ai-assistant.d.ts.map +1 -0
  93. package/dist/pptx/render/controller/autosave-controller.d.ts.map +1 -1
  94. package/dist/pptx/render/controller/collaboration-history.d.ts +25 -0
  95. package/dist/pptx/render/controller/collaboration-history.d.ts.map +1 -1
  96. package/dist/pptx/render/controller/history-controller.d.ts +9 -0
  97. package/dist/pptx/render/controller/history-controller.d.ts.map +1 -1
  98. package/dist/pptx/render/controller/index.d.ts +4 -0
  99. package/dist/pptx/render/controller/index.d.ts.map +1 -1
  100. package/dist/pptx/render/custom-fonts.cjs +9 -5
  101. package/dist/pptx/render/custom-fonts.d.ts +1 -64
  102. package/dist/pptx/render/custom-fonts.d.ts.map +1 -1
  103. package/dist/pptx/render/custom-fonts.mjs +1 -1
  104. package/dist/pptx/render/editor-geometry.d.ts +3 -15
  105. package/dist/pptx/render/editor-geometry.d.ts.map +1 -1
  106. package/dist/pptx/render/font-availability.d.ts +1 -9
  107. package/dist/pptx/render/font-availability.d.ts.map +1 -1
  108. package/dist/pptx/render/font-catalog.cjs +3 -3
  109. package/dist/pptx/render/font-catalog.d.ts +3 -61
  110. package/dist/pptx/render/font-catalog.d.ts.map +1 -1
  111. package/dist/pptx/render/font-catalog.mjs +1 -1
  112. package/dist/pptx/render/hyperlink-security.cjs +8 -8
  113. package/dist/pptx/render/hyperlink-security.d.ts +1 -27
  114. package/dist/pptx/render/hyperlink-security.d.ts.map +1 -1
  115. package/dist/pptx/render/hyperlink-security.mjs +1 -1
  116. package/dist/pptx/render/image-effects.d.ts.map +1 -1
  117. package/dist/pptx/render/index.d.ts +1 -0
  118. package/dist/pptx/render/index.d.ts.map +1 -1
  119. package/dist/pptx/render/live-color-input.d.ts +2 -92
  120. package/dist/pptx/render/live-color-input.d.ts.map +1 -1
  121. package/dist/pptx/render/live-color-leaves.d.ts +2 -33
  122. package/dist/pptx/render/live-color-leaves.d.ts.map +1 -1
  123. package/dist/pptx/render/options/autocorrect.d.ts +15 -2
  124. package/dist/pptx/render/options/autocorrect.d.ts.map +1 -1
  125. package/dist/pptx/render/picture-crop/crop-geometry.d.ts +2 -20
  126. package/dist/pptx/render/picture-crop/crop-geometry.d.ts.map +1 -1
  127. package/dist/pptx/render/slides-pane-model.d.ts +79 -0
  128. package/dist/pptx/render/slides-pane-model.d.ts.map +1 -0
  129. package/dist/pptx/render/table-cell-edit.d.ts +1 -1
  130. package/dist/pptx/render/table-cell-edit.d.ts.map +1 -1
  131. package/dist/pptx/render/text-script-fonts.d.ts +4 -72
  132. package/dist/pptx/render/text-script-fonts.d.ts.map +1 -1
  133. package/dist/pptx/{smartart-insert-preview-7OL7VWEK.cjs → smartart-insert-preview-FA4WM2N4.cjs} +10 -10
  134. package/dist/pptx/{smartart-insert-preview-SKFD7NCQ.mjs → smartart-insert-preview-GDFFXVAO.mjs} +9 -9
  135. package/dist/recovery-scheduler.d.ts +18 -0
  136. package/dist/recovery-scheduler.d.ts.map +1 -0
  137. package/dist/smartart/smartart-geometry.d.ts +1 -3
  138. package/dist/smartart/smartart-paint.d.ts +2 -1
  139. package/dist/smartart/smartart-picture.d.ts +7 -0
  140. package/dist/smartart/smartart-svg.d.ts +2 -1
  141. package/dist/smartart/smartart.d.ts +6 -0
  142. package/dist/smartart.js +1 -1
  143. package/dist/teams.js +2 -2
  144. package/dist/visio/controller.d.ts +2 -2
  145. package/dist/visio/viewer-autorecover.d.ts +0 -1
  146. package/dist/visio/viewer-commands.d.ts +1 -1
  147. package/dist/visio/viewer-guides.d.ts +2 -2
  148. package/dist/visio/viewer-pointer-gestures.d.ts +1 -1
  149. package/dist/visio/viewer-resize-frame.d.ts +2 -2
  150. package/dist/visio/viewer-resize-handles.d.ts +1 -1
  151. package/dist/visio.js +109 -62
  152. package/dist/xlsx/grid/smartart.d.ts +1 -1
  153. package/dist/xlsx.js +91 -62
  154. package/package.json +2 -2
  155. package/dist/pptx/chunk-WM5SW737.mjs +0 -27
  156. package/dist/pptx/chunk-Y6DO6SVT.cjs +0 -29
@@ -1,30 +1,12 @@
1
+ import { isStorableHyperlinkHref, isOpenableHyperlinkHref } from 'ooxml-core/opc';
2
+
1
3
  // src/pptx/render/hyperlink-security.ts
2
- var BLOCKED_PROTOCOLS = /* @__PURE__ */ new Set([
3
- `${"javascript"}:`,
4
- "data:",
5
- "vbscript:",
6
- "mhtml:",
7
- `x-]${"javascript"}:`
8
- ]);
4
+ var PPTX_HYPERLINK_POLICY = { additionalOpenSchemes: ["ftp", "tel", "file"], openRelative: true };
9
5
  function isUrlSafe(url) {
10
- if (!url || typeof url !== "string") {
11
- return false;
12
- }
13
- const trimmed = url.trim();
14
- if (trimmed.length === 0) {
15
- return false;
16
- }
17
- const lower = trimmed.toLowerCase();
18
- const stripped = lower.replace(/[\s​]/gu, "").replace(/‌/gu, "").replace(/‍/gu, "").split(String.fromCharCode(0)).join("");
19
- for (const protocol of BLOCKED_PROTOCOLS) {
20
- if (stripped.startsWith(protocol)) {
21
- return false;
22
- }
23
- }
24
- return true;
6
+ return isPpactionUrl(url) || isStorableHyperlinkHref(url, PPTX_HYPERLINK_POLICY);
25
7
  }
26
8
  function safeOpenUrl(url, target = "_blank") {
27
- if (!isUrlSafe(url)) {
9
+ if (isPpactionUrl(url) || !isOpenableHyperlinkHref(url, PPTX_HYPERLINK_POLICY)) {
28
10
  if (typeof console !== "undefined") {
29
11
  console.warn(`[pptx-viewer] Blocked attempt to open unsafe URL: ${url.slice(0, 100)}`);
30
12
  }
@@ -75,7 +57,7 @@ function isPpactionUrl(url) {
75
57
  return url.toLowerCase().startsWith("ppaction://");
76
58
  }
77
59
  function resolveHyperlinkHref(url) {
78
- if (!url || isPpactionUrl(url) || !isUrlSafe(url)) {
60
+ if (!url || isPpactionUrl(url) || !isOpenableHyperlinkHref(url, PPTX_HYPERLINK_POLICY)) {
79
61
  return void 0;
80
62
  }
81
63
  return url.trim();