@jackuait/blok 0.10.0-beta.3 → 0.10.0-beta.4

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 (249) hide show
  1. package/dist/blok.mjs +2 -2
  2. package/dist/chunks/{blok-CrfCy6RQ.mjs → blok-D_0qAdUd.mjs} +2213 -2200
  3. package/dist/chunks/{constants-BzBmIAnT.mjs → constants-DxSXr7kd.mjs} +86 -64
  4. package/dist/chunks/{i18next-Ch0gVA3V.mjs → i18next-G6FKbZqA.mjs} +1 -1
  5. package/dist/chunks/{i18next-loader-BOlOKRt8.mjs → i18next-loader-CwNimni3.mjs} +2 -2
  6. package/dist/chunks/{lightweight-i18n-D1n0OClP.mjs → lightweight-i18n-DWCdzAw0.mjs} +17 -1
  7. package/dist/{messages-D7Wofcg3.mjs → chunks/messages-1Raf1IK82.mjs} +16 -0
  8. package/dist/chunks/{messages-Du6j7HqD2.mjs → messages-6mikOS4D2.mjs} +16 -0
  9. package/dist/{messages-CyQQ8g9w2.mjs → chunks/messages-B0ffBqzr.mjs} +16 -0
  10. package/dist/{messages-CfaiAQHW2.mjs → chunks/messages-B2pW6jO_.mjs} +16 -0
  11. package/dist/{messages-4kMr3vfK2.mjs → chunks/messages-B3s2vra72.mjs} +16 -0
  12. package/dist/{messages-CBWUNVHy.mjs → chunks/messages-B7MIRzCa2.mjs} +16 -0
  13. package/dist/chunks/{messages-0Nh_GHU02.mjs → messages-BPog17132.mjs} +16 -0
  14. package/dist/chunks/{messages-CbXL5f99.mjs → messages-BS1nOvZ-.mjs} +16 -0
  15. package/dist/{messages-BCIuVjwb.mjs → chunks/messages-BW_7lfqG2.mjs} +16 -0
  16. package/dist/chunks/{messages-naWwXCx3.mjs → messages-BaPZuLjN.mjs} +16 -0
  17. package/dist/chunks/{messages-DcrkPXXn.mjs → messages-BbdNugdi.mjs} +16 -0
  18. package/dist/{messages-CeyO7HXV.mjs → chunks/messages-BdnSVKOw.mjs} +16 -0
  19. package/dist/chunks/{messages-BORQKKT9.mjs → messages-BgVEGd4c.mjs} +16 -0
  20. package/dist/chunks/{messages-C1pm6RWX.mjs → messages-BgsPQXfP.mjs} +16 -0
  21. package/dist/chunks/{messages-CYZgPXFK.mjs → messages-BkCjgGxc.mjs} +16 -0
  22. package/dist/{messages-DB1-0FXB.mjs → chunks/messages-BnznaKEP2.mjs} +16 -0
  23. package/dist/{messages-CIpXgMRr2.mjs → chunks/messages-Bpda_3PM2.mjs} +16 -0
  24. package/dist/{messages-D2GHT83V2.mjs → chunks/messages-BrFl5773.mjs} +16 -0
  25. package/dist/chunks/{messages-BLD1DC722.mjs → messages-C-b6tPad2.mjs} +16 -0
  26. package/dist/chunks/{messages-LiSIeruD2.mjs → messages-C11byid72.mjs} +16 -0
  27. package/dist/chunks/{messages-IKrYzwFq.mjs → messages-C1OqT_nL.mjs} +16 -0
  28. package/dist/chunks/{messages-fitmpwb3.mjs → messages-Cdx4QMR1.mjs} +16 -0
  29. package/dist/{messages-CLB0caVL.mjs → chunks/messages-CgRvtOEY.mjs} +16 -0
  30. package/dist/{messages-BxcqzUx0.mjs → chunks/messages-ClRHDxzh.mjs} +16 -0
  31. package/dist/{messages-DwroI9YW.mjs → chunks/messages-CljStrYi.mjs} +16 -0
  32. package/dist/chunks/{messages-CR48wvl32.mjs → messages-CmXADeab2.mjs} +16 -0
  33. package/dist/{messages-BkZDaKu6.mjs → chunks/messages-CmrMwBv3.mjs} +16 -0
  34. package/dist/chunks/{messages-B7Vlzmgw.mjs → messages-CpzO7KRA.mjs} +16 -0
  35. package/dist/{messages-DwTwecgF2.mjs → chunks/messages-Cqc-6rfh2.mjs} +16 -0
  36. package/dist/chunks/{messages-BN_zp4oj.mjs → messages-CrMfiGu5.mjs} +16 -0
  37. package/dist/{messages-BRlbE8SE.mjs → chunks/messages-Cs9XBt4T.mjs} +16 -0
  38. package/dist/chunks/{messages-DDM4t-j8.mjs → messages-Csvm4mtA.mjs} +16 -0
  39. package/dist/chunks/{messages-CuHxfDvL2.mjs → messages-Ct7AMBS82.mjs} +16 -0
  40. package/dist/{messages-BjEY7_jw.mjs → chunks/messages-CvfKofOP.mjs} +16 -0
  41. package/dist/{messages-Du0fWeyE.mjs → chunks/messages-CyNsByCY.mjs} +16 -0
  42. package/dist/{messages-6Cq_jyNk2.mjs → chunks/messages-Czny5pPT2.mjs} +16 -0
  43. package/dist/{messages-CGqRnKaM.mjs → chunks/messages-D5IgUbBD2.mjs} +16 -0
  44. package/dist/{messages-uP6wmMOs.mjs → chunks/messages-DA7Zk-Cy.mjs} +16 -0
  45. package/dist/chunks/{messages-DJ9yyqUO2.mjs → messages-DAVsuDWh2.mjs} +16 -0
  46. package/dist/chunks/{messages-i9ThpxZk2.mjs → messages-DBpXyvRe2.mjs} +16 -0
  47. package/dist/chunks/{messages-CogKhvJL.mjs → messages-DC7TX-YT.mjs} +16 -0
  48. package/dist/{messages-C-KPP7bC.mjs → chunks/messages-DD7BI6BK.mjs} +16 -0
  49. package/dist/{messages-ZMa-zmIc.mjs → chunks/messages-DHCVA7XQ.mjs} +16 -0
  50. package/dist/chunks/{messages-BPQA3B862.mjs → messages-DJA6fb_P2.mjs} +16 -0
  51. package/dist/chunks/{messages-D9SfB6MI.mjs → messages-DJkIeapn.mjs} +16 -0
  52. package/dist/{messages-CZkwcbV12.mjs → chunks/messages-DPykxECP2.mjs} +16 -0
  53. package/dist/chunks/{messages-BQvBhQem.mjs → messages-DQ5AyNCU.mjs} +16 -0
  54. package/dist/chunks/{messages-rxlf-Ule.mjs → messages-DR09nkcZ.mjs} +16 -0
  55. package/dist/chunks/{messages-B1uFbxNg.mjs → messages-DSjXen8E.mjs} +16 -0
  56. package/dist/chunks/{messages-OFFQT8Fg.mjs → messages-DT7fRpCy.mjs} +16 -0
  57. package/dist/{messages-DnNNd3RW2.mjs → chunks/messages-DUDgFEEe2.mjs} +16 -0
  58. package/dist/chunks/{messages-7PIvzufT.mjs → messages-Df87zXXG.mjs} +16 -0
  59. package/dist/chunks/{messages-CvA7Fbqf.mjs → messages-Dfpi8pDY.mjs} +16 -0
  60. package/dist/{messages-CXlAjnEQ.mjs → chunks/messages-Dm4YVlrm.mjs} +16 -0
  61. package/dist/chunks/{messages-CuJLHCj5.mjs → messages-Dplnp19q.mjs} +16 -0
  62. package/dist/{messages-DEfeDBuV2.mjs → chunks/messages-FHrCEJmY2.mjs} +16 -0
  63. package/dist/chunks/{messages-nZP1GShd.mjs → messages-ID1PHnMv.mjs} +16 -0
  64. package/dist/{messages-BiK5fMYF2.mjs → chunks/messages-IDEUsFhQ2.mjs} +16 -0
  65. package/dist/{messages-C672uqt-.mjs → chunks/messages-JQKFJo7C.mjs} +16 -0
  66. package/dist/{messages-DVHWIOfr2.mjs → chunks/messages-LxumrNue2.mjs} +16 -0
  67. package/dist/chunks/{messages-By-gACFM2.mjs → messages-R2W_rGOo2.mjs} +16 -0
  68. package/dist/chunks/{messages-FEjIF48t.mjs → messages-ZJ0b1C3a.mjs} +16 -0
  69. package/dist/{messages-nosa-xnx2.mjs → chunks/messages-d0Ky6QjR.mjs} +16 -0
  70. package/dist/{messages-CHaVGY89.mjs → chunks/messages-p4byLfvR.mjs} +16 -0
  71. package/dist/{messages-D-bnq2qy.mjs → chunks/messages-u2yxkNTE2.mjs} +16 -0
  72. package/dist/{messages-axsznSTn2.mjs → chunks/messages-wLSVQbsA2.mjs} +16 -0
  73. package/dist/chunks/{messages-DiaQNuPV.mjs → messages-xfjdrZmx.mjs} +16 -0
  74. package/dist/chunks/{objectSpread2-CyPxu8-u.mjs → objectSpread2-BY4mgzrQ.mjs} +1 -1
  75. package/dist/chunks/{tools-B6tibTzs.mjs → tools-DVZ3zU40.mjs} +2868 -1082
  76. package/dist/full.mjs +11 -11
  77. package/dist/locales.mjs +83 -67
  78. package/dist/{messages-BfbYJ8Wk2.mjs → messages--S8_taOd2.mjs} +16 -0
  79. package/dist/{chunks/messages-CkWidbwX2.mjs → messages-B-4fku2H2.mjs} +16 -0
  80. package/dist/{chunks/messages-Dn1ZDZUy.mjs → messages-BAcH6PtT2.mjs} +16 -0
  81. package/dist/{chunks/messages-2nj1xBDo.mjs → messages-BBq0M604.mjs} +16 -0
  82. package/dist/{messages-Dzqb5lg6.mjs → messages-BBvDbp62.mjs} +16 -0
  83. package/dist/{messages-kuLrhtV2.mjs → messages-BCG_evLg.mjs} +16 -0
  84. package/dist/{messages-DEKkIgU6.mjs → messages-BCuTVHBV.mjs} +16 -0
  85. package/dist/{chunks/messages-CYZL_rhV2.mjs → messages-BGsDZTQp2.mjs} +16 -0
  86. package/dist/{chunks/messages-cMwiuDZM.mjs → messages-BJ7BuFZi.mjs} +16 -0
  87. package/dist/{chunks/messages-Dl16RBg1.mjs → messages-BKjqW08U.mjs} +16 -0
  88. package/dist/{messages-Daza4lOM.mjs → messages-BSe3QDnQ.mjs} +16 -0
  89. package/dist/{chunks/messages-CDV8VcSZ2.mjs → messages-BVKZK-3t.mjs} +16 -0
  90. package/dist/{messages-CcPrYMHE.mjs → messages-BXI3qIos.mjs} +16 -0
  91. package/dist/{messages-B_6S7hBj2.mjs → messages-BcFQFcJ92.mjs} +16 -0
  92. package/dist/{chunks/messages-CmSsyItg.mjs → messages-Bio7KYsr2.mjs} +16 -0
  93. package/dist/{chunks/messages-CqdYWY192.mjs → messages-Bk984gRE2.mjs} +16 -0
  94. package/dist/{chunks/messages-CQgP-Fo22.mjs → messages-BmNaAyKS.mjs} +16 -0
  95. package/dist/{messages-DbPt9d2U.mjs → messages-Bo_FUvVH.mjs} +16 -0
  96. package/dist/{chunks/messages-x6GyZWWT.mjs → messages-BokEflKa.mjs} +16 -0
  97. package/dist/{chunks/messages-C9qPNbrJ2.mjs → messages-BtxaN-xx.mjs} +16 -0
  98. package/dist/{messages-6edZhK922.mjs → messages-BvgTQLf72.mjs} +16 -0
  99. package/dist/{chunks/messages-BVl-X2wo2.mjs → messages-BvgXeMSL2.mjs} +16 -0
  100. package/dist/{messages-BBauvpFc.mjs → messages-BywbKcPC.mjs} +16 -0
  101. package/dist/{chunks/messages-D06U2QNl2.mjs → messages-C30Vz-UZ2.mjs} +16 -0
  102. package/dist/{messages-BwyQiBdm2.mjs → messages-C5XPUD9T2.mjs} +16 -0
  103. package/dist/{chunks/messages-BivhofAQ2.mjs → messages-C6OJvnJg2.mjs} +16 -0
  104. package/dist/{chunks/messages-D6ZvH6hX.mjs → messages-C6Y4Jv2N.mjs} +16 -0
  105. package/dist/{messages-DaFDdCrr.mjs → messages-CBdQ3XP9.mjs} +16 -0
  106. package/dist/{chunks/messages-KihEeXdr.mjs → messages-CBzd_x7H.mjs} +16 -0
  107. package/dist/{messages-CsVZUVra.mjs → messages-CHJ5SOZI.mjs} +16 -0
  108. package/dist/{messages-us2JotS-2.mjs → messages-CM5fsPo02.mjs} +16 -0
  109. package/dist/{chunks/messages-DjhgPQtb.mjs → messages-CVcQD-9u.mjs} +16 -0
  110. package/dist/{messages-BQi_l2vs.mjs → messages-CYX48nfg.mjs} +16 -0
  111. package/dist/{chunks/messages-BF8c-lMm.mjs → messages-Ccd587Yn.mjs} +16 -0
  112. package/dist/{chunks/messages-5WyxUYVR2.mjs → messages-CdlsTFB1.mjs} +16 -0
  113. package/dist/{messages-ke15helG2.mjs → messages-CgzbJ8_l2.mjs} +16 -0
  114. package/dist/{messages-D1-_eTfM.mjs → messages-CjmSrt1D.mjs} +16 -0
  115. package/dist/{chunks/messages-C7YpgZ9m.mjs → messages-CqkRG9mH.mjs} +16 -0
  116. package/dist/{messages-Dtw27ih4.mjs → messages-D3cAcyzj.mjs} +16 -0
  117. package/dist/{messages-CLN3oL77.mjs → messages-DA-o8X3A.mjs} +16 -0
  118. package/dist/{chunks/messages-BtZ8oQXS.mjs → messages-DD5pW0zJ.mjs} +16 -0
  119. package/dist/{chunks/messages-A3Z4jxwt2.mjs → messages-DIRha_gg2.mjs} +16 -0
  120. package/dist/{chunks/messages-rnd6qiJ12.mjs → messages-DJKLtW7u.mjs} +16 -0
  121. package/dist/{messages-h_VN1Kyo2.mjs → messages-DJT4Bt_02.mjs} +16 -0
  122. package/dist/{chunks/messages-D3hNTep_.mjs → messages-DOTJ2NvJ.mjs} +16 -0
  123. package/dist/{chunks/messages-B18MZnaY.mjs → messages-DUBHHfEt.mjs} +16 -0
  124. package/dist/{chunks/messages-92ma9RJD2.mjs → messages-DV9e1DW7.mjs} +16 -0
  125. package/dist/{chunks/messages-DQUUtL5v.mjs → messages-DVQNjdPk.mjs} +16 -0
  126. package/dist/{messages-DflAKRLd.mjs → messages-DZEcrbmH.mjs} +16 -0
  127. package/dist/{messages-BLjz6V7y2.mjs → messages-DbxbxUiK2.mjs} +16 -0
  128. package/dist/{messages-QkGAxuVC2.mjs → messages-Dcyrzdxa2.mjs} +16 -0
  129. package/dist/{chunks/messages-DBZ-uuAV.mjs → messages-Dddxv8-f2.mjs} +16 -0
  130. package/dist/{messages-DVILiJw52.mjs → messages-DjJQoYvP2.mjs} +16 -0
  131. package/dist/{messages-B-lXqB1z2.mjs → messages-Dkg99bfr2.mjs} +16 -0
  132. package/dist/{messages-CCBgCmyq.mjs → messages-DnatBKPm.mjs} +16 -0
  133. package/dist/{messages-Dn-khi3a.mjs → messages-DqyqEw1_.mjs} +16 -0
  134. package/dist/{chunks/messages-D4QXMtW52.mjs → messages-DtrSrdfE2.mjs} +16 -0
  135. package/dist/{messages-BHIdzfAS2.mjs → messages-JhoVMjfX2.mjs} +16 -0
  136. package/dist/{messages-YlWV9cSl.mjs → messages-eTourT12.mjs} +16 -0
  137. package/dist/{messages-DzlmoWqQ.mjs → messages-fLi0P2dP.mjs} +16 -0
  138. package/dist/{messages-C-v50b4r.mjs → messages-hTpeKUaW.mjs} +16 -0
  139. package/dist/{chunks/messages-16UmLAWZ2.mjs → messages-i4S6q64n2.mjs} +16 -0
  140. package/dist/{messages-DP9PhNTo.mjs → messages-pgPcitDH.mjs} +16 -0
  141. package/dist/{chunks/messages-D5iRrf9M.mjs → messages-tK67CBqn.mjs} +16 -0
  142. package/dist/{chunks/messages-BTyEo5Kb.mjs → messages-tsHpMdDT2.mjs} +16 -0
  143. package/dist/{chunks/messages-Ct_H_5cB2.mjs → messages-upqrRZQH2.mjs} +16 -0
  144. package/dist/{messages-CyZZ10br.mjs → messages-xEI8gEDK.mjs} +16 -0
  145. package/dist/react.mjs +3 -3
  146. package/dist/tools.mjs +3 -3
  147. package/dist/vendor.LICENSE.txt +136 -1
  148. package/package.json +2 -1
  149. package/src/components/block/style-manager.ts +1 -1
  150. package/src/components/i18n/locales/am/messages.json +16 -0
  151. package/src/components/i18n/locales/ar/messages.json +16 -0
  152. package/src/components/i18n/locales/az/messages.json +16 -0
  153. package/src/components/i18n/locales/bg/messages.json +16 -0
  154. package/src/components/i18n/locales/bn/messages.json +16 -0
  155. package/src/components/i18n/locales/bs/messages.json +16 -0
  156. package/src/components/i18n/locales/cs/messages.json +16 -0
  157. package/src/components/i18n/locales/da/messages.json +16 -0
  158. package/src/components/i18n/locales/de/messages.json +16 -0
  159. package/src/components/i18n/locales/dv/messages.json +16 -0
  160. package/src/components/i18n/locales/el/messages.json +16 -0
  161. package/src/components/i18n/locales/en/messages.json +16 -0
  162. package/src/components/i18n/locales/es/messages.json +16 -0
  163. package/src/components/i18n/locales/et/messages.json +16 -0
  164. package/src/components/i18n/locales/fa/messages.json +16 -0
  165. package/src/components/i18n/locales/fi/messages.json +16 -0
  166. package/src/components/i18n/locales/fil/messages.json +16 -0
  167. package/src/components/i18n/locales/fr/messages.json +16 -0
  168. package/src/components/i18n/locales/gu/messages.json +16 -0
  169. package/src/components/i18n/locales/he/messages.json +16 -0
  170. package/src/components/i18n/locales/hi/messages.json +16 -0
  171. package/src/components/i18n/locales/hr/messages.json +16 -0
  172. package/src/components/i18n/locales/hu/messages.json +16 -0
  173. package/src/components/i18n/locales/hy/messages.json +16 -0
  174. package/src/components/i18n/locales/id/messages.json +16 -0
  175. package/src/components/i18n/locales/it/messages.json +16 -0
  176. package/src/components/i18n/locales/ja/messages.json +16 -0
  177. package/src/components/i18n/locales/ka/messages.json +16 -0
  178. package/src/components/i18n/locales/km/messages.json +16 -0
  179. package/src/components/i18n/locales/kn/messages.json +16 -0
  180. package/src/components/i18n/locales/ko/messages.json +16 -0
  181. package/src/components/i18n/locales/ku/messages.json +16 -0
  182. package/src/components/i18n/locales/lo/messages.json +16 -0
  183. package/src/components/i18n/locales/lt/messages.json +16 -0
  184. package/src/components/i18n/locales/lv/messages.json +16 -0
  185. package/src/components/i18n/locales/mk/messages.json +16 -0
  186. package/src/components/i18n/locales/ml/messages.json +16 -0
  187. package/src/components/i18n/locales/mn/messages.json +16 -0
  188. package/src/components/i18n/locales/mr/messages.json +16 -0
  189. package/src/components/i18n/locales/ms/messages.json +16 -0
  190. package/src/components/i18n/locales/my/messages.json +16 -0
  191. package/src/components/i18n/locales/ne/messages.json +16 -0
  192. package/src/components/i18n/locales/nl/messages.json +16 -0
  193. package/src/components/i18n/locales/no/messages.json +16 -0
  194. package/src/components/i18n/locales/pa/messages.json +16 -0
  195. package/src/components/i18n/locales/pl/messages.json +16 -0
  196. package/src/components/i18n/locales/ps/messages.json +16 -0
  197. package/src/components/i18n/locales/pt/messages.json +16 -0
  198. package/src/components/i18n/locales/ro/messages.json +16 -0
  199. package/src/components/i18n/locales/ru/messages.json +16 -0
  200. package/src/components/i18n/locales/sd/messages.json +16 -0
  201. package/src/components/i18n/locales/si/messages.json +16 -0
  202. package/src/components/i18n/locales/sk/messages.json +16 -0
  203. package/src/components/i18n/locales/sl/messages.json +16 -0
  204. package/src/components/i18n/locales/sq/messages.json +16 -0
  205. package/src/components/i18n/locales/sr/messages.json +16 -0
  206. package/src/components/i18n/locales/sv/messages.json +16 -0
  207. package/src/components/i18n/locales/sw/messages.json +16 -0
  208. package/src/components/i18n/locales/ta/messages.json +16 -0
  209. package/src/components/i18n/locales/te/messages.json +16 -0
  210. package/src/components/i18n/locales/th/messages.json +16 -0
  211. package/src/components/i18n/locales/tr/messages.json +16 -0
  212. package/src/components/i18n/locales/ug/messages.json +16 -0
  213. package/src/components/i18n/locales/uk/messages.json +16 -0
  214. package/src/components/i18n/locales/ur/messages.json +16 -0
  215. package/src/components/i18n/locales/vi/messages.json +16 -0
  216. package/src/components/i18n/locales/yi/messages.json +16 -0
  217. package/src/components/i18n/locales/zh/messages.json +16 -0
  218. package/src/components/icons/index.ts +56 -0
  219. package/src/components/modules/api/tools.ts +19 -0
  220. package/src/components/modules/blockEvents/composers/keyboardNavigation.ts +5 -5
  221. package/src/components/modules/blockManager/blockManager.ts +11 -0
  222. package/src/components/modules/blockManager/event-binder.ts +12 -1
  223. package/src/components/modules/themeManager.ts +3 -1
  224. package/src/components/modules/toolbar/blockSettings.ts +0 -1
  225. package/src/components/modules/toolbar/inline/index.ts +0 -3
  226. package/src/components/modules/uiControllers/controllers/keyboard.ts +29 -0
  227. package/src/components/modules/uiControllers/controllers/selection.ts +14 -2
  228. package/src/components/ui/toolbox.ts +0 -1
  229. package/src/components/utils/popover/popover-position.ts +4 -2
  230. package/src/styles/main.css +1139 -0
  231. package/src/tools/callout/constants.ts +2 -1
  232. package/src/tools/database/database-backend-sync.ts +101 -0
  233. package/src/tools/database/database-board-view.ts +301 -0
  234. package/src/tools/database/database-card-drag.ts +306 -0
  235. package/src/tools/database/database-card-drawer.ts +546 -0
  236. package/src/tools/database/database-column-controls.ts +46 -0
  237. package/src/tools/database/database-column-drag.ts +262 -0
  238. package/src/tools/database/database-keyboard.ts +35 -0
  239. package/src/tools/database/database-list-row-drag.ts +245 -0
  240. package/src/tools/database/database-list-view.ts +333 -0
  241. package/src/tools/database/database-model.ts +246 -0
  242. package/src/tools/database/database-property-type-popover.ts +108 -0
  243. package/src/tools/database/database-tab-bar.ts +532 -0
  244. package/src/tools/database/database-view-popover.ts +109 -0
  245. package/src/tools/database/database-view-renderer.ts +25 -0
  246. package/src/tools/database/index.ts +948 -0
  247. package/src/tools/database/types.ts +144 -0
  248. package/src/tools/index.ts +2 -0
  249. package/types/api/tools.d.ts +18 -0
