@tempots/beatui 0.82.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 (173) hide show
  1. package/dist/_commonjsHelpers-DKOUU3wS.cjs +1 -0
  2. package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
  3. package/dist/auth/index.cjs.js +1 -1
  4. package/dist/auth/index.es.js +63 -1351
  5. package/dist/auth-divider-BqZPH1-z.cjs +1 -0
  6. package/dist/auth-divider-Wr-S16kF.js +1355 -0
  7. package/dist/beatui.css +1347 -0
  8. package/dist/beatui.tailwind.css +1347 -0
  9. package/dist/better-auth/index.cjs.js +1 -0
  10. package/dist/better-auth/index.es.js +754 -0
  11. package/dist/{deep-merge-CiOwVWn8.js → deep-merge-BYm0y62g.js} +34 -33
  12. package/dist/deep-merge-d7sf0xmN.cjs +1 -0
  13. package/dist/duration-input-B9UNmUCh.cjs +1 -0
  14. package/dist/{duration-input-B3vnnwBZ.js → duration-input-DqcJbxKD.js} +23 -22
  15. package/dist/editor-toolbar-group--a-xgsJw.cjs +1 -0
  16. package/dist/editor-toolbar-group-CVpl5mxF.js +31 -0
  17. package/dist/{hls.light.min-Bhrf47iR.cjs → hls.light.min-C6xKDzRR.cjs} +1 -1
  18. package/dist/{hls.light.min-C6VwviEa.js → hls.light.min-hEMf_E8u.js} +1 -1
  19. package/dist/{index-C5YCCgnn.cjs → index-05UbKOYe.cjs} +1 -1
  20. package/dist/{index-ChsRjiIp.cjs → index-Bt7FYl80.cjs} +19 -19
  21. package/dist/{index-DT6-HMMz.js → index-C2Lq1m45.js} +1432 -1462
  22. package/dist/{index-CiAVfKIZ.js → index-lYhXnu6I.js} +1 -1
  23. package/dist/index.cjs.js +4 -4
  24. package/dist/index.es.js +2326 -2680
  25. package/dist/input-container-C6qEIjcA.cjs +1 -0
  26. package/dist/input-container-DiCjOzR2.js +247 -0
  27. package/dist/json-schema/index.cjs.js +1 -1
  28. package/dist/json-schema/index.es.js +33 -32
  29. package/dist/json-schema-display/index.cjs.js +1 -1
  30. package/dist/json-schema-display/index.es.js +1 -1
  31. package/dist/json-structure/index.cjs.js +1 -1
  32. package/dist/json-structure/index.es.js +542 -700
  33. package/dist/lexical/index.cjs.js +46 -0
  34. package/dist/lexical/index.es.js +21370 -0
  35. package/dist/lexical.css +1124 -0
  36. package/dist/menu-CZzRsQP_.js +372 -0
  37. package/dist/menu-ClrU72xH.cjs +1 -0
  38. package/dist/modal-I5srcntN.cjs +1 -0
  39. package/dist/modal-v3u2Fpnd.js +488 -0
  40. package/dist/{notice-CZHWWwOQ.js → notice-BuZvdvZh.js} +48 -47
  41. package/dist/notice-CLDdy1MW.cjs +1 -0
  42. package/dist/{oneof-branch-detection-C8g3eWnx.cjs → oneof-branch-detection-DsM1K5xc.cjs} +1 -1
  43. package/dist/{oneof-branch-detection-BVNoKU9d.js → oneof-branch-detection-Dt8ss9lc.js} +1 -1
  44. package/dist/prosemirror/index.cjs.js +1 -1
  45. package/dist/prosemirror/index.es.js +1 -1
  46. package/dist/session-id-3KiilioY.js +8 -0
  47. package/dist/session-id-B5lJMzbB.cjs +1 -0
  48. package/dist/styles-url-B2dzXrYt.cjs +1 -0
  49. package/dist/styles-url-Cw_mxshe.js +4 -0
  50. package/dist/text-input-B3VBat1k.js +44 -0
  51. package/dist/text-input-Ds8e7Z1G.cjs +1 -0
  52. package/dist/{toolbar-DR2Zd4Oo.js → toolbar-D994_E_s.js} +4 -4
  53. package/dist/toolbar-x0_8lmKu.cjs +1 -0
  54. package/dist/types/better-auth/bridge.d.ts +2 -0
  55. package/dist/types/better-auth/callbacks.d.ts +6 -0
  56. package/dist/types/better-auth/components/authenticated.d.ts +4 -0
  57. package/dist/types/better-auth/components/better-auth-container.d.ts +4 -0
  58. package/dist/types/better-auth/components/better-auth-modal.d.ts +4 -0
  59. package/dist/types/better-auth/components/magic-link-form.d.ts +7 -0
  60. package/dist/types/better-auth/components/passkey-management.d.ts +6 -0
  61. package/dist/types/better-auth/components/passkey-signin.d.ts +12 -0
  62. package/dist/types/better-auth/components/two-factor-setup.d.ts +8 -0
  63. package/dist/types/better-auth/components/two-factor-verify.d.ts +10 -0
  64. package/dist/types/better-auth/i18n/default.d.ts +29 -0
  65. package/dist/types/better-auth/i18n/locales/en.d.ts +28 -0
  66. package/dist/types/better-auth/i18n/translations.d.ts +27 -0
  67. package/dist/types/better-auth/index.d.ts +22 -0
  68. package/dist/types/better-auth/provider.d.ts +6 -0
  69. package/dist/types/better-auth/session.d.ts +14 -0
  70. package/dist/types/better-auth/social-mapping.d.ts +2 -0
  71. package/dist/types/better-auth/types.d.ts +164 -0
  72. package/dist/types/components/auth/auth-container.d.ts +1 -1
  73. package/dist/types/components/auth/social-providers.d.ts +1 -1
  74. package/dist/types/components/auth/types.d.ts +2 -0
  75. package/dist/types/components/editor-toolbar/editor-toolbar-button.d.ts +16 -0
  76. package/dist/types/components/editor-toolbar/editor-toolbar-group.d.ts +9 -0
  77. package/dist/types/components/editor-toolbar/index.d.ts +2 -0
  78. package/dist/types/components/json-structure/controls/control-utils.d.ts +19 -0
  79. package/dist/types/components/json-structure/controls/index.d.ts +1 -0
  80. package/dist/types/components/lexical/bare-editor.d.ts +29 -0
  81. package/dist/types/components/lexical/code/index.d.ts +1 -0
  82. package/dist/types/components/lexical/code/language-selector.d.ts +13 -0
  83. package/dist/types/components/lexical/contextual-editor.d.ts +22 -0
  84. package/dist/types/components/lexical/docked-editor.d.ts +23 -0
  85. package/dist/types/components/lexical/floating/block-handle.d.ts +16 -0
  86. package/dist/types/components/lexical/floating/floating-toolbar.d.ts +12 -0
  87. package/dist/types/components/lexical/floating/index.d.ts +6 -0
  88. package/dist/types/components/lexical/floating/slash-command-palette.d.ts +20 -0
  89. package/dist/types/components/lexical/index.d.ts +8 -0
  90. package/dist/types/components/lexical/lexical-editor-input.d.ts +30 -0
  91. package/dist/types/components/lexical/table/index.d.ts +1 -0
  92. package/dist/types/components/lexical/table/table-controls.d.ts +12 -0
  93. package/dist/types/components/lexical/toolbar/index.d.ts +6 -0
  94. package/dist/types/components/lexical/toolbar/lexical-toolbar.d.ts +12 -0
  95. package/dist/types/components/lexical/toolbar/toolbar-button.d.ts +1 -0
  96. package/dist/types/components/lexical/toolbar/toolbar-group.d.ts +1 -0
  97. package/dist/types/components/lexical/toolbar/toolbar-helpers.d.ts +30 -0
  98. package/dist/types/components/prosemirror/etoolbar-button.d.ts +1 -11
  99. package/dist/types/components/prosemirror/etoolbar-group.d.ts +1 -4
  100. package/dist/types/lexical/commands/index.d.ts +17 -0
  101. package/dist/types/lexical/headless.d.ts +39 -0
  102. package/dist/types/lexical/horizontal-rule-node.d.ts +20 -0
  103. package/dist/types/lexical/index.d.ts +20 -0
  104. package/dist/types/lexical/lazy-loader.d.ts +35 -0
  105. package/dist/types/lexical/nodes.d.ts +29 -0
  106. package/dist/types/lexical/plugins/auto-link.d.ts +7 -0
  107. package/dist/types/lexical/plugins/clipboard.d.ts +11 -0
  108. package/dist/types/lexical/plugins/code-shiki.d.ts +11 -0
  109. package/dist/types/lexical/plugins/code.d.ts +7 -0
  110. package/dist/types/lexical/plugins/dragon.d.ts +6 -0
  111. package/dist/types/lexical/plugins/file-io.d.ts +10 -0
  112. package/dist/types/lexical/plugins/hashtag.d.ts +7 -0
  113. package/dist/types/lexical/plugins/history.d.ts +7 -0
  114. package/dist/types/lexical/plugins/horizontal-rule.d.ts +12 -0
  115. package/dist/types/lexical/plugins/html-io.d.ts +9 -0
  116. package/dist/types/lexical/plugins/index.d.ts +24 -0
  117. package/dist/types/lexical/plugins/link.d.ts +6 -0
  118. package/dist/types/lexical/plugins/list.d.ts +6 -0
  119. package/dist/types/lexical/plugins/mark.d.ts +15 -0
  120. package/dist/types/lexical/plugins/markdown-io.d.ts +13 -0
  121. package/dist/types/lexical/plugins/offset.d.ts +6 -0
  122. package/dist/types/lexical/plugins/overflow.d.ts +7 -0
  123. package/dist/types/lexical/plugins/plain-text.d.ts +6 -0
  124. package/dist/types/lexical/plugins/rich-text.d.ts +6 -0
  125. package/dist/types/lexical/plugins/selection.d.ts +6 -0
  126. package/dist/types/lexical/plugins/slash-commands.d.ts +26 -0
  127. package/dist/types/lexical/plugins/table.d.ts +11 -0
  128. package/dist/types/lexical/plugins/text.d.ts +13 -0
  129. package/dist/types/lexical/plugins/yjs.d.ts +9 -0
  130. package/dist/types/lexical/styles-url.d.ts +2 -0
  131. package/dist/types/lexical/styles.d.ts +2 -0
  132. package/dist/types/lexical/types.d.ts +634 -0
  133. package/dist/types/lexical-i18n/default.d.ts +92 -0
  134. package/dist/types/lexical-i18n/index.d.ts +21 -0
  135. package/dist/types/lexical-i18n/locales/ar.d.ts +91 -0
  136. package/dist/types/lexical-i18n/locales/de.d.ts +91 -0
  137. package/dist/types/lexical-i18n/locales/en.d.ts +91 -0
  138. package/dist/types/lexical-i18n/locales/es.d.ts +91 -0
  139. package/dist/types/lexical-i18n/locales/fa.d.ts +91 -0
  140. package/dist/types/lexical-i18n/locales/fr.d.ts +91 -0
  141. package/dist/types/lexical-i18n/locales/he.d.ts +91 -0
  142. package/dist/types/lexical-i18n/locales/hi.d.ts +91 -0
  143. package/dist/types/lexical-i18n/locales/it.d.ts +91 -0
  144. package/dist/types/lexical-i18n/locales/ja.d.ts +91 -0
  145. package/dist/types/lexical-i18n/locales/ko.d.ts +91 -0
  146. package/dist/types/lexical-i18n/locales/nl.d.ts +91 -0
  147. package/dist/types/lexical-i18n/locales/pl.d.ts +91 -0
  148. package/dist/types/lexical-i18n/locales/pt.d.ts +91 -0
  149. package/dist/types/lexical-i18n/locales/ru.d.ts +91 -0
  150. package/dist/types/lexical-i18n/locales/tr.d.ts +91 -0
  151. package/dist/types/lexical-i18n/locales/ur.d.ts +91 -0
  152. package/dist/types/lexical-i18n/locales/vi.d.ts +91 -0
  153. package/dist/types/lexical-i18n/locales/zh.d.ts +91 -0
  154. package/dist/types/lexical-i18n/translations.d.ts +21 -0
  155. package/dist/use-animated-toggle-ChycsEoj.js +175 -0
  156. package/dist/use-animated-toggle-DR6CyMac.cjs +1 -0
  157. package/dist/{use-form-CgZyrACX.js → use-form-B56E_x5Y.js} +83 -88
  158. package/dist/use-form-Cnp3XQ5X.cjs +2 -0
  159. package/dist/widget-customization-Dk7XcVly.cjs +1 -0
  160. package/dist/{widget-customization-DRA7E9Zf.js → widget-customization-Ds9sicAg.js} +106 -105
  161. package/package.json +48 -3
  162. package/dist/_commonjsHelpers-C6fGbg64.js +0 -6
  163. package/dist/_commonjsHelpers-DwGv2jUC.cjs +0 -1
  164. package/dist/deep-merge-DxZqCkE5.cjs +0 -1
  165. package/dist/duration-input-Dg5SX3lM.cjs +0 -1
  166. package/dist/modal-D2xE47kr.cjs +0 -1
  167. package/dist/modal-hkQD1bqZ.js +0 -655
  168. package/dist/notice-C0SmlheE.cjs +0 -1
  169. package/dist/text-input-CByq5OIo.cjs +0 -1
  170. package/dist/text-input-CFJntP7G.js +0 -287
  171. package/dist/toolbar-TPWYzoiF.cjs +0 -1
  172. package/dist/use-form-JjeKCINk.cjs +0 -2
  173. package/dist/widget-customization-G-QLB1rw.cjs +0 -1
