oasis-editor 0.0.116 → 0.0.118

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 (36) hide show
  1. package/dist/{OasisEditorApp-DY_N4M54.js → OasisEditorApp-DxTXNB8H.js} +2148 -859
  2. package/dist/{index-DLKF27_V.js → index-DxemmUXw.js} +1077 -796
  3. package/dist/index.d.ts +2 -2
  4. package/dist/layoutProjection/constants.d.ts +7 -1
  5. package/dist/layoutProjection/footnotePagination.d.ts +0 -1
  6. package/dist/oasis-editor.css +1 -1
  7. package/dist/oasis-editor.js +63 -55
  8. package/dist/oasis-editor.umd.cjs +4 -4
  9. package/dist/ui/components/Dialogs/TablePropertiesDialog.d.ts +2 -99
  10. package/dist/ui/components/Dialogs/font-dialog/FontTab.d.ts +2 -1
  11. package/dist/ui/components/Dialogs/table-properties/AltTextTabPanel.d.ts +3 -0
  12. package/dist/ui/components/Dialogs/table-properties/CellTabPanel.d.ts +3 -0
  13. package/dist/ui/components/Dialogs/table-properties/ColumnTabPanel.d.ts +3 -0
  14. package/dist/ui/components/Dialogs/table-properties/RowTabPanel.d.ts +3 -0
  15. package/dist/ui/components/Dialogs/table-properties/TablePropertiesController.d.ts +12 -0
  16. package/dist/ui/components/Dialogs/table-properties/TablePropertiesTypes.d.ts +160 -0
  17. package/dist/ui/components/Dialogs/table-properties/TableTabPanel.d.ts +6 -0
  18. package/dist/ui/components/Dialogs/table-properties/fields.d.ts +9 -0
  19. package/dist/ui/components/Dialogs/table-properties/useTablePropertiesController.d.ts +4 -0
  20. package/dist/ui/components/Toolbar/primitives/useSurfaceRect.d.ts +20 -0
  21. package/dist/ui/public/ActionRow.d.ts +7 -0
  22. package/dist/ui/public/FieldGroup.d.ts +7 -0
  23. package/dist/ui/public/FieldRow.d.ts +13 -0
  24. package/dist/ui/public/FormField.d.ts +10 -0
  25. package/dist/ui/public/Heading.d.ts +6 -0
  26. package/dist/ui/public/NumberField.d.ts +13 -0
  27. package/dist/ui/public/Radio.d.ts +38 -0
  28. package/dist/ui/public/SelectField.d.ts +2 -0
  29. package/dist/ui/public/StatusText.d.ts +7 -0
  30. package/dist/ui/public/SurfaceButton.d.ts +10 -0
  31. package/dist/ui/public/Text.d.ts +8 -0
  32. package/dist/ui/public/TextAreaField.d.ts +11 -0
  33. package/dist/ui/public/TextField.d.ts +2 -0
  34. package/dist/ui/public/ToggleChip.d.ts +14 -0
  35. package/dist/ui/public/index.d.ts +24 -0
  36. package/package.json +2 -1
@@ -2440,14 +2440,14 @@ function I18nProvider(props) {
2440
2440
  });
2441
2441
  }
2442
2442
  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=";
2443
- var _tmpl$$U = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
2443
+ var _tmpl$$_ = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
2444
2444
  const OASIS_MARK_DATA_URI = `data:image/webp;base64,${oasisMarkBase64}`;
2445
2445
  const MARK_ASPECT = 3 / 4;
