@orangelogic/design-system 2.161.0 → 2.163.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 (271) hide show
  1. package/library/chunks/{AxisLabelRadial.lE2gKah-.js → AxisLabelRadial.fe7zjixN.js} +1 -1
  2. package/library/chunks/{BaseColumnSeries.B57B3iHh.js → BaseColumnSeries.8Mpxz385.js} +1 -1
  3. package/library/chunks/{CandlestickSeries.CmmI426l.js → CandlestickSeries.DuadaOTa.js} +19 -19
  4. package/library/chunks/{Circle.DAhHYhrc.js → Circle.6LomW0ej.js} +1 -1
  5. package/library/chunks/{ColumnSeries.DBgXk-b4.js → ColumnSeries.D1NLfRh5.js} +2 -2
  6. package/library/chunks/{EditableAxisLabel.C6H99qiS.js → EditableAxisLabel.Bi9vxLDV.js} +2 -2
  7. package/library/chunks/{EditableLabel.B7HB7Cu4.js → EditableLabel.CMR3O9E-.js} +1 -1
  8. package/library/chunks/{Gradient.DHhBnhFd.js → Gradient.CquE8_a4.js} +1 -1
  9. package/library/chunks/{LinearGradient.CGx00O8B.js → LinearGradient.CVN1VJp-.js} +9 -9
  10. package/library/chunks/{Picture.DYltTVSo.js → Picture.BYTZ_I8g.js} +1 -1
  11. package/library/chunks/{Polygon.BCrxKagx.js → Polygon.CU2sMltE.js} +1 -1
  12. package/library/chunks/{ProgressPie.CXksPJFv.js → ProgressPie.Dd74dbmm.js} +6 -6
  13. package/library/chunks/{RadialLabel.BYH69FGU.js → RadialLabel.7ka6ND-t.js} +1 -1
  14. package/library/chunks/{Scrollbar.DEv50o4R.js → Scrollbar.DqUnZReo.js} +1 -1
  15. package/library/chunks/Slice.BVI8rfHI.js +34 -0
  16. package/library/chunks/{Slider.BX8g2iGv.js → Slider.DtjYaJOw.js} +1 -1
  17. package/library/chunks/{SpriteResizer.CfIBMSp3.js → SpriteResizer.Ci2Wt2YJ.js} +11 -11
  18. package/library/chunks/{Triangle.CNY8-QfL.js → Triangle.C75emy3D.js} +1 -1
  19. package/library/chunks/{ZoomTools.6jZrzA7x.js → ZoomTools.CA9mtHI8.js} +2 -2
  20. package/library/chunks/_arrayEach.DU4X1H_a.js +8 -0
  21. package/library/chunks/_baseClone.BHNjfIdS.js +215 -0
  22. package/library/chunks/_baseEach.DQk0As2f.js +32 -0
  23. package/library/chunks/{_baseIteratee.BdKyHJ5i.js → _baseIteratee.sC2wLi2m.js} +3 -2
  24. package/library/chunks/{_baseUniq.je-HWbb3.js → _baseUniq.lwMgmtt2.js} +16 -15
  25. package/library/chunks/_baseXor.DixEm6JQ.js +35 -0
  26. package/library/chunks/_flatRest.D3ZVApI5.js +30 -0
  27. package/library/chunks/abnfDiagram-VRR7QNED.DKqYa5p7.js +89 -0
  28. package/library/chunks/{am-chart.CqdmTS0P.js → am-chart.Cr-vMjcY.js} +1577 -1727
  29. package/library/chunks/{animation.S74lUDDc.js → animation.BD-1xugN.js} +1 -1
  30. package/library/chunks/arc.xqNd6x9S.js +84 -0
  31. package/library/chunks/architectureDiagram-ZJ3FMSHR.CBIOk9Kp.js +4757 -0
  32. package/library/chunks/{asset-link-format.CUPqX8XL.js → asset-link-format.BdB6fQA_.js} +194 -194
  33. package/library/chunks/blockDiagram-677ZJIJ3.CeQxLPwj.js +2428 -0
  34. package/library/chunks/{button.8syoJXYs.js → button.DGyqdBou.js} +2 -2
  35. package/library/chunks/c4Diagram-LMCZKHZV.B73xdpNh.js +1580 -0
  36. package/library/chunks/{capitalize.BTYI3NfM.js → capitalize.CIBKBL10.js} +1 -1
  37. package/library/chunks/{cardinal.BCA_LB0u.js → cardinal.BXTAeOLk.js} +1 -0
  38. package/library/chunks/cardinalClosed.Mdce1x5M.js +59 -0
  39. package/library/chunks/channel.s_XjcUYI.js +5 -0
  40. package/library/chunks/chunk-2Q5K7J3B.Dy1Z-bMH.js +15 -0
  41. package/library/chunks/chunk-32BRIVSS.BbIrVi3j.js +71 -0
  42. package/library/chunks/chunk-5VM5RSS4.D0-lddDM.js +19 -0
  43. package/library/chunks/chunk-EX3LRPZG.L693y8d4.js +1412 -0
  44. package/library/chunks/chunk-JWPE2WC7.BV0i4LDu.js +8 -0
  45. package/library/chunks/chunk-MOJQB5TN.BZstBMYC.js +664 -0
  46. package/library/chunks/chunk-RYQCIY6F.BMsuG7ya.js +314 -0
  47. package/library/chunks/chunk-V7JOEXUC.DcJlyQO0.js +1537 -0
  48. package/library/chunks/chunk-VR4S4FIN.BpryBs7q.js +19 -0
  49. package/library/chunks/chunk-XXDRQBXY.CSOjab1V.js +11 -0
  50. package/library/chunks/classDiagram-OUVF2IWQ.Dvz7CNwe.js +18 -0
  51. package/library/chunks/classDiagram-v2-EOCWNBFH.Dvz7CNwe.js +18 -0
  52. package/library/chunks/cloneDeep.B-5z5SI3.js +51 -0
  53. package/library/chunks/{color-swatch-group.Dg5avknJ.js → color-swatch-group.w5DMzNco.js} +2433 -2647
  54. package/library/chunks/{color-swatch.DsWP2fd-.js → color-swatch.QsHoy_K1.js} +1 -1
  55. package/library/chunks/{colorPicker.GYgA76kc.js → colorPicker.Cg6Zxf8f.js} +5 -5
  56. package/library/chunks/{confirm-popover.C-eHPJaU.js → confirm-popover.D8mdy6KG.js} +2 -2
  57. package/library/chunks/constant.BQ4UJ-kW.js +12 -0
  58. package/library/chunks/{content-builder.BU8X7I6V.js → content-builder.BX4pHujE.js} +1 -1
  59. package/library/chunks/cose-bilkent-JH36ORCC.cfzS2XsK.js +2612 -0
  60. package/library/chunks/cynefin-VYW2F7L2.c7H5z9nQ.js +23790 -0
  61. package/library/chunks/cynefinDiagram-TSTJHNR4.C8SgNXWI.js +299 -0
  62. package/library/chunks/cytoscape.esm.Cbrwqewp.js +18786 -0
  63. package/library/chunks/dagre-VKFMJZFB.D5B1cAri.js +343 -0
  64. package/library/chunks/debounce.Bv1rtE8D.js +55 -0
  65. package/library/chunks/defaultLocale.CPy_WVtp.js +171 -0
  66. package/library/chunks/descending.AD5n-tFs.js +10 -0
  67. package/library/chunks/diagram-FQU43EPY.DJukDcLl.js +466 -0
  68. package/library/chunks/diagram-G47NLZAW.BBOvcbcR.js +316 -0
  69. package/library/chunks/diagram-NH7WQ7WH.DOpRwmC2.js +142 -0
  70. package/library/chunks/diagram-OA4YK3LP.Dm5WJs91.js +350 -0
  71. package/library/chunks/diagram-WEI45ONY.COuzdmSR.js +217 -0
  72. package/library/chunks/{dialog.Bzf4-IgH.js → dialog.05FgdLBZ.js} +2 -2
  73. package/library/chunks/{document-viewer.CGyOG1yw.js → document-viewer.gyH0NGM5.js} +7 -7
  74. package/library/chunks/{dot-pagination.BdZc-K0r.js → dot-pagination.Pg9O0nIh.js} +1 -1
  75. package/library/chunks/ebnfDiagram-CCIWWBDH.Dz-QBH6Y.js +111 -0
  76. package/library/chunks/erDiagram-Q63AITRT.sSw_w-2B.js +913 -0
  77. package/library/chunks/{exporting.DQhKH1BX.js → exporting.Djsoh75g.js} +11 -11
  78. package/library/chunks/flow.aZRVH3p1.js +1304 -0
  79. package/library/chunks/flowDiagram-23GEKE2U.CMMbuUHf.js +1642 -0
  80. package/library/chunks/{folder-select.BKAuh4GE.js → folder-select.Dh4SX0eU.js} +5 -5
  81. package/library/chunks/{gantt.tu-w6fQ5.js → gantt.Bv6_3H9y.js} +22 -22
  82. package/library/chunks/ganttDiagram-NO4QXBWP.DZdwd0O4.js +2715 -0
  83. package/library/chunks/gitGraphDiagram-IHSO6WYX.F6mwS3uS.js +818 -0
  84. package/library/chunks/graph.XHMI5hta.js +653 -0
  85. package/library/chunks/{header.e1FLwywx.js → header.DDI0MfJA.js} +1 -1
  86. package/library/chunks/{hierarchy.CTnBzzmQ.js → hierarchy.C4LxmFxx.js} +836 -904
  87. package/library/chunks/{hub-connection.CA_wS_wh.js → hub-connection.BtevPWYb.js} +1 -1
  88. package/library/chunks/{icon-button.DbVIFgu7.js → icon-button.BwmMJ0bI.js} +1 -1
  89. package/library/chunks/{icon.mxNZ85k0.js → icon.D5iM9wXS.js} +1 -1
  90. package/library/chunks/{iframe.DcHjOcLG.js → iframe.Cc-xZIm_.js} +1 -1
  91. package/library/chunks/{image.5mhGPvMN.js → image.BgODrAzQ.js} +2 -2
  92. package/library/chunks/{image.QVlPFadX.js → image.Y5c_hFx8.js} +1 -1
  93. package/library/chunks/{index.BVDhdCk-.js → index.2SOQHTpX.js} +23 -23
  94. package/library/chunks/index.BDn1QW8J.js +167 -0
  95. package/library/chunks/{index.DcjJFMlq.js → index.CrhRU5m8.js} +284 -273
  96. package/library/chunks/index.thKLME8E.js +77 -0
  97. package/library/chunks/infoDiagram-FWYZ7A6U.BnktKL7i.js +24 -0
  98. package/library/chunks/init.DjUOC4st.js +16 -0
  99. package/library/chunks/{input.BcyLZUmv.js → input.DOorVTYZ.js} +2 -2
  100. package/library/chunks/isArrayLikeObject.D7afXo-f.js +86 -0
  101. package/library/chunks/isEmpty.DtTJTUcf.js +27 -0
  102. package/library/chunks/ishikawaDiagram-FXEZZL3T.CFp-9Kes.js +621 -0
  103. package/library/chunks/journeyDiagram-5HDEW3XC.BxO1aPu_.js +837 -0
  104. package/library/chunks/{json.D7WeFaJm.js → json.Dz5QFEi5.js} +3 -3
  105. package/library/chunks/kanban-definition-HUTT4EX6.Bk8vmLFK.js +724 -0
  106. package/library/chunks/katex.DoRnZ_sp.js +11682 -0
  107. package/library/chunks/layout.DZcMFKol.js +1446 -0
  108. package/library/chunks/line.DP-iSN_J.js +157 -0
  109. package/library/chunks/linear.TNHhsH1m.js +215 -0
  110. package/library/chunks/{map.BjtxEozr.js → map.CBcV0WVq.js} +100 -105
  111. package/library/chunks/map.DJnohTgl.js +18 -0
  112. package/library/chunks/markdown.I1AJG75v.js +4180 -0
  113. package/library/chunks/math.D2lKC7md.js +22 -0
  114. package/library/chunks/mermaid.core.Dspbw7Ig.js +13598 -0
  115. package/library/chunks/mindmap-definition-LN4V7U3C.DuCBBYwE.js +808 -0
  116. package/library/chunks/{number.CtCaI0T_.js → number.Cx2ncfJJ.js} +2 -2
  117. package/library/chunks/{option.qN3aaqVI.js → option.DyNR1vzy.js} +2 -2
  118. package/library/chunks/ordinal.bqVaUip-.js +61 -0
  119. package/library/chunks/{pagination.Cupa46TN.js → pagination.qFmncShC.js} +5 -5
  120. package/library/chunks/pegDiagram-2B236MQR.DQrkEdJr.js +97 -0
  121. package/library/chunks/{percent.D_CkaRGb.js → percent.D8mkiJ2G.js} +17 -17
  122. package/library/chunks/pieDiagram-ENE6RG2P.B6nPW8Pj.js +212 -0
  123. package/library/chunks/quadrantDiagram-ABIIQ3AL.BFy9moxz.js +1026 -0
  124. package/library/chunks/{radar.BMKaNvJH.js → radar.B3p5bRix.js} +78 -129
  125. package/library/chunks/railroadDiagram-RFXS5EU6.CSao8YZX.js +79 -0
  126. package/library/chunks/range.DdOGybNB.js +9 -0
  127. package/library/chunks/requirementDiagram-TGXJPOKE.CjpliZnF.js +882 -0
  128. package/library/chunks/sankey.BR94A-8L.js +294 -0
  129. package/library/chunks/sankeyDiagram-HTMAVEWB.D8aAxVGe.js +564 -0
  130. package/library/chunks/select.C6_sM3Pr.js +7 -0
  131. package/library/chunks/sequenceDiagram-DBY2YBRQ.Cu9MV3h-.js +2891 -0
  132. package/library/chunks/sizeCapture-X5ZJPWSS.BDByEFcW.js +46 -0
  133. package/library/chunks/{sliceGrouper.C-t5ZRrz.js → sliceGrouper.CcRqQhZX.js} +1 -1
  134. package/library/chunks/stateDiagram-2N3HPSRC.DvrAW9Ck.js +267 -0
  135. package/library/chunks/stateDiagram-v2-6OUMAXLB.CFfuaFM1.js +18 -0
  136. package/library/chunks/step.almIqwJ6.js +51 -0
  137. package/library/chunks/{stock.vF_pji1F.js → stock.CQbn6zW4.js} +9 -9
  138. package/library/chunks/swimlanes-5IMT3BWC.AtMD47q7.js +5332 -0
  139. package/library/chunks/swimlanesDiagram-G3AALYLV.26A1eX7s.js +15 -0
  140. package/library/chunks/{tab-group.kSg5_10g.js → tab-group.1Y71_aN8.js} +3 -3
  141. package/library/chunks/{time.DWfbnPnM.js → time.DYWuX2id.js} +1 -1
  142. package/library/chunks/timeline-definition-FHXFAJF6.CYSh6xl5.js +1058 -0
  143. package/library/chunks/{timeline.gWu0up6r.js → timeline.Czz_uBEd.js} +33 -32
  144. package/library/chunks/toNumber.MuDz8DgU.js +31 -0
  145. package/library/chunks/{toString.Dcbz5jVT.js → toString.B1zKIiZc.js} +1 -1
  146. package/library/chunks/{toast.TDU3wVhq.js → toast.C5Ir5yKA.js} +1 -1
  147. package/library/chunks/transformation.D1alV_s4.js +189 -0
  148. package/library/chunks/{tree.C2dPd6gt.js → tree.Dvnw_4vz.js} +3 -3
  149. package/library/chunks/value.BXEGBVFV.js +44 -0
  150. package/library/chunks/{venn.BVBe-JXs.js → venn.B5Jl-c4i.js} +2 -2
  151. package/library/chunks/vennDiagram-L72KCM5P.CSk1WWlu.js +1581 -0
  152. package/library/chunks/wardleyDiagram-EHGQE667.C7UzXYG7.js +675 -0
  153. package/library/chunks/{watch.DOt4Mabe.js → watch.DJF5K-8U.js} +27 -27
  154. package/library/chunks/{wc.DTNpfIc1.js → wc.B2THb2Kk.js} +18 -18
  155. package/library/chunks/xy.BO6U5QrZ.js +294 -0
  156. package/library/chunks/xychartDiagram-FW5EYKEG.idiZWvYS.js +1383 -0
  157. package/library/components/alert.js +2 -2
  158. package/library/components/am-chart.js +3 -3
  159. package/library/components/animated-image.js +2 -2
  160. package/library/components/animation.js +2 -2
  161. package/library/components/array-line-clamp.js +1 -1
  162. package/library/components/asset-link-format.js +5 -5
  163. package/library/components/atoms.js +29 -29
  164. package/library/components/audio.js +3 -3
  165. package/library/components/avatar.js +2 -2
  166. package/library/components/border-input-group.js +1 -1
  167. package/library/components/breadcrumb-item.js +1 -1
  168. package/library/components/breadcrumb.js +1 -1
  169. package/library/components/button.js +3 -3
  170. package/library/components/checkbox.js +195 -18
  171. package/library/components/color-picker.js +4 -4
  172. package/library/components/color-swatch-group.js +5 -5
  173. package/library/components/color-swatch.js +2 -2
  174. package/library/components/confirm-popover.js +3 -3
  175. package/library/components/copy-button.js +2 -2
  176. package/library/components/corner-position-input-group.js +2 -2
  177. package/library/components/cropper.js +3 -3
  178. package/library/components/date-calendar.js +1 -1
  179. package/library/components/details.js +2 -2
  180. package/library/components/dialog.js +3 -3
  181. package/library/components/diff.js +1 -1
  182. package/library/components/divider.js +1 -1
  183. package/library/components/document-viewer.js +3 -3
  184. package/library/components/dot-pagination.js +2 -2
  185. package/library/components/drawer.js +3 -3
  186. package/library/components/dropdown.js +2 -2
  187. package/library/components/dynamic-select.js +6 -6
  188. package/library/components/e-chart.js +1 -1
  189. package/library/components/element-clamp.js +2 -2
  190. package/library/components/file-on-demand.js +350 -374
  191. package/library/components/folder-select.js +5 -5
  192. package/library/components/format-time.js +2 -2
  193. package/library/components/grid-item.js +1 -1
  194. package/library/components/header.js +2 -2
  195. package/library/components/hub-connection.js +2 -2
  196. package/library/components/icon-button.js +2 -2
  197. package/library/components/icon.js +2 -2
  198. package/library/components/iframe.js +2 -2
  199. package/library/components/image-comparer.js +2 -2
  200. package/library/components/image.js +3 -3
  201. package/library/components/include.js +1 -1
  202. package/library/components/input.js +3 -3
  203. package/library/components/line-clamp.js +1 -1
  204. package/library/components/markdown.js +11 -2704
  205. package/library/components/masonry.js +3 -3
  206. package/library/components/menu-item.js +2 -2
  207. package/library/components/molecules.js +3 -3
  208. package/library/components/mutation-observer.js +1 -1
  209. package/library/components/option.js +3 -3
  210. package/library/components/organisms.js +2 -2
  211. package/library/components/padding-input-group.js +1 -1
  212. package/library/components/pagination.js +6 -6
  213. package/library/components/qr-code.js +1 -1
  214. package/library/components/radio-button.js +1 -1
  215. package/library/components/radio-card.js +1 -1
  216. package/library/components/radio-group.js +1 -1
  217. package/library/components/radio.js +2 -2
  218. package/library/components/range.js +1 -1
  219. package/library/components/rating.js +2 -2
  220. package/library/components/resize-observer.js +1 -1
  221. package/library/components/select.js +3 -3
  222. package/library/components/shadow-input-group.js +1 -1
  223. package/library/components/share-option-list.js +2 -2
  224. package/library/components/sidebar.js +3 -3
  225. package/library/components/size-input-group.js +3 -3
  226. package/library/components/split-panel.js +1 -1
  227. package/library/components/step.js +1 -1
  228. package/library/components/stepper-wizard.js +1 -1
  229. package/library/components/stepper.js +1 -1
  230. package/library/components/switch.js +1 -1
  231. package/library/components/tab-group.js +4 -4
  232. package/library/components/tab-panel.js +1 -1
  233. package/library/components/tab.js +2 -2
  234. package/library/components/tag.js +1 -1
  235. package/library/components/textarea.js +1 -1
  236. package/library/components/timecode.js +1 -1
  237. package/library/components/tooltip.js +1 -1
  238. package/library/components/tree-item.js +4 -4
  239. package/library/components/tree.js +2 -2
  240. package/library/components/typeface.js +2 -2
  241. package/library/components/types.js +122526 -120875
  242. package/library/components/video.js +2 -2
  243. package/library/package.json +2 -1
  244. package/library/packages/atoms/src/components/markdown/markdown.d.ts +41 -1
  245. package/library/packages/atoms/src/components/markdown/parser.d.ts +18 -3
  246. package/library/packages/atoms/src/components/markdown/styles.d.ts +17 -0
  247. package/library/packages/hybrid/table-core/src/tabulator-tables/modules/Page/Page.d.ts +6 -0
  248. package/library/packages/hybrid/table-core/src/tabulator-tables/modules/Validate/Validate.d.ts +6 -0
  249. package/library/packages/molecules/src/index.d.ts +1 -0
  250. package/library/packages/molecules/src/markdown-viewer/markdown-viewer.d.ts +124 -0
  251. package/library/packages/molecules/src/markdown-viewer/markdown-viewer.styles.d.ts +6 -0
  252. package/library/packages/molecules/src/pdf-viewer-toolbar/pdf-viewer-toolbar.d.ts +1 -0
  253. package/library/packages/tools/src/tiptap/utils/md/editor-controller.d.ts +57 -0
  254. package/library/packages/tools/src/tiptap/utils/md/from-markdown.d.ts +11 -0
  255. package/library/packages/tools/src/tiptap/utils/md/input-rules.d.ts +15 -0
  256. package/library/packages/tools/src/tiptap/utils/md/schema.d.ts +13 -0
  257. package/library/packages/tools/src/tiptap/utils/md/to-markdown.d.ts +14 -0
  258. package/library/packages/types/src/markdown-viewer.d.ts +12 -0
  259. package/library/packages/types/src/pdf-viewer-toolbar.d.ts +4 -3
  260. package/library/packages/utils/src/transformation/transformation.d.ts +8 -0
  261. package/library/react-web-component.d.ts +72 -6
  262. package/library/utils.js +9 -8
  263. package/package.json +2 -1
  264. package/library/chunks/Slice.C5lVu2g_.js +0 -120
  265. package/library/chunks/_baseXor.VohG8cOH.js +0 -116
  266. package/library/chunks/checkbox.3i2j3PHc.js +0 -198
  267. package/library/chunks/debounce.C_J-9zJi.js +0 -82
  268. package/library/chunks/flow.hz0UDjCb.js +0 -1594
  269. package/library/chunks/index.DU0XUO4k.js +0 -176
  270. package/library/chunks/transformation.BDmd3kER.js +0 -163
  271. package/library/chunks/xy.BNgyrwGD.js +0 -333
