@jackuait/blok 0.10.12 → 0.11.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.
Files changed (587) hide show
  1. package/README.md +36 -0
  2. package/dist/blok.cjs +1 -0
  3. package/dist/blok.iife.js +526 -0
  4. package/dist/blok.mjs +2 -2
  5. package/dist/chunks/{_basePickBy--UeZi0iS.mjs → _basePickBy-6gOwWeg0.mjs} +2 -2
  6. package/dist/chunks/_basePickBy-mUHvTE6c.cjs +1 -0
  7. package/dist/chunks/_baseUniq-BP5sM8qF.cjs +1 -0
  8. package/dist/chunks/{_baseUniq-C977U_l-.mjs → _baseUniq-BcOWmEX6.mjs} +2 -2
  9. package/dist/chunks/am-CyXvGFRE.cjs +1 -0
  10. package/dist/chunks/ar-BbusVfTp.cjs +1 -0
  11. package/dist/chunks/{arc-Woh6y3jm.mjs → arc-kVpio4JL.mjs} +2 -2
  12. package/dist/chunks/arc-lSzOinJz.cjs +1 -0
  13. package/dist/chunks/architecture-YZFGNWBL-BFcrDSEW.mjs +3 -0
  14. package/dist/chunks/architecture-YZFGNWBL-D91d5pcl.cjs +1 -0
  15. package/dist/chunks/{architectureDiagram-Q4EWVU46-GTqLmLqg.mjs → architectureDiagram-Q4EWVU46-CN6p4Aji.mjs} +19 -19
  16. package/dist/chunks/architectureDiagram-Q4EWVU46-CyW5N5Ic.cjs +36 -0
  17. package/dist/chunks/array-BMXfsgb2.cjs +1 -0
  18. package/dist/chunks/az-D7MMnw6r.cjs +1 -0
  19. package/dist/chunks/bg-C3H2Qh_2.cjs +1 -0
  20. package/dist/chunks/{blockDiagram-DXYQGD6D-CML01I1L.mjs → blockDiagram-DXYQGD6D-BvZWa5Rv.mjs} +12 -12
  21. package/dist/chunks/blockDiagram-DXYQGD6D-DmhBCLgd.cjs +132 -0
  22. package/dist/chunks/blok-CNEP3LpI.cjs +16 -0
  23. package/dist/chunks/{blok-Cb7w54t6.mjs → blok-DNvzyOYn.mjs} +1668 -1652
  24. package/dist/chunks/bn-BGOycYTM.cjs +1 -0
  25. package/dist/chunks/bs-C7amuK1D.cjs +1 -0
  26. package/dist/chunks/c-DNJHkQXQ.cjs +1 -0
  27. package/dist/chunks/{c4Diagram-AHTNJAMY-C29OuYjO.mjs → c4Diagram-AHTNJAMY-Cmc2PsEs.mjs} +5 -5
  28. package/dist/chunks/c4Diagram-AHTNJAMY-DU2IYTXY.cjs +10 -0
  29. package/dist/chunks/ccount-DtzbJUOh.cjs +1 -0
  30. package/dist/chunks/{channel-Zp_OyvEW.mjs → channel-BTWFNzkv.mjs} +1 -1
  31. package/dist/chunks/channel-BqhnS5zl.cjs +1 -0
  32. package/dist/chunks/chunk-2KRD3SAO-COfwt0om.cjs +1 -0
  33. package/dist/chunks/{chunk-2KRD3SAO-mVfUZfox.mjs → chunk-2KRD3SAO-DWLzBIZw.mjs} +1 -1
  34. package/dist/chunks/chunk-336JU56O-CqWDeAp1.cjs +1 -0
  35. package/dist/chunks/{chunk-336JU56O-mJNxs0cr.mjs → chunk-336JU56O-DbaX7hyp.mjs} +7 -7
  36. package/dist/chunks/chunk-426QAEUC-MjtXwzdI.cjs +1 -0
  37. package/dist/chunks/{chunk-426QAEUC-TajZlyP-.mjs → chunk-426QAEUC-pmH9mm_X.mjs} +2 -2
  38. package/dist/chunks/{chunk-4BX2VUAB-CsopMMb6.mjs → chunk-4BX2VUAB-B1LZI9QZ.mjs} +1 -1
  39. package/dist/chunks/chunk-4BX2VUAB-Zs4zJRk9.cjs +1 -0
  40. package/dist/chunks/{chunk-4TB4RGXK-DC963IrJ.mjs → chunk-4TB4RGXK-BC8qRYSD.mjs} +8 -8
  41. package/dist/chunks/chunk-4TB4RGXK-Bq0teBqe.cjs +206 -0
  42. package/dist/chunks/{chunk-55IACEB6-yyL3mncJ.mjs → chunk-55IACEB6-CaLO8kWA.mjs} +1 -1
  43. package/dist/chunks/chunk-55IACEB6-DyTTYuc2.cjs +1 -0
  44. package/dist/chunks/chunk-5FUZZQ4R-6rlcIGG-.cjs +62 -0
  45. package/dist/chunks/{chunk-5FUZZQ4R-Dr4NE8rh.mjs → chunk-5FUZZQ4R-DAWdfx4J.mjs} +7 -7
  46. package/dist/chunks/{chunk-5PVQY5BW-BP7ENjg7.mjs → chunk-5PVQY5BW-7Voh8aPS.mjs} +4 -4
  47. package/dist/chunks/chunk-5PVQY5BW-DmATt7Fz.cjs +2 -0
  48. package/dist/chunks/{chunk-67CJDMHE-Dbl-PjEf.mjs → chunk-67CJDMHE-DSEGOn_f.mjs} +1 -1
  49. package/dist/chunks/chunk-67CJDMHE-zWcmgvwZ.cjs +1 -0
  50. package/dist/chunks/chunk-7N4EOEYR-CAuNhdG9.cjs +1 -0
  51. package/dist/chunks/{chunk-7N4EOEYR-p-g3cKuX.mjs → chunk-7N4EOEYR-CnSg1Hfu.mjs} +1 -1
  52. package/dist/chunks/{chunk-AA7GKIK3-Dt0Kr5Va.mjs → chunk-AA7GKIK3-BmatWFnp.mjs} +1 -1
  53. package/dist/chunks/chunk-AA7GKIK3-YMbh5HEs.cjs +1 -0
  54. package/dist/chunks/{chunk-BSJP7CBP-DGU2WHwh.mjs → chunk-BSJP7CBP-BtFfqv7R.mjs} +1 -1
  55. package/dist/chunks/chunk-BSJP7CBP-CjkEoJDh.cjs +1 -0
  56. package/dist/chunks/chunk-CIAEETIT-BP9BiKe5.cjs +1 -0
  57. package/dist/chunks/{chunk-CIAEETIT-BQ4crY5r.mjs → chunk-CIAEETIT-nVgPUEW1.mjs} +1 -1
  58. package/dist/chunks/chunk-EDXVE4YY-Bw1v2mUF.cjs +1 -0
  59. package/dist/chunks/{chunk-EDXVE4YY-B9_aGwkV.mjs → chunk-EDXVE4YY-e7599cf4.mjs} +2 -2
  60. package/dist/chunks/chunk-ENJZ2VHE-9fAN50L-.cjs +10 -0
  61. package/dist/chunks/{chunk-ENJZ2VHE-23pY8ft5.mjs → chunk-ENJZ2VHE-DaMNdqfV.mjs} +10 -10
  62. package/dist/chunks/chunk-FMBD7UC4-CH_SSwhS.cjs +15 -0
  63. package/dist/chunks/{chunk-FMBD7UC4-D_RQlBGX.mjs → chunk-FMBD7UC4-xT5c0WSd.mjs} +1 -1
  64. package/dist/chunks/{chunk-FOC6F5B3-CJfr-iwx.mjs → chunk-FOC6F5B3-AxSG6qaj.mjs} +1 -1
  65. package/dist/chunks/chunk-FOC6F5B3-ScFIigAO.cjs +1 -0
  66. package/dist/chunks/chunk-ICPOFSXX-DQ4NxQTM.cjs +122 -0
  67. package/dist/chunks/{chunk-ICPOFSXX-BOvOTlG6.mjs → chunk-ICPOFSXX-DbL0YBQf.mjs} +2 -2
  68. package/dist/chunks/chunk-K5T4RW27-BdGvq1o8.cjs +94 -0
  69. package/dist/chunks/{chunk-K5T4RW27-CHSI0vpp.mjs → chunk-K5T4RW27-CYdwJMQV.mjs} +5 -5
  70. package/dist/chunks/{chunk-KGLVRYIC-ngXT4XVA.mjs → chunk-KGLVRYIC-BwOmLwqF.mjs} +1 -1
  71. package/dist/chunks/chunk-KGLVRYIC-uzPiXgAg.cjs +1 -0
  72. package/dist/chunks/chunk-Kud-AIAt.cjs +1 -0
  73. package/dist/chunks/chunk-LIHQZDEY-ChgbfPTz.cjs +1 -0
  74. package/dist/chunks/{chunk-LIHQZDEY-CnP7bym1.mjs → chunk-LIHQZDEY-Csx8-523.mjs} +1 -1
  75. package/dist/chunks/{chunk-ORNJ4GCN-BPaghT45.mjs → chunk-ORNJ4GCN-CCDHRflI.mjs} +1 -1
  76. package/dist/chunks/chunk-ORNJ4GCN-HF28XIop.cjs +1 -0
  77. package/dist/chunks/{chunk-OYMX7WX6-CKjTvqTg.mjs → chunk-OYMX7WX6-BAoDgMPF.mjs} +6 -6
  78. package/dist/chunks/chunk-OYMX7WX6-CGUpemDb.cjs +231 -0
  79. package/dist/chunks/{chunk-QZHKN3VN-uW1N2UWF.mjs → chunk-QZHKN3VN-D1myzhE_.mjs} +1 -1
  80. package/dist/chunks/chunk-QZHKN3VN-d_ESXyai.cjs +1 -0
  81. package/dist/chunks/{chunk-U2HBQHQK-DiQOEtQH.mjs → chunk-U2HBQHQK-BXyrI_xP.mjs} +3 -3
  82. package/dist/chunks/chunk-U2HBQHQK-D62A_XCV.cjs +70 -0
  83. package/dist/chunks/chunk-X2U36JSP-BEHpYlmW.cjs +1 -0
  84. package/dist/chunks/{chunk-X2U36JSP-Cznp5Jm-.mjs → chunk-X2U36JSP-CXhWYelJ.mjs} +2 -2
  85. package/dist/chunks/chunk-XPW4576I-BidQL50C.cjs +32 -0
  86. package/dist/chunks/{chunk-XPW4576I-W5t_agZI.mjs → chunk-XPW4576I-DOztVf6t.mjs} +1 -1
  87. package/dist/chunks/{chunk-YZCP3GAM-BV02tG_z.mjs → chunk-YZCP3GAM-DrkjtME-.mjs} +3 -3
  88. package/dist/chunks/chunk-YZCP3GAM-DuLQPyT4.cjs +1 -0
  89. package/dist/chunks/{chunk-ZZ45TVLE-D28EyJ6R.mjs → chunk-ZZ45TVLE-CSFFLvxb.mjs} +3 -3
  90. package/dist/chunks/chunk-ZZ45TVLE-CZOUDLGO.cjs +1 -0
  91. package/dist/chunks/classDiagram-6PBFFD2Q-Ci3S9iu3.mjs +30 -0
  92. package/dist/chunks/classDiagram-6PBFFD2Q-GDkPRBlp.cjs +1 -0
  93. package/dist/chunks/classDiagram-v2-HSJHXN6E-B4vt694Q.cjs +1 -0
  94. package/dist/chunks/classDiagram-v2-HSJHXN6E-BkaFKbgJ.mjs +30 -0
  95. package/dist/chunks/{clone-CUNvBGto.mjs → clone-WSLD7bVs.mjs} +1 -1
  96. package/dist/chunks/clone-_XTzxdN3.cjs +1 -0
  97. package/dist/chunks/constants-DJjFgioo.cjs +451 -0
  98. package/dist/chunks/{constants-C0aZXxoO.mjs → constants-DMsOCPcF.mjs} +14 -12
  99. package/dist/chunks/core-C8BHLAAO.cjs +12 -0
  100. package/dist/chunks/{core-B7mxBIHA.mjs → core-D2KrVz4a.mjs} +1 -1
  101. package/dist/chunks/{cose-bilkent-S5V4N54A-D-Xgf_Xn.mjs → cose-bilkent-S5V4N54A-BXBidSxC.mjs} +2 -2
  102. package/dist/chunks/cose-bilkent-S5V4N54A-RkR02HV4.cjs +1 -0
  103. package/dist/chunks/cpp-DVBevX-J.cjs +1 -0
  104. package/dist/chunks/{cpp-DaTV1RSp.mjs → cpp-DnMQuZPn.mjs} +2 -2
  105. package/dist/chunks/cs-BUD3Muxp.cjs +1 -0
  106. package/dist/chunks/csharp-CHUT4JOq.cjs +1 -0
  107. package/dist/chunks/css-QEheyxtB.cjs +1 -0
  108. package/dist/chunks/cytoscape.esm-CjWrb5SM.cjs +321 -0
  109. package/dist/chunks/da-CO2FYbLa.cjs +1 -0
  110. package/dist/chunks/{dagre-dysBn-m8.mjs → dagre-C7z2UZ4M.mjs} +6 -6
  111. package/dist/chunks/dagre-KV5264BT-B5pZgbkN.cjs +4 -0
  112. package/dist/chunks/{dagre-KV5264BT-BB3SAlfA.mjs → dagre-KV5264BT-Ct6qUqKI.mjs} +15 -15
  113. package/dist/chunks/dagre-VHP8Ngkv.cjs +1 -0
  114. package/dist/chunks/dart-jPH5d8ma.cjs +1 -0
  115. package/dist/chunks/de-B8nkOjfD.cjs +1 -0
  116. package/dist/chunks/default-DP8dtTxC.cjs +1 -0
  117. package/dist/chunks/defaultLocale-BxWls4I1.cjs +1 -0
  118. package/dist/chunks/{diagram-5BDNPKRD-B1410bPG.mjs → diagram-5BDNPKRD-B9hNG7ht.mjs} +18 -18
  119. package/dist/chunks/diagram-5BDNPKRD-C1llOHQP.cjs +10 -0
  120. package/dist/chunks/{diagram-G4DWMVQ6-CdhBBETB.mjs → diagram-G4DWMVQ6-9_YOaVXe.mjs} +21 -21
  121. package/dist/chunks/diagram-G4DWMVQ6-CLdEGHkn.cjs +24 -0
  122. package/dist/chunks/diagram-MMDJMWI5-CnbiCUM3.cjs +43 -0
  123. package/dist/chunks/{diagram-MMDJMWI5-B3HWfHe1.mjs → diagram-MMDJMWI5-DmStUoNk.mjs} +17 -17
  124. package/dist/chunks/diagram-TYMM5635-BtMB4AKf.cjs +24 -0
  125. package/dist/chunks/{diagram-TYMM5635-D0JzRYCN.mjs → diagram-TYMM5635-DmrkkW85.mjs} +17 -17
  126. package/dist/chunks/dist-CxdzFxpy.cjs +1 -0
  127. package/dist/chunks/dockerfile-B2jMQOes.cjs +1 -0
  128. package/dist/chunks/el-D2ILhp1-.cjs +1 -0
  129. package/dist/chunks/engine-javascript-HHRWd9yA.cjs +141 -0
  130. package/dist/chunks/{erDiagram-SMLLAGMA-DfIG0QBk.mjs → erDiagram-SMLLAGMA-5vkZ5DwJ.mjs} +14 -14
  131. package/dist/chunks/erDiagram-SMLLAGMA-luvZB3lF.cjs +85 -0
  132. package/dist/chunks/es-DXxnOS9P.cjs +1 -0
  133. package/dist/chunks/et-mT4xnDc7.cjs +1 -0
  134. package/dist/chunks/fa-D9CUFSHX.cjs +1 -0
  135. package/dist/chunks/fi-DpCqdl_1.cjs +1 -0
  136. package/dist/chunks/fil-BjeZREJI.cjs +1 -0
  137. package/dist/chunks/flowDiagram-DWJPFMVM-BpYbAeYP.cjs +162 -0
  138. package/dist/chunks/{flowDiagram-DWJPFMVM-BOL8JsQX.mjs → flowDiagram-DWJPFMVM-CGTiQBd7.mjs} +17 -17
  139. package/dist/chunks/fr-DYmwW1y1.cjs +1 -0
  140. package/dist/chunks/{ganttDiagram-T4ZO3ILL-CiUr_YRw.mjs → ganttDiagram-T4ZO3ILL-BNtXyM0I.mjs} +7 -7
  141. package/dist/chunks/ganttDiagram-T4ZO3ILL-BaWZufgI.cjs +292 -0
  142. package/dist/chunks/gitGraph-7Q5UKJZL-Ds_Z9h4o.cjs +1 -0
  143. package/dist/chunks/gitGraph-7Q5UKJZL-DxMmuJIv.mjs +3 -0
  144. package/dist/chunks/{gitGraphDiagram-UUTBAWPF-CtNkTTWO.mjs → gitGraphDiagram-UUTBAWPF-CmQR-xZp.mjs} +17 -17
  145. package/dist/chunks/gitGraphDiagram-UUTBAWPF-DjMU1Vyg.cjs +106 -0
  146. package/dist/chunks/go-BX-cNLGO.cjs +1 -0
  147. package/dist/chunks/{graphlib-BXNPwKuI.mjs → graphlib-BfwqhpXp.mjs} +3 -3
  148. package/dist/chunks/graphlib-CYv_-0LK.cjs +1 -0
  149. package/dist/chunks/{graphql-DNumR9m-.mjs → graphql-4Htarzhp.mjs} +2 -2
  150. package/dist/chunks/graphql-BnxAS09v.cjs +1 -0
  151. package/dist/chunks/gu-4g6NA9h8.cjs +1 -0
  152. package/dist/chunks/he-2H5DcbO0.cjs +1 -0
  153. package/dist/chunks/hi-Dvb4O5oj.cjs +1 -0
  154. package/dist/chunks/hr-B4Y5vULZ.cjs +1 -0
  155. package/dist/chunks/html-CAN0GHkJ.cjs +1 -0
  156. package/dist/chunks/{html-CanPsi1Y.mjs → html-DW39yhuS.mjs} +2 -2
  157. package/dist/chunks/hu-D3Pi7CJx.cjs +1 -0
  158. package/dist/chunks/hy-DZ74SDlC.cjs +1 -0
  159. package/dist/chunks/i18next-CkovSPO7.cjs +1 -0
  160. package/dist/chunks/{i18next-loader-453gJdot.mjs → i18next-loader-CyDs2NKf.mjs} +2 -2
  161. package/dist/chunks/i18next-loader-cGwOOjK3.cjs +1 -0
  162. package/dist/chunks/id-WfjZeYKN.cjs +1 -0
  163. package/dist/chunks/info-OMHHGYJF-ChWZqC0a.mjs +3 -0
  164. package/dist/chunks/info-OMHHGYJF-u0RRQ9Uo.cjs +1 -0
  165. package/dist/chunks/{infoDiagram-42DDH7IO-CD7nVBvi.mjs → infoDiagram-42DDH7IO-BbV_tozh.mjs} +14 -14
  166. package/dist/chunks/infoDiagram-42DDH7IO-DOYkYMWg.cjs +2 -0
  167. package/dist/chunks/init-BvlcnoG2.cjs +1 -0
  168. package/dist/chunks/isArrayLikeObject-CnaR8YJm.cjs +1 -0
  169. package/dist/chunks/isEmpty-BHdznGlG.cjs +1 -0
  170. package/dist/chunks/{isEmpty-D8B0aRsG.mjs → isEmpty-jlCmuYeg.mjs} +1 -1
  171. package/dist/chunks/ishikawaDiagram-UXIWVN3A-CbqoivFu.cjs +70 -0
  172. package/dist/chunks/{ishikawaDiagram-UXIWVN3A-BOaC9qJs.mjs → ishikawaDiagram-UXIWVN3A-DJBG3b-A.mjs} +6 -6
  173. package/dist/chunks/it-hqsqt6f7.cjs +1 -0
  174. package/dist/chunks/ja-BwLgKsdH.cjs +1 -0
  175. package/dist/chunks/java-O-rzZ2Bn.cjs +1 -0
  176. package/dist/chunks/javascript-z9G2vOAZ.cjs +1 -0
  177. package/dist/chunks/journeyDiagram-VCZTEJTY-B5Peb7wS.cjs +139 -0
  178. package/dist/chunks/{journeyDiagram-VCZTEJTY-DKf55ZdJ.mjs → journeyDiagram-VCZTEJTY-BdMsFn3r.mjs} +6 -6
  179. package/dist/chunks/json-C_epQRuA.cjs +1 -0
  180. package/dist/chunks/ka-xoKako16.cjs +1 -0
  181. package/dist/chunks/kanban-definition-6JOO6SKY-CwmSo6Ve.cjs +89 -0
  182. package/dist/chunks/{kanban-definition-6JOO6SKY-D2CrAXqB.mjs → kanban-definition-6JOO6SKY-ncNaxcxH.mjs} +11 -11
  183. package/dist/chunks/katex-_C7fvrbX.cjs +265 -0
  184. package/dist/chunks/km-D7Fl8wAA.cjs +1 -0
  185. package/dist/chunks/kn-Ckju1oeq.cjs +1 -0
  186. package/dist/chunks/ko-Dt1tQEjC.cjs +1 -0
  187. package/dist/chunks/kotlin-Dj7KFgV1.cjs +1 -0
  188. package/dist/chunks/ku-_i2C5XD5.cjs +1 -0
  189. package/dist/chunks/{latex-DY1HNB4U.mjs → latex-BeVX0E4Z.mjs} +1 -1
  190. package/dist/chunks/latex-u7qVP95p.cjs +1 -0
  191. package/dist/chunks/lightweight-i18n-CGBjC2TJ.cjs +1 -0
  192. package/dist/chunks/line-B7XG48Uf.cjs +1 -0
  193. package/dist/chunks/{line-CuvDsrkE.mjs → line-CWJNfvdn.mjs} +3 -3
  194. package/dist/chunks/{linear-JRIqMpGQ.mjs → linear-BU4OjSPS.mjs} +3 -3
  195. package/dist/chunks/linear-D5j5Vgij.cjs +1 -0
  196. package/dist/chunks/lo-DfEpgG9m.cjs +1 -0
  197. package/dist/chunks/lt-BwLILIED.cjs +1 -0
  198. package/dist/chunks/lua-6ceNckPi.cjs +1 -0
  199. package/dist/chunks/{lua-COOfzihE.mjs → lua-CPnWrc7C.mjs} +1 -1
  200. package/dist/chunks/lv-DdrYab3x.cjs +1 -0
  201. package/dist/chunks/markdown-Vce1p-mO.cjs +1 -0
  202. package/dist/chunks/mdast-util-math-B9OHoBuN.cjs +5 -0
  203. package/dist/chunks/{mdast-util-math-D56mMxhB.mjs → mdast-util-math-D42zbZda.mjs} +1 -1
  204. package/dist/chunks/mermaid-Cu5vPKfS.cjs +1 -0
  205. package/dist/chunks/mermaid-parser.core-BrZQFEht.cjs +3 -0
  206. package/dist/chunks/{mermaid-parser.core-BhpZC2lA.mjs → mermaid-parser.core-DBhkcRo7.mjs} +10 -10
  207. package/dist/chunks/mermaid.core-GiTRPJLF.cjs +10 -0
  208. package/dist/chunks/{mermaid.core-C40gcVfv.mjs → mermaid.core-uSzF9nF1.mjs} +45 -45
  209. package/dist/chunks/messages--CbdZY2w.cjs +1 -0
  210. package/dist/chunks/messages-1hpCmcb5.cjs +1 -0
  211. package/dist/chunks/messages-4_3WFJMy2.cjs +1 -0
  212. package/dist/chunks/messages-ADxG1iWK2.cjs +1 -0
  213. package/dist/chunks/messages-B3MONaxw2.cjs +1 -0
  214. package/dist/chunks/messages-B3tNgyxG2.cjs +1 -0
  215. package/dist/chunks/messages-B91FdwB0.cjs +1 -0
  216. package/dist/chunks/messages-B9igXgiw.cjs +1 -0
  217. package/dist/chunks/messages-BB1xM_oB.cjs +1 -0
  218. package/dist/chunks/messages-BGZLiYrQ.cjs +1 -0
  219. package/dist/chunks/messages-BK6gK3wu.cjs +1 -0
  220. package/dist/chunks/messages-BKmAFG9Z.cjs +1 -0
  221. package/dist/chunks/messages-BMVJq-1T.cjs +1 -0
  222. package/dist/chunks/messages-BMsqJNz0.cjs +1 -0
  223. package/dist/chunks/messages-BSVhckNg.cjs +1 -0
  224. package/dist/chunks/messages-BUaHDggs.cjs +1 -0
  225. package/dist/chunks/messages-BUaJv5qS.cjs +1 -0
  226. package/dist/chunks/messages-BXcSH14N.cjs +1 -0
  227. package/dist/chunks/messages-BYOYrUOu.cjs +1 -0
  228. package/dist/chunks/messages-BYSE1Iq2.cjs +1 -0
  229. package/dist/chunks/messages-Bb225KE6.cjs +1 -0
  230. package/dist/chunks/messages-BiDR95AW.cjs +1 -0
  231. package/dist/chunks/messages-BkAoxm6t.cjs +1 -0
  232. package/dist/chunks/messages-BpUasRQ3.cjs +1 -0
  233. package/dist/chunks/messages-BxV8K7y42.cjs +1 -0
  234. package/dist/chunks/messages-Bxhns4Ui.cjs +1 -0
  235. package/dist/chunks/messages-C0sxGmLV2.cjs +1 -0
  236. package/dist/chunks/messages-C5nqE8O42.cjs +1 -0
  237. package/dist/chunks/messages-C7il6l-S.cjs +1 -0
  238. package/dist/chunks/messages-CFyGEGXM2.cjs +1 -0
  239. package/dist/chunks/messages-CN2yjHzW.cjs +1 -0
  240. package/dist/chunks/messages-CTy_3-mw2.cjs +1 -0
  241. package/dist/chunks/messages-C_ogasse2.cjs +1 -0
  242. package/dist/chunks/messages-CbFuceEb.cjs +1 -0
  243. package/dist/chunks/messages-CbbYb7cc.cjs +1 -0
  244. package/dist/chunks/messages-CfO5kKI72.cjs +1 -0
  245. package/dist/chunks/messages-Cgv5DuNV.cjs +1 -0
  246. package/dist/chunks/messages-CkBrRFY02.cjs +1 -0
  247. package/dist/chunks/messages-CpppvIiu.cjs +1 -0
  248. package/dist/chunks/messages-D8-vyZ2V.cjs +1 -0
  249. package/dist/chunks/messages-DIpVfyX-2.cjs +1 -0
  250. package/dist/chunks/messages-DJBeEI7G.cjs +1 -0
  251. package/dist/chunks/messages-DR8nFHdw2.cjs +1 -0
  252. package/dist/chunks/messages-DT5Ux3el.cjs +1 -0
  253. package/dist/chunks/messages-Da2SYMf52.cjs +1 -0
  254. package/dist/chunks/messages-DaaqkvOz2.cjs +1 -0
  255. package/dist/chunks/messages-DdiqfVCc.cjs +1 -0
  256. package/dist/chunks/messages-DfZe7SKZ.cjs +1 -0
  257. package/dist/chunks/messages-DkJ0bcqu.cjs +1 -0
  258. package/dist/chunks/messages-DkmG49t8.cjs +1 -0
  259. package/dist/chunks/messages-Do4o9ckW.cjs +1 -0
  260. package/dist/chunks/messages-DrbTe09r.cjs +1 -0
  261. package/dist/chunks/messages-DtgIZDlN.cjs +1 -0
  262. package/dist/chunks/messages-DxCaGN-Q2.cjs +1 -0
  263. package/dist/chunks/messages-DxpBJ5ZY.cjs +1 -0
  264. package/dist/chunks/messages-DyWu9_0D.cjs +1 -0
  265. package/dist/chunks/messages-Hg0BECWK.cjs +1 -0
  266. package/dist/chunks/messages-JlduXweH2.cjs +1 -0
  267. package/dist/chunks/messages-Km2PU_o7.cjs +1 -0
  268. package/dist/chunks/messages-MgJnGL9X2.cjs +1 -0
  269. package/dist/chunks/messages-PIoKW4js2.cjs +1 -0
  270. package/dist/chunks/messages-VEm9mp5H.cjs +1 -0
  271. package/dist/chunks/messages-WgwkG5PL2.cjs +1 -0
  272. package/dist/chunks/messages-X46KAUoI.cjs +1 -0
  273. package/dist/chunks/messages-ZZd1ckSO2.cjs +1 -0
  274. package/dist/chunks/messages-vRqPeNM_.cjs +1 -0
  275. package/dist/chunks/messages-vhq442qv.cjs +1 -0
  276. package/dist/chunks/micromark-extension-math-BXJknrtf.cjs +1 -0
  277. package/dist/chunks/{micromark-extension-math-D-s54WWf.mjs → micromark-extension-math-x3wvkKaN.mjs} +2 -2
  278. package/dist/chunks/micromark-factory-space-BnsBDplI.cjs +1 -0
  279. package/dist/chunks/mindmap-definition-QFDTVHPH-6O8s-b35.cjs +96 -0
  280. package/dist/chunks/{mindmap-definition-QFDTVHPH-C-0fwUUS.mjs → mindmap-definition-QFDTVHPH-BfOyKFtC.mjs} +13 -13
  281. package/dist/chunks/mk-CsPHE4cO.cjs +1 -0
  282. package/dist/chunks/ml-CAsiw8BP.cjs +1 -0
  283. package/dist/chunks/mn-Db6DwHPv.cjs +1 -0
  284. package/dist/chunks/mr-BBAuoEIQ.cjs +1 -0
  285. package/dist/chunks/ms-Cfv7BOEG.cjs +1 -0
  286. package/dist/chunks/my-DOLHceI8.cjs +1 -0
  287. package/dist/chunks/native-DbFHGXp1.cjs +1 -0
  288. package/dist/chunks/ne-B2gHspK_.cjs +1 -0
  289. package/dist/chunks/nl-C5ezxTkA.cjs +1 -0
  290. package/dist/chunks/no-D4hjenPs.cjs +1 -0
  291. package/dist/chunks/notifier-B-wErJJB.mjs +73 -0
  292. package/dist/chunks/notifier-CwnFVNdD.cjs +1 -0
  293. package/dist/chunks/objectSpread2-iNkE6aJh.cjs +1 -0
  294. package/dist/chunks/objectWithoutProperties-BbzyiphF.cjs +1 -0
  295. package/dist/chunks/one-light-D2mpnHEP.cjs +1 -0
  296. package/dist/chunks/{ordinal-fyJMP-lj.mjs → ordinal-CN3SDQau.mjs} +1 -1
  297. package/dist/chunks/ordinal-DFFZs5-y.cjs +1 -0
  298. package/dist/chunks/pa-CemLebw7.cjs +1 -0
  299. package/dist/chunks/packet-4T2RLAQJ-7DW35MGl.mjs +3 -0
  300. package/dist/chunks/packet-4T2RLAQJ-B5XvZd2W.cjs +1 -0
  301. package/dist/chunks/path-CLcQoP7n.cjs +1 -0
  302. package/dist/chunks/php-BMavm1CR.cjs +1 -0
  303. package/dist/chunks/{php-DA-SOiqC.mjs → php-Dejkjxb5.mjs} +6 -6
  304. package/dist/chunks/pie-ZZUOXDRM-Dtuq0w2k.mjs +3 -0
  305. package/dist/chunks/pie-ZZUOXDRM-SOG0aDPa.cjs +1 -0
  306. package/dist/chunks/{pieDiagram-DEJITSTG-BPyqheXv.mjs → pieDiagram-DEJITSTG-B1sjciNi.mjs} +21 -21
  307. package/dist/chunks/pieDiagram-DEJITSTG-BkEwYBz9.cjs +30 -0
  308. package/dist/chunks/pl-D_sFAkCs.cjs +1 -0
  309. package/dist/chunks/ps-ygHHO68A.cjs +1 -0
  310. package/dist/chunks/pt-x_mmaTtD.cjs +1 -0
  311. package/dist/chunks/python-Dcoit5Q5.cjs +1 -0
  312. package/dist/chunks/{quadrantDiagram-34T5L4WZ-kOZ1zIXB.mjs → quadrantDiagram-34T5L4WZ-CV838wf-.mjs} +4 -4
  313. package/dist/chunks/quadrantDiagram-34T5L4WZ-RJme4lkz.cjs +7 -0
  314. package/dist/chunks/r-BdDCwgEs.cjs +1 -0
  315. package/dist/chunks/radar-PYXPWWZC-Bz4lwSbg.mjs +3 -0
  316. package/dist/chunks/radar-PYXPWWZC-Doch8Lt3.cjs +1 -0
  317. package/dist/chunks/{requirementDiagram-MS252O5E-C8Zkq6Lq.mjs → requirementDiagram-MS252O5E-CA3LUAVZ.mjs} +13 -13
  318. package/dist/chunks/requirementDiagram-MS252O5E-CMqFsK_K.cjs +84 -0
  319. package/dist/chunks/ro-CLGSgHzJ.cjs +1 -0
  320. package/dist/chunks/rough.esm-BaIXPgTh.cjs +1 -0
  321. package/dist/chunks/ru-LpaLXWmO.cjs +1 -0
  322. package/dist/chunks/ruby-DHm8_lqY.cjs +1 -0
  323. package/dist/chunks/{ruby-HDUjp8gK.mjs → ruby-Z7wCYjey.mjs} +11 -11
  324. package/dist/chunks/rust-Cdm0j4IC.cjs +1 -0
  325. package/dist/chunks/sankeyDiagram-XADWPNL6-BPaUkDQv.cjs +10 -0
  326. package/dist/chunks/{sankeyDiagram-XADWPNL6-B0FhkAL9.mjs → sankeyDiagram-XADWPNL6-Cw8wB2YO.mjs} +3 -3
  327. package/dist/chunks/scala-Tb1u_9W3.cjs +1 -0
  328. package/dist/chunks/sd-B5PS8K1I.cjs +1 -0
  329. package/dist/chunks/sequenceDiagram-FGHM5R23-DbM-gyMR.cjs +157 -0
  330. package/dist/chunks/{sequenceDiagram-FGHM5R23-Dv2H5Lbc.mjs → sequenceDiagram-FGHM5R23-pm0MaeXC.mjs} +7 -7
  331. package/dist/chunks/shellscript-D6KsENaG.cjs +1 -0
  332. package/dist/chunks/si-BjMoO5xu.cjs +1 -0
  333. package/dist/chunks/sk-pQPYnDDU.cjs +1 -0
  334. package/dist/chunks/sl-B_yalM3h.cjs +1 -0
  335. package/dist/chunks/sq-gzZkHXFJ.cjs +1 -0
  336. package/dist/chunks/sql-BlpbD7FB.cjs +1 -0
  337. package/dist/chunks/sr-O4v1KJY1.cjs +1 -0
  338. package/dist/chunks/src-d9yswOqA.cjs +1 -0
  339. package/dist/chunks/stateDiagram-FHFEXIEX-CEcLtV9Z.cjs +1 -0
  340. package/dist/chunks/{stateDiagram-FHFEXIEX-D1vcO7H_.mjs → stateDiagram-FHFEXIEX-CMcsvm0M.mjs} +17 -17
  341. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-C4nZGNBm.mjs +28 -0
  342. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-aa692V81.cjs +1 -0
  343. package/dist/chunks/sv-D0tEFwN7.cjs +1 -0
  344. package/dist/chunks/sw-DE8oPVEt.cjs +1 -0
  345. package/dist/chunks/swift-DubrdZus.cjs +1 -0
  346. package/dist/chunks/ta-BCVLtFMU.cjs +1 -0
  347. package/dist/chunks/te-BISdOeGS.cjs +1 -0
  348. package/dist/chunks/th-CJXhSA-L.cjs +1 -0
  349. package/dist/chunks/{timeline-definition-GMOUNBTQ-DJmJ0TPa.mjs → timeline-definition-GMOUNBTQ-DwHKPj3j.mjs} +6 -6
  350. package/dist/chunks/timeline-definition-GMOUNBTQ-ceXDJGg_.cjs +120 -0
  351. package/dist/chunks/{tools-vS7102lG.mjs → tools-DPov06L-.mjs} +116 -110
  352. package/dist/chunks/tools-NAqHj-Cy.cjs +9 -0
  353. package/dist/chunks/tr-BjTvmhJt.cjs +1 -0
  354. package/dist/chunks/treeView-SZITEDCU-BUuSm_Hn.cjs +1 -0
  355. package/dist/chunks/treeView-SZITEDCU-DPG9FJ6Q.mjs +3 -0
  356. package/dist/chunks/treemap-W4RFUUIX-BerKlw0i.cjs +1 -0
  357. package/dist/chunks/treemap-W4RFUUIX-N4tZJR1-.mjs +3 -0
  358. package/dist/chunks/tw-CjHZc17C.cjs +1 -0
  359. package/dist/chunks/types-BNvlbr9u.mjs +4 -0
  360. package/dist/chunks/types-BQX8SD8Q.cjs +1 -0
  361. package/dist/chunks/typescript-BKtlqLze.cjs +1 -0
  362. package/dist/chunks/ug-DsQjxbOa.cjs +1 -0
  363. package/dist/chunks/uk-BPzbNIjw.cjs +1 -0
  364. package/dist/chunks/ur-Do8k1hR-.cjs +1 -0
  365. package/dist/chunks/vennDiagram-DHZGUBPP-BzOeMJe8.cjs +34 -0
  366. package/dist/chunks/{vennDiagram-DHZGUBPP-Dx1rMP24.mjs → vennDiagram-DHZGUBPP-Gfy0QWtB.mjs} +6 -6
  367. package/dist/chunks/vi-CCTEx9XR.cjs +1 -0
  368. package/dist/chunks/vitesse-dark-BSL-cCXL.cjs +1 -0
  369. package/dist/chunks/wardley-RL74JXVD-BzKtPJ3g.cjs +1 -0
  370. package/dist/chunks/wardley-RL74JXVD-C7Hzc5y2.mjs +3 -0
  371. package/dist/chunks/{wardleyDiagram-NUSXRM2D-Dnm6lvMn.mjs → wardleyDiagram-NUSXRM2D-ChZiL3a0.mjs} +15 -15
  372. package/dist/chunks/wardleyDiagram-NUSXRM2D-qo6LFohO.cjs +20 -0
  373. package/dist/chunks/{xml-Dq1lpp8G.mjs → xml-C1PUeKuL.mjs} +1 -1
  374. package/dist/chunks/xml-CwiH0x4E.cjs +1 -0
  375. package/dist/chunks/xychartDiagram-5P7HB3ND-CH1Z2Cbf.cjs +7 -0
  376. package/dist/chunks/{xychartDiagram-5P7HB3ND-C9wFc2e9.mjs → xychartDiagram-5P7HB3ND-t_dhLiOA.mjs} +11 -11
  377. package/dist/chunks/yaml-CkVxfQ4c.cjs +1 -0
  378. package/dist/chunks/zh-Ive4on8E.cjs +1 -0
  379. package/dist/full.cjs +1 -0
  380. package/dist/full.mjs +3 -3
  381. package/dist/markdown.cjs +3 -0
  382. package/dist/markdown.mjs +4 -4
  383. package/dist/react.cjs +1 -0
  384. package/dist/react.mjs +2 -2
  385. package/dist/tools.cjs +1 -0
  386. package/dist/tools.mjs +2 -2
  387. package/package.json +17 -8
  388. package/src/blok.ts +5 -0
  389. package/src/components/modules/api/blocks.ts +34 -0
  390. package/src/components/modules/api/notifier.ts +24 -11
  391. package/src/components/modules/renderer.ts +7 -0
  392. package/src/components/ui/toolbox.ts +30 -25
  393. package/src/components/utils/notifier/draw.ts +43 -143
  394. package/src/components/utils/notifier/index.ts +76 -37
  395. package/src/components/utils/notifier/types.ts +3 -0
  396. package/src/components/utils/notifier.ts +17 -4
  397. package/src/components/utils/popover/popover-desktop.ts +23 -2
  398. package/src/styles/main.css +19 -0
  399. package/src/tools/callout/index.ts +8 -1
  400. package/src/tools/callout/types.ts +8 -1
  401. package/types/configs/blok-config.d.ts +15 -0
  402. package/types/configs/notifier.d.ts +11 -0
  403. package/dist/chunks/architecture-YZFGNWBL-aVO23UKm.mjs +0 -3
  404. package/dist/chunks/classDiagram-6PBFFD2Q-DXsClapu.mjs +0 -30
  405. package/dist/chunks/classDiagram-v2-HSJHXN6E-B6TlQ_PM.mjs +0 -30
  406. package/dist/chunks/gitGraph-7Q5UKJZL-B3aq166w.mjs +0 -3
  407. package/dist/chunks/info-OMHHGYJF-SX91-Wub.mjs +0 -3
  408. package/dist/chunks/notifier-PpnFhM0m.mjs +0 -96
  409. package/dist/chunks/packet-4T2RLAQJ-suhU85JN.mjs +0 -3
  410. package/dist/chunks/pie-ZZUOXDRM-DF5e16CP.mjs +0 -3
  411. package/dist/chunks/radar-PYXPWWZC-DgzodpRv.mjs +0 -3
  412. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-AoHzFiaI.mjs +0 -28
  413. package/dist/chunks/treeView-SZITEDCU-C1mc9PWf.mjs +0 -3
  414. package/dist/chunks/treemap-W4RFUUIX-ClV9Slyp.mjs +0 -3
  415. package/dist/chunks/wardley-RL74JXVD-Dj7t7jHR.mjs +0 -3
  416. /package/dist/chunks/{am-Bbd7cTHS.mjs → am-JTszxMum.mjs} +0 -0
  417. /package/dist/chunks/{ar-Bo71sCQE.mjs → ar-CME8m7Ug.mjs} +0 -0
  418. /package/dist/chunks/{array-DbiMs_0t.mjs → array-B4E6ednJ.mjs} +0 -0
  419. /package/dist/chunks/{az-BnNrO_xK.mjs → az-CU1BXEnK.mjs} +0 -0
  420. /package/dist/chunks/{bg-CMd2n-OG.mjs → bg-C1QKbOOv.mjs} +0 -0
  421. /package/dist/chunks/{bn-B3lorfXA.mjs → bn-DbDE4DPn.mjs} +0 -0
  422. /package/dist/chunks/{bs-_zM8QBsA.mjs → bs-5jPxlF97.mjs} +0 -0
  423. /package/dist/chunks/{c-DmKJe6GM.mjs → c-CQrSye6K.mjs} +0 -0
  424. /package/dist/chunks/{ccount-C9Y7nqDe.mjs → ccount-B7is2MU0.mjs} +0 -0
  425. /package/dist/chunks/{cs-nodpmLBf.mjs → cs-BEZB2qcc.mjs} +0 -0
  426. /package/dist/chunks/{csharp-Drv96dbi.mjs → csharp-ByiKf6DR.mjs} +0 -0
  427. /package/dist/chunks/{css-82tNAoU6.mjs → css-BqsWMbBt.mjs} +0 -0
  428. /package/dist/chunks/{cytoscape.esm-DSb9a7HE.mjs → cytoscape.esm-CWkCAUzT.mjs} +0 -0
  429. /package/dist/chunks/{da-DwzgQcXQ.mjs → da-DXZ2uOgL.mjs} +0 -0
  430. /package/dist/chunks/{dart-DE9j8McI.mjs → dart-aYsezAEv.mjs} +0 -0
  431. /package/dist/chunks/{de-BvWPiNt6.mjs → de-D4FxC1Yq.mjs} +0 -0
  432. /package/dist/chunks/{default-qigT1Xpq.mjs → default-DPWNu2LM.mjs} +0 -0
  433. /package/dist/chunks/{defaultLocale-yTyMJ3IT.mjs → defaultLocale-BYV2aVaI.mjs} +0 -0
  434. /package/dist/chunks/{dist-X14EnMrO.mjs → dist-CKM-fjTE.mjs} +0 -0
  435. /package/dist/chunks/{dockerfile-D9DFksUy.mjs → dockerfile-1GBIWF66.mjs} +0 -0
  436. /package/dist/chunks/{el-B_D7wUrZ.mjs → el-DwIVDdku.mjs} +0 -0
  437. /package/dist/chunks/{engine-javascript-Bmmg8uL9.mjs → engine-javascript-CYa8VRAu.mjs} +0 -0
  438. /package/dist/chunks/{es-Bn_ZFyW9.mjs → es-DlO4MePt.mjs} +0 -0
  439. /package/dist/chunks/{et-CUcULjoh.mjs → et-BBSbb8pL.mjs} +0 -0
  440. /package/dist/chunks/{fa-BRhCTsOy.mjs → fa-DsJou-pw.mjs} +0 -0
  441. /package/dist/chunks/{fi-BEvyU9n6.mjs → fi-CsMgo7Wk.mjs} +0 -0
  442. /package/dist/chunks/{fil-Dlp1_W2B.mjs → fil-Dlw8sEta.mjs} +0 -0
  443. /package/dist/chunks/{fr-DJBeOAx1.mjs → fr-DeapG5NH.mjs} +0 -0
  444. /package/dist/chunks/{go-jyWjtO8q.mjs → go-4mRqLTld.mjs} +0 -0
  445. /package/dist/chunks/{gu-0hWvx16l.mjs → gu-klAnA_ns.mjs} +0 -0
  446. /package/dist/chunks/{he-CYe88qXp.mjs → he-9TdyXc1J.mjs} +0 -0
  447. /package/dist/chunks/{hi-DuLkkPWn.mjs → hi-DVOss_Zp.mjs} +0 -0
  448. /package/dist/chunks/{hr-BwCB1IMW.mjs → hr-CXo-QFLf.mjs} +0 -0
  449. /package/dist/chunks/{hu-C2dLyTeX.mjs → hu-B6uKq-NU.mjs} +0 -0
  450. /package/dist/chunks/{hy-DXKoDpv9.mjs → hy-B7CWqbUW.mjs} +0 -0
  451. /package/dist/chunks/{i18next-CLUkHqmV.mjs → i18next-BFvS_Rnh.mjs} +0 -0
  452. /package/dist/chunks/{id-D4chLuW_.mjs → id-C5d2QGEQ.mjs} +0 -0
  453. /package/dist/chunks/{init-BlLeEogJ.mjs → init-C3Dyaaly.mjs} +0 -0
  454. /package/dist/chunks/{isArrayLikeObject-DzUNFfIK.mjs → isArrayLikeObject-B-1mfvNK.mjs} +0 -0
  455. /package/dist/chunks/{it-Hto3G26t.mjs → it-BgPXC2_F.mjs} +0 -0
  456. /package/dist/chunks/{ja-UxHm_PPZ.mjs → ja-CQ7ujOz3.mjs} +0 -0
  457. /package/dist/chunks/{java-Dhv78FEb.mjs → java-DD_iwrM-.mjs} +0 -0
  458. /package/dist/chunks/{javascript-DilE9EuZ.mjs → javascript-CJBlE5PB.mjs} +0 -0
  459. /package/dist/chunks/{json-LUtHrtDA.mjs → json-yRGZVu2_.mjs} +0 -0
  460. /package/dist/chunks/{ka-BnjXwPUq.mjs → ka-DAPmSm_-.mjs} +0 -0
  461. /package/dist/chunks/{katex-B8jUB5Cv.mjs → katex-Bbz34ZLq.mjs} +0 -0
  462. /package/dist/chunks/{km-exgzZBIE.mjs → km-BJ9H-RbD.mjs} +0 -0
  463. /package/dist/chunks/{kn-DjjUg8aO.mjs → kn-CthdB8vH.mjs} +0 -0
  464. /package/dist/chunks/{ko-Cu0YUSV6.mjs → ko-DbEA41LU.mjs} +0 -0
  465. /package/dist/chunks/{kotlin-DFLPXbOQ.mjs → kotlin-BmkhKZGf.mjs} +0 -0
  466. /package/dist/chunks/{ku-D-IxJ0fx.mjs → ku-B_j9qSrv.mjs} +0 -0
  467. /package/dist/chunks/{lightweight-i18n-DSjG0iTr.mjs → lightweight-i18n-Bb_VS9v5.mjs} +0 -0
  468. /package/dist/chunks/{lo-BcwjJBcv.mjs → lo-DSklR1Zs.mjs} +0 -0
  469. /package/dist/chunks/{lt-Bt05MFPC.mjs → lt-C9aVbfRt.mjs} +0 -0
  470. /package/dist/chunks/{lv-B01TmEFW.mjs → lv-DLwMSEc0.mjs} +0 -0
  471. /package/dist/chunks/{markdown-C6pnqcPd.mjs → markdown-DSiOSAsn.mjs} +0 -0
  472. /package/dist/chunks/{mermaid-BKA834jS.mjs → mermaid-C2y_3PIg.mjs} +0 -0
  473. /package/dist/chunks/{messages-Bq7fo8X0.mjs → messages--c74ihtM.mjs} +0 -0
  474. /package/dist/chunks/{messages-zcqQ8x232.mjs → messages-041mNyU42.mjs} +0 -0
  475. /package/dist/chunks/{messages-v26RM5PC.mjs → messages-44SP7ajI.mjs} +0 -0
  476. /package/dist/chunks/{messages-x_eMclsl2.mjs → messages-7NvouWKA2.mjs} +0 -0
  477. /package/dist/chunks/{messages-9Nx7kteY2.mjs → messages-AnuHiDPc2.mjs} +0 -0
  478. /package/dist/chunks/{messages-CIre8L_r.mjs → messages-B1V7UT9I.mjs} +0 -0
  479. /package/dist/chunks/{messages-B9mzGzZ_.mjs → messages-B2Q9NH4D.mjs} +0 -0
  480. /package/dist/chunks/{messages-CWm_2RvD2.mjs → messages-B6j77WNV2.mjs} +0 -0
  481. /package/dist/chunks/{messages-DtssWM8x2.mjs → messages-BEV0lzGv2.mjs} +0 -0
  482. /package/dist/chunks/{messages-CRH0RWBs.mjs → messages-BG749_88.mjs} +0 -0
  483. /package/dist/chunks/{messages-x6y6csd52.mjs → messages-BGpGj8nJ2.mjs} +0 -0
  484. /package/dist/chunks/{messages-D3fu2FHB2.mjs → messages-BNYDShPm2.mjs} +0 -0
  485. /package/dist/chunks/{messages-CF0SW1zy.mjs → messages-BW--wNis.mjs} +0 -0
  486. /package/dist/chunks/{messages-Dobxrshu2.mjs → messages-B_Mqw9Dl2.mjs} +0 -0
  487. /package/dist/chunks/{messages-BmC2yhsC2.mjs → messages-BbYwT3FH2.mjs} +0 -0
  488. /package/dist/chunks/{messages-BkaUIuz-2.mjs → messages-Bda8jwos2.mjs} +0 -0
  489. /package/dist/chunks/{messages-C7E8C3-S.mjs → messages-BdpFAZGZ.mjs} +0 -0
  490. /package/dist/chunks/{messages-rNLuCrAb.mjs → messages-BmNLNUz_.mjs} +0 -0
  491. /package/dist/chunks/{messages-DPcc6xp-.mjs → messages-BnGtg6t4.mjs} +0 -0
  492. /package/dist/chunks/{messages-C9UIaF6N.mjs → messages-BnXkEkD_.mjs} +0 -0
  493. /package/dist/chunks/{messages-Bi629xgG.mjs → messages-BwtU06Ax.mjs} +0 -0
  494. /package/dist/chunks/{messages-D6_I0L06.mjs → messages-ByRcwLIO.mjs} +0 -0
  495. /package/dist/chunks/{messages-C9QhLDA2.mjs → messages-CHBH3EQG.mjs} +0 -0
  496. /package/dist/chunks/{messages-BJTwY1tq.mjs → messages-CIYU5iEj.mjs} +0 -0
  497. /package/dist/chunks/{messages-BSXBVdsp.mjs → messages-CJGOmFxi.mjs} +0 -0
  498. /package/dist/chunks/{messages-DmvWmURo.mjs → messages-CP7Ncgaf.mjs} +0 -0
  499. /package/dist/chunks/{messages-BK6AwU6C.mjs → messages-CP8YKa4F.mjs} +0 -0
  500. /package/dist/chunks/{messages-BUQTXTew2.mjs → messages-CUxaqK8t2.mjs} +0 -0
  501. /package/dist/chunks/{messages-CY76MvbX2.mjs → messages-CXDk_Rlr2.mjs} +0 -0
  502. /package/dist/chunks/{messages-CMMq-u7e.mjs → messages-CYZxR91M.mjs} +0 -0
  503. /package/dist/chunks/{messages-BSyO1EWC.mjs → messages-Cjm7Nj1C.mjs} +0 -0
  504. /package/dist/chunks/{messages-CAX3qQi0.mjs → messages-CjzZ6nxv.mjs} +0 -0
  505. /package/dist/chunks/{messages-x0kzc2oy.mjs → messages-CpVtcYqo.mjs} +0 -0
  506. /package/dist/chunks/{messages-mo5OrbVj2.mjs → messages-CumomgDd2.mjs} +0 -0
  507. /package/dist/chunks/{messages-E1tsNNG5.mjs → messages-CvCb4dCy.mjs} +0 -0
  508. /package/dist/chunks/{messages-Bo7Cbk_O.mjs → messages-D3DNj1jh.mjs} +0 -0
  509. /package/dist/chunks/{messages-PFfYbqlm.mjs → messages-D7d2U-tx.mjs} +0 -0
  510. /package/dist/chunks/{messages-DIVQmVS92.mjs → messages-DFWhnXF12.mjs} +0 -0
  511. /package/dist/chunks/{messages-nAdoEqRi.mjs → messages-DJr1x1i2.mjs} +0 -0
  512. /package/dist/chunks/{messages-DsMIxm6I2.mjs → messages-DN7PU5Un2.mjs} +0 -0
  513. /package/dist/chunks/{messages-DhoZXmg_.mjs → messages-DVh_Bwwq.mjs} +0 -0
  514. /package/dist/chunks/{messages-BsqBho4T.mjs → messages-DVwHxslb.mjs} +0 -0
  515. /package/dist/chunks/{messages-BPxMr5HC.mjs → messages-DZ1Pfnl0.mjs} +0 -0
  516. /package/dist/chunks/{messages--G2XLc8E.mjs → messages-Do3QV7QW.mjs} +0 -0
  517. /package/dist/chunks/{messages-Bhn5V9FQ2.mjs → messages-Drxwphbg2.mjs} +0 -0
  518. /package/dist/chunks/{messages-bIzBNzdr2.mjs → messages-DtloGH1v2.mjs} +0 -0
  519. /package/dist/chunks/{messages-DHzT8CZv.mjs → messages-Du0zg7UM.mjs} +0 -0
  520. /package/dist/chunks/{messages-z5pham9o.mjs → messages-DuA_D23n.mjs} +0 -0
  521. /package/dist/chunks/{messages-BS9zk4mI2.mjs → messages-DwKRw3jP2.mjs} +0 -0
  522. /package/dist/chunks/{messages-dGYum7sj2.mjs → messages-DzAYvMm72.mjs} +0 -0
  523. /package/dist/chunks/{messages-kKXlI5xZ.mjs → messages-Dzmge-lj.mjs} +0 -0
  524. /package/dist/chunks/{messages-CpLq4ZZg.mjs → messages-ETNAE7WV.mjs} +0 -0
  525. /package/dist/chunks/{messages-CrpOkt8c2.mjs → messages-F4r6ruTX2.mjs} +0 -0
  526. /package/dist/chunks/{messages-BCfsOOlp.mjs → messages-FNQdT9Da.mjs} +0 -0
  527. /package/dist/chunks/{messages-DiQkvwE32.mjs → messages-FYGyC6zk2.mjs} +0 -0
  528. /package/dist/chunks/{messages-B29Wm2zT.mjs → messages-ZS1Ro8ZB.mjs} +0 -0
  529. /package/dist/chunks/{messages-CJ8IkF1P.mjs → messages-dyhHlgE9.mjs} +0 -0
  530. /package/dist/chunks/{messages-DfLcy0CY.mjs → messages-fAEKtYXO.mjs} +0 -0
  531. /package/dist/chunks/{messages-DJYT0upW.mjs → messages-hhptyJO3.mjs} +0 -0
  532. /package/dist/chunks/{messages-3kHDtQLN.mjs → messages-hk4dinYI.mjs} +0 -0
  533. /package/dist/chunks/{messages-BimpUMRx.mjs → messages-knSLxvI6.mjs} +0 -0
  534. /package/dist/chunks/{messages-4Y8dL_1j2.mjs → messages-lORohDgW2.mjs} +0 -0
  535. /package/dist/chunks/{messages-Dass0QsQ.mjs → messages-mvnz8DvU.mjs} +0 -0
  536. /package/dist/chunks/{messages-DcUYfD6m.mjs → messages-pHWKsrcZ.mjs} +0 -0
  537. /package/dist/chunks/{messages-CR5irc8q.mjs → messages-q2McAyOz.mjs} +0 -0
  538. /package/dist/chunks/{messages-CEJtxBxU.mjs → messages-r62SI44r.mjs} +0 -0
  539. /package/dist/chunks/{messages-CKP6aUXN2.mjs → messages-uFdMhLbJ.mjs} +0 -0
  540. /package/dist/chunks/{micromark-factory-space-y4SDWQKm.mjs → micromark-factory-space-C6wz33de.mjs} +0 -0
  541. /package/dist/chunks/{mk-DlZNyDhn.mjs → mk-D96bSjMK.mjs} +0 -0
  542. /package/dist/chunks/{ml-CizMIOxl.mjs → ml-D1Ek94RG.mjs} +0 -0
  543. /package/dist/chunks/{mn-B_pDvxok.mjs → mn-CyNCFOYP.mjs} +0 -0
  544. /package/dist/chunks/{mr-D8D_7YmW.mjs → mr-CaA3xXVf.mjs} +0 -0
  545. /package/dist/chunks/{ms-CM93I8ec.mjs → ms-IZU-A3Qk.mjs} +0 -0
  546. /package/dist/chunks/{my-BGnGdDAV.mjs → my-C-AQLGIp.mjs} +0 -0
  547. /package/dist/chunks/{native-D0cfLXsM.mjs → native-CarRLbbJ.mjs} +0 -0
  548. /package/dist/chunks/{ne-C6ZmmqhH.mjs → ne-LaymXAjm.mjs} +0 -0
  549. /package/dist/chunks/{nl-UGFOU80W.mjs → nl-Dm1eVwTA.mjs} +0 -0
  550. /package/dist/chunks/{no-as-DKhC4.mjs → no-B2WicGhz.mjs} +0 -0
  551. /package/dist/chunks/{one-light-Di_o5Kb7.mjs → one-light-bqnXiA0I.mjs} +0 -0
  552. /package/dist/chunks/{pa-DiOAveAI.mjs → pa-ry61xHq9.mjs} +0 -0
  553. /package/dist/chunks/{path-7pA19U_d.mjs → path-Crax6eds.mjs} +0 -0
  554. /package/dist/chunks/{pl-DXk8ye3B.mjs → pl-DzCnx7eR.mjs} +0 -0
  555. /package/dist/chunks/{ps-CuxilZ3F.mjs → ps-DKXG6JHY.mjs} +0 -0
  556. /package/dist/chunks/{pt-DsT6E77q.mjs → pt-e09B0rEd.mjs} +0 -0
  557. /package/dist/chunks/{python-DYiHKGPV.mjs → python-tdu-oDWx.mjs} +0 -0
  558. /package/dist/chunks/{r-BZ4pC-Uz.mjs → r-D8fCyoTl.mjs} +0 -0
  559. /package/dist/chunks/{ro-CcAQOL-B.mjs → ro-HNnYR5pB.mjs} +0 -0
  560. /package/dist/chunks/{rough.esm-BPA_YwbP.mjs → rough.esm-CChKUjNP.mjs} +0 -0
  561. /package/dist/chunks/{ru-hD41D0Fd.mjs → ru-D_jTWgK8.mjs} +0 -0
  562. /package/dist/chunks/{rust-Db_HEGL5.mjs → rust-D5IQAarB.mjs} +0 -0
  563. /package/dist/chunks/{scala-B1kK21mu.mjs → scala-CbcMYkuq.mjs} +0 -0
  564. /package/dist/chunks/{sd-Biu7f00A.mjs → sd-B7bgXBin.mjs} +0 -0
  565. /package/dist/chunks/{shellscript-BBh7AxMC.mjs → shellscript-CZefq5l_.mjs} +0 -0
  566. /package/dist/chunks/{si-Bhto6prC.mjs → si-aQCsTBIp.mjs} +0 -0
  567. /package/dist/chunks/{sk-Ce7J4sHX.mjs → sk-Bjrct9rr.mjs} +0 -0
  568. /package/dist/chunks/{sl-Fz7idR9w.mjs → sl-DvS57kCB.mjs} +0 -0
  569. /package/dist/chunks/{sq-CnLb3bAQ.mjs → sq-BexoWiW2.mjs} +0 -0
  570. /package/dist/chunks/{sql-DHkazX4B.mjs → sql-C4ibVEDs.mjs} +0 -0
  571. /package/dist/chunks/{sr-Bc5JbF-b.mjs → sr-CXir4bLq.mjs} +0 -0
  572. /package/dist/chunks/{src-B3rrEIze.mjs → src-yreeH1hr.mjs} +0 -0
  573. /package/dist/chunks/{sv-B86P2LyK.mjs → sv-B_Owhjrs.mjs} +0 -0
  574. /package/dist/chunks/{sw-CnQXriTg.mjs → sw-B4p84FCO.mjs} +0 -0
  575. /package/dist/chunks/{swift-DZdprfb-.mjs → swift-Drpgj9J0.mjs} +0 -0
  576. /package/dist/chunks/{ta-CG4BbxjE.mjs → ta-BU_-jQ33.mjs} +0 -0
  577. /package/dist/chunks/{te-CkE35V1X.mjs → te-5FGke4TK.mjs} +0 -0
  578. /package/dist/chunks/{th-BCtkHu3E.mjs → th-DFyekAQ3.mjs} +0 -0
  579. /package/dist/chunks/{tr-D5Cexvko.mjs → tr-C7Zj3lX4.mjs} +0 -0
  580. /package/dist/chunks/{typescript-DhtGMhWX.mjs → typescript-Bnpf4OG6.mjs} +0 -0
  581. /package/dist/chunks/{ug-Bt9xMT4p.mjs → ug-DJwD0iui.mjs} +0 -0
  582. /package/dist/chunks/{uk-D1g7UV0v.mjs → uk-hkOj8kWN.mjs} +0 -0
  583. /package/dist/chunks/{ur-B69faQh_.mjs → ur-Cy5A8nFG.mjs} +0 -0
  584. /package/dist/chunks/{vi--gW42cZG.mjs → vi-CEt0cTzQ.mjs} +0 -0
  585. /package/dist/chunks/{vitesse-dark-B5oAIYZ5.mjs → vitesse-dark-dflHsflb.mjs} +0 -0
  586. /package/dist/chunks/{yaml-T4MCc8o4.mjs → yaml-CecI9urB.mjs} +0 -0
  587. /package/dist/chunks/{zh-DgQ6P8Lu.mjs → zh-BwQjLCGO.mjs} +0 -0