package/dist/beatui.css CHANGED
@@ -1974,6 +1974,229 @@ a:focus-visible {
1974
1974
  background-color: var(--color-white);
1975
1975
  }
1976
1976
 
1977
+ /* Two-Factor Authentication Component */
1978
+ .bc-two-factor {
1979
+ display: flex;
1980
+ flex-direction: column;
1981
+ gap: var(--spacing-stack-xl, var(--spacing-xl));
1982
+ width: 100%;
1983
+ }
1984
+
1985
+ .bc-two-factor__form {
1986
+ display: flex;
1987
+ flex-direction: column;
1988
+ gap: var(--spacing-stack-xl, var(--spacing-xl));
1989
+ }
1990
+
1991
+ /* Method selector */
1992
+ .bc-two-factor__methods {
1993
+ display: flex;
1994
+ gap: var(--spacing-sm);
1995
+ border-bottom: 1px solid var(--color-neutral-200);
1996
+ padding-bottom: var(--spacing-sm);
1997
+ }
1998
+
1999
+ .b-dark .bc-two-factor__methods {
2000
+ border-bottom-color: var(--color-neutral-700);
2001
+ }
2002
+
2003
+ .bc-two-factor__method-button {
2004
+ background: none;
2005
+ border: none;
2006
+ padding: var(--spacing-xs) var(--spacing-sm);
2007
+ font-size: var(--font-size-sm);
2008
+ color: var(--text-muted-light);
2009
+ cursor: pointer;
2010
+ border-radius: var(--radius-sm);
2011
+ transition: all
2012
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
2013
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
2014
+ }
2015
+
2016
+ .bc-two-factor__method-button:hover {
2017
+ color: var(--text-normal-light);
2018
+ background-color: var(--color-neutral-100);
2019
+ }
2020
+
2021
+ .bc-two-factor__method-button--active {
2022
+ color: var(--color-primary-600);
2023
+ font-weight: var(--font-weight-semibold);
2024
+ border-bottom: 2px solid var(--color-primary-600);
2025
+ }
2026
+
2027
+ .b-dark .bc-two-factor__method-button {
2028
+ color: var(--text-muted-dark);
2029
+ }
2030
+
2031
+ .b-dark .bc-two-factor__method-button:hover {
2032
+ color: var(--text-normal-dark);
2033
+ background-color: var(--color-neutral-800);
2034
+ }
2035
+
2036
+ .b-dark .bc-two-factor__method-button--active {
2037
+ color: var(--color-primary-400);
2038
+ border-bottom-color: var(--color-primary-400);
2039
+ }
2040
+
2041
+ /* TOTP URI display */
2042
+ .bc-two-factor__totp-uri {
2043
+ display: flex;
2044
+ flex-direction: column;
2045
+ gap: var(--spacing-md);
2046
+ align-items: center;
2047
+ }
2048
+
2049
+ .bc-two-factor__code-display {
2050
+ display: block;
2051
+ padding: var(--spacing-md);
2052
+ background-color: var(--color-neutral-100);
2053
+ border-radius: var(--radius-md);
2054
+ font-family: var(--font-mono);
2055
+ font-size: var(--font-size-xs);
2056
+ word-break: break-all;
2057
+ text-align: center;
2058
+ }
2059
+
2060
+ .b-dark .bc-two-factor__code-display {
2061
+ background-color: var(--color-neutral-800);
2062
+ }
2063
+
2064
+ /* Backup codes */
2065
+ .bc-two-factor__backup-codes {
2066
+ display: flex;
2067
+ flex-direction: column;
2068
+ gap: var(--spacing-sm);
2069
+ }
2070
+
2071
+ .bc-two-factor__backup-codes ul {
2072
+ display: grid;
2073
+ grid-template-columns: repeat(2, 1fr);
2074
+ gap: var(--spacing-xs);
2075
+ list-style: none;
2076
+ margin: 0;
2077
+ padding: 0;
2078
+ }
2079
+
2080
+ .bc-two-factor__backup-codes li {
2081
+ padding: var(--spacing-xs) var(--spacing-sm);
2082
+ background-color: var(--color-neutral-100);
2083
+ border-radius: var(--radius-sm);
2084
+ font-family: var(--font-mono);
2085
+ font-size: var(--font-size-sm);
2086
+ text-align: center;
2087
+ }
2088
+
2089
+ .b-dark .bc-two-factor__backup-codes li {
2090
+ background-color: var(--color-neutral-800);
2091
+ }
2092
+
2093
+ /* Complete state */
2094
+ .bc-two-factor__complete {
2095
+ text-align: center;
2096
+ }
2097
+
2098
+ /* Code input */
2099
+ .bc-two-factor__code-input {
2100
+ text-align: center;
2101
+ letter-spacing: 0.5em;
2102
+ font-size: var(--font-size-xl);
2103
+ font-family: var(--font-mono);
2104
+ }
2105
+
2106
+ /* Reduced motion support */
2107
+ @media (prefers-reduced-motion: reduce) {
2108
+ .bc-two-factor__method-button {
2109
+ transition: none;
2110
+ }
2111
+ }
2112
+
2113
+ /* Passkey Components */
2114
+
2115
+ /* Passkey management */
2116
+ .bc-passkey-management {
2117
+ display: flex;
2118
+ flex-direction: column;
2119
+ gap: var(--spacing-xl);
2120
+ width: 100%;
2121
+ }
2122
+
2123
+ /* Passkey list */
2124
+ .bc-passkey-list {
2125
+ display: flex;
2126
+ flex-direction: column;
2127
+ gap: var(--spacing-sm);
2128
+ }
2129
+
2130
+ .bc-passkey-item {
2131
+ display: flex;
2132
+ align-items: center;
2133
+ justify-content: space-between;
2134
+ gap: var(--spacing-md);
2135
+ padding: var(--spacing-sm) var(--spacing-md);
2136
+ background-color: var(--color-neutral-50);
2137
+ border-radius: var(--radius-md);
2138
+ border: 1px solid var(--color-neutral-200);
2139
+ }
2140
+
2141
+ .b-dark .bc-passkey-item {
2142
+ background-color: var(--color-neutral-900);
2143
+ border-color: var(--color-neutral-700);
2144
+ }
2145
+
2146
+ .bc-passkey-item__info {
2147
+ display: flex;
2148
+ flex-direction: column;
2149
+ gap: var(--spacing-xs);
2150
+ flex: 1;
2151
+ min-width: 0;
2152
+ }
2153
+
2154
+ .bc-passkey-item__name {
2155
+ font-size: var(--font-size-sm);
2156
+ font-weight: var(--font-weight-medium);
2157
+ color: var(--text-normal-light);
2158
+ overflow: hidden;
2159
+ text-overflow: ellipsis;
2160
+ white-space: nowrap;
2161
+ }
2162
+
2163
+ .b-dark .bc-passkey-item__name {
2164
+ color: var(--text-normal-dark);
2165
+ }
2166
+
2167
+ .bc-passkey-item__date {
2168
+ font-size: var(--font-size-xs);
2169
+ color: var(--text-muted-light);
2170
+ }
2171
+
2172
+ .b-dark .bc-passkey-item__date {
2173
+ color: var(--text-muted-dark);
2174
+ }
2175
+
2176
+ .bc-passkey-item__edit {
2177
+ flex: 1;
2178
+ min-width: 0;
2179
+ }
2180
+
2181
+ .bc-passkey-item__actions {
2182
+ display: flex;
2183
+ gap: var(--spacing-xs);
2184
+ flex-shrink: 0;
2185
+ }
2186
+
2187
+ /* Add passkey */
2188
+ .bc-passkey-add {
2189
+ display: flex;
2190
+ flex-direction: column;
2191
+ gap: var(--spacing-md);
2192
+ }
2193
+
2194
+ /* Sign-in button */
2195
+ .bc-passkey-signin {
2196
+ width: 100%;
2197
+ justify-content: center;
2198
+ }
2199
+
1977
2200
  /* Badge Component */