@@ -709,6 +709,30 @@
709
709
  --blok-table-grip-outline: transparent;
710
710
  --blok-table-drag-source-bg: #f3f4f6;
711
711
 
712
+ /* Database / Kanban */
713
+ --blok-database-card-bg: #fff;
714
+ --blok-database-card-bg-hover: #f7f7f5;
715
+ --blok-database-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
716
+ --blok-database-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.12);
717
+ --blok-database-card-border: rgba(0, 0, 0, 0.06);
718
+ --blok-database-card-border-active: rgba(35, 131, 226, 0.57);
719
+ --blok-database-card-placeholder: rgba(55, 53, 47, 0.4);
720
+ --blok-database-column-bg: rgba(0, 0, 0, 0.04);
721
+ --blok-database-add-text: rgba(55, 53, 47, 0.5);
722
+ --blok-database-add-border: rgba(55, 53, 47, 0.25);
723
+ --blok-database-add-hover-bg: rgba(55, 53, 47, 0.06);
724
+ --blok-database-delete-text: rgba(55, 53, 47, 0.35);
725
+ --blok-database-delete-hover-text: rgba(55, 53, 47, 0.65);
726
+ --blok-database-drawer-border: #e8e8eb;
727
+ --blok-database-tab-bg: transparent;
728
+ --blok-database-tab-bg-active: rgba(0, 0, 0, 0.06);
729
+ --blok-database-tab-bg-hover: rgba(0, 0, 0, 0.04);
730
+ --blok-database-tab-text: rgba(55, 53, 47, 0.5);
731
+ --blok-database-tab-text-active: #37352f;
732
+ --blok-database-popover-bg: #fff;
733
+ --blok-database-popover-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
734
+ --blok-database-popover-hover: rgba(0, 0, 0, 0.04);
735
+
712
736
  /* Toggle switch */
