quoin-editor 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/ai.cjs +34 -34
  3. package/dist/ai.js +3 -3
  4. package/dist/catalogue.cjs +21 -21
  5. package/dist/catalogue.js +12 -12
  6. package/dist/{chunk-NZFGAV3L.cjs → chunk-3B5VEXVQ.cjs} +2 -2
  7. package/dist/{chunk-RWSC47L7.cjs → chunk-4EJJ4ZNC.cjs} +18 -18
  8. package/dist/{chunk-F3BC5ITU.cjs → chunk-55MN4QZU.cjs} +8 -5
  9. package/dist/{chunk-TDXQSNFS.cjs → chunk-5URH2Y2L.cjs} +19 -19
  10. package/dist/{chunk-XLR2O4OK.js → chunk-77THE3KY.js} +5 -5
  11. package/dist/{chunk-XLR2O4OK.js.map → chunk-77THE3KY.js.map} +1 -1
  12. package/dist/{chunk-LBP64GKQ.cjs → chunk-BCCFJINI.cjs} +70 -65
  13. package/dist/{chunk-SE36LU6G.js → chunk-BNTRGV4A.js} +27 -10
  14. package/dist/chunk-BNTRGV4A.js.map +1 -0
  15. package/dist/{chunk-AVD2AI47.js → chunk-C4SRLMQJ.js} +3 -3
  16. package/dist/{chunk-AVD2AI47.js.map → chunk-C4SRLMQJ.js.map} +1 -1
  17. package/dist/{chunk-5VBDRJ5Y.cjs → chunk-DZ5XR4O6.cjs} +139 -117
  18. package/dist/{chunk-QIGZ5JAY.js → chunk-FGVTDIHT.js} +42 -19
  19. package/dist/chunk-FGVTDIHT.js.map +1 -0
  20. package/dist/{chunk-XC4WZTMY.cjs → chunk-H3TRVI44.cjs} +50 -50
  21. package/dist/{chunk-Z3GLEAOI.js → chunk-LCGOFL7S.js} +15 -10
  22. package/dist/{chunk-Z3GLEAOI.js.map → chunk-LCGOFL7S.js.map} +1 -1
  23. package/dist/{chunk-OBOIZ7L3.js → chunk-MDIXI7DM.js} +3 -3
  24. package/dist/{chunk-OBOIZ7L3.js.map → chunk-MDIXI7DM.js.map} +1 -1
  25. package/dist/{chunk-UKUAQJME.cjs → chunk-MGN332NY.cjs} +28 -7
  26. package/dist/{chunk-SHZGRFYY.cjs → chunk-NAMZA4NW.cjs} +14 -14
  27. package/dist/{chunk-ZHLNPNE2.js → chunk-NLRSAOCK.js} +5 -5
  28. package/dist/{chunk-ZHLNPNE2.js.map → chunk-NLRSAOCK.js.map} +1 -1
  29. package/dist/{chunk-RR67AKP6.cjs → chunk-OMUXPNCX.cjs} +27 -26
  30. package/dist/{chunk-DGKIKXB7.js → chunk-QVWNUUMJ.js} +3 -3
  31. package/dist/{chunk-DGKIKXB7.js.map → chunk-QVWNUUMJ.js.map} +1 -1
  32. package/dist/{chunk-4VCCGBXW.js → chunk-RNYETN6X.js} +4 -4
  33. package/dist/{chunk-4VCCGBXW.js.map → chunk-RNYETN6X.js.map} +1 -1
  34. package/dist/{chunk-YETMZ27Q.cjs → chunk-SDFJZNYB.cjs} +3 -3
  35. package/dist/{chunk-YYBPQ4TY.cjs → chunk-SQHEZ3JY.cjs} +2 -2
  36. package/dist/{chunk-JM5TRLEC.cjs → chunk-UWCU6PJY.cjs} +30 -30
  37. package/dist/{chunk-M7L444WV.js → chunk-VQDQBMQY.js} +4 -4
  38. package/dist/{chunk-M7L444WV.js.map → chunk-VQDQBMQY.js.map} +1 -1
  39. package/dist/{chunk-5A2MHCYI.js → chunk-WMM56LIB.js} +8 -5
  40. package/dist/{chunk-5A2MHCYI.js.map → chunk-WMM56LIB.js.map} +1 -1
  41. package/dist/{chunk-DT3ODGZ7.js → chunk-YHAVXOAA.js} +6 -5
  42. package/dist/chunk-YHAVXOAA.js.map +1 -0
  43. package/dist/{chunk-ZDNYIQKM.js → chunk-YWYTLNAO.js} +4 -4
  44. package/dist/{chunk-ZDNYIQKM.js.map → chunk-YWYTLNAO.js.map} +1 -1
  45. package/dist/comments.cjs +30 -30
  46. package/dist/comments.js +3 -3
  47. package/dist/diagram.cjs +6 -6
  48. package/dist/diagram.js +3 -3
  49. package/dist/embed.cjs +5 -5
  50. package/dist/embed.js +3 -3
  51. package/dist/emoji.cjs +6 -6
  52. package/dist/emoji.js +3 -3
  53. package/dist/find.cjs +7 -7
  54. package/dist/find.js +3 -3
  55. package/dist/headless.cjs +11 -11
  56. package/dist/headless.js +1 -1
  57. package/dist/highlight.cjs +3 -3
  58. package/dist/highlight.js +2 -2
  59. package/dist/index.cjs +23 -23
  60. package/dist/index.d.cts +1 -1
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.js +2 -2
  63. package/dist/math.cjs +6 -6
  64. package/dist/math.js +4 -4
  65. package/dist/mention.cjs +6 -6
  66. package/dist/mention.js +4 -4
  67. package/dist/presence.cjs +12 -12
  68. package/dist/presence.js +3 -3
  69. package/dist/source.cjs +2 -2
  70. package/dist/source.js +2 -2
  71. package/dist/stats.cjs +6 -6
  72. package/dist/stats.js +3 -3
  73. package/dist/styles.css +1 -1
  74. package/dist/table.cjs +22 -22
  75. package/dist/table.js +3 -3
  76. package/dist/toc.cjs +6 -6
  77. package/dist/toc.js +3 -3
  78. package/package.json +3 -2
  79. package/dist/chunk-DT3ODGZ7.js.map +0 -1
  80. package/dist/chunk-QIGZ5JAY.js.map +0 -1
  81. package/dist/chunk-SE36LU6G.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { selectedAtomDecorations, atomKeymap, useSelectionOutOfAtoms, atomAtTarget, plainEnter, selectedAtom } from './chunk-5A2MHCYI.js';
1
+ import { selectedAtomDecorations, atomKeymap, useSelectionOutOfAtoms, atomAtTarget, plainEnter, selectedAtom } from './chunk-WMM56LIB.js';
2
2
  import { webAddress } from './chunk-DBOZFNWU.js';
3
- import { suggestionPlugin, useQuoin, SuggestionMenu, replaceTrigger, toError, dismissSuggestion } from './chunk-QIGZ5JAY.js';
4
- import { useReadOnly, useIsomorphicLayoutEffect, isComposingKey } from './chunk-SE36LU6G.js';
3
+ import { suggestionPlugin, useQuoin, SuggestionMenu, replaceTrigger, toError, dismissSuggestion } from './chunk-FGVTDIHT.js';
4
+ import { useReadOnly, useIsomorphicLayoutEffect, isComposingKey } from './chunk-BNTRGV4A.js';
5
5
  import { mergeLabels } from './chunk-DLQCTGC3.js';
6
6
  import { createPluginKey, defineExtension, getPluginState, runCommands, insertMention, insertText } from './chunk-5RBMZGKV.js';
