oasis-editor 0.0.134 → 0.0.135

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 (28) hide show
  1. package/dist/{OasisEditorApp-B2f15Gpe.js → OasisEditorApp-207_qEC4.js} +123 -29
  2. package/dist/app/controllers/EditorCommandsController.d.ts +2 -0
  3. package/dist/assets/{importDocxWorker-CCwhxVSR.js → importDocxWorker-B0cSSI12.js} +1 -1
  4. package/dist/core/commands/builtinCommands.d.ts +1 -1
  5. package/dist/core/commands/image.d.ts +15 -1
  6. package/dist/core/lineDash.d.ts +16 -0
  7. package/dist/core/model/index.d.ts +1 -1
  8. package/dist/core/model/types/primitives.d.ts +19 -0
  9. package/dist/export/docx/docxTypes.d.ts +2 -1
  10. package/dist/export/docx/text/drawingContainerXml.d.ts +7 -1
  11. package/dist/export/pdf/draw/drawImageObject.d.ts +14 -0
  12. package/dist/export/pdf/writer/pdfTypes.d.ts +2 -0
  13. package/dist/i18n/locales/en.d.ts +15 -0
  14. package/dist/i18n/locales/pt-BR.d.ts +15 -0
  15. package/dist/{index-ogn0S9F3.js → index-CaKZARyM.js} +835 -305
  16. package/dist/oasis-editor.css +1 -1
  17. package/dist/oasis-editor.js +49 -49
  18. package/dist/oasis-editor.umd.cjs +4 -4
  19. package/dist/plugins/internal/essentialsCapabilities.d.ts +6 -1
  20. package/dist/ui/app/createAppCommandsController.d.ts +2 -0
  21. package/dist/ui/app/createEditorCommandRuntime.d.ts +1 -0
  22. package/dist/ui/canvas/paragraph/canvasInlineImage.d.ts +1 -1
  23. package/dist/ui/components/Toolbar/pictureBorderPresets.d.ts +19 -0
  24. package/dist/ui/components/Toolbar/primitives/ColorGrids.d.ts +20 -0
  25. package/dist/ui/components/Toolbar/primitives/PictureBorderPicker.d.ts +37 -0
  26. package/dist/ui/components/Toolbar/primitives/WideMenuButton.d.ts +27 -0
  27. package/dist/ui/components/Toolbar/schema/items.d.ts +15 -1
  28. package/package.json +1 -1