package/dist/react.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunks/chunk-Kud-AIAt.cjs`);const e=require(`./chunks/blok-CNEP3LpI.cjs`);require(`./chunks/constants-DJjFgioo.cjs`);const t=require(`./chunks/objectSpread2-iNkE6aJh.cjs`),n=require(`./chunks/objectWithoutProperties-BbzyiphF.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=new WeakMap;function o(e,t){a.set(e,t)}function s(e){return a.get(e)}function c(e){a.delete(e)}function l(n,i){let[a,s]=(0,r.useState)(null),l=(0,r.useRef)(n);l.current=n;let d=(0,r.useRef)({editor:null,holder:null,destroyTimeout:null,isDestroyed:!1,depsToken:null}),f=(0,r.useMemo)(()=>({}),i==null?[]:i);(0,r.useEffect)(()=>{if(typeof window>`u`)return;let n=d.current;if(n.destroyTimeout!==null&&(clearTimeout(n.destroyTimeout),n.destroyTimeout=null),n.editor!==null&&!n.isDestroyed&&n.depsToken===f)return s(n.editor),()=>{u(n,s)};if(n.editor!==null&&!n.isDestroyed){c(n.editor);try{n.editor.destroy()}catch(e){}n.editor=null,n.holder=null,n.isDestroyed=!0,s(null)}let r=document.createElement(`div`);n.holder=r,n.isDestroyed=!1,n.depsToken=f;let i=l.current,a=new e.t(t.t(t.t({},i),{},{holder:r,onReady:()=>{var e,t;(e=(t=l.current).onReady)==null||e.call(t)},onChange:(...e)=>{var t,n;(t=(n=l.current).onChange)==null||t.call(n,...e)}}));return n.editor=a,o(a,r),a.isReady.then(()=>{n.editor===a&&!n.isDestroyed&&s(a)}).catch(()=>{if(n.editor===a&&!n.isDestroyed){c(a);try{a.destroy()}catch(e){}n.editor=null,n.holder=null,n.isDestroyed=!0,s(null)}}),()=>{u(n,s)}},[f]);let{readOnly:p}=n;(0,r.useEffect)(()=>{a!==null&&a.readOnly.set(p==null?!1:p)},[a,p]);let{autofocus:m}=n;return(0,r.useEffect)(()=>{a===null||!m||a.focus()},[a,m]),a}function u(e,t){e.destroyTimeout=setTimeout(()=>{if(e.editor!==null){c(e.editor);try{e.editor.destroy()}catch(e){}e.editor=null,e.holder=null,e.isDestroyed=!0,e.destroyTimeout=null,t(null)}},0)}var d=[`editor`],f=(0,r.forwardRef)(function(e,a){let{editor:o}=e,c=n.t(e,d),l=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(o===null||l.current===null)return;let e=s(o);if(e!==void 0)return l.current.appendChild(e),()=>{e.remove()}},[o]),(0,i.jsx)(`div`,t.t({ref:e=>{if(l.current=e,typeof a==`function`)a(e);else if(a!=null){let t=a;t.current=e}}},c))});exports.BlokContent=f,exports.useBlok=l;
package/dist/react.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { t as e } from "./chunks/blok-Cb7w54t6.mjs";
2
- import "./chunks/constants-C0aZXxoO.mjs";
1
+ import { t as e } from "./chunks/blok-DNvzyOYn.mjs";
2
+ import "./chunks/constants-DMsOCPcF.mjs";
3
3
  import { t } from "./chunks/objectSpread2-CWwMYL_U.mjs";
