@layers-app/editor 0.7.32 → 0.7.34
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 +0 -111
- package/dist/index.cjs +2 -2
- package/dist/index.d.ts +1 -4
- package/dist/index.js +2 -2
- package/dist/{layers.CzpzR4a6.js → layers.-8wNkCIl.js} +1 -1
- package/dist/{layers.CKm3Mequ.js → layers.0Llql3EY.js} +1 -1
- package/dist/{layers.1o7eQNK4.js → layers.1PLUaO9U.js} +1 -1
- package/dist/{layers.VEoGoHVT.js → layers.33WFAbMK.js} +1 -1
- package/dist/{layers.D-tn1p_L.js → layers.3X48EpaK.js} +1 -1
- package/dist/{layers.DEiaU_iA.js → layers.5NjUhAYm.js} +1 -1
- package/dist/{layers.yUR0I7W-.js → layers.9iD_2err.js} +3 -3
- package/dist/{layers.CPYx0h9H.js → layers.ADbhcDC8.js} +1 -1
- package/dist/{layers.BEP_ote2.js → layers.AgYKEXya.js} +1 -1
- package/dist/{layers.CI__a34u.js → layers.B-zo9DOK.js} +1 -1
- package/dist/{layers.D6xGM40b.js → layers.B1-lEICK.js} +1 -1
- package/dist/{layers.KjBuhpjz.js → layers.B1_okY6B.js} +1 -1
- package/dist/{layers.X8L4tA2U.js → layers.B2TfAUDq.js} +1 -1
- package/dist/{layers.8EJbe2tZ.js → layers.B3x0OO1x.js} +1 -1
- package/dist/{layers.D8zcD9DL.js → layers.B7_kypjh.js} +1 -1
- package/dist/{layers.DaSId6SX.js → layers.B9-JvsH6.js} +4 -4
- package/dist/{layers.AZEw2W-d.js → layers.BB2z2nBq.js} +1 -1
- package/dist/{layers.DkhFDJWD.js → layers.BCAKv0tV.js} +1 -1
- package/dist/{layers.DG_kaadG.js → layers.BDehwm3_.js} +1 -1
- package/dist/{layers.DsfdFUb9.js → layers.BExkYbaA.js} +1 -1
- package/dist/{layers.BfMTwbE8.js → layers.BExre5B-.js} +1 -1
- package/dist/{layers.BWOr9GF1.js → layers.BFkaYeIA.js} +2 -2
- package/dist/{layers.DvnswQhz.js → layers.BJV0EFWj.js} +1 -1
- package/dist/{layers.Wj3JqKHm.js → layers.BKUVmETX.js} +1 -1
- package/dist/layers.BLNMBQe2.js +1 -0
- package/dist/{layers.CjxAYc2u.js → layers.BLywyh4q.js} +1 -1
- package/dist/{layers.fxS5-TXs.js → layers.BM70TOTb.js} +2 -2
- package/dist/{layers.D3J_XYZi.js → layers.BMRjz8EW.js} +1 -1
- package/dist/{layers.C4uidQNj.js → layers.BMzM3zqU.js} +1 -1
- package/dist/{layers.Dkz2MTHO.js → layers.BPB-vheI.js} +3 -3
- package/dist/{layers.Bm-MEenb.js → layers.BPBitSXx.js} +1 -1
- package/dist/{layers.CstJMZHR.js → layers.BRPf__1x.js} +1 -1
- package/dist/{layers.Cr-H54wf.js → layers.BRggu521.js} +1 -1
- package/dist/layers.BSRwLRML.js +389 -0
- package/dist/{layers.C3nVe76N.js → layers.BShPM1qK.js} +1 -1
- package/dist/{layers.CpVgY4HD.js → layers.BVpFtmAV.js} +1 -1
- package/dist/{layers.DqyXV9Xx.js → layers.BZ5QXFAm.js} +1 -1
- package/dist/{layers.BTUEIrfH.js → layers.BbHAAc1B.js} +1 -1
- package/dist/{layers.CxZodaf9.js → layers.BbWd0Etw.js} +1 -1
- package/dist/{layers.D4NYgE0g.js → layers.BcV_K4B_.js} +3 -3
- package/dist/{layers.DLqUc4Eq.js → layers.Bcg4Or5b.js} +1 -1
- package/dist/{layers.CSlVizFF.js → layers.Bcjy4AkJ.js} +1 -1
- package/dist/{layers.wvNeXJ4U.js → layers.Bdgn_udU.js} +1 -1
- package/dist/{layers.Da1oQu78.js → layers.Bhr-9KN7.js} +3 -3
- package/dist/{layers.BWKkvLu-.js → layers.BhuNiY5G.js} +1 -1
- package/dist/{layers.DoPRC_mL.js → layers.BkNQg_PR.js} +1 -1
- package/dist/{layers.D7TQbjS6.js → layers.BkeujtjP.js} +1 -1
- package/dist/{layers.DZuQqaeH.js → layers.Bl-tIUGL.js} +1 -1
- package/dist/{layers.BsVTiHv4.js → layers.BmMyEhhp.js} +1 -1
- package/dist/{layers.B8Ztwk7W.js → layers.BmfSTMvE.js} +1 -1
- package/dist/layers.Bpq1ceJG.js +1 -0
- package/dist/{layers.CR30Xfc7.js → layers.BpsbbuXA.js} +1 -1
- package/dist/{layers.BHp5bzWk.js → layers.Br7YGBw8.js} +1 -1
- package/dist/{layers.DAsK6fB-.js → layers.BvqNefRb.js} +1 -1
- package/dist/{layers.Dc__ACPf.js → layers.BwAX_8yq.js} +1 -1
- package/dist/{layers.RBHSrJFp.js → layers.Bwx5XcaR.js} +1 -1
- package/dist/{layers.ByUkkCcx.js → layers.BxokyTLO.js} +2 -2
- package/dist/{layers.C-s4JEW_.js → layers.ByRrvT3W.js} +1 -1
- package/dist/{layers.B6eMODFB.js → layers.Bya1QVer.js} +1 -1
- package/dist/{layers.Bww8DxJe.js → layers.BzJ3AVQ3.js} +1 -1
- package/dist/{layers.20kSPd-K.js → layers.C0RGrY7q.js} +1 -1
- package/dist/{layers.Dbs5vbf0.js → layers.C0ednk-4.js} +1 -1
- package/dist/{layers.CfVmQRwx.js → layers.C0qcL-Tp.js} +1 -1
- package/dist/{layers.BqpySmZP.js → layers.C0wC5FBG.js} +1 -1
- package/dist/{layers.BPYQx41p.js → layers.C1WGgN9B.js} +1 -1
- package/dist/{layers.kF42cqxd.js → layers.C3huaH2v.js} +1 -1
- package/dist/{layers.DgM239Ba.js → layers.C5tkDodE.js} +3 -3
- package/dist/{layers.n-0FG6Op.js → layers.C7YlPmRs.js} +1 -1
- package/dist/{layers.Dr9bSyHL.js → layers.C8ApY1BM.js} +1 -1
- package/dist/{layers.BrlnfNfQ.js → layers.C8Fl8rNH.js} +1 -1
- package/dist/{layers.gjeo_rKT.js → layers.C9dy79Ts.js} +1 -1
- package/dist/{layers.Dmy9hrjo.js → layers.CA8YCA64.js} +1 -1
- package/dist/{layers.6goIo5Cv.js → layers.CAGD0vlj.js} +1 -1
- package/dist/{layers.BQpTKbGb.js → layers.CC2p7ivD.js} +1 -1
- package/dist/{layers.CavyVULr.js → layers.CEsI2B00.js} +1 -1
- package/dist/{layers.BOzRXoUR.js → layers.CGU9PRv5.js} +1 -1
- package/dist/{layers.C2Hsgih_.js → layers.CI1h3z88.js} +1 -1
- package/dist/{layers.DmVdzhtc.js → layers.CJ5YLweA.js} +1 -1
- package/dist/{layers.CqM7oJKa.js → layers.CJLlUx-O.js} +1 -1
- package/dist/{layers.BZ-CLG1Q.js → layers.CNlTcL6f.js} +1 -1
- package/dist/{layers.DfS3dYc2.js → layers.CPiigq_o.js} +1 -1
- package/dist/{layers.C_O9_hxr.js → layers.CQE3v-Cu.js} +1 -1
- package/dist/{layers.BsPrfsCa.js → layers.CRABjUdL.js} +1 -1
- package/dist/{layers.5HUScLIq.js → layers.CRo6_Ncu.js} +1 -1
- package/dist/{layers.DjyzJyfL.js → layers.CSHuJWnq.js} +1 -1
- package/dist/{layers.B-k7OpCY.js → layers.CSkA-Fbr.js} +1 -1
- package/dist/{layers.9bAl5Wj5.js → layers.CVJTPlcq.js} +1 -1
- package/dist/{layers.CMctiGFk.js → layers.CXSh_TPF.js} +4 -4
- package/dist/{layers.BK7ecMjB.js → layers.CXWuJ_qy.js} +1 -1
- package/dist/{layers.Dv5kJVo7.js → layers.CYmNr6fn.js} +1 -1
- package/dist/{layers.NFO9fKdV.js → layers.CZP-vd9z.js} +1 -1
- package/dist/{layers.DDSvUOXH.js → layers.Cay-Z6FF.js} +1 -1
- package/dist/{layers.BRQgc6Gz.js → layers.CayJugne.js} +1 -1
- package/dist/{layers.CC46ZgHx.js → layers.CbEBTEI_.js} +1 -1
- package/dist/{layers.BRHmJfCZ.js → layers.CdRlHMHp.js} +1 -1
- package/dist/{layers.DTvlLen2.js → layers.CfKckmXK.js} +1 -1
- package/dist/{layers.DXgyDGQi.js → layers.Cfe3y_F8.js} +2 -2
- package/dist/{layers.BFeD6IQX.js → layers.CgZIORZs.js} +1 -1
- package/dist/{layers.C6em753C.js → layers.Ch1R_MIw.js} +1 -1
- package/dist/{layers.mZfTzc20.js → layers.ChvFR0jW.js} +2 -2
- package/dist/{layers.Bj87v4v1.js → layers.Ci3mYOGn.js} +1 -1
- package/dist/{layers.DWLeZlUo.js → layers.CibYmzs_.js} +1 -1
- package/dist/{layers.B7BACyd-.js → layers.Ciu3sGEo.js} +1 -1
- package/dist/{layers.DUYFjZX2.js → layers.CjTw5xVH.js} +1 -1
- package/dist/{layers.DaOWb5LX.js → layers.CjlqU6m6.js} +1 -1
- package/dist/{layers.BxINUhr9.js → layers.ClV2QF9g.js} +4 -4
- package/dist/{layers.BAL91NSp.js → layers.Cm-uAokK.js} +3 -3
- package/dist/{layers.DzArYDtz.js → layers.CpnvnuJB.js} +1 -1
- package/dist/{layers.DvvUcEua.js → layers.CrzPLYJJ.js} +4 -4
- package/dist/{layers.1aK6rmRN.js → layers.CsenI_Z-.js} +1 -1
- package/dist/{layers.Cqo9jA2Q.js → layers.CspQpDQt.js} +1 -1
- package/dist/{layers.CNXl4fwF.js → layers.CuX4uFWi.js} +1 -1
- package/dist/{layers.BZZrr3z6.js → layers.Cuc_uSuY.js} +1 -1
- package/dist/{layers.l1ApPfVW.js → layers.CvD0j-FB.js} +1 -1
- package/dist/{layers.CDPwsuMy.js → layers.CvRrpOw2.js} +1 -1
- package/dist/{layers.B0OWpMig.js → layers.Cwflhtuo.js} +1 -1
- package/dist/{layers.Q5GBBYjV.js → layers.Cwn2cpgj.js} +1 -1
- package/dist/{layers.PUWkQFRF.js → layers.CyXOYf5Y.js} +1 -1
- package/dist/{layers.jjaWxDsf.js → layers.CyYsqvfq.js} +1 -1
- package/dist/{layers.CYajnIWI.js → layers.Cyc8Erql.js} +1 -1
- package/dist/{layers.D7O7OG2R.js → layers.CyetLO_E.js} +1 -1
- package/dist/{layers.kg55TrH1.js → layers.D21Sik7j.js} +1 -1
- package/dist/{layers.Zd6eNzOl.js → layers.D3mQ2Zqr.js} +1 -1
- package/dist/layers.D4mcD4r9.js +6 -0
- package/dist/{layers.DTT_75hI.js → layers.D6rp6q_7.js} +5 -5
- package/dist/{layers.g6d4GJQq.js → layers.D74-afO7.js} +1 -1
- package/dist/{layers.Bq1Oplb4.js → layers.D7SY3J0a.js} +1 -1
- package/dist/{layers.BRgv8Nq6.js → layers.D9neHEE7.js} +1 -1
- package/dist/layers.DBAyZgmw.js +8 -0
- package/dist/{layers.BsTInzoH.js → layers.DDqi6zUB.js} +1 -1
- package/dist/{layers.Bfu80pxZ.js → layers.DFGYvdOC.js} +1 -1
- package/dist/{layers.CPvmeGm5.js → layers.DGnVumvg.js} +1 -1
- package/dist/{layers.Dd3266JC.js → layers.DH0wabdu.js} +1 -1
- package/dist/{layers.DLtryPXT.js → layers.DHB2YS6p.js} +1 -1
- package/dist/{layers.rPecloUp.js → layers.DHCcPTrr.js} +1 -1
- package/dist/{layers.CoePYjHf.js → layers.DIDjO39z.js} +1 -1
- package/dist/{layers.BfywUlon.js → layers.DKwPG8Fj.js} +3 -3
- package/dist/{layers.C3R4nNct.js → layers.DNfR1qEM.js} +1 -1
- package/dist/{layers.AYsMW7s5.js → layers.DOZhtfOv.js} +4 -4
- package/dist/{layers.CyflWVLa.js → layers.DOvz0hZM.js} +1 -1
- package/dist/{layers.Bmmo4V5b.js → layers.DQ2b6J4W.js} +1 -1
- package/dist/{layers.BhL93l6T.js → layers.DR0i5DRo.js} +1 -1
- package/dist/{layers.DO7IKb7u.js → layers.DSut9hmH.js} +8 -8
- package/dist/{layers.azjz9s_j.js → layers.DUSqUAHE.js} +2 -2
- package/dist/{layers.CJgTpKNt.js → layers.DUeRJBmm.js} +1 -1
- package/dist/{layers.CBDb6-Ak.js → layers.DUo9IrX-.js} +1 -1
- package/dist/{layers.B4YFav_Z.js → layers.DWSPr-JT.js} +1 -1
- package/dist/{layers.fGsoCsqW.js → layers.DZEop4Mz.js} +5 -5
- package/dist/{layers.5WeEDIrU.js → layers.D_QiCwPv.js} +1 -1
- package/dist/{layers.SkcTNoHC.js → layers.D_m56K-r.js} +1 -1
- package/dist/{layers.Cylt6l36.js → layers.D_sWXYG3.js} +1 -1
- package/dist/{layers.DhFmBDZS.js → layers.DaIkul07.js} +1 -1
- package/dist/{layers.Co5n9P7v.js → layers.DaJz_9_f.js} +1 -1
- package/dist/{layers.F7iQ1P0a.js → layers.Db3GTaVi.js} +1 -1
- package/dist/{layers.DjXZwfeQ.js → layers.DbMzH5f6.js} +3 -3
- package/dist/{layers.B02k1_Kd.js → layers.Dd_lL_4L.js} +1 -1
- package/dist/{layers.JKc9MJ5y.js → layers.Del4wLJw.js} +1 -1
- package/dist/{layers.Bgu7Aqq-.js → layers.Dfwmgg0T.js} +1 -1
- package/dist/{layers.QFiiWp-H.js → layers.Dhb8Ml4D.js} +1 -1
- package/dist/{layers.DaVjF5oU.js → layers.DheEm50_.js} +1 -1
- package/dist/{layers.Bry8uTXO.js → layers.DipAAx7m.js} +1 -1
- package/dist/{layers.-bx-wFg-.js → layers.Diwq5lCz.js} +1 -1
- package/dist/{layers.CrkdQgr9.js → layers.Dk5Ov-Tt.js} +1 -1
- package/dist/{layers.BSDGDqwh.js → layers.DkKb7dJ-.js} +3 -3
- package/dist/{layers.DOycCHOP.js → layers.Do6Au61P.js} +1 -1
- package/dist/{layers.jxoFicyi.js → layers.Dq39xH9G.js} +1 -1
- package/dist/{layers.CfMbEDGH.js → layers.Dq_aAbHE.js} +1 -1
- package/dist/{layers.CvjN3x6U.js → layers.Drt1CSzl.js} +1 -1
- package/dist/{layers.DABOM0jb.js → layers.DtSs9NM0.js} +1 -1
- package/dist/{layers.kFg9ss4k.js → layers.DtvjzNay.js} +1 -1
- package/dist/{layers.MEiAlLxi.js → layers.Dv8A7kUp.js} +1 -1
- package/dist/{layers.BfdO3aYI.js → layers.E7CVanoO.js} +1 -1
- package/dist/{layers.Dt9t4ozu.js → layers.F53qnnIb.js} +1 -1
- package/dist/{layers.DRvLFHpa.js → layers.IE_n7_DI.js} +1 -1
- package/dist/{layers.Cl8Du2Qb.js → layers.IMHrL9Cz.js} +1 -1
- package/dist/{layers.By4kgF1-.js → layers.IWe6x1Ez.js} +1 -1
- package/dist/{layers.T87QGwY6.js → layers.IiwvxRwE.js} +3 -3
- package/dist/{layers.B7j30GzX.js → layers.JohWh2hA.js} +2 -2
- package/dist/{layers.B5PqGPtP.js → layers.Miu8ERnH.js} +4 -4
- package/dist/{layers.DRVul1cd.js → layers.NXmu2Cat.js} +1 -1
- package/dist/{layers.WbxVwvKA.js → layers.NgIRN47k.js} +1 -1
- package/dist/{layers.BgSk7ZtH.js → layers.R3YB-zc-.js} +1 -1
- package/dist/{layers.PQIibcwr.js → layers.Vjglus2t.js} +1 -1
- package/dist/layers.X-c--LZl.js +39319 -0
- package/dist/{layers.CYKNPccx.js → layers.XbwBtUoY.js} +1 -1
- package/dist/{layers.4ejQn3_E.js → layers.Xv3h_EB7.js} +1 -1
- package/dist/{layers.D-DH2vNr.js → layers.Z01BQeho.js} +4 -4
- package/dist/{layers.Cpip3YCS.js → layers._TGnmHqz.js} +3 -3
- package/dist/{layers.kGUgixTb.js → layers._Uis2Zos.js} +25 -25
- package/dist/{layers.xVeJN72y.js → layers._VUEvaXF.js} +1 -1
- package/dist/{layers.pZA-T4z3.js → layers.h6luhQ0X.js} +1 -1
- package/dist/{layers.CLdiNV61.js → layers.hmfEEAq2.js} +1 -1
- package/dist/{layers.Fz7Ibte8.js → layers.ibUMvduy.js} +1 -1
- package/dist/{layers.DKUQFfLk.js → layers.lYDp-_5z.js} +1 -1
- package/dist/{layers.BZx_SY-8.js → layers.ltKOideU.js} +1 -1
- package/dist/{layers.BOkUVLPi.js → layers.mam-SylW.js} +7 -7
- package/dist/{layers.DioKpJHK.js → layers.mi9F-efB.js} +4 -4
- package/dist/{layers.C0zf-MB1.js → layers.mkn0rT3D.js} +1 -1
- package/dist/{layers.DoKpr2ju.js → layers.o3PSx2_M.js} +1 -1
- package/dist/{layers.DDY8cBeb.js → layers.q3Ab5B9s.js} +1 -1
- package/dist/{layers.DhZ8Osw2.js → layers.wtNZxxy9.js} +4 -4
- package/dist/{layers.DQSGdhVq.js → layers.xbNhi31w.js} +4 -4
- package/dist/{layers.C5V0vZPQ.js → layers.xrWJbDg3.js} +1 -1
- package/dist/{layers.B4W-qxlD.js → layers.yUNO4ooh.js} +6 -6
- package/package.json +1 -1
- package/dist/layers.0fzUHoB9.js +0 -26965
- package/dist/layers.C2-0h9Et.js +0 -8
- package/dist/layers.Cb-scVZN.js +0 -1
- package/dist/layers.CyG53NAK.js +0 -1
- package/dist/layers.D56Fduzb.js +0 -6
- package/dist/layers.R8mPlCA0.js +0 -261
- package/dist/layers.b9B2NY7n.js +0 -11690
- package/dist/layers.z2_NYS-s.js +0 -129
package/README.md
CHANGED
|
@@ -426,116 +426,6 @@ For uploading a file or audio, you might need the third parameter "data".
|
|
|
426
426
|
</details>
|
|
427
427
|
|
|
428
428
|
|
|
429
|
-
<details>
|
|
430
|
-
<summary>
|
|
431
|
-
📊 Analytics (onTrack)
|
|
432
|
-
</summary>
|
|
433
|
-
|
|
434
|
-
## Event Tracking
|
|
435
|
-
|
|
436
|
-
The editor can track user actions via the `onTrack` callback. This allows the host application to send analytics events to any provider (Yandex.Metrika, Google Analytics, Mixpanel, etc.) without the editor depending on any specific analytics SDK.
|
|
437
|
-
|
|
438
|
-
### Basic Usage
|
|
439
|
-
|
|
440
|
-
```tsx
|
|
441
|
-
import { trackGoal } from '@layers/hooks/useAnalytics';
|
|
442
|
-
|
|
443
|
-
<Editor
|
|
444
|
-
{...props}
|
|
445
|
-
onTrack={trackGoal}
|
|
446
|
-
/>
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
### Custom Handler
|
|
450
|
-
|
|
451
|
-
```tsx
|
|
452
|
-
const handleTrack = (event: string, params?: Record<string, unknown>) => {
|
|
453
|
-
console.log('Editor event:', event, params);
|
|
454
|
-
|
|
455
|
-
// Send to your analytics provider
|
|
456
|
-
myAnalytics.track(event, params);
|
|
457
|
-
};
|
|
458
|
-
|
|
459
|
-
<Editor
|
|
460
|
-
{...props}
|
|
461
|
-
onTrack={handleTrack}
|
|
462
|
-
/>
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
### Type Signature
|
|
466
|
-
|
|
467
|
-
```ts
|
|
468
|
-
type EditorTrackFn = (
|
|
469
|
-
event: string,
|
|
470
|
-
params?: Record<string, unknown>,
|
|
471
|
-
) => void;
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
### Tracked Events
|
|
475
|
-
|
|
476
|
-
| Event | Trigger | Plugin |
|
|
477
|
-
|-------|---------|--------|
|
|
478
|
-
| `block_table_created` | User inserts a table | BlockFormatDropDown |
|
|
479
|
-
| `block_image_added` | User inserts an image | BlockFormatDropDown |
|
|
480
|
-
| `block_code_created` | User inserts a code block | BlockFormatDropDown |
|
|
481
|
-
| `block_layout_used` | User inserts a grid/layout | BlockFormatDropDown |
|
|
482
|
-
| `block_collapse_created` | User inserts a toggle/collapsible | BlockFormatDropDown |
|
|
483
|
-
| `block_link_inserted` | User inserts a link | ToolbarPlugin |
|
|
484
|
-
| `block_comment_added` | User adds an inline comment | ToolbarPlugin |
|
|
485
|
-
| `ai_menu_opened` | User clicks the AI toolbar button | ToolbarPlugin/AI |
|
|
486
|
-
| `block_heading_created` | User creates a heading (h1-h4) | BlockFormatDropDown |
|
|
487
|
-
| `list_bullet_created` | User creates a bullet list | BlockFormatDropDown |
|
|
488
|
-
| `list_number_created` | User creates a numbered list | BlockFormatDropDown |
|
|
489
|
-
| `list_check_created` | User creates a checklist | BlockFormatDropDown |
|
|
490
|
-
| `block_quote_created` | User creates a quote block | BlockFormatDropDown |
|
|
491
|
-
| `block_divider_inserted` | User inserts a horizontal rule | BlockFormatDropDown |
|
|
492
|
-
| `block_child_docs_inserted` | User inserts child documents block | BlockFormatDropDown |
|
|
493
|
-
| `block_embed_added` | User adds an embed/integration | BlockFormatDropDown |
|
|
494
|
-
| `media_audio_added` | User adds an audio block | BlockFormatDropDown |
|
|
495
|
-
| `media_file_added` | User adds a file block | BlockFormatDropDown |
|
|
496
|
-
| `table_row_added` | User inserts a table row | TableActionMenuPlugin |
|
|
497
|
-
| `table_column_added` | User inserts a table column | TableActionMenuPlugin |
|
|
498
|
-
| `table_row_deleted` | User deletes a table row | TableActionMenuPlugin |
|
|
499
|
-
| `table_column_deleted` | User deletes a table column | TableActionMenuPlugin |
|
|
500
|
-
| `block_duplicated` | User duplicates a block | DraggableBlockPlugin |
|
|
501
|
-
| `block_deleted` | User deletes a block | DraggableBlockPlugin |
|
|
502
|
-
| `text_code_toggled` | User toggles inline code format | ToolbarPlugin |
|
|
503
|
-
| `text_formatting_cleared` | User clears all text formatting | ToolbarPlugin |
|
|
504
|
-
|
|
505
|
-
> Events fire from both the toolbar dropdown menu and the slash command menu (`/`).
|
|
506
|
-
|
|
507
|
-
### What Happens Without onTrack?
|
|
508
|
-
|
|
509
|
-
If `onTrack` is not provided, **nothing happens** — all tracking calls use optional chaining (`onTrack?.('event')`) and are silently skipped. The editor works exactly the same with or without analytics. There is no error, no console warning, and no performance impact.
|
|
510
|
-
|
|
511
|
-
This means:
|
|
512
|
-
- **No analytics SDK required** — the editor is a standalone package with zero analytics dependencies
|
|
513
|
-
- **Safe to omit** — if you don't need tracking, simply don't pass the prop
|
|
514
|
-
- **No counter needed** — the editor itself never calls `ym()`, `gtag()`, or any external API directly
|
|
515
|
-
|
|
516
|
-
### How It Works Internally
|
|
517
|
-
|
|
518
|
-
1. `onTrack` is passed as a prop to `<Editor>` and stored in React Context
|
|
519
|
-
2. Plugins access it via `useContext(Context)` and call `onTrack?.('event_name')`
|
|
520
|
-
3. The host app decides what to do with the event (send to Metrika, log, ignore)
|
|
521
|
-
|
|
522
|
-
```
|
|
523
|
-
Host App Editor Package
|
|
524
|
-
───────── ──────────────
|
|
525
|
-
trackGoal() ──→ onTrack prop ──→ Context.onTrack
|
|
526
|
-
│ │
|
|
527
|
-
│ Plugins call:
|
|
528
|
-
│ onTrack?.('block_table_created')
|
|
529
|
-
│ │
|
|
530
|
-
◄────────────────────────────────┘
|
|
531
|
-
│
|
|
532
|
-
ym(ID, 'reachGoal', 'block_table_created')
|
|
533
|
-
dataLayer.push({ event: 'block_table_created' })
|
|
534
|
-
```
|
|
535
|
-
|
|
536
|
-
</details>
|
|
537
|
-
|
|
538
|
-
|
|
539
429
|
<details>
|
|
540
430
|
<summary>
|
|
541
431
|
👥 Collaboration
|
|
@@ -824,7 +714,6 @@ maxImageSizeError?: () => void - A function that is called if the image exceeds
|
|
|
824
714
|
disable?: boolean - Toggles the editor into read-only mode.
|
|
825
715
|
ws?: { url: string, id: string, user: { color: string, name: string }, getActiveUsers: (users) => void } - WebSocket settings: URL, document ID, current user details, and function to return active users editing the document.
|
|
826
716
|
editorRef?: { current: EditorType | null } - Reference to the editor.
|
|
827
|
-
onTrack?: (event: string, params?: Record<string, unknown>) => void - Optional callback for analytics event tracking. Called when the user performs tracked actions (insert table, add image, open AI menu, etc.). If not provided, tracking is silently skipped. See the "Analytics (onTrack)" section for the full list of events.
|
|
828
717
|
```
|
|
829
718
|
|
|
830
719
|
</details>
|