@jackuait/blok 0.4.3-beta.10 → 0.4.3-beta.2
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 +5 -7
- package/dist/blok.mjs +2 -2
- package/dist/chunks/{blok-D85C_iyk.mjs → blok-BmV2xHX0.mjs} +1726 -1849
- package/dist/chunks/{i18next-loader-exc8oN3J.mjs → i18next-loader-DpRv9zC6.mjs} +1 -1
- package/dist/chunks/{index-fqgWb6Ue.mjs → index-CIEBlnPd.mjs} +1 -1
- package/dist/chunks/{inline-tool-convert-CYkcoF1r.mjs → inline-tool-convert-BTalcg_7.mjs} +8 -8
- package/dist/{messages-82j7Sb1f.mjs → chunks/messages-2434tVOK.mjs} +1 -1
- package/dist/chunks/{messages-D-tDNAzW.mjs → messages-3DcCwXMF.mjs} +1 -1
- package/dist/{messages-DIbeBo-6.mjs → chunks/messages-4kMwVAKY.mjs} +1 -1
- package/dist/{messages-CjksZqgf.mjs → chunks/messages-57uL5htT.mjs} +1 -1
- package/dist/chunks/{messages-BgmPDL9Z.mjs → messages-76-iJV9Q.mjs} +1 -1
- package/dist/{messages-DkJ5aV3V.mjs → chunks/messages-8p86Eyf2.mjs} +1 -1
- package/dist/chunks/{messages-TulYnz1f.mjs → messages-BBX0p0Pi.mjs} +1 -1
- package/dist/chunks/{messages-CVvHbBlx.mjs → messages-BCm2eudQ.mjs} +1 -1
- package/dist/chunks/{messages--yMo5vYp.mjs → messages-BFiUomgG.mjs} +1 -1
- package/dist/chunks/{messages-BXsoyz5-.mjs → messages-BIPNHHAV.mjs} +1 -1
- package/dist/chunks/{messages-DhdzbzrS.mjs → messages-BUlwu9mo.mjs} +1 -1
- package/dist/chunks/{messages-DRTt_xBc.mjs → messages-BX-DPa-z.mjs} +1 -1
- package/dist/chunks/{messages-Bi0X1QMU.mjs → messages-BextV3Qh.mjs} +1 -1
- package/dist/{messages-D9xzl8Wn.mjs → chunks/messages-BiPSFlUG.mjs} +1 -1
- package/dist/chunks/{messages-CoY-hJgp.mjs → messages-BiXe9G-O.mjs} +1 -1
- package/dist/{messages-Dw5GZ4YT.mjs → chunks/messages-Bl5z_Igo.mjs} +1 -1
- package/dist/{messages-KLzTvDED.mjs → chunks/messages-BnsE97ku.mjs} +1 -1
- package/dist/chunks/{messages-DG2QXu_f.mjs → messages-BoO8gsVD.mjs} +1 -1
- package/dist/{messages-CbtBGtJT.mjs → chunks/messages-BqWaOGMn.mjs} +1 -1
- package/dist/chunks/{messages-CcYGSGRh.mjs → messages-BqkL2_Ro.mjs} +1 -1
- package/dist/{messages-qFesO1Lu.mjs → chunks/messages-BvCkXKX-.mjs} +1 -1
- package/dist/{messages-Df6LYOt5.mjs → chunks/messages-C6tbPLoj.mjs} +1 -1
- package/dist/chunks/{messages-dIzxSHR2.mjs → messages-CA6T3-gQ.mjs} +1 -1
- package/dist/{messages-zs9AgeBF.mjs → chunks/messages-CFFPFdWP.mjs} +1 -1
- package/dist/{messages-Cm4WhO4g.mjs → chunks/messages-CFrKE-TN.mjs} +1 -1
- package/dist/chunks/{messages-D8sk1mxH.mjs → messages-CHz8VlG-.mjs} +1 -1
- package/dist/chunks/{messages-HSxl9MoN.mjs → messages-CLixzySl.mjs} +1 -1
- package/dist/{messages-DT43ZUKr.mjs → chunks/messages-CV7OM_qk.mjs} +1 -1
- package/dist/chunks/{messages-BYeiscyc.mjs → messages-CXHt3eCC.mjs} +1 -1
- package/dist/chunks/{messages-CTeYgNo1.mjs → messages-CbmsBrB0.mjs} +1 -1
- package/dist/chunks/{messages-DiyoZ_Oa.mjs → messages-Ceo1KtFx.mjs} +1 -1
- package/dist/{messages-D8VsV_Ro.mjs → chunks/messages-Cm0LJLtB.mjs} +1 -1
- package/dist/chunks/{messages-BaaIMBL8.mjs → messages-CmymP_Ar.mjs} +1 -1
- package/dist/chunks/{messages-Uexhy7C9.mjs → messages-D0ohMB5H.mjs} +1 -1
- package/dist/{messages-CbP4KoKV.mjs → chunks/messages-D3GrDwXh.mjs} +1 -1
- package/dist/{messages-CNRsIuSS.mjs → chunks/messages-D3vTzIpL.mjs} +1 -1
- package/dist/{messages-B-b_IFZh.mjs → chunks/messages-D5WeksbV.mjs} +1 -1
- package/dist/chunks/{messages-DHdkT1vy.mjs → messages-DGaab4EP.mjs} +1 -1
- package/dist/{messages-CwYueRo5.mjs → chunks/messages-DKha57ZU.mjs} +1 -1
- package/dist/chunks/{messages-JztkG3tZ.mjs → messages-DOaujgMW.mjs} +1 -1
- package/dist/chunks/{messages-DR0sRlko.mjs → messages-DVbPLd_0.mjs} +1 -1
- package/dist/chunks/{messages-BnmcUH66.mjs → messages-D_FCyfW6.mjs} +1 -1
- package/dist/chunks/{messages-BgbVziWf.mjs → messages-Dd5iZN3c.mjs} +1 -1
- package/dist/{messages-D2h_bTrn.mjs → chunks/messages-DehM7135.mjs} +1 -1
- package/dist/chunks/{messages-CbepBt3K.mjs → messages-Dg1OHftD.mjs} +1 -1
- package/dist/{messages-DT5djAjs.mjs → chunks/messages-Di6Flq-b.mjs} +1 -1
- package/dist/chunks/{messages-ctRNTfv5.mjs → messages-Dqhhex6e.mjs} +1 -1
- package/dist/chunks/{messages-Bo9JrN9m.mjs → messages-DueVe0F1.mjs} +1 -1
- package/dist/chunks/{messages-DvwZEFTL.mjs → messages-Dx3eFwI0.mjs} +1 -1
- package/dist/chunks/{messages-jmh1Gbfd.mjs → messages-FOtiUoKl.mjs} +1 -1
- package/dist/{messages-B7zIiLTq.mjs → chunks/messages-FTOZNhRD.mjs} +1 -1
- package/dist/chunks/{messages-D5J2Xlpx.mjs → messages-IQxGfQIV.mjs} +1 -1
- package/dist/chunks/{messages-BCidD-VB.mjs → messages-JF2fzCkK.mjs} +1 -1
- package/dist/chunks/{messages-D8tlQmPj.mjs → messages-MOGl7I5v.mjs} +1 -1
- package/dist/chunks/{messages-BjZll4R7.mjs → messages-QgYhPL-3.mjs} +1 -1
- package/dist/{messages-BWDnoNq0.mjs → chunks/messages-WYWIbQwo.mjs} +1 -1
- package/dist/chunks/{messages-oO_lJ-_I.mjs → messages-a6A_LgDv.mjs} +1 -1
- package/dist/chunks/{messages-g7Njot5w.mjs → messages-bSf31LJi.mjs} +1 -1
- package/dist/chunks/{messages-sSYZ0Mz9.mjs → messages-diGozhTn.mjs} +1 -1
- package/dist/chunks/{messages-BZ-Ia4tk.mjs → messages-er-kd-VO.mjs} +1 -1
- package/dist/chunks/{messages-B5OIvtYB.mjs → messages-ez3w5NBn.mjs} +1 -1
- package/dist/chunks/{messages-BuKgyEeU.mjs → messages-f3uXjegd.mjs} +1 -1
- package/dist/{messages-CJQt8nzO.mjs → chunks/messages-ohwI1UGv.mjs} +1 -1
- package/dist/{messages-9-pnvSWZ.mjs → chunks/messages-p9BZJaFV.mjs} +1 -1
- package/dist/{messages-CpkO-V0C.mjs → chunks/messages-qIQ4L4rw.mjs} +1 -1
- package/dist/{messages-CPdlHIEi.mjs → chunks/messages-qWkXPggi.mjs} +1 -1
- package/dist/chunks/{messages-iNIhRBkQ.mjs → messages-w5foGze_.mjs} +1 -1
- package/dist/full.mjs +2 -2
- package/dist/locales.mjs +68 -68
- package/dist/{chunks/messages-82j7Sb1f.mjs → messages-2434tVOK.mjs} +1 -1
- package/dist/{messages-D-tDNAzW.mjs → messages-3DcCwXMF.mjs} +1 -1
- package/dist/{chunks/messages-DIbeBo-6.mjs → messages-4kMwVAKY.mjs} +1 -1
- package/dist/{chunks/messages-CjksZqgf.mjs → messages-57uL5htT.mjs} +1 -1
- package/dist/{messages-BgmPDL9Z.mjs → messages-76-iJV9Q.mjs} +1 -1
- package/dist/{chunks/messages-DkJ5aV3V.mjs → messages-8p86Eyf2.mjs} +1 -1
- package/dist/{messages-TulYnz1f.mjs → messages-BBX0p0Pi.mjs} +1 -1
- package/dist/{messages-CVvHbBlx.mjs → messages-BCm2eudQ.mjs} +1 -1
- package/dist/{messages--yMo5vYp.mjs → messages-BFiUomgG.mjs} +1 -1
- package/dist/{messages-BXsoyz5-.mjs → messages-BIPNHHAV.mjs} +1 -1
- package/dist/{messages-DhdzbzrS.mjs → messages-BUlwu9mo.mjs} +1 -1
- package/dist/{messages-DRTt_xBc.mjs → messages-BX-DPa-z.mjs} +1 -1
- package/dist/{messages-Bi0X1QMU.mjs → messages-BextV3Qh.mjs} +1 -1
- package/dist/{chunks/messages-D9xzl8Wn.mjs → messages-BiPSFlUG.mjs} +1 -1
- package/dist/{messages-CoY-hJgp.mjs → messages-BiXe9G-O.mjs} +1 -1
- package/dist/{chunks/messages-Dw5GZ4YT.mjs → messages-Bl5z_Igo.mjs} +1 -1
- package/dist/{chunks/messages-KLzTvDED.mjs → messages-BnsE97ku.mjs} +1 -1
- package/dist/{messages-DG2QXu_f.mjs → messages-BoO8gsVD.mjs} +1 -1
- package/dist/{chunks/messages-CbtBGtJT.mjs → messages-BqWaOGMn.mjs} +1 -1
- package/dist/{messages-CcYGSGRh.mjs → messages-BqkL2_Ro.mjs} +1 -1
- package/dist/{chunks/messages-qFesO1Lu.mjs → messages-BvCkXKX-.mjs} +1 -1
- package/dist/{chunks/messages-Df6LYOt5.mjs → messages-C6tbPLoj.mjs} +1 -1
- package/dist/{messages-dIzxSHR2.mjs → messages-CA6T3-gQ.mjs} +1 -1
- package/dist/{chunks/messages-zs9AgeBF.mjs → messages-CFFPFdWP.mjs} +1 -1
- package/dist/{chunks/messages-Cm4WhO4g.mjs → messages-CFrKE-TN.mjs} +1 -1
- package/dist/{messages-D8sk1mxH.mjs → messages-CHz8VlG-.mjs} +1 -1
- package/dist/{messages-HSxl9MoN.mjs → messages-CLixzySl.mjs} +1 -1
- package/dist/{chunks/messages-DT43ZUKr.mjs → messages-CV7OM_qk.mjs} +1 -1
- package/dist/{messages-BYeiscyc.mjs → messages-CXHt3eCC.mjs} +1 -1
- package/dist/{messages-CTeYgNo1.mjs → messages-CbmsBrB0.mjs} +1 -1
- package/dist/{messages-DiyoZ_Oa.mjs → messages-Ceo1KtFx.mjs} +1 -1
- package/dist/{chunks/messages-D8VsV_Ro.mjs → messages-Cm0LJLtB.mjs} +1 -1
- package/dist/{messages-BaaIMBL8.mjs → messages-CmymP_Ar.mjs} +1 -1
- package/dist/{messages-Uexhy7C9.mjs → messages-D0ohMB5H.mjs} +1 -1
- package/dist/{chunks/messages-CbP4KoKV.mjs → messages-D3GrDwXh.mjs} +1 -1
- package/dist/{chunks/messages-CNRsIuSS.mjs → messages-D3vTzIpL.mjs} +1 -1
- package/dist/{chunks/messages-B-b_IFZh.mjs → messages-D5WeksbV.mjs} +1 -1
- package/dist/{messages-DHdkT1vy.mjs → messages-DGaab4EP.mjs} +1 -1
- package/dist/{chunks/messages-CwYueRo5.mjs → messages-DKha57ZU.mjs} +1 -1
- package/dist/{messages-JztkG3tZ.mjs → messages-DOaujgMW.mjs} +1 -1
- package/dist/{messages-DR0sRlko.mjs → messages-DVbPLd_0.mjs} +1 -1
- package/dist/{messages-BnmcUH66.mjs → messages-D_FCyfW6.mjs} +1 -1
- package/dist/{messages-BgbVziWf.mjs → messages-Dd5iZN3c.mjs} +1 -1
- package/dist/{chunks/messages-D2h_bTrn.mjs → messages-DehM7135.mjs} +1 -1
- package/dist/{messages-CbepBt3K.mjs → messages-Dg1OHftD.mjs} +1 -1
- package/dist/{chunks/messages-DT5djAjs.mjs → messages-Di6Flq-b.mjs} +1 -1
- package/dist/{messages-ctRNTfv5.mjs → messages-Dqhhex6e.mjs} +1 -1
- package/dist/{messages-Bo9JrN9m.mjs → messages-DueVe0F1.mjs} +1 -1
- package/dist/{messages-DvwZEFTL.mjs → messages-Dx3eFwI0.mjs} +1 -1
- package/dist/{messages-jmh1Gbfd.mjs → messages-FOtiUoKl.mjs} +1 -1
- package/dist/{chunks/messages-B7zIiLTq.mjs → messages-FTOZNhRD.mjs} +1 -1
- package/dist/{messages-D5J2Xlpx.mjs → messages-IQxGfQIV.mjs} +1 -1
- package/dist/{messages-BCidD-VB.mjs → messages-JF2fzCkK.mjs} +1 -1
- package/dist/{messages-D8tlQmPj.mjs → messages-MOGl7I5v.mjs} +1 -1
- package/dist/{messages-BjZll4R7.mjs → messages-QgYhPL-3.mjs} +1 -1
- package/dist/{chunks/messages-BWDnoNq0.mjs → messages-WYWIbQwo.mjs} +1 -1
- package/dist/{messages-oO_lJ-_I.mjs → messages-a6A_LgDv.mjs} +1 -1
- package/dist/{messages-g7Njot5w.mjs → messages-bSf31LJi.mjs} +1 -1
- package/dist/{messages-sSYZ0Mz9.mjs → messages-diGozhTn.mjs} +1 -1
- package/dist/{messages-BZ-Ia4tk.mjs → messages-er-kd-VO.mjs} +1 -1
- package/dist/{messages-B5OIvtYB.mjs → messages-ez3w5NBn.mjs} +1 -1
- package/dist/{messages-BuKgyEeU.mjs → messages-f3uXjegd.mjs} +1 -1
- package/dist/{chunks/messages-CJQt8nzO.mjs → messages-ohwI1UGv.mjs} +1 -1
- package/dist/{chunks/messages-9-pnvSWZ.mjs → messages-p9BZJaFV.mjs} +1 -1
- package/dist/{chunks/messages-CpkO-V0C.mjs → messages-qIQ4L4rw.mjs} +1 -1
- package/dist/{chunks/messages-CPdlHIEi.mjs → messages-qWkXPggi.mjs} +1 -1
- package/dist/{messages-iNIhRBkQ.mjs → messages-w5foGze_.mjs} +1 -1
- package/dist/tools.mjs +90 -131
- package/package.json +3 -3
- package/src/components/i18n/locales/am/messages.json +1 -1
- package/src/components/i18n/locales/ar/messages.json +1 -1
- package/src/components/i18n/locales/az/messages.json +1 -1
- package/src/components/i18n/locales/bg/messages.json +1 -1
- package/src/components/i18n/locales/bn/messages.json +1 -1
- package/src/components/i18n/locales/bs/messages.json +1 -1
- package/src/components/i18n/locales/cs/messages.json +1 -1
- package/src/components/i18n/locales/da/messages.json +1 -1
- package/src/components/i18n/locales/de/messages.json +1 -1
- package/src/components/i18n/locales/dv/messages.json +1 -1
- package/src/components/i18n/locales/el/messages.json +1 -1
- package/src/components/i18n/locales/en/messages.json +1 -1
- package/src/components/i18n/locales/es/messages.json +1 -1
- package/src/components/i18n/locales/et/messages.json +1 -1
- package/src/components/i18n/locales/fa/messages.json +1 -1
- package/src/components/i18n/locales/fi/messages.json +1 -1
- package/src/components/i18n/locales/fil/messages.json +1 -1
- package/src/components/i18n/locales/fr/messages.json +1 -1
- package/src/components/i18n/locales/gu/messages.json +1 -1
- package/src/components/i18n/locales/he/messages.json +1 -1
- package/src/components/i18n/locales/hi/messages.json +1 -1
- package/src/components/i18n/locales/hr/messages.json +1 -1
- package/src/components/i18n/locales/hu/messages.json +1 -1
- package/src/components/i18n/locales/hy/messages.json +1 -1
- package/src/components/i18n/locales/id/messages.json +1 -1
- package/src/components/i18n/locales/it/messages.json +1 -1
- package/src/components/i18n/locales/ja/messages.json +1 -1
- package/src/components/i18n/locales/ka/messages.json +1 -1
- package/src/components/i18n/locales/km/messages.json +1 -1
- package/src/components/i18n/locales/kn/messages.json +1 -1
- package/src/components/i18n/locales/ko/messages.json +1 -1
- package/src/components/i18n/locales/ku/messages.json +1 -1
- package/src/components/i18n/locales/lo/messages.json +1 -1
- package/src/components/i18n/locales/lt/messages.json +1 -1
- package/src/components/i18n/locales/lv/messages.json +1 -1
- package/src/components/i18n/locales/mk/messages.json +1 -1
- package/src/components/i18n/locales/ml/messages.json +1 -1
- package/src/components/i18n/locales/mn/messages.json +1 -1
- package/src/components/i18n/locales/mr/messages.json +1 -1
- package/src/components/i18n/locales/ms/messages.json +1 -1
- package/src/components/i18n/locales/my/messages.json +1 -1
- package/src/components/i18n/locales/ne/messages.json +1 -1
- package/src/components/i18n/locales/nl/messages.json +1 -1
- package/src/components/i18n/locales/no/messages.json +1 -1
- package/src/components/i18n/locales/pa/messages.json +1 -1
- package/src/components/i18n/locales/pl/messages.json +1 -1
- package/src/components/i18n/locales/ps/messages.json +1 -1
- package/src/components/i18n/locales/pt/messages.json +1 -1
- package/src/components/i18n/locales/ro/messages.json +1 -1
- package/src/components/i18n/locales/ru/messages.json +1 -1
- package/src/components/i18n/locales/sd/messages.json +1 -1
- package/src/components/i18n/locales/si/messages.json +1 -1
- package/src/components/i18n/locales/sk/messages.json +1 -1
- package/src/components/i18n/locales/sl/messages.json +1 -1
- package/src/components/i18n/locales/sq/messages.json +1 -1
- package/src/components/i18n/locales/sr/messages.json +1 -1
- package/src/components/i18n/locales/sv/messages.json +1 -1
- package/src/components/i18n/locales/sw/messages.json +1 -1
- package/src/components/i18n/locales/ta/messages.json +1 -1
- package/src/components/i18n/locales/te/messages.json +1 -1
- package/src/components/i18n/locales/th/messages.json +1 -1
- package/src/components/i18n/locales/tr/messages.json +1 -1
- package/src/components/i18n/locales/ug/messages.json +1 -1
- package/src/components/i18n/locales/uk/messages.json +1 -1
- package/src/components/i18n/locales/ur/messages.json +1 -1
- package/src/components/i18n/locales/vi/messages.json +1 -1
- package/src/components/i18n/locales/yi/messages.json +1 -1
- package/src/components/i18n/locales/zh/messages.json +1 -1
- package/src/components/modules/api/i18n.ts +0 -1
- package/src/components/modules/dragManager.ts +13 -71
- package/src/components/modules/i18n.ts +11 -6
- package/src/components/modules/rectangleSelection.ts +19 -62
- package/src/components/modules/toolbar/index.ts +2 -2
- package/src/components/modules/tools.ts +3 -39
- package/src/components/modules/ui.ts +18 -83
- package/src/components/tools/base.ts +2 -29
- package/src/components/tools/block.ts +3 -20
- package/src/components/tools/factory.ts +1 -50
- package/src/tools/header/index.ts +0 -82
- package/src/tools/index.ts +6 -13
- package/src/tools/list/index.ts +2 -2
- package/src/types-internal/nanoid.d.ts +14 -0
- package/types/api/i18n.d.ts +0 -8
- package/types/tools/tool-settings.d.ts +4 -62
|
@@ -16,7 +16,6 @@ import type {
|
|
|
16
16
|
BlockToolData,
|
|
17
17
|
PasteEvent,
|
|
18
18
|
ToolboxConfig,
|
|
19
|
-
ToolboxConfigEntry,
|
|
20
19
|
ConversionConfig,
|
|
21
20
|
SanitizerConfig,
|
|
22
21
|
PasteConfig,
|
|
@@ -61,11 +60,6 @@ export interface HeaderConfig {
|
|
|
61
60
|
defaultLevel?: number;
|
|
62
61
|
/** Level-specific overrides keyed by level number (1-6) */
|
|
63
62
|
levelOverrides?: Record<number, HeaderLevelConfig>;
|
|
64
|
-
/**
|
|
65
|
-
* @internal Injected by BlockToolAdapter - merged toolbox entries.
|
|
66
|
-
* When present, renderSettings() will use these entries instead of the default levels.
|
|
67
|
-
*/
|
|
68
|
-
_toolboxEntries?: ToolboxConfigEntry[];
|
|
69
63
|
}
|
|
70
64
|
|
|
71
65
|
/**
|
|
@@ -201,28 +195,6 @@ export class Header implements BlockTool {
|
|
|
201
195
|
* @returns MenuConfig array
|
|
202
196
|
*/
|
|
203
197
|
public renderSettings(): MenuConfig {
|
|
204
|
-
const toolboxEntries = this._settings._toolboxEntries;
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* If user provided custom toolbox entries, use them to build settings menu.
|
|
208
|
-
* This ensures block settings match the toolbox configuration.
|
|
209
|
-
* Entries without explicit level data will default to the configured defaultLevel.
|
|
210
|
-
*
|
|
211
|
-
* Only fall back to levels config when _toolboxEntries is not provided or empty,
|
|
212
|
-
* or when using the default single "Heading" toolbox entry (detected by having
|
|
213
|
-
* exactly one entry with no level data and no custom title or the default "Heading" title).
|
|
214
|
-
*/
|
|
215
|
-
const isDefaultToolboxEntry = toolboxEntries?.length === 1 &&
|
|
216
|
-
toolboxEntries[0].data === undefined &&
|
|
217
|
-
(toolboxEntries[0].title === undefined || toolboxEntries[0].title === 'Heading');
|
|
218
|
-
|
|
219
|
-
if (toolboxEntries !== undefined && toolboxEntries.length > 0 && !isDefaultToolboxEntry) {
|
|
220
|
-
return this.buildSettingsFromToolboxEntries(toolboxEntries);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Fall back to existing behavior using levels config
|
|
225
|
-
*/
|
|
226
198
|
return this.levels.map(level => {
|
|
227
199
|
const translated = this.api.i18n.t(level.nameKey);
|
|
228
200
|
const title = translated !== level.nameKey ? translated : level.name;
|
|
@@ -240,60 +212,6 @@ export class Header implements BlockTool {
|
|
|
240
212
|
});
|
|
241
213
|
}
|
|
242
214
|
|
|
243
|
-
/**
|
|
244
|
-
* Build settings menu items from toolbox entries.
|
|
245
|
-
* This allows users to customize which levels appear in block settings
|
|
246
|
-
* by configuring the toolbox.
|
|
247
|
-
*
|
|
248
|
-
* @param entries - Merged toolbox entries from user config
|
|
249
|
-
* @returns MenuConfig array
|
|
250
|
-
*/
|
|
251
|
-
private buildSettingsFromToolboxEntries(entries: ToolboxConfigEntry[]): MenuConfig {
|
|
252
|
-
return entries.map(entry => {
|
|
253
|
-
const entryData = entry.data as { level?: number } | undefined;
|
|
254
|
-
const level = entryData?.level ?? this.defaultLevel.number;
|
|
255
|
-
const defaultLevel = Header.DEFAULT_LEVELS.find(l => l.number === level);
|
|
256
|
-
const fallbackTitle = defaultLevel?.name ?? `Heading ${level}`;
|
|
257
|
-
|
|
258
|
-
const title = this.resolveToolboxEntryTitle(entry, fallbackTitle);
|
|
259
|
-
const icon = entry.icon ?? defaultLevel?.icon ?? IconHeading;
|
|
260
|
-
|
|
261
|
-
return {
|
|
262
|
-
icon,
|
|
263
|
-
title,
|
|
264
|
-
onActivate: (): void => this.setLevel(level),
|
|
265
|
-
closeOnActivate: true,
|
|
266
|
-
isActive: this.currentLevel.number === level,
|
|
267
|
-
dataset: {
|
|
268
|
-
'blok-header-level': String(level),
|
|
269
|
-
},
|
|
270
|
-
};
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Resolves the title for a toolbox entry.
|
|
276
|
-
* Priority: custom title > i18n key translation > fallback
|
|
277
|
-
*
|
|
278
|
-
* @param entry - Toolbox entry
|
|
279
|
-
* @param fallback - Fallback title if no custom title or translation found
|
|
280
|
-
* @returns Resolved title string
|
|
281
|
-
*/
|
|
282
|
-
private resolveToolboxEntryTitle(entry: ToolboxConfigEntry, fallback: string): string {
|
|
283
|
-
if (entry.title !== undefined) {
|
|
284
|
-
return entry.title;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
if (entry.titleKey === undefined) {
|
|
288
|
-
return fallback;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
const namespacedKey = `toolNames.${entry.titleKey}`;
|
|
292
|
-
const translated = this.api.i18n.t(namespacedKey);
|
|
293
|
-
|
|
294
|
-
return translated !== namespacedKey ? translated : fallback;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
215
|
/**
|
|
298
216
|
* Callback for Block's settings buttons
|
|
299
217
|
*
|
package/src/tools/index.ts
CHANGED
|
@@ -6,16 +6,10 @@
|
|
|
6
6
|
* // Import specific tools
|
|
7
7
|
* import { Paragraph, Header, List, Bold, Italic, Link } from '@jackuait/blok/tools';
|
|
8
8
|
*
|
|
9
|
-
* // Use in Blok configuration
|
|
9
|
+
* // Use in Blok configuration
|
|
10
10
|
* new Blok({
|
|
11
|
-
* tools: {
|
|
12
|
-
*
|
|
13
|
-
* header: { class: Header, levels: [1, 2, 3] },
|
|
14
|
-
* list: List,
|
|
15
|
-
* bold: Bold,
|
|
16
|
-
* italic: Italic,
|
|
17
|
-
* link: Link,
|
|
18
|
-
* }
|
|
11
|
+
* tools: { paragraph: Paragraph, header: Header, list: List },
|
|
12
|
+
* inlineTools: { bold: Bold, italic: Italic, link: Link }
|
|
19
13
|
* });
|
|
20
14
|
*/
|
|
21
15
|
|
|
@@ -31,11 +25,10 @@ export { LinkInlineTool as Link } from '../components/inline-tools/inline-tool-l
|
|
|
31
25
|
export { ConvertInlineTool as Convert } from '../components/inline-tools/inline-tool-convert';
|
|
32
26
|
|
|
33
27
|
// Default tools configuration for convenience
|
|
34
|
-
// Note: inlineToolbar defaults to true, so it doesn't need to be specified
|
|
35
28
|
export const defaultBlockTools = {
|
|
36
|
-
paragraph: { preserveBlank: true },
|
|
37
|
-
header: {},
|
|
38
|
-
list: {},
|
|
29
|
+
paragraph: { inlineToolbar: true, config: { preserveBlank: true } },
|
|
30
|
+
header: { inlineToolbar: true },
|
|
31
|
+
list: { inlineToolbar: true },
|
|
39
32
|
} as const;
|
|
40
33
|
|
|
41
34
|
export const defaultInlineTools = {
|
package/src/tools/list/index.ts
CHANGED
|
@@ -226,10 +226,10 @@ export class ListItem implements BlockTool {
|
|
|
226
226
|
return this._settings.itemSize;
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
private static readonly
|
|
229
|
+
private static readonly DEFAULT_PLACEHOLDER = 'List';
|
|
230
230
|
|
|
231
231
|
private get placeholder(): string {
|
|
232
|
-
return this.api.i18n.t(ListItem.
|
|
232
|
+
return this.api.i18n.t(ListItem.DEFAULT_PLACEHOLDER);
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
private applyItemStyles(element: HTMLElement): void {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type declarations for nanoid module
|
|
3
|
+
* This is needed because nanoid is a devDependency but is imported in source code
|
|
4
|
+
* The actual nanoid code is bundled into the dist, but consumers compiling
|
|
5
|
+
* against the source files need type declarations
|
|
6
|
+
*/
|
|
7
|
+
declare module 'nanoid' {
|
|
8
|
+
/**
|
|
9
|
+
* Generate a secure random unique ID
|
|
10
|
+
* @param size - Size of the ID. Default is 21
|
|
11
|
+
* @returns Random unique ID string
|
|
12
|
+
*/
|
|
13
|
+
export function nanoid(size?: number): string;
|
|
14
|
+
}
|
package/types/api/i18n.d.ts
CHANGED
|
@@ -10,12 +10,4 @@ export interface I18n {
|
|
|
10
10
|
* @returns Translated string, or the key itself if translation is missing
|
|
11
11
|
*/
|
|
12
12
|
t(dictKey: string): string;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Check if a translation exists for the given key.
|
|
16
|
-
*
|
|
17
|
-
* @param dictKey - Full translation key to check
|
|
18
|
-
* @returns True if translation exists, false otherwise
|
|
19
|
-
*/
|
|
20
|
-
has(dictKey: string): boolean;
|
|
21
13
|
}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { ToolConfig } from './tool-config';
|
|
2
2
|
import { ToolConstructable, BlockToolData, MenuConfig, MenuConfigItem } from './index';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* Permissive type for tool class - accepts any constructor.
|
|
6
|
-
* Runtime validation ensures the tool has required methods.
|
|
7
|
-
*/
|
|
8
|
-
export type ToolClass = new (...args: any[]) => any;
|
|
9
|
-
|
|
10
4
|
/**
|
|
11
5
|
* Tool may specify its toolbox configuration
|
|
12
6
|
* It may include several entries as well
|
|
@@ -55,9 +49,9 @@ export interface ToolboxConfigEntry {
|
|
|
55
49
|
export interface ExternalToolSettings<Config extends object = any> {
|
|
56
50
|
|
|
57
51
|
/**
|
|
58
|
-
* Tool's class
|
|
52
|
+
* Tool's class
|
|
59
53
|
*/
|
|
60
|
-
class: ToolConstructable
|
|
54
|
+
class: ToolConstructable;
|
|
61
55
|
|
|
62
56
|
/**
|
|
63
57
|
* User configuration object that will be passed to the Tool's constructor
|
|
@@ -94,58 +88,6 @@ export interface ExternalToolSettings<Config extends object = any> {
|
|
|
94
88
|
export type InternalToolSettings<Config extends object = any> = Omit<ExternalToolSettings<Config>, 'class'> & Partial<Pick<ExternalToolSettings<Config>, 'class'>>;
|
|
95
89
|
|
|
96
90
|
/**
|
|
97
|
-
*
|
|
98
|
-
*/
|
|
99
|
-
export type BlokToolSettingsKeys = 'class' | 'inlineToolbar' | 'tunes' | 'shortcut' | 'toolbox' | 'config';
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Flat tool settings - tool-specific options at top level.
|
|
103
|
-
* Blok extracts known keys and passes the rest as `config` to the tool.
|
|
104
|
-
*/
|
|
105
|
-
export interface FlatToolSettings<Config extends object = any> {
|
|
106
|
-
/**
|
|
107
|
-
* Tool's class
|
|
108
|
-
*/
|
|
109
|
-
class: ToolConstructable | ToolClass;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Is need to show Inline Toolbar.
|
|
113
|
-
* Defaults to true for block tools.
|
|
114
|
-
*/
|
|
115
|
-
inlineToolbar?: boolean | string[];
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* BlockTunes for Tool
|
|
119
|
-
*/
|
|
120
|
-
tunes?: boolean | string[];
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Define shortcut that will render Tool
|
|
124
|
-
*/
|
|
125
|
-
shortcut?: string;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Tool's Toolbox settings
|
|
129
|
-
*/
|
|
130
|
-
toolbox?: ToolboxConfig | false;
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Legacy nested config - merged with top-level tool options
|
|
134
|
-
* @deprecated Use flat config instead
|
|
135
|
-
*/
|
|
136
|
-
config?: ToolConfig<Config>;
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Tool-specific options (placeholder, levels, etc.)
|
|
140
|
-
* These are passed to the tool constructor as `config`
|
|
141
|
-
*/
|
|
142
|
-
[key: string]: unknown;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Union of all tool settings formats
|
|
91
|
+
* Union of external and internal Tools settings
|
|
147
92
|
*/
|
|
148
|
-
export type ToolSettings<Config extends object = any> =
|
|
149
|
-
| InternalToolSettings<Config>
|
|
150
|
-
| ExternalToolSettings<Config>
|
|
151
|
-
| FlatToolSettings<Config>;
|
|
93
|
+
export type ToolSettings<Config extends object = any> = InternalToolSettings<Config> | ExternalToolSettings<Config>;
|