@@ -1,14 +1,14 @@
1
1
  import { _ as kd, a as Sa, b as Be, c as Je } from "../chunks/inheritsLoose.BuSn_CvZ.js";
2
2
  import { c as ps, a as Bn } from "../chunks/_commonjsHelpers.DQNKXVTB.js";
3
3
  import { r as Sb } from "../chunks/___vite-browser-external_commonjs-proxy.C2tf3HsQ.js";
4
- import { C as Cb } from "../chunks/image.5mhGPvMN.js";
4
+ import { C as Cb } from "../chunks/image.BgODrAzQ.js";
5
5
  import Mb from "./resize-observer.js";
6
6
  import { r as Db, R as Pb, a as Rp, b as Lb } from "../chunks/resizable-component.styles.CAfXABBc.js";
7
7
  import { c as Rb } from "../chunks/component.styles.CRO4Odto.js";
8
8
  import { b as Ib } from "../chunks/browser.BHOCIF_A.js";
9
9
  import { c as Ob } from "../chunks/custom-element.L4WJXn1j.js";
10
10
  import { L as kb } from "../chunks/i18n.Bchq8v1d.js";
11
- import { w as Ki } from "../chunks/watch.DOt4Mabe.js";
11
+ import { w as Ki } from "../chunks/watch.DJF5K-8U.js";
12
12
  import { i as Bb, x as Qc } from "../chunks/lit-element.jLBm65_O.js";
