@tempots/beatui 0.81.0 → 0.82.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 (237) hide show
  1. package/dist/_commonjsHelpers-DKOUU3wS.cjs +1 -0
  2. package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
  3. package/dist/{ar-DwHLVgKj.cjs → ar-D7CXDmVZ.cjs} +1 -1
  4. package/dist/{ar-Bo_FZZi7.js → ar-nOSKXpIW.js} +1 -1
  5. package/dist/auth/index.cjs.js +1 -1
  6. package/dist/auth/index.es.js +63 -1349
  7. package/dist/auth-divider-BqZPH1-z.cjs +1 -0
  8. package/dist/auth-divider-Wr-S16kF.js +1355 -0
  9. package/dist/beatui.css +2035 -295
  10. package/dist/beatui.tailwind.css +2036 -296
  11. package/dist/better-auth/index.cjs.js +1 -0
  12. package/dist/better-auth/index.es.js +754 -0
  13. package/dist/{de-zI5mdV4M.cjs → de-WzsOu9Gn.cjs} +1 -1
  14. package/dist/{de-CCqwOkqN.js → de-f2xcEb34.js} +1 -1
  15. package/dist/{deep-merge-1uN6CG6K.js → deep-merge-BYm0y62g.js} +271 -285
  16. package/dist/deep-merge-d7sf0xmN.cjs +1 -0
  17. package/dist/duration-input-B9UNmUCh.cjs +1 -0
  18. package/dist/{duration-input-C9kpsw-t.js → duration-input-DqcJbxKD.js} +31 -29
  19. package/dist/editor-toolbar-group--a-xgsJw.cjs +1 -0
  20. package/dist/editor-toolbar-group-CVpl5mxF.js +31 -0
  21. package/dist/{es-BF02UrPL.js → es-CDqqzpCw.js} +1 -1
  22. package/dist/{es-Cw90CAbu.cjs → es-Ds2Xf3wV.cjs} +1 -1
  23. package/dist/{fa-DPQV4YB8.js → fa-C7tE_hR3.js} +1 -1
  24. package/dist/{fa-B4lssnzR.cjs → fa-Ct1UtDB7.cjs} +1 -1
  25. package/dist/{fr-1Kd6z1F-.cjs → fr-CzAkRFed.cjs} +1 -1
  26. package/dist/{fr-dmxPhwkD.js → fr-yOW_68YY.js} +1 -1
  27. package/dist/{he-BtQbrVt3.js → he-D2oUloCJ.js} +1 -1
  28. package/dist/{he-CJ3XnuPm.cjs → he-DlXALrK7.cjs} +1 -1
  29. package/dist/{hi-BpfnFKHp.cjs → hi-3dBhLwDs.cjs} +1 -1
  30. package/dist/{hi-D_Le4Yka.js → hi-D5ZlZoQq.js} +1 -1
  31. package/dist/{hls.light.min-Bhrf47iR.cjs → hls.light.min-C6xKDzRR.cjs} +1 -1
  32. package/dist/{hls.light.min-C6VwviEa.js → hls.light.min-hEMf_E8u.js} +1 -1
  33. package/dist/{index-CfaWytS2.cjs → index-05UbKOYe.cjs} +1 -1
  34. package/dist/{index-K6u33-GC.cjs → index-Bt7FYl80.cjs} +19 -19
  35. package/dist/{index-YtW7SCWB.js → index-C2Lq1m45.js} +1434 -1463
  36. package/dist/{index-CGEzILlC.js → index-lYhXnu6I.js} +1 -1
  37. package/dist/index.cjs.js +4 -4
  38. package/dist/index.es.js +2389 -2738
  39. package/dist/input-container-C6qEIjcA.cjs +1 -0
  40. package/dist/input-container-DiCjOzR2.js +247 -0
  41. package/dist/{it-DyHjSuHN.js → it-6e6X-4BB.js} +1 -1
  42. package/dist/{it-COCZ9NyB.cjs → it-DohtcWi9.cjs} +1 -1
  43. package/dist/{ja-X43lABza.js → ja-BxNuNo2H.js} +1 -1
  44. package/dist/{ja--NdggLU9.cjs → ja-eyTArrgS.cjs} +1 -1
  45. package/dist/json-schema/index.cjs.js +1 -8
  46. package/dist/json-schema/index.es.js +1359 -7608
  47. package/dist/json-schema-display/index.cjs.js +1 -0
  48. package/dist/json-schema-display/index.es.js +846 -0
  49. package/dist/json-structure/index.cjs.js +1 -1
  50. package/dist/json-structure/index.es.js +542 -698
  51. package/dist/{ko-BUvb0ggK.cjs → ko-BFLCDMMs.cjs} +1 -1
  52. package/dist/{ko-B9g9iw99.js → ko-Ch0jFsBV.js} +1 -1
  53. package/dist/lexical/index.cjs.js +46 -0
  54. package/dist/lexical/index.es.js +21370 -0
  55. package/dist/lexical.css +1124 -0
  56. package/dist/menu-CZzRsQP_.js +372 -0
  57. package/dist/menu-ClrU72xH.cjs +1 -0
  58. package/dist/modal-I5srcntN.cjs +1 -0
  59. package/dist/modal-v3u2Fpnd.js +488 -0
  60. package/dist/{nl-0S25Gsld.cjs → nl-Bx2ACvr4.cjs} +1 -1
  61. package/dist/{nl-Ew5jnSsT.js → nl-NuTdZO1s.js} +1 -1
  62. package/dist/{notice-C-964yaY.js → notice-BuZvdvZh.js} +84 -82
  63. package/dist/notice-CLDdy1MW.cjs +1 -0
  64. package/dist/oneof-branch-detection-DsM1K5xc.cjs +8 -0
  65. package/dist/oneof-branch-detection-Dt8ss9lc.js +6281 -0
  66. package/dist/{pl-C9f6UBSe.js → pl-Bs4nLJ__.js} +1 -1
  67. package/dist/{pl-B3k-K3S4.cjs → pl-QHl6sl8f.cjs} +1 -1
  68. package/dist/prosemirror/index.cjs.js +1 -1
  69. package/dist/prosemirror/index.es.js +1 -1
  70. package/dist/{pt-DYtAvbrw.js → pt-BETjHZrL.js} +1 -1
  71. package/dist/{pt-CKoikRO5.cjs → pt-DZGw2Z-1.cjs} +1 -1
  72. package/dist/{ru-ZexN-b8V.js → ru-Bi1_DEKM.js} +1 -1
  73. package/dist/{ru-COb7RSDt.cjs → ru-D03IuLqh.cjs} +1 -1
  74. package/dist/session-id-3KiilioY.js +8 -0
  75. package/dist/session-id-B5lJMzbB.cjs +1 -0
  76. package/dist/stack-BJgsPJ9A.js +873 -0
  77. package/dist/stack-DcZ_u50f.cjs +1 -0
  78. package/dist/string-B9vVyfq3.cjs +1 -0
  79. package/dist/string-DYyMxBl-.js +19 -0
  80. package/dist/styles-url-B2dzXrYt.cjs +1 -0
  81. package/dist/styles-url-Cw_mxshe.js +4 -0
  82. package/dist/text-input-B3VBat1k.js +44 -0
  83. package/dist/text-input-Ds8e7Z1G.cjs +1 -0
  84. package/dist/{toolbar-DNpBIoJo.js → toolbar-D994_E_s.js} +4 -4
  85. package/dist/toolbar-x0_8lmKu.cjs +1 -0
  86. package/dist/{tr-tO_EH-Y2.cjs → tr-B_-_1wua.cjs} +1 -1
  87. package/dist/{tr-BDvn05-H.js → tr-DiYB-FwX.js} +1 -1
  88. package/dist/translations-B4-Zd2LM.cjs +1 -0
  89. package/dist/translations-Cq8bUKJP.js +584 -0
  90. package/dist/{translations-DwGC_94w.cjs → translations-D62qqNV9.cjs} +1 -1
  91. package/dist/{translations-CfWR4loD.js → translations-DPr6c05Z.js} +1 -1
  92. package/dist/types/better-auth/bridge.d.ts +2 -0
  93. package/dist/types/better-auth/callbacks.d.ts +6 -0
  94. package/dist/types/better-auth/components/authenticated.d.ts +4 -0
  95. package/dist/types/better-auth/components/better-auth-container.d.ts +4 -0
  96. package/dist/types/better-auth/components/better-auth-modal.d.ts +4 -0
  97. package/dist/types/better-auth/components/magic-link-form.d.ts +7 -0
  98. package/dist/types/better-auth/components/passkey-management.d.ts +6 -0
  99. package/dist/types/better-auth/components/passkey-signin.d.ts +12 -0
  100. package/dist/types/better-auth/components/two-factor-setup.d.ts +8 -0
  101. package/dist/types/better-auth/components/two-factor-verify.d.ts +10 -0
  102. package/dist/types/better-auth/i18n/default.d.ts +29 -0
  103. package/dist/types/better-auth/i18n/locales/en.d.ts +28 -0
  104. package/dist/types/better-auth/i18n/translations.d.ts +27 -0
  105. package/dist/types/better-auth/index.d.ts +22 -0
  106. package/dist/types/better-auth/provider.d.ts +6 -0
  107. package/dist/types/better-auth/session.d.ts +14 -0
  108. package/dist/types/better-auth/social-mapping.d.ts +2 -0
  109. package/dist/types/better-auth/types.d.ts +164 -0
  110. package/dist/types/components/auth/auth-container.d.ts +1 -1
  111. package/dist/types/components/auth/social-providers.d.ts +1 -1
  112. package/dist/types/components/auth/types.d.ts +2 -0
  113. package/dist/types/components/editor-toolbar/editor-toolbar-button.d.ts +16 -0
  114. package/dist/types/components/editor-toolbar/editor-toolbar-group.d.ts +9 -0
  115. package/dist/types/components/editor-toolbar/index.d.ts +2 -0
  116. package/dist/types/components/json-schema-display/display-widget-customization.d.ts +61 -0
  117. package/dist/types/components/json-schema-display/display-wrapper.d.ts +14 -0
  118. package/dist/types/components/json-schema-display/displays/any-display.d.ts +14 -0
  119. package/dist/types/components/json-schema-display/displays/array-display.d.ts +13 -0
  120. package/dist/types/components/json-schema-display/displays/boolean-display.d.ts +13 -0
  121. package/dist/types/components/json-schema-display/displays/composition-display.d.ts +14 -0
  122. package/dist/types/components/json-schema-display/displays/enum-const-display.d.ts +13 -0
  123. package/dist/types/components/json-schema-display/displays/generic-display.d.ts +18 -0
  124. package/dist/types/components/json-schema-display/displays/null-display.d.ts +13 -0
  125. package/dist/types/components/json-schema-display/displays/number-display.d.ts +13 -0
  126. package/dist/types/components/json-schema-display/displays/object-display.d.ts +13 -0
  127. package/dist/types/components/json-schema-display/displays/string-display.d.ts +14 -0
  128. package/dist/types/components/json-schema-display/index.d.ts +14 -0
  129. package/dist/types/components/json-schema-display/json-schema-display.d.ts +25 -0
  130. package/dist/types/components/json-schema-display/mismatch.d.ts +14 -0
  131. package/dist/types/components/json-structure/controls/control-utils.d.ts +19 -0
  132. package/dist/types/components/json-structure/controls/index.d.ts +1 -0
  133. package/dist/types/components/lexical/bare-editor.d.ts +29 -0
  134. package/dist/types/components/lexical/code/index.d.ts +1 -0
  135. package/dist/types/components/lexical/code/language-selector.d.ts +13 -0
  136. package/dist/types/components/lexical/contextual-editor.d.ts +22 -0
  137. package/dist/types/components/lexical/docked-editor.d.ts +23 -0
  138. package/dist/types/components/lexical/floating/block-handle.d.ts +16 -0
  139. package/dist/types/components/lexical/floating/floating-toolbar.d.ts +12 -0
  140. package/dist/types/components/lexical/floating/index.d.ts +6 -0
  141. package/dist/types/components/lexical/floating/slash-command-palette.d.ts +20 -0
  142. package/dist/types/components/lexical/index.d.ts +8 -0
  143. package/dist/types/components/lexical/lexical-editor-input.d.ts +30 -0
  144. package/dist/types/components/lexical/table/index.d.ts +1 -0
  145. package/dist/types/components/lexical/table/table-controls.d.ts +12 -0
  146. package/dist/types/components/lexical/toolbar/index.d.ts +6 -0
  147. package/dist/types/components/lexical/toolbar/lexical-toolbar.d.ts +12 -0
  148. package/dist/types/components/lexical/toolbar/toolbar-button.d.ts +1 -0
  149. package/dist/types/components/lexical/toolbar/toolbar-group.d.ts +1 -0
  150. package/dist/types/components/lexical/toolbar/toolbar-helpers.d.ts +30 -0
  151. package/dist/types/components/prosemirror/etoolbar-button.d.ts +1 -11
  152. package/dist/types/components/prosemirror/etoolbar-group.d.ts +1 -4
  153. package/dist/types/json-schema-display/index.d.ts +1 -0
  154. package/dist/types/lexical/commands/index.d.ts +17 -0
  155. package/dist/types/lexical/headless.d.ts +39 -0
  156. package/dist/types/lexical/horizontal-rule-node.d.ts +20 -0
  157. package/dist/types/lexical/index.d.ts +20 -0
  158. package/dist/types/lexical/lazy-loader.d.ts +35 -0
  159. package/dist/types/lexical/nodes.d.ts +29 -0
  160. package/dist/types/lexical/plugins/auto-link.d.ts +7 -0
  161. package/dist/types/lexical/plugins/clipboard.d.ts +11 -0
  162. package/dist/types/lexical/plugins/code-shiki.d.ts +11 -0
  163. package/dist/types/lexical/plugins/code.d.ts +7 -0
  164. package/dist/types/lexical/plugins/dragon.d.ts +6 -0
  165. package/dist/types/lexical/plugins/file-io.d.ts +10 -0
  166. package/dist/types/lexical/plugins/hashtag.d.ts +7 -0
  167. package/dist/types/lexical/plugins/history.d.ts +7 -0
  168. package/dist/types/lexical/plugins/horizontal-rule.d.ts +12 -0
  169. package/dist/types/lexical/plugins/html-io.d.ts +9 -0
  170. package/dist/types/lexical/plugins/index.d.ts +24 -0
  171. package/dist/types/lexical/plugins/link.d.ts +6 -0
  172. package/dist/types/lexical/plugins/list.d.ts +6 -0
  173. package/dist/types/lexical/plugins/mark.d.ts +15 -0
  174. package/dist/types/lexical/plugins/markdown-io.d.ts +13 -0
  175. package/dist/types/lexical/plugins/offset.d.ts +6 -0
  176. package/dist/types/lexical/plugins/overflow.d.ts +7 -0
  177. package/dist/types/lexical/plugins/plain-text.d.ts +6 -0
  178. package/dist/types/lexical/plugins/rich-text.d.ts +6 -0
  179. package/dist/types/lexical/plugins/selection.d.ts +6 -0
  180. package/dist/types/lexical/plugins/slash-commands.d.ts +26 -0
  181. package/dist/types/lexical/plugins/table.d.ts +11 -0
  182. package/dist/types/lexical/plugins/text.d.ts +13 -0
  183. package/dist/types/lexical/plugins/yjs.d.ts +9 -0
  184. package/dist/types/lexical/styles-url.d.ts +2 -0
  185. package/dist/types/lexical/styles.d.ts +2 -0
  186. package/dist/types/lexical/types.d.ts +634 -0
  187. package/dist/types/lexical-i18n/default.d.ts +92 -0
  188. package/dist/types/lexical-i18n/index.d.ts +21 -0
  189. package/dist/types/lexical-i18n/locales/ar.d.ts +91 -0
  190. package/dist/types/lexical-i18n/locales/de.d.ts +91 -0
  191. package/dist/types/lexical-i18n/locales/en.d.ts +91 -0
  192. package/dist/types/lexical-i18n/locales/es.d.ts +91 -0
  193. package/dist/types/lexical-i18n/locales/fa.d.ts +91 -0
  194. package/dist/types/lexical-i18n/locales/fr.d.ts +91 -0
  195. package/dist/types/lexical-i18n/locales/he.d.ts +91 -0
  196. package/dist/types/lexical-i18n/locales/hi.d.ts +91 -0
  197. package/dist/types/lexical-i18n/locales/it.d.ts +91 -0
  198. package/dist/types/lexical-i18n/locales/ja.d.ts +91 -0
  199. package/dist/types/lexical-i18n/locales/ko.d.ts +91 -0
  200. package/dist/types/lexical-i18n/locales/nl.d.ts +91 -0
  201. package/dist/types/lexical-i18n/locales/pl.d.ts +91 -0
  202. package/dist/types/lexical-i18n/locales/pt.d.ts +91 -0
  203. package/dist/types/lexical-i18n/locales/ru.d.ts +91 -0
  204. package/dist/types/lexical-i18n/locales/tr.d.ts +91 -0
  205. package/dist/types/lexical-i18n/locales/ur.d.ts +91 -0
  206. package/dist/types/lexical-i18n/locales/vi.d.ts +91 -0
  207. package/dist/types/lexical-i18n/locales/zh.d.ts +91 -0
  208. package/dist/types/lexical-i18n/translations.d.ts +21 -0
  209. package/dist/{ur-DbEqQgS6.js → ur-B69X-xNs.js} +1 -1
  210. package/dist/{ur-BbnYJ3HS.cjs → ur-DyUSmIbo.cjs} +1 -1
  211. package/dist/use-animated-toggle-ChycsEoj.js +175 -0
  212. package/dist/use-animated-toggle-DR6CyMac.cjs +1 -0
  213. package/dist/use-form-B56E_x5Y.js +859 -0
  214. package/dist/use-form-Cnp3XQ5X.cjs +2 -0
  215. package/dist/utils-DEbsp9Q9.js +129 -0
  216. package/dist/utils-DIUEhA-Z.cjs +1 -0
  217. package/dist/{vi-CpZUeuSj.js → vi-BdzxA60L.js} +1 -1
  218. package/dist/{vi-ByBwvGQY.cjs → vi-CBmPaHxg.cjs} +1 -1
  219. package/dist/widget-customization-Dk7XcVly.cjs +1 -0
  220. package/dist/widget-customization-Ds9sicAg.js +1073 -0
  221. package/dist/{zh-DnxK0ieB.cjs → zh-Cb1b8uik.cjs} +1 -1
  222. package/dist/{zh-DJyhKO0I.js → zh-Dn1UJiZa.js} +1 -1
  223. package/package.json +59 -8
  224. package/dist/_commonjsHelpers-C6fGbg64.js +0 -6
  225. package/dist/_commonjsHelpers-DwGv2jUC.cjs +0 -1
  226. package/dist/deep-merge-CBIkQM4E.cjs +0 -1
  227. package/dist/duration-input-DHWhQJnn.cjs +0 -1
  228. package/dist/modal-CSHIhHvI.js +0 -654
  229. package/dist/modal-cc8Ehngz.cjs +0 -1
  230. package/dist/notice-C_BWqu2K.cjs +0 -1
  231. package/dist/toolbar-D5FcnRju.cjs +0 -1
  232. package/dist/translations-0tLX4x7M.js +0 -866
  233. package/dist/translations-WPN3ibDg.cjs +0 -1
  234. package/dist/use-form-D4JFOcjo.cjs +0 -2
  235. package/dist/use-form-D4rqJkvG.js +0 -1731
  236. package/dist/widget-customization-BSjJz3_Y.js +0 -1195
  237. package/dist/widget-customization-CrFVrt4V.cjs +0 -1