1978
2201
  .bc-badge {
1979
2202
  --badge-bg: transparent;
@@ -5671,6 +5894,1130 @@ a:focus-visible {
5671
5894
  color: var(--color-danger-400);
5672
5895
  }
5673
5896
 
5897
+ @layer components {
5898
+ /* Lexical Editor Component */
5899
+
5900
+ /* Container wrapper for toolbar + editor */
5901
+ .bc-lexical-editor-container {
5902
+ display: flex;
5903
+ flex-direction: column;
5904
+ border: 1px solid var(--color-neutral-200);
5905
+ border-radius: var(--radius-control, var(--radius-md));
5906
+ background-color: var(--color-neutral-50);
5907
+ overflow: hidden;
5908
+ transition: all
5909
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
5910
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
5911
+ }
5912
+
5913
+ /* Fixed height mode on container: fill parent, constrain children */
5914
+ .bc-lexical-editor-container--fixed {
5915
+ height: 100%;
5916
+ }
5917
+
5918
+ /* Editor surface (contenteditable) */
5919
+ .bc-lexical-editor {
5920
+ position: relative;
5921
+ min-height: 150px;
5922
+ padding: 1rem;
5923
+ outline: none;
5924
+ font-family: inherit;
5925
+ font-size: inherit;
5926
+ line-height: 1.6;
5927
+ color: var(--color-neutral-900);
5928
+ background-color: var(--color-white);
5929
+ }
5930
+
5931
+ /* Fixed height mode: fill container, scroll on overflow */
5932
+ .bc-lexical-editor--fixed {
5933
+ flex: 1 1 0;
5934
+ overflow-y: auto;
5935
+ }
5936
+
5937
+ /* Auto height mode: grow with content */
5938
+ .bc-lexical-editor--auto {
5939
+ overflow-y: visible;
5940
+ }
5941
+
5942
+ /* Focus state */
5943
+ .bc-lexical-editor-container:focus-within {
5944
+ border-color: var(--color-primary-500);
5945
+ box-shadow: 0 0 0 2px var(--color-primary-100);
5946
+ }
5947
+
5948
+ /* Error state */
5949
+ .bc-lexical-editor-container--error {
5950
+ border-color: var(--color-danger-600);
5951
+ }
5952
+
5953
+ .bc-lexical-editor-container--error:focus-within {
5954
+ border-color: var(--color-danger-600);
5955
+ box-shadow: 0 0 0 2px var(--color-danger-100);
5956
+ }
5957
+
5958
+ /* Read-only state */
5959
+ .bc-lexical-editor--readonly {
5960
+ cursor: default;
5961
+ background-color: var(--color-neutral-100);
5962
+ color: var(--color-neutral-700);
5963
+ }
5964
+
5965
+ /* Placeholder styling */
5966
+ .bc-lexical-editor [data-lexical-placeholder] {
5967
+ color: var(--color-neutral-400);
5968
+ pointer-events: none;
5969
+ position: absolute;
5970
+ top: 1rem;
5971
+ left: 1rem;
5972
+ user-select: none;
5973
+ font-style: italic;
5974
+ }
5975
+
5976
+ /* Typography within editor */
5977
+ .bc-lexical-editor h1 {
5978
+ font-size: 2rem;
5979
+ font-weight: 700;
5980
+ line-height: 1.2;
5981
+ margin-top: 1.5rem;
5982
+ margin-bottom: 0.75rem;
5983
+ }
5984
+
5985
+ .bc-lexical-editor h1:first-child {
5986
+ margin-top: 0;
5987
+ }
5988
+
5989
+ .bc-lexical-editor h2 {
5990
+ font-size: 1.5rem;
5991
+ font-weight: 700;
5992
+ line-height: 1.3;
5993
+ margin-top: 1.25rem;
5994
+ margin-bottom: 0.625rem;
5995
+ }
5996
+
5997
+ .bc-lexical-editor h2:first-child {
5998
+ margin-top: 0;
5999
+ }
6000
+
6001
+ .bc-lexical-editor h3 {
6002
+ font-size: 1.25rem;
6003
+ font-weight: 600;
6004
+ line-height: 1.4;
6005
+ margin-top: 1rem;
6006
+ margin-bottom: 0.5rem;
6007
+ }
6008
+
6009
+ .bc-lexical-editor h3:first-child {
6010
+ margin-top: 0;
6011
+ }
6012
+
6013
+ .bc-lexical-editor h4 {
6014
+ font-size: 1.125rem;
6015
+ font-weight: 600;
6016
+ line-height: 1.5;
6017
+ margin-top: 0.875rem;
6018
+ margin-bottom: 0.5rem;
6019
+ }
6020
+
6021
+ .bc-lexical-editor h4:first-child {
6022
+ margin-top: 0;
6023
+ }
6024
+
6025
+ .bc-lexical-editor h5 {
6026
+ font-size: 1rem;
6027
+ font-weight: 600;
6028
+ line-height: 1.5;
6029
+ margin-top: 0.75rem;
6030
+ margin-bottom: 0.5rem;
6031
+ }
6032
+
6033
+ .bc-lexical-editor h5:first-child {
6034
+ margin-top: 0;
6035
+ }
6036
+
6037
+ .bc-lexical-editor h6 {
6038
+ font-size: 0.875rem;
6039
+ font-weight: 600;
6040
+ line-height: 1.5;
6041
+ margin-top: 0.75rem;
6042
+ margin-bottom: 0.5rem;
6043
+ text-transform: uppercase;
6044
+ letter-spacing: 0.05em;
6045
+ }
6046
+
6047
+ .bc-lexical-editor h6:first-child {
6048
+ margin-top: 0;
6049
+ }
6050
+
6051
+ .bc-lexical-editor p {
6052
+ margin-top: 0.5rem;
6053
+ margin-bottom: 0.5rem;
6054
+ }
6055
+
6056
+ .bc-lexical-editor p:first-child {
6057
+ margin-top: 0;
6058
+ }
6059
+
6060
+ .bc-lexical-editor p:last-child {
6061
+ margin-bottom: 0;
6062
+ }
6063
+
6064
+ .bc-lexical-editor blockquote {
6065
+ margin: 1rem 0;
6066
+ padding-left: 1rem;
6067
+ border-left: 4px solid var(--color-neutral-300);
6068
+ color: var(--color-neutral-700);
6069
+ font-style: italic;
6070
+ }
6071
+
6072
+ .bc-lexical-editor ul,
6073
+ .bc-lexical-editor ol {
6074
+ margin: 0.75rem 0;
6075
+ padding-left: 1.5rem;
6076
+ }
6077
+
6078
+ .bc-lexical-editor ul {
6079
+ list-style-type: disc;
6080
+ }
6081
+
6082
+ .bc-lexical-editor ol {
6083
+ list-style-type: decimal;
6084
+ }
6085
+
6086
+ .bc-lexical-editor li {
6087
+ margin: 0.25rem 0;
6088
+ }
6089
+
6090
+ .bc-lexical-editor code {
6091
+ font-family: 'Monaco', 'Courier New', monospace;
6092
+ font-size: 0.875em;
6093
+ background-color: var(--color-neutral-100);
6094
+ color: var(--color-neutral-800);
6095
+ padding: 0.125rem 0.375rem;
6096
+ border-radius: var(--radius-xs, 0.25rem);
6097
+ }
6098
+
6099
+ .bc-lexical-editor pre {
6100
+ margin: 1rem 0;
6101
+ padding: 1rem;
6102
+ background-color: var(--color-neutral-100);
6103
+ border-radius: var(--radius-md, 0.5rem);
6104
+ overflow-x: auto;
6105
+ border: 1px solid var(--color-neutral-200);
6106
+ }
6107
+
6108
+ .bc-lexical-editor pre code {
6109
+ background-color: transparent;
6110
+ padding: 0;
6111
+ border-radius: 0;
6112
+ font-size: 0.875rem;
6113
+ line-height: 1.5;
6114
+ }
6115
+
6116
+ .bc-lexical-editor a {
6117
+ color: var(--color-primary-600);
6118
+ text-decoration: underline;
6119
+ text-underline-offset: 0.125rem;
6120
+ cursor: pointer;
6121
+ }
6122
+
6123
+ .bc-lexical-editor a:hover {
6124
+ color: var(--color-primary-700);
6125
+ }
6126
+
6127
+ .bc-lexical-editor hr {
6128
+ margin: 1.5rem 0;
6129
+ border: none;
6130
+ border-top: 2px solid var(--color-neutral-200);
6131
+ }
6132
+
6133
+ .bc-lexical-editor strong,
6134
+ .bc-lexical-bold {
6135
+ font-weight: 700;
6136
+ }
6137
+
6138
+ .bc-lexical-editor em,
6139
+ .bc-lexical-italic {
6140
+ font-style: italic;
6141
+ }
6142
+
6143
+ .bc-lexical-editor u,
6144
+ .bc-lexical-underline {
6145
+ text-decoration: underline;
6146
+ }
6147
+
6148
+ .bc-lexical-editor s,
6149
+ .bc-lexical-strikethrough {
6150
+ text-decoration: line-through;
6151
+ }
6152
+
6153
+ .bc-lexical-code {
6154
+ font-family: 'Monaco', 'Courier New', monospace;
6155
+ font-size: 0.875em;
6156
+ background-color: var(--color-neutral-100);
6157
+ color: var(--color-neutral-800);
6158
+ padding: 0.125rem 0.375rem;
6159
+ border-radius: var(--radius-xs, 0.25rem);
6160
+ }
6161
+
6162
+ .b-dark .bc-lexical-code {
6163
+ background-color: var(--color-neutral-800);
6164
+ color: var(--color-neutral-200);
6165
+ }
6166
+
6167
+ /* Check list items */
6168
+ .bc-lexical-li-checked,
6169
+ .bc-lexical-li-unchecked {
6170
+ list-style-type: none;
6171
+ position: relative;
6172
+ padding-left: 1.5rem;
6173
+ margin-left: -1.5rem;
6174
+ }
6175
+
6176
+ .bc-lexical-li-checked::before,
6177
+ .bc-lexical-li-unchecked::before {
6178
+ content: '';
6179
+ position: absolute;
6180
+ left: 0;
6181
+ top: 0.35em;
6182
+ width: 1em;
6183
+ height: 1em;
6184
+ border: 2px solid var(--color-neutral-400);
6185
+ border-radius: var(--radius-xs, 0.25rem);
6186
+ cursor: pointer;
6187
+ }
6188
+
6189
+ .bc-lexical-li-checked::before {
6190
+ background-color: var(--color-primary-500);
6191
+ border-color: var(--color-primary-500);
6192
+ }
6193
+
6194
+ .bc-lexical-li-checked::after {
6195
+ content: '';
6196
+ position: absolute;
6197
+ left: 0.25em;
6198
+ top: 0.45em;
6199
+ width: 0.5em;
6200
+ height: 0.25em;
6201
+ border-left: 2px solid white;
6202
+ border-bottom: 2px solid white;
6203
+ transform: rotate(-45deg);
6204
+ }
6205
+
6206
+ .bc-lexical-li-checked {
6207
+ text-decoration: line-through;
6208
+ color: var(--color-neutral-500);
6209
+ }
6210
+
6211
+ .b-dark .bc-lexical-li-checked::before {
6212
+ background-color: var(--color-primary-400);
6213
+ border-color: var(--color-primary-400);
6214
+ }
6215
+
6216
+ .b-dark .bc-lexical-li-unchecked::before {
6217
+ border-color: var(--color-neutral-600);
6218
+ }
6219
+
6220
+ /* Dark mode styles */
6221
+ .b-dark .bc-lexical-editor-container {
6222
+ background-color: var(--color-neutral-800);
6223
+ border-color: var(--color-neutral-700);
6224
+ }
6225
+
6226
+ .b-dark .bc-lexical-editor {
6227
+ background-color: var(--bg-surface-dark);
6228
+ color: var(--text-normal-dark);
6229
+ }
6230
+
6231
+ .b-dark .bc-lexical-editor-container:focus-within {
6232
+ border-color: var(--color-primary-400);
6233
+ box-shadow: 0 0 0 2px var(--color-primary-900);
6234
+ }
6235
+
6236
+ .b-dark .bc-lexical-editor-container--error {
6237
+ border-color: var(--color-danger-400);
6238
+ }
6239
+
6240
+ .b-dark .bc-lexical-editor-container--error:focus-within {
6241
+ border-color: var(--color-danger-400);
6242
+ box-shadow: 0 0 0 2px var(--color-danger-900);
6243
+ }
6244
+
6245
+ .b-dark .bc-lexical-editor--readonly {
6246
+ background-color: var(--color-neutral-900);
6247
+ color: var(--text-muted-dark);
6248
+ }
6249
+
6250
+ .b-dark .bc-lexical-editor [data-lexical-placeholder] {
6251
+ color: var(--color-neutral-500);
6252
+ }
6253
+
6254
+ .b-dark .bc-lexical-editor blockquote {
6255
+ border-left-color: var(--color-neutral-600);
6256
+ color: var(--text-muted-dark);
6257
+ }
6258
+
6259
+ .b-dark .bc-lexical-editor code {
6260
+ background-color: var(--color-neutral-800);
6261
+ color: var(--color-neutral-200);
6262
+ }
6263
+
6264
+ .b-dark .bc-lexical-editor pre {
6265
+ background-color: var(--color-neutral-900);
6266
+ border-color: var(--color-neutral-700);
6267
+ }
6268
+
6269
+ .b-dark .bc-lexical-editor a {
6270
+ color: var(--color-primary-400);
6271
+ }
6272
+
6273
+ .b-dark .bc-lexical-editor a:hover {
6274
+ color: var(--color-primary-300);
6275
+ }
6276
+
6277
+ .b-dark .bc-lexical-editor hr {
6278
+ border-top-color: var(--color-neutral-700);
6279
+ }
6280
+
6281
+ /* Collaboration: Remote cursors and selections */
6282
+ .bc-lexical-collaboration-cursor {
6283
+ position: absolute;
6284
+ pointer-events: none;
6285
+ user-select: none;
6286
+ }
6287
+
6288
+ .bc-lexical-collaboration-cursor__caret {
6289
+ position: absolute;
6290
+ width: 2px;
6291
+ height: 1.2em;
6292
+ background-color: currentColor;
6293
+ animation: bc-lexical-cursor-blink 1s infinite;
6294
+ }
6295
+
6296
+ .bc-lexical-collaboration-cursor__name {
6297
+ position: absolute;
6298
+ top: -20px;
6299
+ left: 0;
6300
+ padding: 2px 6px;
6301
+ background-color: currentColor;
6302
+ color: white;
6303
+ font-size: 0.75rem;
6304
+ font-weight: 500;
6305
+ border-radius: var(--radius-sm);
6306
+ white-space: nowrap;
6307
+ opacity: 0;
6308
+ transition: opacity 0.2s;
6309
+ }
6310
+
6311
+ .bc-lexical-collaboration-cursor:hover
6312
+ .bc-lexical-collaboration-cursor__name {
6313
+ opacity: 1;
6314
+ }
6315
+
6316
+ .bc-lexical-collaboration-selection {
6317
+ position: absolute;
6318
+ pointer-events: none;
6319
+ background-color: currentColor;
6320
+ opacity: 0.3;
6321
+ }
6322
+
6323
+ @keyframes bc-lexical-cursor-blink {
6324
+ 0%,
6325
+ 49% {
6326
+ opacity: 1;
6327
+ }
6328
+ 50%,
6329
+ 100% {
6330
+ opacity: 0;
6331
+ }
6332
+ }
6333
+
6334
+ /* Accessibility */
6335
+ @media (prefers-reduced-motion: reduce) {
6336
+ .bc-lexical-editor-container {
6337
+ transition: none;
6338
+ }
6339
+ }
6340
+
6341
+ @media (prefers-contrast: high) {
6342
+ .bc-lexical-editor-container {
6343
+ border-width: 2px;
6344
+ }
6345
+
6346
+ .bc-lexical-editor-container:focus-within {
6347
+ box-shadow: 0 0 0 3px var(--color-primary-100);
6348
+ }
6349
+
6350
+ .b-dark .bc-lexical-editor-container:focus-within {
6351
+ box-shadow: 0 0 0 3px var(--color-primary-900);
6352
+ }
6353
+ }
6354
+ }
6355
+
6356
+ @layer components {
6357
+ /* Lexical Editor Toolbar */
6358
+
6359
+ /* Toolbar positioned at top of editor container */
6360
+ .bc-lexical-toolbar {
6361
+ border-bottom: 1px solid var(--color-neutral-200);
6362
+ border-radius: 0;
6363
+ border: none;
6364
+ background-color: var(--color-neutral-50);
6365
+ padding: var(--spacing-xs) var(--spacing-sm);
6366
+ flex-wrap: wrap;
6367
+ }
6368
+
6369
+ .b-dark .bc-lexical-toolbar {
6370
+ background-color: var(--color-neutral-800);
6371
+ }
6372
+
6373
+ /* When toolbar is inside the editor container, add bottom border */
6374
+ .bc-lexical-editor-container > .bc-lexical-toolbar {
6375
+ border-bottom: 1px solid var(--color-neutral-200);
6376
+ }
6377
+
6378
+ .b-dark .bc-lexical-editor-container > .bc-lexical-toolbar {
6379
+ border-bottom-color: var(--color-neutral-700);
6380
+ }
6381
+
6382
+ /* Bottom position variant */
6383
+ .bc-lexical-toolbar--bottom {
6384
+ border-bottom: none;
6385
+ border-top: 1px solid var(--color-neutral-200);
6386
+ }
6387
+
6388
+ .b-dark .bc-lexical-toolbar--bottom {
6389
+ border-top-color: var(--color-neutral-700);
6390
+ }
6391
+
6392
+ /* Hidden state for readOnly mode */
6393
+ .bc-lexical-toolbar--hidden {
6394
+ display: none;
6395
+ }
6396
+
6397
+ /* Toolbar selects (font family/size) */
6398
+ .bc-lexical-toolbar-select {
6399
+ height: 28px;
6400
+ padding: 0 var(--spacing-xs);
6401
+ border: 1px solid var(--color-neutral-300);
6402
+ border-radius: var(--radius-sm);
6403
+ background-color: var(--color-surface);
6404
+ color: var(--color-neutral-900);
6405
+ font-size: 0.75rem;
6406
+ cursor: pointer;
6407
+ }
6408
+
6409
+ .b-dark .bc-lexical-toolbar-select {
6410
+ border-color: var(--color-neutral-600);
6411
+ background-color: var(--color-neutral-700);
6412
+ color: var(--color-neutral-100);
6413
+ }
6414
+
6415
+ /* Color picker labels */
6416
+ .bc-lexical-toolbar-color {
6417
+ display: inline-flex;
6418
+ align-items: center;
6419
+ justify-content: center;
6420
+ position: relative;
6421
+ width: 28px;
6422
+ height: 28px;
6423
+ cursor: pointer;
6424
+ border-radius: var(--radius-sm);
6425
+ }
6426
+
6427
+ .bc-lexical-toolbar-color:hover {
6428
+ background-color: var(--color-neutral-200);
6429
+ }
6430
+
6431
+ .b-dark .bc-lexical-toolbar-color:hover {
6432
+ background-color: var(--color-neutral-600);
6433
+ }
6434
+
6435
+ .bc-lexical-toolbar-color input[type='color'] {
6436
+ position: absolute;
6437
+ inset: 0;
6438
+ width: 100%;
6439
+ height: 100%;
6440
+ opacity: 0;
6441
+ cursor: pointer;
6442
+ border: none;
6443
+ padding: 0;
6444
+ }
6445
+
6446
+ .bc-lexical-toolbar-color-icon {
6447
+ font-size: 0.875rem;
6448
+ font-weight: 700;
6449
+ pointer-events: none;
6450
+ line-height: 1;
6451
+ }
6452
+
6453
+ .bc-lexical-toolbar-color-icon--highlight {
6454
+ background-color: #ffff00;
6455
+ padding: 0 2px;
6456
+ border-radius: 2px;
6457
+ }
6458
+
6459
+ .bc-lexical-toolbar-color-icon--bg {
6460
+ font-size: 1rem;
6461
+ }
6462
+
6463
+ /* Responsive: compact toolbar on small containers */
6464
+ @container (max-width: 400px) {
6465
+ .bc-lexical-toolbar {
6466
+ padding: var(--spacing-2xs) var(--spacing-xs);
6467
+ gap: var(--spacing-2xs);
6468
+ }
6469
+ }
6470
+ }
6471
+
6472
+ @layer components {
6473
+ /* Lexical Floating Toolbar */
6474
+
6475
+ .bc-floating-toolbar {
6476
+ display: flex;
6477
+ align-items: center;
6478
+ gap: var(--spacing-xs);
6479
+ padding: var(--spacing-xs);
6480
+ border-radius: var(--radius-md);
6481
+ background-color: var(--color-white);
6482
+ border: 1px solid var(--color-neutral-200);
6483
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
6484
+ z-index: 1000;
6485
+ animation: bc-floating-toolbar-enter 0.15s ease-out;
6486
+ }
6487
+
6488
+ .b-dark .bc-floating-toolbar {
6489
+ background-color: var(--color-neutral-800);
6490
+ border-color: var(--color-neutral-700);
6491
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
6492
+ }
6493
+
6494
+ @keyframes bc-floating-toolbar-enter {
6495
+ from {
6496
+ opacity: 0;
6497
+ transform: translateX(-50%) translateY(4px);
6498
+ }
6499
+ to {
6500
+ opacity: 1;
6501
+ transform: translateX(-50%) translateY(0);
6502
+ }
6503
+ }
6504
+
6505
+ /* Slash Command Palette */
6506
+
6507
+ .bc-slash-command-palette {
6508
+ min-width: 280px;
6509
+ max-width: 360px;
6510
+ max-height: 400px;
6511
+ overflow-y: auto;
6512
+ border-radius: var(--radius-md);
6513
+ background-color: var(--color-white);
6514
+ border: 1px solid var(--color-neutral-200);
6515
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
6516
+ padding: var(--spacing-xs);
6517
+ z-index: 1000;
6518
+ animation: bc-slash-palette-enter 0.12s ease-out;
6519
+ }
6520
+
6521
+ .b-dark .bc-slash-command-palette {
6522
+ background-color: var(--color-neutral-800);
6523
+ border-color: var(--color-neutral-700);
6524
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
6525
+ }
6526
+
6527
+ @keyframes bc-slash-palette-enter {
6528
+ from {
6529
+ opacity: 0;
6530
+ transform: translateY(-4px);
6531
+ }
6532
+ to {
6533
+ opacity: 1;
6534
+ transform: translateY(0);
6535
+ }
6536
+ }
6537
+
6538
+ .bc-slash-command-palette__item {
6539
+ display: flex;
6540
+ align-items: center;
6541
+ gap: var(--spacing-sm);
6542
+ padding: var(--spacing-sm);
6543
+ border-radius: var(--radius-sm);
6544
+ cursor: pointer;
6545
+ transition: background-color 0.12s ease;
6546
+ }
6547
+
6548
+ .bc-slash-command-palette__item:hover,
6549
+ .bc-slash-command-palette__item[aria-selected='true'] {
6550
+ background-color: var(--color-primary-50);
6551
+ }
6552
+
6553
+ .b-dark .bc-slash-command-palette__item:hover,
6554
+ .b-dark .bc-slash-command-palette__item[aria-selected='true'] {
6555
+ background-color: var(--color-primary-900);
6556
+ }
6557
+
6558
+ .bc-slash-command-palette__icon {
6559
+ flex-shrink: 0;
6560
+ display: flex;
6561
+ align-items: center;
6562
+ justify-content: center;
6563
+ width: 20px;
6564
+ height: 20px;
6565
+ }
6566
+
6567
+ .bc-slash-command-palette__content {
6568
+ flex: 1;
6569
+ min-width: 0;
6570
+ }
6571
+
6572
+ .bc-slash-command-palette__label {
6573
+ font-weight: 500;
6574
+ font-size: var(--font-size-sm);
6575
+ color: var(--color-neutral-900);
6576
+ margin-bottom: 2px;
6577
+ }
6578
+
6579
+ .b-dark .bc-slash-command-palette__label {
6580
+ color: var(--color-neutral-100);
6581
+ }
6582
+
6583
+ .bc-slash-command-palette__description {
6584
+ font-size: var(--font-size-xs);
6585
+ color: var(--color-neutral-500);
6586
+ overflow: hidden;
6587
+ text-overflow: ellipsis;
6588
+ white-space: nowrap;
6589
+ }
6590
+
6591
+ .bc-slash-command-palette__category {
6592
+ font-size: var(--font-size-xs);
6593
+ color: var(--color-neutral-500);
6594
+ padding: 2px 6px;
6595
+ border-radius: var(--radius-sm);
6596
+ background-color: var(--color-neutral-100);
6597
+ flex-shrink: 0;
6598
+ }
6599
+
6600
+ .b-dark .bc-slash-command-palette__category {
6601
+ background-color: var(--color-neutral-700);
6602
+ color: var(--color-neutral-400);
6603
+ }
6604
+
6605
+ .bc-slash-command-palette__empty {
6606
+ padding: var(--spacing-md);
6607
+ color: var(--color-neutral-500);
6608
+ text-align: center;
6609
+ font-size: var(--font-size-sm);
6610
+ }
6611
+
6612
+ /* Block Handle */
6613
+
6614
+ .bc-block-handle {
6615
+ z-index: 999;
6616
+ animation: bc-block-handle-enter 0.1s ease-out;
6617
+ }
6618
+
6619
+ @keyframes bc-block-handle-enter {
6620
+ from {
6621
+ opacity: 0;
6622
+ }
6623
+ to {
6624
+ opacity: 1;
6625
+ }
6626
+ }
6627
+
6628
+ .bc-block-handle__button {
6629
+ display: flex;
6630
+ align-items: center;
6631
+ justify-content: center;
6632
+ width: 24px;
6633
+ height: 24px;
6634
+ border: 1px solid var(--color-neutral-200);
6635
+ border-radius: var(--radius-sm);
6636
+ background-color: var(--color-white);
6637
+ color: var(--color-neutral-400);
6638
+ cursor: pointer;
6639
+ padding: 0;
6640
+ transition: all 0.12s ease;
6641
+ }
6642
+
6643
+ .bc-block-handle__button:hover {
6644
+ background-color: var(--color-neutral-100);
6645
+ color: var(--color-neutral-600);
6646
+ border-color: var(--color-neutral-300);
6647
+ }
6648
+
6649
+ .bc-block-handle__button:disabled {
6650
+ opacity: 0.4;
6651
+ cursor: not-allowed;
6652
+ }
6653
+
6654
+ .b-dark .bc-block-handle__button {
6655
+ background-color: var(--color-neutral-800);
6656
+ border-color: var(--color-neutral-700);
6657
+ color: var(--color-neutral-500);
6658
+ }
6659
+
6660
+ .b-dark .bc-block-handle__button:hover {
6661
+ background-color: var(--color-neutral-700);
6662
+ color: var(--color-neutral-300);
6663
+ border-color: var(--color-neutral-600);
6664
+ }
6665
+ }
6666
+
6667
+ @layer components {
6668
+ /* Lexical Table Component */
6669
+
6670
+ /* Table structure */
6671
+ .bc-lexical-table {
6672
+ border-collapse: collapse;
6673
+ border-spacing: 0;
6674
+ width: 100%;
6675
+ margin: 1rem 0;
6676
+ overflow: hidden;
6677
+ table-layout: fixed;
6678
+ }
6679
+
6680
+ .bc-lexical-table-row {
6681
+ border-bottom: 1px solid var(--color-neutral-200);
6682
+ }
6683
+
6684
+ .bc-lexical-table-cell,
6685
+ .bc-lexical-table-cell-header {
6686
+ border: 1px solid var(--color-neutral-200);
6687
+ padding: 0.5rem 0.75rem;
6688
+ position: relative;
6689
+ vertical-align: top;
6690
+ min-width: 75px;
6691
+ }
6692
+
6693
+ .bc-lexical-table-cell-header {
6694
+ background-color: var(--color-neutral-50);
6695
+ font-weight: 600;
6696
+ text-align: left;
6697
+ }
6698
+
6699
+ /* Selected cell highlight */
6700
+ .bc-lexical-table-cell--selected {
6701
+ background-color: var(--color-primary-50);
6702
+ outline: 2px solid var(--color-primary-500);
6703
+ outline-offset: -2px;
6704
+ }
6705
+
6706
+ /* Table context menu */
6707
+ .bc-table-context-menu {
6708
+ display: flex;
6709
+ flex-direction: column;
6710
+ }
6711
+
6712
+ .bc-table-menu-button {
6713
+ font-family: inherit;
6714
+ line-height: 1.5;
6715
+ white-space: nowrap;
6716
+ }
6717
+
6718
+ .bc-table-menu-button:hover:not(:disabled) {
6719
+ background-color: var(--color-neutral-100);
6720
+ }
6721
+
6722
+ .bc-table-menu-button:active:not(:disabled) {
6723
+ background-color: var(--color-neutral-200);
6724
+ }
6725
+
6726
+ .bc-table-menu-button:disabled {
6727
+ opacity: 0.5;
6728
+ cursor: not-allowed;
6729
+ }
6730
+
6731
+ .bc-table-menu-separator {
6732
+ /* Separator styling defined inline in component */
6733
+ }
6734
+
6735
+ /* Dark mode styles */
6736
+ .b-dark .bc-lexical-table-cell,
6737
+ .b-dark .bc-lexical-table-cell-header {
6738
+ border-color: var(--color-neutral-700);
6739
+ }
6740
+
6741
+ .b-dark .bc-lexical-table-row {
6742
+ border-bottom-color: var(--color-neutral-700);
6743
+ }
6744
+
6745
+ .b-dark .bc-lexical-table-cell-header {
6746
+ background-color: var(--color-neutral-800);
6747
+ }
6748
+
6749
+ .b-dark .bc-lexical-table-cell--selected {
6750
+ background-color: var(--color-primary-900);
6751
+ outline-color: var(--color-primary-400);
6752
+ }
6753
+
6754
+ .b-dark .bc-table-context-menu {
6755
+ background-color: var(--color-neutral-800);
6756
+ border-color: var(--color-neutral-700);
6757
+ }
6758
+
6759
+ .b-dark .bc-table-menu-button {
6760
+ color: var(--color-neutral-100);
6761
+ }
6762
+
6763
+ .b-dark .bc-table-menu-button:hover:not(:disabled) {
6764
+ background-color: var(--color-neutral-700);
6765
+ }
6766
+
6767
+ .b-dark .bc-table-menu-button:active:not(:disabled) {
6768
+ background-color: var(--color-neutral-600);
6769
+ }
6770
+
6771
+ .b-dark .bc-table-menu-separator {
6772
+ background-color: var(--color-neutral-700);
6773
+ }
6774
+
6775
+ /* Accessibility */
6776
+ @media (prefers-reduced-motion: reduce) {
6777
+ .bc-table-menu-button {
6778
+ transition: none;
6779
+ }
6780
+ }
6781
+
6782
+ @media (prefers-contrast: high) {
6783
+ .bc-lexical-table-cell,
6784
+ .bc-lexical-table-cell-header {
6785
+ border-width: 2px;
6786
+ }
6787
+
6788
+ .bc-lexical-table-cell--selected {
6789
+ outline-width: 3px;
6790
+ }
6791
+ }
6792
+ }
6793
+
6794
+ @layer components {
6795
+ /* Lexical Code Block Component */
6796
+
6797
+ /* Code block structure */
6798
+ .bc-lexical-code-block {
6799
+ position: relative;
6800
+ margin: 1rem 0;
6801
+ padding: 1rem;
6802
+ background-color: var(--color-neutral-50);
6803
+ border: 1px solid var(--color-neutral-200);
6804
+ border-radius: var(--radius-md);
6805
+ overflow-x: auto;
6806
+ font-family:
6807
+ 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Courier New', monospace;
6808
+ font-size: 0.875rem;
6809
+ line-height: 1.6;
6810
+ }
6811
+
6812
+ /* Language selector */
6813
+ .bc-code-language-selector {
6814
+ /* Positioning handled inline */
6815
+ }
6816
+
6817
+ .bc-code-language-button:hover:not(:disabled) {
6818
+ background-color: var(--color-neutral-200);
6819
+ border-color: var(--color-neutral-400);
6820
+ }
6821
+
6822
+ .bc-code-language-button:disabled {
6823
+ opacity: 0.5;
6824
+ cursor: not-allowed;
6825
+ }
6826
+
6827
+ .bc-code-language-dropdown {
6828
+ /* Dropdown styling handled inline */
6829
+ }
6830
+
6831
+ .bc-code-language-option:hover {
6832
+ background-color: var(--color-neutral-100);
6833
+ }
6834
+
6835
+ .bc-code-language-option:active {
6836
+ background-color: var(--color-neutral-200);
6837
+ }
6838
+
6839
+ /* Syntax highlighting token colors (light theme) */
6840
+ .bc-lexical-code-block .token.comment,
6841
+ .bc-lexical-code-block .token.prolog,
6842
+ .bc-lexical-code-block .token.doctype,
6843
+ .bc-lexical-code-block .token.cdata {
6844
+ color: #6a737d;
6845
+ font-style: italic;
6846
+ }
6847
+
6848
+ .bc-lexical-code-block .token.punctuation {
6849
+ color: #24292e;
6850
+ }
6851
+
6852
+ .bc-lexical-code-block .token.property,
6853
+ .bc-lexical-code-block .token.tag,
6854
+ .bc-lexical-code-block .token.boolean,
6855
+ .bc-lexical-code-block .token.number,
6856
+ .bc-lexical-code-block .token.constant,
6857
+ .bc-lexical-code-block .token.symbol,
6858
+ .bc-lexical-code-block .token.deleted {
6859
+ color: #005cc5;
6860
+ }
6861
+
6862
+ .bc-lexical-code-block .token.selector,
6863
+ .bc-lexical-code-block .token.attr-name,
6864
+ .bc-lexical-code-block .token.string,
6865
+ .bc-lexical-code-block .token.char,
6866
+ .bc-lexical-code-block .token.builtin,
6867
+ .bc-lexical-code-block .token.inserted {
6868
+ color: #032f62;
6869
+ }
6870
+
6871
+ .bc-lexical-code-block .token.operator,
6872
+ .bc-lexical-code-block .token.entity,
6873
+ .bc-lexical-code-block .token.url,
6874
+ .bc-lexical-code-block .language-css .token.string,
6875
+ .bc-lexical-code-block .style .token.string {
6876
+ color: #d73a49;
6877
+ }
6878
+
6879
+ .bc-lexical-code-block .token.atrule,
6880
+ .bc-lexical-code-block .token.attr-value,
6881
+ .bc-lexical-code-block .token.keyword {
6882
+ color: #d73a49;
6883
+ }
6884
+
6885
+ .bc-lexical-code-block .token.function,
6886
+ .bc-lexical-code-block .token.class-name {
6887
+ color: #6f42c1;
6888
+ }
6889
+
6890
+ .bc-lexical-code-block .token.regex,
6891
+ .bc-lexical-code-block .token.important,
6892
+ .bc-lexical-code-block .token.variable {
6893
+ color: #e36209;
6894
+ }
6895
+
6896
+ /* Line numbers (optional) */
6897
+ .bc-lexical-code-block--with-line-numbers {
6898
+ padding-left: 3.5rem;
6899
+ }
6900
+
6901
+ .bc-lexical-code-block .line-number {
6902
+ position: absolute;
6903
+ left: 0;
6904
+ width: 3rem;
6905
+ text-align: right;
6906
+ color: var(--color-neutral-400);
6907
+ user-select: none;
6908
+ padding-right: 1rem;
6909
+ }
6910
+
6911
+ /* Dark mode styles */
6912
+ .b-dark .bc-lexical-code-block {
6913
+ background-color: var(--color-neutral-900);
6914
+ border-color: var(--color-neutral-700);
6915
+ color: var(--color-neutral-100);
6916
+ }
6917
+
6918
+ .b-dark .bc-code-language-button {
6919
+ background-color: var(--color-neutral-800);
6920
+ border-color: var(--color-neutral-600);
6921
+ color: var(--color-neutral-200);
6922
+ }
6923
+
6924
+ .b-dark .bc-code-language-button:hover:not(:disabled) {
6925
+ background-color: var(--color-neutral-700);
6926
+ border-color: var(--color-neutral-500);
6927
+ }
6928
+
6929
+ .b-dark .bc-code-language-dropdown {
6930
+ background-color: var(--color-neutral-800);
6931
+ border-color: var(--color-neutral-700);
6932
+ }
6933
+
6934
+ .b-dark .bc-code-language-option {
6935
+ color: var(--color-neutral-100);
6936
+ }
6937
+
6938
+ .b-dark .bc-code-language-option:hover {
6939
+ background-color: var(--color-neutral-700);
6940
+ }
6941
+
6942
+ .b-dark .bc-code-language-option:active {
6943
+ background-color: var(--color-neutral-600);
6944
+ }
6945
+
6946
+ /* Syntax highlighting token colors (dark theme) */
6947
+ .b-dark .bc-lexical-code-block .token.comment,
6948
+ .b-dark .bc-lexical-code-block .token.prolog,
6949
+ .b-dark .bc-lexical-code-block .token.doctype,
6950
+ .b-dark .bc-lexical-code-block .token.cdata {
6951
+ color: #8b949e;
6952
+ }
6953
+
6954
+ .b-dark .bc-lexical-code-block .token.punctuation {
6955
+ color: #c9d1d9;
6956
+ }
6957
+
6958
+ .b-dark .bc-lexical-code-block .token.property,
6959
+ .b-dark .bc-lexical-code-block .token.tag,
6960
+ .b-dark .bc-lexical-code-block .token.boolean,
6961
+ .b-dark .bc-lexical-code-block .token.number,
6962
+ .b-dark .bc-lexical-code-block .token.constant,
6963
+ .b-dark .bc-lexical-code-block .token.symbol,
6964
+ .b-dark .bc-lexical-code-block .token.deleted {
6965
+ color: #79c0ff;
6966
+ }
6967
+
6968
+ .b-dark .bc-lexical-code-block .token.selector,
6969
+ .b-dark .bc-lexical-code-block .token.attr-name,
6970
+ .b-dark .bc-lexical-code-block .token.string,
6971
+ .b-dark .bc-lexical-code-block .token.char,
6972
+ .b-dark .bc-lexical-code-block .token.builtin,
6973
+ .b-dark .bc-lexical-code-block .token.inserted {
6974
+ color: #a5d6ff;
6975
+ }
6976
+
6977
+ .b-dark .bc-lexical-code-block .token.operator,
6978
+ .b-dark .bc-lexical-code-block .token.entity,
6979
+ .b-dark .bc-lexical-code-block .token.url,
6980
+ .b-dark .bc-lexical-code-block .language-css .token.string,
6981
+ .b-dark .bc-lexical-code-block .style .token.string {
6982
+ color: #ff7b72;
6983
+ }
6984
+
6985
+ .b-dark .bc-lexical-code-block .token.atrule,
6986
+ .b-dark .bc-lexical-code-block .token.attr-value,
6987
+ .b-dark .bc-lexical-code-block .token.keyword {
6988
+ color: #ff7b72;
6989
+ }
6990
+
6991
+ .b-dark .bc-lexical-code-block .token.function,
6992
+ .b-dark .bc-lexical-code-block .token.class-name {
6993
+ color: #d2a8ff;
6994
+ }
6995
+
6996
+ .b-dark .bc-lexical-code-block .token.regex,
6997
+ .b-dark .bc-lexical-code-block .token.important,
6998
+ .b-dark .bc-lexical-code-block .token.variable {
6999
+ color: #ffa657;
7000
+ }
7001
+
7002
+ .b-dark .bc-lexical-code-block .line-number {
7003
+ color: var(--color-neutral-600);
7004
+ }
7005
+
7006
+ /* Accessibility */
7007
+ @media (prefers-reduced-motion: reduce) {
7008
+ .bc-code-language-button,
7009
+ .bc-code-language-option {
7010
+ transition: none;
7011
+ }
7012
+ }
7013
+
7014
+ @media (prefers-contrast: high) {
7015
+ .bc-lexical-code-block {
7016
+ border-width: 2px;
7017
+ }
7018
+ }
7019
+ }
7020
+
5674
7021
  /* Link Component */
5675
7022
  .bc-link {
5676
7023
  --link-color: inherit;