13
13
  import { n as Ri } from "../chunks/lib-cortex-element.CVMmyPMC.js";
14
14
  import { r as yn } from "../chunks/state.CSDxrqLd.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.161.0",
4
+ "version": "2.163.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -12,6 +12,7 @@
12
12
  "build": "vite build --config vite.config.ts && bun run build-worker && node ./scripts/remove-index-html-file.js && node ./scripts/copy-entry-file.js",
13
13
  "build-sync": "bun run build && bun run sync-csharp",
14
14
  "start": "vite",
15
+ "host": "bun run build && bunx serve dist --cors -l 4321",
15
16
  "dev-build": "vite build --config vite.dev-build.config.ts",
16
17
  "open": "npx playwright test --project=chromium --ui",
17
18
  "playwright": "npx playwright test --project=chromium",
@@ -1,3 +1,4 @@
1
+ import { default as CxIconButton } from '../icon-button/icon-button.ts';
1
2
  import { default as CortexLightElement } from '../../../../base/src/cortex-light-element.ts';
2
3
  import { TemplateResult } from 'lit';
3
4
  import { RendererObject, TokenizerAndRendererExtension } from 'marked';
@@ -8,10 +9,36 @@ import { RendererObject, TokenizerAndRendererExtension } from 'marked';
8
9
  * @description cx-markdown is a Light DOM element, so can be styled from outside the Shadow DOM.