2446
2446
  function OasisBrandMark(props) {
2447
2447
  const height = () => props.height ?? 64;
2448
2448
  const width = () => Math.round(height() * MARK_ASPECT);
2449
2449
  return (() => {
2450
- var _el$ = _tmpl$$U();
2450
+ var _el$ = _tmpl$$_();
2451
2451
  setAttribute(_el$, "src", OASIS_MARK_DATA_URI);
2452
2452
  setAttribute(_el$, "draggable", false);
2453
2453
  createRenderEffect((_p$) => {
@@ -2464,7 +2464,7 @@ function OasisBrandMark(props) {
2464
2464
  return _el$;
2465
2465
  })();
2466
2466
  }
2467
- var _tmpl$$T = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$B = /* @__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$q = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2467
+ var _tmpl$$Z = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$C = /* @__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$p = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2468
2468
  function OasisEditorLoading(props) {
2469
2469
  const t = useI18n();
2470
2470
  const variant = () => props.variant ?? "overlay";
@@ -2474,7 +2474,7 @@ function OasisEditorLoading(props) {
2474
2474
  };
2475
2475
  const isDone = () => (pct() ?? 0) >= 100;
2476
2476
  return (() => {
2477
- var _el$ = _tmpl$2$B(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
2477
+ var _el$ = _tmpl$2$C(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
2478
2478
  insert(_el$2, createComponent(OasisBrandMark, {
2479
2479
  height: 40,
2480
2480
  "class": "oasis-editor-loading-mark"
@@ -2485,10 +2485,10 @@ function OasisEditorLoading(props) {
2485
2485
  return pct() != null;
2486
2486
  },
2487
2487
  get children() {
2488
- var _el$6 = _tmpl$$T();
2488
+ var _el$6 = _tmpl$$Z();
2489
2489
  insert(_el$6, (() => {
2490
2490
  var _c$ = memo(() => !!isDone());
2491
- return () => _c$() ? _tmpl$3$q() : `${pct()}%`;
2491
+ return () => _c$() ? _tmpl$3$p() : `${pct()}%`;
2492
2492
  })());
2493
2493
  return _el$6;
2494
2494
  }
@@ -2539,7 +2539,7 @@ function OasisEditorAppLazy(props = {}) {
2539
2539
  onCleanup(() => {
2540
2540
  cancelled = true;
2541
2541
  });
2542
- import("./OasisEditorApp-DY_N4M54.js").then((m) => {
2542
+ import("./OasisEditorApp-DxTXNB8H.js").then((m) => {
2543
2543
  cancelled = true;
2544
2544
  setProgress(1);
2545
2545
  setTimeout(() => setApp(() => m.OasisEditorApp), 180);
@@ -5096,9 +5096,9 @@ function mount(target, props = {}) {
5096
5096
  unmount: () => client.dispose()
5097
5097
  });
5098
5098
  }
5099
- var _tmpl$$S = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$A = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><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>`), _tmpl$3$p = /* @__PURE__ */ template(`<i>`);
5100
- const FootnoteIcon = () => _tmpl$$S();
5101
- const SpecialIndentFirstLineIcon = () => _tmpl$2$A();
5099
+ var _tmpl$$Y = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$B = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><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>`), _tmpl$3$o = /* @__PURE__ */ template(`<i>`);
5100
+ const FootnoteIcon = () => _tmpl$$Y();
5101
+ const SpecialIndentFirstLineIcon = () => _tmpl$2$B();
5102
5102
  const CUSTOM_ICONS = {
5103
5103
  footnote: FootnoteIcon,
5104
5104
  specialIndentFirstLine: SpecialIndentFirstLineIcon
@@ -5113,7 +5113,7 @@ function ToolIcon(props) {
5113
5113
  },
5114
5114
  get fallback() {
5115
5115
  return (() => {
5116
- var _el$3 = _tmpl$3$p();
5116
+ var _el$3 = _tmpl$3$o();
5117
5117
  createRenderEffect(() => setAttribute(_el$3, "data-lucide", props.name));
5118
5118
  return _el$3;
5119
5119
  })();
@@ -5121,7 +5121,72 @@ function ToolIcon(props) {
5121
5121
  children: (render2) => render2()()
5122
5122
  });
5123
5123
  }
5124
- var _tmpl$$R = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$z = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$o = /* @__PURE__ */ template(`<div class=oasis-menubar-menu><div class=oasis-menubar-button role=menuitem aria-haspopup=true>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$f = /* @__PURE__ */ template(`<span class=oasis-menubar-item-icon aria-hidden=true>`), _tmpl$6$8 = /* @__PURE__ */ template(`<span class=oasis-menubar-shortcut>`), _tmpl$7$3 = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`), _tmpl$9$1 = /* @__PURE__ */ template(`<div class=oasis-menubar-item role=menuitem><span class=oasis-menubar-item-main><span>`);
5124
+ var _tmpl$$X = /* @__PURE__ */ template(`<button>`);
5125
+ function SurfaceButton(props) {
5126
+ const [local, others] = splitProps(props, ["type", "icon", "label", "variant", "size", "active", "class", "classList", "children"]);
5127
+ return (() => {
5128
+ var _el$ = _tmpl$$X();
5129
+ spread(_el$, mergeProps({
5130
+ get type() {
5131
+ return local.type ?? "button";
5132
+ },
5133
+ get ["class"]() {
5134
+ return `oasis-editor-ui-surface-button ${local.class ?? ""}`;
5135
+ },
5136
+ get classList() {
5137
+ return {
5138
+ [`oasis-editor-ui-surface-button-${local.variant ?? "ghost"}`]: true,
5139
+ [`oasis-editor-ui-surface-button-${local.size ?? "md"}`]: true,
5140
+ "is-active": local.active,
5141
+ ...local.classList
5142
+ };
5143
+ },
5144
+ get ["aria-label"]() {
5145
+ return local.label;
5146
+ },
5147
+ get title() {
5148
+ return local.label;
5149
+ }
5150
+ }, others), false, true);
5151
+ insert(_el$, createComponent(Show, {
5152
+ get when() {
5153
+ return local.icon;
5154
+ },
5155
+ get children() {
5156
+ return createComponent(ToolIcon, {
5157
+ get name() {
5158
+ return local.icon;
5159
+ }
5160
+ });
5161
+ }
5162
+ }), null);
5163
+ insert(_el$, () => local.children, null);
5164
+ return _el$;
5165
+ })();
5166
+ }
5167
+ function Text$1(props) {
5168
+ const [local, others] = splitProps(props, ["as", "tone", "size", "class", "classList", "children"]);
5169
+ return createComponent(Dynamic, mergeProps({
5170
+ get component() {
5171
+ return local.as ?? "span";
5172
+ },
5173
+ get ["class"]() {
5174
+ return `oasis-editor-ui-text ${local.class ?? ""}`;
5175
+ },
5176
+ get classList() {
5177
+ return {
5178
+ [`oasis-editor-ui-text-${local.tone ?? "default"}`]: true,
5179
+ [`oasis-editor-ui-text-${local.size ?? "md"}`]: true,
5180
+ ...local.classList
5181
+ };
5182
+ }
5183
+ }, others, {
5184
+ get children() {
5185
+ return local.children;
5186
+ }
5187
+ }));
5188
+ }
5189
+ var _tmpl$$W = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$A = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$n = /* @__PURE__ */ template(`<div class=oasis-menubar-menu>`), _tmpl$4$i = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$d = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$6$8 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`);
5125
5190
  function Menubar(props) {
5126
5191
  const t = useI18n();
5127
5192
  const [activeMenu, setActiveMenu] = createSignal(null);
@@ -5189,34 +5254,49 @@ function Menubar(props) {
5189
5254
  });
5190
5255
  const topLevelItems = () => pruneTree(menuTree());
5191
5256
  return (() => {
5192
- var _el$ = _tmpl$$R();
5257
+ var _el$ = _tmpl$$W();
5193
5258
  insert(_el$, createComponent(For, {
5194
5259
  get each() {
5195
5260
  return topLevelItems();
5196
5261
  },
5197
5262
  children: (topLevel) => (() => {
5198
- var _el$2 = _tmpl$3$o(), _el$3 = _el$2.firstChild;
5263
+ var _el$2 = _tmpl$3$n();
5199
5264
  _el$2.addEventListener("mouseenter", () => {
5200
5265
  if (activeMenu() && activeMenu() !== topLevel.id) {
5201
5266
  setActiveMenu(topLevel.id);
5202
5267
  }
5203
5268
  });
5204
- _el$3.$$click = (e) => {
5205
- e.stopPropagation();
5206
- if (activeMenu() === topLevel.id) {
5207
- setActiveMenu(null);
5208
- } else {
5209
- setActiveMenu(topLevel.id);
5269
+ insert(_el$2, createComponent(SurfaceButton, {
5270
+ "class": "oasis-menubar-button",
5271
+ get classList() {
5272
+ return {
5273
+ "oasis-menubar-button-active": activeMenu() === topLevel.id
5274
+ };
5275
+ },
5276
+ onClick: (e) => {
5277
+ e.stopPropagation();
5278
+ if (activeMenu() === topLevel.id) {
5279
+ setActiveMenu(null);
5280
+ } else {
5281
+ setActiveMenu(topLevel.id);
5282
+ }
5283
+ },
5284
+ role: "menuitem",
5285
+ "aria-haspopup": "true",
5286
+ get ["aria-expanded"]() {
5287
+ return activeMenu() === topLevel.id;
5288
+ },
5289
+ get children() {
5290
+ return t("menu." + topLevel.label.toLowerCase()) || topLevel.label;
5210
5291
  }
5211
- };
5212
- insert(_el$3, () => t("menu." + topLevel.label.toLowerCase()) || topLevel.label);
5292
+ }), null);
5213
5293
  insert(_el$2, createComponent(Show, {
5214
5294
  get when() {
5215
5295
  return activeMenu() === topLevel.id;
5216
5296
  },
5217
5297
  get children() {
5218
- var _el$4 = _tmpl$2$z();
5219
- insert(_el$4, createComponent(For, {
5298
+ var _el$3 = _tmpl$2$A();
5299
+ insert(_el$3, createComponent(For, {
5220
5300
  get each() {
5221
5301
  return topLevel.children;
5222
5302
  },
@@ -5228,18 +5308,9 @@ function Menubar(props) {
5228
5308
  onClose: () => setActiveMenu(null)
5229
5309
  })
5230
5310
  }));
5231
- return _el$4;
5311
+ return _el$3;
5232
5312
  }
5233
5313
  }), null);
5234
- createRenderEffect((_p$) => {
5235
- var _v$ = !!(activeMenu() === topLevel.id), _v$2 = activeMenu() === topLevel.id;
5236
- _v$ !== _p$.e && _el$3.classList.toggle("oasis-menubar-button-active", _p$.e = _v$);
5237
- _v$2 !== _p$.t && setAttribute(_el$3, "aria-expanded", _p$.t = _v$2);
5238
- return _p$;
5239
- }, {
5240
- e: void 0,
5241
- t: void 0
5242
- });
5243
5314
  return _el$2;
5244
5315
  })()
5245
5316
  }));
@@ -5255,7 +5326,7 @@ function MenuNode(props) {
5255
5326
  } = props;
5256
5327
  const isSeparator = (_a = node.item) == null ? void 0 : _a.separator;
5257
5328
  if (isSeparator) {
5258
- return _tmpl$4$j();
5329
+ return _tmpl$4$i();
5259
5330
  }
5260
5331
  const hasChildren = node.children.length > 0;
5261
5332
  const [showSub, setShowSub] = createSignal(false);
@@ -5275,78 +5346,92 @@ function MenuNode(props) {
5275
5346
  }
5276
5347
  onClose();
5277
5348
  };
5278
- return (() => {
5279
- var _el$6 = _tmpl$9$1(), _el$7 = _el$6.firstChild, _el$9 = _el$7.firstChild;
5280
- _el$6.$$click = handleClick;
5281
- _el$6.addEventListener("mouseleave", () => {
5282
- if (hasChildren) setShowSub(false);
5283
- });
5284
- _el$6.addEventListener("mouseenter", () => {
5349
+ return createComponent(SurfaceButton, {
5350
+ "class": "oasis-menubar-item",
5351
+ label,
5352
+ onMouseEnter: () => {
5285
5353
  if (hasChildren) setShowSub(true);
5286
- });
5287
- setAttribute(_el$6, "aria-haspopup", hasChildren);
5288
- insert(_el$7, createComponent(Show, {
5289
- get when() {
5290
- return icon();
5291
- },
5292
- get children() {
5293
- var _el$8 = _tmpl$5$f();
5294
- insert(_el$8, createComponent(ToolIcon, {
5295
- get name() {
5296
- return icon();
5297
- }
5298
- }));
5299
- return _el$8;
5300
- }
5301
- }), _el$9);
5302
- insert(_el$9, label);
5303
- insert(_el$6, createComponent(Show, {
5304
- get when() {
5305
- var _a2;
5306
- return (_a2 = node.item) == null ? void 0 : _a2.shortcut;
5307
- },
5308
- get children() {
5309
- var _el$0 = _tmpl$6$8();
5310
- insert(_el$0, () => node.item.shortcut);
5311
- return _el$0;
5312
- }
5313
- }), null);
5314
- insert(_el$6, createComponent(Show, {
5315
- when: hasChildren,
5316
- get children() {
5317
- return _tmpl$7$3();
5318
- }
5319
- }), null);
5320
- insert(_el$6, createComponent(Show, {
5321
- get when() {
5322
- return showSub() && hasChildren;
5323
- },
5324
- get children() {
5325
- var _el$10 = _tmpl$8$2();
5326
- insert(_el$10, createComponent(For, {
5327
- get each() {
5328
- return node.children;
5329
- },
5330
- children: (child) => createComponent(MenuNode, {
5331
- node: child,
5332
- get host() {
5333
- return props.host;
5354
+ },
5355
+ onMouseLeave: () => {
5356
+ if (hasChildren) setShowSub(false);
5357
+ },
5358
+ onClick: handleClick,
5359
+ role: "menuitem",
5360
+ "aria-haspopup": hasChildren,
5361
+ get ["aria-expanded"]() {
5362
+ return showSub();
5363
+ },
5364
+ get children() {
5365
+ return [createComponent(Text$1, {
5366
+ "class": "oasis-menubar-item-main",
5367
+ get children() {
5368
+ return [createComponent(Show, {
5369
+ get when() {
5370
+ return icon();
5334
5371
  },
5335
- onClose
5336
- })
5337
- }));
5338
- return _el$10;
5339
- }
5340
- }), null);
5341
- createRenderEffect(() => setAttribute(_el$6, "aria-expanded", showSub()));
5342
- return _el$6;
5343
- })();
5372
+ get children() {
5373
+ return createComponent(Text$1, {
5374
+ "class": "oasis-menubar-item-icon",
5375
+ "aria-hidden": "true",
5376
+ get children() {
5377
+ return createComponent(ToolIcon, {
5378
+ get name() {
5379
+ return icon();
5380
+ }
5381
+ });
5382
+ }
5383
+ });
5384
+ }
5385
+ }), createComponent(Text$1, {
5386
+ children: label
5387
+ })];
5388
+ }
5389
+ }), createComponent(Show, {
5390
+ get when() {
5391
+ var _a2;
5392
+ return (_a2 = node.item) == null ? void 0 : _a2.shortcut;
5393
+ },
5394
+ get children() {
5395
+ return createComponent(Text$1, {
5396
+ "class": "oasis-menubar-shortcut",
5397
+ get children() {
5398
+ return node.item.shortcut;
5399
+ }
5400
+ });
5401
+ }
5402
+ }), createComponent(Show, {
5403
+ when: hasChildren,
5404
+ get children() {
5405
+ return _tmpl$5$d();
5406
+ }
5407
+ }), createComponent(Show, {
5408
+ get when() {
5409
+ return showSub() && hasChildren;
5410
+ },
5411
+ get children() {
5412
+ var _el$6 = _tmpl$6$8();
5413
+ insert(_el$6, createComponent(For, {
5414
+ get each() {
5415
+ return node.children;
5416
+ },
5417
+ children: (child) => createComponent(MenuNode, {
5418
+ node: child,
5419
+ get host() {
5420
+ return props.host;
5421
+ },
5422
+ onClose
5423
+ })
5424
+ }));
5425
+ return _el$6;
5426
+ }
5427
+ })];
5428
+ }
5429
+ });
5344
5430
  }
5345
- delegateEvents(["click"]);
5346
- var _tmpl$$Q = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
5431
+ var _tmpl$$V = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
5347
5432
  function TitleBar(props) {
5348
5433
  return (() => {
5349
- var _el$ = _tmpl$$Q(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
5434
+ var _el$ = _tmpl$$V(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
5350
5435
  insert(_el$3, () => props.children);
5351
5436
  return _el$;
5352
5437
  })();
@@ -5439,7 +5524,7 @@ function getCaretRectFromSnapshot(snapshot, position2, paragraphOffset) {
5439
5524
  );
5440
5525
  return rectFromBox(slot.left, slot.top, 1, slot.height || line.height);
5441
5526
  }
5442
- var _tmpl$$P = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$y = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$n = /* @__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$e = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
5527
+ var _tmpl$$U = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$z = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$m = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$h = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$c = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
5443
5528
  function OutlinePanel(props) {
5444
5529
  const t = useI18n();
5445
5530
  const [collapsed, setCollapsed] = createSignal(props.defaultCollapsed ?? false);
@@ -5510,13 +5595,13 @@ function OutlinePanel(props) {
5510
5595
  }
5511
5596
  });
5512
5597
  return (() => {
5513
- var _el$ = _tmpl$3$n(), _el$2 = _el$.firstChild, _el$4 = _el$2.firstChild, _el$5 = _el$4.firstChild;
5598
+ var _el$ = _tmpl$3$m(), _el$2 = _el$.firstChild, _el$4 = _el$2.firstChild, _el$5 = _el$4.firstChild;
5514
5599
  insert(_el$2, createComponent(Show, {
5515
5600
  get when() {
5516
5601
  return !collapsed();
5517
5602
  },
5518
5603
  get children() {
5519
- var _el$3 = _tmpl$$P();
5604
+ var _el$3 = _tmpl$$U();
5520
5605
  insert(_el$3, () => t("menu.view.outline") || "Outline");
5521
5606
  return _el$3;
5522
5607
  }
@@ -5527,14 +5612,14 @@ function OutlinePanel(props) {
5527
5612
  return !collapsed();
5528
5613
  },
5529
5614
  get children() {
5530
- var _el$6 = _tmpl$2$y();
5615
+ var _el$6 = _tmpl$2$z();
5531
5616
  insert(_el$6, createComponent(Show, {
5532
5617
  get when() {
5533
5618
  return items().length > 0;
5534
5619
  },
5535
5620
  get fallback() {
5536
5621
  return (() => {
5537
- var _el$7 = _tmpl$4$i();
5622
+ var _el$7 = _tmpl$4$h();
5538
5623
  insert(_el$7, () => t("outline.empty"));
5539
5624
  return _el$7;
5540
5625
  })();
@@ -5545,7 +5630,7 @@ function OutlinePanel(props) {
5545
5630
  return items();
5546
5631
  },
5547
5632
  children: (item) => (() => {
5548
- var _el$8 = _tmpl$5$e();
5633
+ var _el$8 = _tmpl$5$c();
5549
5634
  _el$8.$$click = () => props.onNavigate(item.anchor);
5550
5635
  insert(_el$8, () => item.text);
5551
5636
  createRenderEffect((_p$) => {
@@ -5584,7 +5669,7 @@ function OutlinePanel(props) {
5584
5669
  })();
5585
5670
  }
5586
5671
  delegateEvents(["click"]);
5587
- var _tmpl$$O = /* @__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$x = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
5672
+ var _tmpl$$T = /* @__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$y = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
5588
5673
  function ToolbarOverflowManager(props) {
5589
5674
  const t = useI18n();
5590
5675
  const [overflowCount, setOverflowCount] = createSignal(0);
@@ -5728,7 +5813,7 @@ function ToolbarOverflowManager(props) {
5728
5813
  };
5729
5814
  };
5730
5815
  return (() => {
5731
- var _el$ = _tmpl$$O(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
5816
+ var _el$ = _tmpl$$T(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
5732
5817
  var _ref$ = containerRef;
5733
5818
  typeof _ref$ === "function" ? use(_ref$, _el$) : containerRef = _el$;
5734
5819
  var _ref$2 = moreMeasureRef;
@@ -5740,7 +5825,7 @@ function ToolbarOverflowManager(props) {
5740
5825
  return items();
5741
5826
  },
5742
5827
  children: (item) => (() => {
5743
- var _el$7 = _tmpl$2$x();
5828
+ var _el$7 = _tmpl$2$y();
5744
5829
  insert(_el$7, item);
5745
5830
  return _el$7;
5746
5831
  })()
@@ -5816,12 +5901,12 @@ function resolveLabel(item, api) {
5816
5901
  if (item.labelKey) return api.t(item.labelKey);
5817
5902
  return void 0;
5818
5903
  }
5819
- var _tmpl$$N = /* @__PURE__ */ template(`<span>`), _tmpl$2$w = /* @__PURE__ */ template(`<button type=button>`);
5904
+ var _tmpl$$S = /* @__PURE__ */ template(`<span>`), _tmpl$2$x = /* @__PURE__ */ template(`<button type=button>`);
5820
5905
  function Button$1(props) {
5821
5906
  const [local, others] = splitProps(props, ["icon", "label", "active", "tooltip", "wide", "ribbonSize", "aria-label", "class", "classList"]);
5822
5907
  const ariaLabel = () => local["aria-label"] || local.tooltip || local.label || "";
5823
5908
  return (() => {
5824
- var _el$ = _tmpl$2$w();
5909
+ var _el$ = _tmpl$2$x();
5825
5910
  spread(_el$, mergeProps({
5826
5911
  get ["class"]() {
5827
5912
  return `oasis-editor-tool-button ${local.class || ""}`;
@@ -5858,7 +5943,7 @@ function Button$1(props) {
5858
5943
  return local.label;
5859
5944
  },
5860
5945
  get children() {
5861
- var _el$2 = _tmpl$$N();
5946
+ var _el$2 = _tmpl$$S();
5862
5947
  insert(_el$2, () => local.label);
5863
5948
  return _el$2;
5864
5949
  }
@@ -5940,7 +6025,7 @@ function useDismiss(options) {
5940
6025
  });
5941
6026
  });
5942
6027
  }
5943
- var _tmpl$$M = /* @__PURE__ */ template(`<div>`);
6028
+ var _tmpl$$R = /* @__PURE__ */ template(`<div>`);
5944
6029
  function Popover(props) {
5945
6030
  let anchorRef;
5946
6031
  let panelRef;
@@ -5957,7 +6042,7 @@ function Popover(props) {
5957
6042
  closeOnEscape: props.closeOnEscape
5958
6043
  });
5959
6044
  const panel = (portalled) => (() => {
5960
- var _el$ = _tmpl$$M();
6045
+ var _el$ = _tmpl$$R();
5961
6046
  addEventListener(_el$, "mouseleave", props.onPanelMouseLeave);
5962
6047
  var _ref$ = panelRef;
5963
6048
  typeof _ref$ === "function" ? use(_ref$, _el$) : panelRef = _el$;
@@ -6009,12 +6094,12 @@ function Popover(props) {
6009
6094
  }
6010
6095
  })];
6011
6096
  }
6012
- var _tmpl$$L = /* @__PURE__ */ template(`<div>`), _tmpl$2$v = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$m = /* @__PURE__ */ template(`<i>`), _tmpl$4$h = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$d = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$7 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
6097
+ var _tmpl$$Q = /* @__PURE__ */ template(`<div>`), _tmpl$2$w = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$l = /* @__PURE__ */ template(`<i>`), _tmpl$4$g = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$b = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$7 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
6013
6098
  function Menu(props) {
6014
6099
  const [open, setOpen] = createSignal(false);
6015
6100
  const ariaLabel = () => props.tooltip || props.label || "";
6016
6101
  return (() => {
6017
- var _el$ = _tmpl$2$v();
6102
+ var _el$ = _tmpl$2$w();
6018
6103
  insert(_el$, createComponent(Popover, {
6019
6104
  get open() {
6020
6105
  return open();
@@ -6037,7 +6122,7 @@ function Menu(props) {
6037
6122
  return props.icon;
6038
6123
  },
6039
6124
  get children() {
6040
- var _el$4 = _tmpl$3$m();
6125
+ var _el$4 = _tmpl$3$l();
6041
6126
  createRenderEffect(() => setAttribute(_el$4, "data-lucide", props.icon));
6042
6127
  return _el$4;
6043
6128
  }
@@ -6047,7 +6132,7 @@ function Menu(props) {
6047
6132
  return props.label;
6048
6133
  },
6049
6134
  get children() {
6050
- var _el$5 = _tmpl$4$h();
6135
+ var _el$5 = _tmpl$4$g();
6051
6136
  insert(_el$5, () => props.label);
6052
6137
  return _el$5;
6053
6138
  }
@@ -6057,7 +6142,7 @@ function Menu(props) {
6057
6142
  return !props.hideChevron;
6058
6143
  },
6059
6144
  get children() {
6060
- return _tmpl$5$d();
6145
+ return _tmpl$5$b();
6061
6146
  }
6062
6147
  }), null);
6063
6148
  createRenderEffect((_p$) => {
@@ -6082,7 +6167,7 @@ function Menu(props) {
6082
6167
  return _el$3;
6083
6168
  })(),
6084
6169
  get children() {
6085
- var _el$2 = _tmpl$$L();
6170
+ var _el$2 = _tmpl$$Q();
6086
6171
  _el$2.$$click = (event) => {
6087
6172
  const el = event.target;
6088
6173
  if (el.closest("button") && !el.closest(".oasis-editor-tool-button-dropdown") && !el.closest(".oasis-editor-toolbar-list-options")) {
@@ -6097,7 +6182,7 @@ function Menu(props) {
6097
6182
  })();
6098
6183
  }
6099
6184
  delegateEvents(["click"]);
6100
- var _tmpl$$K = /* @__PURE__ */ template(`<select>`);
6185
+ var _tmpl$$P = /* @__PURE__ */ template(`<select>`);
6101
6186
  function Select(props) {
6102
6187
  let selectRef;
6103
6188
  const [local, others] = splitProps(props, ["wide", "small", "class", "tooltip", "aria-label", "value"]);
@@ -6113,7 +6198,7 @@ function Select(props) {
6113
6198
  }
6114
6199
  });
6115
6200
  return (() => {
6116
- var _el$ = _tmpl$$K();
6201
+ var _el$ = _tmpl$$P();
6117
6202
  var _ref$ = selectRef;
6118
6203
  typeof _ref$ === "function" ? use(_ref$, _el$) : selectRef = _el$;
6119
6204
  spread(_el$, mergeProps({
@@ -6140,15 +6225,15 @@ function Select(props) {
6140
6225
  return _el$;
6141
6226
  })();
6142
6227
  }
6143
- var _tmpl$$J = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
6228
+ var _tmpl$$O = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
6144
6229
  function Separator(props) {
6145
6230
  return (() => {
6146
- var _el$ = _tmpl$$J();
6231
+ var _el$ = _tmpl$$O();
6147
6232
  createRenderEffect((_$p) => setStyleProperty(_el$, "display", props.hidden ? "none" : void 0));
6148
6233
  return _el$;
6149
6234
  })();
6150
6235
  }
6151
- var _tmpl$$I = /* @__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><i data-lucide=chevron-down>`);
6236
+ var _tmpl$$N = /* @__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><i data-lucide=chevron-down>`);
6152
6237
  function SplitButton(props) {
6153
6238
  return createComponent(Popover, {
6154
6239
  get open() {
@@ -6167,7 +6252,7 @@ function SplitButton(props) {
6167
6252
  return props.onPanelMouseLeave;
6168
6253
  },
6169
6254
  trigger: (api) => (() => {
6170
- var _el$ = _tmpl$$I(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
6255
+ var _el$ = _tmpl$$N(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
6171
6256
  use((el) => api.ref(el), _el$);
6172
6257
  _el$2.$$click = () => props.onMain();
6173
6258
  insert(_el$2, () => props.mainContent);
@@ -6205,7 +6290,7 @@ function SplitButton(props) {
6205
6290
  });
6206
6291
  }
6207
6292
  delegateEvents(["click"]);
6208
- var _tmpl$$H = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$u = /* @__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$g = /* @__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$c = /* @__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(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
6293
+ var _tmpl$$M = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$v = /* @__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$k = /* @__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$f = /* @__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$a = /* @__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(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
6209
6294
  const normalizeColor = (value) => (value == null ? void 0 : value.trim().toLowerCase()) ?? "";
6210
6295
  function ColorPicker(props) {
6211
6296
  const [isOpen, setIsOpen] = createSignal(false);
@@ -6270,7 +6355,7 @@ function ColorPicker(props) {
6270
6355
  return clearLabel();
6271
6356
  },
6272
6357
  get children() {
6273
- var _el$ = _tmpl$2$u(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
6358
+ var _el$ = _tmpl$2$v(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
6274
6359
  _el$.$$click = () => applyColor(null);
6275
6360
  insert(_el$2, createComponent(Show, {
6276
6361
  get when() {
@@ -6280,7 +6365,7 @@ function ColorPicker(props) {
6280
6365
  return _tmpl$8$1();
6281
6366
  },
6282
6367
  get children() {
6283
- return _tmpl$$H();
6368
+ return _tmpl$$M();
6284
6369
  }
6285
6370
  }));
6286
6371
  insert(_el$4, clearLabel);
@@ -6288,7 +6373,7 @@ function ColorPicker(props) {
6288
6373
  return _el$;
6289
6374
  }
6290
6375
  }), (() => {
6291
- var _el$5 = _tmpl$3$l(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
6376
+ var _el$5 = _tmpl$3$k(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
6292
6377
  insert(_el$6, () => props.themeColorsLabel);
6293
6378
  insert(_el$7, createComponent(For, {
6294
6379
  get each() {
@@ -6328,7 +6413,7 @@ function ColorPicker(props) {
6328
6413
  }));
6329
6414
  return _el$5;
6330
6415
  })(), (() => {
6331
- var _el$8 = _tmpl$4$g(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
6416
+ var _el$8 = _tmpl$4$f(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
6332
6417
  insert(_el$9, () => props.standardColorsLabel);
6333
6418
  insert(_el$0, createComponent(For, {
6334
6419
  get each() {
@@ -6365,7 +6450,7 @@ function ColorPicker(props) {
6365
6450
  },
6366
6451
  get children() {
6367
6452
  return [(() => {
6368
- var _el$1 = _tmpl$5$c(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling;
6453
+ var _el$1 = _tmpl$5$a(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling;
6369
6454
  _el$1.$$click = () => customColorInputRef == null ? void 0 : customColorInputRef.click();
6370
6455
  insert(_el$11, () => props.moreColorsLabel);
6371
6456
  createRenderEffect(() => setAttribute(_el$1, "data-testid", `${props.testId}-more-colors`));
@@ -6393,7 +6478,7 @@ function ColorPicker(props) {
6393
6478
  });
6394
6479
  }
6395
6480
  delegateEvents(["click", "input"]);
6396
- var _tmpl$$G = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$t = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$k = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$f = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$b = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
6481
+ var _tmpl$$L = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$u = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$j = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$e = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
6397
6482
  function GridPicker(props) {
6398
6483
  const t = useI18n();
6399
6484
  const [isOpen, setIsOpen] = createSignal(false);
@@ -6468,7 +6553,7 @@ function GridPicker(props) {
6468
6553
  return h.row === 0 || h.col === 0 ? t("toolbar.table") : `${h.row} × ${h.col}`;
6469
6554
  };
6470
6555
  return (() => {
6471
- var _el$ = _tmpl$3$k();
6556
+ var _el$ = _tmpl$3$j();
6472
6557
  insert(_el$, createComponent(Popover, {
6473
6558
  get open() {
6474
6559
  return isOpen();
@@ -6480,7 +6565,7 @@ function GridPicker(props) {
6480
6565
  col: 0
6481
6566
  }),
6482
6567
  trigger: (api) => (() => {
6483
- var _el$4 = _tmpl$4$f(), _el$5 = _el$4.firstChild;
6568
+ var _el$4 = _tmpl$4$e(), _el$5 = _el$4.firstChild;
6484
6569
  _el$4.$$click = () => api.toggle();
6485
6570
  use((el) => api.ref(el), _el$4);
6486
6571
  createRenderEffect((_p$) => {
@@ -6502,11 +6587,11 @@ function GridPicker(props) {
6502
6587
  })(),
6503
6588
  get children() {
6504
6589
  return [(() => {
6505
- var _el$2 = _tmpl$$G();
6590
+ var _el$2 = _tmpl$$L();
6506
6591
  insert(_el$2, statusLabel);
6507
6592
  return _el$2;
6508
6593
  })(), (() => {
6509
- var _el$3 = _tmpl$2$t();
6594
+ var _el$3 = _tmpl$2$u();
6510
6595
  insert(_el$3, createComponent(For, {
6511
6596
  get each() {
6512
6597
  return rows();
@@ -6516,7 +6601,7 @@ function GridPicker(props) {
6516
6601
  return cols();
6517
6602
  },
6518
6603
  children: (c) => (() => {
6519
- var _el$6 = _tmpl$5$b();
6604
+ var _el$6 = _tmpl$5$9();
6520
6605
  _el$6.$$click = () => selectGridSize(r, c);
6521
6606
  _el$6.$$mousedown = (event) => event.preventDefault();
6522
6607
  _el$6.addEventListener("mouseenter", () => setHover({
@@ -6606,7 +6691,7 @@ const DEFAULT_PALETTE = {
6606
6691
  standardColors: STANDARD_COLORS,
6607
6692
  allowCustom: true
6608
6693
  };
6609
- var _tmpl$$F = /* @__PURE__ */ template(`<button type=button class=oasis-editor-style-gallery-card role=option><span>`), _tmpl$2$s = /* @__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><i data-lucide=chevron-down>`), _tmpl$4$e = /* @__PURE__ */ template(`<option>`);
6694
+ var _tmpl$$K = /* @__PURE__ */ template(`<button type=button class=oasis-editor-style-gallery-card role=option><span>`), _tmpl$2$t = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery-grid>`), _tmpl$3$i = /* @__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><i data-lucide=chevron-down>`), _tmpl$4$d = /* @__PURE__ */ template(`<option>`);
6610
6695
  function getQuickStyles(styles) {
6611
6696
  const applicable = styles.filter((style2) => style2.type !== "table" && (!style2.semiHidden || style2.unhideWhenUsed && style2.isUsed));
6612
6697
  const hasQuickStyles = applicable.some((style2) => style2.qFormat === true);
@@ -6686,7 +6771,7 @@ function StyleGallery(props) {
6686
6771
  return styles();
6687
6772
  },
6688
6773
  children: (style$1) => (() => {
6689
- var _el$ = _tmpl$$F(), _el$2 = _el$.firstChild;
6774
+ var _el$ = _tmpl$$K(), _el$2 = _el$.firstChild;
6690
6775
  _el$.$$click = () => apply(style$1);
6691
6776
  insert(_el$2, () => style$1.name);
6692
6777
  createRenderEffect((_p$) => {
@@ -6717,7 +6802,7 @@ function StyleGallery(props) {
6717
6802
  panelRole: "listbox",
6718
6803
  panelTestId,
6719
6804
  trigger: (popover) => (() => {
6720
- var _el$4 = _tmpl$3$j(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
6805
+ var _el$4 = _tmpl$3$i(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
6721
6806
  var _ref$ = popover.ref;
6722
6807
  typeof _ref$ === "function" ? use(_ref$, _el$4) : popover.ref = _el$4;
6723
6808
  insert(_el$4, createComponent(Select, {
@@ -6741,7 +6826,7 @@ function StyleGallery(props) {
6741
6826
  return styles();
6742
6827
  },
6743
6828
  children: (style2) => (() => {
6744
- var _el$8 = _tmpl$4$e();
6829
+ var _el$8 = _tmpl$4$d();
6745
6830
  insert(_el$8, () => style2.name);
6746
6831
  createRenderEffect(() => _el$8.value = style2.id);
6747
6832
  return _el$8;
@@ -6766,7 +6851,7 @@ function StyleGallery(props) {
6766
6851
  return _el$4;
6767
6852
  })(),
6768
6853
  get children() {
6769
- var _el$3 = _tmpl$2$s();
6854
+ var _el$3 = _tmpl$2$t();
6770
6855
  _el$3.$$keydown = onPanelKeyDown;
6771
6856
  insert(_el$3, cards);
6772
6857
  return _el$3;
@@ -6774,7 +6859,7 @@ function StyleGallery(props) {
6774
6859
  });
6775
6860
  }
6776
6861
  delegateEvents(["click", "keydown"]);
6777
- var _tmpl$$E = /* @__PURE__ */ template(`<option value>`), _tmpl$2$r = /* @__PURE__ */ template(`<option>`), _tmpl$3$i = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
6862
+ var _tmpl$$J = /* @__PURE__ */ template(`<option value>`), _tmpl$2$s = /* @__PURE__ */ template(`<option>`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
6778
6863
  function renderMenuContent(content, api) {
6779
6864
  if (content.kind === "custom") {
6780
6865
  return content.render(api);
@@ -6956,7 +7041,7 @@ function RenderSelect(props) {
6956
7041
  return props.item.placeholder !== void 0;
6957
7042
  },
6958
7043
  get children() {
6959
- var _el$ = _tmpl$$E();
7044
+ var _el$ = _tmpl$$J();
6960
7045
  insert(_el$, () => props.item.placeholder);
6961
7046
  return _el$;
6962
7047
  }
@@ -6965,7 +7050,7 @@ function RenderSelect(props) {
6965
7050
  return props.item.options(props.api);
6966
7051
  },
6967
7052
  children: (option) => (() => {
6968
- var _el$2 = _tmpl$2$r();
7053
+ var _el$2 = _tmpl$2$s();
6969
7054
  insert(_el$2, () => option.label);
6970
7055
  createRenderEffect(() => _el$2.value = option.value);
6971
7056
  return _el$2;
@@ -7103,7 +7188,7 @@ function ToolbarItemRenderer(props) {
7103
7188
  const binding = bindItem(props.item, props.api);
7104
7189
  const component = () => resolveRenderer(props.item.type);
7105
7190
  return (() => {
7106
- var _el$3 = _tmpl$3$i();
7191
+ var _el$3 = _tmpl$3$h();
7107
7192
  insert(_el$3, createComponent(Show, {
7108
7193
  get when() {
7109
7194
  return component();
@@ -7514,7 +7599,7 @@ function resolveResponsiveRibbonGroups(groups, availableWidth, measurements = {}
7514
7599
  allocatedWidth: allocatedWidths.get(group.id)
7515
7600
  }));
7516
7601
  }
7517
- var _tmpl$$D = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-tabs role=tablist>`), _tmpl$2$q = /* @__PURE__ */ template(`<button type=button class=oasis-editor-ribbon-tab role=tab>`);
7602
+ var _tmpl$$I = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-tabs role=tablist>`), _tmpl$2$r = /* @__PURE__ */ template(`<button type=button class=oasis-editor-ribbon-tab role=tab>`);
7518
7603
  function RibbonTabs(props) {
7519
7604
  const tabs = buildRibbonTabDefinitions(useI18n());
7520
7605
  const moveTab = (current, delta) => {
@@ -7523,11 +7608,11 @@ function RibbonTabs(props) {
7523
7608
  if (next) props.setActiveTab(next.id);
7524
7609
  };
7525
7610
  return (() => {
7526
- var _el$ = _tmpl$$D();
7611
+ var _el$ = _tmpl$$I();
7527
7612
  insert(_el$, createComponent(For, {
7528
7613
  each: tabs,
7529
7614
  children: (tab) => (() => {
7530
- var _el$2 = _tmpl$2$q();
7615
+ var _el$2 = _tmpl$2$r();
7531
7616
  _el$2.$$keydown = (event) => {
7532
7617
  if (event.key === "ArrowRight") {
7533
7618
  event.preventDefault();
@@ -7569,10 +7654,10 @@ function RibbonTabs(props) {
7569
7654
  })();
7570
7655
  }
7571
7656
  delegateEvents(["click", "keydown"]);
7572
- var _tmpl$$C = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-row>`);
7657
+ var _tmpl$$H = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-row>`);
7573
7658
  function RibbonRow(props) {
7574
7659
  return (() => {
7575
- var _el$ = _tmpl$$C();
7660
+ var _el$ = _tmpl$$H();
7576
7661
  insert(_el$, createComponent(For, {
7577
7662
  get each() {
7578
7663
  return props.items;
@@ -7587,7 +7672,7 @@ function RibbonRow(props) {
7587
7672
  return _el$;
7588
7673
  })();
7589
7674
  }
7590
- var _tmpl$$B = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-large-items>`), _tmpl$2$p = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows><div class=oasis-editor-ribbon-normal-rows>`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-label>`), _tmpl$4$d = /* @__PURE__ */ template(`<section class=oasis-editor-ribbon-group>`), _tmpl$5$a = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-collapsed-items>`), _tmpl$6$5 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows>`);
7675
+ var _tmpl$$G = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-large-items>`), _tmpl$2$q = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows><div class=oasis-editor-ribbon-normal-rows>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-label>`), _tmpl$4$c = /* @__PURE__ */ template(`<section class=oasis-editor-ribbon-group>`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-collapsed-items>`), _tmpl$6$5 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows>`);
7591
7676
  function groupItems(group) {
7592
7677
  return [...group.largeItems, ...group.rows[1], ...group.rows[2]];
7593
7678
  }
@@ -7598,7 +7683,7 @@ function groupStyle(group) {
7598
7683
  }
7599
7684
  function RibbonGroup(props) {
7600
7685
  return (() => {
7601
- var _el$ = _tmpl$4$d();
7686
+ var _el$ = _tmpl$4$c();
7602
7687
  insert(_el$, createComponent(Show, {
7603
7688
  get when() {
7604
7689
  return props.group.resizeState !== "collapsed";
@@ -7622,7 +7707,7 @@ function RibbonGroup(props) {
7622
7707
  ribbonSize: "large",
7623
7708
  panelClass: "oasis-editor-ribbon-collapsed-menu",
7624
7709
  get children() {
7625
- var _el$7 = _tmpl$5$a();
7710
+ var _el$7 = _tmpl$5$8();
7626
7711
  insert(_el$7, createComponent(For, {
7627
7712
  get each() {
7628
7713
  return groupItems(props.group);
@@ -7639,20 +7724,20 @@ function RibbonGroup(props) {
7639
7724
  }));
7640
7725
  return _el$6;
7641
7726
  })(), (() => {
7642
- var _el$8 = _tmpl$3$h();
7727
+ var _el$8 = _tmpl$3$g();
7643
7728
  insert(_el$8, () => props.group.label);
7644
7729
  return _el$8;
7645
7730
  })()];
7646
7731
  },
7647
7732
  get children() {
7648
7733
  return [(() => {
7649
- var _el$2 = _tmpl$2$p(), _el$4 = _el$2.firstChild;
7734
+ var _el$2 = _tmpl$2$q(), _el$4 = _el$2.firstChild;
7650
7735
  insert(_el$2, createComponent(Show, {
7651
7736
  get when() {
7652
7737
  return props.group.largeItems.length > 0;
7653
7738
  },
7654
7739
  get children() {
7655
- var _el$3 = _tmpl$$B();
7740
+ var _el$3 = _tmpl$$G();
7656
7741
  insert(_el$3, createComponent(For, {
7657
7742
  get each() {
7658
7743
  return props.group.largeItems;
@@ -7685,7 +7770,7 @@ function RibbonGroup(props) {
7685
7770
  }), null);
7686
7771
  return _el$2;
7687
7772
  })(), (() => {
7688
- var _el$5 = _tmpl$3$h();
7773
+ var _el$5 = _tmpl$3$g();
7689
7774
  insert(_el$5, () => props.group.label);
7690
7775
  return _el$5;
7691
7776
  })()];
@@ -7713,7 +7798,7 @@ function RibbonGroup(props) {
7713
7798
  return _el$;
7714
7799
  })();
7715
7800
  }
7716
- var _tmpl$$A = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-panel role=tabpanel data-testid=editor-ribbon-panel>`);
7801
+ var _tmpl$$F = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-panel role=tabpanel data-testid=editor-ribbon-panel>`);
7717
7802
  function RibbonPanel(props) {
7718
7803
  const [availableWidth, setAvailableWidth] = createSignal(null);
7719
7804
  const [measurements, setMeasurements] = createSignal({});
@@ -7758,7 +7843,7 @@ function RibbonPanel(props) {
7758
7843
  requestAnimationFrame(measureGroups);
7759
7844
  });
7760
7845
  return (() => {
7761
- var _el$ = _tmpl$$A();
7846
+ var _el$ = _tmpl$$F();
7762
7847
  var _ref$ = panelRef;
7763
7848
  typeof _ref$ === "function" ? use(_ref$, _el$) : panelRef = _el$;
7764
7849
  insert(_el$, createComponent(For, {
@@ -7784,7 +7869,7 @@ function RibbonPanel(props) {
7784
7869
  return _el$;
7785
7870
  })();
7786
7871
  }
7787
- var _tmpl$$z = /* @__PURE__ */ template(`<section class=oasis-editor-toolbar>`), _tmpl$2$o = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-wrap-strip>`);
7872
+ var _tmpl$$E = /* @__PURE__ */ template(`<section class=oasis-editor-toolbar>`), _tmpl$2$p = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-wrap-strip>`);
7788
7873
  const shouldAllowNativeMouseDown = (target) => target instanceof Element && target.closest("select, input, textarea, label") !== null;
7789
7874
  function Toolbar(props) {
7790
7875
  const api = createToolbarApi(props.host, useI18n());
@@ -7814,7 +7899,7 @@ function Toolbar(props) {
7814
7899
  })
7815
7900
  });
7816
7901
  return (() => {
7817
- var _el$ = _tmpl$$z();
7902
+ var _el$ = _tmpl$$E();
7818
7903
  _el$.$$mousedown = (event) => {
7819
7904
  if (shouldAllowNativeMouseDown(event.target)) {
7820
7905
  return;
@@ -7835,7 +7920,7 @@ function Toolbar(props) {
7835
7920
  return renderItems();
7836
7921
  }
7837
7922
  }) : (() => {
7838
- var _el$2 = _tmpl$2$o();
7923
+ var _el$2 = _tmpl$2$p();
7839
7924
  insert(_el$2, renderItems);
7840
7925
  return _el$2;
7841
7926
  })();
@@ -14782,149 +14867,7 @@ function collectPdfFontFamilies(document2) {
14782
14867
  }
14783
14868
  return families;
14784
14869
  }
14785
- const FOOTNOTE_SEPARATOR_HEIGHT = 10;
14786
- const FOOTNOTE_BLOCK_GAP = 2;
14787
14870
  const FOOTNOTE_MARKER_GUTTER_PX = 24;
14788
- const MAX_FOOTNOTE_LAYOUT_ITERATIONS = 4;
14789
- function getProjectedBlocksHeight(blocks) {
14790
- if (!blocks || blocks.length === 0) {
14791
- return 0;
14792
- }
14793
- return blocks.reduce((sum, block) => sum + block.estimatedHeight, 0);
14794
- }
14795
- function collectFootnoteReferencesFromBlock(block) {
14796
- var _a, _b;
14797
- const result = [];
14798
- const appendFromParagraph = (paragraph, startOffset, endOffset) => {
14799
- let runStart = 0;
14800
- for (const run of paragraph.runs) {
14801
- const runEnd = runStart + run.text.length;
14802
- const footnoteReference = getRunFootnoteReference(run);
14803
- if (footnoteReference && runEnd > startOffset && runStart < endOffset) {
14804
- result.push(footnoteReference.footnoteId);
14805
- }
14806
- runStart = runEnd;
14807
- }
14808
- };
14809
- if (block.sourceBlock.type === "paragraph") {
14810
- appendFromParagraph(
14811
- block.sourceBlock,
14812
- ((_a = block.layout) == null ? void 0 : _a.startOffset) ?? 0,
14813
- ((_b = block.layout) == null ? void 0 : _b.endOffset) ?? getParagraphText(block.sourceBlock).length
14814
- );
14815
- return result;
14816
- }
14817
- for (const paragraph of getBlockParagraphs(block.sourceBlock)) {
14818
- appendFromParagraph(paragraph, 0, getParagraphText(paragraph).length);
14819
- }
14820
- return result;
14821
- }
14822
- function collectPageFootnoteReferenceIds(page) {
14823
- const seen = /* @__PURE__ */ new Set();
14824
- const ids = [];
14825
- for (const block of page.blocks) {
14826
- for (const footnoteId of collectFootnoteReferencesFromBlock(block)) {
14827
- if (seen.has(footnoteId)) continue;
14828
- seen.add(footnoteId);
14829
- ids.push(footnoteId);
14830
- }
14831
- }
14832
- return ids;
14833
- }
14834
- function projectFootnoteBlocksForPage(document2, footnoteReferenceIds, page, totalPages, measuredHeights, measuredParagraphLayouts, measurer, projectBlocks) {
14835
- var _a, _b, _c;
14836
- const contentWidth = Math.max(
14837
- 24,
14838
- getPageContentWidth(page.pageSettings) - FOOTNOTE_MARKER_GUTTER_PX
14839
- );
14840
- const blocks = [];
14841
- for (const footnoteId of footnoteReferenceIds) {
14842
- const footnote = (_b = (_a = document2.footnotes) == null ? void 0 : _a.items) == null ? void 0 : _b[footnoteId];
14843
- if (!footnote) continue;
14844
- const projected = projectBlocks(footnote.blocks, {
14845
- pageIndex: page.index,
14846
- totalPages,
14847
- measuredHeights,
14848
- measuredParagraphLayouts,
14849
- styles: document2.styles,
14850
- contentWidth,
14851
- measurer,
14852
- defaultTabStop: (_c = document2.settings) == null ? void 0 : _c.defaultTabStop
14853
- });
14854
- for (const block of projected) {
14855
- blocks.push({
14856
- ...block,
14857
- blockId: `${footnoteId}:${block.blockId}`
14858
- });
14859
- }
14860
- }
14861
- return blocks;
14862
- }
14863
- function buildFootnoteReservations(pages, context2) {
14864
- const reservations = /* @__PURE__ */ new Map();
14865
- for (const page of pages) {
14866
- const footnoteReferenceIds = collectPageFootnoteReferenceIds(page);
14867
- if (footnoteReferenceIds.length === 0) continue;
14868
- const footnoteBlocks = projectFootnoteBlocksForPage(
14869
- context2.document,
14870
- footnoteReferenceIds,
14871
- page,
14872
- context2.totalPages,
14873
- context2.measuredHeights,
14874
- context2.measuredParagraphLayouts,
14875
- context2.measurer,
14876
- context2.projectBlocks
14877
- );
14878
- if (footnoteBlocks.length === 0) continue;
14879
- const blockGaps = Math.max(0, footnoteBlocks.length - 1) * FOOTNOTE_BLOCK_GAP;
14880
- reservations.set(
14881
- page.index,
14882
- FOOTNOTE_SEPARATOR_HEIGHT + getProjectedBlocksHeight(footnoteBlocks) + blockGaps
14883
- );
14884
- }
14885
- return reservations;
14886
- }
14887
- function reservationSignature(reservations) {
14888
- return [...reservations.entries()].sort(([left], [right]) => left - right).map(([pageIndex, height]) => `${pageIndex}:${Math.round(height)}`).join("|");
14889
- }
14890
- function applyFootnotesToPages(pages, context2) {
14891
- return pages.map((page) => {
14892
- const footnoteReferenceIds = collectPageFootnoteReferenceIds(page);
14893
- if (footnoteReferenceIds.length === 0) {
14894
- return {
14895
- ...page,
14896
- footnoteBlocks: void 0,
14897
- footnoteReferenceIds: void 0,
14898
- footnoteTop: void 0,
14899
- footnoteSeparatorTop: void 0
14900
- };
14901
- }
14902
- const footnoteBlocks = projectFootnoteBlocksForPage(
14903
- context2.document,
14904
- footnoteReferenceIds,
14905
- page,
14906
- context2.totalPages,
14907
- context2.measuredHeights,
14908
- context2.measuredParagraphLayouts,
14909
- context2.measurer,
14910
- context2.projectBlocks
14911
- );
14912
- const bodyBottom = page.bodyBottom ?? getPageBodyBottom(page.pageSettings);
14913
- const footnoteSeparatorTop = Math.max(
14914
- page.bodyTop ?? getPageBodyTop(page.pageSettings),
14915
- bodyBottom
14916
- );
14917
- const footnoteTop = footnoteSeparatorTop + FOOTNOTE_SEPARATOR_HEIGHT;
14918
- return {
14919
- ...page,
14920
- footnoteBlocks,
14921
- footnoteReferenceIds,
14922
- footnoteSeparatorTop,
14923
- footnoteTop,
14924
- bodyBottom
14925
- };
14926
- });
14927
- }
14928
14871
  const PARAGRAPH_BORDER_PADDING_PX = 2;
14929
14872
  function isVisibleBorder$1(border) {
14930
14873
  return !!border && border.type !== "none" && border.width > 0;
@@ -18490,11 +18433,11 @@ function buildCanvasTableLayout(options) {
18490
18433
  unsupported: Array.from(new Set(unsupported))
18491
18434
  };
18492
18435
  }
18493
- var _tmpl$$y = /* @__PURE__ */ template(`<div class=oasis-editor-page-break style="display:flex;align-items:center;justify-content:center;margin:16px 0;position:relative;user-select:none"><div style="position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--oasis-toolbar-border, #e0e3e7)"></div><div style="background:var(--oasis-bg, #f6f8fb);padding:0 12px;color:var(--oasis-text-muted, #5f6368);font-size:12px;font-family:var(--oasis-font-ui, sans-serif);z-index:1">`);
18436
+ var _tmpl$$D = /* @__PURE__ */ template(`<div class=oasis-editor-page-break style="display:flex;align-items:center;justify-content:center;margin:16px 0;position:relative;user-select:none"><div style="position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--oasis-toolbar-border, #e0e3e7)"></div><div style="background:var(--oasis-bg, #f6f8fb);padding:0 12px;color:var(--oasis-text-muted, #5f6368);font-size:12px;font-family:var(--oasis-font-ui, sans-serif);z-index:1">`);
18494
18437
  function PageBreak(_props) {
18495
18438
  const t = useI18n();
18496
18439
  return (() => {
18497
- var _el$ = _tmpl$$y(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
18440
+ var _el$ = _tmpl$$D(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
18498
18441
  insert(_el$3, () => t("metric.pageBreak") || "Page Break");
18499
18442
  return _el$;
18500
18443
  })();
@@ -22001,7 +21944,7 @@ function createCanvasPageRenderer(options) {
22001
21944
  }
22002
21945
  };
22003
21946
  }
22004
- var _tmpl$$x = /* @__PURE__ */ template(`<div class="oasis-editor-paper-stack oasis-editor-canvas-stack"style=position:relative>`), _tmpl$2$n = /* @__PURE__ */ template(`<div class=oasis-editor-canvas-page-slot style=position:relative>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-paper data-renderer=canvas data-testid=editor-page style=position:relative;z-index:1><canvas>`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=oasis-editor-table-revision-hit style=position:absolute;pointer-events:auto;background:transparent>`);
21947
+ var _tmpl$$C = /* @__PURE__ */ template(`<div class="oasis-editor-paper-stack oasis-editor-canvas-stack"style=position:relative>`), _tmpl$2$o = /* @__PURE__ */ template(`<div class=oasis-editor-canvas-page-slot style=position:relative>`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=oasis-editor-paper data-renderer=canvas data-testid=editor-page style=position:relative;z-index:1><canvas>`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=oasis-editor-table-revision-hit style=position:absolute;pointer-events:auto;background:transparent>`);
22005
21948
  const surfaceLogger = createEditorLogger("canvas-surface");
22006
21949
  function checkBrowserFonts(families) {
22007
21950
  if (typeof document === "undefined" || !document.fonts) {
@@ -22061,7 +22004,7 @@ function CanvasEditorSurface(props) {
22061
22004
  return layout;
22062
22005
  });
22063
22006
  return (() => {
22064
- var _el$ = _tmpl$$x();
22007
+ var _el$ = _tmpl$$C();
22065
22008
  insert(_el$, createComponent(Index, {
22066
22009
  get each() {
22067
22010
  return documentLayout().pages;
@@ -22073,7 +22016,7 @@ function CanvasEditorSurface(props) {
22073
22016
  // inserting an image that triggers re-pagination in a narrow viewport),
22074
22017
  // causing "Failed to execute 'insertBefore'" errors.
22075
22018
  (() => {
22076
- var _el$2 = _tmpl$2$n();
22019
+ var _el$2 = _tmpl$2$o();
22077
22020
  insert(_el$2, createComponent(Show, {
22078
22021
  when: index > 0,
22079
22022
  get children() {
@@ -22203,7 +22146,7 @@ function CanvasPage(props) {
22203
22146
  });
22204
22147
  onCleanup(() => renderer.dispose());
22205
22148
  return (() => {
22206
- var _el$3 = _tmpl$3$g(), _el$4 = _el$3.firstChild;
22149
+ var _el$3 = _tmpl$3$f(), _el$4 = _el$3.firstChild;
22207
22150
  addEventListener(_el$3, "dblclick", props.onSurfaceDblClick, true);
22208
22151
  addEventListener(_el$3, "mousemove", props.onSurfaceMouseMove, true);
22209
22152
  addEventListener(_el$3, "click", props.onSurfaceClick, true);
@@ -22215,7 +22158,7 @@ function CanvasPage(props) {
22215
22158
  return revisionCells();
22216
22159
  },
22217
22160
  children: (revision) => (() => {
22218
- var _el$5 = _tmpl$4$c();
22161
+ var _el$5 = _tmpl$4$b();
22219
22162
  addEventListener(_el$5, "mousedown", props.onSurfaceMouseDown, true);
22220
22163
  _el$5.addEventListener("mouseleave", (event) => {
22221
22164
  var _a;
@@ -22569,7 +22512,7 @@ function computeRulerTicks(pageWidth, contentLeft, unit) {
22569
22512
  pushSide(-1);
22570
22513
  return ticks;
22571
22514
  }
22572
- var _tmpl$$w = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler data-testid=editor-horizontal-ruler role=presentation><div class=oasis-editor-horizontal-ruler-track><div class=oasis-editor-horizontal-ruler-page><div class=oasis-editor-horizontal-ruler-margin style=left:0px></div><div class=oasis-editor-horizontal-ruler-margin></div><div class=oasis-editor-horizontal-ruler-content></div><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-first-line"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-hanging"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-left-box"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-right-indent">`), _tmpl$2$m = /* @__PURE__ */ template(`<div>`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler-label>`);
22515
+ var _tmpl$$B = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler data-testid=editor-horizontal-ruler role=presentation><div class=oasis-editor-horizontal-ruler-track><div class=oasis-editor-horizontal-ruler-page><div class=oasis-editor-horizontal-ruler-margin style=left:0px></div><div class=oasis-editor-horizontal-ruler-margin></div><div class=oasis-editor-horizontal-ruler-content></div><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-first-line"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-hanging"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-left-box"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-right-indent">`), _tmpl$2$n = /* @__PURE__ */ template(`<div>`), _tmpl$3$e = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler-label>`);
22573
22516
  function getActivePageSettings(state) {
22574
22517
  var _a;
22575
22518
  const idx = getActiveSectionIndex(state);
@@ -22775,7 +22718,7 @@ function HorizontalRuler(props) {
22775
22718
  }
22776
22719
  };
22777
22720
  return (() => {
22778
- var _el$ = _tmpl$$w(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling, _el$0 = _el$9.nextSibling, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling;
22721
+ var _el$ = _tmpl$$B(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling, _el$0 = _el$9.nextSibling, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling;
22779
22722
  var _ref$ = pageRef;
22780
22723
  typeof _ref$ === "function" ? use(_ref$, _el$3) : pageRef = _el$3;
22781
22724
  insert(_el$3, createComponent(For, {
@@ -22783,7 +22726,7 @@ function HorizontalRuler(props) {
22783
22726
  return ticks();
22784
22727
  },
22785
22728
  children: (tick) => [(() => {
22786
- var _el$11 = _tmpl$2$m();
22729
+ var _el$11 = _tmpl$2$n();
22787
22730
  createRenderEffect((_p$) => {
22788
22731
  var _v$27 = `oasis-editor-horizontal-ruler-tick oasis-editor-horizontal-ruler-tick-${tick.kind}`, _v$28 = `${sx(tick.x)}px`;
22789
22732
  _v$27 !== _p$.e && className(_el$11, _p$.e = _v$27);
@@ -22795,7 +22738,7 @@ function HorizontalRuler(props) {
22795
22738
  });
22796
22739
  return _el$11;
22797
22740
  })(), memo(() => memo(() => !!tick.label)() && (() => {
22798
- var _el$12 = _tmpl$3$f();
22741
+ var _el$12 = _tmpl$3$e();
22799
22742
  insert(_el$12, () => tick.label);
22800
22743
  createRenderEffect((_$p) => setStyleProperty(_el$12, "left", `${sx(tick.x)}px`));
22801
22744
  return _el$12;
@@ -22872,10 +22815,10 @@ function HorizontalRuler(props) {
22872
22815
  })();
22873
22816
  }
22874
22817
  delegateEvents(["pointerdown"]);
22875
- var _tmpl$$v = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-caret>`);
22818
+ var _tmpl$$A = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-caret>`);
22876
22819
  function CaretOverlay(props) {
22877
22820
  return (() => {
22878
- var _el$ = _tmpl$$v();
22821
+ var _el$ = _tmpl$$A();
22879
22822
  createRenderEffect((_p$) => {
22880
22823
  var _v$ = !!props.active, _v$2 = {
22881
22824
  left: `${props.left}px`,
@@ -22896,16 +22839,16 @@ function CaretOverlay(props) {
22896
22839
  return _el$;
22897
22840
  })();
22898
22841
  }
22899
- var _tmpl$$u = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-selection-overlay-root>`), _tmpl$2$l = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-selection-box data-testid=editor-selection-box>`);
22842
+ var _tmpl$$z = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-selection-overlay-root>`), _tmpl$2$m = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-selection-box data-testid=editor-selection-box>`);
22900
22843
  function SelectionOverlay(props) {
22901
22844
  return (() => {
22902
- var _el$ = _tmpl$$u();
22845
+ var _el$ = _tmpl$$z();
22903
22846
  insert(_el$, createComponent(Index, {
22904
22847
  get each() {
22905
22848
  return props.boxes;
22906
22849
  },
22907
22850
  children: (box) => (() => {
22908
- var _el$2 = _tmpl$2$l();
22851
+ var _el$2 = _tmpl$2$m();
22909
22852
  createRenderEffect((_p$) => {
22910
22853
  var _v$ = `${box().left}px`, _v$2 = `${box().top}px`, _v$3 = `${box().width}px`, _v$4 = `${box().height}px`;
22911
22854
  _v$ !== _p$.e && setStyleProperty(_el$2, "left", _p$.e = _v$);
@@ -22925,7 +22868,7 @@ function SelectionOverlay(props) {
22925
22868
  return _el$;
22926
22869
  })();
22927
22870
  }
22928
- var _tmpl$$t = /* @__PURE__ */ template(`<div class=oasis-editor-revision-overlay data-testid=editor-revision-overlay><div class=oasis-editor-revision-overlay-content><span class=oasis-editor-revision-overlay-author><strong>:</strong> </span><span class=oasis-editor-revision-overlay-date></span></div><div class=oasis-editor-revision-overlay-arrow>`);
22871
+ var _tmpl$$y = /* @__PURE__ */ template(`<div class=oasis-editor-revision-overlay data-testid=editor-revision-overlay><div class=oasis-editor-revision-overlay-content><span class=oasis-editor-revision-overlay-author><strong>:</strong> </span><span class=oasis-editor-revision-overlay-date></span></div><div class=oasis-editor-revision-overlay-arrow>`);
22929
22872
  function RevisionOverlay(props) {
22930
22873
  const formattedDate = () => {
22931
22874
  try {
@@ -22940,7 +22883,7 @@ function RevisionOverlay(props) {
22940
22883
  return "Alterado por";
22941
22884
  };
22942
22885
  return (() => {
22943
- var _el$ = _tmpl$$t(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild;
22886
+ var _el$ = _tmpl$$y(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild;
22944
22887
  _el$4.nextSibling;
22945
22888
  var _el$7 = _el$3.nextSibling;
22946
22889
  insert(_el$4, label, _el$5);
@@ -22958,7 +22901,7 @@ function RevisionOverlay(props) {
22958
22901
  return _el$;
22959
22902
  })();
22960
22903
  }
22961
- var _tmpl$$s = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-comment-overlay-root>`), _tmpl$2$k = /* @__PURE__ */ template(`<span class=oasis-editor-comment-highlight data-testid=editor-comment-highlight>`), _tmpl$3$e = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-date>`), _tmpl$4$b = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-resolved>✓`), _tmpl$5$9 = /* @__PURE__ */ template(`<div class=oasis-editor-comment-popup data-testid=editor-comment-popup><div class=oasis-editor-comment-popup-header><span class=oasis-editor-comment-popup-author></span></div><div class=oasis-editor-comment-popup-body>`);
22904
+ var _tmpl$$x = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-comment-overlay-root>`), _tmpl$2$l = /* @__PURE__ */ template(`<span class=oasis-editor-comment-highlight data-testid=editor-comment-highlight>`), _tmpl$3$d = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-date>`), _tmpl$4$a = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-resolved>✓`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=oasis-editor-comment-popup data-testid=editor-comment-popup><div class=oasis-editor-comment-popup-header><span class=oasis-editor-comment-popup-author></span></div><div class=oasis-editor-comment-popup-body>`);
22962
22905
  function CommentHighlightOverlay(props) {
22963
22906
  const [activeCommentId, setActiveCommentId] = createSignal(null);
22964
22907
  const activeComment = createMemo(() => {
@@ -22985,13 +22928,13 @@ function CommentHighlightOverlay(props) {
22985
22928
  }
22986
22929
  };
22987
22930
  return (() => {
22988
- var _el$ = _tmpl$$s();
22931
+ var _el$ = _tmpl$$x();
22989
22932
  insert(_el$, createComponent(For, {
22990
22933
  get each() {
22991
22934
  return props.boxes();
22992
22935
  },
22993
22936
  children: (box) => (() => {
22994
- var _el$2 = _tmpl$2$k();
22937
+ var _el$2 = _tmpl$2$l();
22995
22938
  _el$2.$$click = () => setActiveCommentId(box.commentId);
22996
22939
  _el$2.addEventListener("mouseenter", () => setActiveCommentId(box.commentId));
22997
22940
  createRenderEffect((_p$) => {
@@ -23023,7 +22966,7 @@ function CommentHighlightOverlay(props) {
23023
22966
  const comment = activeComment();
23024
22967
  const anchor = popupAnchor();
23025
22968
  return (() => {
23026
- var _el$3 = _tmpl$5$9(), _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$8 = _el$4.nextSibling;
22969
+ var _el$3 = _tmpl$5$7(), _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$8 = _el$4.nextSibling;
23027
22970
  _el$3.addEventListener("mouseleave", () => setActiveCommentId(null));
23028
22971
  insert(_el$5, () => comment.author || "—");
23029
22972
  insert(_el$4, createComponent(Show, {
@@ -23031,7 +22974,7 @@ function CommentHighlightOverlay(props) {
23031
22974
  return comment.date !== void 0;
23032
22975
  },
23033
22976
  get children() {
23034
- var _el$6 = _tmpl$3$e();
22977
+ var _el$6 = _tmpl$3$d();
23035
22978
  insert(_el$6, () => formattedDate(comment.date));
23036
22979
  return _el$6;
23037
22980
  }
@@ -23041,7 +22984,7 @@ function CommentHighlightOverlay(props) {
23041
22984
  return comment.resolved;
23042
22985
  },
23043
22986
  get children() {
23044
- return _tmpl$4$b();
22987
+ return _tmpl$4$a();
23045
22988
  }
23046
22989
  }), null);
23047
22990
  insert(_el$8, () => comment.text);
@@ -23063,41 +23006,45 @@ function CommentHighlightOverlay(props) {
23063
23006
  })();
23064
23007
  }
23065
23008
  delegateEvents(["click"]);
23066
- var _tmpl$$r = /* @__PURE__ */ template(`<div class=oasis-editor-floating-toolbar data-testid=editor-floating-table-toolbar><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group>`);
23067
- function FloatingTableToolbar(props) {
23068
- const t = useI18n();
23069
- const host = () => props.host();
23070
- const run = (command, payload) => host().commands.execute(command, payload);
23071
- const blocked = (command) => !host().commands.state(command).isEnabled;
23072
- const [surfaceRect, setSurfaceRect] = createSignal(null);
23009
+ function useSurfaceRect(surfaceRef) {
23010
+ const [rect, setRect] = createSignal(null);
23073
23011
  const [tick, setTick] = createSignal(0);
23074
- const refreshSurfaceRect = () => {
23075
- const surface = props.surfaceRef();
23076
- if (surface) {
23077
- setSurfaceRect(surface.getBoundingClientRect());
23078
- } else {
23079
- setSurfaceRect(null);
23080
- }
23012
+ const measure = () => {
23013
+ const surface = surfaceRef();
23014
+ setRect(surface ? surface.getBoundingClientRect() : null);
23081
23015
  };
23082
23016
  let frame = null;
23083
- const scheduleRefresh = () => {
23017
+ const refresh = () => {
23084
23018
  if (frame !== null) return;
23085
23019
  frame = requestAnimationFrame(() => {
23086
23020
  frame = null;
23087
- refreshSurfaceRect();
23088
- setTick((t2) => t2 + 1);
23021
+ measure();
23022
+ setTick((value) => value + 1);
23089
23023
  });
23090
23024
  };
23091
23025
  onMount(() => {
23092
- refreshSurfaceRect();
23093
- window.addEventListener("scroll", scheduleRefresh, true);
23094
- window.addEventListener("resize", scheduleRefresh);
23026
+ measure();
23027
+ window.addEventListener("scroll", refresh, true);
23028
+ window.addEventListener("resize", refresh);
23095
23029
  onCleanup(() => {
23096
- window.removeEventListener("scroll", scheduleRefresh, true);
23097
- window.removeEventListener("resize", scheduleRefresh);
23030
+ window.removeEventListener("scroll", refresh, true);
23031
+ window.removeEventListener("resize", refresh);
23098
23032
  if (frame !== null) cancelAnimationFrame(frame);
23099
23033
  });
23100
23034
  });
23035
+ return { rect, tick, refresh };
23036
+ }
23037
+ var _tmpl$$w = /* @__PURE__ */ template(`<div class=oasis-editor-floating-toolbar data-testid=editor-floating-table-toolbar><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group>`);
23038
+ function FloatingTableToolbar(props) {
23039
+ const t = useI18n();
23040
+ const host = () => props.host();
23041
+ const run = (command, payload) => host().commands.execute(command, payload);
23042
+ const blocked = (command) => !host().commands.state(command).isEnabled;
23043
+ const {
23044
+ rect: surfaceRect,
23045
+ tick,
23046
+ refresh: scheduleRefresh
23047
+ } = useSurfaceRect(props.surfaceRef);
23101
23048
  const position2 = createMemo(() => {
23102
23049
  tick();
23103
23050
  if (!props.visible()) {
@@ -23145,7 +23092,7 @@ function FloatingTableToolbar(props) {
23145
23092
  return document.body;
23146
23093
  },
23147
23094
  get children() {
23148
- var _el$ = _tmpl$$r(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;
23095
+ var _el$ = _tmpl$$w(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;
23149
23096
  _el$.$$mousedown = (event) => event.preventDefault();
23150
23097
  insert(_el$2, createComponent(Button$1, {
23151
23098
  icon: "combine",
@@ -23305,7 +23252,7 @@ function FloatingTableToolbar(props) {
23305
23252
  });
23306
23253
  }
23307
23254
  delegateEvents(["mousedown"]);
23308
- var _tmpl$$q = /* @__PURE__ */ template(`<svg><rect height=2 rx=1 fill=#9aa0a6></svg>`, false, true, false), _tmpl$2$j = /* @__PURE__ */ template(`<svg><rect rx=1.5></svg>`, false, true, false), _tmpl$3$d = /* @__PURE__ */ template(`<svg><polygon points="29,4 37,12 29,20 21,12"fill=#1a73e8></svg>`, false, true, false), _tmpl$4$a = /* @__PURE__ */ template(`<svg><polygon points="20,8 26,14 20,20 14,14"fill=#1a73e8></svg>`, false, true, false), _tmpl$5$8 = /* @__PURE__ */ template(`<svg viewBox="0 0 40 32"fill=none aria-hidden=true>`), _tmpl$6$4 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-anchor data-testid=editor-layout-options-anchor><svg viewBox="0 0 24 24"fill=none aria-hidden=true><rect x=3 y=4 width=10 height=10 rx=1.5 fill=#1a73e8></rect><rect x=3 y=17 width=18 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=5 width=6 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=9 width=6 height=2 rx=1 fill=#9aa0a6>`), _tmpl$7$1 = /* @__PURE__ */ template(`<div class=oasis-editor-layout-options-popup data-testid=editor-layout-options-popup><div class=oasis-editor-layout-options-popup-header><span class=oasis-editor-layout-options-title></span><button type=button class=oasis-editor-layout-options-close>×</button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid><button type=button class=oasis-editor-layout-options-cell data-testid=editor-layout-options-inline><svg viewBox="0 0 40 32"fill=none aria-hidden=true><rect x=4 y=7 width=9 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=4 width=11 height=11 rx=1.5 fill=#1a73e8></rect><rect x=28 y=7 width=8 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=20 width=32 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=26 width=32 height=2 rx=1 fill=#9aa0a6></rect></svg></button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid></div><div class=oasis-editor-layout-options-radios><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position></label><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position>`), _tmpl$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-cell>`);
23255
+ var _tmpl$$v = /* @__PURE__ */ template(`<svg><rect height=2 rx=1 fill=#9aa0a6></svg>`, false, true, false), _tmpl$2$k = /* @__PURE__ */ template(`<svg><rect rx=1.5></svg>`, false, true, false), _tmpl$3$c = /* @__PURE__ */ template(`<svg><polygon points="29,4 37,12 29,20 21,12"fill=#1a73e8></svg>`, false, true, false), _tmpl$4$9 = /* @__PURE__ */ template(`<svg><polygon points="20,8 26,14 20,20 14,14"fill=#1a73e8></svg>`, false, true, false), _tmpl$5$6 = /* @__PURE__ */ template(`<svg viewBox="0 0 40 32"fill=none aria-hidden=true>`), _tmpl$6$4 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-anchor data-testid=editor-layout-options-anchor><svg viewBox="0 0 24 24"fill=none aria-hidden=true><rect x=3 y=4 width=10 height=10 rx=1.5 fill=#1a73e8></rect><rect x=3 y=17 width=18 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=5 width=6 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=9 width=6 height=2 rx=1 fill=#9aa0a6>`), _tmpl$7$1 = /* @__PURE__ */ template(`<div class=oasis-editor-layout-options-popup data-testid=editor-layout-options-popup><div class=oasis-editor-layout-options-popup-header><span class=oasis-editor-layout-options-title></span><button type=button class=oasis-editor-layout-options-close>×</button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid><button type=button class=oasis-editor-layout-options-cell data-testid=editor-layout-options-inline><svg viewBox="0 0 40 32"fill=none aria-hidden=true><rect x=4 y=7 width=9 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=4 width=11 height=11 rx=1.5 fill=#1a73e8></rect><rect x=28 y=7 width=8 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=20 width=32 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=26 width=32 height=2 rx=1 fill=#9aa0a6></rect></svg></button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid></div><div class=oasis-editor-layout-options-radios><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position></label><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position>`), _tmpl$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-cell>`);
23309
23256
  const WRAP_OPTIONS = [{
23310
23257
  preset: "square",
23311
23258
  labelKey: "layoutOptions.square"
@@ -23327,14 +23274,14 @@ const WRAP_OPTIONS = [{
23327
23274
  }];
23328
23275
  function WrapIcon(props) {
23329
23276
  const line = (x, y, w) => (() => {
23330
- var _el$ = _tmpl$$q();
23277
+ var _el$ = _tmpl$$v();
23331
23278
  setAttribute(_el$, "x", x);
23332
23279
  setAttribute(_el$, "y", y);
23333
23280
  setAttribute(_el$, "width", w);
23334
23281
  return _el$;
23335
23282
  })();
23336
23283
  const box = (x, y, w, h, fill = "#1a73e8") => (() => {
23337
- var _el$2 = _tmpl$2$j();
23284
+ var _el$2 = _tmpl$2$k();
23338
23285
  setAttribute(_el$2, "x", x);
23339
23286
  setAttribute(_el$2, "y", y);
23340
23287
  setAttribute(_el$2, "width", w);
@@ -23343,7 +23290,7 @@ function WrapIcon(props) {
23343
23290
  return _el$2;
23344
23291
  })();
23345
23292
  return (() => {
23346
- var _el$3 = _tmpl$5$8();
23293
+ var _el$3 = _tmpl$5$6();
23347
23294
  insert(_el$3, createComponent(Show, {
23348
23295
  get when() {
23349
23296
  return props.preset === "square";
@@ -23357,7 +23304,7 @@ function WrapIcon(props) {
23357
23304
  return props.preset === "tight";
23358
23305
  },
23359
23306
  get children() {
23360
- return [memo(() => line(4, 6, 12)), memo(() => line(4, 12, 10)), memo(() => line(4, 18, 12)), memo(() => line(4, 24, 32)), _tmpl$3$d()];
23307
+ return [memo(() => line(4, 6, 12)), memo(() => line(4, 12, 10)), memo(() => line(4, 18, 12)), memo(() => line(4, 24, 32)), _tmpl$3$c()];
23361
23308
  }
23362
23309
  }), null);
23363
23310
  insert(_el$3, createComponent(Show, {
@@ -23365,7 +23312,7 @@ function WrapIcon(props) {
23365
23312
  return props.preset === "through";
23366
23313
  },
23367
23314
  get children() {
23368
- return [memo(() => line(4, 6, 32)), memo(() => line(4, 12, 9)), memo(() => line(27, 12, 9)), memo(() => line(4, 18, 32)), _tmpl$4$a()];
23315
+ return [memo(() => line(4, 6, 32)), memo(() => line(4, 12, 9)), memo(() => line(27, 12, 9)), memo(() => line(4, 18, 32)), _tmpl$4$9()];
23369
23316
  }
23370
23317
  }), null);
23371
23318
  insert(_el$3, createComponent(Show, {
@@ -23398,31 +23345,11 @@ function WrapIcon(props) {
23398
23345
  function FloatingLayoutOptions(props) {
23399
23346
  const t = useI18n();
23400
23347
  const [open, setOpen] = createSignal(false);
23401
- const [surfaceRect, setSurfaceRect] = createSignal(null);
23402
- const [tick, setTick] = createSignal(0);
23403
- const refreshSurfaceRect = () => {
23404
- const surface = props.surfaceRef();
23405
- setSurfaceRect(surface ? surface.getBoundingClientRect() : null);
23406
- };
23407
- let frame = null;
23408
- const scheduleRefresh = () => {
23409
- if (frame !== null) return;
23410
- frame = requestAnimationFrame(() => {
23411
- frame = null;
23412
- refreshSurfaceRect();
23413
- setTick((value) => value + 1);
23414
- });
23415
- };
23416
- onMount(() => {
23417
- refreshSurfaceRect();
23418
- window.addEventListener("scroll", scheduleRefresh, true);
23419
- window.addEventListener("resize", scheduleRefresh);
23420
- onCleanup(() => {
23421
- window.removeEventListener("scroll", scheduleRefresh, true);
23422
- window.removeEventListener("resize", scheduleRefresh);
23423
- if (frame !== null) cancelAnimationFrame(frame);
23424
- });
23425
- });
23348
+ const {
23349
+ rect: surfaceRect,
23350
+ tick,
23351
+ refresh: scheduleRefresh
23352
+ } = useSurfaceRect(props.surfaceRef);
23426
23353
  createMemo(() => {
23427
23354
  props.layoutOptions.target();
23428
23355
  props.box();
@@ -37756,10 +37683,10 @@ function resolveResizedDimensions(geometry, deltaX, deltaY, preserveAspectRatio,
37756
37683
  nextHeight = clamp(nextWidth / aspectRatio, MIN_RESIZE_SIZE_PX);
37757
37684
  return { width: nextWidth, height: nextHeight };
37758
37685
  }
37759
- var _tmpl$$p = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-rotate-handle tabindex=-1 type=button>`), _tmpl$2$i = /* @__PURE__ */ template(`<div aria-hidden=true style=transform-origin:center>`), _tmpl$3$c = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-resize-handle tabindex=-1 type=button>`);
37686
+ var _tmpl$$u = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-rotate-handle tabindex=-1 type=button>`), _tmpl$2$j = /* @__PURE__ */ template(`<div aria-hidden=true style=transform-origin:center>`), _tmpl$3$b = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-resize-handle tabindex=-1 type=button>`);
37760
37687
  function ResizeHandlesOverlay(props) {
37761
37688
  return (() => {
37762
- var _el$ = _tmpl$2$i();
37689
+ var _el$ = _tmpl$2$j();
37763
37690
  _el$.$$mousedown = (event) => {
37764
37691
  if (props.readOnly || !props.box() || !props.onBodyMouseDown) {
37765
37692
  return;
@@ -37775,7 +37702,7 @@ function ResizeHandlesOverlay(props) {
37775
37702
  return [createComponent(For, {
37776
37703
  each: RESIZE_HANDLE_DIRECTIONS,
37777
37704
  children: (direction) => (() => {
37778
- var _el$3 = _tmpl$3$c();
37705
+ var _el$3 = _tmpl$3$b();
37779
37706
  _el$3.$$mousedown = (event) => {
37780
37707
  if (!props.box()) {
37781
37708
  return;
@@ -37790,7 +37717,7 @@ function ResizeHandlesOverlay(props) {
37790
37717
  return props.onRotateStart;
37791
37718
  },
37792
37719
  get children() {
37793
- var _el$2 = _tmpl$$p();
37720
+ var _el$2 = _tmpl$$u();
37794
37721
  _el$2.$$mousedown = (event) => {
37795
37722
  var _a;
37796
37723
  if (!props.box()) {
@@ -37846,7 +37773,7 @@ function createEditorZoom(initial = ZOOM_DEFAULT) {
37846
37773
  const zoomFactor = createMemo(() => zoomPercent() / 100);
37847
37774
  return { zoomPercent, setZoomPercent, adjustZoom, zoomFactor };
37848
37775
  }
37849
- var _tmpl$$o = /* @__PURE__ */ template(`<div data-testid=editor-editor-shell><div class=oasis-editor-editor data-testid=editor-editor><div class=oasis-editor-editor-zoom-sizer><div class=oasis-editor-editor-scroll-content data-testid=editor-editor-scroll-content style="position:absolute;top:0px;transform-origin:top left"><textarea aria-label="Editor input"autocomplete=off autocapitalize=off class=oasis-editor-input data-testid=editor-input value style=pointer-events:none></textarea><input data-testid=editor-import-docx-input type=file style=display:none><input accept="image/png, image/jpeg, image/gif"data-testid=editor-insert-image-input type=file style=display:none></div></div></div><div class=oasis-editor-statusbar data-testid=editor-statusbar><div class="oasis-editor-statusbar-group oasis-editor-statusbar-start"><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-word-count></span><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-character-count></span><span class=oasis-editor-statusbar-item></span></div><div class="oasis-editor-statusbar-group oasis-editor-statusbar-end"><div class=oasis-editor-statusbar-zoom data-testid=editor-statusbar-zoom-control><button type=button class=oasis-editor-zoom-button>−</button><input class=oasis-editor-zoom-slider type=range><button type=button class=oasis-editor-zoom-button>+</button><span class="oasis-editor-statusbar-item oasis-editor-zoom-value"data-testid=editor-statusbar-zoom>%`), _tmpl$2$h = /* @__PURE__ */ template(`<div class=oasis-editor-import-overlay data-testid=editor-import-overlay role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-phase data-testid=editor-import-phase></div><div class=oasis-editor-import-progress-track><div class=oasis-editor-import-progress-bar data-testid=editor-import-progress-bar></div></div><div class=oasis-editor-import-progress-label>`), _tmpl$3$b = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>`), _tmpl$4$9 = /* @__PURE__ */ template(`<span class=oasis-editor-import-error-icon>`), _tmpl$5$7 = /* @__PURE__ */ template(`<span>`);
37776
+ var _tmpl$$t = /* @__PURE__ */ template(`<div data-testid=editor-editor-shell><div class=oasis-editor-editor data-testid=editor-editor><div class=oasis-editor-editor-zoom-sizer><div class=oasis-editor-editor-scroll-content data-testid=editor-editor-scroll-content style="position:absolute;top:0px;transform-origin:top left"><textarea aria-label="Editor input"autocomplete=off autocapitalize=off class=oasis-editor-input data-testid=editor-input value style=pointer-events:none></textarea><input data-testid=editor-import-docx-input type=file style=display:none><input accept="image/png, image/jpeg, image/gif"data-testid=editor-insert-image-input type=file style=display:none></div></div></div><div class=oasis-editor-statusbar data-testid=editor-statusbar><div class="oasis-editor-statusbar-group oasis-editor-statusbar-start"><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-word-count></span><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-character-count></span><span class=oasis-editor-statusbar-item></span></div><div class="oasis-editor-statusbar-group oasis-editor-statusbar-end"><div class=oasis-editor-statusbar-zoom data-testid=editor-statusbar-zoom-control><button type=button class=oasis-editor-zoom-button>−</button><input class=oasis-editor-zoom-slider type=range><button type=button class=oasis-editor-zoom-button>+</button><span class="oasis-editor-statusbar-item oasis-editor-zoom-value"data-testid=editor-statusbar-zoom>%`), _tmpl$2$i = /* @__PURE__ */ template(`<div class=oasis-editor-import-overlay data-testid=editor-import-overlay role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-phase data-testid=editor-import-phase></div><div class=oasis-editor-import-progress-track><div class=oasis-editor-import-progress-bar data-testid=editor-import-progress-bar></div></div><div class=oasis-editor-import-progress-label>`), _tmpl$3$a = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>`), _tmpl$4$8 = /* @__PURE__ */ template(`<span class=oasis-editor-import-error-icon>`), _tmpl$5$5 = /* @__PURE__ */ template(`<span>`);
37850
37777
  function OasisEditorEditor(props) {
37851
37778
  const t = useI18n();
37852
37779
  const layout = () => props.layout;
@@ -37974,7 +37901,7 @@ function OasisEditorEditor(props) {
37974
37901
  queueMicrotask(recomputeViewportPageIndex);
37975
37902
  });
37976
37903
  return (() => {
37977
- var _el$ = _tmpl$$o(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$2.nextSibling, _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling, _el$11 = _el$9.nextSibling, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild;
37904
+ var _el$ = _tmpl$$t(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$2.nextSibling, _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling, _el$11 = _el$9.nextSibling, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild;
37978
37905
  insert(_el$, createComponent(Show, {
37979
37906
  get when() {
37980
37907
  return memo(() => !!layout().showHorizontalRuler)() && overlays().toolbarHost;
@@ -38258,7 +38185,7 @@ function OasisEditorEditor(props) {
38258
38185
  const isDone = progress().phase === "done";
38259
38186
  const isError = progress().phase === "error";
38260
38187
  return (() => {
38261
- var _el$18 = _tmpl$2$h(), _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling;
38188
+ var _el$18 = _tmpl$2$i(), _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling;
38262
38189
  _el$18.classList.toggle("oasis-editor-import-overlay-done", !!isDone);
38263
38190
  _el$18.classList.toggle("oasis-editor-import-overlay-error", !!isError);
38264
38191
  setAttribute(_el$18, "aria-busy", !isDone && !isError);
@@ -38271,11 +38198,11 @@ function OasisEditorEditor(props) {
38271
38198
  _el$23.classList.toggle("oasis-editor-import-progress-bar-done", !!isDone);
38272
38199
  _el$23.classList.toggle("oasis-editor-import-progress-bar-error", !!isError);
38273
38200
  insert(_el$24, isDone ? (() => {
38274
- var _el$25 = _tmpl$3$b();
38201
+ var _el$25 = _tmpl$3$a();
38275
38202
  insert(_el$25, () => t("import.phase.done"));
38276
38203
  return _el$25;
38277
38204
  })() : isError ? (() => {
38278
- var _el$26 = _tmpl$4$9();
38205
+ var _el$26 = _tmpl$4$8();
38279
38206
  insert(_el$26, () => t("import.phase.error"));
38280
38207
  return _el$26;
38281
38208
  })() : [memo(() => Math.round(progress().progress)), "%"]);
@@ -38314,7 +38241,7 @@ function OasisEditorEditor(props) {
38314
38241
  return createComponent(Show, {
38315
38242
  when: key,
38316
38243
  get children() {
38317
- var _el$27 = _tmpl$5$7();
38244
+ var _el$27 = _tmpl$5$5();
38318
38245
  insert(_el$27, () => t(key));
38319
38246
  createRenderEffect(() => className(_el$27, `oasis-editor-statusbar-item oasis-editor-persistence-status oasis-editor-status-${status.replace("...", "ing").replace(".", "")}`));
38320
38247
  return _el$27;
@@ -39044,11 +38971,11 @@ function createCanvasLayoutSnapshotProvider() {
39044
38971
  }
39045
38972
  };
39046
38973
  }
39047
- var _tmpl$$n = /* @__PURE__ */ template(`<button>`);
38974
+ var _tmpl$$s = /* @__PURE__ */ template(`<button>`);
39048
38975
  function FloatingActionButton(props) {
39049
38976
  const [local, others] = splitProps(props, ["type", "icon", "label", "active", "class", "classList"]);
39050
38977
  return (() => {
39051
- var _el$ = _tmpl$$n();
38978
+ var _el$ = _tmpl$$s();
39052
38979
  spread(_el$, mergeProps({
39053
38980
  get type() {
39054
38981
  return local.type ?? "button";
@@ -39077,7 +39004,7 @@ function FloatingActionButton(props) {
39077
39004
  return _el$;
39078
39005
  })();
39079
39006
  }
39080
- var _tmpl$$m = /* @__PURE__ */ template(`<aside>`), _tmpl$2$g = /* @__PURE__ */ template(`<div>`);
39007
+ var _tmpl$$r = /* @__PURE__ */ template(`<aside>`), _tmpl$2$h = /* @__PURE__ */ template(`<div>`);
39081
39008
  function SidePanel(props) {
39082
39009
  const [local, others] = splitProps(props, ["mode", "width", "class", "classList", "children", "style"]);
39083
39010
  const width = () => {
@@ -39087,7 +39014,7 @@ function SidePanel(props) {
39087
39014
  return local.width ?? "360px";
39088
39015
  };
39089
39016
  return (() => {
39090
- var _el$ = _tmpl$$m();
39017
+ var _el$ = _tmpl$$r();
39091
39018
  spread(_el$, mergeProps({
39092
39019
  get ["class"]() {
39093
39020
  return `oasis-editor-plugin-side-panel ${local.class ?? ""}`;
@@ -39112,7 +39039,7 @@ function SidePanel(props) {
39112
39039
  function SidePanelHeader(props) {
39113
39040
  const [local, others] = splitProps(props, ["class", "children"]);
39114
39041
  return (() => {
39115
- var _el$2 = _tmpl$2$g();
39042
+ var _el$2 = _tmpl$2$h();
39116
39043
  spread(_el$2, mergeProps({
39117
39044
  get ["class"]() {
39118
39045
  return `oasis-editor-plugin-side-panel-header ${local.class ?? ""}`;
@@ -39125,7 +39052,7 @@ function SidePanelHeader(props) {
39125
39052
  function SidePanelBody(props) {
39126
39053
  const [local, others] = splitProps(props, ["class", "children"]);
39127
39054
  return (() => {
39128
- var _el$3 = _tmpl$2$g();
39055
+ var _el$3 = _tmpl$2$h();
39129
39056
  spread(_el$3, mergeProps({
39130
39057
  get ["class"]() {
39131
39058
  return `oasis-editor-plugin-side-panel-body ${local.class ?? ""}`;
@@ -39138,7 +39065,7 @@ function SidePanelBody(props) {
39138
39065
  function SidePanelFooter(props) {
39139
39066
  const [local, others] = splitProps(props, ["class", "children"]);
39140
39067
  return (() => {
39141
- var _el$4 = _tmpl$2$g();
39068
+ var _el$4 = _tmpl$2$h();
39142
39069
  spread(_el$4, mergeProps({
39143
39070
  get ["class"]() {
39144
39071
  return `oasis-editor-plugin-side-panel-footer ${local.class ?? ""}`;
@@ -39148,11 +39075,11 @@ function SidePanelFooter(props) {
39148
39075
  return _el$4;
39149
39076
  })();
39150
39077
  }
39151
- var _tmpl$$l = /* @__PURE__ */ template(`<button>`);
39078
+ var _tmpl$$q = /* @__PURE__ */ template(`<button>`);
39152
39079
  function IconButton(props) {
39153
39080
  const [local, others] = splitProps(props, ["type", "icon", "label", "active", "variant", "size", "class", "classList"]);
39154
39081
  return (() => {
39155
- var _el$ = _tmpl$$l();
39082
+ var _el$ = _tmpl$$q();
39156
39083
  spread(_el$, mergeProps({
39157
39084
  get type() {
39158
39085
  return local.type ?? "button";
@@ -39183,7 +39110,7 @@ function IconButton(props) {
39183
39110
  return _el$;
39184
39111
  })();
39185
39112
  }
39186
- var _tmpl$$k = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-floating-actions>`), _tmpl$2$f = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-ui-host><div class=oasis-editor-plugin-ui-main>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-overlay>`), _tmpl$4$8 = /* @__PURE__ */ template(`<span class=oasis-editor-plugin-side-panel-icon>`), _tmpl$5$6 = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-title><span>`);
39113
+ var _tmpl$$p = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-floating-actions>`), _tmpl$2$g = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-ui-host><div class=oasis-editor-plugin-ui-main>`), _tmpl$3$9 = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-overlay>`), _tmpl$4$7 = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-title>`);
39187
39114
  const EMPTY_SNAPSHOT = {
39188
39115
  floatingActions: [],
39189
39116
  sidePanels: [],
@@ -39215,7 +39142,7 @@ function PluginUiHost(props) {
39215
39142
  return groupActionsByPlacement(actions());
39216
39143
  },
39217
39144
  children: (group) => (() => {
39218
- var _el$ = _tmpl$$k();
39145
+ var _el$ = _tmpl$$p();
39219
39146
  insert(_el$, createComponent(For, {
39220
39147
  get each() {
39221
39148
  return group.actions;
@@ -39244,7 +39171,7 @@ function PluginUiHost(props) {
39244
39171
  })()
39245
39172
  });
39246
39173
  return (() => {
39247
- var _el$2 = _tmpl$2$f(), _el$3 = _el$2.firstChild;
39174
+ var _el$2 = _tmpl$2$g(), _el$3 = _el$2.firstChild;
39248
39175
  insert(_el$3, resolvedChildren);
39249
39176
  insert(_el$2, createComponent(Show, {
39250
39177
  get when() {
@@ -39257,7 +39184,7 @@ function PluginUiHost(props) {
39257
39184
  return overlayPanel();
39258
39185
  },
39259
39186
  children: (panel) => (() => {
39260
- var _el$4 = _tmpl$3$a();
39187
+ var _el$4 = _tmpl$3$9();
39261
39188
  insert(_el$4, () => renderPanel(props.editor, panel(), t));
39262
39189
  return _el$4;
39263
39190
  })()
@@ -39308,25 +39235,29 @@ function renderPanel(editor, panel, t) {
39308
39235
  return [createComponent(SidePanelHeader, {
39309
39236
  get children() {
39310
39237
  return [(() => {
39311
- var _el$5 = _tmpl$5$6(), _el$7 = _el$5.firstChild;
39238
+ var _el$5 = _tmpl$4$7();
39312
39239
  insert(_el$5, createComponent(Show, {
39313
39240
  get when() {
39314
39241
  return panel.icon;
39315
39242
  },
39316
39243
  get children() {
39317
- var _el$6 = _tmpl$4$8();
39318
- insert(_el$6, createComponent(ToolIcon, {
39319
- get name() {
39320
- return panel.icon;
39244
+ return createComponent(Text$1, {
39245
+ "class": "oasis-editor-plugin-side-panel-icon",
39246
+ get children() {
39247
+ return createComponent(ToolIcon, {
39248
+ get name() {
39249
+ return panel.icon;
39250
+ }
39251
+ });
39321
39252
  }
39322
- }));
39323
- return _el$6;
39253
+ });
39254
+ }
39255
+ }), null);
39256
+ insert(_el$5, createComponent(Text$1, {
39257
+ get children() {
39258
+ return memo(() => !!panel.titleKey)() ? t(panel.titleKey) : panel.title;
39324
39259
  }
39325
- }), _el$7);
39326
- insert(_el$7, (() => {
39327
- var _c$ = memo(() => !!panel.titleKey);
39328
- return () => _c$() ? t(panel.titleKey) : panel.title;
39329
- })());
39260
+ }), null);
39330
39261
  return _el$5;
39331
39262
  })(), createComponent(IconButton, {
39332
39263
  icon: "x",
@@ -39363,7 +39294,7 @@ function groupActionsByPlacement(actions) {
39363
39294
  actions: groupActions
39364
39295
  }));
39365
39296
  }
39366
- var _tmpl$$j = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage>`);
39297
+ var _tmpl$$o = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage>`);
39367
39298
  function DocumentShell(props) {
39368
39299
  let surfaceEl;
39369
39300
  let viewportEl;
@@ -39490,7 +39421,7 @@ function DocumentShell(props) {
39490
39421
  return props.runtimeEditor;
39491
39422
  },
39492
39423
  get children() {
39493
- var _el$ = _tmpl$$j(), _el$2 = _el$.firstChild;
39424
+ var _el$ = _tmpl$$o(), _el$2 = _el$.firstChild;
39494
39425
  insert(_el$, createComponent(Show, {
39495
39426
  get when() {
39496
39427
  return memo(() => !!props.showChrome)() && props.showOutline;
@@ -39555,10 +39486,10 @@ function DocumentShell(props) {
39555
39486
  }
39556
39487
  })];
39557
39488
  }
39558
- var _tmpl$$i = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$e = /* @__PURE__ */ template(`<div class=oasis-inline-shell style="border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);overflow:hidden;display:flex;flex-direction:column">`);
39489
+ var _tmpl$$n = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$f = /* @__PURE__ */ template(`<div class=oasis-inline-shell style="border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);overflow:hidden;display:flex;flex-direction:column">`);
39559
39490
  function InlineShell(props) {
39560
39491
  return (() => {
39561
- var _el$ = _tmpl$2$e();
39492
+ var _el$ = _tmpl$2$f();
39562
39493
  insert(_el$, createComponent(Show, {
39563
39494
  get when() {
39564
39495
  return memo(() => !!props.showChrome)() && props.showToolbar;
@@ -39585,7 +39516,7 @@ function InlineShell(props) {
39585
39516
  return props.runtimeEditor;
39586
39517
  },
39587
39518
  get children() {
39588
- var _el$2 = _tmpl$$i(), _el$3 = _el$2.firstChild;
39519
+ var _el$2 = _tmpl$$n(), _el$3 = _el$2.firstChild;
39589
39520
  insert(_el$3, createComponent(OasisEditorEditor, {
39590
39521
  state: () => props.state,
39591
39522
  get layout() {
@@ -39625,16 +39556,16 @@ function InlineShell(props) {
39625
39556
  return _el$;
39626
39557
  })();
39627
39558
  }
39628
- var _tmpl$$h = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$d = /* @__PURE__ */ template(`<div class=oasis-balloon-shell>`);
39559
+ var _tmpl$$m = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$e = /* @__PURE__ */ template(`<div class=oasis-balloon-shell>`);
39629
39560
  function BalloonShell(props) {
39630
39561
  return (() => {
39631
- var _el$ = _tmpl$2$d();
39562
+ var _el$ = _tmpl$2$e();
39632
39563
  insert(_el$, createComponent(PluginUiHost, {
39633
39564
  get editor() {
39634
39565
  return props.runtimeEditor;
39635
39566
  },
39636
39567
  get children() {
39637
- var _el$2 = _tmpl$$h(), _el$3 = _el$2.firstChild;
39568
+ var _el$2 = _tmpl$$m(), _el$3 = _el$2.firstChild;
39638
39569
  insert(_el$3, createComponent(OasisEditorEditor, {
39639
39570
  state: () => props.state,
39640
39571
  get layout() {
@@ -39674,7 +39605,7 @@ function BalloonShell(props) {
39674
39605
  return _el$;
39675
39606
  })();
39676
39607
  }
39677
- var _tmpl$$g = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-footer data-testid=editor-dialog-footer>`), _tmpl$2$c = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-overlay><div role=dialog aria-modal=true data-testid=editor-dialog><div class=oasis-editor-dialog-header><h3 class=oasis-editor-dialog-title></h3><button class=oasis-editor-dialog-close data-testid=editor-dialog-close><i data-lucide=x></i></button></div><div data-testid=editor-dialog-body>`);
39608
+ var _tmpl$$l = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-footer data-testid=editor-dialog-footer>`), _tmpl$2$d = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-overlay><div role=dialog aria-modal=true data-testid=editor-dialog><div class=oasis-editor-dialog-header><h3 class=oasis-editor-dialog-title></h3><button class=oasis-editor-dialog-close data-testid=editor-dialog-close><i data-lucide=x></i></button></div><div data-testid=editor-dialog-body>`);
39678
39609
  function Dialog(props) {
39679
39610
  const t = useI18n();
39680
39611
  let dialogRef;
@@ -39699,7 +39630,7 @@ function Dialog(props) {
39699
39630
  return props.isOpen;
39700
39631
  },
39701
39632
  get children() {
39702
- var _el$ = _tmpl$2$c(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
39633
+ var _el$ = _tmpl$2$d(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
39703
39634
  _el$.$$click = () => {
39704
39635
  if (props.closeOnOverlayClick ?? true) {
39705
39636
  props.onClose();
@@ -39716,7 +39647,7 @@ function Dialog(props) {
39716
39647
  return props.footer;
39717
39648
  },
39718
39649
  get children() {
39719
- var _el$7 = _tmpl$$g();
39650
+ var _el$7 = _tmpl$$l();
39720
39651
  insert(_el$7, () => props.footer);
39721
39652
  return _el$7;
39722
39653
  }
@@ -39745,7 +39676,7 @@ function Dialog(props) {
39745
39676
  });
39746
39677
  }
39747
39678
  delegateEvents(["click"]);
39748
- var _tmpl$$f = /* @__PURE__ */ template(`<div><div class=oasis-editor-tabs-list role=tablist>`), _tmpl$2$b = /* @__PURE__ */ template(`<button type=button role=tab class=oasis-editor-tabs-tab>`), _tmpl$3$9 = /* @__PURE__ */ template(`<div role=tabpanel class=oasis-editor-tabs-panel>`);
39679
+ var _tmpl$$k = /* @__PURE__ */ template(`<div><div class=oasis-editor-tabs-list role=tablist>`), _tmpl$2$c = /* @__PURE__ */ template(`<button type=button role=tab class=oasis-editor-tabs-tab>`), _tmpl$3$8 = /* @__PURE__ */ template(`<div role=tabpanel class=oasis-editor-tabs-panel>`);
39749
39680
  function findEnabledItem(items, startIndex, direction) {
39750
39681
  if (!items.length) return void 0;
39751
39682
  for (let step = 0; step < items.length; step += 1) {
@@ -39796,7 +39727,7 @@ function Tabs(props) {
39796
39727
  selectItem(findEnabledItem(items(), currentIndex + direction, direction), true);
39797
39728
  };
39798
39729
  return (() => {
39799
- var _el$ = _tmpl$$f(), _el$2 = _el$.firstChild;
39730
+ var _el$ = _tmpl$$k(), _el$2 = _el$.firstChild;
39800
39731
  _el$2.$$keydown = handleKeyDown;
39801
39732
  insert(_el$2, createComponent(For, {
39802
39733
  get each() {
@@ -39806,7 +39737,7 @@ function Tabs(props) {
39806
39737
  const tabId = `${baseId}-${item.id}-tab`;
39807
39738
  const panelId = `${baseId}-${item.id}-panel`;
39808
39739
  return (() => {
39809
- var _el$3 = _tmpl$2$b();
39740
+ var _el$3 = _tmpl$2$c();
39810
39741
  _el$3.$$click = () => selectItem(item);
39811
39742
  use((element) => {
39812
39743
  tabRefs[index()] = element;
@@ -39841,7 +39772,7 @@ function Tabs(props) {
39841
39772
  return items();
39842
39773
  },
39843
39774
  children: (item) => (() => {
39844
- var _el$4 = _tmpl$3$9();
39775
+ var _el$4 = _tmpl$3$8();
39845
39776
  insert(_el$4, () => item.panel);
39846
39777
  createRenderEffect((_p$) => {
39847
39778
  var _a, _b;
@@ -39873,12 +39804,12 @@ function Tabs(props) {
39873
39804
  })();
39874
39805
  }
39875
39806
  delegateEvents(["keydown", "click"]);
39876
- var _tmpl$$e = /* @__PURE__ */ template(`<button><span class=oasis-editor-ui-button-label>`);
39807
+ var _tmpl$$j = /* @__PURE__ */ template(`<button><span class=oasis-editor-ui-button-label>`);
39877
39808
  function Button(props) {
39878
39809
  const [local, others] = splitProps(props, ["type", "variant", "size", "icon", "iconPosition", "fullWidth", "class", "classList", "children"]);
39879
39810
  const iconPosition = () => local.iconPosition ?? "start";
39880
39811
  return (() => {
39881
- var _el$ = _tmpl$$e(), _el$2 = _el$.firstChild;
39812
+ var _el$ = _tmpl$$j(), _el$2 = _el$.firstChild;
39882
39813
  spread(_el$, mergeProps({
39883
39814
  get type() {
39884
39815
  return local.type ?? "button";
@@ -39923,22 +39854,151 @@ function Button(props) {
39923
39854
  return _el$;
39924
39855
  })();
39925
39856
  }
39926
- var _tmpl$$d = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-label>`), _tmpl$2$a = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$8 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$7 = /* @__PURE__ */ template(`<label><input class=oasis-editor-ui-input>`);
39857
+ function Heading(props) {
39858
+ const [local, others] = splitProps(props, ["level", "class", "classList", "children"]);
39859
+ const level = local.level ?? 2;
39860
+ return createComponent(Dynamic, mergeProps({
39861
+ component: `h${level}`,
39862
+ get ["class"]() {
39863
+ return `oasis-editor-ui-heading ${local.class ?? ""}`;
39864
+ },
39865
+ get classList() {
39866
+ return {
39867
+ [`oasis-editor-ui-heading-${level}`]: true,
39868
+ ...local.classList
39869
+ };
39870
+ }
39871
+ }, others, {
39872
+ get children() {
39873
+ return local.children;
39874
+ }
39875
+ }));
39876
+ }
39877
+ function StatusText(props) {
39878
+ const [local, others] = splitProps(props, ["tone", "as", "class"]);
39879
+ return createComponent(Text$1, mergeProps({
39880
+ get as() {
39881
+ return local.as ?? "span";
39882
+ },
39883
+ get tone() {
39884
+ return memo(() => local.tone === "success")() ? "default" : local.tone ?? "muted";
39885
+ },
39886
+ size: "sm",
39887
+ get ["class"]() {
39888
+ return `oasis-editor-ui-status-text ${local.class ?? ""}`;
39889
+ }
39890
+ }, others));
39891
+ }
39892
+ var _tmpl$$i = /* @__PURE__ */ template(`<div>`);
39893
+ function ActionRow(props) {
39894
+ const [local, others] = splitProps(props, ["align", "wrap", "class", "classList", "children"]);
39895
+ return (() => {
39896
+ var _el$ = _tmpl$$i();
39897
+ spread(_el$, mergeProps({
39898
+ get ["class"]() {
39899
+ return `oasis-editor-ui-action-row ${local.class ?? ""}`;
39900
+ },
39901
+ get classList() {
39902
+ return {
39903
+ [`oasis-editor-ui-action-row-${local.align ?? "start"}`]: true,
39904
+ "oasis-editor-ui-action-row-nowrap": local.wrap === false,
39905
+ ...local.classList
39906
+ };
39907
+ }
39908
+ }, others), false, true);
39909
+ insert(_el$, () => local.children);
39910
+ return _el$;
39911
+ })();
39912
+ }
39913
+ var _tmpl$$h = /* @__PURE__ */ template(`<label>`), _tmpl$2$b = /* @__PURE__ */ template(`<div>`);
39914
+ function FormField(props) {
39915
+ const fallbackId = createUniqueId();
39916
+ const [local, others] = splitProps(props, ["label", "for", "description", "error", "labelClass", "class", "classList", "children"]);
39917
+ const descriptionId = () => local.for ?? `${fallbackId}-description`;
39918
+ const errorId = () => local.for ?? `${fallbackId}-error`;
39919
+ return (() => {
39920
+ var _el$ = _tmpl$2$b();
39921
+ spread(_el$, mergeProps({
39922
+ get ["class"]() {
39923
+ return `oasis-editor-ui-field ${local.class ?? ""}`;
39924
+ },
39925
+ get classList() {
39926
+ return local.classList;
39927
+ }
39928
+ }, others), false, true);
39929
+ insert(_el$, createComponent(Show, {
39930
+ get when() {
39931
+ return local.label;
39932
+ },
39933
+ get children() {
39934
+ var _el$2 = _tmpl$$h();
39935
+ insert(_el$2, () => local.label);
39936
+ createRenderEffect((_p$) => {
39937
+ var _v$ = `oasis-editor-ui-field-label ${local.labelClass ?? ""}`, _v$2 = local.for;
39938
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
39939
+ _v$2 !== _p$.t && setAttribute(_el$2, "for", _p$.t = _v$2);
39940
+ return _p$;
39941
+ }, {
39942
+ e: void 0,
39943
+ t: void 0
39944
+ });
39945
+ return _el$2;
39946
+ }
39947
+ }), null);
39948
+ insert(_el$, () => local.children, null);
39949
+ insert(_el$, createComponent(Show, {
39950
+ get when() {
39951
+ return local.description;
39952
+ },
39953
+ get children() {
39954
+ return createComponent(StatusText, {
39955
+ get id() {
39956
+ return descriptionId();
39957
+ },
39958
+ "class": "oasis-editor-ui-field-description",
39959
+ get children() {
39960
+ return local.description;
39961
+ }
39962
+ });
39963
+ }
39964
+ }), null);
39965
+ insert(_el$, createComponent(Show, {
39966
+ get when() {
39967
+ return local.error;
39968
+ },
39969
+ get children() {
39970
+ return createComponent(StatusText, {
39971
+ get id() {
39972
+ return errorId();
39973
+ },
39974
+ tone: "danger",
39975
+ "class": "oasis-editor-ui-field-error",
39976
+ get children() {
39977
+ return local.error;
39978
+ }
39979
+ });
39980
+ }
39981
+ }), null);
39982
+ return _el$;
39983
+ })();
39984
+ }
39985
+ var _tmpl$$g = /* @__PURE__ */ template(`<span>`), _tmpl$2$a = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$7 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$6 = /* @__PURE__ */ template(`<label><input>`);
39927
39986
  function TextField(props) {
39928
39987
  const fallbackId = createUniqueId();
39929
- const [local, others] = splitProps(props, ["label", "description", "error", "onChange", "class", "id"]);
39988
+ const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "onChange", "class", "id"]);
39930
39989
  const id = () => local.id ?? fallbackId;
39931
39990
  const descriptionId = () => `${id()}-description`;
39932
39991
  const errorId = () => `${id()}-error`;
39933
39992
  return (() => {
39934
- var _el$ = _tmpl$4$7(), _el$3 = _el$.firstChild;
39993
+ var _el$ = _tmpl$4$6(), _el$3 = _el$.firstChild;
39935
39994
  insert(_el$, createComponent(Show, {
39936
39995
  get when() {
39937
39996
  return local.label;
39938
39997
  },
39939
39998
  get children() {
39940
- var _el$2 = _tmpl$$d();
39999
+ var _el$2 = _tmpl$$g();
39941
40000
  insert(_el$2, () => local.label);
40001
+ createRenderEffect(() => className(_el$2, `oasis-editor-ui-field-label ${local.labelClass ?? ""}`));
39942
40002
  return _el$2;
39943
40003
  }
39944
40004
  }), _el$3);
@@ -39950,6 +40010,9 @@ function TextField(props) {
39950
40010
  get id() {
39951
40011
  return id();
39952
40012
  },
40013
+ get ["class"]() {
40014
+ return `oasis-editor-ui-input ${local.controlClass ?? ""}`;
40015
+ },
39953
40016
  get ["aria-invalid"]() {
39954
40017
  return local.error ? "true" : void 0;
39955
40018
  },
@@ -39973,7 +40036,7 @@ function TextField(props) {
39973
40036
  return local.error;
39974
40037
  },
39975
40038
  get children() {
39976
- var _el$5 = _tmpl$3$8();
40039
+ var _el$5 = _tmpl$3$7();
39977
40040
  insert(_el$5, () => local.error);
39978
40041
  createRenderEffect(() => setAttribute(_el$5, "id", errorId()));
39979
40042
  return _el$5;
@@ -39992,7 +40055,57 @@ function TextField(props) {
39992
40055
  })();
39993
40056
  }
39994
40057
  delegateEvents(["input"]);
39995
- var _tmpl$$c = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$2$9 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$3$7 = /* @__PURE__ */ template(`<label><input type=checkbox class=oasis-editor-ui-checkbox-input><span class=oasis-editor-ui-checkbox-copy><span class=oasis-editor-ui-field-label>`);
40058
+ var _tmpl$$f = /* @__PURE__ */ template(`<textarea>`);
40059
+ function TextAreaField(props) {
40060
+ const fallbackId = createUniqueId();
40061
+ const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "onChange", "class", "id"]);
40062
+ const id = () => local.id ?? fallbackId;
40063
+ const describedBy = () => [local.description ? `${id()}-description` : null, local.error ? `${id()}-error` : null].filter(Boolean).join(" ");
40064
+ return createComponent(FormField, {
40065
+ get ["class"]() {
40066
+ return local.class;
40067
+ },
40068
+ get label() {
40069
+ return local.label;
40070
+ },
40071
+ get ["for"]() {
40072
+ return id();
40073
+ },
40074
+ get labelClass() {
40075
+ return local.labelClass;
40076
+ },
40077
+ get description() {
40078
+ return local.description;
40079
+ },
40080
+ get error() {
40081
+ return local.error;
40082
+ },
40083
+ get children() {
40084
+ var _el$ = _tmpl$$f();
40085
+ _el$.$$input = (event) => {
40086
+ var _a;
40087
+ return (_a = local.onChange) == null ? void 0 : _a.call(local, event.currentTarget.value);
40088
+ };
40089
+ spread(_el$, mergeProps({
40090
+ get id() {
40091
+ return id();
40092
+ },
40093
+ get ["class"]() {
40094
+ return `oasis-editor-ui-input oasis-editor-ui-textarea ${local.controlClass ?? ""}`;
40095
+ },
40096
+ get ["aria-invalid"]() {
40097
+ return local.error ? "true" : void 0;
40098
+ },
40099
+ get ["aria-describedby"]() {
40100
+ return describedBy() || void 0;
40101
+ }
40102
+ }, others), false, false);
40103
+ return _el$;
40104
+ }
40105
+ });
40106
+ }
40107
+ delegateEvents(["input"]);
40108
+ var _tmpl$$e = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$2$9 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$3$6 = /* @__PURE__ */ template(`<label><input type=checkbox class=oasis-editor-ui-checkbox-input><span class=oasis-editor-ui-checkbox-copy><span class=oasis-editor-ui-field-label>`);
39996
40109
  function Checkbox(props) {
39997
40110
  const fallbackId = createUniqueId();
39998
40111
  const [local, others] = splitProps(props, ["label", "description", "error", "onChange", "class", "id"]);
@@ -40000,7 +40113,7 @@ function Checkbox(props) {
40000
40113
  const descriptionId = () => `${id()}-description`;
40001
40114
  const errorId = () => `${id()}-error`;
40002
40115
  return (() => {
40003
- var _el$ = _tmpl$3$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
40116
+ var _el$ = _tmpl$3$6(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
40004
40117
  _el$2.addEventListener("change", (event) => {
40005
40118
  var _a;
40006
40119
  return (_a = local.onChange) == null ? void 0 : _a.call(local, event.currentTarget.checked);
@@ -40022,7 +40135,7 @@ function Checkbox(props) {
40022
40135
  return local.description;
40023
40136
  },
40024
40137
  get children() {
40025
- var _el$5 = _tmpl$$c();
40138
+ var _el$5 = _tmpl$$e();
40026
40139
  insert(_el$5, () => local.description);
40027
40140
  createRenderEffect(() => setAttribute(_el$5, "id", descriptionId()));
40028
40141
  return _el$5;
@@ -40051,22 +40164,23 @@ function Checkbox(props) {
40051
40164
  return _el$;
40052
40165
  })();
40053
40166
  }
40054
- var _tmpl$$b = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-label>`), _tmpl$2$8 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$6 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$6 = /* @__PURE__ */ template(`<label><select class=oasis-editor-ui-select>`), _tmpl$5$5 = /* @__PURE__ */ template(`<option>`);
40167
+ var _tmpl$$d = /* @__PURE__ */ template(`<span>`), _tmpl$2$8 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$5 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$5 = /* @__PURE__ */ template(`<label><select>`), _tmpl$5$4 = /* @__PURE__ */ template(`<option>`);
40055
40168
  function SelectField(props) {
40056
40169
  const fallbackId = createUniqueId();
40057
- const [local, others] = splitProps(props, ["label", "description", "error", "options", "onChange", "class", "id"]);
40170
+ const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "options", "onChange", "class", "id"]);
40058
40171
  const id = () => local.id ?? fallbackId;
40059
40172
  const descriptionId = () => `${id()}-description`;
40060
40173
  const errorId = () => `${id()}-error`;
40061
40174
  return (() => {
40062
- var _el$ = _tmpl$4$6(), _el$3 = _el$.firstChild;
40175
+ var _el$ = _tmpl$4$5(), _el$3 = _el$.firstChild;
40063
40176
  insert(_el$, createComponent(Show, {
40064
40177
  get when() {
40065
40178
  return local.label;
40066
40179
  },
40067
40180
  get children() {
40068
- var _el$2 = _tmpl$$b();
40181
+ var _el$2 = _tmpl$$d();
40069
40182
  insert(_el$2, () => local.label);
40183
+ createRenderEffect(() => className(_el$2, `oasis-editor-ui-field-label ${local.labelClass ?? ""}`));
40070
40184
  return _el$2;
40071
40185
  }
40072
40186
  }), _el$3);
@@ -40078,6 +40192,9 @@ function SelectField(props) {
40078
40192
  get id() {
40079
40193
  return id();
40080
40194
  },
40195
+ get ["class"]() {
40196
+ return `oasis-editor-ui-select ${local.controlClass ?? ""}`;
40197
+ },
40081
40198
  get ["aria-invalid"]() {
40082
40199
  return local.error ? "true" : void 0;
40083
40200
  },
@@ -40090,7 +40207,7 @@ function SelectField(props) {
40090
40207
  return local.options;
40091
40208
  },
40092
40209
  children: (option) => (() => {
40093
- var _el$6 = _tmpl$5$5();
40210
+ var _el$6 = _tmpl$5$4();
40094
40211
  insert(_el$6, () => option.label);
40095
40212
  createRenderEffect(() => _el$6.disabled = option.disabled);
40096
40213
  createRenderEffect(() => _el$6.value = option.value);
@@ -40113,7 +40230,7 @@ function SelectField(props) {
40113
40230
  return local.error;
40114
40231
  },
40115
40232
  get children() {
40116
- var _el$5 = _tmpl$3$6();
40233
+ var _el$5 = _tmpl$3$5();
40117
40234
  insert(_el$5, () => local.error);
40118
40235
  createRenderEffect(() => setAttribute(_el$5, "id", errorId()));
40119
40236
  return _el$5;
@@ -40131,6 +40248,72 @@ function SelectField(props) {
40131
40248
  return _el$;
40132
40249
  })();
40133
40250
  }
40251
+ function NumberField(props) {
40252
+ const [local, others] = splitProps(props, ["onChange"]);
40253
+ return createComponent(TextField, mergeProps({
40254
+ type: "number",
40255
+ onChange: (raw) => {
40256
+ var _a, _b;
40257
+ if (raw.trim() === "") {
40258
+ (_a = local.onChange) == null ? void 0 : _a.call(local, null);
40259
+ return;
40260
+ }
40261
+ const parsed = Number(raw);
40262
+ (_b = local.onChange) == null ? void 0 : _b.call(local, Number.isNaN(parsed) ? null : parsed);
40263
+ }
40264
+ }, others));
40265
+ }
40266
+ var _tmpl$$c = /* @__PURE__ */ template(`<div>`);
40267
+ const ALIGN_MAP = {
40268
+ start: "flex-start",
40269
+ center: "center",
40270
+ end: "flex-end",
40271
+ stretch: "stretch"
40272
+ };
40273
+ function FieldRow(props) {
40274
+ const [local, others] = splitProps(props, ["align", "class", "style", "children"]);
40275
+ return (() => {
40276
+ var _el$ = _tmpl$$c();
40277
+ spread(_el$, mergeProps({
40278
+ get ["class"]() {
40279
+ return `oasis-editor-ui-field-row ${local.class ?? ""}`;
40280
+ },
40281
+ get style() {
40282
+ return {
40283
+ "align-items": ALIGN_MAP[local.align ?? "end"],
40284
+ ...typeof local.style === "object" ? local.style : {}
40285
+ };
40286
+ }
40287
+ }, others), false, true);
40288
+ insert(_el$, () => local.children);
40289
+ return _el$;
40290
+ })();
40291
+ }
40292
+ var _tmpl$$b = /* @__PURE__ */ template(`<legend>`), _tmpl$2$7 = /* @__PURE__ */ template(`<fieldset>`);
40293
+ function FieldGroup(props) {
40294
+ const [local, others] = splitProps(props, ["legend", "legendClass", "class", "children"]);
40295
+ return (() => {
40296
+ var _el$ = _tmpl$2$7();
40297
+ spread(_el$, mergeProps({
40298
+ get ["class"]() {
40299
+ return `oasis-editor-ui-field-group ${local.class ?? ""}`;
40300
+ }
40301
+ }, others), false, true);
40302
+ insert(_el$, createComponent(Show, {
40303
+ get when() {
40304
+ return local.legend;
40305
+ },
40306
+ get children() {
40307
+ var _el$2 = _tmpl$$b();
40308
+ insert(_el$2, () => local.legend);
40309
+ createRenderEffect(() => className(_el$2, `oasis-editor-ui-field-group-legend ${local.legendClass ?? ""}`));
40310
+ return _el$2;
40311
+ }
40312
+ }), null);
40313
+ insert(_el$, () => local.children, null);
40314
+ return _el$;
40315
+ })();
40316
+ }
40134
40317
  var _tmpl$$a = /* @__PURE__ */ template(`<div>`);
40135
40318
  function DialogFooter(props) {
40136
40319
  const [local, others] = splitProps(props, ["align", "class", "classList", "children"]);
@@ -40448,7 +40631,7 @@ const UNDERLINE_STYLE_OPTIONS = [
40448
40631
  }
40449
40632
  }
40450
40633
  ];
40451
- var _tmpl$$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action data-testid=editor-toolbar-underline-remove role=menuitem><span class=oasis-editor-color-menu-action-swatch><i data-lucide=slash></i></span><span>`), _tmpl$2$7 = /* @__PURE__ */ template(`<div class=oasis-editor-underline-menu-list>`), _tmpl$3$5 = /* @__PURE__ */ template(`<span class="oasis-editor-color-split-icon oasis-editor-underline-split-icon"><span class=oasis-editor-underline-split-glyph aria-hidden=true>U</span><span class=oasis-editor-underline-split-indicator>`), _tmpl$4$5 = /* @__PURE__ */ template(`<span class="oasis-editor-underline-menu-stroke oasis-editor-underline-menu-stroke-svg">`), _tmpl$5$4 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-underline-menu-item role=menuitemradio><span class=oasis-editor-underline-menu-preview></span><span class=oasis-editor-underline-menu-label>`), _tmpl$6$3 = /* @__PURE__ */ template(`<span class=oasis-editor-underline-menu-stroke>`);
40634
+ var _tmpl$$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action data-testid=editor-toolbar-underline-remove role=menuitem><span class=oasis-editor-color-menu-action-swatch><i data-lucide=slash></i></span><span>`), _tmpl$2$6 = /* @__PURE__ */ template(`<div class=oasis-editor-underline-menu-list>`), _tmpl$3$4 = /* @__PURE__ */ template(`<span class="oasis-editor-color-split-icon oasis-editor-underline-split-icon"><span class=oasis-editor-underline-split-glyph aria-hidden=true>U</span><span class=oasis-editor-underline-split-indicator>`), _tmpl$4$4 = /* @__PURE__ */ template(`<span class="oasis-editor-underline-menu-stroke oasis-editor-underline-menu-stroke-svg">`), _tmpl$5$3 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-underline-menu-item role=menuitemradio><span class=oasis-editor-underline-menu-preview></span><span class=oasis-editor-underline-menu-label>`), _tmpl$6$3 = /* @__PURE__ */ template(`<span class=oasis-editor-underline-menu-stroke>`);
40452
40635
  const mod$1 = /Mac/i.test(navigator.userAgent) ? "⌘" : "Ctrl";
40453
40636
  const TEST_ID = "editor-toolbar-underline";
40454
40637
  function UnderlineControl(props) {
@@ -40499,7 +40682,7 @@ function UnderlineControl(props) {
40499
40682
  panelRole: "menu",
40500
40683
  get mainContent() {
40501
40684
  return (() => {
40502
- var _el$5 = _tmpl$3$5(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
40685
+ var _el$5 = _tmpl$3$4(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
40503
40686
  createRenderEffect(() => setAttribute(_el$7, "data-style", indicatorStyle()));
40504
40687
  return _el$5;
40505
40688
  })();
@@ -40514,13 +40697,13 @@ function UnderlineControl(props) {
40514
40697
  insert(_el$3, () => t("toolbar.underlineRemove"));
40515
40698
  return _el$;
40516
40699
  })(), (() => {
40517
- var _el$4 = _tmpl$2$7();
40700
+ var _el$4 = _tmpl$2$6();
40518
40701
  insert(_el$4, createComponent(For, {
40519
40702
  each: UNDERLINE_STYLE_OPTIONS,
40520
40703
  children: (option) => {
40521
40704
  const isActive = () => active() && activeStyleValue() === option.value.toLowerCase();
40522
40705
  return (() => {
40523
- var _el$8 = _tmpl$5$4(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling;
40706
+ var _el$8 = _tmpl$5$3(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling;
40524
40707
  _el$8.$$click = () => {
40525
40708
  applyUnderlineStyle(option.value);
40526
40709
  setOpen(false);
@@ -40540,7 +40723,7 @@ function UnderlineControl(props) {
40540
40723
  })();
40541
40724
  },
40542
40725
  get children() {
40543
- var _el$0 = _tmpl$4$5();
40726
+ var _el$0 = _tmpl$4$4();
40544
40727
  createRenderEffect(() => _el$0.innerHTML = option.preview.svg);
40545
40728
  return _el$0;
40546
40729
  }
@@ -40569,7 +40752,7 @@ function UnderlineControl(props) {
40569
40752
  });
40570
40753
  }
40571
40754
  delegateEvents(["click"]);
40572
- var _tmpl$$8 = /* @__PURE__ */ template(`<option value=decimal>`), _tmpl$2$6 = /* @__PURE__ */ template(`<option value=lowerLetter>`), _tmpl$3$4 = /* @__PURE__ */ template(`<option value=upperLetter>`), _tmpl$4$4 = /* @__PURE__ */ template(`<option value=lowerRoman>`), _tmpl$5$3 = /* @__PURE__ */ template(`<option value=upperRoman>`), _tmpl$6$2 = /* @__PURE__ */ template(`<option value=bullet>`), _tmpl$7 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-list-options><label class=oasis-editor-toolbar-field><span></span></label><label class=oasis-editor-toolbar-field><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-list-start-at min=1 step=1 placeholder=1>`);
40755
+ var _tmpl$$8 = /* @__PURE__ */ template(`<option value=decimal>`), _tmpl$2$5 = /* @__PURE__ */ template(`<option value=lowerLetter>`), _tmpl$3$3 = /* @__PURE__ */ template(`<option value=upperLetter>`), _tmpl$4$3 = /* @__PURE__ */ template(`<option value=lowerRoman>`), _tmpl$5$2 = /* @__PURE__ */ template(`<option value=upperRoman>`), _tmpl$6$2 = /* @__PURE__ */ template(`<option value=bullet>`), _tmpl$7 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-list-options><label class=oasis-editor-toolbar-field><span></span></label><label class=oasis-editor-toolbar-field><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-list-start-at min=1 step=1 placeholder=1>`);
40573
40756
  function ListOptionsControl(props) {
40574
40757
  const t = useI18n();
40575
40758
  const api = props.api;
@@ -40595,19 +40778,19 @@ function ListOptionsControl(props) {
40595
40778
  insert(_el$4, () => t("toolbar.formatDecimal"));
40596
40779
  return _el$4;
40597
40780
  })(), (() => {
40598
- var _el$5 = _tmpl$2$6();
40781
+ var _el$5 = _tmpl$2$5();
40599
40782
  insert(_el$5, () => t("toolbar.formatLowerLetter"));
40600
40783
  return _el$5;
40601
40784
  })(), (() => {
40602
- var _el$6 = _tmpl$3$4();
40785
+ var _el$6 = _tmpl$3$3();
40603
40786
  insert(_el$6, () => t("toolbar.formatUpperLetter"));
40604
40787
  return _el$6;
40605
40788
  })(), (() => {
40606
- var _el$7 = _tmpl$4$4();
40789
+ var _el$7 = _tmpl$4$3();
40607
40790
  insert(_el$7, () => t("toolbar.formatLowerRoman"));
40608
40791
  return _el$7;
40609
40792
  })(), (() => {
40610
- var _el$8 = _tmpl$5$3();
40793
+ var _el$8 = _tmpl$5$2();
40611
40794
  insert(_el$8, () => t("toolbar.formatUpperRoman"));
40612
40795
  return _el$8;
40613
40796
  })(), (() => {
@@ -40624,35 +40807,35 @@ function ListOptionsControl(props) {
40624
40807
  }
40625
40808
  });
40626
40809
  }
40627
- var _tmpl$$7 = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-row><div class="oasis-editor-dialog-input-group oasis-editor-dialog-input-group-grow"><label class=oasis-editor-dialog-label></label><input type=number class=oasis-editor-dialog-input min=0.5 step=0.05 data-testid=editor-line-spacing-dialog-line-height>`), _tmpl$2$5 = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-row><div class="oasis-editor-dialog-input-group oasis-editor-dialog-input-group-grow"><label class=oasis-editor-dialog-label></label><input type=number class=oasis-editor-dialog-input min=0 step=1 data-testid=editor-line-spacing-dialog-spacing-before></div><div class="oasis-editor-dialog-input-group oasis-editor-dialog-input-group-grow"><label class=oasis-editor-dialog-label></label><input type=number class=oasis-editor-dialog-input min=0 step=1 data-testid=editor-line-spacing-dialog-spacing-after>`), _tmpl$3$3 = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-input-group><label class=oasis-editor-dialog-label></label><div class=oasis-editor-dialog-preview data-testid=editor-line-spacing-dialog-preview><br>`), _tmpl$4$3 = /* @__PURE__ */ template(`<button class="oasis-editor-dialog-button oasis-editor-dialog-button-secondary"data-testid=editor-line-spacing-dialog-cancel>`), _tmpl$5$2 = /* @__PURE__ */ template(`<button class="oasis-editor-dialog-button oasis-editor-dialog-button-primary"data-testid=editor-line-spacing-dialog-apply>`);
40810
+ var _tmpl$$7 = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-input-group><label class=oasis-editor-dialog-label></label><div class=oasis-editor-dialog-preview data-testid=editor-line-spacing-dialog-preview><br>`);
40628
40811
  function LineSpacingDialog(props) {
40629
40812
  const t = useI18n();
40630
- const [lineHeight, setLineHeight] = createSignal("");
40631
- const [spacingBefore, setSpacingBefore] = createSignal("");
40632
- const [spacingAfter, setSpacingAfter] = createSignal("");
40633
- createEffect(() => {
40634
- if (props.isOpen) {
40635
- setLineHeight(props.initial.lineHeight ?? "");
40636
- setSpacingBefore(props.initial.spacingBefore ?? "");
40637
- setSpacingAfter(props.initial.spacingAfter ?? "");
40638
- }
40639
- });
40640
40813
  const parseNumber = (value) => {
40641
40814
  if (value.trim() === "") return null;
40642
40815
  const num = Number(value);
40643
40816
  return Number.isFinite(num) ? num : null;
40644
40817
  };
40818
+ const [lineHeight, setLineHeight] = createSignal(null);
40819
+ const [spacingBefore, setSpacingBefore] = createSignal(null);
40820
+ const [spacingAfter, setSpacingAfter] = createSignal(null);
40821
+ createEffect(() => {
40822
+ if (props.isOpen) {
40823
+ setLineHeight(parseNumber(props.initial.lineHeight ?? ""));
40824
+ setSpacingBefore(parseNumber(props.initial.spacingBefore ?? ""));
40825
+ setSpacingAfter(parseNumber(props.initial.spacingAfter ?? ""));
40826
+ }
40827
+ });
40645
40828
  const previewStyle2 = createMemo(() => {
40646
- const lh = parseNumber(lineHeight());
40829
+ const lh = lineHeight();
40647
40830
  return {
40648
40831
  "line-height": lh !== null && lh > 0 ? String(lh) : void 0
40649
40832
  };
40650
40833
  });
40651
40834
  const handleApply = () => {
40652
40835
  props.onApply({
40653
- lineHeight: parseNumber(lineHeight()),
40654
- spacingBefore: parseNumber(spacingBefore()),
40655
- spacingAfter: parseNumber(spacingAfter())
40836
+ lineHeight: lineHeight(),
40837
+ spacingBefore: spacingBefore(),
40838
+ spacingAfter: spacingAfter()
40656
40839
  }, props.initial);
40657
40840
  props.onClose();
40658
40841
  };
@@ -40667,46 +40850,77 @@ function LineSpacingDialog(props) {
40667
40850
  return props.onClose;
40668
40851
  },
40669
40852
  get footer() {
40670
- return [(() => {
40671
- var _el$14 = _tmpl$4$3();
40672
- addEventListener(_el$14, "click", props.onClose, true);
40673
- insert(_el$14, () => t("generic.cancel"));
40674
- return _el$14;
40675
- })(), (() => {
40676
- var _el$15 = _tmpl$5$2();
40677
- _el$15.$$click = handleApply;
40678
- insert(_el$15, () => t("generic.apply"));
40679
- return _el$15;
40680
- })()];
40853
+ return [createComponent(Button, {
40854
+ variant: "secondary",
40855
+ get onClick() {
40856
+ return props.onClose;
40857
+ },
40858
+ "data-testid": "editor-line-spacing-dialog-cancel",
40859
+ get children() {
40860
+ return t("generic.cancel");
40861
+ }
40862
+ }), createComponent(Button, {
40863
+ variant: "primary",
40864
+ onClick: handleApply,
40865
+ "data-testid": "editor-line-spacing-dialog-apply",
40866
+ get children() {
40867
+ return t("generic.apply");
40868
+ }
40869
+ })];
40681
40870
  },
40682
40871
  get children() {
40683
- return [(() => {
40684
- var _el$ = _tmpl$$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
40685
- insert(_el$3, () => t("lineSpacing.lineSpacingLabel"));
40686
- _el$4.$$input = (e) => setLineHeight(e.currentTarget.value);
40687
- createRenderEffect(() => _el$4.value = lineHeight());
40872
+ return [createComponent(FieldRow, {
40873
+ get children() {
40874
+ return createComponent(NumberField, {
40875
+ get label() {
40876
+ return t("lineSpacing.lineSpacingLabel");
40877
+ },
40878
+ min: "0.5",
40879
+ step: "0.05",
40880
+ get value() {
40881
+ return lineHeight() ?? "";
40882
+ },
40883
+ onChange: setLineHeight,
40884
+ "data-testid": "editor-line-spacing-dialog-line-height"
40885
+ });
40886
+ }
40887
+ }), createComponent(FieldRow, {
40888
+ get children() {
40889
+ return [createComponent(NumberField, {
40890
+ get label() {
40891
+ return t("lineSpacing.spacingBeforeLabel");
40892
+ },
40893
+ min: "0",
40894
+ step: "1",
40895
+ get value() {
40896
+ return spacingBefore() ?? "";
40897
+ },
40898
+ onChange: setSpacingBefore,
40899
+ "data-testid": "editor-line-spacing-dialog-spacing-before"
40900
+ }), createComponent(NumberField, {
40901
+ get label() {
40902
+ return t("lineSpacing.spacingAfterLabel");
40903
+ },
40904
+ min: "0",
40905
+ step: "1",
40906
+ get value() {
40907
+ return spacingAfter() ?? "";
40908
+ },
40909
+ onChange: setSpacingAfter,
40910
+ "data-testid": "editor-line-spacing-dialog-spacing-after"
40911
+ })];
40912
+ }
40913
+ }), (() => {
40914
+ var _el$ = _tmpl$$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
40915
+ insert(_el$2, () => t("lineSpacing.preview"));
40916
+ insert(_el$3, () => t("lineSpacing.previewText"), _el$4);
40917
+ insert(_el$3, () => t("lineSpacing.previewText"), null);
40918
+ createRenderEffect((_$p) => style(_el$3, previewStyle2(), _$p));
40688
40919
  return _el$;
40689
- })(), (() => {
40690
- var _el$5 = _tmpl$2$5(), _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$6.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling;
40691
- insert(_el$7, () => t("lineSpacing.spacingBeforeLabel"));
40692
- _el$8.$$input = (e) => setSpacingBefore(e.currentTarget.value);
40693
- insert(_el$0, () => t("lineSpacing.spacingAfterLabel"));
40694
- _el$1.$$input = (e) => setSpacingAfter(e.currentTarget.value);
40695
- createRenderEffect(() => _el$8.value = spacingBefore());
40696
- createRenderEffect(() => _el$1.value = spacingAfter());
40697
- return _el$5;
40698
- })(), (() => {
40699
- var _el$10 = _tmpl$3$3(), _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$12.firstChild;
40700
- insert(_el$11, () => t("lineSpacing.preview"));
40701
- insert(_el$12, () => t("lineSpacing.previewText"), _el$13);
40702
- insert(_el$12, () => t("lineSpacing.previewText"), null);
40703
- createRenderEffect((_$p) => style(_el$12, previewStyle2(), _$p));
40704
- return _el$10;
40705
40920
  })()];
40706
40921
  }
40707
40922
  });
40708
40923
  }
40709
- delegateEvents(["input", "click"]);
40710
40924
  var _tmpl$$6 = /* @__PURE__ */ template(`<div class=oasis-editor-line-spacing-menu-separator role=separator>`), _tmpl$2$4 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-line-spacing-item oasis-editor-line-spacing-item-more"role=menuitem data-testid=editor-toolbar-line-spacing-options><span class=oasis-editor-line-spacing-item-check aria-hidden=true></span><span class=oasis-editor-line-spacing-item-label>`), _tmpl$3$2 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$2 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-line-spacing-button"aria-haspopup=menu data-testid=editor-toolbar-line-spacing><span class=oasis-editor-line-spacing-icon aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><polyline points="4 7 7 4 10 7"></polyline><line x1=7 y1=4 x2=7 y2=20></line><polyline points="4 17 7 20 10 17"></polyline><line x1=13 y1=6 x2=21 y2=6></line><line x1=13 y1=12 x2=21 y2=12></line><line x1=13 y1=18 x2=21 y2=18>`), _tmpl$5$1 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><polyline points="20 6 9 17 4 12">`), _tmpl$6$1 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-line-spacing-item role=menuitemradio><span class=oasis-editor-line-spacing-item-check aria-hidden=true></span><span class=oasis-editor-line-spacing-item-label>`);
40711
40925
  const PRESET_VALUES = [1, 1.15, 1.5, 2, 2.5, 3];
40712
40926
  function formatPreset(value) {
@@ -40862,7 +41076,7 @@ function LineSpacingButton(props) {
40862
41076
  })();
40863
41077
  }
40864
41078
  delegateEvents(["click"]);
40865
- var _tmpl$$5 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`), _tmpl$2$3 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-panel-grid><label class=oasis-editor-tool-metric><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-spacing-after min=0 step=1></label><label class=oasis-editor-tool-metric><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-indent-left min=0 step=1></label><label class=oasis-editor-tool-metric><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-indent-first-line step=1></label><label class=oasis-editor-tool-metric><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-indent-hanging min=0 step=1></label><label class=oasis-editor-tool-color><span></span><input type=color class=oasis-editor-tool-color-input data-testid=editor-toolbar-paragraph-shading>`);
41079
+ var _tmpl$$5 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`), _tmpl$2$3 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-panel-grid>`);
40866
41080
  const numValue = (api, command) => {
40867
41081
  const value = api.commands.state(command).value;
40868
41082
  return value == null ? "" : String(value);
@@ -40870,7 +41084,6 @@ const numValue = (api, command) => {
40870
41084
  function MetricGroup(props) {
40871
41085
  const t = useI18n();
40872
41086
  const api = props.api;
40873
- const onNumber = (command) => (event) => api.commands.execute(command, event.currentTarget.value);
40874
41087
  return createComponent(Menu, {
40875
41088
  icon: "sliders-horizontal",
40876
41089
  testId: "editor-toolbar-metrics-dropdown",
@@ -40907,17 +41120,95 @@ function MetricGroup(props) {
40907
41120
  }), null);
40908
41121
  return _el$;
40909
41122
  })(), (() => {
40910
- var _el$2 = _tmpl$2$3(), _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling, _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$6.nextSibling, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$9.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$10.nextSibling, _el$14 = _el$13.firstChild, _el$15 = _el$14.nextSibling;
40911
- insert(_el$4, () => t("metric.after"));
40912
- addEventListener(_el$5, "change", onNumber("setSpacingAfter"));
40913
- insert(_el$7, () => t("metric.indent"));
40914
- addEventListener(_el$8, "change", onNumber("setIndentLeft"));
40915
- insert(_el$0, () => t("metric.first"));
40916
- addEventListener(_el$1, "change", onNumber("setIndentFirstLine"));
40917
- insert(_el$11, () => t("metric.hang"));
40918
- addEventListener(_el$12, "change", onNumber("setIndentHanging"));
40919
- insert(_el$14, () => t("metric.paraBg"));
40920
- _el$15.$$input = (event) => api.commands.execute("setParagraphShading", event.currentTarget.value);
41123
+ var _el$2 = _tmpl$2$3();
41124
+ insert(_el$2, createComponent(NumberField, {
41125
+ "class": "oasis-editor-tool-metric",
41126
+ labelClass: "oasis-editor-tool-metric-label",
41127
+ get title() {
41128
+ return t("metric.spacingAfter");
41129
+ },
41130
+ get label() {
41131
+ return t("metric.after");
41132
+ },
41133
+ controlClass: "oasis-editor-tool-number",
41134
+ "data-testid": "editor-toolbar-spacing-after",
41135
+ min: "0",
41136
+ step: "1",
41137
+ get value() {
41138
+ return numValue(api, "setSpacingAfter");
41139
+ },
41140
+ onChange: (value) => api.commands.execute("setSpacingAfter", value == null ? "" : String(value))
41141
+ }), null);
41142
+ insert(_el$2, createComponent(NumberField, {
41143
+ "class": "oasis-editor-tool-metric",
41144
+ labelClass: "oasis-editor-tool-metric-label",
41145
+ get title() {
41146
+ return t("metric.leftIndent");
41147
+ },
41148
+ get label() {
41149
+ return t("metric.indent");
41150
+ },
41151
+ controlClass: "oasis-editor-tool-number",
41152
+ "data-testid": "editor-toolbar-indent-left",
41153
+ min: "0",
41154
+ step: "1",
41155
+ get value() {
41156
+ return numValue(api, "setIndentLeft");
41157
+ },
41158
+ onChange: (value) => api.commands.execute("setIndentLeft", value == null ? "" : String(value))
41159
+ }), null);
41160
+ insert(_el$2, createComponent(NumberField, {
41161
+ "class": "oasis-editor-tool-metric",
41162
+ labelClass: "oasis-editor-tool-metric-label",
41163
+ get title() {
41164
+ return t("metric.firstLineIndent");
41165
+ },
41166
+ get label() {
41167
+ return t("metric.first");
41168
+ },
41169
+ controlClass: "oasis-editor-tool-number",
41170
+ "data-testid": "editor-toolbar-indent-first-line",
41171
+ step: "1",
41172
+ get value() {
41173
+ return numValue(api, "setIndentFirstLine");
41174
+ },
41175
+ onChange: (value) => api.commands.execute("setIndentFirstLine", value == null ? "" : String(value))
41176
+ }), null);
41177
+ insert(_el$2, createComponent(NumberField, {
41178
+ "class": "oasis-editor-tool-metric",
41179
+ labelClass: "oasis-editor-tool-metric-label",
41180
+ get title() {
41181
+ return t("metric.hangingIndent");
41182
+ },
41183
+ get label() {
41184
+ return t("metric.hang");
41185
+ },
41186
+ controlClass: "oasis-editor-tool-number",
41187
+ "data-testid": "editor-toolbar-indent-hanging",
41188
+ min: "0",
41189
+ step: "1",
41190
+ get value() {
41191
+ return numValue(api, "setIndentHanging");
41192
+ },
41193
+ onChange: (value) => api.commands.execute("setIndentHanging", value == null ? "" : String(value))
41194
+ }), null);
41195
+ insert(_el$2, createComponent(TextField, {
41196
+ "class": "oasis-editor-tool-color",
41197
+ labelClass: "oasis-editor-tool-metric-label",
41198
+ get title() {
41199
+ return t("metric.paragraphBgColor");
41200
+ },
41201
+ get label() {
41202
+ return t("metric.paraBg");
41203
+ },
41204
+ type: "color",
41205
+ controlClass: "oasis-editor-tool-color-input",
41206
+ "data-testid": "editor-toolbar-paragraph-shading",
41207
+ get value() {
41208
+ return numValue(api, "setParagraphShading") || "#ffffff";
41209
+ },
41210
+ onChange: (value) => api.commands.execute("setParagraphShading", value)
41211
+ }), null);
40921
41212
  insert(_el$2, createComponent(Button$1, {
40922
41213
  icon: "frame",
40923
41214
  "data-testid": "editor-toolbar-paragraph-borders",
@@ -40926,32 +41217,11 @@ function MetricGroup(props) {
40926
41217
  return t("metric.applyBorders");
40927
41218
  }
40928
41219
  }), null);
40929
- createRenderEffect((_p$) => {
40930
- var _v$ = t("metric.spacingAfter"), _v$2 = t("metric.leftIndent"), _v$3 = t("metric.firstLineIndent"), _v$4 = t("metric.hangingIndent"), _v$5 = t("metric.paragraphBgColor");
40931
- _v$ !== _p$.e && setAttribute(_el$3, "title", _p$.e = _v$);
40932
- _v$2 !== _p$.t && setAttribute(_el$6, "title", _p$.t = _v$2);
40933
- _v$3 !== _p$.a && setAttribute(_el$9, "title", _p$.a = _v$3);
40934
- _v$4 !== _p$.o && setAttribute(_el$10, "title", _p$.o = _v$4);
40935
- _v$5 !== _p$.i && setAttribute(_el$13, "title", _p$.i = _v$5);
40936
- return _p$;
40937
- }, {
40938
- e: void 0,
40939
- t: void 0,
40940
- a: void 0,
40941
- o: void 0,
40942
- i: void 0
40943
- });
40944
- createRenderEffect(() => _el$5.value = numValue(api, "setSpacingAfter"));
40945
- createRenderEffect(() => _el$8.value = numValue(api, "setIndentLeft"));
40946
- createRenderEffect(() => _el$1.value = numValue(api, "setIndentFirstLine"));
40947
- createRenderEffect(() => _el$12.value = numValue(api, "setIndentHanging"));
40948
- createRenderEffect(() => _el$15.value = numValue(api, "setParagraphShading") || "#ffffff");
40949
41220
  return _el$2;
40950
41221
  })()];
40951
41222
  }
40952
41223
  });
40953
41224
  }
40954
- delegateEvents(["input"]);
40955
41225
  var _tmpl$$4 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`), _tmpl$2$2 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-badge data-testid=editor-table-selection-label>`);
40956
41226
  function TableGroup(props) {
40957
41227
  const t = useI18n();
@@ -42753,263 +43023,274 @@ const OASIS_MENU_ITEMS = {
42753
43023
  formatListsNumbered: "format_lists_numbered"
42754
43024
  };
42755
43025
  export {
42756
- resolveImageSrc as $,
42757
- getParagraphLength as A,
42758
- getParagraphText as B,
42759
- getActiveZone as C,
42760
- getActiveSectionIndex as D,
43026
+ findParagraphIndex as $,
43027
+ For as A,
43028
+ createContext as B,
43029
+ template as C,
43030
+ createUniqueId as D,
42761
43031
  EMPTY_PROJECTION_CONTEXT as E,
42762
- getParagraphs as F,
42763
- normalizeSelection as G,
42764
- positionToParagraphOffset as H,
42765
- paragraphOffsetToPosition as I,
42766
- clampPosition as J,
42767
- findParagraphIndex as K,
42768
- createCollapsedSelection as L,
42769
- MAX_FOOTNOTE_LAYOUT_ITERATIONS as M,
42770
- isSelectionCollapsed as N,
42771
- parseFontSizePtToPx as O,
42772
- formatFontSizePt as P,
42773
- createEditorParagraph as Q,
42774
- getBlockParagraphs as R,
42775
- STANDARD_FONT_SIZES_PT as S,
42776
- findParagraphTableLocation as T,
42777
- buildTableCellLayout as U,
42778
- PT_PER_PX as V,
42779
- createEditorTableCell as W,
42780
- createEditorTableRow as X,
42781
- createEditorTable as Y,
42782
- PX_PER_POINT as Z,
42783
- underlineStyleToCssDecorationStyle as _,
42784
- getPageContentWidth as a,
42785
- imageExtensionFromMime as a$,
42786
- listKindForTag as a0,
42787
- isParagraphTag as a1,
42788
- collectInlineRuns as a2,
42789
- parseParagraphStyle as a3,
42790
- getRunImage as a4,
42791
- InlineShell as a5,
42792
- BalloonShell as a6,
42793
- DocumentShell as a7,
42794
- createMemo as a8,
42795
- getCaretRectFromSnapshot as a9,
42796
- OasisEditorEditor as aA,
42797
- OasisBrandMark as aB,
42798
- setPreciseFontPreference as aC,
42799
- setWelcomeSeen as aD,
42800
- enablePreciseFontMode as aE,
42801
- TWIPS_PER_POINT as aF,
42802
- PX_PER_INCH as aG,
42803
- TWIPS_PER_INCH as aH,
42804
- normalizeHex6 as aI,
42805
- TABLE_CONDITIONAL_FLAG_ATTRIBUTES as aJ,
42806
- TABLE_BORDER_EDGE_KEYS as aK,
42807
- resolveEffectiveParagraphStyle as aL,
42808
- resolveEffectiveTextStyleForParagraph as aM,
42809
- EMU_PER_PT as aN,
42810
- OOXML_ROTATION_UNITS as aO,
42811
- OOXML_PERCENT_DENOMINATOR as aP,
42812
- parseHexColorToRgb255 as aQ,
42813
- EMU_PER_PX as aR,
42814
- getRunFootnoteReference as aS,
42815
- getRunEndnoteReference as aT,
42816
- iterateFootnoteReferenceRuns as aU,
42817
- iterateEndnoteReferenceRuns as aV,
42818
- imageContentTypeDefaults as aW,
42819
- getRunFieldChar as aX,
42820
- getRunFieldInstruction as aY,
42821
- createEditorRun as aZ,
42822
- JSZip as a_,
42823
- getParagraphRectFromSnapshot as aa,
42824
- createComponent as ab,
42825
- CaretOverlay as ac,
42826
- Show as ad,
42827
- createRenderEffect as ae,
42828
- style as af,
42829
- setAttribute as ag,
42830
- setStyleProperty as ah,
42831
- memo as ai,
42832
- template as aj,
42833
- addEventListener as ak,
42834
- insert as al,
42835
- delegateEvents as am,
42836
- useI18n as an,
42837
- createEffect as ao,
42838
- use as ap,
42839
- Dialog as aq,
42840
- className as ar,
42841
- For as as,
42842
- UNDERLINE_STYLE_OPTIONS as at,
42843
- Tabs as au,
42844
- createStore as av,
42845
- reconcile as aw,
42846
- onMount as ax,
42847
- onCleanup as ay,
42848
- PluginUiHost as az,
43032
+ FOOTNOTE_MARKER_GUTTER_PX as F,
43033
+ style as G,
43034
+ visitRun as H,
43035
+ assertNever as I,
43036
+ createSignal as J,
43037
+ createEditorStateFromDocument as K,
43038
+ createInitialEditorState as L,
43039
+ STANDARD_FONT_SIZES_PT as M,
43040
+ fontSizePxToPt as N,
43041
+ probeLocalFontFamilies as O,
43042
+ createEditorParagraphFromRuns as P,
43043
+ isInlineObjectRun as Q,
43044
+ createEditorStyledRun as R,
43045
+ Show as S,
43046
+ getParagraphLength as T,
43047
+ getActiveZone as U,
43048
+ getActiveSectionIndex as V,
43049
+ getParagraphs as W,
43050
+ normalizeSelection as X,
43051
+ positionToParagraphOffset as Y,
43052
+ paragraphOffsetToPosition as Z,
43053
+ clampPosition as _,
43054
+ getPageBodyBottom as a,
43055
+ resolveEffectiveTextStyleForParagraph as a$,
43056
+ createCollapsedSelection as a0,
43057
+ isSelectionCollapsed as a1,
43058
+ parseFontSizePtToPx as a2,
43059
+ formatFontSizePt as a3,
43060
+ createEditorParagraph as a4,
43061
+ findParagraphTableLocation as a5,
43062
+ buildTableCellLayout as a6,
43063
+ PT_PER_PX as a7,
43064
+ createEditorTableCell as a8,
43065
+ createEditorTableRow as a9,
43066
+ Checkbox as aA,
43067
+ StatusText as aB,
43068
+ FieldGroup as aC,
43069
+ Tabs as aD,
43070
+ FieldRow as aE,
43071
+ NumberField as aF,
43072
+ createStore as aG,
43073
+ reconcile as aH,
43074
+ TextAreaField as aI,
43075
+ SurfaceButton as aJ,
43076
+ ActionRow as aK,
43077
+ onMount as aL,
43078
+ onCleanup as aM,
43079
+ use as aN,
43080
+ PluginUiHost as aO,
43081
+ OasisEditorEditor as aP,
43082
+ OasisBrandMark as aQ,
43083
+ setPreciseFontPreference as aR,
43084
+ setWelcomeSeen as aS,
43085
+ enablePreciseFontMode as aT,
43086
+ TWIPS_PER_POINT as aU,
43087
+ PX_PER_INCH as aV,
43088
+ TWIPS_PER_INCH as aW,
43089
+ normalizeHex6 as aX,
43090
+ TABLE_CONDITIONAL_FLAG_ATTRIBUTES as aY,
43091
+ TABLE_BORDER_EDGE_KEYS as aZ,
43092
+ resolveEffectiveParagraphStyle as a_,
43093
+ createEditorTable as aa,
43094
+ PX_PER_POINT as ab,
43095
+ underlineStyleToCssDecorationStyle as ac,
43096
+ resolveImageSrc as ad,
43097
+ listKindForTag as ae,
43098
+ isParagraphTag as af,
43099
+ collectInlineRuns as ag,
43100
+ parseParagraphStyle as ah,
43101
+ getRunImage as ai,
43102
+ InlineShell as aj,
43103
+ BalloonShell as ak,
43104
+ DocumentShell as al,
43105
+ createMemo as am,
43106
+ getCaretRectFromSnapshot as an,
43107
+ getParagraphRectFromSnapshot as ao,
43108
+ CaretOverlay as ap,
43109
+ setStyleProperty as aq,
43110
+ Button as ar,
43111
+ useI18n as as,
43112
+ createEffect as at,
43113
+ TextField as au,
43114
+ Dialog as av,
43115
+ SelectField as aw,
43116
+ UNDERLINE_STYLE_OPTIONS as ax,
43117
+ delegateEvents as ay,
43118
+ Text$1 as az,
42849
43119
  getPageBodyTop as b,
42850
- VERTICAL_HIT_WEIGHT as b$,
42851
- pxToPt as b0,
42852
- resolveFloatingObjectRect as b1,
42853
- getTextBoxFloatingGeometry as b2,
42854
- getPresetPathSegments as b3,
42855
- buildListLabels as b4,
42856
- DEFAULT_FONT_SIZE_PX as b5,
42857
- resolveGradientAxis as b6,
42858
- isDoubleUnderlineStyle as b7,
42859
- isWavyUnderlineStyle as b8,
42860
- underlineStyleLineWidthPx as b9,
42861
- defaultFontDecoderRegistry as bA,
42862
- SfntFontProgram as bB,
42863
- collectPdfFontFamilies as bC,
42864
- outlineFrom as bD,
42865
- getPageHeaderZoneTop as bE,
42866
- getPageColumnRects as bF,
42867
- findFootnoteReference as bG,
42868
- FOOTNOTE_MARKER_GUTTER_PX as bH,
42869
- resolveImporterForFile as bI,
42870
- roundTo as bJ,
42871
- getDocumentSectionsCanonical as bK,
42872
- getDocumentParagraphsCanonical as bL,
42873
- getDocumentParagraphs as bM,
42874
- getDocumentPageSettings as bN,
42875
- getTableCellContentWidthForParagraph as bO,
42876
- layoutMetricsEpoch as bP,
42877
- bumpLayoutMetricsEpoch as bQ,
42878
- createCanvasLayoutSnapshotProvider as bR,
42879
- on as bS,
42880
- debounce as bT,
42881
- unwrap as bU,
42882
- perfTimer as bV,
42883
- getRunTextBox as bW,
42884
- createEditorDocument as bX,
42885
- resolveResizedDimensions as bY,
42886
- resolveTextBoxRenderHeight as bZ,
42887
- getToolbarStyleState as b_,
42888
- WAVY_UNDERLINE_WAVELENGTH_PX as ba,
42889
- WAVY_UNDERLINE_AMPLITUDE_PX as bb,
42890
- DOUBLE_UNDERLINE_OFFSET_PX as bc,
42891
- underlineStyleDashArray as bd,
42892
- EMPHASIS_GLYPH as be,
42893
- rgb255ToHex as bf,
42894
- getImageFloatingGeometry as bg,
42895
- textStyleToFontSizePt as bh,
42896
- TEXT_BASELINE_RATIO as bi,
42897
- resolveOpenTypeFeatureTags as bj,
42898
- resolveDecorationLineY as bk,
42899
- DOUBLE_STRIKE_OFFSET_PX as bl,
42900
- resolveListLabel as bm,
42901
- getListLabelInset as bn,
42902
- getAlignedListLabelInset as bo,
42903
- getParagraphBorderInsets as bp,
42904
- buildSegmentTable as bq,
42905
- buildCanvasTableLayout as br,
42906
- resolveCanvasTableWidth as bs,
42907
- resolveFloatingTableRect as bt,
42908
- normalizeFamily as bu,
42909
- ROBOTO_FONT_FILES as bv,
42910
- loadFontAsset as bw,
42911
- OFFICE_COMPAT_FONT_FAMILIES as bx,
42912
- BinaryReader as by,
42913
- buildSfnt as bz,
42914
- getPageBodyBottom as c,
42915
- SidePanel as c$,
42916
- getCachedCanvasImage as c0,
42917
- measureParagraphMinContentWidthPx as c1,
42918
- getEditableBlocksForZone as c2,
42919
- findParagraphLocation as c3,
42920
- createSectionBoundaryParagraph as c4,
42921
- normalizePageSettings as c5,
42922
- DEFAULT_EDITOR_PAGE_SETTINGS as c6,
42923
- markStart as c7,
42924
- markEnd as c8,
42925
- getParagraphEntries as c9,
42926
- Toolbar as cA,
42927
- OasisEditorLoading as cB,
42928
- I18nProvider as cC,
42929
- createTranslator as cD,
42930
- createEditorLogger as cE,
42931
- registerDomStatsSurface as cF,
42932
- Button as cG,
42933
- Checkbox as cH,
42934
- ColorPicker as cI,
42935
- CommandRegistry as cJ,
42936
- DEFAULT_PALETTE as cK,
42937
- DialogFooter as cL,
42938
- FloatingActionButton as cM,
42939
- GridPicker as cN,
42940
- IconButton as cO,
42941
- Menu as cP,
42942
- OASIS_BUILTIN_COMMANDS as cQ,
42943
- OASIS_MENU_ITEMS as cR,
42944
- OASIS_TOOLBAR_ITEMS as cS,
42945
- OasisEditorAppLazy as cT,
42946
- OasisEditorContainer as cU,
42947
- PluginCollection as cV,
42948
- Popover as cW,
42949
- RIBBON_TABS as cX,
42950
- Select as cY,
42951
- SelectField as cZ,
42952
- Separator as c_,
42953
- getParagraphById as ca,
42954
- createEditorFootnote as cb,
42955
- createFootnoteReferenceRun as cc,
42956
- renumberFootnotes as cd,
42957
- getHeadingLevel as ce,
42958
- preciseFontModeVersion as cf,
42959
- isPreciseFontModeEnabled as cg,
42960
- resolveNamedTextStyle as ch,
42961
- togglePreciseFontMode as ci,
42962
- nextFontSizePt as cj,
42963
- previousFontSizePt as ck,
42964
- fontSizePtToPx as cl,
42965
- createDefaultToolbarPreset as cm,
42966
- MenuRegistry as cn,
42967
- createToolbarRegistry as co,
42968
- Editor as cp,
42969
- resolveCommandRef as cq,
42970
- commandRefName as cr,
42971
- createOasisEditorClient as cs,
42972
- createEditorZoom as ct,
42973
- startLongTaskObserver as cu,
42974
- installGlobalReport as cv,
42975
- applyStoredPreciseFontPreference as cw,
42976
- getWelcomeSeen as cx,
42977
- isLocalFontAccessSupported as cy,
42978
- EDITOR_SCROLL_PADDING_PX as cz,
43120
+ getTableCellContentWidthForParagraph as b$,
43121
+ EMU_PER_PT as b0,
43122
+ OOXML_ROTATION_UNITS as b1,
43123
+ OOXML_PERCENT_DENOMINATOR as b2,
43124
+ parseHexColorToRgb255 as b3,
43125
+ EMU_PER_PX as b4,
43126
+ getRunEndnoteReference as b5,
43127
+ iterateFootnoteReferenceRuns as b6,
43128
+ iterateEndnoteReferenceRuns as b7,
43129
+ imageContentTypeDefaults as b8,
43130
+ getRunFieldChar as b9,
43131
+ resolveListLabel as bA,
43132
+ getListLabelInset as bB,
43133
+ getAlignedListLabelInset as bC,
43134
+ getParagraphBorderInsets as bD,
43135
+ buildSegmentTable as bE,
43136
+ buildCanvasTableLayout as bF,
43137
+ resolveCanvasTableWidth as bG,
43138
+ resolveFloatingTableRect as bH,
43139
+ normalizeFamily as bI,
43140
+ ROBOTO_FONT_FILES as bJ,
43141
+ loadFontAsset as bK,
43142
+ OFFICE_COMPAT_FONT_FAMILIES as bL,
43143
+ BinaryReader as bM,
43144
+ buildSfnt as bN,
43145
+ defaultFontDecoderRegistry as bO,
43146
+ SfntFontProgram as bP,
43147
+ collectPdfFontFamilies as bQ,
43148
+ outlineFrom as bR,
43149
+ getPageHeaderZoneTop as bS,
43150
+ getPageColumnRects as bT,
43151
+ findFootnoteReference as bU,
43152
+ resolveImporterForFile as bV,
43153
+ roundTo as bW,
43154
+ getDocumentSectionsCanonical as bX,
43155
+ getDocumentParagraphsCanonical as bY,
43156
+ getDocumentParagraphs as bZ,
43157
+ getDocumentPageSettings as b_,
43158
+ getRunFieldInstruction as ba,
43159
+ createEditorRun as bb,
43160
+ JSZip as bc,
43161
+ imageExtensionFromMime as bd,
43162
+ pxToPt as be,
43163
+ resolveFloatingObjectRect as bf,
43164
+ getTextBoxFloatingGeometry as bg,
43165
+ getPresetPathSegments as bh,
43166
+ buildListLabels as bi,
43167
+ DEFAULT_FONT_SIZE_PX as bj,
43168
+ resolveGradientAxis as bk,
43169
+ isDoubleUnderlineStyle as bl,
43170
+ isWavyUnderlineStyle as bm,
43171
+ underlineStyleLineWidthPx as bn,
43172
+ WAVY_UNDERLINE_WAVELENGTH_PX as bo,
43173
+ WAVY_UNDERLINE_AMPLITUDE_PX as bp,
43174
+ DOUBLE_UNDERLINE_OFFSET_PX as bq,
43175
+ underlineStyleDashArray as br,
43176
+ EMPHASIS_GLYPH as bs,
43177
+ rgb255ToHex as bt,
43178
+ getImageFloatingGeometry as bu,
43179
+ textStyleToFontSizePt as bv,
43180
+ TEXT_BASELINE_RATIO as bw,
43181
+ resolveOpenTypeFeatureTags as bx,
43182
+ resolveDecorationLineY as by,
43183
+ DOUBLE_STRIKE_OFFSET_PX as bz,
43184
+ getPageContentWidth as c,
43185
+ IconButton as c$,
43186
+ layoutMetricsEpoch as c0,
43187
+ bumpLayoutMetricsEpoch as c1,
43188
+ createCanvasLayoutSnapshotProvider as c2,
43189
+ on as c3,
43190
+ debounce as c4,
43191
+ unwrap as c5,
43192
+ perfTimer as c6,
43193
+ getRunTextBox as c7,
43194
+ createEditorDocument as c8,
43195
+ resolveResizedDimensions as c9,
43196
+ MenuRegistry as cA,
43197
+ createToolbarRegistry as cB,
43198
+ Editor as cC,
43199
+ resolveCommandRef as cD,
43200
+ commandRefName as cE,
43201
+ createOasisEditorClient as cF,
43202
+ createEditorZoom as cG,
43203
+ startLongTaskObserver as cH,
43204
+ installGlobalReport as cI,
43205
+ applyStoredPreciseFontPreference as cJ,
43206
+ getWelcomeSeen as cK,
43207
+ isLocalFontAccessSupported as cL,
43208
+ EDITOR_SCROLL_PADDING_PX as cM,
43209
+ Toolbar as cN,
43210
+ OasisEditorLoading as cO,
43211
+ I18nProvider as cP,
43212
+ createTranslator as cQ,
43213
+ createEditorLogger as cR,
43214
+ registerDomStatsSurface as cS,
43215
+ ColorPicker as cT,
43216
+ CommandRegistry as cU,
43217
+ DEFAULT_PALETTE as cV,
43218
+ DialogFooter as cW,
43219
+ FloatingActionButton as cX,
43220
+ FormField as cY,
43221
+ GridPicker as cZ,
43222
+ Heading as c_,
43223
+ resolveTextBoxRenderHeight as ca,
43224
+ getToolbarStyleState as cb,
43225
+ VERTICAL_HIT_WEIGHT as cc,
43226
+ getCachedCanvasImage as cd,
43227
+ measureParagraphMinContentWidthPx as ce,
43228
+ getEditableBlocksForZone as cf,
43229
+ findParagraphLocation as cg,
43230
+ createSectionBoundaryParagraph as ch,
43231
+ normalizePageSettings as ci,
43232
+ DEFAULT_EDITOR_PAGE_SETTINGS as cj,
43233
+ markStart as ck,
43234
+ markEnd as cl,
43235
+ getParagraphEntries as cm,
43236
+ getParagraphById as cn,
43237
+ createEditorFootnote as co,
43238
+ createFootnoteReferenceRun as cp,
43239
+ renumberFootnotes as cq,
43240
+ getHeadingLevel as cr,
43241
+ preciseFontModeVersion as cs,
43242
+ isPreciseFontModeEnabled as ct,
43243
+ resolveNamedTextStyle as cu,
43244
+ togglePreciseFontMode as cv,
43245
+ nextFontSizePt as cw,
43246
+ previousFontSizePt as cx,
43247
+ fontSizePtToPx as cy,
43248
+ createDefaultToolbarPreset as cz,
42979
43249
  domTextMeasurer as d,
42980
- SidePanelBody as d0,
42981
- SidePanelFooter as d1,
42982
- SidePanelHeader as d2,
42983
- SplitButton as d3,
42984
- StyleGallery as d4,
42985
- TextField as d5,
42986
- Button$1 as d6,
42987
- buildRibbonTabDefinitions as d7,
42988
- createEditorCommandBus as d8,
42989
- createOasisEditor as d9,
42990
- createOasisEditorContainer as da,
42991
- mount as db,
42992
- registerToolbarRenderer as dc,
43250
+ Menu as d0,
43251
+ OASIS_BUILTIN_COMMANDS as d1,
43252
+ OASIS_MENU_ITEMS as d2,
43253
+ OASIS_TOOLBAR_ITEMS as d3,
43254
+ OasisEditorAppLazy as d4,
43255
+ OasisEditorContainer as d5,
43256
+ PluginCollection as d6,
43257
+ Popover as d7,
43258
+ RIBBON_TABS as d8,
43259
+ Select as d9,
43260
+ Separator as da,
43261
+ SidePanel as db,
43262
+ SidePanelBody as dc,
43263
+ SidePanelFooter as dd,
43264
+ SidePanelHeader as de,
43265
+ SplitButton as df,
43266
+ StyleGallery as dg,
43267
+ Button$1 as dh,
43268
+ buildRibbonTabDefinitions as di,
43269
+ createEditorCommandBus as dj,
43270
+ createOasisEditor as dk,
43271
+ createOasisEditorContainer as dl,
43272
+ mount as dm,
43273
+ registerToolbarRenderer as dn,
42993
43274
  estimateTableBlockHeight as e,
42994
- getFootnoteDisplayMarker as f,
43275
+ getParagraphText as f,
42995
43276
  getProjectedParagraphBlockHeight as g,
42996
- createProjectionContext as h,
42997
- getDocumentSections as i,
42998
- buildFootnoteReservations as j,
42999
- applyFootnotesToPages as k,
43277
+ getBlockParagraphs as h,
43278
+ getRunFootnoteReference as i,
43279
+ getFootnoteDisplayMarker as j,
43280
+ createProjectionContext as k,
43000
43281
  listReferencedEndnotes as l,
43001
- getRunField as m,
43002
- projectBlocksLayout as n,
43003
- assertNever as o,
43282
+ getDocumentSections as m,
43283
+ getRunField as n,
43284
+ projectBlocksLayout as o,
43004
43285
  projectParagraphLayout as p,
43005
- createSignal as q,
43006
- reservationSignature as r,
43007
- createEditorStateFromDocument as s,
43008
- createInitialEditorState as t,
43009
- fontSizePxToPt as u,
43010
- visitRun as v,
43011
- probeLocalFontFamilies as w,
43012
- createEditorParagraphFromRuns as x,
43013
- isInlineObjectRun as y,
43014
- createEditorStyledRun as z
43286
+ spread as q,
43287
+ mergeProps as r,
43288
+ splitProps as s,
43289
+ memo as t,
43290
+ useContext as u,
43291
+ insert as v,
43292
+ createComponent as w,
43293
+ createRenderEffect as x,
43294
+ setAttribute as y,
43295
+ className as z
43015
43296
  };