713
737
  --blok-toggle-off-bg: #d4d4d8;
714
738
  --blok-toggle-on-bg: #2383e2;
@@ -802,6 +826,30 @@
802
826
  --blok-table-grip-outline: rgba(255, 255, 255, 0.12);
803
827
  --blok-table-drag-source-bg: rgba(255, 255, 255, 0.07);
804
828
 
829
+ /* Database / Kanban */
830
+ --blok-database-card-bg: #2d2d2c;
831
+ --blok-database-card-bg-hover: #353534;
832
+ --blok-database-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
833
+ --blok-database-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.45);
834
+ --blok-database-card-border: rgba(255, 255, 255, 0.06);
835
+ --blok-database-card-border-active: rgba(35, 131, 226, 0.7);
836
+ --blok-database-card-placeholder: rgba(255, 255, 255, 0.3);
837
+ --blok-database-column-bg: rgba(255, 255, 255, 0.05);
838
+ --blok-database-add-text: rgba(255, 255, 255, 0.4);
839
+ --blok-database-add-border: rgba(255, 255, 255, 0.2);
840
+ --blok-database-add-hover-bg: rgba(255, 255, 255, 0.06);
841
+ --blok-database-delete-text: rgba(255, 255, 255, 0.3);
842
+ --blok-database-delete-hover-text: rgba(255, 255, 255, 0.55);
843
+ --blok-database-drawer-border: rgba(255, 255, 255, 0.1);
844
+ --blok-database-tab-bg: transparent;
845
+ --blok-database-tab-bg-active: rgba(255, 255, 255, 0.08);
846
+ --blok-database-tab-bg-hover: rgba(255, 255, 255, 0.04);
847
+ --blok-database-tab-text: rgba(255, 255, 255, 0.45);
848
+ --blok-database-tab-text-active: rgba(255, 255, 255, 0.9);
849
+ --blok-database-popover-bg: #2d2d2c;
850
+ --blok-database-popover-shadow: 0 4px 24px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.08);
851
+ --blok-database-popover-hover: rgba(255, 255, 255, 0.06);
852
+
805
853
  /* Toggle switch */