9
10
  * cx-markdown is powered by [MarkedJs](https://marked.js.org/).
10
11
  *
11
- * @event cx-ready - Emitted when the markdown has been rendered.
12
+ * Fenced `mermaid` code blocks render as diagrams; Mermaid is imported lazily only when one is
13
+ * present. Output is sanitized with DOMPurify unless `live-script` is set.
14
+ *
15
+ * Leading YAML frontmatter renders as a collapsed disclosure instead of an `<hr>` plus heading, and
16
+ * is parsed onto the `frontmatter` property.
17
+ *
18
+ * Set `link-target="_blank"` to open links in a new tab — that is enough for the common case, so
19
+ * consumers should not need a custom `link` renderer.
20
+ *
21
+ * Fenced code blocks get a copy button, revealed on hover or keyboard focus.
22
+ *
23
+ * Clicks on interactive rendered content — links, the frontmatter disclosure, checkboxes, copy
24
+ * buttons, Mermaid nodes — do not bubble past the component. Clicks on inert content still do.
25
+ *
26
+ * @event cx-ready - Emitted when the markdown has been rendered, deferred until any Mermaid
27
+ * diagrams have been drawn.
12
28
  */
13
29
  export default class CxMarkdown extends CortexLightElement {
14
30
  #private;
31
+ static readonly styles: import('lit').CSSResult;
32
+ static readonly dependencies: {
33
+ 'cx-icon-button': typeof CxIconButton;
34
+ };
35
+ private readonly localize;
36
+ /**
37
+ * YAML frontmatter parsed from `markdown`, empty when there is none. Derived output — assigning
38
+ * to it has no effect. Read it after `cx-ready`. Deliberately non-reactive: the disclosure is
39
+ * built in the same pass, so setting it during `update()` would only cost an extra render.
40
+ */
41
+ frontmatter: Record<string, unknown>;
15
42
  /**
16
43
  * The class name to apply to the root element. As this is a light DOM element, it can be styled
17
44
  * from outside the Shadow DOM.
@@ -19,8 +46,14 @@ export default class CxMarkdown extends CortexLightElement {
19
46
  classname: string;
20
47
  /**
21
48
  * If true, re-adds script tags from inside the markdown to the body, wrapping them in IIFEs.
49
+ * Also skips sanitization, since DOMPurify would strip those script tags. Trusted content only.
22
50
  */
23
51
  liveScript: boolean;
52
+ /**
53
+ * Target applied to every rendered link. Set to `_blank` to open links in a new tab, which also
54
+ * adds `rel="noopener noreferrer"`. Empty (the default) leaves anchors untouched.
55
+ */
56
+ linkTarget: string;
24
57
  /**
25
58
  * The markdown to render.
26
59
  */
@@ -39,7 +72,14 @@ export default class CxMarkdown extends CortexLightElement {
39
72
  */
40
73
  rendered: string;
41
74
  connectedCallback(): void;
75
+ disconnectedCallback(): void;
42
76
  updateRendered(): void;
77
+ /**
78
+ * Light DOM means every click reaches ancestors, which commonly treat one as "start editing".
79
+ * Clicks the rendered markdown acts on itself stop here; inert content still bubbles. The
80
+ * containment check keeps an ancestor `<a>` or `<label>` around the component from matching.
81
+ */
82
+ handleClick(event: MouseEvent): void;
43
83
  handleRenderedWithNewMarkdown(): void;
44
84
  render(): TemplateResult;
45
85
  updated(): void;
@@ -1,7 +1,22 @@
1
- import { Marked } from 'marked';
1
+ import { Marked, Tokens } from 'marked';
2
2
 
3
+ /** Class name cx-markdown looks for when deciding whether to load Mermaid. */
4
+ export declare const MERMAID_CLASS_NAME = "mermaid";
5
+ /** Class name on the disclosure wrapping YAML frontmatter. */
6
+ export declare const FRONTMATTER_CLASS_NAME = "cx-frontmatter";
7
+ export type ExtractedFrontmatter = {
8
+ /** The markdown with the frontmatter block removed. */
9
+ body: string;
10
+ /** Parsed YAML mapping. Empty when absent, malformed, or not a mapping. */
11
+ data: Record<string, unknown>;
12
+ /** Raw YAML source, kept for display. */
13
+ raw: string;
14
+ };
15
+ export declare function extractFrontmatter(source: string): ExtractedFrontmatter;
16
+ /** Collapsed disclosure shown in place of the frontmatter block. */
17
+ export declare function renderFrontmatterDetails(raw: string, label: string): string;
3
18
  export declare const baseRenderer: {
4
- code(text: string, value: string | undefined): string;
19
+ code(this: import('marked').Renderer<string, string>, { escaped, lang: infoString, text }: Tokens.Code): string;
5
20
  };
6
21
  /**
7
22
  * https://marked.js.org/using_advanced in Marked instance section.
@@ -10,5 +25,5 @@ export declare const baseRenderer: {
10
25
  *
11
26
  * Change from Singleton to Factory pattern: returns a new isolated Marked parser.
12
27
  */
13
- export declare function createParser(): Marked;
28
+ export declare function createParser(): Marked<string, string>;
14
29
  export type Parser = ReturnType<typeof createParser>;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Baseline document typography, modelled on the VS Code markdown preview. Without this a bare
3
+ * cx-markdown inherits whatever the host page provides, which collapses tables and flattens the
4
+ * heading hierarchy. Apps that already style markdown (the docs site) override via a `classname`,
5
+ * since a class selector outranks these element selectors.
6
+ */
7
+ export declare const documentStyles: import('lit').CSSResult;
8
+ /**
9
+ * Prism default theme. CortexLightElement injects these into `document.head` with `:host` rewritten
10
+ * to `cx-markdown`, so every selector needs the `:host` prefix or it styles the whole page.
11
+ */
12
+ export declare const code: import('lit').CSSResult;
13
+ /**
14
+ * Single stylesheet for the component. CortexLightElement assigns `static styles` straight to
15
+ * `textContent`, so an array would stringify with a stray comma between the two sheets.
16
+ */
17
+ export declare const styles: import('lit').CSSResult;
@@ -20,6 +20,12 @@ export default class Page extends Module implements IPage {
20
20
  dataChanging: boolean;
21
21
  pageSizes: number[];
22
22
  mode: 'remote' | 'local' | 'progressive_load' | 'progressive_scroll';
23
+ /**
24
+ * Coalesces bursts of 'row-added'/'row-deleted' (e.g. a streaming loader
25
+ * calling addData() per chunk, which dispatches one event per row) into a
26
+ * single pipeline refresh instead of one full re-render per row.
27
+ */
28
+ private rowsUpdatedScheduled;
23
29
  constructor(table: Tabulator);
24
30
  options(key: string): any;
25
31
  initialize(): void;
@@ -106,6 +106,12 @@ export default class Validate extends Module {
106
106
  * responsive.
107
107
  */
108
108
  private validateColumnsOnMainThread;
109
+ /**
110
+ * Only style cells that already have real DOM (`cell.loaded`). Calling
111
+ * `getElement()` on an unloaded cell forces it to generate a detached
112
+ * element — the virtual renderer's later `layoutCell()` call (on scroll/
113
+ * page change) is what actually applies the style once the cell is real.
114
+ */
109
115
  private applyCellInvalidState;
110
116
  private clearCellInvalidState;
111
117
  private runSuppressed;
@@ -24,6 +24,7 @@ export { default as CxFontPicker } from './font-picker/font-picker';
24
24
  export { default as CxGalleryItem } from './gallery-item/gallery-item';
25
25
  export { default as CxGraphView } from './graph-view/graph-view';
26
26
  export { default as CxIconPicker } from './icon-picker/icon-picker';
27
+ export { default as CxMarkdownViewer } from './markdown-viewer/markdown-viewer';
27
28
  export { default as CxMasonry } from './masonry/masonry';
28
29
  export { default as CxMentions } from './mentions/mentions';
29
30
  export { default as CxMultiSelect } from './multi-select/multi-select';
@@ -0,0 +1,124 @@
1
+ import { default as CortexElement } from '../../../base/src/cortex-element.ts';
2
+ import { MarkdownViewerViewMode } from '../../../types/src/markdown-viewer';
3
+ import { CSSResultGroup, TemplateResult } from 'lit';
4
+
5
+ /**
6
+ * @summary Renders markdown with a toggle between the rendered preview, the raw source, and — when
7
+ * `editable` — a plain-text editor and a rich editor.
8
+ *
9
+ * @description Wraps `cx-markdown` and adds a view switcher. The source view shows the markdown
10
+ * verbatim, frontmatter included, syntax highlighted with Prism.
11
+ *
12
+ * `editable` adds two editors. `edit` is a `cx-textarea` over the raw source: plain text only, and
13
+ * byte-exact — what is loaded is what is saved. `wysiwyg` is a ProseMirror editor over a document
14
+ * model, with formatting and table controls; it is **not** byte-exact, because blocks the user
15
+ * changes are regenerated. Constructs the model cannot represent, such as HTML blocks, keep their
16
+ * source and are written back untouched. Choose per document which editor a host offers, through
17
+ * `available-view-modes`.
18
+ *
19
+ * `markdown` is the source coming in, `value` the current text including unsaved edits. Preview and
20
+ * source both render `value`. Assigning `markdown` again resets `value`.
21
+ *
22
+ * The view switcher is omitted when only one mode is on offer, since there is nothing to switch to.
23
+ *
24
+ * `cx-markdown` is a Light DOM element whose stylesheet is injected into `document.head`, out of
25
+ * reach of this shadow root. It is therefore imported into this component's `styles` too, where its
26
+ * `:host`-prefixed rules give the preview its typography.
27
+ *
28
+ * @event cx-change - Emitted after editing settles. Read the new markdown from `value`.
29
+ *
30
+ * @csspart toolbar - The overlaid bar holding the view switcher.
31
+ * @csspart preview - The `cx-markdown` element rendering the markdown.
32
+ * @csspart source - The `pre` element showing the raw markdown.
33
+ * @csspart editor - The `cx-textarea` used by the edit view.
34
+ * @csspart rich-editor - The wrapper around the rich editor and its formatting toolbar.
35
+ * @csspart format-toolbar - The formatting toolbar shown in the rich view.
36
+ *
37
+ * @cssproperty [--cx-markdown-viewer-toolbar-gap=var(--cx-spacing-x-small)] - Gap between toolbar items.
38
+ * @cssproperty [--cx-markdown-viewer-toolbar-offset-block=var(--cx-spacing-medium)] - Toolbar inset from the top edge.
39
+ * @cssproperty [--cx-markdown-viewer-toolbar-offset-inline=var(--cx-spacing-medium)] - Toolbar inset from the end edge.
40
+ * @cssproperty [--cx-markdown-viewer-source-font-size=var(--cx-font-size-small)] - Font size of the source and edit views.
41
+ * @cssproperty [--cx-markdown-viewer-source-max-height=none] - Max height of the source view before it scrolls.
42
+ * @cssproperty [--cx-markdown-viewer-edit-min-height=auto] - Min height of the plain-text editor, overriding its row count. The rich editor uses it too, defaulting to 20lh.
43
+ * @cssproperty [--cx-markdown-viewer-view-switcher-width=12rem] - Space the rich view's toolbar reserves at its end so the overlaid view switcher never covers a control.
44
+ */
45
+ export default class CxMarkdownViewer extends CortexElement {
46
+ static readonly styles: CSSResultGroup;
47
+ static readonly dependencies: Record<string, typeof CortexElement>;
48
+ private readonly localize;
49
+ private readonly richEditor;
50
+ private readonly richEditorHost?;
51
+ /** The modes the switcher offers, in this order. Empty offers all of them. */
52
+ availableViewModes: MarkdownViewerViewMode[];
53
+ /** The mode to open in. Omit to open on the preview. */
54
+ defaultViewMode?: MarkdownViewerViewMode;
55
+ /** Adds the edit view. While false no editor is created. */
56
+ editable: boolean;
57
+ /** Target applied to rendered links. `_blank` also adds `rel="noopener noreferrer"`. */
58
+ linkTarget: string;
59
+ /** The markdown to render. Assigning it resets `value`. */
60
+ markdown: string;
61
+ /** Drops the copy button the source view otherwise offers. */
62
+ noCopyButton: boolean;
63
+ /** Lets the toolbar scroll away with the content instead of pinning to the top. */
64
+ noStickyToolbar: boolean;
65
+ /** Drops the view switcher, fixing the component to the current view. */
66
+ noViewToggle: boolean;
67
+ /** The current markdown, including unsaved edits. What hosts read back. */
68
+ value: string;
69
+ /** Which view is showing. Falls back to the first offered mode. */
70
+ view: MarkdownViewerViewMode;
71
+ handleDefaultViewModeChange(): void;
72
+ /** A replacement source document discards any in-progress edit of the previous one. */
73
+ handleMarkdownChange(): void;
74
+ /**
75
+ * The editor is created after render, since its mount point only exists once the view is showing.
76
+ * Leaving the view tears it down rather than leaving a hidden editor holding a selection.
77
+ *
78
+ * Watched props are the ones `activeView` and `editorSource` are derived from. The await is what
79
+ * makes a watcher workable here — they run before render, when the mount point does not exist yet.
80
+ * Two watched props changing in the same cycle call this twice; harmless, since the first pass
81
+ * mounts and the second finds the editor already holding this markdown.
82
+ */
83
+ handleRichEditorSync(): Promise<void>;
84
+ /** LF form of `value`: what both editors work in, since a textarea and marked both report LF. */
85
+ private get editorSource();
86
+ /**
87
+ * The view actually showing. `render()` derives the same thing; this exists for the editor-sync
88
+ * watcher, which runs outside the template and has no access to its locals.
89
+ */
90
+ private get activeView();
91
+ /** The host's list narrowed to supported modes, falling back to all of them when empty. */
92
+ private get offeredViews();
93
+ private handleViewChange;
94
+ /** The host contract is `value` plus one `cx-change`, so the textarea's own events stop here. */
95
+ private handleEditorInput;
96
+ private handleEditorChange;
97
+ /**
98
+ * One handler for every formatting button: the action rides on the element as a data attribute, so
99
+ * the template needs no per-button closure.
100
+ */
101
+ private handleFormatClick;
102
+ private handleInsertTableClick;
103
+ private handleUndoClick;
104
+ private handleRedoClick;
105
+ /** Same contract as the plain-text editor: `value` stays current, `cx-change` settles. */
106
+ private handleRichEditorChange;
107
+ /** Debounced: `value` is current on every keystroke, so hosts only need the settled edit. */
108
+ private emitChange;
109
+ /**
110
+ * A native `<textarea>` reports LF, so put back the ending the source used and keep the round trip
111
+ * byte-exact. One ending for the whole document: a mixed-ending source comes back uniformly CRLF.
112
+ */
113
+ private restoreLineEndings;
114
+ /** Prism escapes its input, so the result is safe to pass to `unsafeHTML` unsanitized. */
115
+ private highlightSource;
116
+ /** Formatting and table controls for the rich view. */
117
+ private renderFormatToolbar;
118
+ render(): TemplateResult;
119
+ }
120
+ declare global {
121
+ interface HTMLElementTagNameMap {
122
+ 'cx-markdown-viewer': CxMarkdownViewer;
123
+ }
124
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Deliberately small: cx-markdown's own stylesheet is imported into this shadow root, so document
3
+ * typography arrives with it.
4
+ */
5
+ declare const _default: import('lit').CSSResult;
6
+ export default _default;
@@ -90,6 +90,7 @@ export default class CxPdfViewerToolbar extends CortexElement {
90
90
  private handleMoreOptionsSelect;
91
91
  private renderLeft;
92
92
  private static getScaleOptions;
93
+ private renderCustomScaleOption;
93
94
  private renderMiddle;
94
95
  private renderRight;
95
96
  render(): TemplateResult;
@@ -0,0 +1,57 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+
3
+ /** Toolbar actions the editor exposes, so the viewer's template stays declarative. */
4
+ export type MarkdownEditorAction = 'blockquote' | 'bold' | 'bulletList' | 'code' | 'codeBlock' | 'heading1' | 'heading2' | 'heading3' | 'italic' | 'orderedList' | 'paragraph' | 'strike' | 'tableColumnAfter' | 'tableDeleteColumn' | 'tableDeleteRow' | 'tableDelete' | 'tableRowAfter';
5
+ interface MarkdownEditorOptions {
6
+ /** Called with the serialized markdown whenever the document actually changes. */
7
+ onChange: (markdown: string) => void;
8
+ }
9
+ /**
10
+ * Owns the ProseMirror editor behind `cx-markdown-viewer`'s WYSIWYG view.
11
+ *
12
+ * The host stays declarative: it hands over a mount point and the markdown, receives serialized
13
+ * markdown through `onChange`, and drives formatting through `run()` / `isActive()` rather than
14
+ * touching editor internals.
15
+ */
16
+ export declare class MarkdownEditorController implements ReactiveController {
17
+ private readonly host;
18
+ private readonly options;
19
+ private view?;
20
+ /**
21
+ * The markdown this editor last parsed or produced. `setMarkdown` compares against it so a value
22
+ * the editor itself emitted does not tear the document down and drop the cursor.
23
+ */
24
+ private current;
25
+ constructor(host: ReactiveControllerHost, options: MarkdownEditorOptions);
26
+ hostDisconnected(): void;
27
+ /** Creates the editor in `container`, replacing any previous one. */
28
+ mount(container: HTMLElement, markdown: string): void;
29
+ destroy(): void;
30
+ get isMounted(): boolean;
31
+ /** Replaces the document, unless the incoming markdown is what the editor already holds. */
32
+ setMarkdown(markdown: string): void;
33
+ focus(): void;
34
+ /** Runs a toolbar action against the current selection. */
35
+ run(action: MarkdownEditorAction): void;
36
+ /** Whether the selection already carries the mark or sits in the block an action would apply. */
37
+ isActive(action: MarkdownEditorAction): boolean;
38
+ /** Whether a table action applies where the cursor is, so the toolbar can disable the rest. */
39
+ get isInTable(): boolean;
40
+ canUndo(): boolean;
41
+ canRedo(): boolean;
42
+ undo(): void;
43
+ redo(): void;
44
+ /** Inserts a table with a header row, the only shape markdown can represent. */
45
+ insertTable(rows?: number, columns?: number): void;
46
+ /** Serializes and reports the document, then lets the host re-render its toolbar state. */
47
+ private dispatch;
48
+ private buildKeymap;
49
+ private commandFor;
50
+ private markTypeFor;
51
+ private nodeCheckFor;
52
+ /** Mirrors ProseMirror's own rule: stored marks when the selection is empty, the range otherwise. */
53
+ private hasMark;
54
+ private hasBlock;
55
+ private hasAncestor;
56
+ }
57
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Node as ProseMirrorNode } from '@tiptap/pm/model';
2
+
3
+ /**
4
+ * Turns markdown into a document for the WYSIWYG editor, using the same marked lexer `cx-markdown`
5
+ * renders with — one markdown dialect in the component, not two.
6
+ *
7
+ * Every token marked hands over carries `raw`, its exact source slice. Tokens the schema models are
8
+ * converted; the rest keep `raw` in an `html_block` / `html_inline` node, which `toMarkdown` replays
9
+ * verbatim. Nothing is silently discarded.
10
+ */
11
+ export declare function markdownToDoc(markdown: string): ProseMirrorNode;
@@ -0,0 +1,15 @@
1
+ import { Plugin } from '@tiptap/pm/state';
2
+
3
+ /**
4
+ * Markdown shorthand that converts as it is typed: `# ` becomes a heading, `- ` a list, `**bold**`
5
+ * bold. Without these the rich view is a formatting-buttons-only editor, and anyone used to writing
6
+ * markdown finds their syntax sitting there as literal text.
7
+ *
8
+ * Every rule captures the marker the author typed and stores it on the node or mark, so a list
9
+ * started with `*` serializes back as `*` and one started with `-` as `-`.
10
+ *
11
+ * Deliberately excludes the smart quotes, ellipsis and em-dash rules that ship with
12
+ * prosemirror-example-setup: replacing `"` with `“` or `--` with `–` rewrites the source, which is
13
+ * exactly what this editor is built not to do.
14
+ */
15
+ export declare function markdownInputRules(): Plugin;
@@ -0,0 +1,13 @@
1
+ import { Schema } from '@tiptap/pm/model';
2
+
3
+ /**
4
+ * Document model for markdown editing.
5
+ *
6
+ * Every node that markdown writes more than one way carries the chosen spelling as an attribute —
7
+ * bullet character, ordered delimiter, fence character, emphasis marker — so an untouched block
8
+ * serializes back to the bytes it came from instead of to this file's preferences.
9
+ *
10
+ * Constructs the model cannot represent are not dropped: `html_block` and `html_inline` hold their
11
+ * source verbatim and are replayed on the way out.
12
+ */
13
+ export declare const markdownSchema: Schema<"image" | "blockquote" | "table" | "text" | "heading" | "paragraph" | "frontmatter" | "doc" | "horizontal_rule" | "bullet_list" | "code_block" | "list_item" | "ordered_list" | "table_row" | "table_cell" | "table_header" | "hard_break" | "html_block" | "html_inline", "link" | "code" | "em" | "strong" | "strike">;
@@ -0,0 +1,14 @@
1
+ import { Node as ProseMirrorNode } from '@tiptap/pm/model';
2
+
3
+ /**
4
+ * Writes a document back to markdown.
5
+ *
6
+ * The counterpart to `from-markdown`: node attributes carry the spelling the author used — bullet
7
+ * character, ordered delimiter, fence, emphasis marker — and this reuses them rather than imposing a
8
+ * house style, so an untouched block comes back as the bytes it went in as. `html_block` and
9
+ * `html_inline` are replayed from their stored source.
10
+ *
11
+ * Blocks the user *has* edited are regenerated, and regeneration is canonical: this is the lossy
12
+ * mode by design. `cx-markdown-viewer`'s `edit` view remains the byte-exact editor.
13
+ */
14
+ export declare function docToMarkdown(doc: ProseMirrorNode): string;
@@ -0,0 +1,12 @@
1
+ /** Which representation of the markdown `cx-markdown-viewer` is showing. */
2
+ export declare enum MarkdownViewerViewMode {
3
+ Preview = "preview",
4
+ Source = "source",
5
+ /** Plain-text editing of the source. Only reachable when the viewer is `editable`. */
6
+ Edit = "edit",
7
+ /**
8
+ * Rich editing of the same markdown. Only reachable when the viewer is `editable`. Unlike `edit`
9
+ * this is not byte-exact: blocks the user changes are regenerated from a document model.
10
+ */
11
+ Wysiwyg = "wysiwyg"
12
+ }
@@ -11,10 +11,11 @@ export type PdfViewerScrollMode = 'page' | 'vertical' | 'horizontal' | 'wrapped'
11
11
  /** How page spreads are joined. */
12
12
  export type PdfViewerSpreadMode = 'none' | 'odd' | 'even';
13
13
  /**
14
- * The zoom scale. Either a named mode, a percentage zoom factor (as a string, e.g.
15
- * `'150-percent'` = 150%), or `'custom'` for a non-preset factor shown via `customScalePercent`.
14
+ * The zoom scale: a named mode, one of the select's percentage presets, or — for a
15
+ * zoom off that list, e.g. once the zoom buttons step past 400% — the raw scale
16
+ * factor as a number string (`'4.6'` = 460%).
16
17
  */
17
- export type PdfViewerScaleValue = 'auto' | 'page-actual' | 'page-fit' | 'page-width' | '50-percent' | '75-percent' | '100-percent' | '125-percent' | '150-percent' | '200-percent' | '300-percent' | '400-percent';
18
+ export type PdfViewerScaleValue = 'auto' | 'page-actual' | 'page-fit' | 'page-width' | '50-percent' | '75-percent' | '100-percent' | '125-percent' | '150-percent' | '200-percent' | '300-percent' | '400-percent' | `${number}`;
18
19
  /** A row in the "View on asset" dropdown. */
19
20
  export interface ViewOnAssetRow {
20
21
  checked: boolean;
@@ -11,3 +11,11 @@ export declare function buildTransformationString({ asset, baseUrl, extension, o
11
11
  transformations?: Transformation[];
12
12
  useSession?: string;
13
13
  }): string;
14
+ /**
15
+ * Applies transformations to a (possibly finished) asset URL and returns the display URL.
16
+ *
17
+ * The backend resolver splits on the FIRST `/t/` after the access key, so for `/AssetLink/`
18
+ * URLs the transform is anchored right after the access key (before any prettyName/ext tail)
19
+ * and merged into an existing `/t/`. Other URLs keep the plain append behavior.
20
+ */
21
+ export declare function applyTransformationsToUrl(url: string, transformations: Transformation[]): string;