@@ -0,0 +1,1124 @@
1
+ @layer components {
2
+ /* Lexical Editor Component */
3
+
4
+ /* Container wrapper for toolbar + editor */
5
+ .bc-lexical-editor-container {
6
+ display: flex;
7
+ flex-direction: column;
8
+ border: 1px solid var(--color-neutral-200);
9
+ border-radius: var(--radius-control, var(--radius-md));
10
+ background-color: var(--color-neutral-50);
11
+ overflow: hidden;
12
+ transition: all
13
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
14
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
15
+ }
16
+
17
+ /* Fixed height mode on container: fill parent, constrain children */
18
+ .bc-lexical-editor-container--fixed {
19
+ height: 100%;
20
+ }
21
+
22
+ /* Editor surface (contenteditable) */
23
+ .bc-lexical-editor {
24
+ position: relative;
25
+ min-height: 150px;
26
+ padding: 1rem;
27
+ outline: none;
28
+ font-family: inherit;
29
+ font-size: inherit;
30
+ line-height: 1.6;
31
+ color: var(--color-neutral-900);
32
+ background-color: var(--color-white);
33
+ }
34
+
35
+ /* Fixed height mode: fill container, scroll on overflow */
36
+ .bc-lexical-editor--fixed {
37
+ flex: 1 1 0;
38
+ overflow-y: auto;
39
+ }
40
+
41
+ /* Auto height mode: grow with content */
42
+ .bc-lexical-editor--auto {
43
+ overflow-y: visible;
44
+ }
45
+
46
+ /* Focus state */
47
+ .bc-lexical-editor-container:focus-within {
48
+ border-color: var(--color-primary-500);
49
+ box-shadow: 0 0 0 2px var(--color-primary-100);
50
+ }
51
+
52
+ /* Error state */
53
+ .bc-lexical-editor-container--error {
54
+ border-color: var(--color-danger-600);
55
+ }
56
+
57
+ .bc-lexical-editor-container--error:focus-within {
58
+ border-color: var(--color-danger-600);
59
+ box-shadow: 0 0 0 2px var(--color-danger-100);
60
+ }
61
+
62
+ /* Read-only state */
63
+ .bc-lexical-editor--readonly {
64
+ cursor: default;
65
+ background-color: var(--color-neutral-100);
66
+ color: var(--color-neutral-700);
67
+ }
68
+
69
+ /* Placeholder styling */
70
+ .bc-lexical-editor [data-lexical-placeholder] {
71
+ color: var(--color-neutral-400);
72
+ pointer-events: none;
73
+ position: absolute;
74
+ top: 1rem;
75
+ left: 1rem;
76
+ user-select: none;
77
+ font-style: italic;
78
+ }
79
+
80
+ /* Typography within editor */
81
+ .bc-lexical-editor h1 {
82
+ font-size: 2rem;
83
+ font-weight: 700;
84
+ line-height: 1.2;
85
+ margin-top: 1.5rem;
86
+ margin-bottom: 0.75rem;
87
+ }
88
+
89
+ .bc-lexical-editor h1:first-child {
90
+ margin-top: 0;
91
+ }
92
+
93
+ .bc-lexical-editor h2 {
94
+ font-size: 1.5rem;
95
+ font-weight: 700;
96
+ line-height: 1.3;
97
+ margin-top: 1.25rem;
98
+ margin-bottom: 0.625rem;
99
+ }
100
+
101
+ .bc-lexical-editor h2:first-child {
102
+ margin-top: 0;
103
+ }
104
+
105
+ .bc-lexical-editor h3 {
106
+ font-size: 1.25rem;
107
+ font-weight: 600;
108
+ line-height: 1.4;
109
+ margin-top: 1rem;
110
+ margin-bottom: 0.5rem;
111
+ }
112
+
113
+ .bc-lexical-editor h3:first-child {
114
+ margin-top: 0;
115
+ }
116
+
117
+ .bc-lexical-editor h4 {
118
+ font-size: 1.125rem;
119
+ font-weight: 600;
120
+ line-height: 1.5;
121
+ margin-top: 0.875rem;
122
+ margin-bottom: 0.5rem;
123
+ }
124
+
125
+ .bc-lexical-editor h4:first-child {
126
+ margin-top: 0;
127
+ }
128
+
129
+ .bc-lexical-editor h5 {
130
+ font-size: 1rem;
131
+ font-weight: 600;
132
+ line-height: 1.5;
133
+ margin-top: 0.75rem;
134
+ margin-bottom: 0.5rem;
135
+ }
136
+
137
+ .bc-lexical-editor h5:first-child {
138
+ margin-top: 0;
139
+ }
140
+
141
+ .bc-lexical-editor h6 {
142
+ font-size: 0.875rem;
143
+ font-weight: 600;
144
+ line-height: 1.5;
145
+ margin-top: 0.75rem;
146
+ margin-bottom: 0.5rem;
147
+ text-transform: uppercase;
148
+ letter-spacing: 0.05em;
149
+ }
150
+
151
+ .bc-lexical-editor h6:first-child {
152
+ margin-top: 0;
153
+ }
154
+
155
+ .bc-lexical-editor p {
156
+ margin-top: 0.5rem;
157
+ margin-bottom: 0.5rem;
158
+ }
159
+
160
+ .bc-lexical-editor p:first-child {
161
+ margin-top: 0;
162
+ }
163
+
164
+ .bc-lexical-editor p:last-child {
165
+ margin-bottom: 0;
166
+ }
167
+
168
+ .bc-lexical-editor blockquote {
169
+ margin: 1rem 0;
170
+ padding-left: 1rem;
171
+ border-left: 4px solid var(--color-neutral-300);
172
+ color: var(--color-neutral-700);
173
+ font-style: italic;
174
+ }
175
+
176
+ .bc-lexical-editor ul,
177
+ .bc-lexical-editor ol {
178
+ margin: 0.75rem 0;
179
+ padding-left: 1.5rem;
180
+ }
181
+
182
+ .bc-lexical-editor ul {
183
+ list-style-type: disc;
184
+ }
185
+
186
+ .bc-lexical-editor ol {
187
+ list-style-type: decimal;
188
+ }
189
+
190
+ .bc-lexical-editor li {
191
+ margin: 0.25rem 0;
192
+ }
193
+
194
+ .bc-lexical-editor code {
195
+ font-family: 'Monaco', 'Courier New', monospace;
196
+ font-size: 0.875em;
197
+ background-color: var(--color-neutral-100);
198
+ color: var(--color-neutral-800);
199
+ padding: 0.125rem 0.375rem;
200
+ border-radius: var(--radius-xs, 0.25rem);
201
+ }
202
+
203
+ .bc-lexical-editor pre {
204
+ margin: 1rem 0;
205
+ padding: 1rem;
206
+ background-color: var(--color-neutral-100);
207
+ border-radius: var(--radius-md, 0.5rem);
208
+ overflow-x: auto;
209
+ border: 1px solid var(--color-neutral-200);
210
+ }
211
+
212
+ .bc-lexical-editor pre code {
213
+ background-color: transparent;
214
+ padding: 0;
215
+ border-radius: 0;
216
+ font-size: 0.875rem;
217
+ line-height: 1.5;
218
+ }
219
+
220
+ .bc-lexical-editor a {
221
+ color: var(--color-primary-600);
222
+ text-decoration: underline;
223
+ text-underline-offset: 0.125rem;
224
+ cursor: pointer;
225
+ }
226
+
227
+ .bc-lexical-editor a:hover {
228
+ color: var(--color-primary-700);
229
+ }
230
+
231
+ .bc-lexical-editor hr {
232
+ margin: 1.5rem 0;
233
+ border: none;
234
+ border-top: 2px solid var(--color-neutral-200);
235
+ }
236
+
237
+ .bc-lexical-editor strong,
238
+ .bc-lexical-bold {
239
+ font-weight: 700;
240
+ }
241
+
242
+ .bc-lexical-editor em,
243
+ .bc-lexical-italic {
244
+ font-style: italic;
245
+ }
246
+
247
+ .bc-lexical-editor u,
248
+ .bc-lexical-underline {
249
+ text-decoration: underline;
250
+ }
251
+
252
+ .bc-lexical-editor s,
253
+ .bc-lexical-strikethrough {
254
+ text-decoration: line-through;
255
+ }
256
+
257
+ .bc-lexical-code {
258
+ font-family: 'Monaco', 'Courier New', monospace;
259
+ font-size: 0.875em;
260
+ background-color: var(--color-neutral-100);
261
+ color: var(--color-neutral-800);
262
+ padding: 0.125rem 0.375rem;
263
+ border-radius: var(--radius-xs, 0.25rem);
264
+ }
265
+
266
+ .b-dark .bc-lexical-code {
267
+ background-color: var(--color-neutral-800);
268
+ color: var(--color-neutral-200);
269
+ }
270
+
271
+ /* Check list items */
272
+ .bc-lexical-li-checked,
273
+ .bc-lexical-li-unchecked {
274
+ list-style-type: none;
275
+ position: relative;
276
+ padding-left: 1.5rem;
277
+ margin-left: -1.5rem;
278
+ }
279
+
280
+ .bc-lexical-li-checked::before,
281
+ .bc-lexical-li-unchecked::before {
282
+ content: '';
283
+ position: absolute;
284
+ left: 0;
285
+ top: 0.35em;
286
+ width: 1em;
287
+ height: 1em;
288
+ border: 2px solid var(--color-neutral-400);
289
+ border-radius: var(--radius-xs, 0.25rem);
290
+ cursor: pointer;
291
+ }
292
+
293
+ .bc-lexical-li-checked::before {
294
+ background-color: var(--color-primary-500);
295
+ border-color: var(--color-primary-500);
296
+ }
297
+
298
+ .bc-lexical-li-checked::after {
299
+ content: '';
300
+ position: absolute;
301
+ left: 0.25em;
302
+ top: 0.45em;
303
+ width: 0.5em;
304
+ height: 0.25em;
305
+ border-left: 2px solid white;
306
+ border-bottom: 2px solid white;
307
+ transform: rotate(-45deg);
308
+ }
309
+
310
+ .bc-lexical-li-checked {
311
+ text-decoration: line-through;
312
+ color: var(--color-neutral-500);
313
+ }
314
+
315
+ .b-dark .bc-lexical-li-checked::before {
316
+ background-color: var(--color-primary-400);
317
+ border-color: var(--color-primary-400);
318
+ }
319
+
320
+ .b-dark .bc-lexical-li-unchecked::before {
321
+ border-color: var(--color-neutral-600);
322
+ }
323
+
324
+ /* Dark mode styles */
325
+ .b-dark .bc-lexical-editor-container {
326
+ background-color: var(--color-neutral-800);
327
+ border-color: var(--color-neutral-700);
328
+ }
329
+
330
+ .b-dark .bc-lexical-editor {
331
+ background-color: var(--bg-surface-dark);
332
+ color: var(--text-normal-dark);
333
+ }
334
+
335
+ .b-dark .bc-lexical-editor-container:focus-within {
336
+ border-color: var(--color-primary-400);
337
+ box-shadow: 0 0 0 2px var(--color-primary-900);
338
+ }
339
+
340
+ .b-dark .bc-lexical-editor-container--error {
341
+ border-color: var(--color-danger-400);
342
+ }
343
+
344
+ .b-dark .bc-lexical-editor-container--error:focus-within {
345
+ border-color: var(--color-danger-400);
346
+ box-shadow: 0 0 0 2px var(--color-danger-900);
347
+ }
348
+
349
+ .b-dark .bc-lexical-editor--readonly {
350
+ background-color: var(--color-neutral-900);
351
+ color: var(--text-muted-dark);
352
+ }
353
+
354
+ .b-dark .bc-lexical-editor [data-lexical-placeholder] {
355
+ color: var(--color-neutral-500);
356
+ }
357
+
358
+ .b-dark .bc-lexical-editor blockquote {
359
+ border-left-color: var(--color-neutral-600);
360
+ color: var(--text-muted-dark);
361
+ }
362
+
363
+ .b-dark .bc-lexical-editor code {
364
+ background-color: var(--color-neutral-800);
365
+ color: var(--color-neutral-200);
366
+ }
367
+
368
+ .b-dark .bc-lexical-editor pre {
369
+ background-color: var(--color-neutral-900);
370
+ border-color: var(--color-neutral-700);
371
+ }
372
+
373
+ .b-dark .bc-lexical-editor a {
374
+ color: var(--color-primary-400);
375
+ }
376
+
377
+ .b-dark .bc-lexical-editor a:hover {
378
+ color: var(--color-primary-300);
379
+ }
380
+
381
+ .b-dark .bc-lexical-editor hr {
382
+ border-top-color: var(--color-neutral-700);
383
+ }
384
+
385
+ /* Collaboration: Remote cursors and selections */
386
+ .bc-lexical-collaboration-cursor {
387
+ position: absolute;
388
+ pointer-events: none;
389
+ user-select: none;
390
+ }
391
+
392
+ .bc-lexical-collaboration-cursor__caret {
393
+ position: absolute;
394
+ width: 2px;
395
+ height: 1.2em;
396
+ background-color: currentColor;
397
+ animation: bc-lexical-cursor-blink 1s infinite;
398
+ }
399
+
400
+ .bc-lexical-collaboration-cursor__name {
401
+ position: absolute;
402
+ top: -20px;
403
+ left: 0;
404
+ padding: 2px 6px;
405
+ background-color: currentColor;
406
+ color: white;
407
+ font-size: 0.75rem;
408
+ font-weight: 500;
409
+ border-radius: var(--radius-sm);
410
+ white-space: nowrap;
411
+ opacity: 0;
412
+ transition: opacity 0.2s;
413
+ }
414
+
415
+ .bc-lexical-collaboration-cursor:hover
416
+ .bc-lexical-collaboration-cursor__name {
417
+ opacity: 1;
418
+ }
419
+
420
+ .bc-lexical-collaboration-selection {
421
+ position: absolute;
422
+ pointer-events: none;
423
+ background-color: currentColor;
424
+ opacity: 0.3;
425
+ }
426
+
427
+ @keyframes bc-lexical-cursor-blink {
428
+ 0%,
429
+ 49% {
430
+ opacity: 1;
431
+ }
432
+ 50%,
433
+ 100% {
434
+ opacity: 0;
435
+ }
436
+ }
437
+
438
+ /* Accessibility */
439
+ @media (prefers-reduced-motion: reduce) {
440
+ .bc-lexical-editor-container {
441
+ transition: none;
442
+ }
443
+ }
444
+
445
+ @media (prefers-contrast: high) {
446
+ .bc-lexical-editor-container {
447
+ border-width: 2px;
448
+ }
449
+
450
+ .bc-lexical-editor-container:focus-within {
451
+ box-shadow: 0 0 0 3px var(--color-primary-100);
452
+ }
453
+
454
+ .b-dark .bc-lexical-editor-container:focus-within {
455
+ box-shadow: 0 0 0 3px var(--color-primary-900);
456
+ }
457
+ }
458
+ }
459
+
460
+ @layer components {
461
+ /* Lexical Editor Toolbar */
462
+
463
+ /* Toolbar positioned at top of editor container */
464
+ .bc-lexical-toolbar {
465
+ border-bottom: 1px solid var(--color-neutral-200);
466
+ border-radius: 0;
467
+ border: none;
468
+ background-color: var(--color-neutral-50);
469
+ padding: var(--spacing-xs) var(--spacing-sm);
470
+ flex-wrap: wrap;
471
+ }
472
+
473
+ .b-dark .bc-lexical-toolbar {
474
+ background-color: var(--color-neutral-800);
475
+ }
476
+
477
+ /* When toolbar is inside the editor container, add bottom border */
478
+ .bc-lexical-editor-container > .bc-lexical-toolbar {
479
+ border-bottom: 1px solid var(--color-neutral-200);
480
+ }
481
+
482
+ .b-dark .bc-lexical-editor-container > .bc-lexical-toolbar {
483
+ border-bottom-color: var(--color-neutral-700);
484
+ }
485
+
486
+ /* Bottom position variant */
487
+ .bc-lexical-toolbar--bottom {
488
+ border-bottom: none;
489
+ border-top: 1px solid var(--color-neutral-200);
490
+ }
491
+
492
+ .b-dark .bc-lexical-toolbar--bottom {
493
+ border-top-color: var(--color-neutral-700);
494
+ }
495
+
496
+ /* Hidden state for readOnly mode */
497
+ .bc-lexical-toolbar--hidden {
498
+ display: none;
499
+ }
500
+
501
+ /* Toolbar selects (font family/size) */
502
+ .bc-lexical-toolbar-select {
503
+ height: 28px;
504
+ padding: 0 var(--spacing-xs);
505
+ border: 1px solid var(--color-neutral-300);
506
+ border-radius: var(--radius-sm);
507
+ background-color: var(--color-surface);
508
+ color: var(--color-neutral-900);
509
+ font-size: 0.75rem;
510
+ cursor: pointer;
511
+ }
512
+
513
+ .b-dark .bc-lexical-toolbar-select {
514
+ border-color: var(--color-neutral-600);
515
+ background-color: var(--color-neutral-700);
516
+ color: var(--color-neutral-100);
517
+ }
518
+
519
+ /* Color picker labels */
520
+ .bc-lexical-toolbar-color {
521
+ display: inline-flex;
522
+ align-items: center;
523
+ justify-content: center;
524
+ position: relative;
525
+ width: 28px;
526
+ height: 28px;
527
+ cursor: pointer;
528
+ border-radius: var(--radius-sm);
529
+ }
530
+
531
+ .bc-lexical-toolbar-color:hover {
532
+ background-color: var(--color-neutral-200);
533
+ }
534
+
535
+ .b-dark .bc-lexical-toolbar-color:hover {
536
+ background-color: var(--color-neutral-600);
537
+ }
538
+
539
+ .bc-lexical-toolbar-color input[type='color'] {
540
+ position: absolute;
541
+ inset: 0;
542
+ width: 100%;
543
+ height: 100%;
544
+ opacity: 0;
545
+ cursor: pointer;
546
+ border: none;
547
+ padding: 0;
548
+ }
549
+
550
+ .bc-lexical-toolbar-color-icon {
551
+ font-size: 0.875rem;
552
+ font-weight: 700;
553
+ pointer-events: none;
554
+ line-height: 1;
555
+ }
556
+
557
+ .bc-lexical-toolbar-color-icon--highlight {
558
+ background-color: #ffff00;
559
+ padding: 0 2px;
560
+ border-radius: 2px;
561
+ }
562
+
563
+ .bc-lexical-toolbar-color-icon--bg {
564
+ font-size: 1rem;
565
+ }
566
+
567
+ /* Responsive: compact toolbar on small containers */
568
+ @container (max-width: 400px) {
569
+ .bc-lexical-toolbar {
570
+ padding: var(--spacing-2xs) var(--spacing-xs);
571
+ gap: var(--spacing-2xs);
572
+ }
573
+ }
574
+ }
575
+
576
+ @layer components {
577
+ /* Lexical Floating Toolbar */
578
+
579
+ .bc-floating-toolbar {
580
+ display: flex;
581
+ align-items: center;
582
+ gap: var(--spacing-xs);
583
+ padding: var(--spacing-xs);
584
+ border-radius: var(--radius-md);
585
+ background-color: var(--color-white);
586
+ border: 1px solid var(--color-neutral-200);
587
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
588
+ z-index: 1000;
589
+ animation: bc-floating-toolbar-enter 0.15s ease-out;
590
+ }
591
+
592
+ .b-dark .bc-floating-toolbar {
593
+ background-color: var(--color-neutral-800);
594
+ border-color: var(--color-neutral-700);
595
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
596
+ }
597
+
598
+ @keyframes bc-floating-toolbar-enter {
599
+ from {
600
+ opacity: 0;
601
+ transform: translateX(-50%) translateY(4px);
602
+ }
603
+ to {
604
+ opacity: 1;
605
+ transform: translateX(-50%) translateY(0);
606
+ }
607
+ }
608
+
609
+ /* Slash Command Palette */
610
+
611
+ .bc-slash-command-palette {
612
+ min-width: 280px;
613
+ max-width: 360px;
614
+ max-height: 400px;
615
+ overflow-y: auto;
616
+ border-radius: var(--radius-md);
617
+ background-color: var(--color-white);
618
+ border: 1px solid var(--color-neutral-200);
619
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
620
+ padding: var(--spacing-xs);
621
+ z-index: 1000;
622
+ animation: bc-slash-palette-enter 0.12s ease-out;
623
+ }
624
+
625
+ .b-dark .bc-slash-command-palette {
626
+ background-color: var(--color-neutral-800);
627
+ border-color: var(--color-neutral-700);
628
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
629
+ }
630
+
631
+ @keyframes bc-slash-palette-enter {
632
+ from {
633
+ opacity: 0;
634
+ transform: translateY(-4px);
635
+ }
636
+ to {
637
+ opacity: 1;
638
+ transform: translateY(0);
639
+ }
640
+ }
641
+
642
+ .bc-slash-command-palette__item {
643
+ display: flex;
644
+ align-items: center;
645
+ gap: var(--spacing-sm);
646
+ padding: var(--spacing-sm);
647
+ border-radius: var(--radius-sm);
648
+ cursor: pointer;
649
+ transition: background-color 0.12s ease;
650
+ }
651
+
652
+ .bc-slash-command-palette__item:hover,
653
+ .bc-slash-command-palette__item[aria-selected='true'] {
654
+ background-color: var(--color-primary-50);
655
+ }
656
+
657
+ .b-dark .bc-slash-command-palette__item:hover,
658
+ .b-dark .bc-slash-command-palette__item[aria-selected='true'] {
659
+ background-color: var(--color-primary-900);
660
+ }
661
+
662
+ .bc-slash-command-palette__icon {
663
+ flex-shrink: 0;
664
+ display: flex;
665
+ align-items: center;
666
+ justify-content: center;
667
+ width: 20px;
668
+ height: 20px;
669
+ }
670
+
671
+ .bc-slash-command-palette__content {
672
+ flex: 1;
673
+ min-width: 0;
674
+ }
675
+
676
+ .bc-slash-command-palette__label {
677
+ font-weight: 500;
678
+ font-size: var(--font-size-sm);
679
+ color: var(--color-neutral-900);
680
+ margin-bottom: 2px;
681
+ }
682
+
683
+ .b-dark .bc-slash-command-palette__label {
684
+ color: var(--color-neutral-100);
685
+ }
686
+
687
+ .bc-slash-command-palette__description {
688
+ font-size: var(--font-size-xs);
689
+ color: var(--color-neutral-500);
690
+ overflow: hidden;
691
+ text-overflow: ellipsis;
692
+ white-space: nowrap;
693
+ }
694
+
695
+ .bc-slash-command-palette__category {
696
+ font-size: var(--font-size-xs);
697
+ color: var(--color-neutral-500);
698
+ padding: 2px 6px;
699
+ border-radius: var(--radius-sm);
700
+ background-color: var(--color-neutral-100);
701
+ flex-shrink: 0;
702
+ }
703
+
704
+ .b-dark .bc-slash-command-palette__category {
705
+ background-color: var(--color-neutral-700);
706
+ color: var(--color-neutral-400);
707
+ }
708
+
709
+ .bc-slash-command-palette__empty {
710
+ padding: var(--spacing-md);
711
+ color: var(--color-neutral-500);
712
+ text-align: center;
713
+ font-size: var(--font-size-sm);
714
+ }
715
+
716
+ /* Block Handle */
717
+
718
+ .bc-block-handle {
719
+ z-index: 999;
720
+ animation: bc-block-handle-enter 0.1s ease-out;
721
+ }
722
+
723
+ @keyframes bc-block-handle-enter {
724
+ from {
725
+ opacity: 0;
726
+ }
727
+ to {
728
+ opacity: 1;
729
+ }
730
+ }
731
+
732
+ .bc-block-handle__button {
733
+ display: flex;
734
+ align-items: center;
735
+ justify-content: center;
736
+ width: 24px;
737
+ height: 24px;
738
+ border: 1px solid var(--color-neutral-200);
739
+ border-radius: var(--radius-sm);
740
+ background-color: var(--color-white);
741
+ color: var(--color-neutral-400);
742
+ cursor: pointer;
743
+ padding: 0;
744
+ transition: all 0.12s ease;
745
+ }
746
+
747
+ .bc-block-handle__button:hover {
748
+ background-color: var(--color-neutral-100);
749
+ color: var(--color-neutral-600);
750
+ border-color: var(--color-neutral-300);
751
+ }
752
+
753
+ .bc-block-handle__button:disabled {
754
+ opacity: 0.4;
755
+ cursor: not-allowed;
756
+ }
757
+
758
+ .b-dark .bc-block-handle__button {
759
+ background-color: var(--color-neutral-800);
760
+ border-color: var(--color-neutral-700);
761
+ color: var(--color-neutral-500);
762
+ }
763
+
764
+ .b-dark .bc-block-handle__button:hover {
765
+ background-color: var(--color-neutral-700);
766
+ color: var(--color-neutral-300);
767
+ border-color: var(--color-neutral-600);
768
+ }
769
+ }
770
+
771
+ @layer components {
772
+ /* Lexical Table Component */
773
+
774
+ /* Table structure */
775
+ .bc-lexical-table {
776
+ border-collapse: collapse;
777
+ border-spacing: 0;
778
+ width: 100%;
779
+ margin: 1rem 0;
780
+ overflow: hidden;
781
+ table-layout: fixed;
782
+ }
783
+
784
+ .bc-lexical-table-row {
785
+ border-bottom: 1px solid var(--color-neutral-200);
786
+ }
787
+
788
+ .bc-lexical-table-cell,
789
+ .bc-lexical-table-cell-header {
790
+ border: 1px solid var(--color-neutral-200);
791
+ padding: 0.5rem 0.75rem;
792
+ position: relative;
793
+ vertical-align: top;
794
+ min-width: 75px;
795
+ }
796
+
797
+ .bc-lexical-table-cell-header {
798
+ background-color: var(--color-neutral-50);
799
+ font-weight: 600;
800
+ text-align: left;
801
+ }
802
+
803
+ /* Selected cell highlight */
804
+ .bc-lexical-table-cell--selected {
805
+ background-color: var(--color-primary-50);
806
+ outline: 2px solid var(--color-primary-500);
807
+ outline-offset: -2px;
808
+ }
809
+
810
+ /* Table context menu */
811
+ .bc-table-context-menu {
812
+ display: flex;
813
+ flex-direction: column;
814
+ }
815
+
816
+ .bc-table-menu-button {
817
+ font-family: inherit;
818
+ line-height: 1.5;
819
+ white-space: nowrap;
820
+ }
821
+
822
+ .bc-table-menu-button:hover:not(:disabled) {
823
+ background-color: var(--color-neutral-100);
824
+ }
825
+
826
+ .bc-table-menu-button:active:not(:disabled) {
827
+ background-color: var(--color-neutral-200);
828
+ }
829
+
830
+ .bc-table-menu-button:disabled {
831
+ opacity: 0.5;
832
+ cursor: not-allowed;
833
+ }
834
+
835
+ .bc-table-menu-separator {
836
+ /* Separator styling defined inline in component */
837
+ }
838
+
839
+ /* Dark mode styles */
840
+ .b-dark .bc-lexical-table-cell,
841
+ .b-dark .bc-lexical-table-cell-header {
842
+ border-color: var(--color-neutral-700);
843
+ }
844
+
845
+ .b-dark .bc-lexical-table-row {
846
+ border-bottom-color: var(--color-neutral-700);
847
+ }
848
+
849
+ .b-dark .bc-lexical-table-cell-header {
850
+ background-color: var(--color-neutral-800);
851
+ }
852
+
853
+ .b-dark .bc-lexical-table-cell--selected {
854
+ background-color: var(--color-primary-900);
855
+ outline-color: var(--color-primary-400);
856
+ }
857
+
858
+ .b-dark .bc-table-context-menu {
859
+ background-color: var(--color-neutral-800);
860
+ border-color: var(--color-neutral-700);
861
+ }
862
+
863
+ .b-dark .bc-table-menu-button {
864
+ color: var(--color-neutral-100);
865
+ }
866
+
867
+ .b-dark .bc-table-menu-button:hover:not(:disabled) {
868
+ background-color: var(--color-neutral-700);
869
+ }
870
+
871
+ .b-dark .bc-table-menu-button:active:not(:disabled) {
872
+ background-color: var(--color-neutral-600);
873
+ }
874
+
875
+ .b-dark .bc-table-menu-separator {
876
+ background-color: var(--color-neutral-700);
877
+ }
878
+
879
+ /* Accessibility */
880
+ @media (prefers-reduced-motion: reduce) {
881
+ .bc-table-menu-button {
882
+ transition: none;
883
+ }
884
+ }
885
+
886
+ @media (prefers-contrast: high) {
887
+ .bc-lexical-table-cell,
888
+ .bc-lexical-table-cell-header {
889
+ border-width: 2px;
890
+ }
891
+
892
+ .bc-lexical-table-cell--selected {
893
+ outline-width: 3px;
894
+ }
895
+ }
896
+ }
897
+
898
+ @layer components {
899
+ /* Lexical Code Block Component */
900
+
901
+ /* Code block structure */
902
+ .bc-lexical-code-block {
903
+ position: relative;
904
+ margin: 1rem 0;
905
+ padding: 1rem;
906
+ background-color: var(--color-neutral-50);
907
+ border: 1px solid var(--color-neutral-200);
908
+ border-radius: var(--radius-md);
909
+ overflow-x: auto;
910
+ font-family:
911
+ 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Courier New', monospace;
912
+ font-size: 0.875rem;
913
+ line-height: 1.6;
914
+ }
915
+
916
+ /* Language selector */
917
+ .bc-code-language-selector {
918
+ /* Positioning handled inline */
919
+ }
920
+
921
+ .bc-code-language-button:hover:not(:disabled) {
922
+ background-color: var(--color-neutral-200);
923
+ border-color: var(--color-neutral-400);
924
+ }
925
+
926
+ .bc-code-language-button:disabled {
927
+ opacity: 0.5;
928
+ cursor: not-allowed;
929
+ }
930
+
931
+ .bc-code-language-dropdown {
932
+ /* Dropdown styling handled inline */
933
+ }
934
+
935
+ .bc-code-language-option:hover {
936
+ background-color: var(--color-neutral-100);
937
+ }
938
+
939
+ .bc-code-language-option:active {
940
+ background-color: var(--color-neutral-200);
941
+ }
942
+
943
+ /* Syntax highlighting token colors (light theme) */
944
+ .bc-lexical-code-block .token.comment,
945
+ .bc-lexical-code-block .token.prolog,
946
+ .bc-lexical-code-block .token.doctype,
947
+ .bc-lexical-code-block .token.cdata {
948
+ color: #6a737d;
949
+ font-style: italic;
950
+ }
951
+
952
+ .bc-lexical-code-block .token.punctuation {
953
+ color: #24292e;
954
+ }
955
+
956
+ .bc-lexical-code-block .token.property,
957
+ .bc-lexical-code-block .token.tag,
958
+ .bc-lexical-code-block .token.boolean,
959
+ .bc-lexical-code-block .token.number,
960
+ .bc-lexical-code-block .token.constant,
961
+ .bc-lexical-code-block .token.symbol,
962
+ .bc-lexical-code-block .token.deleted {
963
+ color: #005cc5;
964
+ }
965
+
966
+ .bc-lexical-code-block .token.selector,
967
+ .bc-lexical-code-block .token.attr-name,
968
+ .bc-lexical-code-block .token.string,
969
+ .bc-lexical-code-block .token.char,
970
+ .bc-lexical-code-block .token.builtin,
971
+ .bc-lexical-code-block .token.inserted {
972
+ color: #032f62;
973
+ }
974
+
975
+ .bc-lexical-code-block .token.operator,
976
+ .bc-lexical-code-block .token.entity,
977
+ .bc-lexical-code-block .token.url,
978
+ .bc-lexical-code-block .language-css .token.string,
979
+ .bc-lexical-code-block .style .token.string {
980
+ color: #d73a49;
981
+ }
982
+
983
+ .bc-lexical-code-block .token.atrule,
984
+ .bc-lexical-code-block .token.attr-value,
985
+ .bc-lexical-code-block .token.keyword {
986
+ color: #d73a49;
987
+ }
988
+
989
+ .bc-lexical-code-block .token.function,
990
+ .bc-lexical-code-block .token.class-name {
991
+ color: #6f42c1;
992
+ }
993
+
994
+ .bc-lexical-code-block .token.regex,
995
+ .bc-lexical-code-block .token.important,
996
+ .bc-lexical-code-block .token.variable {
997
+ color: #e36209;
998
+ }
999
+
1000
+ /* Line numbers (optional) */
1001
+ .bc-lexical-code-block--with-line-numbers {
1002
+ padding-left: 3.5rem;
1003
+ }
1004
+
1005
+ .bc-lexical-code-block .line-number {
1006
+ position: absolute;
1007
+ left: 0;
1008
+ width: 3rem;
1009
+ text-align: right;
1010
+ color: var(--color-neutral-400);
1011
+ user-select: none;
1012
+ padding-right: 1rem;
1013
+ }
1014
+
1015
+ /* Dark mode styles */
1016
+ .b-dark .bc-lexical-code-block {
1017
+ background-color: var(--color-neutral-900);
1018
+ border-color: var(--color-neutral-700);
1019
+ color: var(--color-neutral-100);
1020
+ }
1021
+
1022
+ .b-dark .bc-code-language-button {
1023
+ background-color: var(--color-neutral-800);
1024
+ border-color: var(--color-neutral-600);
1025
+ color: var(--color-neutral-200);
1026
+ }
1027
+
1028
+ .b-dark .bc-code-language-button:hover:not(:disabled) {
1029
+ background-color: var(--color-neutral-700);
1030
+ border-color: var(--color-neutral-500);
1031
+ }
1032
+
1033
+ .b-dark .bc-code-language-dropdown {
1034
+ background-color: var(--color-neutral-800);
1035
+ border-color: var(--color-neutral-700);
1036
+ }
1037
+
1038
+ .b-dark .bc-code-language-option {
1039
+ color: var(--color-neutral-100);
1040
+ }
1041
+
1042
+ .b-dark .bc-code-language-option:hover {
1043
+ background-color: var(--color-neutral-700);
1044
+ }
1045
+
1046
+ .b-dark .bc-code-language-option:active {
1047
+ background-color: var(--color-neutral-600);
1048
+ }
1049
+
1050
+ /* Syntax highlighting token colors (dark theme) */
1051
+ .b-dark .bc-lexical-code-block .token.comment,
1052
+ .b-dark .bc-lexical-code-block .token.prolog,
1053
+ .b-dark .bc-lexical-code-block .token.doctype,
1054
+ .b-dark .bc-lexical-code-block .token.cdata {
1055
+ color: #8b949e;
1056
+ }
1057
+
1058
+ .b-dark .bc-lexical-code-block .token.punctuation {
1059
+ color: #c9d1d9;
1060
+ }
1061
+
1062
+ .b-dark .bc-lexical-code-block .token.property,
1063
+ .b-dark .bc-lexical-code-block .token.tag,
1064
+ .b-dark .bc-lexical-code-block .token.boolean,
1065
+ .b-dark .bc-lexical-code-block .token.number,
1066
+ .b-dark .bc-lexical-code-block .token.constant,
1067
+ .b-dark .bc-lexical-code-block .token.symbol,
1068
+ .b-dark .bc-lexical-code-block .token.deleted {
1069
+ color: #79c0ff;
1070
+ }
1071
+
1072
+ .b-dark .bc-lexical-code-block .token.selector,
1073
+ .b-dark .bc-lexical-code-block .token.attr-name,
1074
+ .b-dark .bc-lexical-code-block .token.string,
1075
+ .b-dark .bc-lexical-code-block .token.char,
1076
+ .b-dark .bc-lexical-code-block .token.builtin,
1077
+ .b-dark .bc-lexical-code-block .token.inserted {
1078
+ color: #a5d6ff;
1079
+ }
1080
+
1081
+ .b-dark .bc-lexical-code-block .token.operator,
1082
+ .b-dark .bc-lexical-code-block .token.entity,
1083
+ .b-dark .bc-lexical-code-block .token.url,
1084
+ .b-dark .bc-lexical-code-block .language-css .token.string,
1085
+ .b-dark .bc-lexical-code-block .style .token.string {
1086
+ color: #ff7b72;
1087
+ }
1088
+
1089
+ .b-dark .bc-lexical-code-block .token.atrule,
1090
+ .b-dark .bc-lexical-code-block .token.attr-value,
1091
+ .b-dark .bc-lexical-code-block .token.keyword {
1092
+ color: #ff7b72;
1093
+ }
1094
+
1095
+ .b-dark .bc-lexical-code-block .token.function,
1096
+ .b-dark .bc-lexical-code-block .token.class-name {
1097
+ color: #d2a8ff;
1098
+ }
1099
+
1100
+ .b-dark .bc-lexical-code-block .token.regex,
1101
+ .b-dark .bc-lexical-code-block .token.important,
1102
+ .b-dark .bc-lexical-code-block .token.variable {
1103
+ color: #ffa657;
1104
+ }
1105
+
1106
+ .b-dark .bc-lexical-code-block .line-number {
1107
+ color: var(--color-neutral-600);
1108
+ }
1109
+
1110
+ /* Accessibility */
1111
+ @media (prefers-reduced-motion: reduce) {
1112
+ .bc-code-language-button,
1113
+ .bc-code-language-option {
1114
+ transition: none;
1115
+ }
1116
+ }
1117
+
1118
+ @media (prefers-contrast: high) {
1119
+ .bc-lexical-code-block {
1120
+ border-width: 2px;
1121
+ }
1122
+ }
1123
+ }
1124
+