4
4
  import { t as n } from "./chunks/objectWithoutProperties-Dci1-l7D.mjs";
5
5
  import { forwardRef as r, useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
package/dist/tools.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunks/chunk-Kud-AIAt.cjs`);const e=require(`./chunks/constants-DJjFgioo.cjs`),t=require(`./chunks/tools-NAqHj-Cy.cjs`);exports.Bold=t.l,exports.Callout=t.h,exports.Code=t.u,exports.Convert=e.m,exports.Database=t.m,exports.DatabaseRow=t.p,exports.Divider=t.f,exports.Header=t.y,exports.InlineCode=t.r,exports.Italic=t.c,exports.Link=t.s,exports.List=t.v,exports.Marker=t.o,exports.Paragraph=t.b,exports.Quote=t.d,exports.Strikethrough=t.i,exports.Table=t._,exports.Toggle=t.g,exports.Underline=t.a,exports.defaultBlockTools=t.t,exports.defaultInlineTools=t.n;
package/dist/tools.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { m as e } from "./chunks/constants-C0aZXxoO.mjs";
2
- import { _ as t, a as n, b as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p, p as m, r as h, s as g, t as _, u as v, v as y, y as b } from "./chunks/tools-vS7102lG.mjs";
1
+ import { m as e } from "./chunks/constants-DMsOCPcF.mjs";
2
+ import { _ as t, a as n, b as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p, p as m, r as h, s as g, t as _, u as v, v as y, y as b } from "./chunks/tools-DPov06L-.mjs";
3
3
  export { u as Bold, c as Callout, v as Code, e as Convert, d as Database, m as DatabaseRow, o as Divider, b as Header, h as InlineCode, i as Italic, g as Link, y as List, p as Marker, r as Paragraph, a as Quote, l as Strikethrough, t as Table, s as Toggle, n as Underline, _ as defaultBlockTools, f as defaultInlineTools };
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@jackuait/blok",
3
- "version": "0.10.12",
3
+ "version": "0.11.1",
4
4
  "description": "Blok — headless, highly extensible rich text editor built for developers who need to implement a block-based editing experience (similar to Notion) without building it from scratch",
5
5
  "module": "dist/blok.mjs",
6
+ "main": "./dist/blok.cjs",
7
+ "browser": "./dist/blok.iife.js",
8
+ "unpkg": "./dist/blok.iife.js",
9
+ "jsdelivr": "./dist/blok.iife.js",
6
10
  "types": "./types/index.d.ts",
7
11
  "typesVersions": {
8
12
  "*": {
@@ -26,15 +30,18 @@
26
30
  "exports": {
27
31
  ".": {
28
32
  "types": "./types/index.d.ts",
29
- "import": "./dist/blok.mjs"
33
+ "import": "./dist/blok.mjs",
34
+ "require": "./dist/blok.cjs"
30
35
  },
31
36
  "./tools": {
32
37
  "types": "./types/tools-entry.d.ts",
33
- "import": "./dist/tools.mjs"
38
+ "import": "./dist/tools.mjs",
39
+ "require": "./dist/tools.cjs"
34
40
  },
35
41
  "./full": {
36
42
  "types": "./types/full.d.ts",
37
- "import": "./dist/full.mjs"
43
+ "import": "./dist/full.mjs",
44
+ "require": "./dist/full.cjs"
38
45
  },
39
46
  "./locales": {
40
47
  "types": "./types/locales.d.ts",
@@ -42,11 +49,13 @@
42
49
  },
43
50
  "./react": {
44
51
  "types": "./types/react.d.ts",
45
- "import": "./dist/react.mjs"
52
+ "import": "./dist/react.mjs",
53
+ "require": "./dist/react.cjs"
46
54
  },
47
55
  "./markdown": {
48
56
  "types": "./types/markdown.d.ts",
49
- "import": "./dist/markdown.mjs"
57
+ "import": "./dist/markdown.mjs",
58
+ "require": "./dist/markdown.cjs"
50
59
  }
51
60
  },
52
61
  "bin": {
@@ -81,9 +90,9 @@
81
90
  "scripts": {
82
91
  "serve": "vite --no-open",
83
92
  "serve:docs": "cd docs && vite --port 8080",
84
- "build": "vite build --mode production && node scripts/build-locales.mjs",
93
+ "build": "vite build --mode production && vite build --config vite.config.iife.mjs --mode production && node scripts/build-locales.mjs",
85
94
  "build:cli": "node scripts/build-cli.mjs",
86
- "build:test": "vite build --mode test && node scripts/build-locales.mjs test && node scripts/build-react-vendor.mjs",
95
+ "build:test": "vite build --mode test && vite build --config vite.config.iife.mjs --mode test && node scripts/build-locales.mjs test && node scripts/build-react-vendor.mjs",
87
96
  "lint": "sh -c 'eslint .; ESLINT_EXIT=$?; tsc --noEmit; TSC_EXIT=$?; if [ $ESLINT_EXIT -ne 0 ] || [ $TSC_EXIT -ne 0 ]; then exit 1; fi'",
88
97
  "lint:fix": "eslint . --fix",
89
98
  "lint:tests": "eslint test/",
package/src/blok.ts CHANGED
@@ -205,6 +205,9 @@ class Blok {
205
205
  // Scroll to the block referenced by the URL hash, if present.
206
206
  // isReady resolves only after all blocks are in the DOM (requestIdleCallback fence in Renderer),
207
207
  // so no extra polling is needed even on slow connections.
208
+ // However, when consumers pass no `data` in the config and instead call blocks.render()
209
+ // from onReady, the target block won't exist yet. In that case we store the hash
210
+ // on Renderer.pendingHashScroll so BlocksAPI.render() can retry after the real blocks arrive.
208
211
  const rawHash = window.location.hash.slice(1);
209
212
  const hash = rawHash ? Blok.safeDecodeHash(rawHash) : '';
210
213
 
@@ -220,6 +223,8 @@ class Blok {
220
223
  window.scrollTo({ top: y, behavior: 'smooth' });
221
224
 
222
225
  Blok.selectBlockById(blok, hash);
226
+ } else if (blok.moduleInstances.Renderer !== undefined) {
227
+ blok.moduleInstances.Renderer.pendingHashScroll = hash;
223
228
  }
224
229
  }
225
230
 
@@ -228,6 +228,8 @@ export class BlocksAPI extends Module {
228
228
  }
229
229
 
230
230
  this.Blok.ModificationsObserver.enable();
231
+
232
+ this.processPendingHashScroll();
231
233
  }
232
234
 
233
235
  /**
@@ -564,4 +566,36 @@ export class BlocksAPI extends Module {
564
566
  throw new Error(`Index should be greater than or equal to 0`);
565
567
  }
566
568
  }
569
+
570
+ /**
571
+ * If Renderer.pendingHashScroll is set (hash-based scroll was deferred because the
572
+ * target block did not exist at init time), attempt to scroll to and select the block now.
573
+ * Always clears the pending hash afterward (one-shot).
574
+ */
575
+ private processPendingHashScroll(): void {
576
+ const hash = this.Blok.Renderer.pendingHashScroll;
577
+
578
+ if (hash === null) {
579
+ return;
580
+ }
581
+
582
+ this.Blok.Renderer.pendingHashScroll = null;
583
+
584
+ const el = document.querySelector(`[data-blok-id="${CSS.escape(hash)}"]`);
585
+
586
+ if (el === null) {
587
+ return;
588
+ }
589
+
590
+ const topOffset = this.config.scrollToBlock?.topOffset ?? 0;
591
+ const y = el.getBoundingClientRect().top + window.scrollY - topOffset;
592
+
593
+ window.scrollTo({ top: y, behavior: 'smooth' });
594
+
595
+ const block = this.Blok.BlockManager.getBlockById(hash);
596
+
597
+ if (block !== undefined) {
598
+ this.Blok.BlockSelection.selectBlock(block);
599
+ }
600
+ }
567
601
  }
@@ -3,15 +3,24 @@ import type { ModuleConfig } from '../../../types-internal/module-config';
3
3
  import { Module } from '../../__module';
4
4
  import { Notifier } from '../../utils/notifier';
5
5
  import type { ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions } from '../../utils/notifier/types';
6
+ import { DEFAULT_NOTIFIER_POSITION } from '../../utils/notifier/types';
6
7
 
7
8
  /**
8
- *
9
+ * Notifier API module — routes show() to the custom handler when the consumer
10
+ * provides one in BlokConfig.notifier, otherwise falls back to the built-in notifier.
9
11
  */
10
12
  export class NotifierAPI extends Module {
11
13
  /**
12
- * Notifier utility Instance
14
+ * Built-in notifier utility instance (used only when no custom handler is provided)
13
15
  */
14
- private notifier: Notifier;
16
+ private builtInNotifier: Notifier;
17
+
18
+ /**
19
+ * Optional consumer-provided notifier handler from BlokConfig
20
+ */
21
+ private readonly customNotifier:
22
+ | ((options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => void)
23
+ | undefined;
15
24
 
16
25
  /**
17
26
  * @param moduleConfiguration - Module Configuration
@@ -19,12 +28,10 @@ export class NotifierAPI extends Module {
19
28
  * @param moduleConfiguration.eventsDispatcher - Blok's event dispatcher
20
29
  */
21
30
  constructor({ config, eventsDispatcher }: ModuleConfig) {
22
- super({
23
- config,
24
- eventsDispatcher,
25
- });
31
+ super({ config, eventsDispatcher });
26
32
 
27
- this.notifier = new Notifier();
33
+ this.builtInNotifier = new Notifier(config.notifierPosition ?? DEFAULT_NOTIFIER_POSITION);
34
+ this.customNotifier = config.notifier;
28
35
  }
29
36
 
30
37
  /**
@@ -32,15 +39,21 @@ export class NotifierAPI extends Module {
32
39
  */
33
40
  public get methods(): INotifier {
34
41
  return {
35
- show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions): void => this.show(options),
42
+ show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions): void =>
43
+ this.show(options),
36
44
  };
37
45
  }
38
46
 
39
47
  /**
40
- * Show notification
48
+ * Show notification — delegates to custom handler if provided, else built-in
41
49
  * @param {NotifierOptions} options - message option
42
50
  */
43
51
  public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions): void {
44
- return this.notifier.show(options);
52
+ if (this.customNotifier !== undefined) {
53
+ this.customNotifier(options);
54
+ return;
55
+ }
56
+
57
+ this.builtInNotifier.show(options);
45
58
  }
46
59
  }
@@ -37,6 +37,13 @@ export class Renderer extends Module {
37
37
  */
38
38
  public pendingRender: Promise<void> | null = null;
39
39
 
40
+ /**
41
+ * Decoded URL hash fragment that could not be scrolled to at init time
42
+ * because the target block was not yet in the DOM.
43
+ * Set by Blok constructor; consumed (and cleared) by BlocksAPI.render().
44
+ */
45
+ public pendingHashScroll: string | null = null;
46
+
40
47
  /**
41
48
  * Resolve function for the current pendingRender promise.
42
49
  * Called when the render operation is done (in finally block).
@@ -338,36 +338,41 @@ export class Toolbox extends EventsDispatcher<ToolboxEventMap> {
338
338
  this.toggleRestrictedToolsHidden(true);
339
339
  }
340
340
 
341
- this.popover?.show();
342
-
343
341
  /**
344
- * When opening toolbox inside a table cell or a nested block (toggle, callout),
345
- * position it at the caret instead of at the trigger element (which is outside
346
- * the nested container).
347
- * Must be called after show() so the popover is in the DOM.
342
+ * Always anchor the popover to a rect derived from the current context,
343
+ * never from the trigger element (plus button). The trigger rect is fragile:
344
+ * it can be hidden, offscreen, misaligned with the caret in nested containers
345
+ * (table cells, toggles, callouts), or detached from the block when the plus
346
+ * button sits at the block's top edge while the caret is elsewhere.
347
+ *
348
+ * - Slash open ("/"): anchor at the caret rect so the menu appears next to
349
+ * what the user is typing, in any block type at any nesting depth.
350
+ * - Plus button open: anchor at the current block's bounding rect so the
351
+ * menu appears below the block regardless of trigger placement.
352
+ *
353
+ * Set the position BEFORE show() so the first paint is already correct —
354
+ * popover.show() reads `params.position` via calculatePosition() and uses
355
+ * it instead of the trigger rect when present.
348
356
  */
349
- const triggerRect = this.triggerElement?.getBoundingClientRect();
350
- const triggerHidden = triggerRect?.height === 0;
351
- const triggerOffScreen = triggerRect !== undefined && triggerRect.bottom < 0;
352
- const isInsideNestedBlock = currentBlock !== undefined && currentBlock.parentId !== null;
353
-
354
- if ((this.isInsideTableCell || triggerHidden || triggerOffScreen || isInsideNestedBlock) && this.popover instanceof PopoverDesktop) {
355
- const caretRect = SelectionUtils.rect;
356
-
357
- this.popover.updatePosition(caretRect);
358
- } else if (!withSlash && this.popover instanceof PopoverDesktop) {
359
- /**
360
- * When opened without slash (via plus button), the trigger element (plus button)
361
- * is at the top of the block. Position the popover below the block's bottom edge
362
- * instead, so it doesn't overlap the block's placeholder text.
363
- */
364
- const currentBlock = this.api.blocks.getBlockByIndex(currentBlockIndex);
365
-
366
- if (currentBlock) {
367
- this.popover.updatePosition(currentBlock.holder.getBoundingClientRect());
357
+ if (this.popover instanceof PopoverDesktop) {
358
+ const blockRect = currentBlock?.holder.getBoundingClientRect();
359
+ const caretRect = withSlash ? SelectionUtils.rect : undefined;
360
+ const caretRectIsDegenerate = caretRect !== undefined
361
+ && caretRect.width === 0
362
+ && caretRect.height === 0
363
+ && caretRect.x === 0
364
+ && caretRect.y === 0;
365
+ // Fall back to the block rect when selection is lost or returns a
366
+ // degenerate {0,0,0,0} rect never anchor the popover at the page origin.
367
+ const anchorRect = caretRect !== undefined && !caretRectIsDegenerate ? caretRect : blockRect;
368
+
369
+ if (anchorRect !== undefined) {
370
+ this.popover.updatePosition(anchorRect);
368
371
  }
369
372
  }
370
373
 
374
+ this.popover?.show();
375
+
371
376
  this.openedWithSlash = withSlash;
372
377
  this.opened = true;
373
378
  this.emit(ToolboxEvent.Opened);
@@ -1,123 +1,48 @@
1
- import { twMerge, twJoin } from '../tw';
1
+ import { twJoin } from '../tw';
2
2
 
3
- import type { NotifierOptions, ConfirmNotifierOptions, PromptNotifierOptions } from './types';
4
-
5
- /**
6
- * SVG icons for notification styles.
7
- * Each icon is 16x16, stroke-based for consistency.
8
- */
9
- const ICONS = {
10
- success: `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="8" r="6.25"/><path d="M5.5 8.25l1.75 1.75 3.25-3.5"/></svg>`,
11
- error: `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="8" r="6.25"/><path d="M8 5.25v3"/><circle cx="8" cy="10.75" r="0.5" fill="currentColor" stroke="none"/></svg>`,
12
- default: `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="8" r="6.25"/><path d="M8 7.25v3.25"/><circle cx="8" cy="5.25" r="0.5" fill="currentColor" stroke="none"/></svg>`,
13
- };
14
-
15
- const CLOSE_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M2 2l6 6M8 2l-6 6"/></svg>`;
3
+ import type { NotifierOptions, ConfirmNotifierOptions, PromptNotifierOptions, NotifierPosition } from './types';
4
+ import { DEFAULT_NOTIFIER_POSITION } from './types';
16
5
 
17
6
  export const CSS = {
18
- wrapper: twJoin(
19
- 'fixed z-2 bottom-5 left-5',
20
- 'font-[-apple-system,BlinkMacSystemFont,"Segoe_UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira_Sans","Droid_Sans","Helvetica_Neue",sans-serif]'
21
- ),
7
+ /**
8
+ * The wrapper class is built dynamically per-position.
9
+ * See getPositionClasses().
10
+ */
11
+ wrapper: 'fixed z-[9999]',
22
12
  notification: twJoin(
23
- 'relative flex items-start gap-2.5 w-[230px] mt-[15px] py-[13px] px-4',
24
- 'bg-white shadow-notify rounded-[6px]',
25
- 'text-sm leading-[1.4em] wrap-break-word overflow-hidden',
26
- 'before:content-[""] before:absolute before:block before:top-0 before:left-0',
27
- 'before:w-[3px] before:h-[calc(100%-6px)] before:m-[3px] before:rounded-[5px] before:bg-transparent'
13
+ 'relative flex items-center justify-center mt-2 py-[10px] px-6',
14
+ 'bg-[#1c1c1e] text-[#f5f5f5]',
15
+ 'text-[15px] font-normal leading-[1.4] tracking-[-0.015em] wrap-break-word overflow-hidden',
16
+ 'rounded-[14px]',
17
+ 'shadow-[0_8px_32px_rgba(0,0,0,0.4),0_1px_4px_rgba(0,0,0,0.25)]',
18
+ 'border border-white/[0.08]'
28
19
  ),
29
- icon: 'shrink-0 mt-px',
30
- iconSuccess: 'text-[#34c992]',
31
- iconError: 'text-[#fb5d5d]',
32
- iconDefault: 'text-[#9ca3af]',
33
20
  messageWrapper: 'flex-1 min-w-0',
34
- crossBtn: twJoin(
35
- 'absolute top-[7px] right-[7px] flex items-center justify-center',
36
- 'w-6 h-6 rounded opacity-40 cursor-pointer',
37
- 'transition-opacity duration-150',
38
- 'hover:opacity-100'
39
- ),
40
- btnsWrapper: 'flex flex-row flex-nowrap mt-[5px]',
41
- btn: 'border-none rounded-[3px] text-[13px] py-[5px] px-2.5 cursor-pointer outline-hidden last:ml-2.5',
42
- okBtn: 'bg-[#34c992] shadow-[0_1px_1px_0_rgba(18,49,35,0.05)] text-white hover:bg-[#2db583]',
43
- cancelBtn: 'bg-[#f2f5f7] shadow-[0_2px_1px_0_rgba(16,19,29,0)] text-[#656b7c] hover:bg-[#e9ecee]',
21
+ btnsWrapper: 'flex flex-row flex-nowrap mt-[8px] gap-2',
22
+ btn: 'border-none rounded-[7px] text-[13px] py-[5px] px-3 cursor-pointer outline-hidden font-medium',
23
+ okBtn: 'bg-white/15 text-[#f5f5f5] hover:bg-white/25',
24
+ cancelBtn: 'bg-white/8 text-[#a1a1aa] hover:bg-white/12',
44
25
  input: twJoin(
45
- 'max-w-[130px] py-[5px] px-2.5 bg-[#f7f7f7] border-0 rounded-[3px]',
46
- 'text-[13px] text-[#656b7c] outline-hidden',
47
- 'placeholder:text-[#656b7c] focus:placeholder:text-[rgba(101,107,124,0.3)]'
48
- ),
49
- successNotification: twJoin(
50
- 'bg-[#fafffe]!',
51
- 'before:bg-[#41ffb1]!'
52
- ),
53
- errorNotification: twJoin(
54
- 'bg-[#fffbfb]!',
55
- 'before:bg-[#fb5d5d]!'
26
+ 'max-w-[140px] py-[5px] px-3 bg-white/10 border border-white/10 rounded-[7px]',
27
+ 'text-[13px] text-[#e4e4e7] outline-hidden',
28
+ 'placeholder:text-white/30 focus:border-white/20'
56
29
  ),
57
- progressBar: twJoin(
58
- 'absolute bottom-0 left-0 h-[2px] rounded-b-[6px]',
59
- 'animate-notify-progress'
60
- ),
61
- progressDefault: 'bg-[#d1d5db]',
62
- progressSuccess: 'bg-[#41ffb1]',
63
- progressError: 'bg-[#fb5d5d]',
64
- };
65
-
66
- /**
67
- * Creates an icon element for the notification.
68
- */
69
- const createIcon = (style?: string): HTMLElement => {
70
- const iconWrapper = document.createElement('span');
71
- const resolvedStyle = style === 'success' || style === 'error' ? style : 'default';
72
-
73
- iconWrapper.innerHTML = ICONS[resolvedStyle];
74
- iconWrapper.setAttribute('data-blok-testid', 'notification-icon');
75
- iconWrapper.setAttribute('data-blok-style', resolvedStyle);
76
-
77
- const iconColorMap: Record<string, string> = {
78
- success: CSS.iconSuccess,
79
- error: CSS.iconError,
80
- default: CSS.iconDefault,
81
- };
82
-
83
- const colorClass = iconColorMap[resolvedStyle] ?? CSS.iconDefault;
84
-
85
- iconWrapper.className = twJoin(CSS.icon, colorClass);
86
-
87
- return iconWrapper;
88
- };
89
-
90
- /**
91
- * Creates a close (cross) button with an SVG icon.
92
- */
93
- const createCloseButton = (): HTMLElement => {
94
- const cross = document.createElement('div');
95
-
96
- cross.className = CSS.crossBtn;
97
- cross.setAttribute('data-blok-testid', 'notification-cross');
98
- cross.innerHTML = CLOSE_ICON;
99
-
100
- return cross;
101
30
  };
102
31
 
103
32
  /**
104
- * Creates a progress bar element for auto-dismissing alerts.
33
+ * Maps NotifierPosition to Tailwind positioning classes.
105
34
  */
106
- export const createProgressBar = (style?: string, time?: number): HTMLElement => {
107
- const bar = document.createElement('div');
108
-
109
- const progressColorMap: Record<string, string> = {
110
- success: CSS.progressSuccess,
111
- error: CSS.progressError,
35
+ export const getPositionClasses = (position: NotifierPosition = DEFAULT_NOTIFIER_POSITION): string => {
36
+ const map: Record<NotifierPosition, string> = {
37
+ 'bottom-left': 'bottom-5 left-5',
38
+ 'bottom-right': 'bottom-5 right-5',
39
+ 'bottom-center': 'bottom-5 left-1/2 -translate-x-1/2',
40
+ 'top-left': 'top-5 left-5',
41
+ 'top-right': 'top-5 right-5',
42
+ 'top-center': 'top-5 left-1/2 -translate-x-1/2',
112
43
  };
113
44
 
114
- const colorClass = progressColorMap[style ?? ''] ?? CSS.progressDefault;
115
-
116
- bar.className = twJoin(CSS.progressBar, colorClass);
117
- bar.setAttribute('data-blok-testid', 'notification-progress');
118
- bar.style.animationDuration = `${time ?? 8000}ms`;
119
-
120
- return bar;
45
+ return map[position] ?? map['bottom-left'];
121
46
  };
122
47
 
123
48
  /**
@@ -128,19 +53,7 @@ export const alert = (options: NotifierOptions): HTMLElement => {
128
53
  const notify = document.createElement('DIV');
129
54
  const style = options.style;
130
55
 
131
- const getStyleClasses = (): string => {
132
- if (style === 'success') {
133
- return CSS.successNotification;
134
- }
135
-
136
- if (style === 'error') {
137
- return CSS.errorNotification;
138
- }
139
-
140
- return '';
141
- };
142
-
143
- notify.className = twMerge(CSS.notification, getStyleClasses());
56
+ notify.className = CSS.notification;
144
57
 
145
58
  if (style) {
146
59
  notify.setAttribute('data-blok-testid', `notification-${style}`);
@@ -148,12 +61,7 @@ export const alert = (options: NotifierOptions): HTMLElement => {
148
61
  notify.setAttribute('data-blok-testid', 'notification');
149
62
  }
150
63
 
151
- // Icon
152
- const icon = createIcon(style);
153
-
154
- notify.appendChild(icon);
155
-
156
- // Message wrapper (flex child that holds message + buttons)
64
+ // Message wrapper
157
65
  const messageWrapper = document.createElement('div');
158
66
 
159
67
  messageWrapper.className = CSS.messageWrapper;
@@ -161,12 +69,6 @@ export const alert = (options: NotifierOptions): HTMLElement => {
161
69
  messageWrapper.innerHTML = options.message;
162
70
  notify.appendChild(messageWrapper);
163
71
 
164
- // Close button
165
- const cross = createCloseButton();
166
-
167
- cross.addEventListener('click', () => notify.remove());
168
- notify.appendChild(cross);
169
-
170
72
  return notify;
171
73
  };
172
74
 
@@ -180,7 +82,6 @@ export const confirm = (options: ConfirmNotifierOptions): HTMLElement => {
180
82
  const btnsWrapper = document.createElement('div');
181
83
  const okBtn = document.createElement('button');
182
84
  const cancelBtn = document.createElement('button');
183
- const crossBtn = notify.querySelector('[data-blok-testid="notification-cross"]');
184
85
  const cancelHandler = options.cancelHandler;
185
86
  const okHandler = options.okHandler;
186
87
 
@@ -200,10 +101,6 @@ export const confirm = (options: ConfirmNotifierOptions): HTMLElement => {
200
101
  cancelBtn.addEventListener('click', cancelHandler);
201
102
  }
202
103
 
203
- if (cancelHandler && typeof cancelHandler === 'function' && crossBtn) {
204
- crossBtn.addEventListener('click', cancelHandler);
205
- }
206
-
207
104
  if (okHandler && typeof okHandler === 'function') {
208
105
  okBtn.addEventListener('click', okHandler);
209
106
  }
@@ -214,7 +111,6 @@ export const confirm = (options: ConfirmNotifierOptions): HTMLElement => {
214
111
  btnsWrapper.appendChild(okBtn);
215
112
  btnsWrapper.appendChild(cancelBtn);
216
113
 
217
- // Append buttons to the message wrapper so they flow under the message text
218
114
  if (messageWrapper) {
219
115
  messageWrapper.appendChild(btnsWrapper);
220
116
  } else {
@@ -234,7 +130,6 @@ export const prompt = (options: PromptNotifierOptions): HTMLElement => {
234
130
  const btnsWrapper = document.createElement('div');
235
131
  const okBtn = document.createElement('button');
236
132
  const input = document.createElement('input');
237
- const crossBtn = notify.querySelector('[data-blok-testid="notification-cross"]');
238
133
  const cancelHandler = options.cancelHandler;
239
134
  const okHandler = options.okHandler;
240
135
 
@@ -258,8 +153,12 @@ export const prompt = (options: PromptNotifierOptions): HTMLElement => {
258
153
  input.type = options.inputType;
259
154
  }
260
155
 
261
- if (cancelHandler && typeof cancelHandler === 'function' && crossBtn) {
262
- crossBtn.addEventListener('click', cancelHandler);
156
+ if (cancelHandler && typeof cancelHandler === 'function') {
157
+ const crossBtn = notify.querySelector('[data-blok-testid="notification-cross"]');
158
+
159
+ if (crossBtn) {
160
+ crossBtn.addEventListener('click', cancelHandler);
161
+ }
263
162
  }
264
163
 
265
164
  if (okHandler && typeof okHandler === 'function') {
@@ -273,7 +172,6 @@ export const prompt = (options: PromptNotifierOptions): HTMLElement => {
273
172
  btnsWrapper.appendChild(input);
274
173
  btnsWrapper.appendChild(okBtn);
275
174
 
276
- // Append to message wrapper for proper flex layout
277
175
  if (messageWrapper) {
278
176
  messageWrapper.appendChild(btnsWrapper);
279
177
  } else {
@@ -283,11 +181,13 @@ export const prompt = (options: PromptNotifierOptions): HTMLElement => {
283
181
  return notify;
284
182
  };
285
183
 
286
- export const getWrapper = (): HTMLElement => {
184
+ export const getWrapper = (position: NotifierPosition = DEFAULT_NOTIFIER_POSITION): HTMLElement => {
287
185
  const wrapper = document.createElement('DIV');
186
+ const positionClasses = getPositionClasses(position);
288
187
 
289
- wrapper.className = CSS.wrapper;
188
+ wrapper.className = twJoin(CSS.wrapper, positionClasses);
290
189
  wrapper.setAttribute('data-blok-testid', 'notifier-container');
190
+ wrapper.setAttribute('data-blok-position', position);
291
191
 
292
192
  return wrapper;
293
193
  };