@jackuait/blok 0.10.0 → 0.10.1
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/dist/blok.mjs +2 -2
- package/dist/chunks/{blok-BfcBwAfE.mjs → blok-u_68bnlk.mjs} +1489 -1486
- package/dist/chunks/{constants-QNVyXALL.mjs → constants-VDhCUk4c.mjs} +55 -48
- package/dist/chunks/{i18next-loader-CwsYu0n6.mjs → i18next-loader-CDnSPae_.mjs} +1 -1
- package/dist/chunks/{lightweight-i18n-Cvv8CWh4.mjs → lightweight-i18n-DZmo8dAI.mjs} +1 -0
- package/dist/chunks/{messages-DG-4DPmP.mjs → messages-1_6UkKLS.mjs} +1 -0
- package/dist/{messages-CqXtJTpU.mjs → chunks/messages-4Ck88DYZ2.mjs} +1 -0
- package/dist/{messages-96iaAUds2.mjs → chunks/messages-8Ld7P_9j2.mjs} +1 -0
- package/dist/{messages-DLX_iBDJ.mjs → chunks/messages-BAlZjPcl.mjs} +1 -0
- package/dist/chunks/{messages-p1mbe__S.mjs → messages-BHMiK51R.mjs} +1 -0
- package/dist/chunks/{messages-Cdf0W9H02.mjs → messages-BJ-vT1SU2.mjs} +1 -0
- package/dist/{messages-Smt4GBbj.mjs → chunks/messages-BK8Cp2d0.mjs} +1 -0
- package/dist/chunks/{messages-Bphq_Bt3.mjs → messages-BKN3YVIj.mjs} +1 -0
- package/dist/{messages-DTh9a8mR.mjs → chunks/messages-BMD37y3q2.mjs} +1 -0
- package/dist/chunks/{messages-DlonA3wa.mjs → messages-BONyZroH.mjs} +1 -0
- package/dist/chunks/{messages-DMVXnAYj.mjs → messages-BRAoJpOu.mjs} +1 -0
- package/dist/chunks/{messages-C6Mpiacw.mjs → messages-BRoa9tGl.mjs} +1 -0
- package/dist/{messages-aWZH50vu2.mjs → chunks/messages-BbEW9bQz.mjs} +1 -0
- package/dist/{messages-BIHc0KHY.mjs → chunks/messages-BeGZqQwz.mjs} +1 -0
- package/dist/chunks/{messages-C7VGpihw.mjs → messages-BfAcUavP.mjs} +1 -0
- package/dist/chunks/{messages-Cu-Wevxs2.mjs → messages-BgM91Lxm2.mjs} +1 -0
- package/dist/{messages-BYNcD6uR.mjs → chunks/messages-BlxwW7M6.mjs} +1 -0
- package/dist/chunks/{messages-rCd0Rrw6.mjs → messages-Bz0-KNEB.mjs} +1 -0
- package/dist/{messages-7QD-X6XT2.mjs → chunks/messages-C0IFfhnp.mjs} +1 -0
- package/dist/chunks/{messages-Dr0Ekmbz.mjs → messages-C15z2r5U.mjs} +1 -0
- package/dist/chunks/{messages-MxpWO1db.mjs → messages-C1S9ztpF.mjs} +1 -0
- package/dist/chunks/{messages-8IHf7ZP3.mjs → messages-CC_noR8y.mjs} +1 -0
- package/dist/chunks/{messages-COO5xmcA.mjs → messages-CD_MnBln.mjs} +1 -0
- package/dist/{messages-BiiongNz2.mjs → chunks/messages-CIfUm1Oa.mjs} +1 -0
- package/dist/chunks/{messages-B9kmbUWV.mjs → messages-CPBN4zWc.mjs} +1 -0
- package/dist/chunks/{messages-DlLXpgWM2.mjs → messages-CQBo3lmL2.mjs} +1 -0
- package/dist/{messages-DnGJD4TL.mjs → chunks/messages-CRF7nNrO.mjs} +1 -0
- package/dist/{messages-D8FQWulF2.mjs → chunks/messages-CTCe595D2.mjs} +1 -0
- package/dist/{messages-BRZX964b2.mjs → chunks/messages-CW35K1pq.mjs} +1 -0
- package/dist/chunks/{messages-CVdpweyf2.mjs → messages-CZSlfnkO2.mjs} +1 -0
- package/dist/chunks/{messages-iS34FHFB.mjs → messages-ChK7v1PV.mjs} +1 -0
- package/dist/chunks/{messages-BjadX8jR2.mjs → messages-Clku7Cf-2.mjs} +1 -0
- package/dist/{messages-DIJlIqlQ2.mjs → chunks/messages-CszmHAvQ.mjs} +1 -0
- package/dist/{messages-D0aw5_0k2.mjs → chunks/messages-CvANwuht2.mjs} +1 -0
- package/dist/chunks/{messages-BQYvBqm2.mjs → messages-CxiURE2X.mjs} +1 -0
- package/dist/chunks/{messages-A_MkXDlG.mjs → messages-CxxyR4vY.mjs} +1 -0
- package/dist/chunks/{messages-BUVhHx0q2.mjs → messages-D22e9h7V2.mjs} +1 -0
- package/dist/{messages-DYTTu0O12.mjs → chunks/messages-D7dx_6k8.mjs} +1 -0
- package/dist/chunks/{messages-BA8Iv99Y2.mjs → messages-DBMaLL8b2.mjs} +1 -0
- package/dist/{messages-DbySKTKt2.mjs → chunks/messages-DB_-5Xln.mjs} +1 -0
- package/dist/chunks/{messages-JyvWu4rf2.mjs → messages-DEBy3nuJ2.mjs} +1 -0
- package/dist/chunks/{messages-NEqrrYvE2.mjs → messages-DMoERagV2.mjs} +1 -0
- package/dist/{messages-Dy-Y_nEI.mjs → chunks/messages-DPzHD51Y.mjs} +1 -0
- package/dist/chunks/{messages-jfVpL9c-2.mjs → messages-DSrdy9Nw2.mjs} +1 -0
- package/dist/chunks/{messages-Cmf6NhSC.mjs → messages-DTN1XGll.mjs} +1 -0
- package/dist/chunks/{messages-BE6lHKwf.mjs → messages-DUeiPraX.mjs} +1 -0
- package/dist/{messages-Ddnj2iTG2.mjs → chunks/messages-DUr9WAkD.mjs} +1 -0
- package/dist/chunks/{messages-Ck81cQkn2.mjs → messages-DVr1sqfI2.mjs} +1 -0
- package/dist/chunks/{messages-aZcy0JQq2.mjs → messages-DjvaiALg2.mjs} +1 -0
- package/dist/{messages-DkLU_rWm.mjs → chunks/messages-DrfRYiM32.mjs} +1 -0
- package/dist/{messages-Dw__BcTj.mjs → chunks/messages-DtoId_bw2.mjs} +1 -0
- package/dist/{messages-Bq3F2Tp_.mjs → chunks/messages-Du2BffA7.mjs} +1 -0
- package/dist/{messages-CjbnogEC.mjs → chunks/messages-DxHh0O8j2.mjs} +1 -0
- package/dist/{messages-BECMxmfX.mjs → chunks/messages-EDMC5ukV.mjs} +1 -0
- package/dist/{messages-BTQPpoM42.mjs → chunks/messages-ElIGUi0O2.mjs} +1 -0
- package/dist/{messages-B1ZUQagA.mjs → chunks/messages-JSQjKQ8I.mjs} +1 -0
- package/dist/{messages-CWIXvnDf2.mjs → chunks/messages-Q7-4ZJLB2.mjs} +1 -0
- package/dist/{messages-BJeGJksD.mjs → chunks/messages-QMOmwcZb.mjs} +1 -0
- package/dist/chunks/{messages-xuqyb6Ff2.mjs → messages-QilfinOn2.mjs} +1 -0
- package/dist/{messages-BmAn22OX.mjs → chunks/messages-a07QVz8U.mjs} +1 -0
- package/dist/{messages-nlhESX9t.mjs → chunks/messages-eFd4YYzt.mjs} +1 -0
- package/dist/{messages-Dnp9N6RU2.mjs → chunks/messages-euM2m3wQ.mjs} +1 -0
- package/dist/chunks/{messages-BVjoM7P0.mjs → messages-kGmxkeFH.mjs} +1 -0
- package/dist/chunks/{messages-D9N2MvQx2.mjs → messages-oMc7qugU2.mjs} +1 -0
- package/dist/{messages-Dvn35ksS.mjs → chunks/messages-sDdNf8O9.mjs} +1 -0
- package/dist/{messages-Bm0Feca1.mjs → chunks/messages-wl8YrvGG.mjs} +1 -0
- package/dist/{messages-j7o5rT9s.mjs → chunks/messages-zt6zdYWh.mjs} +1 -0
- package/dist/chunks/{tools-DHtzbrxy.mjs → tools-1ZFajlGN.mjs} +1022 -893
- package/dist/full.mjs +3 -3
- package/dist/locales.mjs +68 -67
- package/dist/{messages-F2xRoY1w.mjs → messages-2ZWBTerL.mjs} +1 -0
- package/dist/{messages-Dl3Sv6Rq2.mjs → messages-53w0fPZS2.mjs} +1 -0
- package/dist/{chunks/messages-BDZA10kl2.mjs → messages-98nQiC7t2.mjs} +1 -0
- package/dist/{messages-CcF4y-E4.mjs → messages-A96tMxeU.mjs} +1 -0
- package/dist/{messages-Ce6KVEbT.mjs → messages-BE_z-zrb.mjs} +1 -0
- package/dist/{chunks/messages-CSJ_zb3a2.mjs → messages-BK_LsgY4.mjs} +1 -0
- package/dist/{messages-CJTy6JZt.mjs → messages-BbJ7ZXY8.mjs} +1 -0
- package/dist/{messages-BwHs4cm1.mjs → messages-BcVB3osF.mjs} +1 -0
- package/dist/{chunks/messages-CSL-6xfb2.mjs → messages-BckDk9aq2.mjs} +1 -0
- package/dist/{chunks/messages-C0HvoMPb.mjs → messages-Be_2RHZD.mjs} +1 -0
- package/dist/{messages-Dl5Y2-Ia.mjs → messages-BesJaI6A.mjs} +1 -0
- package/dist/{chunks/messages-D3zojZ94.mjs → messages-BiTMwiKH.mjs} +1 -0
- package/dist/{chunks/messages-BhzzNkN-.mjs → messages-BmH2cQHQ.mjs} +1 -0
- package/dist/{chunks/messages-Bfnq1xv4.mjs → messages-BrOWqNCu2.mjs} +1 -0
- package/dist/{chunks/messages-BSghd0ez.mjs → messages-Brd5R-da2.mjs} +1 -0
- package/dist/{chunks/messages-DJoNVjqP.mjs → messages-C0GSBBCo2.mjs} +1 -0
- package/dist/{chunks/messages-B2N4fUi72.mjs → messages-C1vc5584.mjs} +1 -0
- package/dist/{messages-aMXpHt5X2.mjs → messages-C6ONf71u2.mjs} +1 -0
- package/dist/{chunks/messages-BeFqtIrc2.mjs → messages-C7lJg8fy2.mjs} +1 -0
- package/dist/{messages-CSUHBs4c2.mjs → messages-CRNogopy2.mjs} +1 -0
- package/dist/{messages-DLlc9QPw.mjs → messages-CT-Kdas6.mjs} +1 -0
- package/dist/{messages-DPA-mMWC2.mjs → messages-CTTmWn4Y2.mjs} +1 -0
- package/dist/{chunks/messages-DWu1r4gc2.mjs → messages-CZbcxlZt2.mjs} +1 -0
- package/dist/{chunks/messages-Bp8qin1R.mjs → messages-C_Qn9SbQ.mjs} +1 -0
- package/dist/{chunks/messages-DGL1ySqb2.mjs → messages-CdEASHDp2.mjs} +1 -0
- package/dist/{chunks/messages-Bxvi1ebN.mjs → messages-CdduYw-q.mjs} +1 -0
- package/dist/{chunks/messages-Je5YvxiY.mjs → messages-Che99vKP.mjs} +1 -0
- package/dist/{chunks/messages-BYxLFj7y.mjs → messages-CisR4PNV.mjs} +1 -0
- package/dist/{messages-5jvKxQNu2.mjs → messages-ClGvlFcH2.mjs} +1 -0
- package/dist/{chunks/messages-FWfsxpBz.mjs → messages-CnuH-BZK2.mjs} +1 -0
- package/dist/{messages-BYmmMDrN2.mjs → messages-D0005ti32.mjs} +1 -0
- package/dist/{messages-B7ieAJBd2.mjs → messages-D05jqBIa2.mjs} +1 -0
- package/dist/{chunks/messages-BXM80fdr2.mjs → messages-D0lLw9KM.mjs} +1 -0
- package/dist/{chunks/messages-ihCjSFJI2.mjs → messages-D3rwCtKn.mjs} +1 -0
- package/dist/{messages-hWwSRF-2.mjs → messages-D6VIFnSW.mjs} +1 -0
- package/dist/{chunks/messages-KdawW5Na.mjs → messages-D81w6AmW.mjs} +1 -0
- package/dist/{messages-ynAe7ewZ.mjs → messages-DBhvm8NK.mjs} +1 -0
- package/dist/{messages-CmB406HW.mjs → messages-DK6dA0O2.mjs} +1 -0
- package/dist/{messages-rk-A1Wa42.mjs → messages-DKHbt-7l2.mjs} +1 -0
- package/dist/{messages-BIoeoik5.mjs → messages-DM4Gjc9h.mjs} +1 -0
- package/dist/{messages-BbYq1pk-.mjs → messages-DODrhcop.mjs} +1 -0
- package/dist/{messages-BsycN_JI2.mjs → messages-DOGbHYv-2.mjs} +1 -0
- package/dist/{messages-nUVjeh7K.mjs → messages-DQORja0D.mjs} +1 -0
- package/dist/{messages-DnG0ef8t2.mjs → messages-DSmxJWju2.mjs} +1 -0
- package/dist/{messages-CR_L_UtK.mjs → messages-DVL0KZE5.mjs} +1 -0
- package/dist/{chunks/messages-Cs81Z_Bh.mjs → messages-DYuD5-rO.mjs} +1 -0
- package/dist/{chunks/messages-CKBhDGI3.mjs → messages-Ddq3Ce3E2.mjs} +1 -0
- package/dist/{messages-xh2eOLvs.mjs → messages-DfFZ6Yj5.mjs} +1 -0
- package/dist/{messages-DY4IqlhY.mjs → messages-Dnd5YSWv.mjs} +1 -0
- package/dist/{chunks/messages-DOuS1Qge.mjs → messages-Do7Xjy0n.mjs} +1 -0
- package/dist/{chunks/messages-C3aX3q0H.mjs → messages-DopaMHC42.mjs} +1 -0
- package/dist/{messages-dv19AkyJ.mjs → messages-DpJGbx3q.mjs} +1 -0
- package/dist/{messages-DBiVgUs2.mjs → messages-DpwMKDV0.mjs} +1 -0
- package/dist/{chunks/messages-BAsb5CgZ.mjs → messages-Dqu4aX9s.mjs} +1 -0
- package/dist/{messages-BiUGXvYr2.mjs → messages-E8NjqzWq2.mjs} +1 -0
- package/dist/{chunks/messages-RInp1ytX.mjs → messages-JNrYldAa2.mjs} +1 -0
- package/dist/{chunks/messages-B4UMuyjT.mjs → messages-LMaR2_bE.mjs} +1 -0
- package/dist/{messages-E_ZuzGDt.mjs → messages-LYJbLq_F.mjs} +1 -0
- package/dist/{messages-DMr62KiO2.mjs → messages-Q5sQeVap2.mjs} +1 -0
- package/dist/{messages-Ci0KqX-J.mjs → messages-Xc0KUbYl.mjs} +1 -0
- package/dist/{messages-B19o-Teb.mjs → messages-_PLyRfVw.mjs} +1 -0
- package/dist/{chunks/messages-TRUuyiFB.mjs → messages-apA6BStA.mjs} +1 -0
- package/dist/{chunks/messages-B0vPBsWq.mjs → messages-bkGniiaz.mjs} +1 -0
- package/dist/{chunks/messages-D55HRx5O2.mjs → messages-neGD3WGq.mjs} +1 -0
- package/dist/{chunks/messages-G416eyjY.mjs → messages-qbKjjvgd2.mjs} +1 -0
- package/dist/{chunks/messages-BYlSMRkd.mjs → messages-qfvXgPpu2.mjs} +1 -0
- package/dist/{chunks/messages-DzTk8bJ5.mjs → messages-uwK7ktqk.mjs} +1 -0
- package/dist/react.mjs +2 -2
- package/dist/tools.mjs +2 -2
- package/package.json +1 -1
- package/src/components/block/index.ts +14 -0
- package/src/components/i18n/locales/am/messages.json +1 -0
- package/src/components/i18n/locales/ar/messages.json +1 -0
- package/src/components/i18n/locales/az/messages.json +1 -0
- package/src/components/i18n/locales/bg/messages.json +1 -0
- package/src/components/i18n/locales/bn/messages.json +1 -0
- package/src/components/i18n/locales/bs/messages.json +1 -0
- package/src/components/i18n/locales/cs/messages.json +1 -0
- package/src/components/i18n/locales/da/messages.json +1 -0
- package/src/components/i18n/locales/de/messages.json +1 -0
- package/src/components/i18n/locales/dv/messages.json +1 -0
- package/src/components/i18n/locales/el/messages.json +1 -0
- package/src/components/i18n/locales/en/messages.json +1 -0
- package/src/components/i18n/locales/es/messages.json +1 -0
- package/src/components/i18n/locales/et/messages.json +1 -0
- package/src/components/i18n/locales/fa/messages.json +1 -0
- package/src/components/i18n/locales/fi/messages.json +1 -0
- package/src/components/i18n/locales/fil/messages.json +1 -0
- package/src/components/i18n/locales/fr/messages.json +1 -0
- package/src/components/i18n/locales/gu/messages.json +1 -0
- package/src/components/i18n/locales/he/messages.json +1 -0
- package/src/components/i18n/locales/hi/messages.json +1 -0
- package/src/components/i18n/locales/hr/messages.json +1 -0
- package/src/components/i18n/locales/hu/messages.json +1 -0
- package/src/components/i18n/locales/hy/messages.json +1 -0
- package/src/components/i18n/locales/id/messages.json +1 -0
- package/src/components/i18n/locales/it/messages.json +1 -0
- package/src/components/i18n/locales/ja/messages.json +1 -0
- package/src/components/i18n/locales/ka/messages.json +1 -0
- package/src/components/i18n/locales/km/messages.json +1 -0
- package/src/components/i18n/locales/kn/messages.json +1 -0
- package/src/components/i18n/locales/ko/messages.json +1 -0
- package/src/components/i18n/locales/ku/messages.json +1 -0
- package/src/components/i18n/locales/lo/messages.json +1 -0
- package/src/components/i18n/locales/lt/messages.json +1 -0
- package/src/components/i18n/locales/lv/messages.json +1 -0
- package/src/components/i18n/locales/mk/messages.json +1 -0
- package/src/components/i18n/locales/ml/messages.json +1 -0
- package/src/components/i18n/locales/mn/messages.json +1 -0
- package/src/components/i18n/locales/mr/messages.json +1 -0
- package/src/components/i18n/locales/ms/messages.json +1 -0
- package/src/components/i18n/locales/my/messages.json +1 -0
- package/src/components/i18n/locales/ne/messages.json +1 -0
- package/src/components/i18n/locales/nl/messages.json +1 -0
- package/src/components/i18n/locales/no/messages.json +1 -0
- package/src/components/i18n/locales/pa/messages.json +1 -0
- package/src/components/i18n/locales/pl/messages.json +1 -0
- package/src/components/i18n/locales/ps/messages.json +1 -0
- package/src/components/i18n/locales/pt/messages.json +1 -0
- package/src/components/i18n/locales/ro/messages.json +1 -0
- package/src/components/i18n/locales/ru/messages.json +1 -0
- package/src/components/i18n/locales/sd/messages.json +1 -0
- package/src/components/i18n/locales/si/messages.json +1 -0
- package/src/components/i18n/locales/sk/messages.json +1 -0
- package/src/components/i18n/locales/sl/messages.json +1 -0
- package/src/components/i18n/locales/sq/messages.json +1 -0
- package/src/components/i18n/locales/sr/messages.json +1 -0
- package/src/components/i18n/locales/sv/messages.json +1 -0
- package/src/components/i18n/locales/sw/messages.json +1 -0
- package/src/components/i18n/locales/ta/messages.json +1 -0
- package/src/components/i18n/locales/te/messages.json +1 -0
- package/src/components/i18n/locales/th/messages.json +1 -0
- package/src/components/i18n/locales/tr/messages.json +1 -0
- package/src/components/i18n/locales/ug/messages.json +1 -0
- package/src/components/i18n/locales/uk/messages.json +1 -0
- package/src/components/i18n/locales/ur/messages.json +1 -0
- package/src/components/i18n/locales/vi/messages.json +1 -0
- package/src/components/i18n/locales/yi/messages.json +1 -0
- package/src/components/i18n/locales/zh/messages.json +1 -0
- package/src/components/icons/index.ts +22 -27
- package/src/components/modules/toolbar/positioning.ts +11 -2
- package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.ts +11 -0
- package/src/components/utils/popover/popover-abstract.ts +7 -0
- package/src/tools/code/constants.ts +24 -12
- package/src/tools/code/dom-builder.ts +122 -89
- package/src/tools/code/index.ts +251 -104
- package/src/tools/code/language-detector.ts +118 -0
- package/types/tools/block-tool.d.ts +10 -0
- package/types/utils/popover/popover-item.d.ts +6 -0
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "ठूलो",
|
|
162
162
|
"tools.code.codeTab": "कोड",
|
|
163
163
|
"tools.code.previewTab": "पूर्वावलोकन",
|
|
164
|
+
"tools.code.sideBySide": "एकैसाथ",
|
|
164
165
|
"tools.table.placement": "स्थान",
|
|
165
166
|
"tools.table.placementTopLeft": "माथि बायाँ",
|
|
166
167
|
"tools.table.placementTopCenter": "माथि केन्द्र",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Groot",
|
|
162
162
|
"tools.code.codeTab": "Code",
|
|
163
163
|
"tools.code.previewTab": "Voorbeeld",
|
|
164
|
+
"tools.code.sideBySide": "Naast elkaar",
|
|
164
165
|
"tools.table.placement": "Positie",
|
|
165
166
|
"tools.table.placementTopLeft": "Boven links",
|
|
166
167
|
"tools.table.placementTopCenter": "Boven midden",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Stor",
|
|
162
162
|
"tools.code.codeTab": "Kode",
|
|
163
163
|
"tools.code.previewTab": "Forhåndsvisning",
|
|
164
|
+
"tools.code.sideBySide": "Side om side",
|
|
164
165
|
"tools.table.placement": "Plassering",
|
|
165
166
|
"tools.table.placementTopLeft": "Øverst til venstre",
|
|
166
167
|
"tools.table.placementTopCenter": "Øverst i midten",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "ਵੱਡਾ",
|
|
162
162
|
"tools.code.codeTab": "ਕੋਡ",
|
|
163
163
|
"tools.code.previewTab": "ਪੂਰਵ-ਦ੍ਰਿਸ਼",
|
|
164
|
+
"tools.code.sideBySide": "ਨਾਲ-ਨਾਲ",
|
|
164
165
|
"tools.table.placement": "ਸਥਿਤੀ",
|
|
165
166
|
"tools.table.placementTopLeft": "ਉੱਪਰ ਖੱਬੇ",
|
|
166
167
|
"tools.table.placementTopCenter": "ਉੱਪਰ ਕੇਂਦਰ",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Duży",
|
|
162
162
|
"tools.code.codeTab": "Kod",
|
|
163
163
|
"tools.code.previewTab": "Podgląd",
|
|
164
|
+
"tools.code.sideBySide": "Obok siebie",
|
|
164
165
|
"tools.table.placement": "Pozycja",
|
|
165
166
|
"tools.table.placementTopLeft": "Góra lewo",
|
|
166
167
|
"tools.table.placementTopCenter": "Góra środek",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "لوی",
|
|
162
162
|
"tools.code.codeTab": "کوډ",
|
|
163
163
|
"tools.code.previewTab": "مخکتنه",
|
|
164
|
+
"tools.code.sideBySide": "بېل بې بېله",
|
|
164
165
|
"tools.table.placement": "ځای",
|
|
165
166
|
"tools.table.placementTopLeft": "پورته کیڼ",
|
|
166
167
|
"tools.table.placementTopCenter": "پورته مینځ",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Grande",
|
|
162
162
|
"tools.code.codeTab": "Código",
|
|
163
163
|
"tools.code.previewTab": "Pré-visualização",
|
|
164
|
+
"tools.code.sideBySide": "Lado a lado",
|
|
164
165
|
"tools.table.placement": "Posicionamento",
|
|
165
166
|
"tools.table.placementTopLeft": "Superior esquerdo",
|
|
166
167
|
"tools.table.placementTopCenter": "Superior centro",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Mare",
|
|
162
162
|
"tools.code.codeTab": "Cod",
|
|
163
163
|
"tools.code.previewTab": "Previzualizare",
|
|
164
|
+
"tools.code.sideBySide": "Alăturat",
|
|
164
165
|
"tools.table.placement": "Pozitionare",
|
|
165
166
|
"tools.table.placementTopLeft": "Sus stanga",
|
|
166
167
|
"tools.table.placementTopCenter": "Sus centru",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Большой",
|
|
162
162
|
"tools.code.codeTab": "Код",
|
|
163
163
|
"tools.code.previewTab": "Предпросмотр",
|
|
164
|
+
"tools.code.sideBySide": "Бок о бок",
|
|
164
165
|
"tools.table.placement": "Расположение",
|
|
165
166
|
"tools.table.placementTopLeft": "Сверху слева",
|
|
166
167
|
"tools.table.placementTopCenter": "Сверху по центру",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "وڏو",
|
|
162
162
|
"tools.code.codeTab": "ڪوڊ",
|
|
163
163
|
"tools.code.previewTab": "اڳڀرائي",
|
|
164
|
+
"tools.code.sideBySide": "ڀرسان بہ ڀرسان",
|
|
164
165
|
"tools.table.placement": "جاءِ",
|
|
165
166
|
"tools.table.placementTopLeft": "مٿي کاٻي",
|
|
166
167
|
"tools.table.placementTopCenter": "مٿي وچ",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "විශාල",
|
|
162
162
|
"tools.code.codeTab": "කේතය",
|
|
163
163
|
"tools.code.previewTab": "පූර්ව දර්ශනය",
|
|
164
|
+
"tools.code.sideBySide": "පැත්තටම",
|
|
164
165
|
"tools.table.placement": "ස්ථානගත කිරීම",
|
|
165
166
|
"tools.table.placementTopLeft": "ඉහළ වම",
|
|
166
167
|
"tools.table.placementTopCenter": "ඉහළ මැද",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Veľký",
|
|
162
162
|
"tools.code.codeTab": "Kód",
|
|
163
163
|
"tools.code.previewTab": "Náhľad",
|
|
164
|
+
"tools.code.sideBySide": "Vedľa seba",
|
|
164
165
|
"tools.table.placement": "Umiestnenie",
|
|
165
166
|
"tools.table.placementTopLeft": "Hore vľavo",
|
|
166
167
|
"tools.table.placementTopCenter": "Hore v strede",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Veliko",
|
|
162
162
|
"tools.code.codeTab": "Koda",
|
|
163
163
|
"tools.code.previewTab": "Predogled",
|
|
164
|
+
"tools.code.sideBySide": "Drug ob drugem",
|
|
164
165
|
"tools.table.placement": "Postavitev",
|
|
165
166
|
"tools.table.placementTopLeft": "Zgoraj levo",
|
|
166
167
|
"tools.table.placementTopCenter": "Zgoraj na sredini",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "I madh",
|
|
162
162
|
"tools.code.codeTab": "Kod",
|
|
163
163
|
"tools.code.previewTab": "Shikimi paraprak",
|
|
164
|
+
"tools.code.sideBySide": "Krah për krah",
|
|
164
165
|
"tools.table.placement": "Vendosja",
|
|
165
166
|
"tools.table.placementTopLeft": "Lart majtas",
|
|
166
167
|
"tools.table.placementTopCenter": "Lart në qendër",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Велики",
|
|
162
162
|
"tools.code.codeTab": "Код",
|
|
163
163
|
"tools.code.previewTab": "Преглед",
|
|
164
|
+
"tools.code.sideBySide": "Упоредно",
|
|
164
165
|
"tools.table.placement": "Позиција",
|
|
165
166
|
"tools.table.placementTopLeft": "Горе лево",
|
|
166
167
|
"tools.table.placementTopCenter": "Горе по средини",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Stor",
|
|
162
162
|
"tools.code.codeTab": "Kod",
|
|
163
163
|
"tools.code.previewTab": "Förhandsgranskning",
|
|
164
|
+
"tools.code.sideBySide": "Sida vid sida",
|
|
164
165
|
"tools.table.placement": "Placering",
|
|
165
166
|
"tools.table.placementTopLeft": "Uppe till vänster",
|
|
166
167
|
"tools.table.placementTopCenter": "Uppe i mitten",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Kubwa",
|
|
162
162
|
"tools.code.codeTab": "Msimbo",
|
|
163
163
|
"tools.code.previewTab": "Hakiki",
|
|
164
|
+
"tools.code.sideBySide": "Kando kwa kando",
|
|
164
165
|
"tools.table.placement": "Uwekaji",
|
|
165
166
|
"tools.table.placementTopLeft": "Juu kushoto",
|
|
166
167
|
"tools.table.placementTopCenter": "Juu katikati",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "பெரிய",
|
|
162
162
|
"tools.code.codeTab": "குறியீடு",
|
|
163
163
|
"tools.code.previewTab": "முன்னோட்டம்",
|
|
164
|
+
"tools.code.sideBySide": "பக்கவாட்டில்",
|
|
164
165
|
"tools.table.placement": "இட அமைப்பு",
|
|
165
166
|
"tools.table.placementTopLeft": "மேல் இடது",
|
|
166
167
|
"tools.table.placementTopCenter": "மேல் நடு",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "పెద్ద",
|
|
162
162
|
"tools.code.codeTab": "కోడ్",
|
|
163
163
|
"tools.code.previewTab": "ముందుచూపు",
|
|
164
|
+
"tools.code.sideBySide": "ప్రక్కన ప్రక్కన",
|
|
164
165
|
"tools.table.placement": "స్థానం",
|
|
165
166
|
"tools.table.placementTopLeft": "పైన ఎడమ",
|
|
166
167
|
"tools.table.placementTopCenter": "పైన మధ్య",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "ใหญ่",
|
|
162
162
|
"tools.code.codeTab": "โค้ด",
|
|
163
163
|
"tools.code.previewTab": "ตัวอย่าง",
|
|
164
|
+
"tools.code.sideBySide": "เคียงข้างกัน",
|
|
164
165
|
"tools.table.placement": "ตำแหน่ง",
|
|
165
166
|
"tools.table.placementTopLeft": "บนซ้าย",
|
|
166
167
|
"tools.table.placementTopCenter": "บนกลาง",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Büyük",
|
|
162
162
|
"tools.code.codeTab": "Kod",
|
|
163
163
|
"tools.code.previewTab": "Önizleme",
|
|
164
|
+
"tools.code.sideBySide": "Yan yana",
|
|
164
165
|
"tools.table.placement": "Yerleşim",
|
|
165
166
|
"tools.table.placementTopLeft": "Sol üst",
|
|
166
167
|
"tools.table.placementTopCenter": "Orta üst",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "چوڭ",
|
|
162
162
|
"tools.code.codeTab": "كود",
|
|
163
163
|
"tools.code.previewTab": "ئالدىن كۆرۈش",
|
|
164
|
+
"tools.code.sideBySide": "يانمۇ-يان",
|
|
164
165
|
"tools.table.placement": "ئورنى",
|
|
165
166
|
"tools.table.placementTopLeft": "ئۈستى سول",
|
|
166
167
|
"tools.table.placementTopCenter": "ئۈستى ئوتتۇرا",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Великий",
|
|
162
162
|
"tools.code.codeTab": "Код",
|
|
163
163
|
"tools.code.previewTab": "Попередній перегляд",
|
|
164
|
+
"tools.code.sideBySide": "Поруч",
|
|
164
165
|
"tools.table.placement": "Розташування",
|
|
165
166
|
"tools.table.placementTopLeft": "Зверху зліва",
|
|
166
167
|
"tools.table.placementTopCenter": "Зверху по центру",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "بڑا",
|
|
162
162
|
"tools.code.codeTab": "کوڈ",
|
|
163
163
|
"tools.code.previewTab": "پیش نظارہ",
|
|
164
|
+
"tools.code.sideBySide": "ساتھ ساتھ",
|
|
164
165
|
"tools.table.placement": "جگہ",
|
|
165
166
|
"tools.table.placementTopLeft": "اوپر بائیں",
|
|
166
167
|
"tools.table.placementTopCenter": "اوپر درمیان",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "Lớn",
|
|
162
162
|
"tools.code.codeTab": "Mã",
|
|
163
163
|
"tools.code.previewTab": "Xem trước",
|
|
164
|
+
"tools.code.sideBySide": "Song song",
|
|
164
165
|
"tools.table.placement": "Vị trí",
|
|
165
166
|
"tools.table.placementTopLeft": "Trên trái",
|
|
166
167
|
"tools.table.placementTopCenter": "Trên giữa",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "גרויס",
|
|
162
162
|
"tools.code.codeTab": "קאָד",
|
|
163
163
|
"tools.code.previewTab": "פֿאָרויסבליק",
|
|
164
|
+
"tools.code.sideBySide": "זייט ביי זייט",
|
|
164
165
|
"tools.table.placement": "אָרט",
|
|
165
166
|
"tools.table.placementTopLeft": "אויבן לינקס",
|
|
166
167
|
"tools.table.placementTopCenter": "אויבן מיטן",
|
|
@@ -161,6 +161,7 @@
|
|
|
161
161
|
"tools.quote.largeSize": "大",
|
|
162
162
|
"tools.code.codeTab": "代码",
|
|
163
163
|
"tools.code.previewTab": "预览",
|
|
164
|
+
"tools.code.sideBySide": "并排",
|
|
164
165
|
"tools.table.placement": "位置",
|
|
165
166
|
"tools.table.placementTopLeft": "左上",
|
|
166
167
|
"tools.table.placementTopCenter": "居中上",
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
// Check/Confirm icon
|
|
2
|
+
export const IconCheck = `
|
|
3
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
4
|
+
<path d="m4.5 10.5 4 4 7-8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
6
|
+
`;
|
|
7
|
+
|
|
8
|
+
// Sparkle/Auto-detect icon — 4-pointed star (modern AI/auto symbol)
|
|
9
|
+
export const IconWand = `
|
|
10
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
11
|
+
<path d="M10 2 Q10 10 18 10 Q10 10 10 18 Q10 10 2 10 Q10 10 10 2Z" stroke="currentColor" stroke-width="1.25" stroke-linejoin="round"/>
|
|
12
|
+
</svg>
|
|
13
|
+
`;
|
|
14
|
+
|
|
1
15
|
// Cross/Close icon
|
|
2
16
|
export const IconCross = `
|
|
3
17
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -102,15 +116,6 @@ export const IconChevronDown = `
|
|
|
102
116
|
</svg>
|
|
103
117
|
`;
|
|
104
118
|
|
|
105
|
-
// Ellipsis (horizontal three dots) icon
|
|
106
|
-
export const IconEllipsis = `
|
|
107
|
-
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
108
|
-
<circle cx="5" cy="10" r="1.25" fill="currentColor"/>
|
|
109
|
-
<circle cx="10" cy="10" r="1.25" fill="currentColor"/>
|
|
110
|
-
<circle cx="15" cy="10" r="1.25" fill="currentColor"/>
|
|
111
|
-
</svg>
|
|
112
|
-
`;
|
|
113
|
-
|
|
114
119
|
// Chevron Left icon
|
|
115
120
|
export const IconChevronLeft = `
|
|
116
121
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -497,24 +502,6 @@ export const IconCodeBlock = `
|
|
|
497
502
|
</svg>
|
|
498
503
|
`;
|
|
499
504
|
|
|
500
|
-
// Line wrap icon
|
|
501
|
-
export const IconWrap = `
|
|
502
|
-
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
503
|
-
<path d="M4 6h12M4 10h8a2 2 0 0 1 2 2v0a2 2 0 0 1-2 2H9m0 0 2-2m-2 2 2 2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
|
504
|
-
</svg>
|
|
505
|
-
`;
|
|
506
|
-
|
|
507
|
-
// Line numbers icon (gutter marks + code lines)
|
|
508
|
-
export const IconLineNumbers = `
|
|
509
|
-
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
510
|
-
<path d="M7 4v12" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" opacity="0.35"/>
|
|
511
|
-
<circle cx="4.5" cy="7" r="0.75" fill="currentColor"/>
|
|
512
|
-
<circle cx="4.5" cy="10" r="0.75" fill="currentColor"/>
|
|
513
|
-
<circle cx="4.5" cy="13" r="0.75" fill="currentColor"/>
|
|
514
|
-
<path d="M10 7h6M10 10h6M10 13h4" stroke="currentColor" stroke-width="1.25" stroke-linecap="round"/>
|
|
515
|
-
</svg>
|
|
516
|
-
`;
|
|
517
|
-
|
|
518
505
|
// Emoji Picker Category Icons
|
|
519
506
|
|
|
520
507
|
// Star icon (Callout category)
|
|
@@ -617,6 +604,14 @@ export const IconMergeCells = `
|
|
|
617
604
|
// Split cell icon (one cell splitting into two)
|
|
618
605
|
export const IconSplitCell = `<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"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M12 3v18"/><path d="M8 8l4 4-4 4"/><path d="M16 8l-4 4 4 4"/></svg>`;
|
|
619
606
|
|
|
607
|
+
// Split view icon (two panels side by side)
|
|
608
|
+
export const IconSplitView = `
|
|
609
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
610
|
+
<rect x="3" y="4" width="6" height="12" rx="1.5" stroke="currentColor" stroke-width="1.25"/>
|
|
611
|
+
<rect x="11" y="4" width="6" height="12" rx="1.5" stroke="currentColor" stroke-width="1.25"/>
|
|
612
|
+
</svg>
|
|
613
|
+
`;
|
|
614
|
+
|
|
620
615
|
// Placement icon (3x3 alignment dot grid)
|
|
621
616
|
export const IconPlacement = `
|
|
622
617
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -77,15 +77,24 @@ export class ToolbarPositioner {
|
|
|
77
77
|
*/
|
|
78
78
|
const textElement = listItemElement?.querySelector('[contenteditable]');
|
|
79
79
|
const pluginsContent = targetBlock.pluginsContent;
|
|
80
|
+
/**
|
|
81
|
+
* If the tool provides a toolbar anchor element, use it instead of searching
|
|
82
|
+
* for a contenteditable descendant. This allows tools with deeply nested
|
|
83
|
+
* editable areas (e.g., code block with a header above the code) to control
|
|
84
|
+
* where the toolbar centers vertically.
|
|
85
|
+
*/
|
|
86
|
+
const toolbarAnchor = !textElement && !listItemElement
|
|
87
|
+
? targetBlock.getToolbarAnchorElement()
|
|
88
|
+
: undefined;
|
|
80
89
|
/**
|
|
81
90
|
* If pluginsContent is a non-editable container (e.g. a toggle heading wrapper <div>),
|
|
82
91
|
* use its first contenteditable descendant for accurate line-height centering.
|
|
83
92
|
*/
|
|
84
93
|
const editableDescendant =
|
|
85
|
-
!pluginsContent.matches('[contenteditable]')
|
|
94
|
+
!toolbarAnchor && !pluginsContent.matches('[contenteditable]')
|
|
86
95
|
? (pluginsContent.querySelector('[contenteditable]') ?? null)
|
|
87
96
|
: null;
|
|
88
|
-
const contentElement = textElement ?? listItemElement ?? editableDescendant ?? pluginsContent;
|
|
97
|
+
const contentElement = textElement ?? listItemElement ?? toolbarAnchor ?? editableDescendant ?? pluginsContent;
|
|
89
98
|
const contentRect = contentElement.getBoundingClientRect();
|
|
90
99
|
const contentOffset = contentRect.top - holderRect.top;
|
|
91
100
|
|
|
@@ -281,6 +281,17 @@ export class PopoverItemDefault extends PopoverItem {
|
|
|
281
281
|
this.nodes.secondaryLabelEl = secondaryEl;
|
|
282
282
|
}
|
|
283
283
|
|
|
284
|
+
// Trailing icon (right-side indicator, e.g. checkmark)
|
|
285
|
+
if (params.trailingIcon) {
|
|
286
|
+
const trailingEl = document.createElement('div');
|
|
287
|
+
|
|
288
|
+
trailingEl.className = 'ml-auto shrink-0 flex items-center justify-center [&_svg]:w-icon [&_svg]:h-icon';
|
|
289
|
+
trailingEl.setAttribute('data-blok-testid', 'popover-item-trailing-icon');
|
|
290
|
+
trailingEl.innerHTML = params.trailingIcon;
|
|
291
|
+
|
|
292
|
+
root.appendChild(trailingEl);
|
|
293
|
+
}
|
|
294
|
+
|
|
284
295
|
// Chevron
|
|
285
296
|
const showChevron = this.hasChildren && !this.isChevronHidden;
|
|
286
297
|
|
|
@@ -102,6 +102,13 @@ export abstract class PopoverAbstract<Nodes extends PopoverNodes = PopoverNodes>
|
|
|
102
102
|
return this.nodes.popover;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Whether the popover is currently shown
|
|
107
|
+
*/
|
|
108
|
+
public get isShown(): boolean {
|
|
109
|
+
return this.nodes.popover.hasAttribute(DATA_ATTR.popoverOpened);
|
|
110
|
+
}
|
|
111
|
+
|
|
105
112
|
/**
|
|
106
113
|
* Open popover
|
|
107
114
|
*/
|
|
@@ -5,7 +5,6 @@ export const PLACEHOLDER_KEY = 'tools.code.placeholder';
|
|
|
5
5
|
export const LANGUAGE_KEY = 'tools.code.language';
|
|
6
6
|
export const COPIED_KEY = 'tools.code.copied';
|
|
7
7
|
export const COPY_CODE_KEY = 'tools.code.copyCode';
|
|
8
|
-
export const WRAP_LINES_KEY = 'tools.code.wrapLines';
|
|
9
8
|
export const SEARCH_LANGUAGE_KEY = 'tools.code.searchLanguage';
|
|
10
9
|
|
|
11
10
|
// Default values
|
|
@@ -53,10 +52,12 @@ export const LANGUAGES: LanguageEntry[] = [
|
|
|
53
52
|
];
|
|
54
53
|
|
|
55
54
|
// CSS — Tailwind classes
|
|
56
|
-
export const WRAPPER_STYLES = 'flex flex-col rounded-
|
|
57
|
-
export const HEADER_STYLES = 'flex items-center gap-1 px-3 py-1.5
|
|
58
|
-
export const LANGUAGE_BUTTON_STYLES = 'px-1.5 py-0.5 rounded cursor-pointer bg-transparent border-0 text-xs text-gray-text font-medium transition-colors can-hover:hover:bg-item-hover-bg select-none';
|
|
55
|
+
export const WRAPPER_STYLES = 'group/code flex flex-col rounded-xl border border-border-secondary bg-bg-secondary overflow-hidden my-2';
|
|
56
|
+
export const HEADER_STYLES = 'flex items-center gap-1 px-3 py-1.5 text-xs text-gray-text';
|
|
57
|
+
export const LANGUAGE_BUTTON_STYLES = 'inline-flex items-center px-1.5 py-0.5 rounded cursor-pointer bg-transparent border-0 text-xs text-gray-text font-medium transition-colors can-hover:hover:bg-item-hover-bg select-none';
|
|
58
|
+
export const HEADER_CONTROLS_STYLES = 'flex items-center gap-1 opacity-0 group-hover/code:opacity-100 transition-opacity';
|
|
59
59
|
export const HEADER_BUTTON_STYLES = 'p-1 rounded cursor-pointer bg-transparent border-0 text-gray-text transition-colors can-hover:hover:bg-item-hover-bg flex items-center justify-center';
|
|
60
|
+
export const HEADER_BUTTON_MATCHED_STYLES = 'p-1.5 rounded-lg cursor-pointer bg-transparent border-0 text-gray-text transition-colors can-hover:hover:bg-item-hover-bg flex items-center justify-center';
|
|
60
61
|
export const CODE_AREA_STYLES = 'block px-4 py-3 font-mono text-sm leading-relaxed outline-hidden whitespace-pre-wrap overflow-x-auto min-h-[1.5em]';
|
|
61
62
|
export const COPIED_FEEDBACK_STYLES = 'text-xs text-gray-text font-medium select-none';
|
|
62
63
|
|
|
@@ -76,10 +77,24 @@ export const PREVIEW_AREA_STYLES = 'px-4 py-3 overflow-x-auto min-h-[1.5em] flex
|
|
|
76
77
|
// i18n key — preview toggle
|
|
77
78
|
export const PREVIEW_TOGGLE_KEY = 'tools.code.previewToggle';
|
|
78
79
|
|
|
79
|
-
//
|
|
80
|
-
export const
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
// i18n key — side-by-side view mode
|
|
81
|
+
export const SIDE_BY_SIDE_KEY = 'tools.code.sideBySide';
|
|
82
|
+
|
|
83
|
+
// View mode type
|
|
84
|
+
export type CodeViewMode = 'code' | 'preview' | 'split';
|
|
85
|
+
|
|
86
|
+
// CSS — view mode segmented control
|
|
87
|
+
export const VIEW_MODE_CONTAINER_STYLES = 'flex items-center rounded-lg border border-border-secondary p-0.5 gap-0.5';
|
|
88
|
+
export const VIEW_MODE_BUTTON_STYLES = 'p-1 rounded cursor-pointer bg-transparent border-0 text-gray-text transition-colors flex items-center justify-center';
|
|
89
|
+
export const VIEW_MODE_BUTTON_ACTIVE_STYLES = 'p-1 rounded cursor-pointer bg-item-hover-bg border-0 text-primary transition-colors flex items-center justify-center';
|
|
90
|
+
// Preview icon is 16x16 (vs 20x20 for code/split), so extra 2px padding keeps containers equal
|
|
91
|
+
export const VIEW_MODE_PREVIEW_BUTTON_STYLES = 'p-[6px] rounded cursor-pointer bg-transparent border-0 text-gray-text transition-colors flex items-center justify-center';
|
|
92
|
+
export const VIEW_MODE_PREVIEW_BUTTON_ACTIVE_STYLES = 'p-[6px] rounded cursor-pointer bg-item-hover-bg border-0 text-primary transition-colors flex items-center justify-center';
|
|
93
|
+
|
|
94
|
+
// CSS — split container
|
|
95
|
+
export const SPLIT_CONTAINER_STYLES = 'flex flex-col overflow-hidden';
|
|
96
|
+
export const SPLIT_CONTAINER_SPLIT_STYLES = 'flex flex-row overflow-hidden';
|
|
97
|
+
export const SPLIT_HALF_STYLES = 'flex-1 min-w-0 overflow-hidden';
|
|
83
98
|
|
|
84
99
|
// Shiki theme names for syntax highlighting
|
|
85
100
|
export const SHIKI_LIGHT_THEME = 'one-light';
|
|
@@ -95,10 +110,7 @@ export const HIGHLIGHTABLE_LANGUAGES = new Set(
|
|
|
95
110
|
.filter((id) => id !== DEFAULT_LANGUAGE)
|
|
96
111
|
);
|
|
97
112
|
|
|
98
|
-
// i18n key — line numbers toggle
|
|
99
|
-
export const LINE_NUMBERS_KEY = 'tools.code.lineNumbers';
|
|
100
|
-
|
|
101
113
|
// CSS — line number gutter
|
|
102
114
|
export const CODE_BODY_STYLES = 'flex overflow-hidden';
|
|
103
|
-
export const GUTTER_STYLES = 'select-none text-right pr-3 py-3 font-mono text-sm leading-relaxed text-gray-text/40
|
|
115
|
+
export const GUTTER_STYLES = 'select-none text-right pl-4 pr-3 py-3 font-mono text-sm leading-relaxed text-gray-text/40 shrink-0';
|
|
104
116
|
export const GUTTER_LINE_STYLES = 'leading-relaxed';
|