806
854
  --blok-toggle-off-bg: #3f3f46;
807
855
  --blok-toggle-on-bg: #529cca;
@@ -895,6 +943,28 @@
895
943
  --blok-table-grip-outline: rgba(255, 255, 255, 0.12);
896
944
  --blok-table-drag-source-bg: rgba(255, 255, 255, 0.07);
897
945
 
946
+ /* Database / Kanban */
947
+ --blok-database-card-bg: #2d2d2c;
948
+ --blok-database-card-bg-hover: #353534;
949
+ --blok-database-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
950
+ --blok-database-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.45);
951
+ --blok-database-card-border: rgba(255, 255, 255, 0.06);
952
+ --blok-database-column-bg: rgba(255, 255, 255, 0.03);
953
+ --blok-database-add-text: rgba(255, 255, 255, 0.4);
954
+ --blok-database-add-border: rgba(255, 255, 255, 0.2);
955
+ --blok-database-add-hover-bg: rgba(255, 255, 255, 0.06);
956
+ --blok-database-delete-text: rgba(255, 255, 255, 0.3);
957
+ --blok-database-delete-hover-text: rgba(255, 255, 255, 0.55);
958
+ --blok-database-drawer-border: rgba(255, 255, 255, 0.1);
959
+ --blok-database-tab-bg: transparent;
960
+ --blok-database-tab-bg-active: rgba(255, 255, 255, 0.08);
961
+ --blok-database-tab-bg-hover: rgba(255, 255, 255, 0.04);
962
+ --blok-database-tab-text: rgba(255, 255, 255, 0.45);
963
+ --blok-database-tab-text-active: rgba(255, 255, 255, 0.9);
964
+ --blok-database-popover-bg: #2d2d2c;
965
+ --blok-database-popover-shadow: 0 4px 24px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.08);
966
+ --blok-database-popover-hover: rgba(255, 255, 255, 0.06);
967
+
898
968
  /* Toggle switch */
899
969
  --blok-toggle-off-bg: #3f3f46;
900
970
  --blok-toggle-on-bg: #e4e4e7;
@@ -1426,3 +1496,1072 @@
1426
1496
  [data-emoji-picker-body]::-webkit-scrollbar-thumb:hover {
1427
1497
  background: color-mix(in srgb, currentColor 22%, transparent);
1428
1498
  }