@@ -1840,6 +1840,7 @@ const en = {
1840
1840
  "ribbon.group.cellSize": "Cell Size",
1841
1841
  "ribbon.group.alignment": "Alignment",
1842
1842
  "ribbon.group.size": "Size",
1843
+ "ribbon.group.imageStyles": "Picture Styles",
1843
1844
  // Image format (contextual tab)
1844
1845
  "image.crop": "Crop",
1845
1846
  "image.height": "Height",
@@ -1852,6 +1853,20 @@ const en = {
1852
1853
  "image.cropRatio.2x3": "2:3",
1853
1854
  "image.cropRatio.3x4": "3:4",
1854
1855
  "image.cropRatio.9x16": "9:16",
1856
+ "image.border": "Picture Border",
1857
+ "image.borderNone": "No Outline",
1858
+ "image.borderMoreColors": "More Outline Colors...",
1859
+ "image.borderWeight": "Weight",
1860
+ "image.borderDashes": "Dashes",
1861
+ "image.borderDash.solid": "Solid",
1862
+ "image.borderDash.sysDot": "Round Dot",
1863
+ "image.borderDash.sysDash": "Square Dot",
1864
+ "image.borderDash.dot": "Dot",
1865
+ "image.borderDash.dash": "Dash",
1866
+ "image.borderDash.dashDot": "Dash Dot",
1867
+ "image.borderDash.lgDash": "Long Dash",
1868
+ "image.borderDash.lgDashDot": "Long Dash Dot",
1869
+ "image.borderDash.lgDashDotDot": "Long Dash Dot Dot",
1855
1870
  // Export
1856
1871
  "toolbar.exportDocx": "Export DOCX",
1857
1872
  "toolbar.exportPdf": "Export PDF",
@@ -2401,6 +2416,7 @@ const ptBR = {
2401
2416
  "ribbon.group.cellSize": "Tamanho da Célula",
2402
2417
  "ribbon.group.alignment": "Alinhamento",
2403
2418
  "ribbon.group.size": "Tamanho",
2419
+ "ribbon.group.imageStyles": "Estilos de Imagem",
2404
2420
  // Image format (contextual tab)
2405
2421
  "image.crop": "Cortar",
2406
2422
  "image.height": "Altura",
@@ -2413,6 +2429,20 @@ const ptBR = {
2413
2429
  "image.cropRatio.2x3": "2:3",
2414
2430
  "image.cropRatio.3x4": "3:4",
2415
2431
  "image.cropRatio.9x16": "9:16",
2432
+ "image.border": "Borda de Imagem",
2433
+ "image.borderNone": "Sem Contorno",
2434
+ "image.borderMoreColors": "Mais Cores de Contorno...",
2435
+ "image.borderWeight": "Espessura",
2436
+ "image.borderDashes": "Traços",
2437
+ "image.borderDash.solid": "Sólido",
2438
+ "image.borderDash.sysDot": "Ponto Redondo",
2439
+ "image.borderDash.sysDash": "Ponto Quadrado",
2440
+ "image.borderDash.dot": "Pontilhado",
2441
+ "image.borderDash.dash": "Tracejado",
2442
+ "image.borderDash.dashDot": "Traço e Ponto",
2443
+ "image.borderDash.lgDash": "Traço Longo",
2444
+ "image.borderDash.lgDashDot": "Traço Longo e Ponto",
2445
+ "image.borderDash.lgDashDotDot": "Traço Longo e Dois Pontos",
2416
2446
  // Export
2417
2447
  "toolbar.exportDocx": "Exportar DOCX",
2418
2448
  "toolbar.exportPdf": "Exportar PDF",
@@ -2590,14 +2620,14 @@ function I18nProvider(props) {
2590
2620
  });
2591
2621
  }
2592
2622
  const oasisMarkBase64 = "UklGRmQXAABXRUJQVlA4IFgXAACwWwCdASrAAAABPjEWiUMiISESyL50IAMEswHYDxjW/947Oi5/a/7H+1P90/ar5n65/UvwH+Q/QZm27Sf5n9r/I/5m/2n/p+wv9E/9j3AP07/0X92/HLuKeYL+mf4r/zf3f3tf9x+rnvH/z/qAfzf/J/9/sM/QX/bv02P28+Fb9s/2s+B39h//51gH//6yfrV/QO1z/CdMx6vl0OAGqD8Z+4X6H+9/up8b/6vvP+IeoL+Lfyr/CflxwuoAPz7+0/7T1iPk/9p6R/zXqAflpxyVAX8y+hD/5/6f0W/UX7UfAl/Ov75/zOxr6SR2HAT+kJLsdULBbdVn3b+sl8uZdjuThjIe3NwBwjfGz5SniiBN2m7i7b0hA/wxE1PuC+4EcbOyjUkU3CDDghPY1Va4tpUped9TFa05Qb1z7O+Ye73ccvEl10Sgdj6Hhy71hb/XpA23GjXBN/obAlaswz9gKwvW9d9npbC69rQeTm6DEr/cjrNngjQaHgFGjh4uVY1bY9Q+/iG037f80w0bLlYIe7smzz4tG1kC8r/KyWvzd3IXXrR2bKmhoB3Md69ltbERYFBI/2f+w7Jcsw+aUOGSwP6v6jv3tvwprg/7n5tto40/iRIKwEHQ5H/G5c0tpJ2pwREanIK3qHinjvovnkmuTw0mV2bumYqdc7he7hG0hpvBna8vIRpKYe6K1v3F8trOEtYUwr7w8e6j3nviknKtsFMtPtxZzn0YnhgtOn9inBlwqyEGR+wk7X1KHxOekXCA1UVbmLwGx1NqbI6r2WBOwQdpmpTg85DMOjwzW/JHUmfxKTDfhoXLi9gBMP/+Et6inspdrW1CHkZVLkDll2JyiPvClnvGv9m00oYce3evtpMlDhY3kVYGwfkoCHHyEv9iiN45NFE7+dQ9TacuQ00bHMa8LEFkEgXlbIOOqb/luSgpqPeYJ0te0XOAoIimL6iiPpVwptKTVTYOwRlXsxXOf6TT46ZEkHgAAP7+0P2gKmTluueuNY+U4/vkDd2VmNHsmMNJl1HfoY2poF8/1uoa8CZHpva1s8naGtGSLZnoeinjMs+G3jkzDzxHqqcgkZTAfFgipQReV3vRrkjzfzIdcMA7B4tu1cAg89SYeju2MC8Y/CWafba+MGbhAEzmu3dW8//l1pJrMLCd2MlJ8YLX6EM772du7VOeyFBLhim1VpOzXrWZWlYFTm3pF38p3oH1j5l0JRFlx08AdxScjS2p+L43pSzH9irNn8ow+YlvoXypCXVyQ9DllXxuTiMV7Tw7WkiyBb4a0io2XARXIzAbjnigXygR4j0M4GnhxdRzombgaZd6jiUTORiHX8BIV0fE+8nOv/uleXINQ2JNHrP4IfqDiefxTYTJHXey6xszVKKbcgzzA9VjuS59jQjkZVktrpdXls0pskU+x3iAoGSQxoL3YUs8B9JbG69Vh5VQfRWkjpvjgA+VeqeUoRD1h/PctddTT2eA31zbvwS+0HxGGL7afgwAeSZIDnSqmHLVUc7cH9uA0qf6foiwypxLOe6BLv7FNIwMYXLlkOnCSsiYZmhjpZmUZykMqPtNOPR2teBpziedYDQV2aBZFMP+Guq5u2WRWvvGZ+KNDuQaa4vKl+YbRCwZAaLr6bcL+XjTayKSzz561sUKrzDSPUjEf0cVkTci8SXA+guLEDFEtHATgLEEQD/xiDXvconSzB8CqX0Pys7GniN2V5lI76qUO1knbcPftDFB9DRHcuv4NM/c+9zeyj3iLi2uJhkGEW8MtSZUygLogIc+c43IPKXQXAs9YgZ8Uumypd4xdsgzr5POVy0w0rzP8LhLPiqzL8Nc50JyRi8bvEZraXy3DSHQmuVX39HaRgREI7uqi1sUiL+b0qe/fR53FfE+uCPvVxaWqgr0UicQoWPAXArLgJ6RjGyIgbrq+cv0gBkp65ZH05itLicbTkIWprWJ1pLomPqQZkAYruygNlcmmGct1IJ0OzNjAJQFkVGbwLkeHB/TDbV0Tq/U7ge2Ciaj3HYIMmREQzhx1gk+i2Kwb3DmEaetvzetIiB0nhbRWIMtfOKNM25GU22XNDiHpZiFfMCR04TIoM/jq5qRJ8zukISn5EQJGUSLd1nraQHhAJTkrpt/x6kq5R9er3yXQiOw25imi3mzDte/kbW6ENgYqf3RC1zKdnGEieTDnu+Mfr1L5ORPGTyS4LO2eDcgcd7uKCXNyWLRHYNtj0swtWjA0ia7ezJCwTRrpoU7kY+lL02zDFu+teWU4dda1jD7f0khwFd6lu1ESotG4fSQX/+N6f2n3mwu/NRGflR35gBlCarCAqTnEvPSSAoGg5H65qwNYU4i/xtQET6QIf0wJ9SWoybdwZkdByMBLVM+zWXM09/ZywvcFSeDiQH1mB/LN9o/9kigWXMDCmJ40GdbJriO6LyFd3ZPHE9Mu3cpzAHodpgbNY2L5de3n7cWaFs31Ua4V7IZwif5EJ6RgL52zgWt5THlnmij4W/+o5sga3qHqbIr2R4+KthbXaFSBHLt/MP3sfxs7UyonNA/yO9VDpaR/87nlPJ+486zuaZ6QF6hVZMPFdPUSXrhJYcQn8MarTFxjYFzcGKE5JIdnqU8wrv95YUP2/Vq42hW+eYj3Olg9EpjiSMkrFiYBsyWSOqbJQbpV64E7yVXFNVHUnkvRhUHFSP+YLr+DAyGpc6IIx+dS13PDFTHLAPtK0K8U5nwtn07jExCX4zca4HtBYAPSyMs/rGL+kEh29/08ahsm/8lEASeDKao1fY2pqUMr/GXUf+wwieLDHhs4/785VR9Jg6ZYzV6W8gxpyHNPw/s6/V2XW/PRn+l8MCGPTSDU0H7S/engMTa3XFjmfN+HkF3VBNtsTRv5m/dvtiEW4KJnN3UT1BiuO19GYLvxC553JAMaKnwwtW3q4UUnQwjrRum4luWqFQbWSfFaM0C+nAHkShu+7jB74XTnWfZUljWJrxnV/xRqtBnlio9SHJn93hzCH3c7Z4NGiHUfRlNZeY0GTth7SIjPPNF8uq0Dlon7EpI0JQWPHjAajWRH6+z6HGdnkF6b6ZW5nwveXsbtGl77y181pnrXB8eKRZVF6mnjlOWfzt2DgyrR8KXcfQxdtJ14hmYNbWmVt6oo0syImVWF2VaCy4iac47Xle5VTGAzTK+y4ineIkhp2WUDrKBHpaXNu05EunDhMbGU4OSsDum31/gAk0cpuqbGJmD+AEf+PEyj7okPwWnzbx/Dc+TOUJIq0qPYVLHQs3x5763EiV05ZPV0giHExJHA4tpsZdLBBimjc4jbBcDloQWRyHMa5ZCOsLcAxxe/JUT31Gmy8EeIIJH8oybFtgVsxUB9bTxUCjQ5BTUwGzCI3zFYNmqhwcQx7IRJEaBHnQH0Reiqh7QJu3rZ+1xNRDeUPgc9c3VKwkZhaSS+wB/AQUgUVHzL0w86fefFqaqXbei8E6aCU4PPwLtpC/kphJCHMSQ1y6Z1kN1ztzIcN6EYF0diUBtS0ycH+8OT5Pu7SBn9paZxcr0abOrM0WedcPsmgRTng89PAD7unuoL+34FYNzXeVc2oxzRQ4ukk+O/zYyxVW2bfacfF176N/actMCjkMiZsIzUpK8q9a7xKWWoNNPFKd/zbyQaWPY9NhfWS2yDjBtmYh6SZRBJJRhZFY1ZCKIs4q8Z+hznOqVSPsm9sddQNfg5cn1gdtuZP/HZJqu6YN6Scn2f4RdBhb2iZGyNt/oDFIqQwJHMNiQUeemjv8t+p4Ijz0tCKNPLGmDeuhrplcBQ8LZgSPE3yyXmuIgd31d23LHj43kzNoMc0niaEAXRfvuA7sxLpbzV5x0bNTFYZ7XGX8CpL1m0/X2c9nFxxk1kALcLsOT9VadXCJ5jG+ANfI+RJ24AFfCTjK7mQuWDirqt9FD8ksAvzPM8677h/YcmEfwyrUBm8ZPOjhnMH7I85GVoQjN7zHFN3VXmaMRZMq5uBc5Z3Fhr6JbsBSl8W/hAQAriIBINIylKxSh7iRa2S2MlXJb/uIosUdKoreXYKD3A4xcf5DGnjxfCVm9L9WabGP5Wj/yoRo/h1hEaaHZVjrot+YELnMYMn/gLTHm1w/m5KMKXbqNdB1DZhPOx+vA7WCozWCfqDlJDczg6SQybB1KsP7lk/9gqHS58eVInTlny7MxP6jbCKE5KI1A9uu+rFuO+6iYHCP4xcdPNT6RsYjpSLhjyKHBcCldrMjQzo8IpwYkSyaPxonVxhSjxfBySfPIljfNy/1nL3KyMcXzzR2QnDRABDumnTqfDqAL0PMuLeZ3iBgVlN4j8tdBD+uPIvDjHpXAwFAY1R03QMWGtS84kEElzP0qPlpg1b0zw3KK1daqJC2rmaGE0r0y3Js8W0CVI+e6HMozZ2tAh17caaGjcnbK8WK+l9swvUSc6GaI1mrlnhAHU80EFIql72S66mllwDtIJhkpDfu1xVON+kiZAU8ao6sj+9oN38QZ0orGVOCnj7R9/Qg/VozV+Odtx1nres4cVUpgBpj8Fc+n52K+kkDCl80yVaPS7ZsvtS33mn3xeTn74mvTWcVftb8+e+vFLo6GS5kPRskekS0ViI/hAhQeCFZV7MBwI/jS+B68+YiWv/+9tG7qPNKLsjTR97ead+3YrvlBM3MyRlIpIMcYYgLiiZZ42RJGG2Ip3kPxsx8s3N+SkvM8qLTw3dWhActwY3Xz0O9Crxtfr93PHhfQI71MIUEmX2dnbKTxnqYbLB1kCdS4H9sz6wW02aXo9fzaQo090DuxABjsamN0leUN7a1L24Eev/B75RhLXYXy9SvKxvd0H+KlepkD4doBKROwuwFu7PMog7jmqvAGBHtSF7dE3jwhE60Rjtt95WkgqQDoRO7W57G3tJgdlPverdlAi0zSDFEkBxXTDZ3xheftVoAhRj365OpFIzFBNN+iYfp2eJwBwI7oc5KylPx5/H3NNMcBvx+EOdEu4pkFlpPnmglJKvsNeCyUWhTIvPi308dnqSoifrrilNHk3UeUXSoaVKxQPIBpbiVLPedkJBQjvuOnOriN/V80+Rk9AE7iRMl/Rvc33Lge1jnRC7AFnJbw9ufG8JgbB4RBnyB1xuIUiCfkvBPoNNfbfuc3mrI7pJYLknAXGSG1Nfuo5DtXqw1JfHGlIDRVbootSqBVrEHXnCvvXOPqpNXe5W4fPhMVYwyJoE1qWZVIYo549dcG50Bz6qQo/YwChUIKCG+vkwiJ+kZd1to35s+aGK1HBP60TOjMYwioPiB0J3/M3JbQ7KSXz1mVcAd73cGnyHgB9vEfSEVf3IjVdd3IYtAZ0/87Pzbeu0m9oZpOhzngr2neJbn+1l5AiNG6RK0dNNmmTQI1DnDmM3hW8Yw0TiGX3oNDtv0X6NXbNna7b0YLh3bAB72PiqadyVxVYPRoHY2vCjRrBQzTNTdRIQuw5d0XhFJ4uazuvp5RMF0d9LLckV+iqel5ldUdQ2m5ZxGNPxoABOhV5MznFqE9GLr4EYDl064VOcFjJBkFaei+XN+H1oaqG8qkntUti9NdXEphwxgKW16MEeWuQ/7T8DCeC8+5nyPVF3kG8ZDYZP0AJtv5/WFPn9DWTo7gQTAt0U3JZVcudQ7i7PfvqWa52Qrpy6zQFVTesAyrq995z6UGiHzqiHGDjelUG8bnN+m5+3MMELQAU+rvc4UFgNJ/Qa1DnWJdkMZSUMq+HBoj5ggFBwlL6yDEiRk34idtLXmIy8cMNrjXG0Lu7Reg/CY07ZYRp4eTLUIrFnr8aknQBWq0xHLQwYmjqO/TT6sz+lPCJRE4+FXSaZVynttWJv1H9gEFDgs5dOMCTkwh1ax9dpwLEsm8QPU2G2v6l5zxrcvc1FWtDlcIfQDWNecuvM7bX+STamlHfN4HA0tSPrgMy10RwE79X37FlpC3eESfEmUU5Sn2Lgz9uBA4NH7R9EMNz8KGVeA5rJ7RFnPlwx9M2vGnChVaxeoKI4N9YVr0sWj8Y/GiCB7I+8JW6gxzc0+15MDOLlvzNhS2ZMRENKhrvs2OGvvIyx6PWlYFTgAfxWyDonD1mngwHu6h40bGM3xDeOv7Fy818u6uTUWm/qnaGrSKdrU1BiGP2+T/qtxeK7EQpceSmVbFgnCFJX4knNvrYC+qhU6emMJiCuIjFxiK/W+tgtp++f9TRhfaX2Nn3oisrMYTXHKcxa6Im1QTRMZLyba1njRXKhNQzygEEkCTaQ8NrCaYQ+6QrvlnuYPzQn9OzFNrFgJg+Kuz73CQU6z3r/jsgZ+AkeDDESoMXDRetY1NclRIMGRy8NB9dur+YrXdNDM3vHq9YjXkOx8QgJCFTV06fUmxBrqgoIb5ZaoiWv8mhOuta+5AztMbzxtggvULoILvLB3E95cabrHIgIIxZOGf5bAP9ltq3Yg6Vo4PnZkOd9Ln2vP3vpB0P0ELJDRwUpey+k7bpQF7VfEqg4k28587tqFvrX2ZbQADLJGKhERGVFehFRuqfS8SaXmWVLB4HriwYl4r8k7NMZwbp/xZM7xBrCXt8bEC2wku5PDUb9PyPcQBnoKnstlLSSwJXS2RBFI87PYgEYHNzmYt8y6z1nNB6PBFxJo3NKrprYK77FMfyPAelQnBc4VstXvPnsZRp8NY97NvtRq6GTKOlwuAtFLIMxZ3pu1wxBNRxH9OfiymV6ahDsAF+F4EmS/fmuLxqRCborsgMUTSlcbZCycyfeLgL9FsLfIadOCee++KvLi4ST9ZHhj7tCBhgayemDhSzcFgeFnsyDkGS9qLs7rnySZzxzAwfjlpsYyjkYpuxXbbWuTIqD39mD6NQpuJDKt2Q9x/OKymV3BMjQ/0F4boL/NdfYS24AFVtW/OIFU+AGkN2d5wNbdGC5NrLUrp3q+mjXtg54TBgW2gp8fUOCTxdPzlDp2baT4Q6uAqCfDg3D4V/4VdxkVSlLbiWEpOTl4VtDlNMNSSXmFf/1tPGphwWKj0Agbbd5QjFulttla8pgAAA/Wf+9Td+Oo61eaZLa3tUfTeOXGCKwWJFXCMqaNfIyBue31jEIGX1TddpAj4QyCopCfwrKjKoRX5n4UwcfwADHiInAdeqVgyLiABR8P6u+q5XYOLFlS5rZ1Kpe7uqoHg6rIvAN/gVp/JR0jDVURc9CTdVvWQNne/upBb3VgGGhdLlbcfVEjHw5HwHeOjIx3HP/lXoWaUdTbiLB7DDLQD+VOaVqCh9An7btAcCd6RzgEW165Hqx2ZXLlq8OLCczkDlN8rCAtz8O+4AzSyPK8grVM8ObUU+qc6ZGcCgxaVvvbiTPP2kb765qIU5/Dj+q60L9YPOU6t+1FP6od8x4iXUpAtBsclYfJhOrwv66P13ocoB3LV1x09Eb5wq33vepBq3qYQJQyOHbj/jl4eLRUxXLQgLorpnB4HNs4v40tGGosw2Ka6eDt5K6P8DQK5ozy56BizczJenDjZ5DYx1Xu3YLmI/quRSR8ORIJqwhWFwM+Q8/gNfUL/YgQHlHmfhYi5vjU0TzsgnLyhP/kOFSnR9zjJkIMcYAFB/Ft1tfks1aQiBMtgP4sabdMsauWXINaIyR9ClOZLdIZQVGHUgLjxKW6YiFUs72zTJmKtf/RovsidqZlmEXrWGZ3UuGplChFUtjEkvwi2XxICgc0grD+9/tRt47usAAADGbVjPUInsKZHILQ8Tdvbj09q/9k2Mg7uynD2e+HudOmr+jOK+SyWmKsSZ4pH89FUSffyxPKUMVNp8o1m1apG/WDvwhmHllHVfELy0BgfyAIevaAuIOzl4NX3ayQnv+tsCnIGxjvF1IwPLyoflKFrL2OBFh3pJ57ChDdzSC9IDKqpaycKVMm2mWUPGBLK2cpD+b4VPleMoNCtKZz4AileaHHtk77gduJB8sihmMPR1lV1Vba4pOywdJgGueqt4IcTd2RJFxeSRNjuzHcR4tYGdli66ijJZC20ODhr8miT+cauMIflgiAAAAA=";
2593
- var _tmpl$$15 = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
2623
+ var _tmpl$$18 = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
2594
2624
  const OASIS_MARK_DATA_URI = `data:image/webp;base64,${oasisMarkBase64}`;
2595
2625
  const MARK_ASPECT = 3 / 4;
2596
2626
  function OasisBrandMark(props) {
2597
2627
  const height = () => props.height ?? 64;
2598
2628
  const width = () => Math.round(height() * MARK_ASPECT);
2599
2629
  return (() => {
2600
- var _el$ = _tmpl$$15();
2630
+ var _el$ = _tmpl$$18();
2601
2631
  setAttribute(_el$, "src", OASIS_MARK_DATA_URI);
2602
2632
  setAttribute(_el$, "draggable", false);
2603
2633
  createRenderEffect((_p$) => {
@@ -2614,7 +2644,7 @@ function OasisBrandMark(props) {
2614
2644
  return _el$;
2615
2645
  })();
2616
2646
  }
2617
- var _tmpl$$14 = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$F = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$r = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2647
+ var _tmpl$$17 = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$I = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$u = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2618
2648
  function OasisEditorLoading(props) {
2619
2649
  const t = useI18n();
2620
2650
  const variant = () => props.variant ?? "overlay";
@@ -2624,7 +2654,7 @@ function OasisEditorLoading(props) {
2624
2654
  };
2625
2655
  const isDone = () => (pct() ?? 0) >= 100;
2626
2656
  return (() => {
2627
- var _el$ = _tmpl$2$F(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
2657
+ var _el$ = _tmpl$2$I(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
2628
2658
  insert(_el$2, createComponent(OasisBrandMark, {
2629
2659
  height: 40,
2630
2660
  "class": "oasis-editor-loading-mark"
@@ -2635,10 +2665,10 @@ function OasisEditorLoading(props) {
2635
2665
  return pct() != null;
2636
2666
  },
2637
2667
  get children() {
2638
- var _el$6 = _tmpl$$14();
2668
+ var _el$6 = _tmpl$$17();
2639
2669
  insert(_el$6, (() => {
2640
2670
  var _c$ = memo(() => !!isDone());
2641
- return () => _c$() ? _tmpl$3$r() : `${pct()}%`;
2671
+ return () => _c$() ? _tmpl$3$u() : `${pct()}%`;
2642
2672
  })());
2643
2673
  return _el$6;
2644
2674
  }
@@ -2689,7 +2719,7 @@ function OasisEditorAppLazy(props = {}) {
2689
2719
  onCleanup(() => {
2690
2720
  cancelled = true;
2691
2721
  });
2692
- import("./OasisEditorApp-B2f15Gpe.js").then((m) => {
2722
+ import("./OasisEditorApp-207_qEC4.js").then((m) => {
2693
2723
  cancelled = true;
2694
2724
  setProgress(1);
2695
2725
  setTimeout(() => setApp(() => m.OasisEditorApp), 180);
@@ -5222,6 +5252,7 @@ const OASIS_BUILTIN_COMMANDS = [
5222
5252
  "imageHeightCm",
5223
5253
  "imageCrop",
5224
5254
  "imageCropAspect",
5255
+ "imageBorder",
5225
5256
  "outdent",
5226
5257
  "indent",
5227
5258
  "togglePageBreakBefore",
@@ -5292,10 +5323,10 @@ function mount(target, props = {}) {
5292
5323
  unmount: () => client.dispose()
5293
5324
  });
5294
5325
  }
5295
- var _tmpl$$13 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg aria-hidden=true>`), _tmpl$2$E = /* @__PURE__ */ template(`<svg><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</svg>`, false, true, false), _tmpl$3$q = /* @__PURE__ */ template(`<svg><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1</svg>`, false, true, false), _tmpl$4$i = /* @__PURE__ */ template(`<svg><g><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25></svg>`, false, true, false), _tmpl$5$b = /* @__PURE__ */ template(`<svg><polyline points="4 7 7 4 10 7"></svg>`, false, true, false), _tmpl$6$8 = /* @__PURE__ */ template(`<svg><line x1=7 y1=4 x2=7 y2=20></svg>`, false, true, false), _tmpl$7$3 = /* @__PURE__ */ template(`<svg><polyline points="4 17 7 20 10 17"></svg>`, false, true, false), _tmpl$8$2 = /* @__PURE__ */ template(`<svg><line x1=13 y1=6 x2=21 y2=6></svg>`, false, true, false), _tmpl$9$1 = /* @__PURE__ */ template(`<svg><line x1=13 y1=12 x2=21 y2=12></svg>`, false, true, false), _tmpl$0$1 = /* @__PURE__ */ template(`<svg><line x1=13 y1=18 x2=21 y2=18></svg>`, false, true, false), _tmpl$1$1 = /* @__PURE__ */ template(`<svg><polyline points="20 6 9 17 4 12"></svg>`, false, true, false), _tmpl$10 = /* @__PURE__ */ template(`<i>`);
5326
+ var _tmpl$$16 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg aria-hidden=true>`), _tmpl$2$H = /* @__PURE__ */ template(`<svg><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</svg>`, false, true, false), _tmpl$3$t = /* @__PURE__ */ template(`<svg><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1</svg>`, false, true, false), _tmpl$4$k = /* @__PURE__ */ template(`<svg><g><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25></svg>`, false, true, false), _tmpl$5$c = /* @__PURE__ */ template(`<svg><polyline points="4 7 7 4 10 7"></svg>`, false, true, false), _tmpl$6$9 = /* @__PURE__ */ template(`<svg><line x1=7 y1=4 x2=7 y2=20></svg>`, false, true, false), _tmpl$7$4 = /* @__PURE__ */ template(`<svg><polyline points="4 17 7 20 10 17"></svg>`, false, true, false), _tmpl$8$2 = /* @__PURE__ */ template(`<svg><line x1=13 y1=6 x2=21 y2=6></svg>`, false, true, false), _tmpl$9 = /* @__PURE__ */ template(`<svg><line x1=13 y1=12 x2=21 y2=12></svg>`, false, true, false), _tmpl$0 = /* @__PURE__ */ template(`<svg><line x1=13 y1=18 x2=21 y2=18></svg>`, false, true, false), _tmpl$1 = /* @__PURE__ */ template(`<svg><polyline points="20 6 9 17 4 12"></svg>`, false, true, false), _tmpl$10 = /* @__PURE__ */ template(`<i>`);
5296
5327
  function SvgIcon(props) {
5297
5328
  return (() => {
5298
- var _el$ = _tmpl$$13();
5329
+ var _el$ = _tmpl$$16();
5299
5330
  insert(_el$, () => props.children);
5300
5331
  createRenderEffect((_p$) => {
5301
5332
  var _v$ = props.width ?? 24, _v$2 = props.height ?? 24, _v$3 = props.viewBox ?? "0 0 24 24", _v$4 = props.fill ?? "none", _v$5 = props.stroke, _v$6 = props["stroke-width"], _v$7 = props["stroke-linecap"], _v$8 = props["stroke-linejoin"], _v$9 = props.class;
@@ -5326,13 +5357,13 @@ function SvgIcon(props) {
5326
5357
  const FootnoteIcon = () => createComponent(SvgIcon, {
5327
5358
  fill: "none",
5328
5359
  get children() {
5329
- return [_tmpl$2$E(), _tmpl$3$q()];
5360
+ return [_tmpl$2$H(), _tmpl$3$t()];
5330
5361
  }
5331
5362
  });
5332
5363
  const SpecialIndentFirstLineIcon = () => createComponent(SvgIcon, {
5333
5364
  fill: "currentColor",
5334
5365
  get children() {
5335
- return _tmpl$4$i();
5366
+ return _tmpl$4$k();
5336
5367
  }
5337
5368
  });
5338
5369
  const LineSpacingIcon = () => createComponent(SvgIcon, {
@@ -5343,7 +5374,7 @@ const LineSpacingIcon = () => createComponent(SvgIcon, {
5343
5374
  "stroke-linecap": "round",
5344
5375
  "stroke-linejoin": "round",
5345
5376
  get children() {
5346
- return [_tmpl$5$b(), _tmpl$6$8(), _tmpl$7$3(), _tmpl$8$2(), _tmpl$9$1(), _tmpl$0$1()];
5377
+ return [_tmpl$5$c(), _tmpl$6$9(), _tmpl$7$4(), _tmpl$8$2(), _tmpl$9(), _tmpl$0()];
5347
5378
  }
5348
5379
  });
5349
5380
  const CheckIcon = (props) => createComponent(SvgIcon, {
@@ -5360,7 +5391,7 @@ const CheckIcon = (props) => createComponent(SvgIcon, {
5360
5391
  "stroke-linecap": "round",
5361
5392
  "stroke-linejoin": "round",
5362
5393
  get children() {
5363
- return _tmpl$1$1();
5394
+ return _tmpl$1();
5364
5395
  }
5365
5396
  });
5366
5397
  const CUSTOM_ICONS = {
@@ -5386,11 +5417,11 @@ function ToolIcon(props) {
5386
5417
  children: (render2) => render2()()
5387
5418
  });
5388
5419
  }
5389
- var _tmpl$$12 = /* @__PURE__ */ template(`<button>`);
5420
+ var _tmpl$$15 = /* @__PURE__ */ template(`<button>`);
5390
5421
  function SurfaceButton(props) {
5391
5422
  const [local, others] = splitProps(props, ["type", "icon", "label", "variant", "size", "active", "class", "classList", "children"]);
5392
5423
  return (() => {
5393
- var _el$ = _tmpl$$12();
5424
+ var _el$ = _tmpl$$15();
5394
5425
  spread(_el$, mergeProps({
5395
5426
  get type() {
5396
5427
  return local.type ?? "button";
@@ -5451,7 +5482,7 @@ function Text$1(props) {
5451
5482
  }
5452
5483
  }));
5453
5484
  }
5454
- var _tmpl$$11 = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$D = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$p = /* @__PURE__ */ template(`<div class=oasis-menubar-menu>`), _tmpl$4$h = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$a = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$6$7 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`);
5485
+ var _tmpl$$14 = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$G = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$s = /* @__PURE__ */ template(`<div class=oasis-menubar-menu>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$b = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$6$8 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`);
5455
5486
  function Menubar(props) {
5456
5487
  const t = useI18n();
5457
5488
  const [activeMenu, setActiveMenu] = createSignal(null);
@@ -5519,13 +5550,13 @@ function Menubar(props) {
5519
5550
  });
5520
5551
  const topLevelItems = () => pruneTree(menuTree());
5521
5552
  return (() => {
5522
- var _el$ = _tmpl$$11();
5553
+ var _el$ = _tmpl$$14();
5523
5554
  insert(_el$, createComponent(For, {
5524
5555
  get each() {
5525
5556
  return topLevelItems();
5526
5557
  },
5527
5558
  children: (topLevel) => (() => {
5528
- var _el$2 = _tmpl$3$p();
5559
+ var _el$2 = _tmpl$3$s();
5529
5560
  _el$2.addEventListener("mouseenter", () => {
5530
5561
  if (activeMenu() && activeMenu() !== topLevel.id) {
5531
5562
  setActiveMenu(topLevel.id);
@@ -5560,7 +5591,7 @@ function Menubar(props) {
5560
5591
  return activeMenu() === topLevel.id;
5561
5592
  },
5562
5593
  get children() {
5563
- var _el$3 = _tmpl$2$D();
5594
+ var _el$3 = _tmpl$2$G();
5564
5595
  insert(_el$3, createComponent(For, {
5565
5596
  get each() {
5566
5597
  return topLevel.children;
@@ -5591,7 +5622,7 @@ function MenuNode(props) {
5591
5622
  } = props;
5592
5623
  const isSeparator = (_a = node.item) == null ? void 0 : _a.separator;
5593
5624
  if (isSeparator) {
5594
- return _tmpl$4$h();
5625
+ return _tmpl$4$j();
5595
5626
  }
5596
5627
  const hasChildren = node.children.length > 0;
5597
5628
  const [showSub, setShowSub] = createSignal(false);
@@ -5667,14 +5698,14 @@ function MenuNode(props) {
5667
5698
  }), createComponent(Show, {
5668
5699
  when: hasChildren,
5669
5700
  get children() {
5670
- return _tmpl$5$a();
5701
+ return _tmpl$5$b();
5671
5702
  }
5672
5703
  }), createComponent(Show, {
5673
5704
  get when() {
5674
5705
  return showSub() && hasChildren;
5675
5706
  },
5676
5707
  get children() {
5677
- var _el$6 = _tmpl$6$7();
5708
+ var _el$6 = _tmpl$6$8();
5678
5709
  insert(_el$6, createComponent(For, {
5679
5710
  get each() {
5680
5711
  return node.children;
@@ -5693,10 +5724,10 @@ function MenuNode(props) {
5693
5724
  }
5694
5725
  });
5695
5726
  }
5696
- var _tmpl$$10 = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
5727
+ var _tmpl$$13 = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
5697
5728
  function TitleBar(props) {
5698
5729
  return (() => {
5699
- var _el$ = _tmpl$$10(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
5730
+ var _el$ = _tmpl$$13(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
5700
5731
  insert(_el$3, () => props.children);
5701
5732
  return _el$;
5702
5733
  })();
@@ -5791,7 +5822,7 @@ function getCaretRectFromSnapshot(snapshot, position2, paragraphOffset) {
5791
5822
  );
5792
5823
  return rectFromBox(slot.left, slot.top, 1, slot.height || line.height);
5793
5824
  }
5794
- var _tmpl$$$ = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$C = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$o = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$g = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$9 = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
5825
+ var _tmpl$$12 = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$F = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$r = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$i = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$a = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
5795
5826
  function OutlinePanel(props) {
5796
5827
  const t = useI18n();
5797
5828
  const [collapsed, setCollapsed] = createSignal(props.defaultCollapsed ?? false);
@@ -5862,13 +5893,13 @@ function OutlinePanel(props) {
5862
5893
  }
5863
5894
  });
5864
5895
  return (() => {
5865
- var _el$ = _tmpl$3$o(), _el$2 = _el$.firstChild, _el$4 = _el$2.firstChild, _el$5 = _el$4.firstChild;
5896
+ var _el$ = _tmpl$3$r(), _el$2 = _el$.firstChild, _el$4 = _el$2.firstChild, _el$5 = _el$4.firstChild;
5866
5897
  insert(_el$2, createComponent(Show, {
5867
5898
  get when() {
5868
5899
  return !collapsed();
5869
5900
  },
5870
5901
  get children() {
5871
- var _el$3 = _tmpl$$$();
5902
+ var _el$3 = _tmpl$$12();
5872
5903
  insert(_el$3, () => t("menu.view.outline") || "Outline");
5873
5904
  return _el$3;
5874
5905
  }
@@ -5879,14 +5910,14 @@ function OutlinePanel(props) {
5879
5910
  return !collapsed();
5880
5911
  },
5881
5912
  get children() {
5882
- var _el$6 = _tmpl$2$C();
5913
+ var _el$6 = _tmpl$2$F();
5883
5914
  insert(_el$6, createComponent(Show, {
5884
5915
  get when() {
5885
5916
  return items().length > 0;
5886
5917
  },
5887
5918
  get fallback() {
5888
5919
  return (() => {
5889
- var _el$7 = _tmpl$4$g();
5920
+ var _el$7 = _tmpl$4$i();
5890
5921
  insert(_el$7, () => t("outline.empty"));
5891
5922
  return _el$7;
5892
5923
  })();
@@ -5897,7 +5928,7 @@ function OutlinePanel(props) {
5897
5928
  return items();
5898
5929
  },
5899
5930
  children: (item) => (() => {
5900
- var _el$8 = _tmpl$5$9();
5931
+ var _el$8 = _tmpl$5$a();
5901
5932
  _el$8.$$click = () => props.onNavigate(item.anchor);
5902
5933
  insert(_el$8, () => item.text);
5903
5934
  createRenderEffect((_p$) => {
@@ -5936,7 +5967,7 @@ function OutlinePanel(props) {
5936
5967
  })();
5937
5968
  }
5938
5969
  delegateEvents(["click"]);
5939
- var _tmpl$$_ = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$B = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
5970
+ var _tmpl$$11 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$E = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
5940
5971
  function ToolbarOverflowManager(props) {
5941
5972
  const t = useI18n();
5942
5973
  const [overflowCount, setOverflowCount] = createSignal(0);
@@ -6080,7 +6111,7 @@ function ToolbarOverflowManager(props) {
6080
6111
  };
6081
6112
  };
6082
6113
  return (() => {
6083
- var _el$ = _tmpl$$_(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
6114
+ var _el$ = _tmpl$$11(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
6084
6115
  var _ref$ = containerRef;
6085
6116
  typeof _ref$ === "function" ? use(_ref$, _el$) : containerRef = _el$;
6086
6117
  var _ref$2 = moreMeasureRef;
@@ -6092,7 +6123,7 @@ function ToolbarOverflowManager(props) {
6092
6123
  return items();
6093
6124
  },
6094
6125
  children: (item) => (() => {
6095
- var _el$7 = _tmpl$2$B();
6126
+ var _el$7 = _tmpl$2$E();
6096
6127
  insert(_el$7, item);
6097
6128
  return _el$7;
6098
6129
  })()
@@ -6168,12 +6199,12 @@ function resolveLabel(item, api) {
6168
6199
  if (item.labelKey) return api.t(item.labelKey);
6169
6200
  return void 0;
6170
6201
  }
6171
- var _tmpl$$Z = /* @__PURE__ */ template(`<span>`), _tmpl$2$A = /* @__PURE__ */ template(`<button type=button>`);
6202
+ var _tmpl$$10 = /* @__PURE__ */ template(`<span>`), _tmpl$2$D = /* @__PURE__ */ template(`<button type=button>`);
6172
6203
  function Button$1(props) {
6173
6204
  const [local, others] = splitProps(props, ["icon", "label", "active", "tooltip", "wide", "ribbonSize", "aria-label", "class", "classList"]);
6174
6205
  const ariaLabel = () => local["aria-label"] || local.tooltip || local.label || "";
6175
6206
  return (() => {
6176
- var _el$ = _tmpl$2$A();
6207
+ var _el$ = _tmpl$2$D();
6177
6208
  spread(_el$, mergeProps({
6178
6209
  get ["class"]() {
6179
6210
  return `oasis-editor-tool-button ${local.class || ""}`;
@@ -6210,7 +6241,7 @@ function Button$1(props) {
6210
6241
  return local.label;
6211
6242
  },
6212
6243
  get children() {
6213
- var _el$2 = _tmpl$$Z();
6244
+ var _el$2 = _tmpl$$10();
6214
6245
  insert(_el$2, () => local.label);
6215
6246
  return _el$2;
6216
6247
  }
@@ -6292,7 +6323,7 @@ function useDismiss(options) {
6292
6323
  });
6293
6324
  });
6294
6325
  }
6295
- var _tmpl$$Y = /* @__PURE__ */ template(`<div>`);
6326
+ var _tmpl$$$ = /* @__PURE__ */ template(`<div>`);
6296
6327
  function Popover(props) {
6297
6328
  let anchorRef;
6298
6329
  let panelRef;
@@ -6309,7 +6340,7 @@ function Popover(props) {
6309
6340
  closeOnEscape: props.closeOnEscape
6310
6341
  });
6311
6342
  const panel = (portalled) => (() => {
6312
- var _el$ = _tmpl$$Y();
6343
+ var _el$ = _tmpl$$$();
6313
6344
  addEventListener(_el$, "mouseleave", props.onPanelMouseLeave);
6314
6345
  var _ref$ = panelRef;
6315
6346
  typeof _ref$ === "function" ? use(_ref$, _el$) : panelRef = _el$;
@@ -6361,20 +6392,20 @@ function Popover(props) {
6361
6392
  }
6362
6393
  })];
6363
6394
  }
6364
- var _tmpl$$X = /* @__PURE__ */ template(`<i data-lucide=chevron-down>`);
6395
+ var _tmpl$$_ = /* @__PURE__ */ template(`<i data-lucide=chevron-down>`);
6365
6396
  function DropdownChevron(props) {
6366
6397
  return (() => {
6367
- var _el$ = _tmpl$$X();
6398
+ var _el$ = _tmpl$$_();
6368
6399
  createRenderEffect(() => className(_el$, `oasis-editor-dropdown-chevron${props.class ? ` ${props.class}` : ""}`));
6369
6400
  return _el$;
6370
6401
  })();
6371
6402
  }
6372
- var _tmpl$$W = /* @__PURE__ */ template(`<div>`), _tmpl$2$z = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$n = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$4$f = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
6403
+ var _tmpl$$Z = /* @__PURE__ */ template(`<div>`), _tmpl$2$C = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$q = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$4$h = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
6373
6404
  function Menu(props) {
6374
6405
  const [open, setOpen] = createSignal(false);
6375
6406
  const ariaLabel = () => props.tooltip || props.label || "";
6376
6407
  return (() => {
6377
- var _el$ = _tmpl$2$z();
6408
+ var _el$ = _tmpl$2$C();
6378
6409
  insert(_el$, createComponent(Popover, {
6379
6410
  get open() {
6380
6411
  return open();
@@ -6389,7 +6420,7 @@ function Menu(props) {
6389
6420
  },
6390
6421
  onPanelMouseLeave: void 0,
6391
6422
  trigger: (api) => (() => {
6392
- var _el$3 = _tmpl$4$f();
6423
+ var _el$3 = _tmpl$4$h();
6393
6424
  _el$3.$$click = () => api.toggle();
6394
6425
  use((el) => api.ref(el), _el$3);
6395
6426
  insert(_el$3, createComponent(Show, {
@@ -6409,7 +6440,7 @@ function Menu(props) {
6409
6440
  return props.label;
6410
6441
  },
6411
6442
  get children() {
6412
- var _el$4 = _tmpl$3$n();
6443
+ var _el$4 = _tmpl$3$q();
6413
6444
  insert(_el$4, () => props.label);
6414
6445
  return _el$4;
6415
6446
  }
@@ -6444,7 +6475,7 @@ function Menu(props) {
6444
6475
  return _el$3;
6445
6476
  })(),
6446
6477
  get children() {
6447
- var _el$2 = _tmpl$$W();
6478
+ var _el$2 = _tmpl$$Z();
6448
6479
  _el$2.$$click = (event) => {
6449
6480
  const el = event.target;
6450
6481
  if (el.closest("button") && !el.closest(".oasis-editor-tool-button-dropdown") && !el.closest(".oasis-editor-toolbar-list-options")) {
@@ -6459,7 +6490,7 @@ function Menu(props) {
6459
6490
  })();
6460
6491
  }
6461
6492
  delegateEvents(["click"]);
6462
- var _tmpl$$V = /* @__PURE__ */ template(`<select>`), _tmpl$2$y = /* @__PURE__ */ template(`<span class=oasis-editor-tool-select-ribbon-large-label>`), _tmpl$3$m = /* @__PURE__ */ template(`<div class=oasis-editor-tool-select-ribbon-large-wrap>`);
6493
+ var _tmpl$$Y = /* @__PURE__ */ template(`<select>`), _tmpl$2$B = /* @__PURE__ */ template(`<span class=oasis-editor-tool-select-ribbon-large-label>`), _tmpl$3$p = /* @__PURE__ */ template(`<div class=oasis-editor-tool-select-ribbon-large-wrap>`);
6463
6494
  function Select(props) {
6464
6495
  let selectRef;
6465
6496
  const [local, others] = splitProps(props, ["wide", "small", "class", "tooltip", "aria-label", "value", "label", "ribbonSize"]);
@@ -6475,7 +6506,7 @@ function Select(props) {
6475
6506
  }
6476
6507
  });
6477
6508
  const select = () => (() => {
6478
- var _el$ = _tmpl$$V();
6509
+ var _el$ = _tmpl$$Y();
6479
6510
  var _ref$ = selectRef;
6480
6511
  typeof _ref$ === "function" ? use(_ref$, _el$) : selectRef = _el$;
6481
6512
  spread(_el$, mergeProps({
@@ -6510,13 +6541,13 @@ function Select(props) {
6510
6541
  return select();
6511
6542
  },
6512
6543
  get children() {
6513
- var _el$2 = _tmpl$3$m();
6544
+ var _el$2 = _tmpl$3$p();
6514
6545
  insert(_el$2, createComponent(Show, {
6515
6546
  get when() {
6516
6547
  return local.label;
6517
6548
  },
6518
6549
  get children() {
6519
- var _el$3 = _tmpl$2$y();
6550
+ var _el$3 = _tmpl$2$B();
6520
6551
  insert(_el$3, () => local.label);
6521
6552
  return _el$3;
6522
6553
  }
@@ -6526,15 +6557,15 @@ function Select(props) {
6526
6557
  }
6527
6558
  });
6528
6559
  }
6529
- var _tmpl$$U = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
6560
+ var _tmpl$$X = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
6530
6561
  function Separator(props) {
6531
6562
  return (() => {
6532
- var _el$ = _tmpl$$U();
6563
+ var _el$ = _tmpl$$X();
6533
6564
  createRenderEffect((_$p) => setStyleProperty(_el$, "display", props.hidden ? "none" : void 0));
6534
6565
  return _el$;
6535
6566
  })();
6536
6567
  }
6537
- var _tmpl$$T = /* @__PURE__ */ template(`<div><button type=button class=oasis-editor-color-split-main></button><button type=button class=oasis-editor-color-split-menu-button aria-haspopup=menu>`);
6568
+ var _tmpl$$W = /* @__PURE__ */ template(`<div><button type=button class=oasis-editor-color-split-main></button><button type=button class=oasis-editor-color-split-menu-button aria-haspopup=menu>`);
6538
6569
  function SplitButton(props) {
6539
6570
  return createComponent(Popover, {
6540
6571
  get open() {
@@ -6553,7 +6584,7 @@ function SplitButton(props) {
6553
6584
  return props.onPanelMouseLeave;
6554
6585
  },
6555
6586
  trigger: (api) => (() => {
6556
- var _el$ = _tmpl$$T(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
6587
+ var _el$ = _tmpl$$W(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
6557
6588
  use((el) => api.ref(el), _el$);
6558
6589
  _el$2.$$click = () => props.onMain();
6559
6590
  insert(_el$2, () => props.mainContent);
@@ -6594,7 +6625,85 @@ function SplitButton(props) {
6594
6625
  });
6595
6626
  }
6596
6627
  delegateEvents(["click"]);
6597
- var _tmpl$$S = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$x = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$4$e = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$5$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$6$6 = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$7$2 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$8$1 = /* @__PURE__ */ template(`<span>`), _tmpl$9 = /* @__PURE__ */ template(`<i data-lucide=slash>`), _tmpl$0 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$1 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
6628
+ var _tmpl$$V = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$2$A = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$3$o = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$4$g = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
6629
+ const normalize = (value) => value.trim().toLowerCase();
6630
+ function ColorGrids(props) {
6631
+ return [(() => {
6632
+ var _el$ = _tmpl$$V(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
6633
+ insert(_el$2, () => props.themeColorsLabel);
6634
+ insert(_el$3, createComponent(For, {
6635
+ get each() {
6636
+ return props.palette.themeColors;
6637
+ },
6638
+ children: (theme) => (() => {
6639
+ var _el$7 = _tmpl$3$o();
6640
+ insert(_el$7, createComponent(For, {
6641
+ get each() {
6642
+ return theme.values;
6643
+ },
6644
+ children: (color) => (() => {
6645
+ var _el$8 = _tmpl$4$g();
6646
+ _el$8.$$click = () => props.onPick(color);
6647
+ _el$8.addEventListener("blur", () => props.onPreview(null));
6648
+ _el$8.addEventListener("focus", () => props.onPreview(color));
6649
+ _el$8.addEventListener("mouseenter", () => props.onPreview(color));
6650
+ setStyleProperty(_el$8, "background-color", color);
6651
+ createRenderEffect((_p$) => {
6652
+ var _v$ = !!(props.activeColor === normalize(color)), _v$2 = `${theme.name} ${color}`, _v$3 = `${theme.name} ${color}`, _v$4 = `${props.testId}-theme-swatch-${color.replace("#", "")}`;
6653
+ _v$ !== _p$.e && _el$8.classList.toggle("oasis-editor-color-swatch-active", _p$.e = _v$);
6654
+ _v$2 !== _p$.t && setAttribute(_el$8, "title", _p$.t = _v$2);
6655
+ _v$3 !== _p$.a && setAttribute(_el$8, "aria-label", _p$.a = _v$3);
6656
+ _v$4 !== _p$.o && setAttribute(_el$8, "data-testid", _p$.o = _v$4);
6657
+ return _p$;
6658
+ }, {
6659
+ e: void 0,
6660
+ t: void 0,
6661
+ a: void 0,
6662
+ o: void 0
6663
+ });
6664
+ return _el$8;
6665
+ })()
6666
+ }));
6667
+ return _el$7;
6668
+ })()
6669
+ }));
6670
+ return _el$;
6671
+ })(), (() => {
6672
+ var _el$4 = _tmpl$2$A(), _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling;
6673
+ insert(_el$5, () => props.standardColorsLabel);
6674
+ insert(_el$6, createComponent(For, {
6675
+ get each() {
6676
+ return props.palette.standardColors;
6677
+ },
6678
+ children: (swatch) => (() => {
6679
+ var _el$9 = _tmpl$4$g();
6680
+ _el$9.$$click = () => props.onPick(swatch.value);
6681
+ _el$9.addEventListener("blur", () => props.onPreview(null));
6682
+ _el$9.addEventListener("focus", () => props.onPreview(swatch.value));
6683
+ _el$9.addEventListener("mouseenter", () => props.onPreview(swatch.value));
6684
+ createRenderEffect((_p$) => {
6685
+ var _v$5 = !!(props.activeColor === normalize(swatch.value)), _v$6 = swatch.value, _v$7 = swatch.name, _v$8 = swatch.name, _v$9 = `${props.testId}-standard-swatch-${swatch.value.replace("#", "")}`;
6686
+ _v$5 !== _p$.e && _el$9.classList.toggle("oasis-editor-color-swatch-active", _p$.e = _v$5);
6687
+ _v$6 !== _p$.t && setStyleProperty(_el$9, "background-color", _p$.t = _v$6);
6688
+ _v$7 !== _p$.a && setAttribute(_el$9, "title", _p$.a = _v$7);
6689
+ _v$8 !== _p$.o && setAttribute(_el$9, "aria-label", _p$.o = _v$8);
6690
+ _v$9 !== _p$.i && setAttribute(_el$9, "data-testid", _p$.i = _v$9);
6691
+ return _p$;
6692
+ }, {
6693
+ e: void 0,
6694
+ t: void 0,
6695
+ a: void 0,
6696
+ o: void 0,
6697
+ i: void 0
6698
+ });
6699
+ return _el$9;
6700
+ })()
6701
+ }));
6702
+ return _el$4;
6703
+ })()];
6704
+ }
6705
+ delegateEvents(["click"]);
6706
+ var _tmpl$$U = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$z = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$n = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$4$f = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$5$9 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$6$7 = /* @__PURE__ */ template(`<span>`), _tmpl$7$3 = /* @__PURE__ */ template(`<i data-lucide=slash>`);
6598
6707
  const normalizeColor = (value) => (value == null ? void 0 : value.trim().toLowerCase()) ?? "";
6599
6708
  function ColorPicker(props) {
6600
6709
  const [isOpen, setIsOpen] = createSignal(false);
@@ -6641,27 +6750,27 @@ function ColorPicker(props) {
6641
6750
  },
6642
6751
  get mainContent() {
6643
6752
  return [(() => {
6644
- var _el$13 = _tmpl$7$2(), _el$14 = _el$13.firstChild, _el$15 = _el$14.nextSibling;
6753
+ var _el$9 = _tmpl$5$9(), _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling;
6645
6754
  createRenderEffect((_p$) => {
6646
6755
  var _v$3 = props.icon, _v$4 = !displayColor(), _v$5 = displayColor() ?? void 0;
6647
- _v$3 !== _p$.e && setAttribute(_el$14, "data-lucide", _p$.e = _v$3);
6648
- _v$4 !== _p$.t && _el$15.classList.toggle("oasis-editor-color-split-indicator-empty", _p$.t = _v$4);
6649
- _v$5 !== _p$.a && setStyleProperty(_el$15, "background-color", _p$.a = _v$5);
6756
+ _v$3 !== _p$.e && setAttribute(_el$0, "data-lucide", _p$.e = _v$3);
6757
+ _v$4 !== _p$.t && _el$1.classList.toggle("oasis-editor-color-split-indicator-empty", _p$.t = _v$4);
6758
+ _v$5 !== _p$.a && setStyleProperty(_el$1, "background-color", _p$.a = _v$5);
6650
6759
  return _p$;
6651
6760
  }, {
6652
6761
  e: void 0,
6653
6762
  t: void 0,
6654
6763
  a: void 0
6655
6764
  });
6656
- return _el$13;
6765
+ return _el$9;
6657
6766
  })(), createComponent(Show, {
6658
6767
  get when() {
6659
6768
  return props.label;
6660
6769
  },
6661
6770
  get children() {
6662
- var _el$16 = _tmpl$8$1();
6663
- insert(_el$16, () => props.label);
6664
- return _el$16;
6771
+ var _el$10 = _tmpl$6$7();
6772
+ insert(_el$10, () => props.label);
6773
+ return _el$10;
6665
6774
  }
6666
6775
  })];
6667
6776
  },
@@ -6671,122 +6780,68 @@ function ColorPicker(props) {
6671
6780
  return clearLabel();
6672
6781
  },
6673
6782
  get children() {
6674
- var _el$ = _tmpl$2$x(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
6783
+ var _el$ = _tmpl$2$z(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
6675
6784
  _el$.$$click = () => applyColor(null);
6676
6785
  insert(_el$2, createComponent(Show, {
6677
6786
  get when() {
6678
6787
  return props.kind === "color";
6679
6788
  },
6680
6789
  get fallback() {
6681
- return _tmpl$9();
6790
+ return _tmpl$7$3();
6682
6791
  },
6683
6792
  get children() {
6684
- return _tmpl$$S();
6793
+ return _tmpl$$U();
6685
6794
  }
6686
6795
  }));
6687
6796
  insert(_el$4, clearLabel);
6688
6797
  createRenderEffect(() => setAttribute(_el$, "data-testid", `${props.testId}-clear`));
6689
6798
  return _el$;
6690
6799
  }
6691
- }), (() => {
6692
- var _el$5 = _tmpl$3$l(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
6693
- insert(_el$6, () => props.themeColorsLabel);
6694
- insert(_el$7, createComponent(For, {
6695
- get each() {
6696
- return props.palette.themeColors;
6697
- },
6698
- children: (theme) => (() => {
6699
- var _el$18 = _tmpl$0();
6700
- insert(_el$18, createComponent(For, {
6701
- get each() {
6702
- return theme.values;
6703
- },
6704
- children: (color) => (() => {
6705
- var _el$19 = _tmpl$1();
6706
- _el$19.$$click = () => applyColor(color);
6707
- _el$19.addEventListener("blur", () => setPreviewColor(null));
6708
- _el$19.addEventListener("focus", () => setPreviewColor(color));
6709
- _el$19.addEventListener("mouseenter", () => setPreviewColor(color));
6710
- setStyleProperty(_el$19, "background-color", color);
6711
- createRenderEffect((_p$) => {
6712
- var _v$6 = !!(activeColor() === normalizeColor(color)), _v$7 = `${theme.name} ${color}`, _v$8 = `${theme.name} ${color}`, _v$9 = `${props.testId}-theme-swatch-${color.replace("#", "")}`;
6713
- _v$6 !== _p$.e && _el$19.classList.toggle("oasis-editor-color-swatch-active", _p$.e = _v$6);
6714
- _v$7 !== _p$.t && setAttribute(_el$19, "title", _p$.t = _v$7);
6715
- _v$8 !== _p$.a && setAttribute(_el$19, "aria-label", _p$.a = _v$8);
6716
- _v$9 !== _p$.o && setAttribute(_el$19, "data-testid", _p$.o = _v$9);
6717
- return _p$;
6718
- }, {
6719
- e: void 0,
6720
- t: void 0,
6721
- a: void 0,
6722
- o: void 0
6723
- });
6724
- return _el$19;
6725
- })()
6726
- }));
6727
- return _el$18;
6728
- })()
6729
- }));
6730
- return _el$5;
6731
- })(), (() => {
6732
- var _el$8 = _tmpl$4$e(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
6733
- insert(_el$9, () => props.standardColorsLabel);
6734
- insert(_el$0, createComponent(For, {
6735
- get each() {
6736
- return props.palette.standardColors;
6737
- },
6738
- children: (swatch) => (() => {
6739
- var _el$20 = _tmpl$1();
6740
- _el$20.$$click = () => applyColor(swatch.value);
6741
- _el$20.addEventListener("blur", () => setPreviewColor(null));
6742
- _el$20.addEventListener("focus", () => setPreviewColor(swatch.value));
6743
- _el$20.addEventListener("mouseenter", () => setPreviewColor(swatch.value));
6744
- createRenderEffect((_p$) => {
6745
- var _v$0 = !!(activeColor() === normalizeColor(swatch.value)), _v$1 = swatch.value, _v$10 = swatch.name, _v$11 = swatch.name, _v$12 = `${props.testId}-standard-swatch-${swatch.value.replace("#", "")}`;
6746
- _v$0 !== _p$.e && _el$20.classList.toggle("oasis-editor-color-swatch-active", _p$.e = _v$0);
6747
- _v$1 !== _p$.t && setStyleProperty(_el$20, "background-color", _p$.t = _v$1);
6748
- _v$10 !== _p$.a && setAttribute(_el$20, "title", _p$.a = _v$10);
6749
- _v$11 !== _p$.o && setAttribute(_el$20, "aria-label", _p$.o = _v$11);
6750
- _v$12 !== _p$.i && setAttribute(_el$20, "data-testid", _p$.i = _v$12);
6751
- return _p$;
6752
- }, {
6753
- e: void 0,
6754
- t: void 0,
6755
- a: void 0,
6756
- o: void 0,
6757
- i: void 0
6758
- });
6759
- return _el$20;
6760
- })()
6761
- }));
6762
- return _el$8;
6763
- })(), createComponent(Show, {
6800
+ }), createComponent(ColorGrids, {
6801
+ get palette() {
6802
+ return props.palette;
6803
+ },
6804
+ get themeColorsLabel() {
6805
+ return props.themeColorsLabel;
6806
+ },
6807
+ get standardColorsLabel() {
6808
+ return props.standardColorsLabel;
6809
+ },
6810
+ get activeColor() {
6811
+ return activeColor();
6812
+ },
6813
+ get testId() {
6814
+ return props.testId;
6815
+ },
6816
+ onPreview: setPreviewColor,
6817
+ onPick: applyColor
6818
+ }), createComponent(Show, {
6764
6819
  get when() {
6765
6820
  return props.palette.allowCustom ?? true;
6766
6821
  },
6767
6822
  get children() {
6768
6823
  return [(() => {
6769
- var _el$1 = _tmpl$5$8(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling;
6770
- _el$1.$$click = () => customColorInputRef == null ? void 0 : customColorInputRef.click();
6771
- insert(_el$11, () => props.moreColorsLabel);
6772
- createRenderEffect(() => setAttribute(_el$1, "data-testid", `${props.testId}-more-colors`));
6773
- return _el$1;
6824
+ var _el$5 = _tmpl$3$n(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
6825
+ _el$5.$$click = () => customColorInputRef == null ? void 0 : customColorInputRef.click();
6826
+ insert(_el$7, () => props.moreColorsLabel);
6827
+ createRenderEffect(() => setAttribute(_el$5, "data-testid", `${props.testId}-more-colors`));
6828
+ return _el$5;
6774
6829
  })(), (() => {
6775
- var _el$12 = _tmpl$6$6();
6776
- _el$12.$$input = (event) => applyColor(event.currentTarget.value);
6830
+ var _el$8 = _tmpl$4$f();
6831
+ _el$8.$$input = (event) => applyColor(event.currentTarget.value);
6777
6832
  var _ref$ = customColorInputRef;
6778
- typeof _ref$ === "function" ? use(_ref$, _el$12) : customColorInputRef = _el$12;
6833
+ typeof _ref$ === "function" ? use(_ref$, _el$8) : customColorInputRef = _el$8;
6779
6834
  createRenderEffect((_p$) => {
6780
6835
  var _v$ = `${props.testId}-custom-input`, _v$2 = props.moreColorsLabel;
6781
- _v$ !== _p$.e && setAttribute(_el$12, "data-testid", _p$.e = _v$);
6782
- _v$2 !== _p$.t && setAttribute(_el$12, "aria-label", _p$.t = _v$2);
6836
+ _v$ !== _p$.e && setAttribute(_el$8, "data-testid", _p$.e = _v$);
6837
+ _v$2 !== _p$.t && setAttribute(_el$8, "aria-label", _p$.t = _v$2);
6783
6838
  return _p$;
6784
6839
  }, {
6785
6840
  e: void 0,
6786
6841
  t: void 0
6787
6842
  });
6788
- createRenderEffect(() => _el$12.value = displayColor() || directApplyColor());
6789
- return _el$12;
6843
+ createRenderEffect(() => _el$8.value = displayColor() || directApplyColor());
6844
+ return _el$8;
6790
6845
  })()];
6791
6846
  }
6792
6847
  })];
@@ -6794,7 +6849,7 @@ function ColorPicker(props) {
6794
6849
  });
6795
6850
  }
6796
6851
  delegateEvents(["click", "input"]);
6797
- var _tmpl$$R = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$w = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$k = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$d = /* @__PURE__ */ template(`<span>`), _tmpl$5$7 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button>`), _tmpl$6$5 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
6852
+ var _tmpl$$T = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$y = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$m = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$e = /* @__PURE__ */ template(`<span>`), _tmpl$5$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button>`), _tmpl$6$6 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
6798
6853
  function GridPicker(props) {
6799
6854
  const t = useI18n();
6800
6855
  const [isOpen, setIsOpen] = createSignal(false);
@@ -6869,7 +6924,7 @@ function GridPicker(props) {
6869
6924
  return h.row === 0 || h.col === 0 ? t("toolbar.table") : `${h.row} × ${h.col}`;
6870
6925
  };
6871
6926
  return (() => {
6872
- var _el$ = _tmpl$3$k();
6927
+ var _el$ = _tmpl$3$m();
6873
6928
  insert(_el$, createComponent(Popover, {
6874
6929
  get open() {
6875
6930
  return isOpen();
@@ -6881,7 +6936,7 @@ function GridPicker(props) {
6881
6936
  col: 0
6882
6937
  }),
6883
6938
  trigger: (api) => (() => {
6884
- var _el$4 = _tmpl$5$7();
6939
+ var _el$4 = _tmpl$5$8();
6885
6940
  _el$4.$$click = () => api.toggle();
6886
6941
  use((el) => api.ref(el), _el$4);
6887
6942
  insert(_el$4, createComponent(ToolIcon, {
@@ -6894,7 +6949,7 @@ function GridPicker(props) {
6894
6949
  return props.label;
6895
6950
  },
6896
6951
  get children() {
6897
- var _el$5 = _tmpl$4$d();
6952
+ var _el$5 = _tmpl$4$e();
6898
6953
  insert(_el$5, () => props.label);
6899
6954
  return _el$5;
6900
6955
  }
@@ -6918,11 +6973,11 @@ function GridPicker(props) {
6918
6973
  })(),
6919
6974
  get children() {
6920
6975
  return [(() => {
6921
- var _el$2 = _tmpl$$R();
6976
+ var _el$2 = _tmpl$$T();
6922
6977
  insert(_el$2, statusLabel);
6923
6978
  return _el$2;
6924
6979
  })(), (() => {
6925
- var _el$3 = _tmpl$2$w();
6980
+ var _el$3 = _tmpl$2$y();
6926
6981
  insert(_el$3, createComponent(For, {
6927
6982
  get each() {
6928
6983
  return rows();
@@ -6932,7 +6987,7 @@ function GridPicker(props) {
6932
6987
  return cols();
6933
6988
  },
6934
6989
  children: (c) => (() => {
6935
- var _el$6 = _tmpl$6$5();
6990
+ var _el$6 = _tmpl$6$6();
6936
6991
  _el$6.$$click = () => selectGridSize(r, c);
6937
6992
  _el$6.$$mousedown = (event) => event.preventDefault();
6938
6993
  _el$6.addEventListener("mouseenter", () => setHover({
@@ -7022,7 +7077,7 @@ const DEFAULT_PALETTE = {
7022
7077
  standardColors: STANDARD_COLORS,
7023
7078
  allowCustom: true
7024
7079
  };
7025
- var _tmpl$$Q = /* @__PURE__ */ template(`<button type=button class=oasis-editor-style-gallery-card role=option><span>`), _tmpl$2$v = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery-grid>`), _tmpl$3$j = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery><div class=oasis-editor-style-gallery-ribbon><div class=oasis-editor-style-gallery-strip role=listbox></div><button type=button class=oasis-editor-style-gallery-expand aria-haspopup=listbox>`), _tmpl$4$c = /* @__PURE__ */ template(`<option>`);
7080
+ var _tmpl$$S = /* @__PURE__ */ template(`<button type=button class=oasis-editor-style-gallery-card role=option><span>`), _tmpl$2$x = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery-grid>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery><div class=oasis-editor-style-gallery-ribbon><div class=oasis-editor-style-gallery-strip role=listbox></div><button type=button class=oasis-editor-style-gallery-expand aria-haspopup=listbox>`), _tmpl$4$d = /* @__PURE__ */ template(`<option>`);
7026
7081
  function getQuickStyles(styles) {
7027
7082
  const applicable = styles.filter((style2) => style2.type !== "table" && (!style2.semiHidden || style2.unhideWhenUsed && style2.isUsed));
7028
7083
  const hasQuickStyles = applicable.some((style2) => style2.qFormat === true);
@@ -7102,7 +7157,7 @@ function StyleGallery(props) {
7102
7157
  return styles();
7103
7158
  },
7104
7159
  children: (style$1) => (() => {
7105
- var _el$ = _tmpl$$Q(), _el$2 = _el$.firstChild;
7160
+ var _el$ = _tmpl$$S(), _el$2 = _el$.firstChild;
7106
7161
  _el$.$$click = () => apply(style$1);
7107
7162
  insert(_el$2, () => style$1.name);
7108
7163
  createRenderEffect((_p$) => {
@@ -7133,7 +7188,7 @@ function StyleGallery(props) {
7133
7188
  panelRole: "listbox",
7134
7189
  panelTestId,
7135
7190
  trigger: (popover) => (() => {
7136
- var _el$4 = _tmpl$3$j(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
7191
+ var _el$4 = _tmpl$3$l(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
7137
7192
  var _ref$ = popover.ref;
7138
7193
  typeof _ref$ === "function" ? use(_ref$, _el$4) : popover.ref = _el$4;
7139
7194
  insert(_el$4, createComponent(Select, {
@@ -7157,7 +7212,7 @@ function StyleGallery(props) {
7157
7212
  return styles();
7158
7213
  },
7159
7214
  children: (style2) => (() => {
7160
- var _el$8 = _tmpl$4$c();
7215
+ var _el$8 = _tmpl$4$d();
7161
7216
  insert(_el$8, () => style2.name);
7162
7217
  createRenderEffect(() => _el$8.value = style2.id);
7163
7218
  return _el$8;
@@ -7183,7 +7238,7 @@ function StyleGallery(props) {
7183
7238
  return _el$4;
7184
7239
  })(),
7185
7240
  get children() {
7186
- var _el$3 = _tmpl$2$v();
7241
+ var _el$3 = _tmpl$2$x();
7187
7242
  _el$3.$$keydown = onPanelKeyDown;
7188
7243
  insert(_el$3, cards);
7189
7244
  return _el$3;
@@ -7191,6 +7246,354 @@ function StyleGallery(props) {
7191
7246
  });
7192
7247
  }
7193
7248
  delegateEvents(["click", "keydown"]);
7249
+ var _tmpl$$R = /* @__PURE__ */ template(`<span class=oasis-editor-wide-menu-button-indicator>`), _tmpl$2$w = /* @__PURE__ */ template(`<span class=oasis-editor-wide-menu-button-icon>`), _tmpl$3$k = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-wide-menu-button"aria-haspopup=menu><span class=oasis-editor-wide-menu-button-label>`);
7250
+ function WideMenuButton(props) {
7251
+ return createComponent(Popover, {
7252
+ get open() {
7253
+ return props.open;
7254
+ },
7255
+ get onOpenChange() {
7256
+ return props.onOpenChange;
7257
+ },
7258
+ panelRole: "menu",
7259
+ get panelClass() {
7260
+ return `oasis-editor-color-menu ${props.panelClass ?? ""}`;
7261
+ },
7262
+ trigger: (api) => (() => {
7263
+ var _el$ = _tmpl$3$k(), _el$4 = _el$.firstChild;
7264
+ _el$.$$click = () => api.toggle();
7265
+ use((el) => api.ref(el), _el$);
7266
+ insert(_el$, createComponent(Show, {
7267
+ get when() {
7268
+ return props.icon;
7269
+ },
7270
+ get children() {
7271
+ var _el$2 = _tmpl$2$w();
7272
+ insert(_el$2, createComponent(ToolIcon, {
7273
+ get name() {
7274
+ return props.icon;
7275
+ }
7276
+ }), null);
7277
+ insert(_el$2, createComponent(Show, {
7278
+ get when() {
7279
+ return props.indicatorColor !== void 0;
7280
+ },
7281
+ get children() {
7282
+ var _el$3 = _tmpl$$R();
7283
+ createRenderEffect((_p$) => {
7284
+ var _v$ = !props.indicatorColor, _v$2 = props.indicatorColor ?? "";
7285
+ _v$ !== _p$.e && _el$3.classList.toggle("oasis-editor-wide-menu-button-indicator-empty", _p$.e = _v$);
7286
+ _v$2 !== _p$.t && setStyleProperty(_el$3, "background-color", _p$.t = _v$2);
7287
+ return _p$;
7288
+ }, {
7289
+ e: void 0,
7290
+ t: void 0
7291
+ });
7292
+ return _el$3;
7293
+ }
7294
+ }), null);
7295
+ return _el$2;
7296
+ }
7297
+ }), _el$4);
7298
+ insert(_el$4, () => props.label);
7299
+ insert(_el$, createComponent(DropdownChevron, {}), null);
7300
+ createRenderEffect((_p$) => {
7301
+ var _v$3 = !!(props.active || api.open), _v$4 = props.disabled, _v$5 = props.tooltip ?? props.label, _v$6 = props.tooltip ?? props.label, _v$7 = api.open, _v$8 = props.testId;
7302
+ _v$3 !== _p$.e && _el$.classList.toggle("oasis-editor-tool-button-active", _p$.e = _v$3);
7303
+ _v$4 !== _p$.t && (_el$.disabled = _p$.t = _v$4);
7304
+ _v$5 !== _p$.a && setAttribute(_el$, "title", _p$.a = _v$5);
7305
+ _v$6 !== _p$.o && setAttribute(_el$, "aria-label", _p$.o = _v$6);
7306
+ _v$7 !== _p$.i && setAttribute(_el$, "aria-expanded", _p$.i = _v$7);
7307
+ _v$8 !== _p$.n && setAttribute(_el$, "data-testid", _p$.n = _v$8);
7308
+ return _p$;
7309
+ }, {
7310
+ e: void 0,
7311
+ t: void 0,
7312
+ a: void 0,
7313
+ o: void 0,
7314
+ i: void 0,
7315
+ n: void 0
7316
+ });
7317
+ return _el$;
7318
+ })(),
7319
+ get children() {
7320
+ return props.children;
7321
+ }
7322
+ });
7323
+ }
7324
+ delegateEvents(["click"]);
7325
+ const LINE_DASH_PATTERN_PT = {
7326
+ solid: [],
7327
+ dot: [0.75, 2.25],
7328
+ sysDot: [0.75, 0.75],
7329
+ dash: [3.75, 2.25],
7330
+ sysDash: [2.25, 2.25],
7331
+ dashDot: [3.75, 2.25, 0.75, 2.25],
7332
+ lgDash: [6, 2.25],
7333
+ lgDashDot: [6, 2.25, 0.75, 2.25],
7334
+ lgDashDotDot: [6, 2.25, 0.75, 2.25, 0.75, 2.25]
7335
+ };
7336
+ const DASH_VALUES = new Set(
7337
+ Object.keys(LINE_DASH_PATTERN_PT)
7338
+ );
7339
+ function parseLineDash(value) {
7340
+ return value && DASH_VALUES.has(value) ? value : void 0;
7341
+ }
7342
+ function lineDashPatternPt(dash) {
7343
+ return LINE_DASH_PATTERN_PT[dash ?? "solid"];
7344
+ }
7345
+ const PICTURE_BORDER_WEIGHTS_PT = [
7346
+ 0.25,
7347
+ 0.5,
7348
+ 0.75,
7349
+ 1,
7350
+ 1.5,
7351
+ 2.25,
7352
+ 3,
7353
+ 4.5,
7354
+ 6
7355
+ ];
7356
+ function formatBorderWeight(widthPt) {
7357
+ const whole = Math.floor(widthPt);
7358
+ const fraction = widthPt - whole;
7359
+ const glyph = fraction === 0.25 ? "¼" : fraction === 0.5 ? "½" : fraction === 0.75 ? "¾" : "";
7360
+ if (!glyph) {
7361
+ return String(whole);
7362
+ }
7363
+ return whole === 0 ? glyph : `${whole}${glyph}`;
7364
+ }
7365
+ const PICTURE_BORDER_DASH_OPTIONS = [
7366
+ { value: "solid", labelKey: "image.borderDash.solid" },
7367
+ { value: "sysDot", labelKey: "image.borderDash.sysDot" },
7368
+ { value: "sysDash", labelKey: "image.borderDash.sysDash" },
7369
+ { value: "dot", labelKey: "image.borderDash.dot" },
7370
+ { value: "dash", labelKey: "image.borderDash.dash" },
7371
+ { value: "dashDot", labelKey: "image.borderDash.dashDot" },
7372
+ { value: "lgDash", labelKey: "image.borderDash.lgDash" },
7373
+ { value: "lgDashDot", labelKey: "image.borderDash.lgDashDot" },
7374
+ { value: "lgDashDotDot", labelKey: "image.borderDash.lgDashDotDot" }
7375
+ ];
7376
+ function dashPreviewArray(dash) {
7377
+ const pattern = lineDashPatternPt(dash);
7378
+ return pattern.length > 0 ? pattern.join(" ") : void 0;
7379
+ }
7380
+ var _tmpl$$Q = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch><i data-lucide=slash></i></span><span>`), _tmpl$2$v = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$3$j = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=oasis-editor-picture-border-flyout role=menu>`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=oasis-editor-picture-border-submenu-row><button type=button class="oasis-editor-color-menu-action oasis-editor-picture-border-submenu-trigger"role=menuitem aria-haspopup=menu><span class=oasis-editor-color-menu-action-swatch><i data-lucide=minus></i></span><span></span><i data-lucide=chevron-right class=oasis-editor-dropdown-chevron>`), _tmpl$6$5 = /* @__PURE__ */ template(`<div class=oasis-editor-picture-border-submenu-row><button type=button class="oasis-editor-color-menu-action oasis-editor-picture-border-submenu-trigger"role=menuitem aria-haspopup=menu><span class=oasis-editor-color-menu-action-swatch><i data-lucide=align-justify></i></span><span></span><i data-lucide=chevron-right class=oasis-editor-dropdown-chevron>`), _tmpl$7$2 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-picture-border-option role=menuitemradio><span class=oasis-editor-picture-border-preview></span><span class=oasis-editor-picture-border-option-label>`), _tmpl$8$1 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-picture-border-option role=menuitemradio><svg class=oasis-editor-picture-border-preview-svg viewBox="0 0 48 4"aria-hidden=true><line x1=0 y1=2 x2=48 y2=2 stroke=currentColor stroke-width=1.5></line></svg><span class=oasis-editor-picture-border-option-label>`);
7381
+ function PictureBorderPicker(props) {
7382
+ const [open, setOpen] = createSignal(false);
7383
+ const [submenu, setSubmenu] = createSignal(null);
7384
+ let customColorInputRef;
7385
+ const activeColor = () => {
7386
+ var _a;
7387
+ return ((_a = props.border) == null ? void 0 : _a.color.toLowerCase()) ?? "";
7388
+ };
7389
+ const close = () => {
7390
+ setOpen(false);
7391
+ setSubmenu(null);
7392
+ };
7393
+ const apply = (patch) => {
7394
+ props.onApply(patch);
7395
+ close();
7396
+ };
7397
+ const toggleSubmenu = (next) => {
7398
+ setSubmenu((current) => current === next ? null : next);
7399
+ };
7400
+ return createComponent(WideMenuButton, {
7401
+ get open() {
7402
+ return open();
7403
+ },
7404
+ onOpenChange: (next) => {
7405
+ if (next) setOpen(true);
7406
+ else close();
7407
+ },
7408
+ icon: "square",
7409
+ get label() {
7410
+ return props.label;
7411
+ },
7412
+ get tooltip() {
7413
+ return props.label;
7414
+ },
7415
+ get testId() {
7416
+ return props.testId;
7417
+ },
7418
+ get disabled() {
7419
+ return props.disabled;
7420
+ },
7421
+ get indicatorColor() {
7422
+ var _a;
7423
+ return ((_a = props.border) == null ? void 0 : _a.color) ?? null;
7424
+ },
7425
+ panelClass: "oasis-editor-picture-border-menu",
7426
+ get children() {
7427
+ return [createComponent(ColorGrids, {
7428
+ get palette() {
7429
+ return props.palette;
7430
+ },
7431
+ get themeColorsLabel() {
7432
+ return props.themeColorsLabel;
7433
+ },
7434
+ get standardColorsLabel() {
7435
+ return props.standardColorsLabel;
7436
+ },
7437
+ get activeColor() {
7438
+ return activeColor();
7439
+ },
7440
+ get testId() {
7441
+ return props.testId;
7442
+ },
7443
+ onPreview: () => void 0,
7444
+ onPick: (color) => apply({
7445
+ color
7446
+ })
7447
+ }), (() => {
7448
+ var _el$ = _tmpl$$Q(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
7449
+ _el$.$$click = () => apply({
7450
+ color: null
7451
+ });
7452
+ insert(_el$3, () => props.noOutlineLabel);
7453
+ createRenderEffect(() => setAttribute(_el$, "data-testid", `${props.testId}-none`));
7454
+ return _el$;
7455
+ })(), (() => {
7456
+ var _el$4 = _tmpl$2$v(), _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling;
7457
+ _el$4.$$click = () => customColorInputRef == null ? void 0 : customColorInputRef.click();
7458
+ insert(_el$6, () => props.moreColorsLabel);
7459
+ createRenderEffect(() => setAttribute(_el$4, "data-testid", `${props.testId}-more-colors`));
7460
+ return _el$4;
7461
+ })(), (() => {
7462
+ var _el$7 = _tmpl$3$j();
7463
+ _el$7.$$input = (event) => apply({
7464
+ color: event.currentTarget.value
7465
+ });
7466
+ var _ref$ = customColorInputRef;
7467
+ typeof _ref$ === "function" ? use(_ref$, _el$7) : customColorInputRef = _el$7;
7468
+ createRenderEffect((_p$) => {
7469
+ var _v$ = `${props.testId}-custom-input`, _v$2 = props.moreColorsLabel;
7470
+ _v$ !== _p$.e && setAttribute(_el$7, "data-testid", _p$.e = _v$);
7471
+ _v$2 !== _p$.t && setAttribute(_el$7, "aria-label", _p$.t = _v$2);
7472
+ return _p$;
7473
+ }, {
7474
+ e: void 0,
7475
+ t: void 0
7476
+ });
7477
+ createRenderEffect(() => {
7478
+ var _a;
7479
+ return _el$7.value = ((_a = props.border) == null ? void 0 : _a.color) ?? "#000000";
7480
+ });
7481
+ return _el$7;
7482
+ })(), (() => {
7483
+ var _el$8 = _tmpl$5$7(), _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling;
7484
+ _el$9.$$click = () => toggleSubmenu("weight");
7485
+ insert(_el$1, () => props.weightLabel);
7486
+ insert(_el$8, createComponent(Show, {
7487
+ get when() {
7488
+ return submenu() === "weight";
7489
+ },
7490
+ get children() {
7491
+ var _el$10 = _tmpl$4$c();
7492
+ insert(_el$10, createComponent(For, {
7493
+ each: PICTURE_BORDER_WEIGHTS_PT,
7494
+ children: (widthPt) => {
7495
+ const isActive = () => {
7496
+ var _a;
7497
+ return ((_a = props.border) == null ? void 0 : _a.widthPt) === widthPt;
7498
+ };
7499
+ return (() => {
7500
+ var _el$16 = _tmpl$7$2(), _el$17 = _el$16.firstChild, _el$18 = _el$17.nextSibling;
7501
+ _el$16.$$click = () => apply({
7502
+ widthPt
7503
+ });
7504
+ setStyleProperty(_el$17, "border-bottom-width", `${widthPt}pt`);
7505
+ insert(_el$18, () => `${formatBorderWeight(widthPt)} pt`);
7506
+ createRenderEffect((_p$) => {
7507
+ var _v$9 = !!isActive(), _v$0 = isActive(), _v$1 = `${props.testId}-weight-${widthPt}`;
7508
+ _v$9 !== _p$.e && _el$16.classList.toggle("oasis-editor-picture-border-option-active", _p$.e = _v$9);
7509
+ _v$0 !== _p$.t && setAttribute(_el$16, "aria-checked", _p$.t = _v$0);
7510
+ _v$1 !== _p$.a && setAttribute(_el$16, "data-testid", _p$.a = _v$1);
7511
+ return _p$;
7512
+ }, {
7513
+ e: void 0,
7514
+ t: void 0,
7515
+ a: void 0
7516
+ });
7517
+ return _el$16;
7518
+ })();
7519
+ }
7520
+ }));
7521
+ return _el$10;
7522
+ }
7523
+ }), null);
7524
+ createRenderEffect((_p$) => {
7525
+ var _v$3 = !!(submenu() === "weight"), _v$4 = `${props.testId}-weight`, _v$5 = submenu() === "weight";
7526
+ _v$3 !== _p$.e && _el$9.classList.toggle("oasis-editor-picture-border-submenu-open", _p$.e = _v$3);
7527
+ _v$4 !== _p$.t && setAttribute(_el$9, "data-testid", _p$.t = _v$4);
7528
+ _v$5 !== _p$.a && setAttribute(_el$9, "aria-expanded", _p$.a = _v$5);
7529
+ return _p$;
7530
+ }, {
7531
+ e: void 0,
7532
+ t: void 0,
7533
+ a: void 0
7534
+ });
7535
+ return _el$8;
7536
+ })(), (() => {
7537
+ var _el$11 = _tmpl$6$5(), _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling;
7538
+ _el$12.$$click = () => toggleSubmenu("dashes");
7539
+ insert(_el$14, () => props.dashesLabel);
7540
+ insert(_el$11, createComponent(Show, {
7541
+ get when() {
7542
+ return submenu() === "dashes";
7543
+ },
7544
+ get children() {
7545
+ var _el$15 = _tmpl$4$c();
7546
+ insert(_el$15, createComponent(For, {
7547
+ get each() {
7548
+ return props.dashOptions;
7549
+ },
7550
+ children: (option) => {
7551
+ const isActive = () => props.border !== null && (props.border.dash ?? "solid") === option.value;
7552
+ return (() => {
7553
+ var _el$19 = _tmpl$8$1(), _el$20 = _el$19.firstChild, _el$21 = _el$20.firstChild, _el$22 = _el$20.nextSibling;
7554
+ _el$19.$$click = () => apply({
7555
+ dash: option.value
7556
+ });
7557
+ insert(_el$22, () => option.label);
7558
+ createRenderEffect((_p$) => {
7559
+ var _v$10 = !!isActive(), _v$11 = isActive(), _v$12 = `${props.testId}-dash-${option.value}`, _v$13 = option.label, _v$14 = dashPreviewArray(option.value);
7560
+ _v$10 !== _p$.e && _el$19.classList.toggle("oasis-editor-picture-border-option-active", _p$.e = _v$10);
7561
+ _v$11 !== _p$.t && setAttribute(_el$19, "aria-checked", _p$.t = _v$11);
7562
+ _v$12 !== _p$.a && setAttribute(_el$19, "data-testid", _p$.a = _v$12);
7563
+ _v$13 !== _p$.o && setAttribute(_el$19, "title", _p$.o = _v$13);
7564
+ _v$14 !== _p$.i && setAttribute(_el$21, "stroke-dasharray", _p$.i = _v$14);
7565
+ return _p$;
7566
+ }, {
7567
+ e: void 0,
7568
+ t: void 0,
7569
+ a: void 0,
7570
+ o: void 0,
7571
+ i: void 0
7572
+ });
7573
+ return _el$19;
7574
+ })();
7575
+ }
7576
+ }));
7577
+ return _el$15;
7578
+ }
7579
+ }), null);
7580
+ createRenderEffect((_p$) => {
7581
+ var _v$6 = !!(submenu() === "dashes"), _v$7 = `${props.testId}-dashes`, _v$8 = submenu() === "dashes";
7582
+ _v$6 !== _p$.e && _el$12.classList.toggle("oasis-editor-picture-border-submenu-open", _p$.e = _v$6);
7583
+ _v$7 !== _p$.t && setAttribute(_el$12, "data-testid", _p$.t = _v$7);
7584
+ _v$8 !== _p$.a && setAttribute(_el$12, "aria-expanded", _p$.a = _v$8);
7585
+ return _p$;
7586
+ }, {
7587
+ e: void 0,
7588
+ t: void 0,
7589
+ a: void 0
7590
+ });
7591
+ return _el$11;
7592
+ })()];
7593
+ }
7594
+ });
7595
+ }
7596
+ delegateEvents(["click", "input"]);
7194
7597
  var _tmpl$$P = /* @__PURE__ */ template(`<option value>`), _tmpl$2$u = /* @__PURE__ */ template(`<option>`), _tmpl$3$i = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
7195
7598
  function renderMenuContent(content, api) {
7196
7599
  if (content.kind === "custom") {
@@ -7433,6 +7836,53 @@ function RenderColorPicker(props) {
7433
7836
  onApply: apply
7434
7837
  });
7435
7838
  }
7839
+ function RenderPictureBorder(props) {
7840
+ const b = bindItem(props.item, props.api);
7841
+ return createComponent(PictureBorderPicker, {
7842
+ get border() {
7843
+ return b.value() ?? null;
7844
+ },
7845
+ get palette() {
7846
+ return props.item.palette ?? DEFAULT_PALETTE;
7847
+ },
7848
+ get disabled() {
7849
+ return b.disabled();
7850
+ },
7851
+ get testId() {
7852
+ return props.item.testId ?? props.item.id;
7853
+ },
7854
+ get label() {
7855
+ return resolveLabel(props.item, props.api) ?? props.api.t("image.border");
7856
+ },
7857
+ get noOutlineLabel() {
7858
+ return props.api.t("image.borderNone");
7859
+ },
7860
+ get moreColorsLabel() {
7861
+ return props.api.t("image.borderMoreColors");
7862
+ },
7863
+ get weightLabel() {
7864
+ return props.api.t("image.borderWeight");
7865
+ },
7866
+ get dashesLabel() {
7867
+ return props.api.t("image.borderDashes");
7868
+ },
7869
+ get themeColorsLabel() {
7870
+ return props.api.t("toolbar.themeColors");
7871
+ },
7872
+ get standardColorsLabel() {
7873
+ return props.api.t("toolbar.standardColors");
7874
+ },
7875
+ get dashOptions() {
7876
+ return PICTURE_BORDER_DASH_OPTIONS.map((option) => ({
7877
+ value: option.value,
7878
+ label: props.api.t(option.labelKey)
7879
+ }));
7880
+ },
7881
+ onApply: (patch) => {
7882
+ props.api.commands.execute(props.item.command, patch);
7883
+ }
7884
+ });
7885
+ }
7436
7886
  function RenderGridPicker(props) {
7437
7887
  const onSelect = (rows, cols) => {
7438
7888
  props.api.commands.execute(props.item.command, {
@@ -7492,6 +7942,7 @@ const TOOLBAR_RENDERERS = {
7492
7942
  select: RenderSelect,
7493
7943
  styleGallery: RenderStyleGallery,
7494
7944
  colorPicker: RenderColorPicker,
7945
+ pictureBorder: RenderPictureBorder,
7495
7946
  gridPicker: RenderGridPicker,
7496
7947
  separator: RenderSeparator,
7497
7948
  group: RenderGroup,
@@ -7602,7 +8053,8 @@ const GROUP_LABEL_KEYS = {
7602
8053
  merge: "ribbon.group.merge",
7603
8054
  cellSize: "ribbon.group.cellSize",
7604
8055
  alignment: "ribbon.group.alignment",
7605
- size: "ribbon.group.size"
8056
+ size: "ribbon.group.size",
8057
+ imageStyles: "ribbon.group.imageStyles"
7606
8058
  };
7607
8059
  function isRibbonTabVisible(id, api) {
7608
8060
  const gatingCommand = CONTEXTUAL_TABS[id];
@@ -7657,7 +8109,8 @@ const RIBBON_GROUP_ORDER = {
7657
8109
  alignment: 50
7658
8110
  },
7659
8111
  imageFormat: {
7660
- size: 10
8112
+ imageStyles: 10,
8113
+ size: 20
7661
8114
  },
7662
8115
  plugins: {
7663
8116
  general: 10
@@ -7736,6 +8189,7 @@ const RIBBON_GROUP_RESIZE_DEFAULTS = {
7736
8189
  alignment: { priority: 50, collapsedIcon: "align-left" }
7737
8190
  },
7738
8191
  imageFormat: {
8192
+ imageStyles: { priority: 30, collapsedIcon: "square" },
7739
8193
  size: { priority: 40, collapsedIcon: "crop" }
7740
8194
  },
7741
8195
  plugins: {
@@ -21371,7 +21825,33 @@ function clamp01(value) {
21371
21825
  if (!Number.isFinite(value) || value < 0) return 0;
21372
21826
  return value > 1 ? 1 : value;
21373
21827
  }
21828
+ function strokeImageBorder(ctx, border, x, y, width, height, rotation) {
21829
+ ctx.save();
21830
+ ctx.translate(x + width / 2, y + height / 2);
21831
+ if (rotation) ctx.rotate(rotation * DEG_TO_RAD$1);
21832
+ ctx.strokeStyle = border.color;
21833
+ ctx.lineWidth = Math.max(1, (border.widthPt ?? 1) * PX_PER_POINT);
21834
+ ctx.setLineDash(
21835
+ lineDashPatternPt(border.dash).map((value) => value * PX_PER_POINT)
21836
+ );
21837
+ ctx.strokeRect(-width / 2, -height / 2, width, height);
21838
+ ctx.restore();
21839
+ }
21374
21840
  function drawImageFragment(ctx, img, image, x, y) {
21841
+ drawImageContent(ctx, img, image, x, y);
21842
+ if (image.border) {
21843
+ strokeImageBorder(
21844
+ ctx,
21845
+ image.border,
21846
+ x,
21847
+ y,
21848
+ image.width,
21849
+ image.height,
21850
+ image.rotation
21851
+ );
21852
+ }
21853
+ }
21854
+ function drawImageContent(ctx, img, image, x, y) {
21375
21855
  const { width, height, crop, fillMode, rotation, flipH, flipV } = image;
21376
21856
  const hasTransform = Boolean(rotation) || Boolean(flipH) || Boolean(flipV);
21377
21857
  if (fillMode === "tile") {
@@ -35598,6 +36078,39 @@ function parseFillMode(picPic) {
35598
36078
  }
35599
36079
  return void 0;
35600
36080
  }
36081
+ function parseImageBorder(drawing) {
36082
+ var _a, _b;
36083
+ const picPic = findElementDeep(drawing, "pic");
36084
+ const spPr = picPic && findElementDeep(picPic, "spPr");
36085
+ if (!spPr) {
36086
+ return void 0;
36087
+ }
36088
+ for (let index = 0; index < spPr.childNodes.length; index += 1) {
36089
+ const node = spPr.childNodes[index];
36090
+ if ((node == null ? void 0 : node.nodeType) !== 1) continue;
36091
+ const el = node;
36092
+ if (el.localName !== "ln") continue;
36093
+ const color = normalizeHexColor(
36094
+ (_a = findElementDeep(el, "srgbClr")) == null ? void 0 : _a.getAttribute("val")
36095
+ );
36096
+ if (!color) {
36097
+ return void 0;
36098
+ }
36099
+ const border = { color };
36100
+ const width = parseOptionalInt(el.getAttribute("w"));
36101
+ if (width !== void 0) {
36102
+ border.widthPt = roundTo(width / EMU_PER_PT, 2);
36103
+ }
36104
+ const dash = parseLineDash(
36105
+ (_b = findElementDeep(el, "prstDash")) == null ? void 0 : _b.getAttribute("val")
36106
+ );
36107
+ if (dash) {
36108
+ border.dash = dash;
36109
+ }
36110
+ return border;
36111
+ }
36112
+ return void 0;
36113
+ }
35601
36114
  function parseXfrm(picPic) {
35602
36115
  const xfrm = findElementDeep(picPic, "xfrm");
35603
36116
  if (!xfrm) {
@@ -35642,6 +36155,7 @@ async function parseDrawingImage(drawing, zip, relsMap, assets) {
35642
36155
  const alt = docPr ? getAttributeValue(docPr, "descr") ?? getAttributeValue(docPr, "title") : null;
35643
36156
  const crop = parseSrcRect(drawing);
35644
36157
  const fillMode = parseFillMode(drawing);
36158
+ const border = parseImageBorder(drawing);
35645
36159
  const xfrm = parseXfrm(drawing);
35646
36160
  const floating = (container == null ? void 0 : container.kind) === "anchor" ? parseFloatingLayout(container.element) : void 0;
35647
36161
  const wrapPolygon = (container == null ? void 0 : container.kind) === "anchor" ? parseWrapPolygon(container.element) : void 0;
@@ -35651,6 +36165,7 @@ async function parseDrawingImage(drawing, zip, relsMap, assets) {
35651
36165
  ...alt !== null ? { alt } : {},
35652
36166
  ...crop ? { crop } : {},
35653
36167
  ...fillMode ? { fillMode } : {},
36168
+ ...border ? { border } : {},
35654
36169
  ...xfrm.rotation !== void 0 ? { rotation: xfrm.rotation } : {},
35655
36170
  ...xfrm.flipH ? { flipH: true } : {},
35656
36171
  ...xfrm.flipV ? { flipV: true } : {},
@@ -37782,7 +38297,7 @@ function importDocxInWorker(buffer, options = {}) {
37782
38297
  const worker = new Worker(
37783
38298
  new URL(
37784
38299
  /* @vite-ignore */
37785
- "" + new URL("assets/importDocxWorker-CCwhxVSR.js", import.meta.url).href,
38300
+ "" + new URL("assets/importDocxWorker-B0cSSI12.js", import.meta.url).href,
37786
38301
  import.meta.url
37787
38302
  ),
37788
38303
  {
@@ -43500,6 +44015,11 @@ const RIBBON_PLACEMENTS = {
43500
44015
  "editor-toolbar-image-crop": { tab: "imageFormat", group: "size", row: 1 },
43501
44016
  "editor-toolbar-image-height": { tab: "imageFormat", group: "size", row: 1 },
43502
44017
  "editor-toolbar-image-width": { tab: "imageFormat", group: "size", row: 2 },
44018
+ "editor-toolbar-image-border": {
44019
+ tab: "imageFormat",
44020
+ group: "imageStyles",
44021
+ row: 1
44022
+ },
43503
44023
  "editor-toolbar-align-left": { tab: "home", group: "paragraph", row: 2 },
43504
44024
  "editor-toolbar-align-center": { tab: "home", group: "paragraph", row: 2 },
43505
44025
  "editor-toolbar-align-right": { tab: "home", group: "paragraph", row: 2 },
@@ -44267,6 +44787,15 @@ function createDefaultToolbarPreset(t) {
44267
44787
  testId: "editor-toolbar-image-width",
44268
44788
  render: (api) => ImageSizeField({ api, dimension: "width" })
44269
44789
  });
44790
+ items.push({
44791
+ type: "pictureBorder",
44792
+ id: "editor-toolbar-image-border",
44793
+ testId: "editor-toolbar-image-border",
44794
+ command: "imageBorder",
44795
+ labelKey: "image.border",
44796
+ tooltipKey: "image.border",
44797
+ ribbonSize: "large"
44798
+ });
44270
44799
  for (const button of ALIGN_BUTTONS) {
44271
44800
  items.push({
44272
44801
  type: "toggle",
@@ -44651,7 +45180,7 @@ export {
44651
45180
  FormField as ay,
44652
45181
  Checkbox as az,
44653
45182
  getPageBodyTop as b,
44654
- getDocumentSectionsCanonical as b$,
45183
+ roundTo as b$,
44655
45184
  resolveEffectiveParagraphStyle as b0,
44656
45185
  resolveEffectiveTextStyleForParagraph as b1,
44657
45186
  EMU_PER_PT as b2,
@@ -44662,33 +45191,33 @@ export {
44662
45191
  getRunEndnoteReference as b7,
44663
45192
  iterateFootnoteReferenceRuns as b8,
44664
45193
  iterateEndnoteReferenceRuns as b9,
44665
- resolveOpenTypeFeatureTags as bA,
44666
- resolveDecorationLineY as bB,
44667
- DOUBLE_STRIKE_OFFSET_PX as bC,
44668
- resolveListLabel as bD,
44669
- getListLabelInset as bE,
44670
- getAlignedListLabelInset as bF,
44671
- getParagraphBorderInsets as bG,
44672
- buildSegmentTable as bH,
44673
- buildCanvasTableLayout as bI,
44674
- resolveCanvasTableWidth as bJ,
44675
- resolveFloatingTableRect as bK,
44676
- paragraphBetweenBorderMatches as bL,
44677
- normalizeFamily as bM,
44678
- ROBOTO_FONT_FILES as bN,
44679
- loadFontAsset as bO,
44680
- OFFICE_COMPAT_FONT_FAMILIES as bP,
44681
- BinaryReader as bQ,
44682
- buildSfnt as bR,
44683
- defaultFontDecoderRegistry as bS,
44684
- SfntFontProgram as bT,
44685
- collectPdfFontFamilies as bU,
44686
- outlineFrom as bV,
44687
- getPageHeaderZoneTop as bW,
44688
- getPageColumnRects as bX,
44689
- findFootnoteReference as bY,
44690
- resolveImporterForFile as bZ,
44691
- roundTo as b_,
45194
+ TEXT_BASELINE_RATIO as bA,
45195
+ resolveOpenTypeFeatureTags as bB,
45196
+ resolveDecorationLineY as bC,
45197
+ DOUBLE_STRIKE_OFFSET_PX as bD,
45198
+ resolveListLabel as bE,
45199
+ getListLabelInset as bF,
45200
+ getAlignedListLabelInset as bG,
45201
+ getParagraphBorderInsets as bH,
45202
+ buildSegmentTable as bI,
45203
+ buildCanvasTableLayout as bJ,
45204
+ resolveCanvasTableWidth as bK,
45205
+ resolveFloatingTableRect as bL,
45206
+ paragraphBetweenBorderMatches as bM,
45207
+ normalizeFamily as bN,
45208
+ ROBOTO_FONT_FILES as bO,
45209
+ loadFontAsset as bP,
45210
+ OFFICE_COMPAT_FONT_FAMILIES as bQ,
45211
+ BinaryReader as bR,
45212
+ buildSfnt as bS,
45213
+ defaultFontDecoderRegistry as bT,
45214
+ SfntFontProgram as bU,
45215
+ collectPdfFontFamilies as bV,
45216
+ outlineFrom as bW,
45217
+ getPageHeaderZoneTop as bX,
45218
+ getPageColumnRects as bY,
45219
+ findFootnoteReference as bZ,
45220
+ resolveImporterForFile as b_,
44692
45221
  imageContentTypeDefaults as ba,
44693
45222
  getRunFieldChar as bb,
44694
45223
  getRunFieldInstruction as bc,
@@ -44700,120 +45229,121 @@ export {
44700
45229
  getTextBoxFloatingGeometry as bi,
44701
45230
  getPresetPathSegments as bj,
44702
45231
  buildListLabels as bk,
44703
- DEFAULT_FONT_SIZE_PX as bl,
44704
- resolveGradientAxis as bm,
44705
- isDoubleUnderlineStyle as bn,
44706
- isWavyUnderlineStyle as bo,
44707
- underlineStyleLineWidthPx as bp,
44708
- WAVY_UNDERLINE_WAVELENGTH_PX as bq,
44709
- WAVY_UNDERLINE_AMPLITUDE_PX as br,
44710
- DOUBLE_UNDERLINE_OFFSET_PX as bs,
44711
- underlineStyleDashArray as bt,
44712
- EMPHASIS_GLYPH as bu,
44713
- rgb255ToHex as bv,
44714
- getImageFloatingGeometry as bw,
44715
- textStyleToFontSizePt as bx,
44716
- resolveTextAlignmentBaselineOffset as by,
44717
- TEXT_BASELINE_RATIO as bz,
45232
+ lineDashPatternPt as bl,
45233
+ DEFAULT_FONT_SIZE_PX as bm,
45234
+ resolveGradientAxis as bn,
45235
+ isDoubleUnderlineStyle as bo,
45236
+ isWavyUnderlineStyle as bp,
45237
+ underlineStyleLineWidthPx as bq,
45238
+ WAVY_UNDERLINE_WAVELENGTH_PX as br,
45239
+ WAVY_UNDERLINE_AMPLITUDE_PX as bs,
45240
+ DOUBLE_UNDERLINE_OFFSET_PX as bt,
45241
+ underlineStyleDashArray as bu,
45242
+ EMPHASIS_GLYPH as bv,
45243
+ rgb255ToHex as bw,
45244
+ getImageFloatingGeometry as bx,
45245
+ textStyleToFontSizePt as by,
45246
+ resolveTextAlignmentBaselineOffset as bz,
44718
45247
  getPageContentWidth as c,
44719
- ActionRow as c$,
44720
- getDocumentParagraphsCanonical as c0,
44721
- getDocumentParagraphs as c1,
44722
- PX_PER_CM as c2,
44723
- getDocumentPageSettings as c3,
44724
- getTableCellContentWidthForParagraph as c4,
44725
- layoutMetricsEpoch as c5,
44726
- bumpLayoutMetricsEpoch as c6,
44727
- createCanvasLayoutSnapshotProvider as c7,
44728
- on as c8,
44729
- debounce as c9,
44730
- isPreciseFontModeEnabled as cA,
44731
- getHeadingLevel as cB,
44732
- togglePreciseFontMode as cC,
44733
- nextFontSizePt as cD,
44734
- previousFontSizePt as cE,
44735
- fontSizePtToPx as cF,
44736
- resolveNamedTextStyle as cG,
44737
- createDefaultToolbarPreset as cH,
44738
- MenuRegistry as cI,
44739
- createToolbarRegistry as cJ,
44740
- Editor as cK,
44741
- resolveCommandRef as cL,
44742
- commandRefName as cM,
44743
- createOasisEditorClient as cN,
44744
- createEditorZoom as cO,
44745
- startLongTaskObserver as cP,
44746
- installGlobalReport as cQ,
44747
- applyStoredPreciseFontPreference as cR,
44748
- getWelcomeSeen as cS,
44749
- isLocalFontAccessSupported as cT,
44750
- EDITOR_SCROLL_PADDING_PX as cU,
44751
- Toolbar as cV,
44752
- OasisEditorLoading as cW,
44753
- I18nProvider as cX,
44754
- createTranslator as cY,
44755
- registerDomStatsSurface as cZ,
44756
- createEditorLogger as c_,
44757
- unwrap as ca,
44758
- perfTimer as cb,
44759
- getRunTextBox as cc,
44760
- createEditorDocument as cd,
44761
- resolveResizedDimensions as ce,
44762
- axisSignForDirection as cf,
44763
- clamp as cg,
44764
- MIN_RESIZE_SIZE_PX as ch,
44765
- resolveTextBoxRenderHeight as ci,
44766
- getToolbarStyleState as cj,
44767
- VERTICAL_HIT_WEIGHT as ck,
44768
- getCachedCanvasImage as cl,
44769
- measureParagraphMinContentWidthPx as cm,
44770
- getEditableBlocksForZone as cn,
44771
- findParagraphLocation as co,
44772
- createSectionBoundaryParagraph as cp,
44773
- normalizePageSettings as cq,
44774
- DEFAULT_EDITOR_PAGE_SETTINGS as cr,
44775
- markStart as cs,
44776
- markEnd as ct,
44777
- getParagraphEntries as cu,
44778
- getParagraphById as cv,
44779
- createEditorFootnote as cw,
44780
- createFootnoteReferenceRun as cx,
44781
- renumberFootnotes as cy,
44782
- preciseFontModeVersion as cz,
45248
+ createEditorLogger as c$,
45249
+ getDocumentSectionsCanonical as c0,
45250
+ getDocumentParagraphsCanonical as c1,
45251
+ getDocumentParagraphs as c2,
45252
+ PX_PER_CM as c3,
45253
+ getDocumentPageSettings as c4,
45254
+ getTableCellContentWidthForParagraph as c5,
45255
+ layoutMetricsEpoch as c6,
45256
+ bumpLayoutMetricsEpoch as c7,
45257
+ createCanvasLayoutSnapshotProvider as c8,
45258
+ on as c9,
45259
+ preciseFontModeVersion as cA,
45260
+ isPreciseFontModeEnabled as cB,
45261
+ getHeadingLevel as cC,
45262
+ togglePreciseFontMode as cD,
45263
+ nextFontSizePt as cE,
45264
+ previousFontSizePt as cF,
45265
+ fontSizePtToPx as cG,
45266
+ resolveNamedTextStyle as cH,
45267
+ createDefaultToolbarPreset as cI,
45268
+ MenuRegistry as cJ,
45269
+ createToolbarRegistry as cK,
45270
+ Editor as cL,
45271
+ resolveCommandRef as cM,
45272
+ commandRefName as cN,
45273
+ createOasisEditorClient as cO,
45274
+ createEditorZoom as cP,
45275
+ startLongTaskObserver as cQ,
45276
+ installGlobalReport as cR,
45277
+ applyStoredPreciseFontPreference as cS,
45278
+ getWelcomeSeen as cT,
45279
+ isLocalFontAccessSupported as cU,
45280
+ EDITOR_SCROLL_PADDING_PX as cV,
45281
+ Toolbar as cW,
45282
+ OasisEditorLoading as cX,
45283
+ I18nProvider as cY,
45284
+ createTranslator as cZ,
45285
+ registerDomStatsSurface as c_,
45286
+ debounce as ca,
45287
+ unwrap as cb,
45288
+ perfTimer as cc,
45289
+ getRunTextBox as cd,
45290
+ createEditorDocument as ce,
45291
+ resolveResizedDimensions as cf,
45292
+ axisSignForDirection as cg,
45293
+ clamp as ch,
45294
+ MIN_RESIZE_SIZE_PX as ci,
45295
+ resolveTextBoxRenderHeight as cj,
45296
+ getToolbarStyleState as ck,
45297
+ VERTICAL_HIT_WEIGHT as cl,
45298
+ getCachedCanvasImage as cm,
45299
+ measureParagraphMinContentWidthPx as cn,
45300
+ getEditableBlocksForZone as co,
45301
+ findParagraphLocation as cp,
45302
+ createSectionBoundaryParagraph as cq,
45303
+ normalizePageSettings as cr,
45304
+ DEFAULT_EDITOR_PAGE_SETTINGS as cs,
45305
+ markStart as ct,
45306
+ markEnd as cu,
45307
+ getParagraphEntries as cv,
45308
+ getParagraphById as cw,
45309
+ createEditorFootnote as cx,
45310
+ createFootnoteReferenceRun as cy,
45311
+ renumberFootnotes as cz,
44783
45312
  domTextMeasurer as d,
44784
- ColorPicker as d0,
44785
- CommandRegistry as d1,
44786
- DEFAULT_PALETTE as d2,
44787
- DialogFooter as d3,
44788
- FieldRow as d4,
44789
- FloatingActionButton as d5,
44790
- GridPicker as d6,
44791
- Heading as d7,
44792
- IconButton as d8,
44793
- Menu as d9,
44794
- OASIS_BUILTIN_COMMANDS as da,
44795
- OASIS_MENU_ITEMS as db,
44796
- OASIS_TOOLBAR_ITEMS as dc,
44797
- OasisEditorAppLazy as dd,
44798
- OasisEditorContainer as de,
44799
- PluginCollection as df,
44800
- Popover as dg,
44801
- RIBBON_TABS as dh,
44802
- Select as di,
44803
- Separator as dj,
44804
- SidePanel as dk,
44805
- SidePanelBody as dl,
44806
- SidePanelFooter as dm,
44807
- SidePanelHeader as dn,
44808
- SplitButton as dp,
44809
- StyleGallery as dq,
44810
- Button$1 as dr,
44811
- buildRibbonTabDefinitions as ds,
44812
- createEditorCommandBus as dt,
44813
- createOasisEditor as du,
44814
- createOasisEditorContainer as dv,
44815
- mount as dw,
44816
- registerToolbarRenderer as dx,
45313
+ ActionRow as d0,
45314
+ ColorPicker as d1,
45315
+ CommandRegistry as d2,
45316
+ DEFAULT_PALETTE as d3,
45317
+ DialogFooter as d4,
45318
+ FieldRow as d5,
45319
+ FloatingActionButton as d6,
45320
+ GridPicker as d7,
45321
+ Heading as d8,
45322
+ IconButton as d9,
45323
+ Menu as da,
45324
+ OASIS_BUILTIN_COMMANDS as db,
45325
+ OASIS_MENU_ITEMS as dc,
45326
+ OASIS_TOOLBAR_ITEMS as dd,
45327
+ OasisEditorAppLazy as de,
45328
+ OasisEditorContainer as df,
45329
+ PluginCollection as dg,
45330
+ Popover as dh,
45331
+ RIBBON_TABS as di,
45332
+ Select as dj,
45333
+ Separator as dk,
45334
+ SidePanel as dl,
45335
+ SidePanelBody as dm,
45336
+ SidePanelFooter as dn,
45337
+ SidePanelHeader as dp,
45338
+ SplitButton as dq,
45339
+ StyleGallery as dr,
45340
+ Button$1 as ds,
45341
+ buildRibbonTabDefinitions as dt,
45342
+ createEditorCommandBus as du,
45343
+ createOasisEditor as dv,
45344
+ createOasisEditorContainer as dw,
45345
+ mount as dx,
45346
+ registerToolbarRenderer as dy,
44817
45347
  estimateTableBlockHeight as e,
44818
45348
  getParagraphText as f,
44819
45349
  getProjectedParagraphBlockHeight as g,