7
7
  import { useEffect, useRef, useMemo, useCallback, useState } from 'react';
@@ -268,5 +268,5 @@ function mentionExtension(options = {}) {
268
268
  }
269
269
 
270
270
  export { englishMentionLabels, mentionExtension };
271
- //# sourceMappingURL=chunk-XLR2O4OK.js.map
272
- //# sourceMappingURL=chunk-XLR2O4OK.js.map
271
+ //# sourceMappingURL=chunk-77THE3KY.js.map
272
+ //# sourceMappingURL=chunk-77THE3KY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/extensions/mention/mention-feature.ts","../src/extensions/mention/mention-key.ts","../src/extensions/mention/mention-labels.ts","../src/extensions/mention/MentionChip.ts","../src/extensions/mention/choose-mention.ts","../src/extensions/mention/mention-results.ts","../src/extensions/mention/mention-source.ts","../src/extensions/mention/use-close-on-space.ts","../src/extensions/mention/MentionItem.tsx","../src/extensions/mention/MentionMenu.tsx","../src/extensions/mention/use-mention-opening.ts","../src/extensions/mention/use-read-only-chips.ts","../src/extensions/mention/MentionOverlay.tsx","../src/extensions/mention/mention-extension.tsx"],"names":["jsx","useEffect"],"mappings":"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","file":"chunk-XLR2O4OK.js"}
1
+ {"version":3,"sources":["../src/extensions/mention/mention-feature.ts","../src/extensions/mention/mention-key.ts","../src/extensions/mention/mention-labels.ts","../src/extensions/mention/MentionChip.ts","../src/extensions/mention/choose-mention.ts","../src/extensions/mention/mention-results.ts","../src/extensions/mention/mention-source.ts","../src/extensions/mention/use-close-on-space.ts","../src/extensions/mention/MentionItem.tsx","../src/extensions/mention/MentionMenu.tsx","../src/extensions/mention/use-mention-opening.ts","../src/extensions/mention/use-read-only-chips.ts","../src/extensions/mention/MentionOverlay.tsx","../src/extensions/mention/mention-extension.tsx"],"names":["jsx","useEffect"],"mappings":";;;;;;;;;;AAIO,IAAM,gBAAmC,CAAC,SAAS;AAMnD,SAAS,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,QAAQ,IAAI,MAAK,EAAE,EAAsB;AACrF,SAAO,SAAS,SAAY,EAAE,IAAI,OAAM,GAAI,EAAE,IAAI,OAAO,MAAK;AAChE;;;ACTO,IAAM,aAAa,gBAAiC,SAAS;;;ACW7D,IAAM,uBAAsC;AAAA,EACjD,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,oBAAoB,CAAC,SAAU,SAAS,SAAY,YAAY,YAAY,IAAI;AAClF;AAGO,IAAM,uBAAuB,CAAC,cAAsD,YAAY,sBAAsB,SAAS;;;ACf/H,SAAS,oBAAoB,EAAE,QAAQ,QAAO,EAAiC;AACpF,SAAO,CAAC,MAAM,QAAQ;AACpB,UAAM,EAAE,QAAQ,IAAI,SAAS,KAAK;AAClC,UAAM,OAAO,IAAI,cAAc,MAAM;AACrC,SAAK,YAAY;AACjB,SAAK,cAAc,IAAI,KAAK;AAC5B,SAAK,aAAa,oBAAoB,OAAO,mBAAmB,IAAI,CAAC;AACrE,QAAI,SAAS,QAAW,KAAK,aAAa,aAAa,IAAI;AAC3D,QAAI,WAAW,QAAW,KAAK,aAAa,cAAc,EAAE;AAC5D,WAAO;AAAA,EACT;AACF;;;ACVA,IAAM,kBACJ,CAAC,EAAE,IAAI,OAAO,MAAK,KACnB,CAAC,OAAO,aAAa;AACnB,QAAM,EAAE,IAAI,IAAG,GAAI,YAAY,OAAO,CAAC,cAAc,EAAE,IAAI,OAAO,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC;AAC3F,MAAI,MAAM,OAAO,MAAM,WAAW,EAAE;AACpC,SAAO;AACT;AAGK,SAAS,cAAc,YAA4B,QAAuB,OAA8B;AAC7G,iBAAe,YAAY,OAAO,gBAAgB,MAAM,CAAC;AAC3D;;;ACjBA,IAAM,cAAc;AAEpB,IAAM,SAAS,CAAC,UAAoC,OAAO,UAAU;AAG9D,IAAM,YAAY,CAAC,EAAE,IAAI,MAAK,KAA6B,KAAK,UAAU,CAAC,QAAQ,MAAM,EAAE,CAAC;AAGnG,SAAS,SAAS,OAAsC;AACtD,QAAM,EAAE,IAAI,OAAO,MAAM,aAAa,WAAU,GAAK,SAAS,EAAC;AAC/D,MAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,MAAM,MAAK,KAAM,IAAI,OAAO;AACjE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAI,OAAO,IAAI,KAAK,EAAE,MAAK;AAAA,IAC3B,GAAI,OAAO,WAAW,KAAK,EAAE,aAAY;AAAA,IACzC,GAAI,OAAO,SAAS,KAAK,EAAE;AAAU,GACvC;AACF;AAMO,SAAS,eAAe,QAA2C;AACxE,MAAI,CAAC,MAAM,QAAQ,MAAM,UAAU,EAAC;AACpC,QAAM,2BAAW,KAAY;AAC7B,QAAM,UAA2B,EAAC;AAClC,aAAW,SAAS,QAAQ;AAC1B,UAAM,SAAS,SAAS,KAAK;AAC7B,QAAI,WAAW,QAAQ,KAAK,IAAI,UAAU,MAAM,CAAC,GAAG;AACpD,SAAK,IAAI,UAAU,MAAM,CAAC;AAC1B,YAAQ,KAAK,MAAM;AACnB,QAAI,QAAQ,WAAW,aAAa;AAAA,EACtC;AACA,SAAO;AACT;;;AClCO,IAAM,kBAAkB;AAsBxB,SAAS,oBAAoB,EAAE,QAAQ,SAAS,SAAQ,EAAiC;AAC9F,MAAI;AACJ,MAAI,WAA0B;AAC9B,QAAM,SAAS,MAAM,aAAa,KAAK;AACvC,QAAM,SAAS,CAAC,UACd,IAAI,QAAkC,CAAC,YAAY;AACjD,YAAO;AACP,UAAM,WAAW,CAAC,YAAsC;AACtD,iBAAW,QAAQ,WAAW,IAAI,QAAQ;AAC1C,cAAQ,OAAO;AAAA,IACjB;AACA,YAAQ,WAAW,MAAM;AACvB,UAAI,CAAC,QAAQ,KAAK,GAAG;AACrB,UAAI,QAAiB,CAAC,WAAW,OAAO,OAAO,KAAK,CAAC,CAAC,EAAE;AAAA,QACtD,CAAC,WAAW,SAAS,eAAe,MAAM,CAAC;AAAA,QAC3C,CAAC,WAAoB;AACnB,kBAAQ,QAAQ,MAAM,CAAC;AACvB,mBAAS,EAAE;AAAA,QACb;AAAA,OACF;AAAA,IACF,GAAG,eAAe;AAAA,EACpB,CAAC;AACH,SAAO,EAAE,QAAQ,cAAc,CAAC,UAAU,UAAU,UAAU,QAAO;AACvE;ACzCA,IAAM,oBAAoB;AAMnB,SAAS,gBAAgB,YAA4B,cAAgD;AAC1G,YAAU,MAAM;AACd,UAAM,OAAO,WAAW;AACxB,QAAI,SAAS,MAAM;AACnB,UAAM,gBAAgB,CAAC,UAAsB;AAC3C,UAAI,MAAM,cAAc,gBAAgB,MAAM,eAAe,CAAC,kBAAkB,KAAK,MAAM,QAAQ,EAAE,GAAG;AACxG,YAAM,QAAQ,eAAe,WAAW,OAAO,OAAO,UAAU,EAAE,QAAQ;AAC1E,UAAI,UAAU,MAAO,UAAU,UAAa,aAAa,KAAK,GAAI,WAAW,IAAI,kBAAkB,UAAU,CAAC;AAAA,IAChH;AAEA,SAAK,iBAAiB,eAAe,eAAe,IAAI;AACxD,WAAO,MAAM,KAAK,oBAAoB,eAAe,eAAe,IAAI;AAAA,EAC1E,GAAG,CAAC,YAAY,YAAY,CAAC;AAC/B;ACpBO,SAAS,YAAY,EAAE,QAAO,EAA8B;AACjE,QAAM,SAAS,WAAW,OAAO,SAAS;AAC1C,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAwB,IAAI;AACxD,yBACE,iBACG;AAAA,eAAW,QAAQ,WAAW,0BAC7B;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAI;AAAA,QACJ,SAAQ;AAAA,QACR,gBAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAU;AAAA,QACV,SAAS,MAAM,UAAU,MAAM;AAAA;AAAA,KACjC;AAAA,oBAEF,KAAC,UAAK,WAAU,yBACd;AAAA,0BAAC,UAAK,WAAU,YAAY,iBAAO,OAAM;AAAA,MACxC,OAAO,+BAAe,IAAC,UAAK,WAAU,0CAA0C,iBAAO,aAAY;AAAA,OACtG;AAAA,KACF;AAEJ;ACTA,IAAM,aAAa,CAAC,2BAA0BA,IAAC,eAAY,QAAgB;AAGpE,SAAS,YAAY,EAAE,YAAY,QAAQ,QAAO,EAAU;AACjE,QAAM,EAAE,SAAQ,GAAI,UAAS;AAC7B,QAAM,SAAS,OAAO,EAAE,QAAQ,SAAS;AACzC,QAAM,UAAU,OAAO,KAAK;AAC5B,4BAA0B,MAAM;AAC9B,WAAO,UAAU,EAAE,QAAQ,SAAQ;AAAA,EACrC,CAAC;AAED,QAAM,WAAW;AAAA,IACf,MACE,oBAAoB;AAAA,MAClB,QAAQ,CAAC,UAAU,OAAO,QAAQ,OAAO,KAAK;AAAA,MAC9C,SAAS,CAAC,UACR,CAAC,WAAW,YAAY,eAAe,WAAW,OAAO,OAAO,UAAU,EAAE,QAAQ,UAAU;AAAA,MAChG,SAAS,CAAC,UAAU;AAClB,YAAI,QAAQ,SAAS,OAAO,QAAQ,QAAQ,KAAK;AAAA,MACnD;AAAA,KACD;AAAA,IACH,CAAC,UAAU;AAAA,GACb;AACA,EAAAC,UAAU,MAAM;AACd,YAAQ,UAAU;AAClB,WAAO,MAAM;AACX,cAAQ,UAAU;AAClB,eAAS,QAAO;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AACb,kBAAgB,YAAY,SAAS,YAAY;AACjD,QAAM,SAAS;AAAA,IACb,CAAC,QAAuB,UAA2B,cAAc,YAAY,QAAQ,KAAK;AAAA,IAC1F,CAAC,UAAU;AAAA,GACb;AACA,yBACED;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,MACX,OAAO,SAAS;AAAA,MAChB,SAAS;AAAA,MACT;AAAA,MACA,UAAU;AAAA,MACV,OAAO,OAAO;AAAA,MACd,YAAY,OAAO;AAAA,MACnB,cAAc,OAAO;AAAA;AAAA,GACvB;AAEJ;ACtDO,SAAS,kBACd,YACA,QACA,UACM;AACN,EAAAC,UAAU,MAAM;AACd,UAAM,OAAO,WAAW;AACxB,QAAI,WAAW,UAAa,SAAS,MAAM;AAC3C,UAAM,UAAU,CAAC,UAAsB;AACrC,YAAM,OAAO,CAAC,MAAM,YAAY,MAAM,UAAU;AAChD,YAAM,QAAQ,OAAO,aAAa,YAAY,MAAM,QAAQ,aAAa,IAAI;AAC7E,UAAI,UAAU,MAAM,OAAO,UAAU,MAAM,IAAI,CAAC;AAAA,IAClD;AACA,UAAM,YAA4B,CAAC,UAAU;AAC3C,UAAI,CAAC,WAAW,KAAK,KAAK,eAAe,YAAY,KAAK,GAAG,OAAO;AACpE,YAAM,QAAQ,aAAa,WAAW,OAAO,OAAO,aAAa;AACjE,UAAI,UAAU,MAAM,OAAO;AAC3B,YAAM,gBAAe;AACrB,aAAO,UAAU,MAAM,IAAI,CAAC;AAC5B,aAAO;AAAA,IACT;AACA,SAAK,iBAAiB,SAAS,OAAO;AACtC,QAAI,UAAU,WAAW,gBAAgB,IAAI,SAAS;AACtD,WAAO,MAAM;AACX,WAAK,oBAAoB,SAAS,OAAO;AACzC,iBAAW,gBAAgB,OAAO,SAAS;AAAA,IAC7C;AAAA,EACF,GAAG,CAAC,YAAY,QAAQ,QAAQ,CAAC;AACnC;ACnCA,IAAM,QAAQ;AAEd,IAAM,YAAY,CAAC,WAChB,MAAM,QAAQ,WAAW,MAAM,QAAQ,QAAQ,CAAC,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,MAAM;AAE5F,SAAS,WAAW,MAAe,IAAmB;AACpD,aAAW,QAAQ,KAAK,iBAAiB,KAAK,GAAG;AAC/C,QAAI,IAAI;AACN,WAAK,aAAa,QAAQ,QAAQ;AAClC,WAAK,aAAa,YAAY,GAAG;AAAA,IACnC,OAAO;AACL,WAAK,gBAAgB,MAAM;AAC3B,WAAK,gBAAgB,UAAU;AAAA,IACjC;AAAA,EACF;AACF;AAOO,SAAS,iBACd,YACA,QACA,UACM;AACN,EAAAA,UAAU,MAAM;AACd,UAAM,OAAO,WAAW;AACxB,QAAI,CAAC,YAAY,WAAW,UAAa,SAAS,MAAM;AACxD,eAAW,MAAM,IAAI;AACrB,UAAM,WAAW,IAAI,iBAAiB,MAAM,WAAW,MAAM,IAAI,CAAC;AAClE,aAAS,QAAQ,MAAM,EAAE,WAAW,MAAM,SAAS,MAAM;AACzD,UAAM,YAAY,CAAC,UAAyB;AAC1C,YAAM,QAAQ,UAAU,KAAK,IAAI,aAAa,YAAY,MAAM,QAAQ,aAAa,IAAI;AACzF,UAAI,UAAU,MAAM;AACpB,YAAM,gBAAe;AACrB,aAAO,UAAU,MAAM,IAAI,CAAC;AAAA,IAC9B;AACA,SAAK,iBAAiB,WAAW,SAAS;AAC1C,WAAO,MAAM;AACX,eAAS,YAAW;AACpB,WAAK,oBAAoB,WAAW,SAAS;AAC7C,iBAAW,MAAM,KAAK;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,YAAY,QAAQ,QAAQ,CAAC;AACnC;AC1CO,SAAS,eAAe,EAAE,YAAY,SAAQ,EAA4D;AAC/G,QAAM,WAAW,YAAY,UAAU;AACvC,oBAAkB,YAAY,QAAQ,QAAQ,CAAC,QAAQ;AACvD,mBAAiB,YAAY,QAAQ,QAAQ,QAAQ;AACrD,yBAAuB,YAAY,eAAe,CAAC,QAAQ;AAC3D,MAAI,QAAQ,WAAW,QAAW,OAAO;AACzC,yBAAOD,IAAC,eAAY,YAAwB,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ;AAC9F;ACUA,IAAM,kBAAkB;AAMjB,SAAS,iBAAiB,UAA0B,EAAC,EAAc;AACxE,QAAM,EAAE,QAAQ,QAAO,GAAI;AAC3B,QAAM,UAA0B,EAAE,QAAQ,qBAAqB,QAAQ,MAAM,GAAG,QAAQ,QAAO;AAC/F,QAAM,UAAU,CAAC,EAAE,iCACjBA,IAAC,kBAAe,YAAwB,SAAkB;AAE5D,QAAM,KAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,oBAAoB,OAAO,GAAE,EAAE,EAAG,UAAU,CAAC,OAAO,GAAE;AAC5G,SAAO,gBAAgB;AAAA,IACrB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS,WAAW,SAAY,KAAK,CAAC,iBAAiB,YAAY,EAAE,MAAM,KAAK,aAAa,MAAM,CAAC;AAAA,IACpG,QAAQ,WAAW,aAAa;AAAA,IAChC,aAAa,wBAAwB,aAAa;AAAA,IAClD;AAAA,GACD;AACH","file":"chunk-77THE3KY.js"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunk5VBDRJ5Y_cjs = require('./chunk-5VBDRJ5Y.cjs');
4
- var chunkUKUAQJME_cjs = require('./chunk-UKUAQJME.cjs');
3
+ var chunkDZ5XR4O6_cjs = require('./chunk-DZ5XR4O6.cjs');
4
+ var chunkMGN332NY_cjs = require('./chunk-MGN332NY.cjs');
5
5
  var chunkZWTIRGY5_cjs = require('./chunk-ZWTIRGY5.cjs');
6
6
  var chunkFK7EBZPX_cjs = require('./chunk-FK7EBZPX.cjs');
7
7
  var chunkI7X7B3WD_cjs = require('./chunk-I7X7B3WD.cjs');
@@ -168,7 +168,7 @@ function setCellsMark(type, attrs) {
168
168
  var CONTROLS_SLOT = "data-quoin-table-controls";
169
169
  var controlsSlot = (controller, blockId) => controller.blockElement(blockId)?.querySelector(`[${CONTROLS_SLOT}]`) ?? null;
170
170
  var TableCell = react.memo(function TableCell2({ controller, blockId, row, col, header, align, label }) {
171
- const inRange = chunkUKUAQJME_cjs.useEditorState(
171
+ const inRange = chunkMGN332NY_cjs.useEditorState(
172
172
  controller,
173
173
  react.useCallback(
174
174
  (state) => {
@@ -187,7 +187,7 @@ var TableCell = react.memo(function TableCell2({ controller, blockId, row, col,
187
187
  "data-col": col,
188
188
  "data-in-range": inRange ? "" : void 0,
189
189
  style: align === null ? void 0 : { textAlign: align },
190
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkUKUAQJME_cjs.EditableRegion, { block: blockId, region: chunkI7X7B3WD_cjs.cellKey(row, col), label, className: "quoin-table-text" })
190
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkMGN332NY_cjs.EditableRegion, { block: blockId, region: chunkI7X7B3WD_cjs.cellKey(row, col), label, className: "quoin-table-text" })
191
191
  }
192
192
  );
193
193
  });
@@ -464,7 +464,7 @@ function useCellPress(controller, blockId, table, editable) {
464
464
  }, [controller, blockId, table, editable]);
465
465
  }
466
466
  function useRevealCell(controller, blockId) {
467
- const region = chunkUKUAQJME_cjs.useEditorState(
467
+ const region = chunkMGN332NY_cjs.useEditorState(
468
468
  controller,
469
469
  react.useCallback(
470
470
  (state) => {
@@ -488,20 +488,20 @@ function caretAtGoal(controller, blockId, cell, direction) {
488
488
  const region = chunkI7X7B3WD_cjs.cellKey(...cell);
489
489
  const host = controller.registry.get(blockId, region);
490
490
  const { goalX } = controller;
491
- const line = host && chunkUKUAQJME_cjs.lineEdgeRect(host, direction < 0);
491
+ const line = host && chunkMGN332NY_cjs.lineEdgeRect(host, direction < 0);
492
492
  if (!host || !line || goalX === null) return null;
493
493
  const box = host.getBoundingClientRect();
494
494
  const x = Math.min(Math.max(goalX, box.left), box.right - 1);
495
- const point = chunkUKUAQJME_cjs.caretFromPoint(host.ownerDocument, x, line.top + line.height / 2);
496
- const pos = point && chunkUKUAQJME_cjs.domToPos(controller.registry, point.node, point.offset);
495
+ const point = chunkMGN332NY_cjs.caretFromPoint(host.ownerDocument, x, line.top + line.height / 2);
496
+ const pos = point && chunkMGN332NY_cjs.domToPos(controller.registry, point.node, point.offset);
497
497
  return pos && pos.block === blockId && pos.region === region ? pos : null;
498
498
  }
499
499
  var plainArrow = (event) => event.altKey || event.ctrlKey || event.metaKey ? void 0 : VERTICAL[event.key];
500
500
  function caretOnEdgeLine(controller, head, direction) {
501
501
  const host = controller.registry.get(head.block, head.region);
502
- const point = chunkUKUAQJME_cjs.posToDom(controller.registry, head);
503
- if (!host || !point || !(direction < 0 ? chunkUKUAQJME_cjs.isOnFirstLine(host, point) : chunkUKUAQJME_cjs.isOnLastLine(host, point))) return null;
504
- return { left: chunkUKUAQJME_cjs.caretClientRect(point)?.left ?? null };
502
+ const point = chunkMGN332NY_cjs.posToDom(controller.registry, head);
503
+ if (!host || !point || !(direction < 0 ? chunkMGN332NY_cjs.isOnFirstLine(host, point) : chunkMGN332NY_cjs.isOnLastLine(host, point))) return null;
504
+ return { left: chunkMGN332NY_cjs.caretClientRect(point)?.left ?? null };
505
505
  }
506
506
  function columnAt(controller, blockId, row, x) {
507
507
  const cells = Array.from(controller.blockElement(blockId)?.querySelector("table")?.rows[row]?.cells ?? []);
@@ -514,7 +514,7 @@ function enterTable(controller, blockId, event) {
514
514
  const { selection } = state;
515
515
  const block = tableBlock(state.doc, blockId);
516
516
  if (direction === void 0 || event.shiftKey || block === null || selection?.kind !== "text") return false;
517
- if (!chunkFK7EBZPX_cjs.isCollapsed(selection) || chunkUKUAQJME_cjs.neighbourBlock(state.doc, selection.head.block, direction)?.id !== blockId) return false;
517
+ if (!chunkFK7EBZPX_cjs.isCollapsed(selection) || chunkMGN332NY_cjs.neighbourBlock(state.doc, selection.head.block, direction)?.id !== blockId) return false;
518
518
  const caret = caretOnEdgeLine(controller, selection.head, direction);
519
519
  if (caret === null) return false;
520
520
  controller.goalX ??= caret.left;
@@ -554,17 +554,17 @@ function useTableKeys(controller, blockId, editable) {
554
554
  react.useEffect(() => {
555
555
  if (!editable) return;
556
556
  const intercept = (event) => {
557
- if (chunkUKUAQJME_cjs.isComposingKey(controller, event)) return false;
557
+ if (chunkMGN332NY_cjs.isComposingKey(controller, event)) return false;
558
558
  const handled = typeOver(controller, blockId, event) || moveBetweenRows(controller, blockId, event) || enterTable(controller, blockId, event);
559
559
  if (handled) event.preventDefault();
560
560
  return handled;
561
561
  };
562
- return chunk5VBDRJ5Y_cjs.interceptKeys(controller, intercept);
562
+ return chunkDZ5XR4O6_cjs.interceptKeys(controller, intercept);
563
563
  }, [controller, blockId, editable]);
564
564
  }
565
565
  var indexes = (from, to) => Array.from({ length: Math.max(to - from, 0) }, (_, i) => from + i);
566
566
  function TableBlock({ block, controller, labels }) {
567
- const readOnly = chunkUKUAQJME_cjs.useReadOnly(controller);
567
+ const readOnly = chunkMGN332NY_cjs.useReadOnly(controller);
568
568
  const table = react.useRef(null);
569
569
  const { rows, cols } = tableShape(block);
570
570
  const header = block.attrs.header !== false && rows > 0;
@@ -588,7 +588,7 @@ function TableBlock({ block, controller, labels }) {
588
588
  col
589
589
  )) }, index);
590
590
  const scroller = readOnly ? { role: "region", "aria-label": labels.table, tabIndex: 0 } : void 0;
591
- return /* @__PURE__ */ jsxRuntime.jsx("div", { contentEditable: false, className: "quoin-table", "data-readonly": readOnly ? "" : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `quoin-table-scroll ${readOnly ? chunk5VBDRJ5Y_cjs.FOCUS_RING : ""}`, ...scroller, children: [
591
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { contentEditable: false, className: "quoin-table", "data-readonly": readOnly ? "" : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `quoin-table-scroll ${readOnly ? chunkDZ5XR4O6_cjs.FOCUS_RING : ""}`, ...scroller, children: [
592
592
  /* @__PURE__ */ jsxRuntime.jsxs(
593
593
  "table",
594
594
  {
@@ -640,7 +640,7 @@ function ColumnResizer(props) {
640
640
  if (!controller.readOnly) controller.run(setColumnWidth(blockId, col, px, widths));
641
641
  };
642
642
  const onKeyDown = (event) => {
643
- if (chunkUKUAQJME_cjs.isComposingKey(controller, event.nativeEvent)) return;
643
+ if (chunkMGN332NY_cjs.isComposingKey(controller, event.nativeEvent)) return;
644
644
  const step = event.shiftKey ? LARGE_STEP : STEP;
645
645
  const tab = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
646
646
  if (event.key === "ArrowLeft" || event.key === "ArrowRight") {
@@ -695,7 +695,7 @@ function ColumnResizer(props) {
695
695
  "aria-valuetext": labels.columnWidth(width),
696
696
  className: "quoin-table-resizer",
697
697
  style,
698
- ...{ [chunkUKUAQJME_cjs.NATIVE_INTERACTION]: "" },
698
+ ...{ [chunkMGN332NY_cjs.NATIVE_INTERACTION]: "" },
699
699
  onKeyDown,
700
700
  onPointerDown,
701
701
  onPointerMove,
@@ -710,20 +710,20 @@ function HandleMenu({ controller, axis, label, style, items, open, onOpenChange,
710
710
  if (controller.run(item3.command)) controller.announce(item3.done);
711
711
  };
712
712
  const item2 = (entry) => /* @__PURE__ */ jsxRuntime.jsxs(
713
- chunk5VBDRJ5Y_cjs.DropdownMenuItem,
713
+ chunkDZ5XR4O6_cjs.DropdownMenuItem,
714
714
  {
715
715
  disabled: entry.disabled,
716
716
  className: entry.destructive ? DESTRUCTIVE : void 0,
717
717
  onSelect: () => run(entry),
718
718
  children: [
719
- /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.MenuIcon, { icon: entry.icon }),
719
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.MenuIcon, { icon: entry.icon }),
720
720
  entry.label
721
721
  ]
722
722
  },
723
723
  entry.id
724
724
  );
725
- return /* @__PURE__ */ jsxRuntime.jsxs(chunk5VBDRJ5Y_cjs.DropdownMenu, { open, onOpenChange, children: [
726
- /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
725
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkDZ5XR4O6_cjs.DropdownMenu, { open, onOpenChange, children: [
726
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
727
727
  "button",
728
728
  {
729
729
  ref: buttonRef,
@@ -733,22 +733,22 @@ function HandleMenu({ controller, axis, label, style, items, open, onOpenChange,
733
733
  "data-axis": axis,
734
734
  className: "quoin-table-handle",
735
735
  style,
736
- children: axis === "row" ? /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.GripVertical, { "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.GripHorizontal, { "aria-hidden": "true" })
736
+ children: axis === "row" ? /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.GripVertical, { "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.GripHorizontal, { "aria-hidden": "true" })
737
737
  }
738
738
  ) }),
739
739
  open && /* @__PURE__ */ jsxRuntime.jsxs(
740
- chunk5VBDRJ5Y_cjs.DropdownMenuContent,
740
+ chunkDZ5XR4O6_cjs.DropdownMenuContent,
741
741
  {
742
742
  align: "start",
743
743
  "aria-label": label,
744
744
  "aria-labelledby": void 0,
745
- onCloseAutoFocus: chunk5VBDRJ5Y_cjs.returnFocusToText(controller),
746
- ...chunk5VBDRJ5Y_cjs.bubblePart(controller),
745
+ onCloseAutoFocus: chunkDZ5XR4O6_cjs.returnFocusToText(controller),
746
+ ...chunkDZ5XR4O6_cjs.bubblePart(controller),
747
747
  children: [
748
748
  items.filter((entry) => !entry.destructive).map(item2),
749
749
  children,
750
750
  items.filter((entry) => entry.destructive).map((entry) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
751
- /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.DropdownMenuSeparator, {}),
751
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.DropdownMenuSeparator, {}),
752
752
  item2(entry)
753
753
  ] }, entry.id))
754
754
  ]
@@ -762,31 +762,35 @@ var item = (id, label, icon, command, done, options = {}) => ({ id, label, icon,
762
762
  function rowMenuItems(labels, blockId, row, { rows }) {
763
763
  const { rowInserted, rowMoved, rowDeleted } = labels;
764
764
  return [
765
- item("above", labels.insertRowAbove, chunk5VBDRJ5Y_cjs.ArrowUpToLine, addRow(blockId, row), rowInserted),
766
- item("below", labels.insertRowBelow, chunk5VBDRJ5Y_cjs.ArrowDownToLine, addRow(blockId, row + 1), rowInserted),
767
- item("up", labels.moveRowUp, chunk5VBDRJ5Y_cjs.ArrowUp, moveRow(blockId, row, row - 1), rowMoved, { disabled: row === 0 }),
768
- item("down", labels.moveRowDown, chunk5VBDRJ5Y_cjs.ArrowDown, moveRow(blockId, row, row + 1), rowMoved, { disabled: row === rows - 1 }),
769
- item("delete", labels.deleteRow, chunk5VBDRJ5Y_cjs.Trash, removeRow(blockId, row), rowDeleted, { disabled: rows === 1, destructive: true })
765
+ item("above", labels.insertRowAbove, chunkDZ5XR4O6_cjs.ArrowUpToLine, addRow(blockId, row), rowInserted),
766
+ item("below", labels.insertRowBelow, chunkDZ5XR4O6_cjs.ArrowDownToLine, addRow(blockId, row + 1), rowInserted),
767
+ item("up", labels.moveRowUp, chunkDZ5XR4O6_cjs.ArrowUp, moveRow(blockId, row, row - 1), rowMoved, { disabled: row === 0 }),
768
+ item("down", labels.moveRowDown, chunkDZ5XR4O6_cjs.ArrowDown, moveRow(blockId, row, row + 1), rowMoved, { disabled: row === rows - 1 }),
769
+ item("delete", labels.deleteRow, chunkDZ5XR4O6_cjs.Trash, removeRow(blockId, row), rowDeleted, { disabled: rows === 1, destructive: true })
770
770
  ];
771
771
  }
772
- function columnMenuItems(labels, blockId, col, { cols }) {
772
+ function columnMenuItems(labels, blockId, col, { cols }, direction = "ltr") {
773
773
  const { columnInserted, columnMoved, columnDeleted } = labels;
774
+ const onTheRight = direction === "rtl" ? col - 1 : col + 1;
775
+ const onTheLeft = direction === "rtl" ? col + 1 : col - 1;
776
+ const first = col === 0;
774
777
  const last = col === cols - 1;
778
+ const [leftEdge, rightEdge] = direction === "rtl" ? [last, first] : [first, last];
775
779
  return [
776
- item("left", labels.insertColumnLeft, chunk5VBDRJ5Y_cjs.ArrowLeftToLine, addColumn(blockId, col), columnInserted),
777
- item("right", labels.insertColumnRight, chunk5VBDRJ5Y_cjs.ArrowRightToLine, addColumn(blockId, col + 1), columnInserted),
778
- item("move-left", labels.moveColumnLeft, chunk5VBDRJ5Y_cjs.ArrowLeft, moveColumn(blockId, col, col - 1), columnMoved, { disabled: col === 0 }),
779
- item("move-right", labels.moveColumnRight, chunk5VBDRJ5Y_cjs.ArrowRight, moveColumn(blockId, col, col + 1), columnMoved, { disabled: last }),
780
- item("delete", labels.deleteColumn, chunk5VBDRJ5Y_cjs.Trash, removeColumn(blockId, col), columnDeleted, {
780
+ item("left", labels.insertColumnLeft, chunkDZ5XR4O6_cjs.ArrowLeftToLine, addColumn(blockId, direction === "rtl" ? col + 1 : col), columnInserted),
781
+ item("right", labels.insertColumnRight, chunkDZ5XR4O6_cjs.ArrowRightToLine, addColumn(blockId, direction === "rtl" ? col : col + 1), columnInserted),
782
+ item("move-left", labels.moveColumnLeft, chunkDZ5XR4O6_cjs.ArrowLeft, moveColumn(blockId, col, onTheLeft), columnMoved, { disabled: leftEdge }),
783
+ item("move-right", labels.moveColumnRight, chunkDZ5XR4O6_cjs.ArrowRight, moveColumn(blockId, col, onTheRight), columnMoved, { disabled: rightEdge }),
784
+ item("delete", labels.deleteColumn, chunkDZ5XR4O6_cjs.Trash, removeColumn(blockId, col), columnDeleted, {
781
785
  disabled: cols === 1,
782
786
  destructive: true
783
787
  })
784
788
  ];
785
789
  }
786
790
  var alignItems = (labels) => [
787
- { value: "left", label: labels.alignLeft, icon: chunk5VBDRJ5Y_cjs.AlignLeft, done: labels.alignedLeft },
788
- { value: "center", label: labels.alignCenter, icon: chunk5VBDRJ5Y_cjs.AlignCenter, done: labels.alignedCenter },
789
- { value: "right", label: labels.alignRight, icon: chunk5VBDRJ5Y_cjs.AlignRight, done: labels.alignedRight }
791
+ { value: "left", label: labels.alignLeft, icon: chunkDZ5XR4O6_cjs.AlignLeft, done: labels.alignedLeft },
792
+ { value: "center", label: labels.alignCenter, icon: chunkDZ5XR4O6_cjs.AlignCenter, done: labels.alignedCenter },
793
+ { value: "right", label: labels.alignRight, icon: chunkDZ5XR4O6_cjs.AlignRight, done: labels.alignedRight }
790
794
  ];
791
795
  var BESIDE = 4;
792
796
  var end = (span) => span.start + span.size;
@@ -798,6 +802,7 @@ var middle = (span) => span.start + span.size / 2;
798
802
  var isTab = (event) => event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
799
803
  function TableHandles(props) {
800
804
  const { controller, labels, block, target, geometry, menu, onMenu, onHold, focusRequested, onFocused } = props;
805
+ const direction = controller.root === null ? "ltr" : chunkMGN332NY_cjs.inlineDirection(controller.root);
801
806
  const rowHandle = react.useRef(null);
802
807
  const columnHandle = react.useRef(null);
803
808
  const resizer = react.useRef(null);
@@ -809,7 +814,7 @@ function TableHandles(props) {
809
814
  const { rowEdge, colEdge } = target;
810
815
  const rowInsertAt = edgeOf(geometry.rows, rowEdge);
811
816
  const columnInsertAt = edgeOf(geometry.cols, colEdge);
812
- chunkUKUAQJME_cjs.useIsomorphicLayoutEffect(() => {
817
+ chunkMGN332NY_cjs.useIsomorphicLayoutEffect(() => {
813
818
  if (!focusRequested) return;
814
819
  (columnHandle.current ?? rowHandle.current)?.focus();
815
820
  onFocused();
@@ -820,7 +825,7 @@ function TableHandles(props) {
820
825
  const onKeyDown = (event) => {
821
826
  const handles = [rowHandle.current, columnHandle.current].filter((handle) => handle !== null);
822
827
  const index = handles.indexOf(event.target);
823
- if (index === -1 || chunkUKUAQJME_cjs.isComposingKey(controller, event.nativeEvent)) return;
828
+ if (index === -1 || chunkMGN332NY_cjs.isComposingKey(controller, event.nativeEvent)) return;
824
829
  if (event.key === "ArrowLeft" || event.key === "ArrowRight") handles[(index + 1) % handles.length].focus();
825
830
  else if (isTab(event) && !event.shiftKey && resizer.current !== null) resizer.current.focus();
826
831
  else if (isTab(event) || event.key === "Escape") controller.focus();
@@ -858,7 +863,7 @@ function TableHandles(props) {
858
863
  onOpenChange: opener("row"),
859
864
  buttonRef: rowHandle,
860
865
  children: row === 0 && /* @__PURE__ */ jsxRuntime.jsx(
861
- chunk5VBDRJ5Y_cjs.DropdownMenuCheckboxItem,
866
+ chunkDZ5XR4O6_cjs.DropdownMenuCheckboxItem,
862
867
  {
863
868
  checked: block.attrs.header !== false,
864
869
  onCheckedChange: (on) => run(toggleHeaderRow(block.id), on ? labels.headerRowOn : labels.headerRowOff),
@@ -874,19 +879,19 @@ function TableHandles(props) {
874
879
  axis: "column",
875
880
  label: labels.columnOptions(col + 1),
876
881
  style: place(middle(geometry.cols[col]), geometry.top),
877
- items: columnMenuItems(labels, block.id, col, shape),
882
+ items: columnMenuItems(labels, block.id, col, shape, direction),
878
883
  open: menu === "column",
879
884
  onOpenChange: opener("column"),
880
885
  buttonRef: columnHandle,
881
886
  children: [
882
- /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.DropdownMenuSeparator, {}),
883
- /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.DropdownMenuRadioGroup, { value: align ?? "", children: alignItems(labels).map(({ value, label, icon, done }) => /* @__PURE__ */ jsxRuntime.jsxs(
884
- chunk5VBDRJ5Y_cjs.DropdownMenuRadioItem,
887
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.DropdownMenuSeparator, {}),
888
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.DropdownMenuRadioGroup, { value: align ?? "", children: alignItems(labels).map(({ value, label, icon, done }) => /* @__PURE__ */ jsxRuntime.jsxs(
889
+ chunkDZ5XR4O6_cjs.DropdownMenuRadioItem,
885
890
  {
886
891
  value,
887
892
  onSelect: () => align === value ? run(setColumnAlign(block.id, col, null), labels.alignmentCleared) : run(setColumnAlign(block.id, col, value), done),
888
893
  children: [
889
- /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.MenuIcon, { icon }),
894
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.MenuIcon, { icon }),
890
895
  label
891
896
  ]
892
897
  },
@@ -905,10 +910,10 @@ function TableHandles(props) {
905
910
  "data-axis": "row",
906
911
  className: "quoin-table-insert",
907
912
  style: place(geometry.left - BESIDE, rowInsertAt),
908
- onPointerDown: chunk5VBDRJ5Y_cjs.keepFocus,
909
- onMouseDown: chunk5VBDRJ5Y_cjs.keepFocus,
913
+ onPointerDown: chunkDZ5XR4O6_cjs.keepFocus,
914
+ onMouseDown: chunkDZ5XR4O6_cjs.keepFocus,
910
915
  onClick: () => run(addRow(block.id, rowEdge), labels.rowInserted),
911
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.Plus, { "aria-hidden": "true" })
916
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.Plus, { "aria-hidden": "true" })
912
917
  }
913
918
  ),
914
919
  colEdge !== null && columnInsertAt !== null && /* @__PURE__ */ jsxRuntime.jsx(
@@ -920,10 +925,10 @@ function TableHandles(props) {
920
925
  "data-axis": "column",
921
926
  className: "quoin-table-insert",
922
927
  style: place(columnInsertAt, geometry.top),
923
- onPointerDown: chunk5VBDRJ5Y_cjs.keepFocus,
924
- onMouseDown: chunk5VBDRJ5Y_cjs.keepFocus,
928
+ onPointerDown: chunkDZ5XR4O6_cjs.keepFocus,
929
+ onMouseDown: chunkDZ5XR4O6_cjs.keepFocus,
925
930
  onClick: () => run(addColumn(block.id, colEdge), labels.columnInserted),
926
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk5VBDRJ5Y_cjs.Plus, { "aria-hidden": "true" })
931
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkDZ5XR4O6_cjs.Plus, { "aria-hidden": "true" })
927
932
  }
928
933
  )
929
934
  ] });
@@ -964,7 +969,7 @@ function edgeNear(spans, at, reach) {
964
969
  // src/extensions/table/use-table-geometry.ts
965
970
  function useTableGeometry(controller, blockId, slot) {
966
971
  const [geometry, setGeometry] = react.useState(null);
967
- chunkUKUAQJME_cjs.useIsomorphicLayoutEffect(() => {
972
+ chunkMGN332NY_cjs.useIsomorphicLayoutEffect(() => {
968
973
  const table = controller.blockElement(blockId)?.querySelector("table");
969
974
  const view = slot.ownerDocument.defaultView;
970
975
  if (!table || !view) return;
@@ -998,7 +1003,7 @@ function useCutCells(controller) {
998
1003
  const onCut = (event) => {
999
1004
  if (controller.readOnly || cellSelection(controller.editor.state) === null) return;
1000
1005
  event.stopPropagation();
1001
- chunkUKUAQJME_cjs.handleCopy(controller, event, false);
1006
+ chunkMGN332NY_cjs.handleCopy(controller, event, false);
1002
1007
  controller.run(deleteCellContents);
1003
1008
  };
1004
1009
  root.addEventListener("cut", onCut, true);
@@ -1042,9 +1047,9 @@ function focusOf(root) {
1042
1047
  function useTableTarget(controller, held) {
1043
1048
  const [hovered, setHovered] = react.useState(null);
1044
1049
  const [focus, setFocus] = react.useState("none");
1045
- const caret = chunkUKUAQJME_cjs.useEditorState(controller, caretTarget, sameTarget);
1050
+ const caret = chunkMGN332NY_cjs.useEditorState(controller, caretTarget, sameTarget);
1046
1051
  const hoveredBlock = hovered?.target.block ?? null;
1047
- const shape = chunkUKUAQJME_cjs.useEditorState(
1052
+ const shape = chunkMGN332NY_cjs.useEditorState(
1048
1053
  controller,
1049
1054
  react.useCallback((state) => hoveredBlock === null ? null : shapeOf(state, hoveredBlock), [hoveredBlock])
1050
1055
  );
@@ -1085,14 +1090,14 @@ function useTableTarget(controller, held) {
1085
1090
  var isFocusKey = (event) => event.key === "F10" && event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
1086
1091
  var takesFocusKey = (state) => chunkFK7EBZPX_cjs.isCollapsed(state.selection) || cellSelection(state) !== null;
1087
1092
  function TableControls({ controller, labels }) {
1088
- const readOnly = chunkUKUAQJME_cjs.useReadOnly(controller);
1093
+ const readOnly = chunkMGN332NY_cjs.useReadOnly(controller);
1089
1094
  const [held, setHeld] = react.useState(null);
1090
1095
  const [focusFor, setFocusFor] = react.useState(null);
1091
1096
  const [slot, setSlot] = react.useState(null);
1092
1097
  const target = useTableTarget(controller, held?.target ?? null);
1093
1098
  useCutCells(controller);
1094
1099
  const blockId = target?.block ?? null;
1095
- const block = chunkUKUAQJME_cjs.useEditorState(
1100
+ const block = chunkMGN332NY_cjs.useEditorState(
1096
1101
  controller,
1097
1102
  react.useCallback((state) => blockId === null ? null : tableBlock(state.doc, blockId), [blockId])
1098
1103
  );
@@ -1109,13 +1114,13 @@ function TableControls({ controller, labels }) {
1109
1114
  const intercept = (event) => {
1110
1115
  const { state } = controller.editor;
1111
1116
  const caret = caretTarget(state);
1112
- if (!isFocusKey(event) || chunkUKUAQJME_cjs.isComposingKey(controller, event) || caret === null || !takesFocusKey(state)) return false;
1117
+ if (!isFocusKey(event) || chunkMGN332NY_cjs.isComposingKey(controller, event) || caret === null || !takesFocusKey(state)) return false;
1113
1118
  event.preventDefault();
1114
1119
  setHeld({ target: caret, menu: null });
1115
1120
  setFocusFor(caret.block);
1116
1121
  return true;
1117
1122
  };
1118
- return chunk5VBDRJ5Y_cjs.interceptKeys(controller, intercept);
1123
+ return chunkDZ5XR4O6_cjs.interceptKeys(controller, intercept);
1119
1124
  }, [controller, readOnly]);
1120
1125
  const onMenu = react.useCallback(
1121
1126
  (menu) => setHeld(menu === null || target === null || block === null ? null : { target, menu, opened: block }),
@@ -1126,7 +1131,7 @@ function TableControls({ controller, labels }) {
1126
1131
  setFocusFor(null);
1127
1132
  setHeld((current) => current?.menu === null ? null : current);
1128
1133
  }, []);
1129
- chunkUKUAQJME_cjs.useIsomorphicLayoutEffect(() => {
1134
+ chunkMGN332NY_cjs.useIsomorphicLayoutEffect(() => {
1130
1135
  const drawn = block === null || readOnly ? null : controlsSlot(controller, block.id);
1131
1136
  setSlot((current) => current === drawn ? current : drawn);
1132
1137
  });
@@ -1204,7 +1209,7 @@ var tableSlashItem = (labels) => ({
1204
1209
  title: labels.table,
1205
1210
  description: labels.tableDescription,
1206
1211
  group: "advanced",
1207
- icon: chunk5VBDRJ5Y_cjs.Table,
1212
+ icon: chunkDZ5XR4O6_cjs.Table,
1208
1213
  keywords: ["grid", "rows", "columns", "spreadsheet", "|"],
1209
1214
  command: () => insertTable(NEW_TABLE.rows, NEW_TABLE.cols)
1210
1215
  });
@@ -2040,6 +2040,11 @@ function createDomInputFallback(controller) {
2040
2040
  };
2041
2041
  }
2042
2042
 
2043
+ // src/ui/direction.ts
2044
+ var inlineDirection = (element) => getComputedStyle(element).direction === "rtl" ? "rtl" : "ltr";
2045
+ var MIRRORED = { ArrowLeft: "ArrowRight", ArrowRight: "ArrowLeft" };
2046
+ var arrowAsWritten = (key, direction) => direction === "rtl" && Object.hasOwn(MIRRORED, key) ? MIRRORED[key] : key;
2047
+
2043
2048
  // src/view/navigation/cross-moves.ts
2044
2049
  function moveHead(controller, { anchor }, head) {
2045
2050
  dispatchSelection(controller, textSelection(anchor, head));
@@ -2286,13 +2291,19 @@ var ARROWS = {
2286
2291
  ArrowLeft: [moveHorizontally, -1],
2287
2292
  ArrowRight: [moveHorizontally, 1]
2288
2293
  };
2294
+ var written = (controller, key) => controller.root === null ? key : arrowAsWritten(key, inlineDirection(controller.root));
2289
2295
  function isComposingKey(controller, event) {
2290
2296
  return event.isComposing || event.keyCode === 229 || controller.composingKey !== null;
2291
2297
  }
2292
- var runKeymap = (controller, event) => controller.edit(() => controller.editor.handleKey(event));
2298
+ var runKeymap = (controller, event) => {
2299
+ const name = written(controller, event.key);
2300
+ const { altKey, ctrlKey, metaKey, shiftKey } = event;
2301
+ const key = name === event.key ? event : { key: name, altKey, ctrlKey, metaKey, shiftKey };
2302
+ return controller.edit(() => controller.editor.handleKey(key));
2303
+ };
2293
2304
  function arrow(controller, event) {
2294
2305
  if (!Object.hasOwn(ARROWS, event.key) || event.ctrlKey || event.metaKey) return false;
2295
- const [move, direction] = ARROWS[event.key];
2306
+ const [move, direction] = ARROWS[written(controller, event.key)];
2296
2307
  return move(controller, direction, event.shiftKey);
2297
2308
  }
2298
2309
  var isMod = (controller, event) => controller.isMac ? event.metaKey && !event.ctrlKey : event.ctrlKey && !event.metaKey;
@@ -2449,15 +2460,15 @@ var selectionPoints = (selection) => [
2449
2460
  ];
2450
2461
  var samePoints = (a, b) => a.every((point, index) => point === b[index]);
2451
2462
  function createSelectionSync(doc, onChange) {
2452
- let written = null;
2463
+ let written2 = null;
2453
2464
  let expiry = null;
2454
2465
  function release() {
2455
- written = null;
2466
+ written2 = null;
2456
2467
  if (expiry !== null) clearTimeout(expiry);
2457
2468
  expiry = null;
2458
2469
  }
2459
2470
  function handle2() {
2460
- const suppressed = written;
2471
+ const suppressed = written2;
2461
2472
  release();
2462
2473
  if (suppressed === null || !samePoints(suppressed, selectionPoints(doc.getSelection()))) onChange();
2463
2474
  }
@@ -2468,7 +2479,7 @@ function createSelectionSync(doc, onChange) {
2468
2479
  release();
2469
2480
  },
2470
2481
  suppressNext() {
2471
- written = selectionPoints(doc.getSelection());
2482
+ written2 = selectionPoints(doc.getSelection());
2472
2483
  expiry ??= setTimeout(release, 0);
2473
2484
  }
2474
2485
  };
@@ -3022,8 +3033,14 @@ function blockStatus(state, id, choices = NO_CHOICES) {
3022
3033
  if (isHiddenAt(state.doc, index, choices)) return "hidden";
3023
3034
  return covers(state, id, index) ? "selected" : "plain";
3024
3035
  }
3036
+
3037
+ // src/view/react/callout-tones.ts
3038
+ var CALLOUT_TONES = ["info", "tip", "success", "warning", "danger"];
3039
+ function calloutTone(value) {
3040
+ return CALLOUT_TONES.find((tone) => tone === value) ?? "info";
3041
+ }
3025
3042
  var CalloutBlock = ({ block }) => {
3026
- const tone = typeof block.attrs.tone === "string" && block.attrs.tone !== "" ? block.attrs.tone : "info";
3043
+ const tone = calloutTone(block.attrs.tone);
3027
3044
  return /* @__PURE__ */ jsx("div", { className: "quoin-callout", "data-tone": tone, children: /* @__PURE__ */ jsx(EditableRegion, { block: block.id, region: "body", label: `Callout, ${tone}` }) });
3028
3045
  };
3029
3046
 
@@ -3303,6 +3320,6 @@ function EditorView({
3303
3320
  ) });
3304
3321
  }
3305
3322
 
3306
- export { BlockErrorContext, EditableRegion, EditorView, NATIVE_INTERACTION, NODE_ENTRY, TaskCheckbox, ToggleChevron, ViewController, caretClientRect, caretFromPoint, createAutoScroll, dispatchSelection, domMapOf, domToPos, drawnBlockCount, focusOwners, handleCopy, hostKey, isComposingKey, isOnFirstLine, isOnLastLine, lineEdgeRect, listen, moveToNeighbour, neighbourBlock, onBlock, posToDom, regionInline, renderInline, textDiff, useBlockDomId, useEditorState, useIsomorphicLayoutEffect, useOrderedNumber, useQuoinEditor, useReadOnly, useRegionDomId, useToggleOpen, useViewController, visibleBlockIndexes, wholeState };
3307
- //# sourceMappingURL=chunk-SE36LU6G.js.map
3308
- //# sourceMappingURL=chunk-SE36LU6G.js.map
3323
+ export { BlockErrorContext, CALLOUT_TONES, EditableRegion, EditorView, NATIVE_INTERACTION, NODE_ENTRY, TaskCheckbox, ToggleChevron, ViewController, arrowAsWritten, calloutTone, caretClientRect, caretFromPoint, createAutoScroll, dispatchSelection, domMapOf, domToPos, drawnBlockCount, focusOwners, handleCopy, hostKey, inlineDirection, isComposingKey, isOnFirstLine, isOnLastLine, lineEdgeRect, listen, moveToNeighbour, neighbourBlock, onBlock, posToDom, regionInline, renderInline, textDiff, useBlockDomId, useEditorState, useIsomorphicLayoutEffect, useOrderedNumber, useQuoinEditor, useReadOnly, useRegionDomId, useToggleOpen, useViewController, visibleBlockIndexes, wholeState };
3324
+ //# sourceMappingURL=chunk-BNTRGV4A.js.map
3325
+ //# sourceMappingURL=chunk-BNTRGV4A.js.map