1499
+
1500
+ /* ═══════════════════════════════════════════════════════
1501
+ Database / Kanban board
1502
+ ═══════════════════════════════════════════════════════ */
1503
+
1504
+ /**
1505
+ * Board area — scrollable padding on both sides so columns can be
1506
+ * scrolled all the way to either edge of the editor. The initial
1507
+ * scrollLeft (set in DatabaseTool.rendered()) positions the first
1508
+ * column at the content-area left edge.
1509
+ */
1510
+ [data-blok-database-board] {
1511
+ padding-left: max(0px, calc((100% - var(--max-width-content)) / 2));
1512
+ padding-right: max(0px, calc((100% - var(--max-width-content)) / 2));
1513
+
1514
+ /* macOS-style scrollbar — thin, rounded, visible on hover/scroll */
1515
+ scrollbar-width: thin;
1516
+ scrollbar-color: transparent transparent;
1517
+ }
1518
+ [data-blok-database-board]:hover {
1519
+ scrollbar-color: color-mix(in srgb, currentColor 15%, transparent) transparent;
1520
+ }
1521
+ [data-blok-database-board]::-webkit-scrollbar {
1522
+ height: 8px;
1523
+ }
1524
+ [data-blok-database-board]::-webkit-scrollbar-track {
1525
+ background: transparent;
1526
+ }
1527
+ [data-blok-database-board]::-webkit-scrollbar-thumb {
1528
+ background: transparent;
1529
+ border-radius: 4px;
1530
+ }
1531
+ [data-blok-database-board]:hover::-webkit-scrollbar-thumb {
1532
+ background: color-mix(in srgb, currentColor 15%, transparent);
1533
+ }
1534
+ [data-blok-database-board]::-webkit-scrollbar-thumb:hover {
1535
+ background: color-mix(in srgb, currentColor 25%, transparent);
1536
+ }
1537
+
1538
+ /**
1539
+ * Column background tint — a subtle fill so columns read as lanes.
1540
+ */
1541
+ [data-blok-database-column] {
1542
+ background-color: var(--blok-database-column-bg);
1543
+ border-radius: 10px;
1544
+ padding: 8px;
1545
+ }
1546
+
1547
+ /**
1548
+ * Column header — grab cursor to indicate draggable area.
1549
+ */
1550
+ [data-blok-database-column-header] {
1551
+ cursor: grab;
1552
+ }
1553
+
1554
+ /**
1555
+ * Cards — elevated surface with subtle border and shadow.
1556
+ */
1557
+ [data-blok-database-card] {
1558
+ background-color: var(--blok-database-card-bg);
1559
+ box-shadow: var(--blok-database-card-shadow);
1560
+ border: 1px solid var(--blok-database-card-border);
1561
+ border-radius: 8px;
1562
+ transition: background-color 150ms ease, box-shadow 150ms ease, border-color 150ms ease, outline-color 150ms ease;
1563
+ }
1564
+
1565
+ [data-blok-database-card]:hover {
1566
+ background-color: var(--blok-database-card-bg-hover);
1567
+ }
1568
+
1569
+ [data-blok-database-card-active] {
1570
+ background-color: var(--blok-database-card-bg-hover);
1571
+ outline: 2px solid var(--blok-database-card-border-active);
1572
+ outline-offset: -1px;
1573
+ }
1574
+
1575
+ /**
1576
+ * During drag — smooth card displacement transitions.
1577
+ */
1578
+ [data-blok-database-dragging] [data-blok-database-card] {
1579
+ transition: box-shadow 150ms ease, border-color 150ms ease, margin-top 200ms cubic-bezier(0.25, 0.1, 0.25, 1);
1580
+ }
1581
+
1582
+ [data-blok-database-dragging] [data-blok-database-cards] {
1583
+ transition: padding-bottom 200ms cubic-bezier(0.25, 0.1, 0.25, 1);
1584
+ }
1585
+
1586
+ /**
1587
+ * During column reorder — smooth gap displacement and grab cursor.
1588
+ */
1589
+ [data-blok-database-column-reordering] {
1590
+ cursor: grabbing;
1591
+ }
1592
+
1593
+ [data-blok-database-column-reordering] [data-blok-database-column] {
1594
+ transition: margin-left 200ms cubic-bezier(0.25, 0.1, 0.25, 1);
1595
+ }
1596
+
1597
+ [data-blok-database-column-reordering] [data-blok-database-board] {
1598
+ transition: padding-right 200ms cubic-bezier(0.25, 0.1, 0.25, 1);
1599
+ }
1600
+
1601
+ /**
1602
+ * Delete card button — hidden until card hover.
1603
+ */
1604
+ [data-blok-database-delete-card] {
1605
+ opacity: 0;
1606
+ background: none;
1607
+ border: none;
1608
+ cursor: pointer;
1609
+ color: var(--blok-database-delete-text);
1610
+ font-size: 16px;
1611
+ line-height: 1;
1612
+ padding: 0 2px;
1613
+ transition: opacity 120ms ease, color 120ms ease;
1614
+ }
1615
+
1616
+ [data-blok-database-card]:hover [data-blok-database-delete-card] {
1617
+ opacity: 1;
1618
+ }
1619
+
1620
+ [data-blok-database-delete-card]:hover {
1621
+ color: var(--blok-database-delete-hover-text);
1622
+ }
1623
+
1624
+ /**
1625
+ * Add card / Add column buttons — muted text with hover fill.
1626
+ */
1627
+ [data-blok-database-add-card],
1628
+ [data-blok-database-add-column] {
1629
+ background: none;
1630
+ border: 1px solid var(--blok-database-add-border);
1631
+ cursor: pointer;
1632
+ color: var(--blok-database-add-text);
1633
+ font-size: 14px;
1634
+ padding: 6px 8px;
1635
+ border-radius: 8px;
1636
+ text-align: left;
1637
+ width: 100%;
1638
+ transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease;
1639
+ }
1640
+
1641
+ [data-blok-database-add-card]:hover,
1642
+ [data-blok-database-add-column]:hover {
1643
+ background-color: var(--blok-database-add-hover-bg);
1644
+ color: var(--blok-text-primary, inherit);
1645
+ }
1646
+
1647
+ [data-blok-database-add-column] {
1648
+ white-space: nowrap;
1649
+ align-self: flex-start;
1650
+ flex-shrink: 0;
1651
+ padding: 10px 12px;
1652
+ border-radius: 8px;
1653
+ }
1654
+
1655
+ /**
1656
+ * Column header delete button — hidden until column header hover.
1657
+ */
1658
+ [data-blok-database-delete-column] {
1659
+ opacity: 0;
1660
+ background: none;
1661
+ border: none;
1662
+ cursor: pointer;
1663
+ color: var(--blok-database-delete-text);
1664
+ font-size: 14px;
1665
+ line-height: 1;
1666
+ padding: 2px 4px;
1667
+ border-radius: 3px;
1668
+ flex-shrink: 0;
1669
+ transition: opacity 120ms ease, color 120ms ease;
1670
+ }
1671
+
1672
+ [data-blok-database-column-header]:hover [data-blok-database-delete-column] {
1673
+ opacity: 1;
1674
+ }
1675
+
1676
+ [data-blok-database-delete-column]:hover {
1677
+ color: var(--blok-database-delete-hover-text);
1678
+ }
1679
+
1680
+ /**
1681
+ * Column header pill — rounded badge containing dot + title.
1682
+ */
1683
+ [data-blok-database-column-pill] {
1684
+ display: inline-flex;
1685
+ align-items: center;
1686
+ gap: 6px;
1687
+ padding: 2px 4px;
1688
+ border-radius: 4px;
1689
+ }
1690
+
1691
+ /**
1692
+ * Column status dot — small colored circle.
1693
+ */
1694
+ [data-blok-database-column-dot] {
1695
+ width: 8px;
1696
+ height: 8px;
1697
+ border-radius: 50%;
1698
+ flex-shrink: 0;
1699
+ }
1700
+
1701
+ /**
1702
+ * Column title text — uppercase status-label style, truncate long titles.
1703
+ */
1704
+ [data-blok-database-column-title] {
1705
+ overflow: hidden;
1706
+ text-overflow: ellipsis;
1707
+ white-space: nowrap;
1708
+ font-size: 12px;
1709
+ text-transform: uppercase;
1710
+ letter-spacing: 0.04em;
1711
+ }
1712
+
1713
+ /**
1714
+ * Card title text — clamp to two lines.
1715
+ */
1716
+ [data-blok-database-card-title] {
1717
+ font-size: 14px;
1718
+ font-weight: 500;
1719
+ line-height: 1.45;
1720
+ word-break: break-word;
1721
+ }
1722
+
1723
+ [data-blok-database-card-title][data-placeholder] {
1724
+ color: var(--blok-database-card-placeholder);
1725
+ font-style: italic;
1726
+ }
1727
+
1728
+ /**
1729
+ * Drawer — base layout (fixed right panel) with slide-in animation.
1730
+ */
1731
+ [data-blok-database-drawer] {
1732
+ position: fixed;
1733
+ top: 0;
1734
+ right: 0;
1735
+ height: 100%;
1736
+ width: 0;
1737
+ z-index: 1000;
1738
+ overflow: hidden;
1739
+ display: flex;
1740
+ flex-direction: column;
1741
+ border-left: 1px solid var(--blok-popover-border, #e8e8eb);
1742
+ background-color: var(--blok-popover-bg, #fff);
1743
+ box-shadow: -4px 0 12px rgba(0, 0, 0, 0.08);
1744
+ transition: width 200ms ease;
1745
+ }
1746
+
1747
+ /**
1748
+ * Drawer toolbar — thin top bar with close button.
1749
+ */
1750
+ [data-blok-database-drawer-toolbar] {
1751
+ display: flex;
1752
+ align-items: center;
1753
+ padding: 8px 12px;
1754
+ flex-shrink: 0;
1755
+ border-bottom: 1px solid var(--blok-database-drawer-border);
1756
+ }
1757
+
1758
+ /**
1759
+ * Drawer close button — double-chevron icon.
1760
+ */
1761
+ [data-blok-database-drawer-close] {
1762
+ display: inline-flex;
1763
+ align-items: center;
1764
+ background: none;
1765
+ border: none;
1766
+ cursor: pointer;
1767
+ padding: 4px;
1768
+ border-radius: 4px;
1769
+ color: var(--blok-database-add-text);
1770
+ gap: -4px;
1771
+ }
1772
+
1773
+ [data-blok-database-drawer-close]:hover {
1774
+ background-color: var(--blok-database-drawer-border);
1775
+ }
1776
+
1777
+ [data-blok-database-drawer-close] svg {
1778
+ width: 14px;
1779
+ height: 14px;
1780
+ margin-left: -6px;
1781
+ }
1782
+
1783
+ [data-blok-database-drawer-close] svg:first-child {
1784
+ margin-left: 0;
1785
+ }
1786
+
1787
+ /**
1788
+ * Drawer scrollable content area.
1789
+ */
1790
+ [data-blok-database-drawer-content] {
1791
+ flex: 1;
1792
+ overflow-y: auto;
1793
+ padding: 40px 60px 20px;
1794
+ }
1795
+
1796
+ /**
1797
+ * Drawer title — large, Notion-style textarea that auto-resizes.
1798
+ */
1799
+ [data-blok-database-drawer-title] {
1800
+ display: block;
1801
+ width: 100%;
1802
+ font-size: 32px;
1803
+ font-weight: 700;
1804
+ border: none;
1805
+ outline: none;
1806
+ background-color: transparent;
1807
+ color: inherit;
1808
+ padding: 0;
1809
+ margin-bottom: 12px;
1810
+ line-height: 1.2;
1811
+ resize: none;
1812
+ overflow: hidden;
1813
+ font-family: inherit;
1814
+ }
1815
+
1816
+ [data-blok-database-drawer-title]::placeholder {
1817
+ color: var(--blok-database-add-text);
1818
+ }
1819
+
1820
+ /**
1821
+ * Drawer properties section.
1822
+ */
1823
+ [data-blok-database-drawer-props] {
1824
+ display: flex;
1825
+ flex-direction: column;
1826
+ gap: 4px;
1827
+ margin-bottom: 16px;
1828
+ }
1829
+
1830
+ /**
1831
+ * Drawer property row — label + value pair.
1832
+ */
1833
+ [data-blok-database-drawer-prop-row] {
1834
+ display: flex;
1835
+ align-items: center;
1836
+ gap: 8px;
1837
+ min-height: 32px;
1838
+ font-size: 14px;
1839
+ }
1840
+
1841
+ /**
1842
+ * Drawer property label — muted left column.
1843
+ */
1844
+ [data-blok-database-drawer-prop-label] {
1845
+ color: var(--blok-database-add-text);
1846
+ min-width: 100px;
1847
+ flex-shrink: 0;
1848
+ font-size: 14px;
1849
+ }
1850
+
1851
+ /**
1852
+ * Drawer status pill badge — colored chip.
1853
+ */
1854
+ [data-blok-database-drawer-status-pill] {
1855
+ display: inline-flex;
1856
+ align-items: center;
1857
+ gap: 6px;
1858
+ padding: 2px 8px;
1859
+ border-radius: 4px;
1860
+ font-size: 14px;
1861
+ font-weight: 500;
1862
+ line-height: 1.4;
1863
+ }
1864
+
1865
+ /**
1866
+ * Drawer status dot — small circle inside pill.
1867
+ */
1868
+ [data-blok-database-drawer-status-dot] {
1869
+ width: 8px;
1870
+ height: 8px;
1871
+ border-radius: 50%;
1872
+ flex-shrink: 0;
1873
+ }
1874
+
1875
+ /**
1876
+ * Drawer divider.
1877
+ */
1878
+ [data-blok-database-drawer] hr {
1879
+ border: none;
1880
+ border-top: 1px solid var(--blok-database-drawer-border);
1881
+ margin: 0 0 4px;
1882
+ }
1883
+
1884
+ /**
1885
+ * Drawer editor holder.
1886
+ */
1887
+ [data-blok-database-drawer-editor] {
1888
+ flex: 1;
1889
+ min-height: 200px;
1890
+ margin-left: -53px;
1891
+ }
1892
+
1893
+ /**
1894
+ * Add card — match card height and visual rhythm.
1895
+ */
1896
+ [data-blok-database-add-card] {
1897
+ margin-top: 6px;
1898
+ padding: 10px 12px;
1899
+ border-radius: 8px;
1900
+ }
1901
+
1902
+ /**
1903
+ * Card count badge — muted counter after column title.
1904
+ */
1905
+ [data-blok-database-column-count] {
1906
+ color: var(--blok-database-add-text);
1907
+ font-size: 11px;
1908
+ font-weight: 500;
1909
+ margin-left: 2px;
1910
+ flex-shrink: 0;
1911
+ }
1912
+
1913
+ /**
1914
+ * Empty column placeholder — centered muted text.
1915
+ */
1916
+ [data-blok-database-empty-placeholder] {
1917
+ color: var(--blok-database-add-text);
1918
+ font-size: 13px;
1919
+ text-align: center;
1920
+ padding: 12px 0;
1921
+ }
1922
+
1923
+ /**
1924
+ * Drawer — ensure editor tools toolbar doesn't overflow.
1925
+ */
1926
+ [data-blok-database-drawer-editor] .ce-toolbar {
1927
+ left: 0;
1928
+ right: 0;
1929
+ }
1930
+
1931
+ /* Database Tab Bar */
1932
+ [data-blok-database-tab-bar] {
1933
+ display: flex;
1934
+ align-items: center;
1935
+ gap: 2px;
1936
+ padding: 4px 0 8px;
1937
+ padding-left: max(0px, calc((100% - var(--max-width-content)) / 2));
1938
+ }
1939
+
1940
+ [data-blok-database-tab] {
1941
+ display: flex;
1942
+ align-items: center;
1943
+ gap: 6px;
1944
+ padding: 6px 14px;
1945
+ border-radius: 10px;
1946
+ cursor: grab;
1947
+ font-size: 14px;
1948
+ color: var(--blok-database-tab-text);
1949
+ user-select: none;
1950
+ white-space: nowrap;
1951
+ transition: background-color 120ms ease;
1952
+ }
1953
+
1954
+ [data-blok-database-tab-bar][data-dragging] [data-blok-database-tab] {
1955
+ cursor: grabbing;
1956
+ }
1957
+
1958
+ [data-blok-database-tab] svg {
1959
+ width: 16px;
1960
+ height: 16px;
1961
+ flex-shrink: 0;
1962
+ }
1963
+
1964
+ [data-blok-database-tab]:hover {
1965
+ background-color: var(--blok-database-tab-bg-hover);
1966
+ }
1967
+
1968
+ [data-blok-database-tab][data-active] {
1969
+ background-color: var(--blok-database-tab-bg-active);
1970
+ color: var(--blok-database-tab-text-active);
1971
+ font-weight: 500;
1972
+ }
1973
+
1974
+ [data-blok-database-add-view] {
1975
+ display: flex;
1976
+ align-items: center;
1977
+ justify-content: center;
1978
+ width: 26px;
1979
+ height: 26px;
1980
+ border: none;
1981
+ background: none;
1982
+ border-radius: 6px;
1983
+ cursor: pointer;
1984
+ color: var(--blok-database-tab-text);
1985
+ font-size: 18px;
1986
+ margin-left: 2px;
1987
+ transition: background-color 120ms ease;
1988
+ }
1989
+
1990
+ [data-blok-database-add-view]:hover {
1991
+ background-color: var(--blok-database-tab-bg-hover);
1992
+ }
1993
+
1994
+ [data-blok-database-tab-more] {
1995
+ padding: 4px 10px;
1996
+ border-radius: 6px;
1997
+ font-size: 13px;
1998
+ color: var(--blok-database-tab-text);
1999
+ cursor: pointer;
2000
+ white-space: nowrap;
2001
+ transition: background-color 120ms ease;
2002
+ }
2003
+
2004
+ [data-blok-database-tab-more]:hover {
2005
+ background-color: var(--blok-database-tab-bg-hover);
2006
+ }
2007
+
2008
+ /* View Popover */
2009
+ [data-blok-database-view-popover],
2010
+ [data-blok-database-tab-context],
2011
+ [data-blok-database-tab-overflow-dropdown] {
2012
+ background: var(--blok-database-popover-bg);
2013
+ border-radius: 10px;
2014
+ box-shadow: var(--blok-database-popover-shadow);
2015
+ padding: 6px;
2016
+ }
2017
+
2018
+ [data-blok-database-view-popover] {
2019
+ min-width: 220px;
2020
+ }
2021
+
2022
+ [data-blok-database-view-popover-heading] {
2023
+ padding: 8px 8px 6px;
2024
+ font-size: 12px;
2025
+ font-weight: 500;
2026
+ color: var(--blok-database-tab-text);
2027
+ }
2028
+
2029
+ [data-blok-database-view-popover-grid] {
2030
+ padding: 0 0 4px;
2031
+ }
2032
+
2033
+ [data-blok-database-view-option] {
2034
+ display: flex;
2035
+ flex-direction: column;
2036
+ align-items: center;
2037
+ gap: 6px;
2038
+ padding: 14px 8px;
2039
+ border-radius: 6px;
2040
+ cursor: pointer;
2041
+ font-size: 13px;
2042
+ color: var(--blok-database-tab-text-active);
2043
+ transition: background-color 120ms ease;
2044
+ }
2045
+
2046
+ [data-blok-database-view-option]:hover {
2047
+ background-color: var(--blok-database-popover-hover);
2048
+ }
2049
+
2050
+ [data-blok-database-view-option-icon] {
2051
+ display: flex;
2052
+ align-items: center;
2053
+ justify-content: center;
2054
+ width: 36px;
2055
+ height: 36px;
2056
+ border-radius: 8px;
2057
+ background: var(--blok-database-popover-hover);
2058
+ color: var(--blok-database-tab-text);
2059
+ }
2060
+
2061
+ [data-blok-database-view-option-icon] svg {
2062
+ width: 20px;
2063
+ height: 20px;
2064
+ }
2065
+
2066
+ /* Context popover actions */
2067
+ [data-blok-database-tab-context] {
2068
+ min-width: 180px;
2069
+ }
2070
+
2071
+ [data-blok-database-tab-action] {
2072
+ display: flex;
2073
+ align-items: center;
2074
+ gap: 10px;
2075
+ padding: 7px 10px;
2076
+ border-radius: 6px;
2077
+ cursor: pointer;
2078
+ font-size: 14px;
2079
+ transition: background-color 120ms ease;
2080
+ }
2081
+
2082
+ [data-blok-database-tab-action]:hover {
2083
+ background-color: var(--blok-database-popover-hover);
2084
+ }
2085
+
2086
+ [data-blok-database-tab-action-icon] {
2087
+ display: flex;
2088
+ align-items: center;
2089
+ color: var(--blok-database-tab-text);
2090
+ }
2091
+
2092
+ [data-blok-database-tab-action-icon] svg {
2093
+ width: 16px;
2094
+ height: 16px;
2095
+ }
2096
+
2097
+ [data-blok-database-tab-action="delete"] {
2098
+ color: #eb5757;
2099
+ }
2100
+
2101
+ [data-blok-database-tab-action="delete"] [data-blok-database-tab-action-icon] {
2102
+ color: #eb5757;
2103
+ }
2104
+
2105
+ [data-blok-database-tab-context-separator] {
2106
+ height: 1px;
2107
+ margin: 4px 10px;
2108
+ background-color: var(--blok-database-drawer-border);
2109
+ }
2110
+
2111
+ /* Overflow dropdown items */
2112
+ [data-blok-database-tab-overflow-item] {
2113
+ display: flex;
2114
+ align-items: center;
2115
+ gap: 10px;
2116
+ padding: 7px 10px;
2117
+ border-radius: 6px;
2118
+ cursor: pointer;
2119
+ font-size: 14px;
2120
+ transition: background-color 120ms ease;
2121
+ }
2122
+
2123
+ [data-blok-database-tab-overflow-item]:hover {
2124
+ background-color: var(--blok-database-popover-hover);
2125
+ }
2126
+
2127
+ [data-blok-database-tab-overflow-item][data-active] {
2128
+ background-color: var(--blok-database-tab-bg-active);
2129
+ font-weight: 500;
2130
+ }
2131
+
2132
+ [data-blok-database-tab-overflow-new] {
2133
+ padding: 7px 10px;
2134
+ font-size: 14px;
2135
+ color: var(--blok-database-tab-text);
2136
+ cursor: pointer;
2137
+ border-radius: 6px;
2138
+ transition: background-color 120ms ease;
2139
+ }
2140
+
2141
+ [data-blok-database-tab-overflow-new]:hover {
2142
+ background-color: var(--blok-database-popover-hover);
2143
+ }
2144
+
2145
+ [data-blok-database-tab-overflow-separator] {
2146
+ height: 1px;
2147
+ margin: 4px 10px;
2148
+ background-color: var(--blok-database-drawer-border);
2149
+ }
2150
+
2151
+ /* Tab rename input */
2152
+ [data-blok-database-tab-rename-input] {
2153
+ border: 1px solid var(--blok-database-drawer-border);
2154
+ border-radius: 4px;
2155
+ padding: 2px 6px;
2156
+ font-size: 14px;
2157
+ font-family: inherit;
2158
+ background: var(--blok-database-popover-bg);
2159
+ color: var(--blok-database-tab-text-active);
2160
+ outline: none;
2161
+ width: 80px;
2162
+ }
2163
+
2164
+ /* Tab ghost during drag */
2165
+ [data-blok-database-tab-ghost] {
2166
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
2167
+ border-radius: 6px;
2168
+ background: var(--blok-database-tab-bg-active);
2169
+ }
2170
+
2171
+ /* Board container for slide transitions */
2172
+ [data-blok-database-board-container] {
2173
+ position: relative;
2174
+ overflow: hidden;
2175
+ }
2176
+
2177
+ /* ─── List View ──────────────────────────────────────── */
2178
+
2179
+ /**
2180
+ * List wrapper — constrained to content width, centered like the editor body.
2181
+ * Uses the same padding trick as the tab bar and board view.
2182
+ */
2183
+ [data-blok-database-list] {
2184
+ display: flex;
2185
+ flex-direction: column;
2186
+ padding-left: max(0px, calc((100% - var(--max-width-content)) / 2));
2187
+ padding-right: max(0px, calc((100% - var(--max-width-content)) / 2));
2188
+ }
2189
+
2190
+ /**
2191
+ * List row — horizontal flex item. Hover reveals the delete button and
2192
+ * highlights the row with a subtle background fill, matching Notion style.
2193
+ */
2194
+ [data-blok-database-list-row] {
2195
+ display: flex;
2196
+ align-items: center;
2197
+ gap: 8px;
2198
+ padding: 5px 8px;
2199
+ border-radius: 4px;
2200
+ cursor: pointer;
2201
+ position: relative;
2202
+ font-size: 14px;
2203
+ transition: background-color 80ms ease;
2204
+ /* Thin rule between rows */
2205
+ border-bottom: 1px solid transparent;
2206
+ }
2207
+
2208
+ [data-blok-database-list-row]:not(:last-child) {
2209
+ border-bottom-color: color-mix(in srgb, currentColor 5%, transparent);
2210
+ }
2211
+
2212
+ [data-blok-database-list-row]:hover {
2213
+ background-color: var(--blok-database-add-hover-bg);
2214
+ }
2215
+
2216
+ /**
2217
+ * Row title — fills available space, truncates overflow.
2218
+ */
2219
+ [data-blok-database-list-row-title] {
2220
+ flex: 1;
2221
+ overflow: hidden;
2222
+ text-overflow: ellipsis;
2223
+ white-space: nowrap;
2224
+ line-height: 1.5;
2225
+ min-width: 0;
2226
+ }
2227
+
2228
+ [data-blok-database-list-row-title][data-placeholder] {
2229
+ color: var(--blok-database-add-text);
2230
+ font-style: italic;
2231
+ }
2232
+
2233
+ /**
2234
+ * Properties area — flex row of badges + open button, right-aligned.
2235
+ */
2236
+ [data-blok-database-list-row-properties] {
2237
+ display: flex;
2238
+ align-items: center;
2239
+ gap: 6px;
2240
+ flex-shrink: 0;
2241
+ }
2242
+
2243
+ /**
2244
+ * Property badge — compact colored pill.
2245
+ */
2246
+ [data-blok-database-list-row-property] {
2247
+ display: inline-flex;
2248
+ align-items: center;
2249
+ font-size: 12px;
2250
+ font-weight: 500;
2251
+ line-height: 1;
2252
+ padding: 2px 7px;
2253
+ border-radius: 4px;
2254
+ white-space: nowrap;
2255
+ background: var(--blok-database-add-hover-bg);
2256
+ color: var(--blok-database-tab-text-active);
2257
+ }
2258
+
2259
+ /**
2260
+ * Open-row button — muted arrow, visible on hover.
2261
+ */
2262
+ [data-blok-database-list-row-open] {
2263
+ display: inline-flex;
2264
+ align-items: center;
2265
+ justify-content: center;
2266
+ width: 22px;
2267
+ height: 22px;
2268
+ opacity: 0;
2269
+ background: none;
2270
+ border: none;
2271
+ cursor: pointer;
2272
+ border-radius: 4px;
2273
+ color: var(--blok-database-add-text);
2274
+ flex-shrink: 0;
2275
+ transition: opacity 80ms ease, background-color 80ms ease, color 80ms ease;
2276
+ }
2277
+
2278
+ [data-blok-database-list-row-open]::after {
2279
+ content: '';
2280
+ display: block;
2281
+ width: 7px;
2282
+ height: 7px;
2283
+ border-right: 2px solid currentColor;
2284
+ border-top: 2px solid currentColor;
2285
+ transform: rotate(45deg);
2286
+ border-radius: 1px;
2287
+ flex-shrink: 0;
2288
+ }
2289
+
2290
+ [data-blok-database-list-row]:hover [data-blok-database-list-row-open] {
2291
+ opacity: 1;
2292
+ }
2293
+
2294
+ [data-blok-database-list-row-open]:hover {
2295
+ background-color: var(--blok-database-add-hover-bg);
2296
+ color: var(--blok-database-tab-text-active);
2297
+ }
2298
+
2299
+ /**
2300
+ * Delete row button — hidden until hover, inline after the open button.
2301
+ */
2302
+ [data-blok-database-list-row-properties] [data-blok-database-delete-row] {
2303
+ display: flex;
2304
+ align-items: center;
2305
+ justify-content: center;
2306
+ width: 18px;
2307
+ height: 18px;
2308
+ opacity: 0;
2309
+ background: none;
2310
+ border: none;
2311
+ cursor: pointer;
2312
+ border-radius: 3px;
2313
+ color: var(--blok-database-delete-text);
2314
+ font-size: 15px;
2315
+ line-height: 1;
2316
+ padding: 0;
2317
+ flex-shrink: 0;
2318
+ transition: opacity 80ms ease, color 80ms ease, background-color 80ms ease;
2319
+ }
2320
+
2321
+ [data-blok-database-list-row]:hover [data-blok-database-delete-row] {
2322
+ opacity: 1;
2323
+ }
2324
+
2325
+ [data-blok-database-list-row-properties] [data-blok-database-delete-row]:hover {
2326
+ color: var(--blok-database-delete-hover-text);
2327
+ background-color: color-mix(in srgb, currentColor 8%, transparent);
2328
+ }
2329
+
2330
+ /**
2331
+ * Add-row button — muted "+ New row" at bottom of list.
2332
+ */
2333
+ [data-blok-database-list] > [data-blok-database-add-row],
2334
+ [data-blok-database-list-rows] ~ [data-blok-database-add-row] {
2335
+ display: flex;
2336
+ align-items: center;
2337
+ gap: 6px;
2338
+ width: 100%;
2339
+ padding: 6px 8px;
2340
+ background: none;
2341
+ border: none;
2342
+ border-radius: 8px;
2343
+ cursor: pointer;
2344
+ font-size: 13px;
2345
+ color: var(--blok-database-add-text);
2346
+ text-align: left;
2347
+ transition: background-color 80ms ease, color 80ms ease;
2348
+ margin-top: 2px;
2349
+ }
2350
+
2351
+ [data-blok-database-list] > [data-blok-database-add-row]:hover,
2352
+ [data-blok-database-list-rows] ~ [data-blok-database-add-row]:hover {
2353
+ background-color: var(--blok-database-add-hover-bg);
2354
+ color: var(--blok-text-primary, inherit);
2355
+ }
2356
+
2357
+ /**
2358
+ * Group container — stacked sections when grouped by a select property.
2359
+ */
2360
+ [data-blok-database-list-group] {
2361
+ display: flex;
2362
+ flex-direction: column;
2363
+ margin-bottom: 4px;
2364
+ }
2365
+
2366
+ /**
2367
+ * Group header — clickable row containing toggle chevron, dot, title, count.
2368
+ */
2369
+ [data-blok-database-list-group-header] {
2370
+ display: flex;
2371
+ align-items: center;
2372
+ gap: 6px;
2373
+ padding: 6px 8px 4px;
2374
+ cursor: pointer;
2375
+ border-radius: 4px;
2376
+ user-select: none;
2377
+ transition: background-color 80ms ease;
2378
+ }
2379
+
2380
+ [data-blok-database-list-group-header]:hover {
2381
+ background-color: var(--blok-database-add-hover-bg);
2382
+ }
2383
+
2384
+ /**
2385
+ * Collapse toggle — small chevron, rotates when expanded/collapsed.
2386
+ */
2387
+ [data-blok-database-list-group-toggle] {
2388
+ font-size: 10px;
2389
+ color: var(--blok-database-add-text);
2390
+ line-height: 1;
2391
+ flex-shrink: 0;
2392
+ width: 12px;
2393
+ text-align: center;
2394
+ transition: color 80ms ease;
2395
+ }
2396
+
2397
+ [data-blok-database-list-group-header]:hover [data-blok-database-list-group-toggle] {
2398
+ color: var(--blok-database-tab-text-active);
2399
+ }
2400
+
2401
+ /**
2402
+ * Status dot — small colored circle before the group title.
2403
+ */
2404
+ [data-blok-database-list-group-dot] {
2405
+ width: 8px;
2406
+ height: 8px;
2407
+ border-radius: 50%;
2408
+ flex-shrink: 0;
2409
+ }
2410
+
2411
+ /**
2412
+ * Group title text.
2413
+ */
2414
+ [data-blok-database-list-group-title] {
2415
+ font-size: 13px;
2416
+ font-weight: 600;
2417
+ color: var(--blok-database-tab-text-active);
2418
+ letter-spacing: 0.01em;
2419
+ }
2420
+
2421
+ /**
2422
+ * Row count badge — muted number after the group title.
2423
+ */
2424
+ [data-blok-database-list-group-count] {
2425
+ font-size: 12px;
2426
+ color: var(--blok-database-add-text);
2427
+ font-weight: 400;
2428
+ margin-left: 2px;
2429
+ }
2430
+
2431
+ /**
2432
+ * Rows container within a group — indented slightly, role=list.
2433
+ */
2434
+ [data-blok-database-list-rows] {
2435
+ display: flex;
2436
+ flex-direction: column;
2437
+ padding-left: 8px;
2438
+ }
2439
+
2440
+ /* ─── "Add a property" button ────────────────────────────────────────────── */
2441
+
2442
+ /**
2443
+ * Ghost dashed button that reveals itself on hover.
2444
+ * Full-width, sits below the last property row.
2445
+ */
2446
+ [data-blok-database-drawer-add-prop] {
2447
+ display: flex;
2448
+ align-items: center;
2449
+ gap: 7px;
2450
+ width: 100%;
2451
+ padding: 6px 8px;
2452
+ margin-top: 4px;
2453
+ background: none;
2454
+ border: 1.5px dashed transparent;
2455
+ border-radius: 6px;
2456
+ cursor: pointer;
2457
+ font-size: 13px;
2458
+ font-weight: 500;
2459
+ color: var(--blok-database-add-text);
2460
+ text-align: left;
2461
+ transition:
2462
+ background-color 130ms ease,
2463
+ border-color 130ms ease,
2464
+ color 130ms ease;
2465
+ }
2466
+
2467
+ [data-blok-database-drawer-add-prop]:hover {
2468
+ background-color: var(--blok-database-add-hover-bg);
2469
+ border-color: var(--blok-database-add-border);
2470
+ color: var(--blok-database-tab-text-active);
2471
+ }
2472
+
2473
+ [data-blok-database-drawer-add-prop]:active {
2474
+ background-color: var(--blok-item-hover-bg);
2475
+ }
2476
+
2477
+ /* ─── Property type popover ──────────────────────────────────────────────── */
2478
+
2479
+ /**
2480
+ * Entrance keyframe — subtle pop-in from slightly above.
2481
+ */
2482
+ @keyframes blok-prop-popover-in {
2483
+ from {
2484
+ opacity: 0;
2485
+ transform: scale(0.96) translateY(-4px);
2486
+ }
2487
+ to {
2488
+ opacity: 1;
2489
+ transform: scale(1) translateY(0);
2490
+ }
2491
+ }
2492
+
2493
+ /**
2494
+ * Popover container — vertical list, clean card.
2495
+ */
2496
+ [data-blok-database-property-type-popover] {
2497
+ min-width: 210px;
2498
+ background: var(--blok-database-popover-bg);
2499
+ border-radius: 10px;
2500
+ box-shadow: var(--blok-database-popover-shadow);
2501
+ padding: 6px;
2502
+ animation: blok-prop-popover-in 120ms cubic-bezier(0.16, 1, 0.3, 1) both;
2503
+ transform-origin: top left;
2504
+ }
2505
+
2506
+ /**
2507
+ * Section heading — "Property type" label above the list.
2508
+ */
2509
+ [data-blok-database-property-type-heading] {
2510
+ padding: 6px 8px 4px;
2511
+ font-size: 11px;
2512
+ font-weight: 600;
2513
+ letter-spacing: 0.06em;
2514
+ text-transform: uppercase;
2515
+ color: var(--blok-database-add-text);
2516
+ user-select: none;
2517
+ }
2518
+
2519
+ /**
2520
+ * Each property type item — icon chip + label row.
2521
+ */
2522
+ [data-blok-database-property-type-option] {
2523
+ display: flex;
2524
+ align-items: center;
2525
+ gap: 10px;
2526
+ padding: 6px 8px;
2527
+ border-radius: 6px;
2528
+ cursor: pointer;
2529
+ font-size: 13.5px;
2530
+ color: var(--blok-database-tab-text-active);
2531
+ transition: background-color 100ms ease;
2532
+ user-select: none;
2533
+ }
2534
+
2535
+ [data-blok-database-property-type-option]:hover {
2536
+ background-color: var(--blok-database-popover-hover);
2537
+ }
2538
+
2539
+ [data-blok-database-property-type-option]:active {
2540
+ background-color: var(--blok-item-hover-bg);
2541
+ }
2542
+
2543
+ /**
2544
+ * Icon chip — small tinted square to the left of the label.
2545
+ */
2546
+ [data-blok-database-property-type-option-icon] {
2547
+ display: flex;
2548
+ align-items: center;
2549
+ justify-content: center;
2550
+ width: 26px;
2551
+ height: 26px;
2552
+ border-radius: 5px;
2553
+ background: var(--blok-popover-icon-bg);
2554
+ color: var(--blok-database-tab-text-active);
2555
+ flex-shrink: 0;
2556
+ transition: background-color 100ms ease;
2557
+ }
2558
+
2559
+ [data-blok-database-property-type-option]:hover [data-blok-database-property-type-option-icon] {
2560
+ background: var(--blok-popover-icon-active-bg);
2561
+ color: var(--blok-active-icon);
2562
+ }
2563
+
2564
+ [data-blok-database-property-type-option-icon] svg {
2565
+ width: 14px;
2566
+ height: 14px;
2567
+ }