@jackuait/blok 0.6.0-beta.0 → 0.6.0-beta.10
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.
- package/README.md +16 -169
- package/bin/blok.mjs +10 -0
- package/dist/blok.mjs +2 -2
- package/dist/chunks/{blok-Bu9S3SsR.mjs → blok-Buf0btS7.mjs} +2267 -2024
- package/dist/chunks/{i18next-loader-CKuXJ0Av.mjs → i18next-loader-CVf_ZfwA.mjs} +1 -1
- package/dist/chunks/{index-jtZaryNw.mjs → index-C6jsfLLp.mjs} +1 -1
- package/dist/chunks/{inline-tool-convert-CFjyrH30.mjs → inline-tool-convert-BKKEoOqB.mjs} +710 -570
- package/dist/chunks/{messages-C5b7hr_E.mjs → messages-1fC8IMyX.mjs} +16 -2
- package/dist/chunks/{messages-CQj2JU2j.mjs → messages-7QoX8DkW.mjs} +23 -9
- package/dist/{messages-LvFKBBPa.mjs → chunks/messages-7W4d0DwD.mjs} +15 -1
- package/dist/{messages-Bn253WWC.mjs → chunks/messages-9SihnaXQ.mjs} +14 -0
- package/dist/{messages-Bf6Y3_GI.mjs → chunks/messages-B1Aww8q7.mjs} +16 -2
- package/dist/{messages-pA5TvcAj.mjs → chunks/messages-BB5z9Uba.mjs} +14 -0
- package/dist/chunks/{messages-wdqp4610.mjs → messages-BC86qLvI.mjs} +17 -3
- package/dist/chunks/{messages-o24dK6CU.mjs → messages-BELRf6DU.mjs} +16 -2
- package/dist/chunks/{messages-CUZ1x1QD.mjs → messages-BFG6Wlgy.mjs} +16 -2
- package/dist/{messages-B5puUm7R.mjs → chunks/messages-BL0tXcDf.mjs} +15 -1
- package/dist/chunks/{messages-zS1AXZ0y.mjs → messages-BMXCuEKO.mjs} +19 -5
- package/dist/{messages-CyDU5lz9.mjs → chunks/messages-BMv4xwIr.mjs} +16 -2
- package/dist/chunks/{messages-BeUhMpsr.mjs → messages-BSbjsyHY.mjs} +25 -11
- package/dist/chunks/{messages-JGsXAReJ.mjs → messages-BU2nlrLK.mjs} +16 -2
- package/dist/chunks/{messages-srxrv8Yh.mjs → messages-BWF-zUpY.mjs} +17 -3
- package/dist/{messages-CXHd9SUK.mjs → chunks/messages-BYyy6Wqf.mjs} +14 -0
- package/dist/chunks/{messages-DOlC_Tty.mjs → messages-BdeLo0N9.mjs} +24 -10
- package/dist/chunks/{messages-B5jGUnOy.mjs → messages-Bmu_S7GM.mjs} +14 -0
- package/dist/chunks/{messages-BmKCChWZ.mjs → messages-BoJc_p1r.mjs} +14 -0
- package/dist/chunks/{messages-CvaqJFN-.mjs → messages-BogRq8lt.mjs} +15 -1
- package/dist/chunks/{messages-NP1myMGI.mjs → messages-BrPFGbM-.mjs} +14 -0
- package/dist/chunks/{messages-D00OjS2n.mjs → messages-C2htQ_3F.mjs} +24 -10
- package/dist/chunks/{messages-BiExzWJv.mjs → messages-C99mq906.mjs} +15 -1
- package/dist/chunks/{messages-CkFT2gle.mjs → messages-C9eaarcK.mjs} +20 -6
- package/dist/chunks/{messages-BrJHUxQL.mjs → messages-CJdUsQ-c.mjs} +15 -1
- package/dist/chunks/messages-CKI54h6O.mjs +62 -0
- package/dist/{messages-CrsJ1TEJ.mjs → chunks/messages-CLhcMlTc.mjs} +15 -1
- package/dist/{messages-CnvW8Slp.mjs → chunks/messages-CMkNSDTo.mjs} +17 -3
- package/dist/{messages-BlpqL8vG.mjs → chunks/messages-CQwpzUFp.mjs} +19 -5
- package/dist/chunks/{messages-Cu08aLS3.mjs → messages-CVw84KdI.mjs} +21 -7
- package/dist/chunks/{messages-B9Oba7sq.mjs → messages-CY8_RyFE.mjs} +15 -1
- package/dist/chunks/{messages-B5hdXZwA.mjs → messages-CZygwLwM.mjs} +15 -1
- package/dist/chunks/{messages-CVeWVKsV.mjs → messages-CnwibSvh.mjs} +14 -0
- package/dist/chunks/{messages-DbVquYKN.mjs → messages-CqWJcCbY.mjs} +14 -0
- package/dist/{messages-Dg92dXZ5.mjs → chunks/messages-CvGLfqmV.mjs} +14 -0
- package/dist/{messages-AHESHJm_.mjs → chunks/messages-CzTufCHu.mjs} +14 -0
- package/dist/chunks/{messages-Cj-t1bdy.mjs → messages-CznZadDf.mjs} +15 -1
- package/dist/chunks/{messages-DMQIHGRj.mjs → messages-D-ZtY5v0.mjs} +14 -0
- package/dist/chunks/{messages-rRSHQDCX.mjs → messages-D1Hv8XGo.mjs} +14 -0
- package/dist/chunks/{messages-0tDXLuyH.mjs → messages-D5C3J9qr.mjs} +15 -1
- package/dist/chunks/{messages-RvMHb2Ht.mjs → messages-D5iv1Kox.mjs} +16 -2
- package/dist/{messages-zSzDzXej.mjs → chunks/messages-DBRw-7Zc.mjs} +16 -2
- package/dist/chunks/{messages-CeCjVKMW.mjs → messages-DBn76jVV.mjs} +16 -2
- package/dist/chunks/{messages-C7I_AVH2.mjs → messages-DJDG55Vq.mjs} +16 -2
- package/dist/{messages-DDLgIPDF.mjs → chunks/messages-DLfR5bMd.mjs} +16 -2
- package/dist/{messages-CbhuIWRJ.mjs → chunks/messages-DT4dP5uK.mjs} +15 -1
- package/dist/chunks/{messages-B66ZSDCJ.mjs → messages-DhLKYm2j.mjs} +15 -1
- package/dist/{messages-BPqWKx5Z.mjs → chunks/messages-Diu6jAaR.mjs} +17 -3
- package/dist/{messages-BA0rcTCY.mjs → chunks/messages-DnIhyAJk.mjs} +18 -4
- package/dist/chunks/{messages-DV6shA9b.mjs → messages-DnXLrlHh.mjs} +14 -0
- package/dist/chunks/{messages-DcKOuncK.mjs → messages-DprmQg6V.mjs} +16 -2
- package/dist/{messages-CJoBtXU6.mjs → chunks/messages-DqM1LFg5.mjs} +14 -0
- package/dist/chunks/{messages-Cyi2AMmz.mjs → messages-DvFLX36Q.mjs} +25 -11
- package/dist/chunks/{messages-DnbbyJT3.mjs → messages-Dz9L52ol.mjs} +16 -2
- package/dist/chunks/{messages-GC2PhgV3.mjs → messages-Dzwxv9v1.mjs} +23 -9
- package/dist/chunks/{messages-Q4kc_ZtL.mjs → messages-JELdtT6E.mjs} +15 -1
- package/dist/{messages-DY94ykcE.mjs → chunks/messages-LPVfA-8K.mjs} +14 -0
- package/dist/{messages-Cr-RJ7YB.mjs → chunks/messages-O5tQus_0.mjs} +14 -0
- package/dist/chunks/{messages-CbMyJSzS.mjs → messages-Q7AO_FLv.mjs} +17 -3
- package/dist/chunks/{messages-2_xedlYw.mjs → messages-R3hUSvr3.mjs} +15 -1
- package/dist/{messages-CUy1vn-b.mjs → chunks/messages-Xq8UmkVs.mjs} +14 -0
- package/dist/chunks/{messages-BBJgd5jG.mjs → messages-Z9nEU2xK.mjs} +16 -2
- package/dist/chunks/{messages-Cm9aLHeX.mjs → messages-_ErNTNhk.mjs} +15 -1
- package/dist/chunks/{messages-JZUhXTuV.mjs → messages-_ncGrKHh.mjs} +16 -2
- package/dist/chunks/{messages-ftMcCEuO.mjs → messages-kep5wtm4.mjs} +15 -1
- package/dist/chunks/{messages-DteYq0rv.mjs → messages-uKX8WBaD.mjs} +16 -2
- package/dist/chunks/{messages-Bdv-IkfG.mjs → messages-w7v1GNaE.mjs} +15 -1
- package/dist/cli.mjs +50 -0
- package/dist/full.mjs +15 -15
- package/dist/locales.mjs +102 -88
- package/dist/{messages-C5b7hr_E.mjs → messages-1fC8IMyX.mjs} +16 -2
- package/dist/{messages-CQj2JU2j.mjs → messages-7QoX8DkW.mjs} +23 -9
- package/dist/{chunks/messages-LvFKBBPa.mjs → messages-7W4d0DwD.mjs} +15 -1
- package/dist/{chunks/messages-Bn253WWC.mjs → messages-9SihnaXQ.mjs} +14 -0
- package/dist/{chunks/messages-Bf6Y3_GI.mjs → messages-B1Aww8q7.mjs} +16 -2
- package/dist/{chunks/messages-pA5TvcAj.mjs → messages-BB5z9Uba.mjs} +14 -0
- package/dist/{messages-wdqp4610.mjs → messages-BC86qLvI.mjs} +17 -3
- package/dist/{messages-o24dK6CU.mjs → messages-BELRf6DU.mjs} +16 -2
- package/dist/{messages-CUZ1x1QD.mjs → messages-BFG6Wlgy.mjs} +16 -2
- package/dist/{chunks/messages-B5puUm7R.mjs → messages-BL0tXcDf.mjs} +15 -1
- package/dist/{messages-zS1AXZ0y.mjs → messages-BMXCuEKO.mjs} +19 -5
- package/dist/{chunks/messages-CyDU5lz9.mjs → messages-BMv4xwIr.mjs} +16 -2
- package/dist/{messages-BeUhMpsr.mjs → messages-BSbjsyHY.mjs} +25 -11
- package/dist/{messages-JGsXAReJ.mjs → messages-BU2nlrLK.mjs} +16 -2
- package/dist/{messages-srxrv8Yh.mjs → messages-BWF-zUpY.mjs} +17 -3
- package/dist/{chunks/messages-CXHd9SUK.mjs → messages-BYyy6Wqf.mjs} +14 -0
- package/dist/{messages-DOlC_Tty.mjs → messages-BdeLo0N9.mjs} +24 -10
- package/dist/{messages-B5jGUnOy.mjs → messages-Bmu_S7GM.mjs} +14 -0
- package/dist/{messages-BmKCChWZ.mjs → messages-BoJc_p1r.mjs} +14 -0
- package/dist/{messages-CvaqJFN-.mjs → messages-BogRq8lt.mjs} +15 -1
- package/dist/{messages-NP1myMGI.mjs → messages-BrPFGbM-.mjs} +14 -0
- package/dist/{messages-D00OjS2n.mjs → messages-C2htQ_3F.mjs} +24 -10
- package/dist/{messages-BiExzWJv.mjs → messages-C99mq906.mjs} +15 -1
- package/dist/{messages-CkFT2gle.mjs → messages-C9eaarcK.mjs} +20 -6
- package/dist/{messages-BrJHUxQL.mjs → messages-CJdUsQ-c.mjs} +15 -1
- package/dist/messages-CKI54h6O.mjs +62 -0
- package/dist/{chunks/messages-CrsJ1TEJ.mjs → messages-CLhcMlTc.mjs} +15 -1
- package/dist/{chunks/messages-CnvW8Slp.mjs → messages-CMkNSDTo.mjs} +17 -3
- package/dist/{chunks/messages-BlpqL8vG.mjs → messages-CQwpzUFp.mjs} +19 -5
- package/dist/{messages-Cu08aLS3.mjs → messages-CVw84KdI.mjs} +21 -7
- package/dist/{messages-B9Oba7sq.mjs → messages-CY8_RyFE.mjs} +15 -1
- package/dist/{messages-B5hdXZwA.mjs → messages-CZygwLwM.mjs} +15 -1
- package/dist/{messages-CVeWVKsV.mjs → messages-CnwibSvh.mjs} +14 -0
- package/dist/{messages-DbVquYKN.mjs → messages-CqWJcCbY.mjs} +14 -0
- package/dist/{chunks/messages-Dg92dXZ5.mjs → messages-CvGLfqmV.mjs} +14 -0
- package/dist/{chunks/messages-AHESHJm_.mjs → messages-CzTufCHu.mjs} +14 -0
- package/dist/{messages-Cj-t1bdy.mjs → messages-CznZadDf.mjs} +15 -1
- package/dist/{messages-DMQIHGRj.mjs → messages-D-ZtY5v0.mjs} +14 -0
- package/dist/{messages-rRSHQDCX.mjs → messages-D1Hv8XGo.mjs} +14 -0
- package/dist/{messages-0tDXLuyH.mjs → messages-D5C3J9qr.mjs} +15 -1
- package/dist/{messages-RvMHb2Ht.mjs → messages-D5iv1Kox.mjs} +16 -2
- package/dist/{chunks/messages-zSzDzXej.mjs → messages-DBRw-7Zc.mjs} +16 -2
- package/dist/{messages-CeCjVKMW.mjs → messages-DBn76jVV.mjs} +16 -2
- package/dist/{messages-C7I_AVH2.mjs → messages-DJDG55Vq.mjs} +16 -2
- package/dist/{chunks/messages-DDLgIPDF.mjs → messages-DLfR5bMd.mjs} +16 -2
- package/dist/{chunks/messages-CbhuIWRJ.mjs → messages-DT4dP5uK.mjs} +15 -1
- package/dist/{messages-B66ZSDCJ.mjs → messages-DhLKYm2j.mjs} +15 -1
- package/dist/{chunks/messages-BPqWKx5Z.mjs → messages-Diu6jAaR.mjs} +17 -3
- package/dist/{chunks/messages-BA0rcTCY.mjs → messages-DnIhyAJk.mjs} +18 -4
- package/dist/{messages-DV6shA9b.mjs → messages-DnXLrlHh.mjs} +14 -0
- package/dist/{messages-DcKOuncK.mjs → messages-DprmQg6V.mjs} +16 -2
- package/dist/{chunks/messages-CJoBtXU6.mjs → messages-DqM1LFg5.mjs} +14 -0
- package/dist/{messages-Cyi2AMmz.mjs → messages-DvFLX36Q.mjs} +25 -11
- package/dist/{messages-DnbbyJT3.mjs → messages-Dz9L52ol.mjs} +16 -2
- package/dist/{messages-GC2PhgV3.mjs → messages-Dzwxv9v1.mjs} +23 -9
- package/dist/{messages-Q4kc_ZtL.mjs → messages-JELdtT6E.mjs} +15 -1
- package/dist/{chunks/messages-DY94ykcE.mjs → messages-LPVfA-8K.mjs} +14 -0
- package/dist/{chunks/messages-Cr-RJ7YB.mjs → messages-O5tQus_0.mjs} +14 -0
- package/dist/{messages-CbMyJSzS.mjs → messages-Q7AO_FLv.mjs} +17 -3
- package/dist/{messages-2_xedlYw.mjs → messages-R3hUSvr3.mjs} +15 -1
- package/dist/{chunks/messages-CUy1vn-b.mjs → messages-Xq8UmkVs.mjs} +14 -0
- package/dist/{messages-BBJgd5jG.mjs → messages-Z9nEU2xK.mjs} +16 -2
- package/dist/{messages-Cm9aLHeX.mjs → messages-_ErNTNhk.mjs} +15 -1
- package/dist/{messages-JZUhXTuV.mjs → messages-_ncGrKHh.mjs} +16 -2
- package/dist/{messages-ftMcCEuO.mjs → messages-kep5wtm4.mjs} +15 -1
- package/dist/{messages-DteYq0rv.mjs → messages-uKX8WBaD.mjs} +16 -2
- package/dist/{messages-Bdv-IkfG.mjs → messages-w7v1GNaE.mjs} +15 -1
- package/dist/tools.mjs +2005 -1267
- package/dist/vendor.LICENSE.txt +1 -1
- package/package.json +15 -14
- package/src/cli/commands/migration.ts +16 -0
- package/src/cli/commands/migrationContent.ts +6 -0
- package/src/cli/index.ts +47 -0
- package/src/cli/utils/output.ts +10 -0
- package/src/components/block-tunes/block-tune-delete.ts +3 -2
- package/src/components/blocks.ts +23 -6
- package/src/components/constants/data-attributes.ts +2 -0
- package/src/components/i18n/locales/am/messages.json +15 -1
- package/src/components/i18n/locales/ar/messages.json +14 -0
- package/src/components/i18n/locales/az/messages.json +14 -0
- package/src/components/i18n/locales/bg/messages.json +14 -0
- package/src/components/i18n/locales/bn/messages.json +25 -11
- package/src/components/i18n/locales/bs/messages.json +15 -1
- package/src/components/i18n/locales/cs/messages.json +14 -0
- package/src/components/i18n/locales/da/messages.json +14 -0
- package/src/components/i18n/locales/de/messages.json +14 -0
- package/src/components/i18n/locales/dv/messages.json +15 -1
- package/src/components/i18n/locales/el/messages.json +15 -1
- package/src/components/i18n/locales/en/messages.json +14 -0
- package/src/components/i18n/locales/es/messages.json +14 -0
- package/src/components/i18n/locales/et/messages.json +14 -0
- package/src/components/i18n/locales/fa/messages.json +15 -1
- package/src/components/i18n/locales/fi/messages.json +15 -1
- package/src/components/i18n/locales/fil/messages.json +20 -6
- package/src/components/i18n/locales/fr/messages.json +15 -1
- package/src/components/i18n/locales/gu/messages.json +15 -1
- package/src/components/i18n/locales/he/messages.json +14 -0
- package/src/components/i18n/locales/hi/messages.json +23 -9
- package/src/components/i18n/locales/hr/messages.json +14 -0
- package/src/components/i18n/locales/hu/messages.json +14 -0
- package/src/components/i18n/locales/hy/messages.json +16 -2
- package/src/components/i18n/locales/id/messages.json +19 -5
- package/src/components/i18n/locales/it/messages.json +14 -0
- package/src/components/i18n/locales/ja/messages.json +14 -0
- package/src/components/i18n/locales/ka/messages.json +15 -1
- package/src/components/i18n/locales/km/messages.json +16 -2
- package/src/components/i18n/locales/kn/messages.json +16 -2
- package/src/components/i18n/locales/ko/messages.json +14 -0
- package/src/components/i18n/locales/ku/messages.json +16 -2
- package/src/components/i18n/locales/lo/messages.json +15 -1
- package/src/components/i18n/locales/lt/messages.json +15 -1
- package/src/components/i18n/locales/lv/messages.json +15 -1
- package/src/components/i18n/locales/mk/messages.json +16 -2
- package/src/components/i18n/locales/ml/messages.json +16 -2
- package/src/components/i18n/locales/mn/messages.json +16 -2
- package/src/components/i18n/locales/mr/messages.json +24 -10
- package/src/components/i18n/locales/ms/messages.json +17 -3
- package/src/components/i18n/locales/my/messages.json +16 -2
- package/src/components/i18n/locales/ne/messages.json +24 -10
- package/src/components/i18n/locales/nl/messages.json +15 -1
- package/src/components/i18n/locales/no/messages.json +16 -2
- package/src/components/i18n/locales/pa/messages.json +15 -1
- package/src/components/i18n/locales/pl/messages.json +14 -0
- package/src/components/i18n/locales/ps/messages.json +17 -3
- package/src/components/i18n/locales/pt/messages.json +14 -0
- package/src/components/i18n/locales/ro/messages.json +15 -1
- package/src/components/i18n/locales/ru/messages.json +14 -0
- package/src/components/i18n/locales/sd/messages.json +16 -2
- package/src/components/i18n/locales/si/messages.json +23 -9
- package/src/components/i18n/locales/sk/messages.json +15 -1
- package/src/components/i18n/locales/sl/messages.json +16 -2
- package/src/components/i18n/locales/sq/messages.json +16 -2
- package/src/components/i18n/locales/sr/messages.json +16 -2
- package/src/components/i18n/locales/sv/messages.json +16 -2
- package/src/components/i18n/locales/sw/messages.json +16 -2
- package/src/components/i18n/locales/ta/messages.json +21 -7
- package/src/components/i18n/locales/te/messages.json +40 -26
- package/src/components/i18n/locales/th/messages.json +19 -5
- package/src/components/i18n/locales/tr/messages.json +15 -1
- package/src/components/i18n/locales/ug/messages.json +16 -2
- package/src/components/i18n/locales/uk/messages.json +15 -1
- package/src/components/i18n/locales/ur/messages.json +15 -1
- package/src/components/i18n/locales/vi/messages.json +25 -11
- package/src/components/i18n/locales/yi/messages.json +16 -2
- package/src/components/i18n/locales/zh/messages.json +15 -1
- package/src/components/icons/index.ts +104 -83
- package/src/components/modules/api/blocks.ts +35 -2
- package/src/components/modules/api/history.ts +64 -0
- package/src/components/modules/api/index.ts +2 -0
- package/src/components/modules/api/readonly.ts +11 -1
- package/src/components/modules/blockEvents/composers/markdownShortcuts.ts +12 -1
- package/src/components/modules/blockManager/blockManager.ts +7 -0
- package/src/components/modules/blockManager/operations.ts +3 -2
- package/src/components/modules/blockManager/types.ts +3 -1
- package/src/components/modules/blockManager/yjs-sync.ts +12 -2
- package/src/components/modules/index.ts +3 -0
- package/src/components/modules/normalizeInlineImages.ts +263 -0
- package/src/components/modules/readonly.ts +11 -0
- package/src/components/modules/rectangleSelection.ts +19 -3
- package/src/components/modules/saver.ts +7 -3
- package/src/components/modules/toolbar/blockSettings.ts +3 -3
- package/src/components/modules/toolbar/index.ts +72 -14
- package/src/components/modules/toolbar/plus-button.ts +24 -3
- package/src/components/modules/toolbar/settings-toggler.ts +3 -5
- package/src/components/modules/ui.ts +46 -68
- package/src/components/modules/uiControllers/controllers/blockHover.ts +49 -61
- package/src/components/modules/uiControllers/controllers/keyboard.ts +17 -11
- package/src/components/modules/uiControllers/handlers/click.ts +0 -12
- package/src/components/modules/yjs/index.ts +23 -0
- package/src/components/ui/toolbox.ts +41 -6
- package/src/components/utils/placeholder.ts +16 -0
- package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.const.ts +2 -1
- package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.ts +6 -1
- package/src/components/utils/popover/index.ts +1 -0
- package/src/components/utils/popover/popover-abstract.ts +11 -1
- package/src/components/utils/popover/popover-desktop.ts +27 -8
- package/src/components/utils/popover/popover-registry.ts +188 -0
- package/src/components/utils/sanitizer.ts +23 -2
- package/src/components/utils/tooltip.ts +2 -24
- package/src/styles/main.css +22 -0
- package/src/tools/paragraph/index.ts +12 -4
- package/src/tools/table/data-normalizer.ts +1 -0
- package/src/tools/table/index.ts +283 -346
- package/src/tools/table/table-add-controls.ts +353 -47
- package/src/tools/table/table-cell-blocks.ts +95 -7
- package/src/tools/table/table-cell-selection.ts +648 -0
- package/src/tools/table/table-core.ts +21 -32
- package/src/tools/table/table-grip-visuals.ts +96 -0
- package/src/tools/table/table-heading-toggle.ts +127 -0
- package/src/tools/table/table-operations.ts +475 -0
- package/src/tools/table/table-resize.ts +27 -6
- package/src/tools/table/table-restrictions.ts +64 -0
- package/src/tools/table/table-row-col-action-handler.ts +190 -0
- package/src/tools/table/table-row-col-controls.ts +265 -211
- package/src/tools/table/table-row-col-drag.ts +4 -4
- package/src/tools/table/table-row-col-popover.ts +225 -0
- package/src/tools/table/types.ts +4 -0
- package/src/types-internal/blok-modules.d.ts +2 -0
- package/types/api/blocks.d.ts +8 -0
- package/types/api/history.d.ts +33 -0
- package/types/api/index.d.ts +1 -0
- package/types/api/readonly.d.ts +12 -2
- package/types/index.d.ts +10 -0
- package/types/tools/table.d.ts +67 -0
- package/types/tools-entry.d.ts +4 -0
- package/types/utils/popover/popover-item.d.ts +6 -0
- package/types/utils/popover/popover.d.ts +7 -0
- package/dist/chunks/messages-CySyfkMU.mjs +0 -48
- package/dist/messages-CySyfkMU.mjs +0 -48
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { I18n } from '../../../types/api';
|
|
2
|
+
import {
|
|
3
|
+
IconInsertAbove,
|
|
4
|
+
IconInsertBelow,
|
|
5
|
+
IconInsertLeft,
|
|
6
|
+
IconInsertRight,
|
|
7
|
+
IconTrash,
|
|
8
|
+
IconHeaderRow,
|
|
9
|
+
IconHeaderColumn,
|
|
10
|
+
} from '../../components/icons';
|
|
11
|
+
import { PopoverDesktop, PopoverItemType } from '../../components/utils/popover';
|
|
12
|
+
|
|
13
|
+
import { GRIP_HOVER_SIZE } from './table-grip-visuals';
|
|
14
|
+
import { createHeadingToggle } from './table-heading-toggle';
|
|
15
|
+
import type { RowColAction } from './table-row-col-controls';
|
|
16
|
+
|
|
17
|
+
import { PopoverEvent } from '@/types/utils/popover/popover-event';
|
|
18
|
+
import type { PopoverItemParams } from '@/types/utils/popover/popover-item';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* State for the currently active grip popover.
|
|
22
|
+
*/
|
|
23
|
+
export interface PopoverState {
|
|
24
|
+
popover: PopoverDesktop | null;
|
|
25
|
+
grip: HTMLElement | null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Options for building popover menu items.
|
|
30
|
+
*/
|
|
31
|
+
export interface PopoverMenuOptions {
|
|
32
|
+
getColumnCount: () => number;
|
|
33
|
+
getRowCount: () => number;
|
|
34
|
+
isHeadingRow: () => boolean;
|
|
35
|
+
isHeadingColumn: () => boolean;
|
|
36
|
+
onAction: (action: RowColAction) => void;
|
|
37
|
+
i18n: I18n;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Callbacks the popover needs from the controls class.
|
|
42
|
+
*/
|
|
43
|
+
export interface OpenPopoverCallbacks {
|
|
44
|
+
clearHideTimeout: () => void;
|
|
45
|
+
hideAllGripsExcept: (grip: HTMLElement) => void;
|
|
46
|
+
applyActiveClasses: (grip: HTMLElement) => void;
|
|
47
|
+
applyVisibleClasses: (grip: HTMLElement) => void;
|
|
48
|
+
scheduleHideAll: () => void;
|
|
49
|
+
destroyPopover: () => void;
|
|
50
|
+
onGripPopoverClose?: () => void;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Build the popover menu items for a column grip.
|
|
55
|
+
*/
|
|
56
|
+
export const buildColumnMenuItems = (colIndex: number, options: PopoverMenuOptions): PopoverItemParams[] => {
|
|
57
|
+
const headingItems: PopoverItemParams[] = colIndex === 0
|
|
58
|
+
? [
|
|
59
|
+
{
|
|
60
|
+
type: PopoverItemType.Html,
|
|
61
|
+
element: createHeadingToggle({
|
|
62
|
+
icon: IconHeaderColumn,
|
|
63
|
+
label: options.i18n.t('tools.table.headerColumn'),
|
|
64
|
+
isActive: options.isHeadingColumn(),
|
|
65
|
+
onToggle: () => {
|
|
66
|
+
options.onAction({ type: 'toggle-heading-column' });
|
|
67
|
+
},
|
|
68
|
+
}),
|
|
69
|
+
},
|
|
70
|
+
{ type: PopoverItemType.Separator },
|
|
71
|
+
]
|
|
72
|
+
: [];
|
|
73
|
+
|
|
74
|
+
const baseItems: PopoverItemParams[] = [
|
|
75
|
+
{
|
|
76
|
+
icon: IconInsertLeft,
|
|
77
|
+
title: options.i18n.t('tools.table.insertColumnLeft'),
|
|
78
|
+
closeOnActivate: true,
|
|
79
|
+
onActivate: (): void => {
|
|
80
|
+
options.onAction({ type: 'insert-col-left', index: colIndex });
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
icon: IconInsertRight,
|
|
85
|
+
title: options.i18n.t('tools.table.insertColumnRight'),
|
|
86
|
+
closeOnActivate: true,
|
|
87
|
+
onActivate: (): void => {
|
|
88
|
+
options.onAction({ type: 'insert-col-right', index: colIndex });
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
|
|
93
|
+
const canDelete = options.getColumnCount() > 1;
|
|
94
|
+
const deleteItems: PopoverItemParams[] = [
|
|
95
|
+
{ type: PopoverItemType.Separator },
|
|
96
|
+
{
|
|
97
|
+
icon: IconTrash,
|
|
98
|
+
title: options.i18n.t('tools.table.deleteColumn'),
|
|
99
|
+
isDestructive: true,
|
|
100
|
+
isDisabled: !canDelete,
|
|
101
|
+
closeOnActivate: true,
|
|
102
|
+
onActivate: (): void => {
|
|
103
|
+
options.onAction({ type: 'delete-col', index: colIndex });
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
return [...headingItems, ...baseItems, ...deleteItems];
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Build the popover menu items for a row grip.
|
|
113
|
+
*/
|
|
114
|
+
export const buildRowMenuItems = (rowIndex: number, options: PopoverMenuOptions): PopoverItemParams[] => {
|
|
115
|
+
const headingItems: PopoverItemParams[] = rowIndex === 0
|
|
116
|
+
? [
|
|
117
|
+
{
|
|
118
|
+
type: PopoverItemType.Html,
|
|
119
|
+
element: createHeadingToggle({
|
|
120
|
+
icon: IconHeaderRow,
|
|
121
|
+
label: options.i18n.t('tools.table.headerRow'),
|
|
122
|
+
isActive: options.isHeadingRow(),
|
|
123
|
+
onToggle: () => {
|
|
124
|
+
options.onAction({ type: 'toggle-heading' });
|
|
125
|
+
},
|
|
126
|
+
}),
|
|
127
|
+
},
|
|
128
|
+
{ type: PopoverItemType.Separator },
|
|
129
|
+
]
|
|
130
|
+
: [];
|
|
131
|
+
|
|
132
|
+
const baseItems: PopoverItemParams[] = [
|
|
133
|
+
{
|
|
134
|
+
icon: IconInsertAbove,
|
|
135
|
+
title: options.i18n.t('tools.table.insertRowAbove'),
|
|
136
|
+
closeOnActivate: true,
|
|
137
|
+
onActivate: (): void => {
|
|
138
|
+
options.onAction({ type: 'insert-row-above', index: rowIndex });
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
icon: IconInsertBelow,
|
|
143
|
+
title: options.i18n.t('tools.table.insertRowBelow'),
|
|
144
|
+
closeOnActivate: true,
|
|
145
|
+
onActivate: (): void => {
|
|
146
|
+
options.onAction({ type: 'insert-row-below', index: rowIndex });
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
const canDelete = options.getRowCount() > 1;
|
|
152
|
+
const deleteItems: PopoverItemParams[] = [
|
|
153
|
+
{ type: PopoverItemType.Separator },
|
|
154
|
+
{
|
|
155
|
+
icon: IconTrash,
|
|
156
|
+
title: options.i18n.t('tools.table.deleteRow'),
|
|
157
|
+
isDestructive: true,
|
|
158
|
+
isDisabled: !canDelete,
|
|
159
|
+
closeOnActivate: true,
|
|
160
|
+
onActivate: (): void => {
|
|
161
|
+
options.onAction({ type: 'delete-row', index: rowIndex });
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
return [...headingItems, ...baseItems, ...deleteItems];
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Create a popover anchored to the given grip and prepare it for display.
|
|
171
|
+
* Returns the new state. The caller must call `popover.show()` after
|
|
172
|
+
* storing the state so that any callbacks fired during show see the
|
|
173
|
+
* updated popover reference.
|
|
174
|
+
*/
|
|
175
|
+
export const createGripPopover = (
|
|
176
|
+
type: 'row' | 'col',
|
|
177
|
+
index: number,
|
|
178
|
+
grips: { col: HTMLElement[]; row: HTMLElement[] },
|
|
179
|
+
menuOptions: PopoverMenuOptions,
|
|
180
|
+
callbacks: OpenPopoverCallbacks
|
|
181
|
+
): PopoverState => {
|
|
182
|
+
callbacks.destroyPopover();
|
|
183
|
+
callbacks.clearHideTimeout();
|
|
184
|
+
|
|
185
|
+
const grip = type === 'col'
|
|
186
|
+
? grips.col[index]
|
|
187
|
+
: grips.row[index];
|
|
188
|
+
|
|
189
|
+
if (!grip) {
|
|
190
|
+
return { popover: null, grip: null };
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
const items = type === 'col'
|
|
194
|
+
? buildColumnMenuItems(index, menuOptions)
|
|
195
|
+
: buildRowMenuItems(index, menuOptions);
|
|
196
|
+
|
|
197
|
+
const popover = new PopoverDesktop({
|
|
198
|
+
items,
|
|
199
|
+
trigger: grip,
|
|
200
|
+
flippable: true,
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
popover.on(PopoverEvent.Closed, () => {
|
|
204
|
+
// The caller's destroyPopover handles nulling the shared state and
|
|
205
|
+
// calling popover.destroy(). The re-entrant Closed event is caught
|
|
206
|
+
// by the guard inside destroyPopover (checks if popover is already null).
|
|
207
|
+
callbacks.destroyPopover();
|
|
208
|
+
callbacks.applyVisibleClasses(grip);
|
|
209
|
+
callbacks.scheduleHideAll();
|
|
210
|
+
callbacks.onGripPopoverClose?.();
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// Hide all other grips and make the active one blue
|
|
214
|
+
callbacks.hideAllGripsExcept(grip);
|
|
215
|
+
callbacks.applyActiveClasses(grip);
|
|
216
|
+
|
|
217
|
+
// Expand the grip to hover size so it remains visible while popover is open
|
|
218
|
+
if (type === 'col') {
|
|
219
|
+
grip.style.height = `${GRIP_HOVER_SIZE}px`;
|
|
220
|
+
} else {
|
|
221
|
+
grip.style.width = `${GRIP_HOVER_SIZE}px`;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return { popover, grip };
|
|
225
|
+
};
|
package/src/tools/table/types.ts
CHANGED
|
@@ -29,12 +29,16 @@ export const isCellWithBlocks = (cell: LegacyCellContent): cell is CellContent =
|
|
|
29
29
|
export interface TableData extends BlockToolData {
|
|
30
30
|
/** Whether the first row is a heading row */
|
|
31
31
|
withHeadings: boolean;
|
|
32
|
+
/** Whether the first column is a heading column */
|
|
33
|
+
withHeadingColumn: boolean;
|
|
32
34
|
/** Whether the table is full-width */
|
|
33
35
|
stretched?: boolean;
|
|
34
36
|
/** 2D array of cell content (may contain legacy string format when loading saved data) */
|
|
35
37
|
content: LegacyCellContent[][];
|
|
36
38
|
/** Column widths in pixels (e.g., [200, 300, 250]). Omit for equal widths. */
|
|
37
39
|
colWidths?: number[];
|
|
40
|
+
/** Original per-column width in pixels, set once at creation. New columns = initialColWidth / 2. */
|
|
41
|
+
initialColWidth?: number;
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
/**
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { BlocksAPI } from '../components/modules/api/blocks';
|
|
3
3
|
import { CaretAPI } from '../components/modules/api/caret';
|
|
4
4
|
import { EventsAPI } from '../components/modules/api/events';
|
|
5
|
+
import { HistoryAPI } from '../components/modules/api/history';
|
|
5
6
|
import { I18nAPI } from '../components/modules/api/i18n';
|
|
6
7
|
import { API } from '../components/modules/api/index';
|
|
7
8
|
import { InlineToolbarAPI } from '../components/modules/api/inlineToolbar';
|
|
@@ -45,6 +46,7 @@ export interface BlokModules {
|
|
|
45
46
|
CaretAPI: CaretAPI,
|
|
46
47
|
ToolsAPI: ToolsAPI,
|
|
47
48
|
EventsAPI: EventsAPI,
|
|
49
|
+
HistoryAPI: HistoryAPI,
|
|
48
50
|
I18nAPI: I18nAPI,
|
|
49
51
|
API: API,
|
|
50
52
|
InlineToolbarAPI: InlineToolbarAPI,
|
package/types/api/blocks.d.ts
CHANGED
|
@@ -78,6 +78,14 @@ export interface Blocks {
|
|
|
78
78
|
*/
|
|
79
79
|
getChildren(parentId: string): BlockAPI[];
|
|
80
80
|
|
|
81
|
+
/**
|
|
82
|
+
* Sets the parent of a block, updating both the block's parentId and the parent's contentIds.
|
|
83
|
+
*
|
|
84
|
+
* @param blockId - id of the block to reparent
|
|
85
|
+
* @param parentId - id of the new parent block, or null for root level
|
|
86
|
+
*/
|
|
87
|
+
setBlockParent(blockId: string, parentId: string | null): void;
|
|
88
|
+
|
|
81
89
|
/**
|
|
82
90
|
* Returns Blocks count
|
|
83
91
|
* @return {number}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Describes Blok's history API
|
|
3
|
+
*/
|
|
4
|
+
export interface History {
|
|
5
|
+
/**
|
|
6
|
+
* Undo the last operation
|
|
7
|
+
*/
|
|
8
|
+
undo(): void;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Redo the last undone operation
|
|
12
|
+
*/
|
|
13
|
+
redo(): void;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Check if undo is available
|
|
17
|
+
*
|
|
18
|
+
* @returns {boolean} true if undo is available
|
|
19
|
+
*/
|
|
20
|
+
canUndo(): boolean;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Check if redo is available
|
|
24
|
+
*
|
|
25
|
+
* @returns {boolean} true if redo is available
|
|
26
|
+
*/
|
|
27
|
+
canRedo(): boolean;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Clear all history
|
|
31
|
+
*/
|
|
32
|
+
clear(): void;
|
|
33
|
+
}
|
package/types/api/index.d.ts
CHANGED
package/types/api/readonly.d.ts
CHANGED
|
@@ -3,10 +3,20 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export interface ReadOnly {
|
|
5
5
|
/**
|
|
6
|
-
* Set
|
|
6
|
+
* Set read-only mode to the specified boolean state
|
|
7
7
|
*
|
|
8
|
-
* @param {Boolean
|
|
8
|
+
* @param {Boolean} state - read-only state to set
|
|
9
|
+
* @returns {Promise<boolean>} the new read-only state
|
|
10
|
+
*/
|
|
11
|
+
set: (state: boolean) => Promise<boolean>;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Toggle read-only state (deprecated - use set() instead)
|
|
15
|
+
* Without parameter, toggles current state. With parameter, sets to specified state.
|
|
16
|
+
*
|
|
17
|
+
* @param {Boolean|undefined} state - optional state to set (if omitted, toggles)
|
|
9
18
|
* @returns {Promise<boolean>} current value
|
|
19
|
+
* @deprecated Use `set()` method for clearer intent
|
|
10
20
|
*/
|
|
11
21
|
toggle: (state?: boolean) => Promise<boolean>;
|
|
12
22
|
|
package/types/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
Blocks,
|
|
17
17
|
Caret,
|
|
18
18
|
Events,
|
|
19
|
+
History,
|
|
19
20
|
InlineToolbar,
|
|
20
21
|
Listeners,
|
|
21
22
|
Notifier,
|
|
@@ -90,6 +91,7 @@ export {
|
|
|
90
91
|
Blocks,
|
|
91
92
|
Caret,
|
|
92
93
|
Events,
|
|
94
|
+
History,
|
|
93
95
|
InlineToolbar,
|
|
94
96
|
Listeners,
|
|
95
97
|
Notifier,
|
|
@@ -127,6 +129,7 @@ export interface API {
|
|
|
127
129
|
caret: Caret;
|
|
128
130
|
tools: Tools;
|
|
129
131
|
events: Events;
|
|
132
|
+
history: History;
|
|
130
133
|
listeners: Listeners;
|
|
131
134
|
notifier: Notifier;
|
|
132
135
|
sanitizer: Sanitizer;
|
|
@@ -139,6 +142,13 @@ export interface API {
|
|
|
139
142
|
i18n: I18n;
|
|
140
143
|
readOnly: ReadOnly;
|
|
141
144
|
ui: Ui;
|
|
145
|
+
rectangleSelection: {
|
|
146
|
+
cancelActiveSelection: () => void;
|
|
147
|
+
isRectActivated: () => boolean;
|
|
148
|
+
clearSelection: () => void;
|
|
149
|
+
startSelection: (pageX: number, pageY: number, shiftKey?: boolean) => void;
|
|
150
|
+
endSelection: () => void;
|
|
151
|
+
};
|
|
142
152
|
}
|
|
143
153
|
|
|
144
154
|
import { DATA_ATTR, DataAttrKey, DataAttrValue, createSelector } from './data-attributes';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { BlockTool, BlockToolConstructable, BlockToolConstructorOptions, BlockToolData } from './block-tool';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Cell content always contains block IDs.
|
|
5
|
+
* Every cell in the table is represented as an array of block references.
|
|
6
|
+
*/
|
|
7
|
+
export interface CellContent {
|
|
8
|
+
blocks: string[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Table Tool's input and output data format
|
|
13
|
+
*/
|
|
14
|
+
export interface TableData extends BlockToolData {
|
|
15
|
+
/** Whether the first row is a heading row */
|
|
16
|
+
withHeadings: boolean;
|
|
17
|
+
/** Whether the first column is a heading column */
|
|
18
|
+
withHeadingColumn: boolean;
|
|
19
|
+
/** Whether the table is full-width */
|
|
20
|
+
stretched?: boolean;
|
|
21
|
+
/** 2D array of cell content */
|
|
22
|
+
content: CellContent[][];
|
|
23
|
+
/** Column widths in pixels (e.g., [200, 300, 250]). Omit for equal widths. */
|
|
24
|
+
colWidths?: number[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Table Tool's configuration
|
|
29
|
+
*/
|
|
30
|
+
export interface TableConfig {
|
|
31
|
+
/** Initial number of rows (default: 3) */
|
|
32
|
+
rows?: number;
|
|
33
|
+
/** Initial number of columns (default: 3) */
|
|
34
|
+
cols?: number;
|
|
35
|
+
/** Whether to start with heading row enabled */
|
|
36
|
+
withHeadings?: boolean;
|
|
37
|
+
/** Whether to start stretched */
|
|
38
|
+
stretched?: boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Table Tool for the Blok Editor
|
|
43
|
+
* Renders a 2D grid of block-based cells
|
|
44
|
+
*/
|
|
45
|
+
export interface Table extends BlockTool {
|
|
46
|
+
/**
|
|
47
|
+
* Return Tool's view
|
|
48
|
+
*/
|
|
49
|
+
render(): HTMLElement;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Validate Table block data
|
|
53
|
+
*/
|
|
54
|
+
validate(blockData: TableData): boolean;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Extract Tool's data from the view
|
|
58
|
+
*/
|
|
59
|
+
save(): TableData;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Table Tool constructor
|
|
64
|
+
*/
|
|
65
|
+
export interface TableConstructable extends BlockToolConstructable {
|
|
66
|
+
new(config: BlockToolConstructorOptions<TableData, TableConfig>): Table;
|
|
67
|
+
}
|
package/types/tools-entry.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { HeaderConstructable, HeaderData, HeaderConfig } from './tools/header';
|
|
7
7
|
import { ParagraphConstructable, ParagraphData, ParagraphConfig } from './tools/paragraph';
|
|
8
8
|
import { ListConstructable, ListData, ListConfig, ListStyle } from './tools/list';
|
|
9
|
+
import { TableConstructable, TableData, TableConfig, CellContent } from './tools/table';
|
|
9
10
|
import { InlineToolConstructable } from './tools/inline-tool';
|
|
10
11
|
import { BlockTuneConstructable } from './block-tunes';
|
|
11
12
|
import { ToolSettings } from './tools';
|
|
@@ -14,11 +15,13 @@ import { ToolSettings } from './tools';
|
|
|
14
15
|
export const Paragraph: ParagraphConstructable;
|
|
15
16
|
export const Header: HeaderConstructable;
|
|
16
17
|
export const List: ListConstructable;
|
|
18
|
+
export const Table: TableConstructable;
|
|
17
19
|
|
|
18
20
|
// Re-export data and config types for convenience
|
|
19
21
|
export { HeaderData, HeaderConfig } from './tools/header';
|
|
20
22
|
export { ParagraphData, ParagraphConfig } from './tools/paragraph';
|
|
21
23
|
export { ListData, ListConfig, ListStyle } from './tools/list';
|
|
24
|
+
export { TableData, TableConfig, CellContent } from './tools/table';
|
|
22
25
|
|
|
23
26
|
// Inline tools
|
|
24
27
|
export const Bold: InlineToolConstructable;
|
|
@@ -36,6 +39,7 @@ export const defaultBlockTools: {
|
|
|
36
39
|
readonly paragraph: { readonly inlineToolbar: true; readonly config: { readonly preserveBlank: true } };
|
|
37
40
|
readonly header: { readonly inlineToolbar: true };
|
|
38
41
|
readonly list: { readonly inlineToolbar: true };
|
|
42
|
+
readonly table: {};
|
|
39
43
|
};
|
|
40
44
|
|
|
41
45
|
/**
|
|
@@ -160,6 +160,12 @@ export interface PopoverItemDefaultBaseParams {
|
|
|
160
160
|
*/
|
|
161
161
|
isDisabled?: boolean;
|
|
162
162
|
|
|
163
|
+
/**
|
|
164
|
+
* True if item represents a destructive action (e.g. delete).
|
|
165
|
+
* Applies red text/icon color and red-tinted hover background.
|
|
166
|
+
*/
|
|
167
|
+
isDestructive?: boolean;
|
|
168
|
+
|
|
163
169
|
/**
|
|
164
170
|
* True if popover should close once item is activated
|
|
165
171
|
*/
|
|
@@ -22,6 +22,13 @@ export interface PopoverParams {
|
|
|
22
22
|
*/
|
|
23
23
|
trigger?: HTMLElement;
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Optional position (DOMRect) to use for positioning instead of trigger element.
|
|
27
|
+
* When provided, this takes precedence over trigger's getBoundingClientRect().
|
|
28
|
+
* Useful for positioning at caret location or other dynamic positions.
|
|
29
|
+
*/
|
|
30
|
+
position?: DOMRect;
|
|
31
|
+
|
|
25
32
|
/**
|
|
26
33
|
* True if popover should contain search field
|
|
27
34
|
*/
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
const o = {
|
|
2
|
-
"blockSettings.dragToMove": "తరలించడానికి డ్రాగ్ చేయండి",
|
|
3
|
-
"blockSettings.clickToOpenMenu": "మెనూ తెరవడానికి క్లిక్ చేయండి",
|
|
4
|
-
"toolbox.addBelow": "క్రింద జోడించడానికి క్లిక్ చేయండి",
|
|
5
|
-
"toolbox.optionAddAbove": "పైన జోడించడానికి Option-క్లిక్ చేయండి",
|
|
6
|
-
"toolbox.ctrlAddAbove": "పైన జోడించడానికి Ctrl-క్లిక్ చేయండి",
|
|
7
|
-
"popover.search": "వెతకండి",
|
|
8
|
-
"popover.nothingFound": "ఏమీ కనుగొనబడలేదు",
|
|
9
|
-
"popover.convertTo": "మార్చు",
|
|
10
|
-
"toolNames.text": "టెక్స్ట్",
|
|
11
|
-
"toolNames.heading": "శీర్షిక",
|
|
12
|
-
"toolNames.link": "లింక్",
|
|
13
|
-
"toolNames.bold": "బోల్డ్",
|
|
14
|
-
"toolNames.italic": "ఇటాలిక్",
|
|
15
|
-
"toolNames.bulletedList": "బుల్లెట్ జాబితా",
|
|
16
|
-
"toolNames.numberedList": "నంబర్ జాబితా",
|
|
17
|
-
"toolNames.todoList": "చేయవలసిన పనుల జాబితా",
|
|
18
|
-
"tools.link.addLink": "లింక్ జోడించండి",
|
|
19
|
-
"tools.link.invalidLink": "చెల్లని లింక్",
|
|
20
|
-
"tools.stub.error": "లోపం",
|
|
21
|
-
"tools.stub.blockCannotBeDisplayed": "ఈ బ్లాక్ను ప్రదర్శించలేము",
|
|
22
|
-
"tools.header.heading1": "శీర్షిక 1",
|
|
23
|
-
"tools.header.heading2": "శీర్షిక 2",
|
|
24
|
-
"tools.header.heading3": "శీర్షిక 3",
|
|
25
|
-
"tools.header.heading4": "శీర్షిక 4",
|
|
26
|
-
"tools.header.heading5": "శీర్షిక 5",
|
|
27
|
-
"tools.header.heading6": "శీర్షిక 6",
|
|
28
|
-
"tools.list.placeholder": "జాబితా",
|
|
29
|
-
"blockSettings.delete": "తొలగించు",
|
|
30
|
-
"a11y.dragHandle": "బ్లాక్ తరలించడానికి డ్రాగ్ చేయండి లేదా మెనూ కోసం క్లిక్ చేయండి",
|
|
31
|
-
"a11y.dragHandleRole": "డ్రాగ్ హ్యాండిల్",
|
|
32
|
-
"a11y.dragStarted": "బ్లాక్ డ్రాగ్ అవుతోంది",
|
|
33
|
-
"a11y.dragStartedMultiple": "{count} బ్లాక్లు డ్రాగ్ అవుతున్నాయి",
|
|
34
|
-
"a11y.dropPosition": "{total} లో {position} స్థానంలో డ్రాప్ అవుతుంది",
|
|
35
|
-
"a11y.dropCancelled": "డ్రాగ్ రద్దు చేయబడింది",
|
|
36
|
-
"a11y.blockMoved": "బ్లాక్ {total} లో {position} స్థానానికి తరలించబడింది",
|
|
37
|
-
"a11y.blocksMoved": "{count} బ్లాక్లు {position} స్థానానికి తరలించబడ్డాయి",
|
|
38
|
-
"a11y.blockDuplicated": "బ్లాక్ {total} లో {position} స్థానంలో నకలు చేయబడింది",
|
|
39
|
-
"a11y.blocksDuplicated": "{count} బ్లాక్లు {position} స్థానం నుండి నకలు చేయబడ్డాయి",
|
|
40
|
-
"a11y.movedUp": "బ్లాక్ {total} లో {position} స్థానానికి పైకి తరలించబడింది",
|
|
41
|
-
"a11y.movedDown": "బ్లాక్ {total} లో {position} స్థానానికి క్రిందికి తరలించబడింది",
|
|
42
|
-
"a11y.atTop": "బ్లాక్ పైన ఉంది, పైకి తరలించలేము",
|
|
43
|
-
"a11y.atBottom": "బ్లాక్ క్రింద ఉంది, క్రిందికి తరలించలేము",
|
|
44
|
-
"tools.paragraph.placeholder": "ఏదైనా delaysాయండి లేదా ఎంచdelay / నొక్కండి"
|
|
45
|
-
};
|
|
46
|
-
export {
|
|
47
|
-
o as default
|
|
48
|
-
};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
const o = {
|
|
2
|
-
"blockSettings.dragToMove": "తరలించడానికి డ్రాగ్ చేయండి",
|
|
3
|
-
"blockSettings.clickToOpenMenu": "మెనూ తెరవడానికి క్లిక్ చేయండి",
|
|
4
|
-
"toolbox.addBelow": "క్రింద జోడించడానికి క్లిక్ చేయండి",
|
|
5
|
-
"toolbox.optionAddAbove": "పైన జోడించడానికి Option-క్లిక్ చేయండి",
|
|
6
|
-
"toolbox.ctrlAddAbove": "పైన జోడించడానికి Ctrl-క్లిక్ చేయండి",
|
|
7
|
-
"popover.search": "వెతకండి",
|
|
8
|
-
"popover.nothingFound": "ఏమీ కనుగొనబడలేదు",
|
|
9
|
-
"popover.convertTo": "మార్చు",
|
|
10
|
-
"toolNames.text": "టెక్స్ట్",
|
|
11
|
-
"toolNames.heading": "శీర్షిక",
|
|
12
|
-
"toolNames.link": "లింక్",
|
|
13
|
-
"toolNames.bold": "బోల్డ్",
|
|
14
|
-
"toolNames.italic": "ఇటాలిక్",
|
|
15
|
-
"toolNames.bulletedList": "బుల్లెట్ జాబితా",
|
|
16
|
-
"toolNames.numberedList": "నంబర్ జాబితా",
|
|
17
|
-
"toolNames.todoList": "చేయవలసిన పనుల జాబితా",
|
|
18
|
-
"tools.link.addLink": "లింక్ జోడించండి",
|
|
19
|
-
"tools.link.invalidLink": "చెల్లని లింక్",
|
|
20
|
-
"tools.stub.error": "లోపం",
|
|
21
|
-
"tools.stub.blockCannotBeDisplayed": "ఈ బ్లాక్ను ప్రదర్శించలేము",
|
|
22
|
-
"tools.header.heading1": "శీర్షిక 1",
|
|
23
|
-
"tools.header.heading2": "శీర్షిక 2",
|
|
24
|
-
"tools.header.heading3": "శీర్షిక 3",
|
|
25
|
-
"tools.header.heading4": "శీర్షిక 4",
|
|
26
|
-
"tools.header.heading5": "శీర్షిక 5",
|
|
27
|
-
"tools.header.heading6": "శీర్షిక 6",
|
|
28
|
-
"tools.list.placeholder": "జాబితా",
|
|
29
|
-
"blockSettings.delete": "తొలగించు",
|
|
30
|
-
"a11y.dragHandle": "బ్లాక్ తరలించడానికి డ్రాగ్ చేయండి లేదా మెనూ కోసం క్లిక్ చేయండి",
|
|
31
|
-
"a11y.dragHandleRole": "డ్రాగ్ హ్యాండిల్",
|
|
32
|
-
"a11y.dragStarted": "బ్లాక్ డ్రాగ్ అవుతోంది",
|
|
33
|
-
"a11y.dragStartedMultiple": "{count} బ్లాక్లు డ్రాగ్ అవుతున్నాయి",
|
|
34
|
-
"a11y.dropPosition": "{total} లో {position} స్థానంలో డ్రాప్ అవుతుంది",
|
|
35
|
-
"a11y.dropCancelled": "డ్రాగ్ రద్దు చేయబడింది",
|
|
36
|
-
"a11y.blockMoved": "బ్లాక్ {total} లో {position} స్థానానికి తరలించబడింది",
|
|
37
|
-
"a11y.blocksMoved": "{count} బ్లాక్లు {position} స్థానానికి తరలించబడ్డాయి",
|
|
38
|
-
"a11y.blockDuplicated": "బ్లాక్ {total} లో {position} స్థానంలో నకలు చేయబడింది",
|
|
39
|
-
"a11y.blocksDuplicated": "{count} బ్లాక్లు {position} స్థానం నుండి నకలు చేయబడ్డాయి",
|
|
40
|
-
"a11y.movedUp": "బ్లాక్ {total} లో {position} స్థానానికి పైకి తరలించబడింది",
|
|
41
|
-
"a11y.movedDown": "బ్లాక్ {total} లో {position} స్థానానికి క్రిందికి తరలించబడింది",
|
|
42
|
-
"a11y.atTop": "బ్లాక్ పైన ఉంది, పైకి తరలించలేము",
|
|
43
|
-
"a11y.atBottom": "బ్లాక్ క్రింద ఉంది, క్రిందికి తరలించలేము",
|
|
44
|
-
"tools.paragraph.placeholder": "ఏదైనా delaysాయండి లేదా ఎంచdelay / నొక్కండి"
|
|
45
|
-
};
|
|
46
|
-
export {
|
|
47
|
-
o as default
|
|
48
|
-
};
|