@mono-lit/helper 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/dist/{breakpoints-CAbhDUht.js → breakpoints-DllybT82.js} +7 -5
  2. package/dist/checkbox.css_raw-AYtSbUtY.js +5 -0
  3. package/dist/{chip-limits-BMoO31JM.js → chip-limits-CFABydIL.js} +5 -3
  4. package/dist/{chip-strip-Cw3gyz0q.js → chip-strip-bNfLn52Z.js} +5 -3
  5. package/dist/chip.css_raw-ChfRSHLO.js +5 -0
  6. package/dist/{color-DHYrfXsX.js → color-CEYYtRX-.js} +8 -7
  7. package/dist/{css-class-BRKRzHx-.js → css-class-B6Tc_MAx.js} +2 -1
  8. package/dist/{css-size-DhHSVZJK.js → css-size-DWAPgQdT.js} +2 -1
  9. package/dist/{data-source-controller-Dbb4fd8I.js → data-source-controller-Cf_sMxEh.js} +4 -2
  10. package/dist/{data-source-controller-B_rgHCjw.js → data-source-controller-Dx6IQ2CN.js} +4 -2
  11. package/dist/{data-source-options-CP-X62Pa.js → data-source-options-Bk-UoaZV.js} +15 -10
  12. package/dist/{data-source-options-Jqj7LU3Z.js → data-source-options-QjuI73g8.js} +17 -12
  13. package/dist/{data-source-read-B4DGp6UQ.js → data-source-read-Cuqw3LcP.js} +7 -4
  14. package/dist/{data-source-read-DL88aH8t.js → data-source-read-FxqzQkk2.js} +8 -5
  15. package/dist/{decorate-DEXtNagw.js → decorate-DbYFpi8R.js} +7 -5
  16. package/dist/{element-props-CLB6yvbm.js → element-props-xvw0EB7H.js} +4 -3
  17. package/dist/{esm-Ptok4SQZ.js → esm-D0We7ndD.js} +48 -44
  18. package/dist/{excel-DopRbEMK.js → excel-BXzr3uI1.js} +192 -16
  19. package/dist/{excel-CY6zGkcx.js → excel-DtRpxmxs.js} +27 -16
  20. package/dist/{export-BiGVyxt6.js → export-B91P6J1y.js} +104 -18
  21. package/dist/export.js +103 -18
  22. package/dist/{field-icons-DELrSdqJ.js → field-icons-FmyBWa0g.js} +3 -1
  23. package/dist/{field-path-C92eGLg3.js → field-path-BabiMrrA.js} +3 -2
  24. package/dist/{filter-builder-CE4zE0V5.js → filter-builder-B6Y2mmbM.js} +7 -4
  25. package/dist/{filter-builder-Bke3qOgJ.js → filter-builder-C0T3pMx2.js} +7 -4
  26. package/dist/{filter-eval-DIfU2EAn.js → filter-eval-ChDSaAUH.js} +7 -5
  27. package/dist/{filter-odata-C1vSGZaY.js → filter-odata-Bi27XUpQ.js} +9 -6
  28. package/dist/{form-control-core-B8d7k6vk.js → form-control-core-CIdMLXMo.js} +9 -6
  29. package/dist/{form-control-core-eeRr0zLU.js → form-control-core-CRZPZ1ru.js} +9 -6
  30. package/dist/hydration-flush-DHrl4_KK.js +1014 -0
  31. package/dist/{icon-CJkTlmTb.js → icon-BM9N-jOt.js} +5 -2
  32. package/dist/{icon-dVhYJUIH.js → icon-ClxnYhBG.js} +4 -2
  33. package/dist/{import-BgJdkwBI.js → import-Dc4eXC02.js} +22 -16
  34. package/dist/import.js +22 -16
  35. package/dist/index.js +17 -16
  36. package/dist/{index.node-BIqEGehH.js → index.node-dvrNviMx.js} +26 -20
  37. package/dist/index.node.js +17 -16
  38. package/dist/input.css_raw-CGESifay.js +5 -0
  39. package/dist/{layout-var-CZnzMC0s.js → layout-var-BSBKY49k.js} +3 -2
  40. package/dist/{light-slots-BVJwyg_2.js → light-slots-4ZCjOcBg.js} +6 -4
  41. package/dist/{light-slots-DW1WgfgT.js → light-slots-DdDdZ6zs.js} +6 -4
  42. package/dist/{markdown-DfqrfOJN.js → markdown-uGlE_OfJ.js} +414 -369
  43. package/dist/mono-button-CeDB9khW.js +878 -0
  44. package/dist/mono-button.shadow-D9NdMsmH.js +790 -0
  45. package/dist/{mono-data-chart-CEv29_NS.js → mono-data-chart-ChkelNT7.js} +15 -12
  46. package/dist/{mono-data-dropdown-Wnoke6zO.js → mono-data-dropdown-DxpUUk2y.js} +5 -3
  47. package/dist/{mono-data-grid-YjR3n9Ar.js → mono-data-grid-8jmeIXUU.js} +56 -38
  48. package/dist/{mono-data-grid-CjkEqxgE.js → mono-data-grid-BHlo1IgR.js} +56 -38
  49. package/dist/{mono-element-B0kP_96P.js → mono-element-C7vCschg.js} +7 -4
  50. package/dist/{mono-event-Bi1qP9uN.js → mono-event-BPku9HpS.js} +4 -3
  51. package/dist/{mono-form-controller-5PfsU4qa.js → mono-form-controller-IYn0MuUQ.js} +7 -4
  52. package/dist/{mono-modal-controller-BMO3n3rP.js → mono-modal-controller-ClObbHUs.js} +9 -7
  53. package/dist/{mono-ui-CPV7rrdo.js → mono-ui-BwUc0L6B.js} +22 -20
  54. package/dist/{normalize-error-Gcgmgh5i.js → normalize-error-D93O4q8g.js} +26 -20
  55. package/dist/{notifier-CE4yxMUQ.js → notifier-BIrqUzRh.js} +11 -1
  56. package/dist/nuxt.js +50 -17
  57. package/dist/{popup-portal-BziRX1yG.js → popup-portal-HWhkd7oy.js} +6 -4
  58. package/dist/{popup-stack-CEEMib__.js → popup-stack-De05Y-mJ.js} +13 -10
  59. package/dist/{rate-limit-BBa2PO79.js → rate-limit-e9Jlpl5l.js} +12 -9
  60. package/dist/{reactive-Di3mTMnV.js → reactive-DFCdZbH9.js} +30 -22
  61. package/dist/{reactive-D3EERqgO.js → reactive-Dtd-esHO.js} +2 -1
  62. package/dist/search.js +5 -4
  63. package/dist/src/components/accordion/accordion-core.d.ts +42 -40
  64. package/dist/src/components/accordion/accordion-types.d.ts +50 -48
  65. package/dist/src/components/accordion/index.d.ts +3 -2
  66. package/dist/src/components/accordion/index.shadow.d.ts +4 -4
  67. package/dist/src/components/accordion/mono-accordion.d.ts +44 -40
  68. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +42 -38
  69. package/dist/src/components/alert/alert-core.d.ts +30 -28
  70. package/dist/src/components/alert/alert-types.d.ts +36 -34
  71. package/dist/src/components/alert/index.d.ts +3 -2
  72. package/dist/src/components/alert/index.shadow.d.ts +4 -4
  73. package/dist/src/components/alert/mono-alert.d.ts +30 -26
  74. package/dist/src/components/alert/mono-alert.shadow.d.ts +24 -20
  75. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +42 -40
  76. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +31 -29
  77. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +18 -16
  78. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +89 -87
  79. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +18 -15
  80. package/dist/src/components/breadcrumb/index.d.ts +6 -5
  81. package/dist/src/components/breadcrumb/index.shadow.d.ts +7 -7
  82. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +18 -14
  83. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +33 -29
  84. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +24 -20
  85. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +55 -51
  86. package/dist/src/components/button/button-core.d.ts +73 -71
  87. package/dist/src/components/button/button-dropdown-core.d.ts +55 -53
  88. package/dist/src/components/button/button-dropdown-types.d.ts +98 -96
  89. package/dist/src/components/button/button-types.d.ts +157 -155
  90. package/dist/src/components/button/button-utils.d.ts +7 -5
  91. package/dist/src/components/button/index.button-dropdown.d.ts +5 -3
  92. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +5 -3
  93. package/dist/src/components/button/index.d.ts +4 -7
  94. package/dist/src/components/button/index.shadow.d.ts +5 -4
  95. package/dist/src/components/button/mono-button-dropdown.d.ts +24 -19
  96. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +34 -29
  97. package/dist/src/components/button/mono-button.d.ts +105 -101
  98. package/dist/src/components/button/mono-button.shadow.d.ts +42 -38
  99. package/dist/src/components/card/card-core.d.ts +59 -57
  100. package/dist/src/components/card/card-types.d.ts +91 -89
  101. package/dist/src/components/card/card-utils.d.ts +11 -9
  102. package/dist/src/components/card/index.d.ts +4 -3
  103. package/dist/src/components/card/index.shadow.d.ts +5 -5
  104. package/dist/src/components/card/mono-card.d.ts +36 -32
  105. package/dist/src/components/card/mono-card.shadow.d.ts +32 -28
  106. package/dist/src/components/chart/chart-core.d.ts +30 -28
  107. package/dist/src/components/chart/chart-odata.d.ts +17 -16
  108. package/dist/src/components/chart/chart-types.d.ts +269 -267
  109. package/dist/src/components/chart/index.d.ts +7 -7
  110. package/dist/src/components/chart/index.shadow.d.ts +7 -6
  111. package/dist/src/components/chart/mono-chart-presets.d.ts +33 -29
  112. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +33 -29
  113. package/dist/src/components/chart/mono-chart.d.ts +13 -9
  114. package/dist/src/components/chart/mono-chart.shadow.d.ts +13 -9
  115. package/dist/src/components/chart/mono-data-chart.d.ts +4 -26
  116. package/dist/src/components/checkbox/checkbox-core.d.ts +39 -37
  117. package/dist/src/components/checkbox/checkbox-types.d.ts +59 -57
  118. package/dist/src/components/checkbox/checkbox-utils.d.ts +13 -11
  119. package/dist/src/components/checkbox/index.d.ts +4 -3
  120. package/dist/src/components/checkbox/index.shadow.d.ts +5 -4
  121. package/dist/src/components/checkbox/mono-checkbox.d.ts +21 -17
  122. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +31 -27
  123. package/dist/src/components/chip/chip-core.d.ts +42 -40
  124. package/dist/src/components/chip/chip-types.d.ts +104 -102
  125. package/dist/src/components/chip/chip-utils.d.ts +20 -18
  126. package/dist/src/components/chip/index.d.ts +5 -7
  127. package/dist/src/components/chip/index.shadow.d.ts +6 -5
  128. package/dist/src/components/chip/mono-chip.d.ts +31 -27
  129. package/dist/src/components/chip/mono-chip.shadow.d.ts +19 -15
  130. package/dist/src/components/chip/mono-status-dot.d.ts +19 -17
  131. package/dist/src/components/date/date-core.d.ts +64 -62
  132. package/dist/src/components/date/date-types.d.ts +143 -141
  133. package/dist/src/components/date/index.d.ts +3 -2
  134. package/dist/src/components/date/index.shadow.d.ts +4 -3
  135. package/dist/src/components/date/mono-date.d.ts +12 -8
  136. package/dist/src/components/date/mono-date.shadow.d.ts +21 -17
  137. package/dist/src/components/drawer/drawer-core.d.ts +75 -73
  138. package/dist/src/components/drawer/drawer-types.d.ts +109 -107
  139. package/dist/src/components/drawer/index.d.ts +3 -2
  140. package/dist/src/components/drawer/index.shadow.d.ts +4 -3
  141. package/dist/src/components/drawer/mono-drawer.d.ts +32 -28
  142. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +34 -31
  143. package/dist/src/components/dropdown/dropdown-core.d.ts +31 -29
  144. package/dist/src/components/dropdown/dropdown-types.d.ts +62 -60
  145. package/dist/src/components/dropdown/index.d.ts +3 -2
  146. package/dist/src/components/dropdown/index.shadow.d.ts +4 -3
  147. package/dist/src/components/dropdown/mono-dropdown.d.ts +23 -19
  148. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +19 -15
  149. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +53 -51
  150. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +218 -216
  151. package/dist/src/components/dropdown-table/index.d.ts +5 -4
  152. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -5
  153. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +119 -129
  154. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +20 -16
  155. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +15 -11
  156. package/dist/src/components/file-upload/file-upload-core.d.ts +44 -42
  157. package/dist/src/components/file-upload/file-upload-types.d.ts +123 -121
  158. package/dist/src/components/file-upload/file-upload-utils.d.ts +7 -4
  159. package/dist/src/components/file-upload/index.d.ts +4 -3
  160. package/dist/src/components/file-upload/index.shadow.d.ts +5 -4
  161. package/dist/src/components/file-upload/mono-file-upload.d.ts +20 -16
  162. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +34 -30
  163. package/dist/src/components/filter/filter-builder-core.d.ts +17 -15
  164. package/dist/src/components/filter/filter-builder.d.ts +4 -22
  165. package/dist/src/components/filter/filter-odata.d.ts +3 -1
  166. package/dist/src/components/filter/filter-operators.d.ts +3 -1
  167. package/dist/src/components/filter/filter-types.d.ts +172 -170
  168. package/dist/src/components/filter/index.d.ts +6 -5
  169. package/dist/src/components/filter/index.shadow.d.ts +7 -6
  170. package/dist/src/components/filter/mono-filter-builder.d.ts +13 -10
  171. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +10 -7
  172. package/dist/src/components/form/form-control-core.d.ts +14 -12
  173. package/dist/src/components/form/form-rules.d.ts +7 -5
  174. package/dist/src/components/form/form-types.d.ts +214 -214
  175. package/dist/src/components/form/index.d.ts +5 -5
  176. package/dist/src/components/form/mono-form-controller.d.ts +4 -15
  177. package/dist/src/components/input/index.d.ts +5 -5
  178. package/dist/src/components/input/index.shadow.d.ts +6 -7
  179. package/dist/src/components/input/input-core.d.ts +73 -71
  180. package/dist/src/components/input/input-format.d.ts +22 -20
  181. package/dist/src/components/input/input-types.d.ts +167 -165
  182. package/dist/src/components/input/input-utils.d.ts +7 -5
  183. package/dist/src/components/input/mono-input.d.ts +35 -31
  184. package/dist/src/components/input/mono-input.shadow.d.ts +17 -13
  185. package/dist/src/components/menu/index.d.ts +7 -5
  186. package/dist/src/components/menu/index.shadow.d.ts +7 -6
  187. package/dist/src/components/menu/menu-core.d.ts +47 -45
  188. package/dist/src/components/menu/menu-render.d.ts +42 -40
  189. package/dist/src/components/menu/menu-types.d.ts +132 -130
  190. package/dist/src/components/menu/menu-utils.d.ts +16 -13
  191. package/dist/src/components/menu/mono-menu-list.d.ts +116 -114
  192. package/dist/src/components/menu/mono-menu.d.ts +30 -26
  193. package/dist/src/components/menu/mono-menu.shadow.d.ts +22 -18
  194. package/dist/src/components/modal/index.d.ts +5 -3
  195. package/dist/src/components/modal/index.shadow.d.ts +6 -4
  196. package/dist/src/components/modal/modal-core.d.ts +81 -79
  197. package/dist/src/components/modal/modal-types.d.ts +223 -221
  198. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -3
  199. package/dist/src/components/modal/mono-modal.d.ts +32 -28
  200. package/dist/src/components/modal/mono-modal.shadow.d.ts +38 -35
  201. package/dist/src/components/nav/index.d.ts +4 -3
  202. package/dist/src/components/nav/index.shadow.d.ts +5 -5
  203. package/dist/src/components/nav/mono-nav.d.ts +28 -24
  204. package/dist/src/components/nav/mono-nav.shadow.d.ts +10 -7
  205. package/dist/src/components/nav/nav-core.d.ts +16 -14
  206. package/dist/src/components/nav/nav-types.d.ts +23 -22
  207. package/dist/src/components/nav/nav-utils.d.ts +10 -8
  208. package/dist/src/components/radio/index.d.ts +4 -3
  209. package/dist/src/components/radio/index.shadow.d.ts +5 -4
  210. package/dist/src/components/radio/mono-radio.d.ts +19 -15
  211. package/dist/src/components/radio/mono-radio.shadow.d.ts +22 -18
  212. package/dist/src/components/radio/radio-core.d.ts +31 -29
  213. package/dist/src/components/radio/radio-types.d.ts +48 -46
  214. package/dist/src/components/radio/radio-utils.d.ts +5 -3
  215. package/dist/src/components/rich-text-editor/index.d.ts +5 -4
  216. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -5
  217. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +19 -15
  218. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +22 -19
  219. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +61 -59
  220. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +2 -0
  221. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +5 -3
  222. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +179 -177
  223. package/dist/src/components/select/index.d.ts +4 -3
  224. package/dist/src/components/select/index.shadow.d.ts +5 -4
  225. package/dist/src/components/select/mono-select.d.ts +58 -54
  226. package/dist/src/components/select/mono-select.shadow.d.ts +30 -27
  227. package/dist/src/components/select/select-core.d.ts +82 -80
  228. package/dist/src/components/select/select-types.d.ts +228 -227
  229. package/dist/src/components/select/select-utils.d.ts +7 -5
  230. package/dist/src/components/sidebar/index.d.ts +4 -3
  231. package/dist/src/components/sidebar/index.shadow.d.ts +5 -5
  232. package/dist/src/components/sidebar/mono-sidebar.d.ts +22 -18
  233. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +11 -8
  234. package/dist/src/components/sidebar/sidebar-core.d.ts +33 -31
  235. package/dist/src/components/sidebar/sidebar-types.d.ts +77 -75
  236. package/dist/src/components/sidebar/sidebar-utils.d.ts +28 -26
  237. package/dist/src/components/switch/index.d.ts +4 -3
  238. package/dist/src/components/switch/index.shadow.d.ts +5 -4
  239. package/dist/src/components/switch/mono-switch.d.ts +19 -15
  240. package/dist/src/components/switch/mono-switch.shadow.d.ts +23 -19
  241. package/dist/src/components/switch/switch-core.d.ts +35 -33
  242. package/dist/src/components/switch/switch-types.d.ts +55 -53
  243. package/dist/src/components/switch/switch-utils.d.ts +5 -3
  244. package/dist/src/components/table/array-source.d.ts +31 -29
  245. package/dist/src/components/table/date-filter-tree.d.ts +25 -23
  246. package/dist/src/components/table/grouping.d.ts +22 -20
  247. package/dist/src/components/table/index.d.ts +28 -32
  248. package/dist/src/components/table/index.shadow.d.ts +34 -46
  249. package/dist/src/components/table/mono-data-grid.d.ts +1447 -1456
  250. package/dist/src/components/table/mono-table-checkbox-core.d.ts +34 -32
  251. package/dist/src/components/table/mono-table-checkbox.d.ts +12 -8
  252. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +16 -12
  253. package/dist/src/components/table/mono-table-detail-core.d.ts +29 -27
  254. package/dist/src/components/table/mono-table-detail.d.ts +12 -8
  255. package/dist/src/components/table/mono-table-detail.shadow.d.ts +13 -9
  256. package/dist/src/components/table/mono-table-empty-core.d.ts +24 -22
  257. package/dist/src/components/table/mono-table-empty.d.ts +17 -13
  258. package/dist/src/components/table/mono-table-empty.shadow.d.ts +22 -18
  259. package/dist/src/components/table/mono-table-error-core.d.ts +24 -22
  260. package/dist/src/components/table/mono-table-error.d.ts +12 -8
  261. package/dist/src/components/table/mono-table-error.shadow.d.ts +15 -11
  262. package/dist/src/components/table/mono-table-info-core.d.ts +6 -4
  263. package/dist/src/components/table/mono-table-info.d.ts +12 -8
  264. package/dist/src/components/table/mono-table-info.shadow.d.ts +9 -5
  265. package/dist/src/components/table/mono-table-loading-core.d.ts +7 -5
  266. package/dist/src/components/table/mono-table-loading.d.ts +12 -8
  267. package/dist/src/components/table/mono-table-loading.shadow.d.ts +9 -5
  268. package/dist/src/components/table/mono-table-page-size-core.d.ts +7 -5
  269. package/dist/src/components/table/mono-table-page-size.d.ts +12 -8
  270. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +9 -5
  271. package/dist/src/components/table/mono-table-paging-core.d.ts +16 -14
  272. package/dist/src/components/table/mono-table-paging-group-core.d.ts +10 -8
  273. package/dist/src/components/table/mono-table-paging-group.d.ts +12 -8
  274. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +9 -5
  275. package/dist/src/components/table/mono-table-paging.d.ts +12 -8
  276. package/dist/src/components/table/mono-table-paging.shadow.d.ts +9 -5
  277. package/dist/src/components/table/mono-table-search-core.d.ts +51 -49
  278. package/dist/src/components/table/mono-table-search.d.ts +25 -22
  279. package/dist/src/components/table/mono-table-search.shadow.d.ts +12 -9
  280. package/dist/src/components/table/mono-table-sort-core.d.ts +16 -14
  281. package/dist/src/components/table/mono-table-sort.d.ts +21 -18
  282. package/dist/src/components/table/mono-table-sort.shadow.d.ts +11 -8
  283. package/dist/src/components/table/mono-table-summary-core.d.ts +9 -7
  284. package/dist/src/components/table/mono-table-summary.d.ts +12 -8
  285. package/dist/src/components/table/mono-table-summary.shadow.d.ts +9 -5
  286. package/dist/src/components/table/mono-table-th-core.d.ts +23 -21
  287. package/dist/src/components/table/mono-table-th.d.ts +21 -18
  288. package/dist/src/components/table/mono-table-th.shadow.d.ts +11 -8
  289. package/dist/src/components/table/store-group-source.d.ts +14 -12
  290. package/dist/src/components/table/table-controller-core.d.ts +17 -15
  291. package/dist/src/components/table/table-filter-icons.d.ts +3 -1
  292. package/dist/src/components/table/table-menu-core.d.ts +40 -38
  293. package/dist/src/components/table/table-overlay.d.ts +43 -41
  294. package/dist/src/components/table/table-sort-icons.d.ts +4 -2
  295. package/dist/src/components/table/table-sort-utils.d.ts +3 -1
  296. package/dist/src/components/table/table-types.d.ts +391 -400
  297. package/dist/src/components/tabs/index.d.ts +3 -2
  298. package/dist/src/components/tabs/index.shadow.d.ts +4 -3
  299. package/dist/src/components/tabs/mono-tabs.d.ts +21 -17
  300. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +21 -17
  301. package/dist/src/components/tabs/tabs-core.d.ts +36 -34
  302. package/dist/src/components/tabs/tabs-types.d.ts +48 -46
  303. package/dist/src/components/tag-input/index.d.ts +5 -3
  304. package/dist/src/components/tag-input/index.shadow.d.ts +6 -4
  305. package/dist/src/components/tag-input/mono-tag-input.d.ts +56 -52
  306. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +41 -38
  307. package/dist/src/components/tag-input/tag-input-core.d.ts +95 -93
  308. package/dist/src/components/tag-input/tag-input-types.d.ts +343 -346
  309. package/dist/src/components/tag-input/tag-input-utils.d.ts +7 -5
  310. package/dist/src/components/textarea/index.d.ts +4 -3
  311. package/dist/src/components/textarea/index.shadow.d.ts +5 -4
  312. package/dist/src/components/textarea/mono-textarea.d.ts +19 -15
  313. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +19 -16
  314. package/dist/src/components/textarea/textarea-core.d.ts +48 -46
  315. package/dist/src/components/textarea/textarea-types.d.ts +120 -118
  316. package/dist/src/components/textarea/textarea-utils.d.ts +7 -5
  317. package/dist/src/components/tooltip/control-tooltip.d.ts +3 -1
  318. package/dist/src/components/tooltip/index.d.ts +6 -5
  319. package/dist/src/components/tooltip/tooltip-config.d.ts +17 -15
  320. package/dist/src/components/tooltip/tooltip-declarative.d.ts +3 -1
  321. package/dist/src/components/tooltip/tooltip-loader.d.ts +2 -0
  322. package/dist/src/components/tooltip/tooltip-types.d.ts +74 -72
  323. package/dist/src/composables/breakpoints.d.ts +9 -7
  324. package/dist/src/composables/chip-limits.d.ts +12 -10
  325. package/dist/src/composables/chip-strip.d.ts +91 -89
  326. package/dist/src/composables/color.d.ts +6 -4
  327. package/dist/src/composables/css-class.d.ts +4 -2
  328. package/dist/src/composables/css-size.d.ts +9 -7
  329. package/dist/src/composables/data-source-controller.d.ts +90 -88
  330. package/dist/src/composables/element-props.d.ts +3 -3
  331. package/dist/src/composables/field-icons.d.ts +3 -1
  332. package/dist/src/composables/hybird-prop.d.ts +10 -8
  333. package/dist/src/composables/hydration-flush.d.ts +16 -14
  334. package/dist/src/composables/icon.d.ts +3 -1
  335. package/dist/src/composables/layout-var.d.ts +2 -0
  336. package/dist/src/composables/light-slots.d.ts +34 -32
  337. package/dist/src/composables/mdi-glyphs.d.ts +2 -0
  338. package/dist/src/composables/mono-element.d.ts +3 -1
  339. package/dist/src/composables/mono-event.d.ts +15 -13
  340. package/dist/src/composables/mono-pending.d.ts +4 -2
  341. package/dist/src/composables/mono-skeleton.d.ts +100 -98
  342. package/dist/src/composables/mono-ui.d.ts +17 -18
  343. package/dist/src/composables/notifier.d.ts +20 -18
  344. package/dist/src/composables/popup-portal.d.ts +177 -175
  345. package/dist/src/composables/popup-stack.d.ts +36 -34
  346. package/dist/src/composables/rate-limit.d.ts +33 -31
  347. package/dist/src/composables/reactive.d.ts +3 -1
  348. package/dist/src/composables/shadow-css.d.ts +17 -15
  349. package/dist/src/composables/visibility.d.ts +6 -4
  350. package/dist/src/data/theme/index.d.ts +9 -7
  351. package/dist/src/data/theme/presets.d.ts +64 -62
  352. package/dist/src/entries/index.d.ts +36 -1
  353. package/dist/src/entries/index.node.d.ts +34 -41
  354. package/dist/src/entries/search.d.ts +2 -2
  355. package/dist/src/export/detail.d.ts +14 -12
  356. package/dist/src/export/download.d.ts +2 -0
  357. package/dist/src/export/excel/index.d.ts +13 -11
  358. package/dist/src/export/excel/nodes.d.ts +95 -93
  359. package/dist/src/export/expression.d.ts +3 -1
  360. package/dist/src/export/helpers.d.ts +3 -1
  361. package/dist/src/export/index.d.ts +6 -4
  362. package/dist/src/export/markdown.d.ts +19 -17
  363. package/dist/src/export/resolve-data.d.ts +3 -1
  364. package/dist/src/export/sentinel.d.ts +32 -30
  365. package/dist/src/export/sheet-name.d.ts +7 -5
  366. package/dist/src/export/styles.d.ts +13 -11
  367. package/dist/src/export/template.d.ts +3 -1
  368. package/dist/src/export/types.d.ts +224 -222
  369. package/dist/src/import/coerce.d.ts +5 -3
  370. package/dist/src/import/index.d.ts +12 -10
  371. package/dist/src/import/match.d.ts +20 -18
  372. package/dist/src/import/parse.d.ts +5 -3
  373. package/dist/src/import/types.d.ts +125 -123
  374. package/dist/src/nuxt/index.d.ts +92 -90
  375. package/dist/src/nuxt/ssr-lit/index.d.ts +4 -0
  376. package/dist/src/search/data-search.d.ts +92 -90
  377. package/dist/src/search/field-path.d.ts +10 -8
  378. package/dist/src/search/filter-eval.d.ts +2 -0
  379. package/dist/src/search/index.d.ts +6 -22
  380. package/dist/src/search/odata-search.d.ts +9 -7
  381. package/dist/src/search/search-expr.d.ts +16 -14
  382. package/dist/src/utils/data-source-apply.d.ts +11 -9
  383. package/dist/src/utils/data-source-options.d.ts +37 -35
  384. package/dist/src/utils/data-source-read.d.ts +40 -54
  385. package/dist/src/utils/data-source-summary.d.ts +8 -7
  386. package/dist/src/utils/normalize-error.d.ts +16 -14
  387. package/dist/src/vite/index.d.ts +34 -34
  388. package/dist/src/vite/mono-client-only.d.ts +34 -32
  389. package/dist/src/vite/mono-ssr-stub.d.ts +8 -6
  390. package/dist/src/vite/shadow-manifest.d.ts +2 -0
  391. package/dist/ssr-lit/runtime/components/LitWrapper.vue +11 -0
  392. package/dist/ssr-lit/runtime/components/LitWrapperClient.vue +11 -0
  393. package/dist/ssr-lit/runtime/components/LitWrapperServer.vue +38 -0
  394. package/dist/ssr-lit/runtime/plugins/antiFouc.server.js +25 -0
  395. package/dist/ssr-lit/runtime/plugins/hydrateSupport.client.js +4 -0
  396. package/dist/ssr-lit/runtime/plugins/polyfill.client.js +9 -0
  397. package/dist/ssr-lit/runtime/utils/customElements.js +11 -0
  398. package/dist/ssr-lit/runtime/utils/litElementRenderer.js +28 -0
  399. package/dist/{styles-BIJ31TM4.js → styles-D-ergrfR.js} +417 -207
  400. package/dist/{tooltip-DQqNpqk2.js → tooltip-FCMRUSLi.js} +32 -25
  401. package/dist/tooltip.js +3 -2
  402. package/dist/ui/accordion.js +16 -12
  403. package/dist/ui/alert.js +21 -14
  404. package/dist/ui/breadcrumb.js +28 -18
  405. package/dist/ui/button-dropdown.js +18 -14
  406. package/dist/ui/button.js +4 -2
  407. package/dist/ui/card.js +17 -12
  408. package/dist/ui/chart.js +31 -26
  409. package/dist/ui/checkbox.js +17 -12
  410. package/dist/ui/chip.js +19 -12
  411. package/dist/ui/date.js +19 -15
  412. package/dist/ui/drawer.js +26 -20
  413. package/dist/ui/dropdown-table.js +39 -30
  414. package/dist/ui/dropdown.js +19 -15
  415. package/dist/ui/file-upload.js +22 -17
  416. package/dist/ui/filter.js +18 -14
  417. package/dist/ui/form.js +4 -3
  418. package/dist/ui/index.css +1073 -2197
  419. package/dist/ui/input.js +24 -17
  420. package/dist/ui/menu.js +32 -20
  421. package/dist/ui/modal.js +33 -26
  422. package/dist/ui/nav.js +21 -15
  423. package/dist/ui/radio.js +17 -12
  424. package/dist/ui/rich-text-editor.js +34 -28
  425. package/dist/ui/select.js +32 -26
  426. package/dist/ui/shadow/accordion.js +13 -9
  427. package/dist/ui/shadow/alert.js +13 -9
  428. package/dist/ui/shadow/breadcrumb.js +23 -14
  429. package/dist/ui/shadow/button-dropdown.js +17 -13
  430. package/dist/ui/shadow/button.js +4 -2
  431. package/dist/ui/shadow/card.js +15 -10
  432. package/dist/ui/shadow/chart.js +36 -29
  433. package/dist/ui/shadow/checkbox.js +13 -9
  434. package/dist/ui/shadow/chip.js +16 -10
  435. package/dist/ui/shadow/date.js +19 -12
  436. package/dist/ui/shadow/drawer.js +22 -16
  437. package/dist/ui/shadow/dropdown-table.js +39 -28
  438. package/dist/ui/shadow/dropdown.js +15 -11
  439. package/dist/ui/shadow/file-upload.js +26 -19
  440. package/dist/ui/shadow/filter.js +17 -13
  441. package/dist/ui/shadow/input.js +20 -14
  442. package/dist/ui/shadow/menu.js +24 -14
  443. package/dist/ui/shadow/modal.js +35 -27
  444. package/dist/ui/shadow/nav.js +18 -12
  445. package/dist/ui/shadow/radio.js +15 -10
  446. package/dist/ui/shadow/rich-text-editor.js +32 -26
  447. package/dist/ui/shadow/select.js +30 -24
  448. package/dist/ui/shadow/sidebar.js +23 -16
  449. package/dist/ui/shadow/switch.js +15 -10
  450. package/dist/ui/shadow/table.js +123 -84
  451. package/dist/ui/shadow/tabs.js +12 -8
  452. package/dist/ui/shadow/tag-input.js +37 -31
  453. package/dist/ui/shadow/textarea.js +17 -12
  454. package/dist/ui/sidebar.js +27 -20
  455. package/dist/ui/switch.js +17 -12
  456. package/dist/ui/table.js +129 -87
  457. package/dist/ui/tabs.js +15 -11
  458. package/dist/ui/tag-input.js +33 -27
  459. package/dist/ui/textarea.js +19 -14
  460. package/dist/{vite-C5iUK7so.js → vite-DcyRlTTf.js} +17 -9
  461. package/dist/vite.js +3 -2
  462. package/package.json +18 -20
  463. package/dist/checkbox-Cqpie9Ap.js +0 -4
  464. package/dist/chip-DBUUa2eB.js +0 -4
  465. package/dist/data/theme/presets.json.d.ts +0 -140
  466. package/dist/export.d.ts +0 -1
  467. package/dist/hydration-flush-RB5Tz5nl.js +0 -1001
  468. package/dist/import.d.ts +0 -1
  469. package/dist/index.d.ts +0 -1
  470. package/dist/index.node.d.ts +0 -1
  471. package/dist/input-zGOULADt.js +0 -4
  472. package/dist/mono-button-simcTQdW.js +0 -873
  473. package/dist/mono-button.shadow-B_rKOY9N.js +0 -784
  474. package/dist/nuxt.d.ts +0 -1
  475. package/dist/search.d.ts +0 -1
  476. package/dist/tooltip.d.ts +0 -1
  477. package/dist/ui/accordion.d.ts +0 -1
  478. package/dist/ui/alert.d.ts +0 -1
  479. package/dist/ui/breadcrumb.d.ts +0 -1
  480. package/dist/ui/button-dropdown.d.ts +0 -1
  481. package/dist/ui/button.d.ts +0 -1
  482. package/dist/ui/card.d.ts +0 -1
  483. package/dist/ui/chart.d.ts +0 -1
  484. package/dist/ui/checkbox.d.ts +0 -1
  485. package/dist/ui/chip.d.ts +0 -1
  486. package/dist/ui/date.d.ts +0 -1
  487. package/dist/ui/drawer.d.ts +0 -1
  488. package/dist/ui/dropdown-table.d.ts +0 -1
  489. package/dist/ui/dropdown.d.ts +0 -1
  490. package/dist/ui/file-upload.d.ts +0 -1
  491. package/dist/ui/filter.d.ts +0 -1
  492. package/dist/ui/form.d.ts +0 -1
  493. package/dist/ui/input.d.ts +0 -1
  494. package/dist/ui/menu.d.ts +0 -1
  495. package/dist/ui/modal.d.ts +0 -1
  496. package/dist/ui/nav.d.ts +0 -1
  497. package/dist/ui/radio.d.ts +0 -1
  498. package/dist/ui/rich-text-editor.d.ts +0 -1
  499. package/dist/ui/select.d.ts +0 -1
  500. package/dist/ui/sidebar.d.ts +0 -1
  501. package/dist/ui/switch.d.ts +0 -1
  502. package/dist/ui/table.d.ts +0 -1
  503. package/dist/ui/tabs.d.ts +0 -1
  504. package/dist/ui/tag-input.d.ts +0 -1
  505. package/dist/ui/textarea.d.ts +0 -1
  506. package/dist/vite.d.ts +0 -1
@@ -1,9 +1,10 @@
1
- import { a as __decorate, c as defineHybridPropAlias, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-RB5Tz5nl.js";
2
- import { t as dispatchMonoEvent } from "../../mono-event-Bi1qP9uN.js";
3
- import { t as MonoFormControlCore } from "../../form-control-core-B8d7k6vk.js";
1
+ import { a as __decorate, c as defineHybridPropAlias, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-DHrl4_KK.js";
2
+ import { t as dispatchMonoEvent } from "../../mono-event-BPku9HpS.js";
3
+ import { t as MonoFormControlCore } from "../../form-control-core-CIdMLXMo.js";
4
4
  import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
5
5
  import { property, state } from "lit/decorators.js";
6
6
  import { ifDefined } from "lit/directives/if-defined.js";
7
+
7
8
  //#region src/components/radio/radio-core.ts
8
9
  /**
9
10
  * `MonoRadioCore` — all render-mode-agnostic logic for `mono-radio`: reactive
@@ -17,7 +18,7 @@ import { ifDefined } from "lit/directives/if-defined.js";
17
18
  *
18
19
  * SSR-safe: no `document`/`window` access; `focus`/`blur` query `this.renderRoot`.
19
20
  */
20
- var MonoRadioCore = (superClass) => {
21
+ const MonoRadioCore = (superClass) => {
21
22
  class MonoRadioCoreClass extends MonoFormControlCore(superClass) {
22
23
  constructor(...args) {
23
24
  super(...args);
@@ -271,18 +272,20 @@ var MonoRadioCore = (superClass) => {
271
272
  __decorate([state()], MonoRadioCoreClass.prototype, "_hasDescriptionSlotState", void 0);
272
273
  return MonoRadioCoreClass;
273
274
  };
275
+
274
276
  //#endregion
275
- //#region src/components/radio/radio.css?raw
276
- var radio_default = "/* =========================================================================\r\n mono-radio — a port of Basecoat's `.input[type='radio']` and the `.label`\r\n beside it (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-radio size=\"sm\" color=\"danger\" label=\"Email\" value=\"email\" model-value=\"email\">\r\n <label mono-radio mono-size=\"sm\" mono-color=\"danger\">\r\n <input mono-input type=\"radio\" name=\"contact\" value=\"email\" checked />\r\n <span mono-circle aria-hidden=\"true\"></span>\r\n <span mono-label><span mono-label-text>Email</span></span>\r\n </label>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element renders these attributes on its\r\n root <label> (both builds) plus the STATE `mono-checked`; hand-written markup\r\n may rely on the native input's `:checked` instead — every state rule reads\r\n both. The old classes (`.mono-radio.sm.mono-radio-checked`) are still emitted\r\n as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-radio] ≡ .label (flex gap-2 text-sm font-medium leading-snug select-none)\r\n [mono-radio] > [mono-circle] ≡ .input[type='radio'] (size-4 rounded-full border-input; the real input is visually hidden)\r\n [mono-checked] / [mono-input]:checked ≡ :checked (bg-primary border-primary) + :checked:before (size-2 bg-primary-foreground)\r\n [mono-circle] > [mono-dot] / ::before ≡ :checked:before — the element renders the dot, raw markup may omit it\r\n [mono-input]:focus-visible + [mono-circle] ≡ focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\r\n [mono-invalid] / [mono-input][aria-invalid] ≡ aria-invalid:border-destructive aria-invalid:ring-destructive/20\r\n [mono-disabled] / [mono-input]:disabled ≡ disabled:cursor-not-allowed disabled:opacity-50\r\n [mono-label-text] ≡ .label text\r\n [mono-description] ≡ .field > p (text-sm text-muted-foreground)\r\n [mono-size=\"xs|sm|lg|xl|xxl\"] ≡ EXTENSION — the circle is 4/9 of the --mono-control-height-* step\r\n (16px at vega md), label / description / gap step with it\r\n [mono-color=\"…\"] ≡ EXTENSION (the checked fill in the role's colour)\r\n\r\n Every metric here is checkbox.css's: the two controls sit side by side in a\r\n form, so circle ≡ box, gap ≡ gap, label ≡ label at every step, and the\r\n pairing spec asserts it.\r\n\r\n Specificity contract (same as the pre-port class sheet): a part's RESTING rule\r\n is exactly one attribute strong — `:where([mono-radio]) [mono-circle]` =\r\n (0,1,0) — so a utility class handed in through `cssClass` wins by source\r\n order, while state rules (checked / focus / invalid / disabled, keyed on the\r\n root or the native input) stay heavier and win over it, as they always did.\r\n\r\n Inner parts: [mono-input], [mono-circle] > [mono-dot], [mono-label] >\r\n [mono-label-text] / [mono-description]. The shadow build marks an unassigned\r\n slot wrapper [mono-empty].\r\n\r\n The circle sits on the label's CAP BAND (see `--_mono-radio-line-offset`):\r\n mono's own alignment rule, kept — Basecoat centres a lone radio on its line\r\n box with `items-center`, which is the same thing for a one-line label and\r\n drifts for a described one.\r\n\r\n FLAVORS set `--mono-radio-{radius,shadow,ring-width,ring-alpha,bg,border-color,\r\n checked-bg,dot-color,size-md}` (the per-style `.input[type='radio']` deltas); every\r\n fallback here is vega's value (`node scripts/basecoat-styles.mjs --varying\r\n \"input\\[type='radio'\\]\"`).\r\n ========================================================================= */\r\n\r\nmono-radio {\r\n display: inline-block;\r\n}\r\n\r\n[mono-radio] {\r\n /* ── palette: each slot is a public knob over a Basecoat token ─────────── */\r\n --_mono-radio-text: var(--mono-radio-text, var(--foreground));\r\n --_mono-radio-description: var(--mono-radio-description, var(--muted-foreground));\r\n --_mono-radio-primary: var(--mono-radio-primary, var(--primary));\r\n --_mono-radio-primary-foreground: var(--mono-radio-primary-foreground, var(--primary-foreground));\r\n --_mono-radio-accent: var(--mono-radio-accent, var(--_mono-radio-accent-preset, var(--_mono-radio-primary)));\r\n --_mono-radio-dot-color: var(--mono-radio-dot-color, var(--_mono-radio-dot-preset, var(--_mono-radio-primary-foreground)));\r\n --_mono-radio-border-color: var(--mono-radio-border, var(--mono-radio-border-color, var(--input)));\r\n --_mono-radio-bg: var(--mono-radio-bg, var(--mono-mode-surface));\r\n /* the radio is the one control Basecoat leaves shadowless (the checkbox has\r\n shadow-xs) — the slot stays so a flavor or a consumer can put one back */\r\n --_mono-radio-shadow: var(--mono-radio-shadow, 0 0 #0000);\r\n --_mono-radio-radius: var(--mono-radio-radius, var(--mono-radius-full));\r\n --_mono-radio-border-width: var(--mono-radio-border-width, var(--mono-border-width));\r\n --_mono-radio-ring-color: var(--mono-radio-ring-color, var(--ring));\r\n --_mono-radio-ring-width: var(--mono-radio-ring-width, var(--mono-ring-width));\r\n --_mono-radio-ring-alpha: var(--mono-radio-ring-alpha, var(--mono-ring-alpha));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .input[type='radio'] — size-4 (= 4/9 of the\r\n h-9 control); .field > label, .label — gap-2 text-sm leading-snug */\r\n --_mono-radio-control: var(--mono-radio-size-md, calc(var(--mono-control-height-md) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-md, calc(var(--mono-spacing) * 2)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-md, var(--mono-text-sm));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-md, 0.8125rem);\r\n /* :checked:before — size-2 on a size-4 circle */\r\n --_mono-radio-dot: var(--mono-radio-dot, 50%);\r\n\r\n /* ── whole pixels ────────────────────────────────────────────────────────\r\n The circle is a ratio of the control step, so it lands on a fraction (18.39px,\r\n 17.77px…). A fractional round shape is antialiased on every edge — the\r\n switch thumb, which parks flush against the track's cap, picked up a dark\r\n rim that changed with the flavor and the screen's pixel ratio. Snap the\r\n derived size to 1px; `round()` has the same browser floor as `color-mix()`\r\n and `:has()`, which this sheet already requires. Snapping happens HERE, at\r\n one place per value, so the per-size blocks stay plain arithmetic. */\r\n --_mono-radio-control-px: round(nearest, var(--_mono-radio-control), 1px);\r\n\r\n /* ── alignment with the label ────────────────────────────────────────────\r\n The circle is centred on the label's CAP BAND — the ink the eye reads, not\r\n the line box. Every number is checkbox.css's; the two controls sit side by\r\n side in a form and any divergence shows. */\r\n --_mono-radio-label-line-height: var(--mono-radio-label-line-height, var(--mono-leading-snug));\r\n --_mono-radio-optical-shift: 0.045;\r\n --_mono-radio-optical-nudge: 0px;\r\n --_mono-radio-line-offset: calc(\r\n (var(--_mono-radio-label-font) * var(--_mono-radio-label-line-height) - var(--_mono-radio-control-px)) / 2 +\r\n var(--_mono-radio-label-font) * var(--_mono-radio-optical-shift) + var(--_mono-radio-optical-nudge)\r\n );\r\n\r\n /* The element build nests this root inside its host, so it is never itself a\r\n grid or flex item and shrink-wraps its content. Hand-written markup usually\r\n IS the item (a radio in a `display: grid` list), and an item blockifies —\r\n `inline-flex` becomes `flex` and the row stretches to the widest sibling,\r\n wrapping its label at a different point than the element's. `fit-content`\r\n keeps both shapes shrink-wrapped; a consumer who wants a full-width row\r\n still sets a width. */\r\n width: fit-content;\r\n display: inline-flex;\r\n align-items: flex-start;\r\n gap: var(--_mono-radio-gap);\r\n position: relative;\r\n vertical-align: top;\r\n cursor: pointer;\r\n user-select: none;\r\n font-family: inherit;\r\n color: var(--_mono-radio-text);\r\n}\r\n\r\n[mono-radio],\r\n:where([mono-radio]) *,\r\n:where([mono-radio]) *::before,\r\n:where([mono-radio]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n:where([mono-radio]) :is([mono-label], [mono-label-text], [mono-description])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* the circle seats on the first line of a label that is actually there; a bare\r\n circle stays flush at the top */\r\n[mono-radio]:has([mono-label-text]:not([mono-empty])) > [mono-circle] {\r\n margin-top: var(--_mono-radio-line-offset, 0px);\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: the circle is 4/9 of the control step (vega md: 36 × 4/9 =\r\n 16px), label, description and gap step with it (md = Basecoat's text-sm / gap-2)\r\n ========================================= */\r\n\r\n[mono-radio][mono-size=\"xs\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xs, calc(var(--mono-control-height-xs) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xs, calc(var(--mono-spacing) * 1.25)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xs, var(--mono-text-xs));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xs, 0.6875rem);\r\n}\r\n\r\n[mono-radio][mono-size=\"sm\"] {\r\n --_mono-radio-control: var(--mono-radio-size-sm, calc(var(--mono-control-height-sm) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-sm, calc(var(--mono-spacing) * 1.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-sm, 0.8125rem);\r\n --_mono-radio-description-font: var(--mono-radio-description-font-sm, var(--mono-text-xs));\r\n}\r\n\r\n[mono-radio][mono-size=\"lg\"] {\r\n --_mono-radio-control: var(--mono-radio-size-lg, calc(var(--mono-control-height-lg) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-lg, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-lg, var(--mono-text-base));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-lg, var(--mono-text-sm));\r\n /* 16px text rounds its ascent such that the circle lands ~0.35px low */\r\n --_mono-radio-optical-nudge: -0.35px;\r\n}\r\n\r\n[mono-radio][mono-size=\"xl\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xl, calc(var(--mono-control-height-xl) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xl, calc(var(--mono-spacing) * 3)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xl, var(--mono-text-lg));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xl, var(--mono-text-base));\r\n}\r\n\r\n[mono-radio][mono-size=\"xxl\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xxl, calc(var(--mono-control-height-xxl) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xxl, calc(var(--mono-spacing) * 3.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xxl, var(--mono-text-xl));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xxl, var(--mono-text-lg));\r\n /* 20px text rounds the other way, leaving the circle ~1.1px high */\r\n --_mono-radio-optical-nudge: 1.1px;\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the checked fill in the role's colour\r\n ========================================= */\r\n\r\n[mono-radio]:is(:not([mono-color]), [mono-color=\"primary\"]) {\r\n --_mono-radio-accent-preset: var(--_mono-radio-primary);\r\n --_mono-radio-dot-preset: var(--_mono-radio-primary-foreground);\r\n}\r\n[mono-radio][mono-color=\"secondary\"] {\r\n --_mono-radio-accent-preset: var(--secondary-foreground);\r\n --_mono-radio-dot-preset: var(--secondary);\r\n}\r\n[mono-radio][mono-color=\"success\"] {\r\n --_mono-radio-accent-preset: var(--success);\r\n --_mono-radio-dot-preset: var(--success-foreground);\r\n}\r\n[mono-radio][mono-color=\"danger\"] {\r\n --_mono-radio-accent-preset: var(--destructive);\r\n --_mono-radio-dot-preset: var(--destructive-foreground);\r\n}\r\n[mono-radio][mono-color=\"warning\"] {\r\n --_mono-radio-accent-preset: var(--warning);\r\n --_mono-radio-dot-preset: var(--warning-foreground);\r\n}\r\n[mono-radio][mono-color=\"info\"] {\r\n --_mono-radio-accent-preset: var(--info);\r\n --_mono-radio-dot-preset: var(--info-foreground);\r\n}\r\n[mono-radio][mono-color=\"teal\"] {\r\n --_mono-radio-accent-preset: var(--teal);\r\n --_mono-radio-dot-preset: var(--teal-foreground);\r\n}\r\n[mono-radio][mono-color=\"purple\"] {\r\n --_mono-radio-accent-preset: var(--purple);\r\n --_mono-radio-dot-preset: var(--purple-foreground);\r\n}\r\n[mono-radio][mono-color=\"neutral\"] {\r\n --_mono-radio-accent-preset: var(--neutral);\r\n --_mono-radio-dot-preset: var(--neutral-foreground);\r\n}\r\n[mono-radio][mono-color=\"dark\"] {\r\n --_mono-radio-accent-preset: var(--dark);\r\n --_mono-radio-dot-preset: var(--dark-foreground);\r\n}\r\n\r\n/* =========================================\r\n States on the root\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio']\r\n — disabled:cursor-not-allowed disabled:opacity-50 */\r\n[mono-radio][mono-disabled],\r\n[mono-radio]:has(> [mono-input]:disabled) {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n\r\n/* the native input is the accessible control; the circle is its painted twin */\r\n:where([mono-radio]) [mono-input] {\r\n position: absolute;\r\n opacity: 0;\r\n pointer-events: none;\r\n width: 1px;\r\n height: 1px;\r\n margin: 0;\r\n /* the UA gives an <input> its own font; inside a shadow root nothing resets it,\r\n so the hidden control ended up with a different computed font in the two\r\n builds. It paints nothing either way — this just keeps them identical. */\r\n font: inherit;\r\n color: inherit;\r\n}\r\n\r\n/* =========================================\r\n The circle\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio']\r\n — relative shrink-0 appearance-none border outline-none */\r\n/* basecoat@1.0.2 styles/vega.css .field > input[type='radio'], .input[type='radio']\r\n — flex size-4 rounded-full border-input (dark:bg-input/30 via --mono-mode-surface);\r\n checked:bg-primary checked:border-primary checked:text-primary-foreground;\r\n mono: `--tw-ring-*` flattened to the ring + shadow slots */\r\n:where([mono-radio]) > [mono-circle] {\r\n --_mono-radio-ring: 0 0 #0000;\r\n position: relative;\r\n flex: 0 0 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-radio-control-px);\r\n height: var(--_mono-radio-control-px);\r\n border: var(--_mono-radio-border-width) solid var(--_mono-radio-border-color);\r\n border-radius: var(--_mono-radio-radius);\r\n background-color: var(--_mono-radio-bg);\r\n box-shadow: var(--_mono-radio-ring), var(--_mono-radio-shadow);\r\n /* the circle's own ink is the ACCENT — a flavor that leaves the checked circle\r\n hollow (sera) then sets `--mono-radio-dot-color: currentColor` to paint the\r\n dot in the role colour, using public knobs alone */\r\n color: var(--_mono-radio-accent);\r\n transition-property: box-shadow, background-color, border-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 */\r\n:where([mono-radio]) > [mono-input]:focus-visible + [mono-circle] {\r\n border-color: var(--_mono-radio-ring-color);\r\n --_mono-radio-ring: 0 0 0 var(--_mono-radio-ring-width) color-mix(in oklab, var(--_mono-radio-ring-color) var(--_mono-radio-ring-alpha), transparent);\r\n}\r\n\r\n/* aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\r\n (dark: /50, /40 via the mode tokens) */\r\n[mono-radio][mono-invalid] > [mono-circle],\r\n:where([mono-radio]) > [mono-input][aria-invalid=\"true\"] + [mono-circle] {\r\n border-color: var(--mono-mode-invalid-border);\r\n --_mono-radio-ring: 0 0 0 var(--_mono-radio-ring-width) var(--mono-mode-invalid-ring);\r\n}\r\n\r\n/* checked:bg-primary checked:border-primary — generalised per hue.\r\n `--mono-radio-checked-bg` is the flavor slot: sera keeps the circle hollow. */\r\n[mono-radio][mono-checked] > [mono-circle],\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle] {\r\n border-color: var(--_mono-radio-accent);\r\n background-color: var(--mono-radio-checked-bg, var(--_mono-radio-accent));\r\n}\r\n\r\n/* aria-invalid:checked:border-primary — a chosen option is not the error */\r\n[mono-radio][mono-invalid][mono-checked] > [mono-circle],\r\n:where([mono-radio]) > [mono-input][aria-invalid=\"true\"]:checked + [mono-circle] {\r\n border-color: var(--_mono-radio-accent);\r\n}\r\n\r\n/* =========================================\r\n The dot — `:checked:before` upstream. The element renders [mono-dot] (it is a\r\n `cssClass` slot); hand-written markup may leave the circle empty and take the\r\n pseudo-element instead. Both are out of flow (`inset: 0; margin: auto`) so the\r\n circle keeps a stable synthesised baseline.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio'] >> &:checked:before\r\n — absolute top-1/2 left-1/2 content-[''] -translate-x/y-1/2 rounded-full */\r\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='radio'], .input[type='radio']):checked:before\r\n — size-2 bg-primary-foreground (mono: that share of the box, so it tracks every step) */\r\n:where([mono-radio]) > [mono-circle] > [mono-dot],\r\n:where([mono-radio]) > [mono-circle]:not(:has([mono-dot]))::before {\r\n content: \"\";\r\n position: absolute;\r\n inset: 0;\r\n margin: auto;\r\n width: var(--_mono-radio-dot);\r\n height: var(--_mono-radio-dot);\r\n border-radius: var(--mono-radio-dot-radius, var(--mono-radius-full));\r\n background-color: var(--_mono-radio-dot-color);\r\n transform: scale(0);\r\n opacity: 0;\r\n transition-property: transform, opacity, background-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n[mono-radio][mono-checked] > [mono-circle] > [mono-dot],\r\n[mono-radio][mono-checked] > [mono-circle]:not(:has([mono-dot]))::before,\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle] > [mono-dot],\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle]:not(:has([mono-dot]))::before {\r\n transform: scale(1);\r\n opacity: 1;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-radio]) > [mono-circle],\r\n :where([mono-radio]) > [mono-circle] > [mono-dot],\r\n :where([mono-radio]) > [mono-circle]::before {\r\n transition: none;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Label\r\n ========================================= */\r\n\r\n:where([mono-radio]) > [mono-label] {\r\n min-width: 0;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label — text-sm leading-snug font-medium;\r\n `block` so the first line box is exactly font × line-height */\r\n:where([mono-radio]) [mono-label-text] {\r\n display: block;\r\n font-size: var(--_mono-radio-label-font);\r\n line-height: var(--_mono-radio-label-line-height);\r\n font-weight: var(--mono-radio-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium)));\r\n color: var(--_mono-radio-text);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .fieldset legend + p, .field > p, .field section > p\r\n — text-sm text-muted-foreground leading-normal font-normal; EXTENSION: one step\r\n under the label per size */\r\n:where([mono-radio]) [mono-description] {\r\n display: block;\r\n margin-top: calc(var(--mono-spacing) * 0.5);\r\n font-size: var(--_mono-radio-description-font);\r\n line-height: var(--mono-leading-normal);\r\n font-weight: var(--mono-font-weight-normal);\r\n color: var(--_mono-radio-description);\r\n}\r\n";
277
+ //#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\radio\radio.css?raw.js
278
+ var radio_css_raw_default = "/* =========================================================================\r\n mono-radio — a port of Basecoat's `.input[type='radio']` and the `.label`\r\n beside it (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-radio size=\"sm\" color=\"danger\" label=\"Email\" value=\"email\" model-value=\"email\">\r\n <label mono-radio mono-size=\"sm\" mono-color=\"danger\">\r\n <input mono-input type=\"radio\" name=\"contact\" value=\"email\" checked />\r\n <span mono-circle aria-hidden=\"true\"></span>\r\n <span mono-label><span mono-label-text>Email</span></span>\r\n </label>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element renders these attributes on its\r\n root <label> (both builds) plus the STATE `mono-checked`; hand-written markup\r\n may rely on the native input's `:checked` instead — every state rule reads\r\n both. The old classes (`.mono-radio.sm.mono-radio-checked`) are still emitted\r\n as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-radio] ≡ .label (flex gap-2 text-sm font-medium leading-snug select-none)\r\n [mono-radio] > [mono-circle] ≡ .input[type='radio'] (size-4 rounded-full border-input; the real input is visually hidden)\r\n [mono-checked] / [mono-input]:checked ≡ :checked (bg-primary border-primary) + :checked:before (size-2 bg-primary-foreground)\r\n [mono-circle] > [mono-dot] / ::before ≡ :checked:before — the element renders the dot, raw markup may omit it\r\n [mono-input]:focus-visible + [mono-circle] ≡ focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\r\n [mono-invalid] / [mono-input][aria-invalid] ≡ aria-invalid:border-destructive aria-invalid:ring-destructive/20\r\n [mono-disabled] / [mono-input]:disabled ≡ disabled:cursor-not-allowed disabled:opacity-50\r\n [mono-label-text] ≡ .label text\r\n [mono-description] ≡ .field > p (text-sm text-muted-foreground)\r\n [mono-size=\"xs|sm|lg|xl|xxl\"] ≡ EXTENSION — the circle is 4/9 of the --mono-control-height-* step\r\n (16px at vega md), label / description / gap step with it\r\n [mono-color=\"…\"] ≡ EXTENSION (the checked fill in the role's colour)\r\n\r\n Every metric here is checkbox.css's: the two controls sit side by side in a\r\n form, so circle ≡ box, gap ≡ gap, label ≡ label at every step, and the\r\n pairing spec asserts it.\r\n\r\n Specificity contract (same as the pre-port class sheet): a part's RESTING rule\r\n is exactly one attribute strong — `:where([mono-radio]) [mono-circle]` =\r\n (0,1,0) — so a utility class handed in through `cssClass` wins by source\r\n order, while state rules (checked / focus / invalid / disabled, keyed on the\r\n root or the native input) stay heavier and win over it, as they always did.\r\n\r\n Inner parts: [mono-input], [mono-circle] > [mono-dot], [mono-label] >\r\n [mono-label-text] / [mono-description]. The shadow build marks an unassigned\r\n slot wrapper [mono-empty].\r\n\r\n The circle sits on the label's CAP BAND (see `--_mono-radio-line-offset`):\r\n mono's own alignment rule, kept — Basecoat centres a lone radio on its line\r\n box with `items-center`, which is the same thing for a one-line label and\r\n drifts for a described one.\r\n\r\n FLAVORS set `--mono-radio-{radius,shadow,ring-width,ring-alpha,bg,border-color,\r\n checked-bg,dot-color,size-md}` (the per-style `.input[type='radio']` deltas); every\r\n fallback here is vega's value (`node scripts/basecoat-styles.mjs --varying\r\n \"input\\[type='radio'\\]\"`).\r\n ========================================================================= */\r\n\r\nmono-radio {\r\n display: inline-block;\r\n}\r\n\r\n[mono-radio] {\r\n /* ── palette: each slot is a public knob over a Basecoat token ─────────── */\r\n --_mono-radio-text: var(--mono-radio-text, var(--foreground));\r\n --_mono-radio-description: var(--mono-radio-description, var(--muted-foreground));\r\n --_mono-radio-primary: var(--mono-radio-primary, var(--primary));\r\n --_mono-radio-primary-foreground: var(--mono-radio-primary-foreground, var(--primary-foreground));\r\n --_mono-radio-accent: var(--mono-radio-accent, var(--_mono-radio-accent-preset, var(--_mono-radio-primary)));\r\n --_mono-radio-dot-color: var(--mono-radio-dot-color, var(--_mono-radio-dot-preset, var(--_mono-radio-primary-foreground)));\r\n --_mono-radio-border-color: var(--mono-radio-border, var(--mono-radio-border-color, var(--input)));\r\n --_mono-radio-bg: var(--mono-radio-bg, var(--mono-mode-surface));\r\n /* the radio is the one control Basecoat leaves shadowless (the checkbox has\r\n shadow-xs) — the slot stays so a flavor or a consumer can put one back */\r\n --_mono-radio-shadow: var(--mono-radio-shadow, 0 0 #0000);\r\n --_mono-radio-radius: var(--mono-radio-radius, var(--mono-radius-full));\r\n --_mono-radio-border-width: var(--mono-radio-border-width, var(--mono-border-width));\r\n --_mono-radio-ring-color: var(--mono-radio-ring-color, var(--ring));\r\n --_mono-radio-ring-width: var(--mono-radio-ring-width, var(--mono-ring-width));\r\n --_mono-radio-ring-alpha: var(--mono-radio-ring-alpha, var(--mono-ring-alpha));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .input[type='radio'] — size-4 (= 4/9 of the\r\n h-9 control); .field > label, .label — gap-2 text-sm leading-snug */\r\n --_mono-radio-control: var(--mono-radio-size-md, calc(var(--mono-control-height-md) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-md, calc(var(--mono-spacing) * 2)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-md, var(--mono-text-sm));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-md, 0.8125rem);\r\n /* :checked:before — size-2 on a size-4 circle */\r\n --_mono-radio-dot: var(--mono-radio-dot, 50%);\r\n\r\n /* ── whole pixels ────────────────────────────────────────────────────────\r\n The circle is a ratio of the control step, so it lands on a fraction (18.39px,\r\n 17.77px…). A fractional round shape is antialiased on every edge — the\r\n switch thumb, which parks flush against the track's cap, picked up a dark\r\n rim that changed with the flavor and the screen's pixel ratio. Snap the\r\n derived size to 1px; `round()` has the same browser floor as `color-mix()`\r\n and `:has()`, which this sheet already requires. Snapping happens HERE, at\r\n one place per value, so the per-size blocks stay plain arithmetic. */\r\n --_mono-radio-control-px: round(nearest, var(--_mono-radio-control), 1px);\r\n\r\n /* ── alignment with the label ────────────────────────────────────────────\r\n The circle is centred on the label's CAP BAND — the ink the eye reads, not\r\n the line box. Every number is checkbox.css's; the two controls sit side by\r\n side in a form and any divergence shows. */\r\n --_mono-radio-label-line-height: var(--mono-radio-label-line-height, var(--mono-leading-snug));\r\n --_mono-radio-optical-shift: 0.045;\r\n --_mono-radio-optical-nudge: 0px;\r\n --_mono-radio-line-offset: calc(\r\n (var(--_mono-radio-label-font) * var(--_mono-radio-label-line-height) - var(--_mono-radio-control-px)) / 2 +\r\n var(--_mono-radio-label-font) * var(--_mono-radio-optical-shift) + var(--_mono-radio-optical-nudge)\r\n );\r\n\r\n /* The element build nests this root inside its host, so it is never itself a\r\n grid or flex item and shrink-wraps its content. Hand-written markup usually\r\n IS the item (a radio in a `display: grid` list), and an item blockifies —\r\n `inline-flex` becomes `flex` and the row stretches to the widest sibling,\r\n wrapping its label at a different point than the element's. `fit-content`\r\n keeps both shapes shrink-wrapped; a consumer who wants a full-width row\r\n still sets a width. */\r\n width: fit-content;\r\n display: inline-flex;\r\n align-items: flex-start;\r\n gap: var(--_mono-radio-gap);\r\n position: relative;\r\n vertical-align: top;\r\n cursor: pointer;\r\n user-select: none;\r\n font-family: inherit;\r\n color: var(--_mono-radio-text);\r\n}\r\n\r\n[mono-radio],\r\n:where([mono-radio]) *,\r\n:where([mono-radio]) *::before,\r\n:where([mono-radio]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n:where([mono-radio]) :is([mono-label], [mono-label-text], [mono-description])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* the circle seats on the first line of a label that is actually there; a bare\r\n circle stays flush at the top */\r\n[mono-radio]:has([mono-label-text]:not([mono-empty])) > [mono-circle] {\r\n margin-top: var(--_mono-radio-line-offset, 0px);\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: the circle is 4/9 of the control step (vega md: 36 × 4/9 =\r\n 16px), label, description and gap step with it (md = Basecoat's text-sm / gap-2)\r\n ========================================= */\r\n\r\n[mono-radio][mono-size=\"xs\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xs, calc(var(--mono-control-height-xs) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xs, calc(var(--mono-spacing) * 1.25)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xs, var(--mono-text-xs));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xs, 0.6875rem);\r\n}\r\n\r\n[mono-radio][mono-size=\"sm\"] {\r\n --_mono-radio-control: var(--mono-radio-size-sm, calc(var(--mono-control-height-sm) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-sm, calc(var(--mono-spacing) * 1.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-sm, 0.8125rem);\r\n --_mono-radio-description-font: var(--mono-radio-description-font-sm, var(--mono-text-xs));\r\n}\r\n\r\n[mono-radio][mono-size=\"lg\"] {\r\n --_mono-radio-control: var(--mono-radio-size-lg, calc(var(--mono-control-height-lg) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-lg, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-lg, var(--mono-text-base));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-lg, var(--mono-text-sm));\r\n /* 16px text rounds its ascent such that the circle lands ~0.35px low */\r\n --_mono-radio-optical-nudge: -0.35px;\r\n}\r\n\r\n[mono-radio][mono-size=\"xl\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xl, calc(var(--mono-control-height-xl) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xl, calc(var(--mono-spacing) * 3)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xl, var(--mono-text-lg));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xl, var(--mono-text-base));\r\n}\r\n\r\n[mono-radio][mono-size=\"xxl\"] {\r\n --_mono-radio-control: var(--mono-radio-size-xxl, calc(var(--mono-control-height-xxl) * 4 / 9));\r\n --_mono-radio-gap: var(--mono-radio-gap, var(--mono-radio-gap-xxl, calc(var(--mono-spacing) * 3.5)));\r\n --_mono-radio-label-font: var(--mono-radio-label-font-xxl, var(--mono-text-xl));\r\n --_mono-radio-description-font: var(--mono-radio-description-font-xxl, var(--mono-text-lg));\r\n /* 20px text rounds the other way, leaving the circle ~1.1px high */\r\n --_mono-radio-optical-nudge: 1.1px;\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the checked fill in the role's colour\r\n ========================================= */\r\n\r\n[mono-radio]:is(:not([mono-color]), [mono-color=\"primary\"]) {\r\n --_mono-radio-accent-preset: var(--_mono-radio-primary);\r\n --_mono-radio-dot-preset: var(--_mono-radio-primary-foreground);\r\n}\r\n[mono-radio][mono-color=\"secondary\"] {\r\n --_mono-radio-accent-preset: var(--secondary-foreground);\r\n --_mono-radio-dot-preset: var(--secondary);\r\n}\r\n[mono-radio][mono-color=\"success\"] {\r\n --_mono-radio-accent-preset: var(--success);\r\n --_mono-radio-dot-preset: var(--success-foreground);\r\n}\r\n[mono-radio][mono-color=\"danger\"] {\r\n --_mono-radio-accent-preset: var(--destructive);\r\n --_mono-radio-dot-preset: var(--destructive-foreground);\r\n}\r\n[mono-radio][mono-color=\"warning\"] {\r\n --_mono-radio-accent-preset: var(--warning);\r\n --_mono-radio-dot-preset: var(--warning-foreground);\r\n}\r\n[mono-radio][mono-color=\"info\"] {\r\n --_mono-radio-accent-preset: var(--info);\r\n --_mono-radio-dot-preset: var(--info-foreground);\r\n}\r\n[mono-radio][mono-color=\"teal\"] {\r\n --_mono-radio-accent-preset: var(--teal);\r\n --_mono-radio-dot-preset: var(--teal-foreground);\r\n}\r\n[mono-radio][mono-color=\"purple\"] {\r\n --_mono-radio-accent-preset: var(--purple);\r\n --_mono-radio-dot-preset: var(--purple-foreground);\r\n}\r\n[mono-radio][mono-color=\"neutral\"] {\r\n --_mono-radio-accent-preset: var(--neutral);\r\n --_mono-radio-dot-preset: var(--neutral-foreground);\r\n}\r\n[mono-radio][mono-color=\"dark\"] {\r\n --_mono-radio-accent-preset: var(--dark);\r\n --_mono-radio-dot-preset: var(--dark-foreground);\r\n}\r\n\r\n/* =========================================\r\n States on the root\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio']\r\n — disabled:cursor-not-allowed disabled:opacity-50 */\r\n[mono-radio][mono-disabled],\r\n[mono-radio]:has(> [mono-input]:disabled) {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n\r\n/* the native input is the accessible control; the circle is its painted twin */\r\n:where([mono-radio]) [mono-input] {\r\n position: absolute;\r\n opacity: 0;\r\n pointer-events: none;\r\n width: 1px;\r\n height: 1px;\r\n margin: 0;\r\n /* the UA gives an <input> its own font; inside a shadow root nothing resets it,\r\n so the hidden control ended up with a different computed font in the two\r\n builds. It paints nothing either way — this just keeps them identical. */\r\n font: inherit;\r\n color: inherit;\r\n}\r\n\r\n/* =========================================\r\n The circle\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio']\r\n — relative shrink-0 appearance-none border outline-none */\r\n/* basecoat@1.0.2 styles/vega.css .field > input[type='radio'], .input[type='radio']\r\n — flex size-4 rounded-full border-input (dark:bg-input/30 via --mono-mode-surface);\r\n checked:bg-primary checked:border-primary checked:text-primary-foreground;\r\n mono: `--tw-ring-*` flattened to the ring + shadow slots */\r\n:where([mono-radio]) > [mono-circle] {\r\n --_mono-radio-ring: 0 0 #0000;\r\n position: relative;\r\n flex: 0 0 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-radio-control-px);\r\n height: var(--_mono-radio-control-px);\r\n border: var(--_mono-radio-border-width) solid var(--_mono-radio-border-color);\r\n border-radius: var(--_mono-radio-radius);\r\n background-color: var(--_mono-radio-bg);\r\n box-shadow: var(--_mono-radio-ring), var(--_mono-radio-shadow);\r\n /* the circle's own ink is the ACCENT — a flavor that leaves the checked circle\r\n hollow (sera) then sets `--mono-radio-dot-color: currentColor` to paint the\r\n dot in the role colour, using public knobs alone */\r\n color: var(--_mono-radio-accent);\r\n transition-property: box-shadow, background-color, border-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 */\r\n:where([mono-radio]) > [mono-input]:focus-visible + [mono-circle] {\r\n border-color: var(--_mono-radio-ring-color);\r\n --_mono-radio-ring: 0 0 0 var(--_mono-radio-ring-width) color-mix(in oklab, var(--_mono-radio-ring-color) var(--_mono-radio-ring-alpha), transparent);\r\n}\r\n\r\n/* aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\r\n (dark: /50, /40 via the mode tokens) */\r\n[mono-radio][mono-invalid] > [mono-circle],\r\n:where([mono-radio]) > [mono-input][aria-invalid=\"true\"] + [mono-circle] {\r\n border-color: var(--mono-mode-invalid-border);\r\n --_mono-radio-ring: 0 0 0 var(--_mono-radio-ring-width) var(--mono-mode-invalid-ring);\r\n}\r\n\r\n/* checked:bg-primary checked:border-primary — generalised per hue.\r\n `--mono-radio-checked-bg` is the flavor slot: sera keeps the circle hollow. */\r\n[mono-radio][mono-checked] > [mono-circle],\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle] {\r\n border-color: var(--_mono-radio-accent);\r\n background-color: var(--mono-radio-checked-bg, var(--_mono-radio-accent));\r\n}\r\n\r\n/* aria-invalid:checked:border-primary — a chosen option is not the error */\r\n[mono-radio][mono-invalid][mono-checked] > [mono-circle],\r\n:where([mono-radio]) > [mono-input][aria-invalid=\"true\"]:checked + [mono-circle] {\r\n border-color: var(--_mono-radio-accent);\r\n}\r\n\r\n/* =========================================\r\n The dot — `:checked:before` upstream. The element renders [mono-dot] (it is a\r\n `cssClass` slot); hand-written markup may leave the circle empty and take the\r\n pseudo-element instead. Both are out of flow (`inset: 0; margin: auto`) so the\r\n circle keeps a stable synthesised baseline.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/radio.css .field > input[type='radio'], .input[type='radio'] >> &:checked:before\r\n — absolute top-1/2 left-1/2 content-[''] -translate-x/y-1/2 rounded-full */\r\n/* basecoat@1.0.2 styles/vega.css :is(.field > input[type='radio'], .input[type='radio']):checked:before\r\n — size-2 bg-primary-foreground (mono: that share of the box, so it tracks every step) */\r\n:where([mono-radio]) > [mono-circle] > [mono-dot],\r\n:where([mono-radio]) > [mono-circle]:not(:has([mono-dot]))::before {\r\n content: \"\";\r\n position: absolute;\r\n inset: 0;\r\n margin: auto;\r\n width: var(--_mono-radio-dot);\r\n height: var(--_mono-radio-dot);\r\n border-radius: var(--mono-radio-dot-radius, var(--mono-radius-full));\r\n background-color: var(--_mono-radio-dot-color);\r\n transform: scale(0);\r\n opacity: 0;\r\n transition-property: transform, opacity, background-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n[mono-radio][mono-checked] > [mono-circle] > [mono-dot],\r\n[mono-radio][mono-checked] > [mono-circle]:not(:has([mono-dot]))::before,\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle] > [mono-dot],\r\n:where([mono-radio]) > [mono-input]:checked + [mono-circle]:not(:has([mono-dot]))::before {\r\n transform: scale(1);\r\n opacity: 1;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-radio]) > [mono-circle],\r\n :where([mono-radio]) > [mono-circle] > [mono-dot],\r\n :where([mono-radio]) > [mono-circle]::before {\r\n transition: none;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Label\r\n ========================================= */\r\n\r\n:where([mono-radio]) > [mono-label] {\r\n min-width: 0;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label — text-sm leading-snug font-medium;\r\n `block` so the first line box is exactly font × line-height */\r\n:where([mono-radio]) [mono-label-text] {\r\n display: block;\r\n font-size: var(--_mono-radio-label-font);\r\n line-height: var(--_mono-radio-label-line-height);\r\n font-weight: var(--mono-radio-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium)));\r\n color: var(--_mono-radio-text);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .fieldset legend + p, .field > p, .field section > p\r\n — text-sm text-muted-foreground leading-normal font-normal; EXTENSION: one step\r\n under the label per size */\r\n:where([mono-radio]) [mono-description] {\r\n display: block;\r\n margin-top: calc(var(--mono-spacing) * 0.5);\r\n font-size: var(--_mono-radio-description-font);\r\n line-height: var(--mono-leading-normal);\r\n font-weight: var(--mono-font-weight-normal);\r\n color: var(--_mono-radio-description);\r\n}\r\n";
279
+
277
280
  //#endregion
278
281
  //#region src/components/radio/mono-radio.shadow.ts
279
- var SHADOW_EXTRA_CSS = "";
280
- var MonoRadioShadow = class MonoRadioShadow extends withShadowUtilityStyles(MonoRadioCore(LitElement)) {
282
+ const SHADOW_EXTRA_CSS = "";
283
+ let MonoRadioShadow = class MonoRadioShadow extends withShadowUtilityStyles(MonoRadioCore(LitElement)) {
281
284
  static {
282
285
  this.disableWarning?.("change-in-update");
283
286
  }
284
287
  static {
285
- this.styles = [unsafeCSS(toShadowCss(radio_default, {
288
+ this.styles = [unsafeCSS(toShadowCss(radio_css_raw_default, {
286
289
  host: "mono-radio",
287
290
  append: SHADOW_EXTRA_CSS
288
291
  }))];
@@ -363,6 +366,7 @@ var MonoRadioShadow = class MonoRadioShadow extends withShadowUtilityStyles(Mono
363
366
  }
364
367
  };
365
368
  MonoRadioShadow = __decorate([customElement("mono-shadow-radio")], MonoRadioShadow);
369
+
366
370
  //#endregion
367
371
  //#region src/components/radio/radio-utils.ts
368
372
  /**
@@ -404,5 +408,6 @@ function generateRadioAttributes(disabled, checked, label) {
404
408
  "aria-label": label || void 0
405
409
  };
406
410
  }
411
+
407
412
  //#endregion
408
- export { MonoRadioCore, MonoRadioShadow, generateRadioAttributes, validateRadioProps };
413
+ export { MonoRadioCore, MonoRadioShadow, generateRadioAttributes, validateRadioProps };
@@ -1,17 +1,18 @@
1
- import { a as __decorate, d as optionalNumberConverter, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-RB5Tz5nl.js";
2
- import { t as dispatchMonoEvent } from "../../mono-event-Bi1qP9uN.js";
3
- import { n as toCssSize, t as buildSizeStyle } from "../../css-size-DhHSVZJK.js";
4
- import { t as MonoFormControlCore } from "../../form-control-core-B8d7k6vk.js";
1
+ import { a as __decorate, d as optionalNumberConverter, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, r as toShadowCss, s as booleanStringConverter, t as flushSsrHydration } from "../../hydration-flush-DHrl4_KK.js";
2
+ import { t as dispatchMonoEvent } from "../../mono-event-BPku9HpS.js";
3
+ import { n as toCssSize, t as buildSizeStyle } from "../../css-size-DWAPgQdT.js";
4
+ import { t as MonoFormControlCore } from "../../form-control-core-CIdMLXMo.js";
5
5
  import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
6
6
  import { property, state } from "lit/decorators.js";
7
7
  import { styleMap } from "lit/directives/style-map.js";
8
+
8
9
  //#region src/components/rich-text-editor/rich-text-editor-loader.ts
9
- var INSTALL_HINT = "[mono-rich-text-editor] needs the optional peer dependency \"suneditor\". Install it in your app: pnpm add suneditor@^3.3.3";
10
+ const INSTALL_HINT = "[mono-rich-text-editor] needs the optional peer dependency \"suneditor\". Install it in your app: pnpm add suneditor@^3.3.3";
10
11
  function withHint(err) {
11
12
  const message = err instanceof Error ? err.message : String(err);
12
13
  return /* @__PURE__ */ new Error(`${INSTALL_HINT}${message ? ` (original error: ${message})` : ""}`);
13
14
  }
14
- var _corePromise = null;
15
+ let _corePromise = null;
15
16
  /** The `suneditor` default export (`{ create, init }`), cached; a failure resets so a later attempt retries. */
16
17
  function loadSunEditor() {
17
18
  _corePromise ??= import("suneditor").then((m) => m?.default ?? m).catch((err) => {
@@ -20,7 +21,7 @@ function loadSunEditor() {
20
21
  });
21
22
  return _corePromise;
22
23
  }
23
- var _cssPromise = null;
24
+ let _cssPromise = null;
24
25
  /**
25
26
  * SunEditor's UI stylesheet (`suneditor/css/editor`), injected ONCE per page by
26
27
  * the consumer's bundler as a side-effect import. Failure is not fatal — the
@@ -32,7 +33,7 @@ function loadSunEditorCss() {
32
33
  });
33
34
  return _cssPromise;
34
35
  }
35
- var _pluginsPromise = null;
36
+ let _pluginsPromise = null;
36
37
  /** Every built-in plugin, keyed by name (`suneditor/plugins`' default export). */
37
38
  function loadSunEditorPlugins() {
38
39
  _pluginsPromise ??= import("suneditor/plugins").then((m) => m?.default ?? m).catch((err) => {
@@ -46,7 +47,7 @@ function loadSunEditorPlugins() {
46
47
  * consumer's bundler can split them. Unknown codes fall back to English (the
47
48
  * editor's own default) with a warning rather than failing the build.
48
49
  */
49
- var LANGS = {
50
+ const LANGS = {
50
51
  ckb: () => import("suneditor/langs/ckb"),
51
52
  cs: () => import("suneditor/langs/cs"),
52
53
  da: () => import("suneditor/langs/da"),
@@ -74,8 +75,8 @@ var LANGS = {
74
75
  zh_cn: () => import("suneditor/langs/zh_cn")
75
76
  };
76
77
  /** Codes `lang` accepts. */
77
- var SUNEDITOR_LANG_CODES = Object.keys(LANGS);
78
- var _langPromises = /* @__PURE__ */ new Map();
78
+ const SUNEDITOR_LANG_CODES = Object.keys(LANGS);
79
+ const _langPromises = /* @__PURE__ */ new Map();
79
80
  /**
80
81
  * A language pack by code (`ko`, `pt-BR` → `pt_br`, `zh-CN` → `zh_cn`, …), or
81
82
  * `undefined` for English / an unknown code (SunEditor then uses its default).
@@ -98,6 +99,7 @@ function loadSunEditorLang(code) {
98
99
  }
99
100
  return p;
100
101
  }
102
+
101
103
  //#endregion
102
104
  //#region src/components/rich-text-editor/rich-text-editor-toolbar.ts
103
105
  /**
@@ -105,7 +107,7 @@ function loadSunEditorLang(code) {
105
107
  * Anything else in a `buttonList` is the `key` of a plugin that has to be in
106
108
  * `plugins`, so a preset is filtered against the plugins actually loaded.
107
109
  */
108
- var SUNEDITOR_CORE_BUTTONS = new Set([
110
+ const SUNEDITOR_CORE_BUTTONS = /* @__PURE__ */ new Set([
109
111
  "bold",
110
112
  "underline",
111
113
  "italic",
@@ -145,7 +147,7 @@ var SUNEDITOR_CORE_BUTTONS = new Set([
145
147
  * `:plugins.prop="[...]"` with the class or `plugins="font, link, template"`
146
148
  * is — and supply their options through `options`.
147
149
  */
148
- var AUTO_EXCLUDED_PLUGINS = new Set([
150
+ const AUTO_EXCLUDED_PLUGINS = /* @__PURE__ */ new Set([
149
151
  "exportPDF",
150
152
  "fileUpload",
151
153
  "layout",
@@ -158,12 +160,12 @@ var AUTO_EXCLUDED_PLUGINS = new Set([
158
160
  "fileBrowser"
159
161
  ]);
160
162
  /** Markers a `buttonList` may carry besides button names. */
161
- var SPECIAL = /^(\||\/|-left|-right|-center|#fix)$/;
163
+ const SPECIAL = /^(\||\/|-left|-right|-center|#fix)$/;
162
164
  /**
163
165
  * SunEditor's own default (`DEFAULTS.BUTTON_LIST`) — no plugin buttons at all.
164
166
  * Mirrored here rather than imported so the presets stay pure.
165
167
  */
166
- var TOOLBAR_DEFAULT = [
168
+ const TOOLBAR_DEFAULT = [
167
169
  ["undo", "redo"],
168
170
  "|",
169
171
  [
@@ -189,7 +191,7 @@ var TOOLBAR_DEFAULT = [
189
191
  ["preview", "print"]
190
192
  ];
191
193
  /** The essentials: a comment box, a note field. */
192
- var TOOLBAR_BASIC = [
194
+ const TOOLBAR_BASIC = [
193
195
  ["undo", "redo"],
194
196
  "|",
195
197
  [
@@ -208,7 +210,7 @@ var TOOLBAR_BASIC = [
208
210
  ["removeFormat"]
209
211
  ];
210
212
  /** The default: what a document / description / email body needs. */
211
- var TOOLBAR_STANDARD = [
213
+ const TOOLBAR_STANDARD = [
212
214
  ["undo", "redo"],
213
215
  "|",
214
216
  [
@@ -256,7 +258,7 @@ var TOOLBAR_STANDARD = [
256
258
  * `templates` list), `math` and `exportPDF` (need external libraries) — pass
257
259
  * those through `toolbar` + `options` when the app provides what they need.
258
260
  */
259
- var TOOLBAR_FULL = [
261
+ const TOOLBAR_FULL = [
260
262
  ["undo", "redo"],
261
263
  "|",
262
264
  [
@@ -325,7 +327,7 @@ var TOOLBAR_FULL = [
325
327
  "print"
326
328
  ]
327
329
  ];
328
- var TOOLBAR_PRESETS = {
330
+ const TOOLBAR_PRESETS = {
329
331
  basic: TOOLBAR_BASIC,
330
332
  standard: TOOLBAR_STANDARD,
331
333
  full: TOOLBAR_FULL,
@@ -448,6 +450,7 @@ function pluginsNeedCatalog(plugins) {
448
450
  if (Array.isArray(plugins)) return plugins.some((p) => typeof p === "string");
449
451
  return false;
450
452
  }
453
+
451
454
  //#endregion
452
455
  //#region src/components/rich-text-editor/rich-text-editor-core.ts
453
456
  /**
@@ -485,7 +488,7 @@ function pluginsNeedCatalog(plugins) {
485
488
  * jumps, no echo. `monoForm` binds through {@link MonoFormControlCore} exactly
486
489
  * as `mono-textarea` does.
487
490
  */
488
- var MonoRichTextEditorCore = (superClass) => {
491
+ const MonoRichTextEditorCore = (superClass) => {
489
492
  class MonoRichTextEditorCoreClass extends MonoFormControlCore(superClass) {
490
493
  constructor(...args) {
491
494
  super(...args);
@@ -1272,24 +1275,26 @@ var MonoRichTextEditorCore = (superClass) => {
1272
1275
  __decorate([state()], MonoRichTextEditorCoreClass.prototype, "_loading", void 0);
1273
1276
  return MonoRichTextEditorCoreClass;
1274
1277
  };
1278
+
1275
1279
  //#endregion
1276
- //#region src/components/rich-text-editor/rich-text-editor.css?raw
1277
- var rich_text_editor_default = "/* =========================================================================\r\n mono-rich-text-editor — a mono form field whose input is a SunEditor v3\r\n instance. An EXTENSION: Basecoat has no editor, so the CHROME is the ported\r\n textarea's `.field` (basecoat-css@1.0.2, vega style) — label, frame, message\r\n — and the EDITOR is SunEditor's own DOM, styled by ITS stylesheet\r\n (`suneditor/css/editor`, loaded by the element at runtime) and themed from\r\n here by remapping its `--se-*` tokens onto the Basecoat tokens.\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-rich-text-editor size=\"sm\" color=\"danger\" label=\"Body\" helper-text=\"…\">\r\n <div mono-rich-text-editor mono-size=\"sm\" mono-color=\"danger\">\r\n <label mono-rte-label>Body</label>\r\n <div mono-rte-field><div mono-rte-mount>…SunEditor…</div></div>\r\n <div mono-rte-footer><div mono-rte-message-wrap><div mono-rte-message=\"helper\">…</div></div></div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary, `:not([mono-variant])` = outlined). The element\r\n renders these on its root (both builds) plus the STATES `mono-disabled` /\r\n `mono-readonly` / `mono-required` / `mono-loading` / `mono-unavailable` /\r\n `mono-has-value` and `mono-validation-state=\"valid|invalid|warning\"`. The\r\n old classes (`.mono-rich-text-editor.md.primary.outlined`) are still emitted\r\n as inert hooks until 2.0 but no rule here reads them.\r\n\r\n THE PARTS ARE FAMILY-UNIQUE (`mono-rte-*`): the frame holds SunEditor's whole\r\n DOM, and a consumer's content may carry anything.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-rich-text-editor] ≡ .field (flex w-full flex-col gap-3)\r\n [mono-rich-text-editor] > [mono-rte-label] ≡ .field > label / .label\r\n [mono-rte-field] ≡ .textarea's box (rounded-md border-input bg-transparent shadow-xs,\r\n focus-within: border-ring ring-3 ring-ring/50) — the editor sits inside\r\n [mono-rte-mount] .sun-editor .se-toolbar ≡ EXTENSION (a muted band under the frame's top edge)\r\n [mono-rte-footer] > [mono-rte-message-wrap] > [mono-rte-message=\"…\"] ≡ .field > p / .field [role='alert']\r\n [mono-validation-state=\"invalid\"] ≡ aria-invalid:border-destructive aria-invalid:ring-destructive/20\r\n [mono-validation-state=\"valid|warning\"] ≡ EXTENSION (the same treatment in --success / --warning)\r\n [mono-size=\"xs|sm|lg|xl|xxl\"] ≡ EXTENSION (the textarea's font ladder; icons step with it)\r\n [mono-variant=\"filled\"] ≡ EXTENSION (luma / mira / rhea's textarea)\r\n [mono-variant=\"underlined\"] ≡ EXTENSION (sera's: the bottom edge only, no ring)\r\n [mono-rte-unavailable] ≡ EXTENSION (the peer-missing notice)\r\n .se-tooltip-text (SunEditor's) ≡ [data-tooltip]::before (bg-foreground text-background rounded-md px-3 py-1.5 text-xs)\r\n\r\n FLAVORS: the frame IS the textarea's box, so every metric resolves\r\n `--mono-rich-text-editor-<k>` → `--mono-textarea-<k>` → the base through the\r\n SAME chains textarea.css uses — a flavour that retunes the textarea retunes\r\n this frame, and no flavour file carries an editor entry. SunEditor's own\r\n popovers (dropdowns, the modal layer it parks on <body>) take the select\r\n panel's popover chain (`--mono-select-dropdown-*`), like every other popover.\r\n\r\n The editor DOM is LIGHT DOM in both builds (see `rich-text-editor-core.ts`),\r\n so the `--se-*` remap is declared on the frame and inherited by the mount —\r\n through a `<slot>` in the shadow build, which custom properties cross — and\r\n DELIVERED on `.sun-editor` from the PAGE sheet (the shadow sheet cannot reach\r\n a slotted descendant). Nothing below reaches into SunEditor's selectors except\r\n to flatten the frame it paints around itself, which the mono frame replaces.\r\n ========================================================================= */\r\n\r\nmono-rich-text-editor {\r\n display: block;\r\n}\r\n\r\n/* The token block — on the element root AND on SunEditor's carrier (the layer it\r\n parks on <body> for its dropdown lists, dialogs and alerts), which is outside\r\n every frame and can inherit nothing from it. The element's own props (`color`,\r\n `size`) cannot reach the carrier either: it takes the defaults. */\r\n[mono-rich-text-editor],\r\n.sun-editor.sun-editor-carrier-wrapper {\r\n /* ── palette: each slot is a public knob over the textarea's, over a Basecoat token ── */\r\n --_mono-rte-text: var(--mono-rich-text-editor-text, var(--mono-textarea-text, var(--foreground)));\r\n --_mono-rte-placeholder: var(--mono-rich-text-editor-placeholder, var(--mono-textarea-placeholder, var(--muted-foreground)));\r\n --_mono-rte-muted: var(--mono-rich-text-editor-muted, var(--mono-textarea-muted, var(--muted-foreground)));\r\n --_mono-rte-primary: var(--mono-rich-text-editor-primary, var(--mono-textarea-primary, var(--ring)));\r\n --_mono-rte-secondary: var(--mono-rich-text-editor-secondary, var(--mono-textarea-secondary, var(--muted-foreground)));\r\n --_mono-rte-success: var(--mono-rich-text-editor-success, var(--mono-textarea-success, var(--success)));\r\n --_mono-rte-danger: var(--mono-rich-text-editor-danger, var(--mono-textarea-danger, var(--destructive)));\r\n --_mono-rte-warning: var(--mono-rich-text-editor-warning, var(--mono-textarea-warning, var(--warning)));\r\n --_mono-rte-info: var(--mono-rich-text-editor-info, var(--mono-textarea-info, var(--info)));\r\n --_mono-rte-teal: var(--mono-rich-text-editor-teal, var(--mono-textarea-teal, var(--teal)));\r\n --_mono-rte-purple: var(--mono-rich-text-editor-purple, var(--mono-textarea-purple, var(--purple)));\r\n --_mono-rte-neutral: var(--mono-rich-text-editor-neutral, var(--mono-textarea-neutral, var(--neutral)));\r\n --_mono-rte-dark: var(--mono-rich-text-editor-dark, var(--mono-textarea-dark, var(--dark)));\r\n --_mono-rte-valid: var(--mono-rich-text-editor-valid, var(--mono-textarea-valid, var(--success)));\r\n --_mono-rte-invalid: var(--mono-rich-text-editor-invalid, var(--mono-textarea-invalid, var(--destructive)));\r\n\r\n /* ── the painted result — three tiers, base = vega's .textarea ─────────── */\r\n --_mono-rte-ring-color: var(--mono-rich-text-editor-ring-color, var(--mono-rich-text-editor-focus-color, var(--_mono-rte-ring-color-preset, var(--_mono-rte-primary))));\r\n --_mono-rte-ring-width: var(--mono-rich-text-editor-ring-width, var(--mono-textarea-ring-width, var(--_mono-rte-ring-width-preset, var(--mono-ring-width))));\r\n --_mono-rte-ring-alpha: var(--mono-rich-text-editor-ring-alpha, var(--mono-textarea-ring-alpha, var(--mono-ring-alpha)));\r\n --_mono-rte-border-color: var(--mono-rich-text-editor-rest-border, var(--mono-rich-text-editor-border-color, var(--mono-rich-text-editor-border, var(--mono-textarea-rest-border, var(--mono-textarea-border-color, var(--_mono-rte-border-color-preset, var(--input)))))));\r\n --_mono-rte-side-border-color: var(--_mono-rte-side-border-color-preset, var(--_mono-rte-border-color));\r\n --_mono-rte-bg: var(--mono-rich-text-editor-bg, var(--mono-rich-text-editor-surface, var(--mono-textarea-bg, var(--mono-textarea-surface, var(--_mono-rte-bg-preset, var(--mono-mode-surface))))));\r\n --_mono-rte-shadow: var(--mono-rich-text-editor-shadow, var(--mono-textarea-shadow, var(--_mono-rte-shadow-preset, var(--mono-shadow-xs))));\r\n --_mono-rte-border-width: var(--mono-rich-text-editor-border-width, var(--mono-textarea-border-width, var(--mono-border-width)));\r\n --_mono-rte-radius: var(--mono-rich-text-editor-radius, var(--mono-textarea-radius, var(--_mono-rte-radius-preset, var(--mono-radius-md))));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE: hand-written\r\n `<div mono-rich-text-editor>` that names no size renders like size=\"md\" ── */\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-md, var(--mono-textarea-font-md, var(--mono-text-sm))));\r\n --_mono-rte-icon-size: var(--mono-rich-text-editor-icon-size, var(--_mono-rte-icon-size-preset, 18px));\r\n --_mono-rte-font-family: var(--mono-rich-text-editor-font-family, inherit);\r\n --_mono-rte-min-height: var(--mono-rich-text-editor-min-height, 10rem);\r\n /* EXTENSION — the toolbar band: a muted wash under the frame's top edge */\r\n --_mono-rte-toolbar-bg: var(--mono-rich-text-editor-toolbar-bg, color-mix(in oklab, var(--muted) 60%, var(--_mono-rte-bg)));\r\n\r\n /* ── SunEditor's popovers (dropdowns, dialogs) are the select panel's popover ── */\r\n --_mono-rte-popover-bg: var(--mono-rich-text-editor-popover-bg, var(--mono-select-dropdown-bg, var(--popover)));\r\n --_mono-rte-popover-color: var(--mono-rich-text-editor-popover-color, var(--mono-select-dropdown-color, var(--popover-foreground)));\r\n --_mono-rte-popover-radius: var(--mono-rich-text-editor-popover-radius, var(--mono-select-dropdown-radius, var(--mono-radius-md)));\r\n --_mono-rte-popover-shadow: var(--mono-rich-text-editor-popover-shadow, var(--mono-select-dropdown-shadow, var(--mono-shadow-md)));\r\n\r\n /* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — bg-foreground text-background rounded-md px-3 py-1.5 text-xs\r\n SunEditor's toolbar tooltips; the corner is the style's shared tooltip token */\r\n --_mono-rte-tooltip-bg: var(--mono-rich-text-editor-tooltip-bg, var(--mono-tooltip-bg, var(--foreground)));\r\n --_mono-rte-tooltip-color: var(--mono-rich-text-editor-tooltip-color, var(--mono-tooltip-color, var(--background)));\r\n --_mono-rte-tooltip-radius: var(--mono-rich-text-editor-tooltip-radius, var(--mono-tooltip-radius, var(--mono-radius-md)));\r\n\r\n /* ── SunEditor's tokens, remapped onto the theme ─────────────────────────\r\n Declared on the FRAME'S ancestor so the light-DOM mount inherits them in\r\n both builds. `.sun-editor` re-declares every one of these on itself with\r\n its defaults, so each is delivered again on `.sun-editor` below — this\r\n block is what a consumer sees and overrides; that one is the delivery. */\r\n --_se-main-color: var(--_mono-rte-text);\r\n --_se-main-color-lighter: var(--_mono-rte-muted);\r\n --_se-main-background: var(--_mono-rte-bg);\r\n --_se-main-border: var(--border);\r\n --_se-main-divider: var(--border);\r\n --_se-main-outline: var(--_mono-rte-ring-color);\r\n /* the accent: links and the focus outline */\r\n --_se-active: var(--_mono-rte-ring-color);\r\n --_se-active-dark: color-mix(in oklab, var(--_mono-rte-ring-color) 85%, var(--foreground));\r\n /* basecoat@1.0.2 styles/vega.css .btn[data-variant='ghost'] — hover:bg-accent hover:text-accent-foreground\r\n a pressed toolbar button and a checked list item are the toggle-on state:\r\n the accent WASH with the foreground ink, never a primary tint */\r\n --_se-active-ink: var(--mono-rich-text-editor-active-color, var(--accent-foreground, var(--_mono-rte-text)));\r\n --_se-active-light: var(--mono-rich-text-editor-active-bg, var(--accent, var(--muted)));\r\n --_se-active-light2: var(--mono-mode-surface-hover);\r\n --_se-hover: var(--_mono-rte-text);\r\n --_se-hover-light: var(--mono-mode-ghost-hover);\r\n --_se-hover-light2: var(--mono-mode-surface-hover);\r\n --_se-error: var(--_mono-rte-danger);\r\n --_se-success: var(--_mono-rte-success);\r\n --_se-placeholder: var(--_mono-rte-placeholder);\r\n --_se-radius: var(--mono-radius-sm);\r\n --_se-radius-lg: var(--_mono-rte-popover-radius);\r\n --_se-shadow-layer: var(--_mono-rte-popover-shadow);\r\n --_se-font-family: var(--_mono-rte-font-family);\r\n --_se-font-size: var(--_mono-rte-font-size);\r\n --_se-icon-size: var(--_mono-rte-icon-size);\r\n --_se-min-height: var(--_mono-rte-min-height);\r\n\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field — flex w-full flex-col gap-3 */\r\n[mono-rich-text-editor] {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-rich-text-editor-gap, var(--mono-textarea-gap, calc(var(--mono-spacing) * 3)));\r\n width: 100%;\r\n min-width: 0;\r\n color: var(--_mono-rte-text);\r\n font-family: inherit;\r\n}\r\n\r\n[mono-rich-text-editor],\r\n:where([mono-rich-text-editor]) > *,\r\n:where([mono-rich-text-editor]) > * > *::before,\r\n:where([mono-rich-text-editor]) > * > *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* the shadow build renders every region and marks the empty ones; the light\r\n build renders only what exists */\r\n[mono-rich-text-editor] :is([mono-rte-label], [mono-rte-message], [mono-rte-footer])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n[mono-rich-text-editor] > [mono-rte-message-outlet]:not(:has([mono-rte-footer]:not([mono-empty]))) {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: the textarea's font ladder; the icons step with it\r\n ========================================= */\r\n\r\n[mono-rich-text-editor][mono-size=\"xs\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-xs, var(--mono-textarea-font-xs, var(--mono-text-xs))));\r\n --_mono-rte-icon-size-preset: 14px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"sm\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-sm, var(--mono-textarea-font-sm, var(--mono-textarea-font-md, var(--mono-text-sm)))));\r\n --_mono-rte-icon-size-preset: 16px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"lg\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-lg, var(--mono-textarea-font-lg, var(--mono-textarea-font-md, var(--mono-text-sm)))));\r\n --_mono-rte-icon-size-preset: 20px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"xl\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-xl, var(--mono-textarea-font-xl, var(--mono-text-base))));\r\n --_mono-rte-icon-size-preset: 22px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"xxl\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-xxl, var(--mono-textarea-font-xxl, var(--mono-text-base))));\r\n --_mono-rte-icon-size-preset: 24px;\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the `color` prop is the FOCUS colour, which is also the\r\n editor's active state and links\r\n ========================================= */\r\n\r\n[mono-rich-text-editor][mono-color=\"secondary\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-secondary);\r\n}\r\n[mono-rich-text-editor][mono-color=\"success\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-success);\r\n}\r\n[mono-rich-text-editor][mono-color=\"danger\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-danger);\r\n}\r\n[mono-rich-text-editor][mono-color=\"warning\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-warning);\r\n}\r\n[mono-rich-text-editor][mono-color=\"info\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-info);\r\n}\r\n[mono-rich-text-editor][mono-color=\"teal\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-teal);\r\n}\r\n[mono-rich-text-editor][mono-color=\"purple\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-purple);\r\n}\r\n[mono-rich-text-editor][mono-color=\"neutral\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-neutral);\r\n}\r\n[mono-rich-text-editor][mono-color=\"dark\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-dark);\r\n}\r\n\r\n/* =========================================\r\n Label\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label\r\n — text-sm leading-snug font-medium */\r\n:where([mono-rich-text-editor]) > [mono-rte-label] {\r\n display: flex;\r\n align-items: center;\r\n gap: calc(var(--mono-spacing) * 1);\r\n font-size: var(--mono-rich-text-editor-label-font-size, var(--mono-textarea-label-font-size, var(--mono-text-sm)));\r\n line-height: var(--mono-rich-text-editor-label-line-height, var(--mono-textarea-label-line-height, var(--mono-leading-snug)));\r\n font-weight: var(--mono-rich-text-editor-label-font-weight, var(--mono-textarea-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium))));\r\n color: var(--mono-rich-text-editor-label-color, var(--mono-textarea-label-color, var(--_mono-rte-text)));\r\n}\r\n\r\n[mono-rich-text-editor][mono-validation-state=\"invalid\"] > [mono-rte-label] {\r\n color: var(--mono-rich-text-editor-label-color, var(--mono-textarea-label-color, var(--_mono-rte-invalid)));\r\n}\r\n\r\n:where([mono-rich-text-editor]) [mono-rte-required-mark] {\r\n color: var(--mono-rich-text-editor-required-color, var(--mono-textarea-required-color, var(--destructive)));\r\n}\r\n\r\n[mono-rich-text-editor][mono-disabled] > [mono-rte-label] {\r\n opacity: 0.5;\r\n}\r\n\r\n/* =========================================\r\n The frame — the textarea's box, holding the editor\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > textarea, .textarea\r\n — rounded-md border border-input bg-transparent shadow-xs\r\n transition-[color,box-shadow] (dark:bg-input/30 via --mono-mode-surface);\r\n mono: no padding — the editor's toolbar and page fill the box edge to edge */\r\n:where([mono-rich-text-editor]) [mono-rte-field] {\r\n --_mono-rte-ring: 0 0 #0000;\r\n position: relative;\r\n width: 100%;\r\n min-width: 0;\r\n border: var(--_mono-rte-border-width) solid var(--_mono-rte-side-border-color);\r\n border-bottom-color: var(--_mono-rte-border-color);\r\n border-radius: var(--_mono-rte-radius);\r\n background-color: var(--_mono-rte-bg);\r\n color: var(--_mono-rte-text);\r\n box-shadow: var(--_mono-rte-ring), var(--_mono-rte-shadow);\r\n /* the editor paints its own corners; clip so the toolbar's top corners follow\r\n the frame's radius */\r\n overflow: hidden;\r\n transition-property: color, background-color, border-color, box-shadow, opacity;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* Before the editor loads (and on the server) the frame is a quiet box the\r\n size of the editing area, so the form does not jump when it lands. */\r\n[mono-rich-text-editor][mono-loading] [mono-rte-field] {\r\n min-height: calc(var(--_mono-rte-min-height) + 2.75rem);\r\n}\r\n[mono-rich-text-editor][mono-unavailable] [mono-rte-field] {\r\n display: none;\r\n}\r\n\r\n/* focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 —\r\n the focus is on SunEditor's contenteditable inside the frame */\r\n:where([mono-rich-text-editor]) [mono-rte-field]:focus-within {\r\n border-color: var(--_mono-rte-side-border-color);\r\n border-bottom-color: var(--_mono-rte-ring-color);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) color-mix(in oklab, var(--_mono-rte-ring-color) var(--_mono-rte-ring-alpha), transparent);\r\n}\r\n[mono-rich-text-editor]:is(:not([mono-variant]), [mono-variant=\"outlined\"], [mono-variant=\"filled\"]) [mono-rte-field]:focus-within {\r\n border-color: var(--_mono-rte-ring-color);\r\n}\r\n\r\n/* aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\r\n (dark: /50 and /40, carried by the mode tokens) */\r\n[mono-rich-text-editor][mono-validation-state=\"invalid\"] [mono-rte-field] {\r\n --_mono-rte-border-color: var(--mono-mode-invalid-border);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) var(--mono-mode-invalid-ring);\r\n}\r\n\r\n/* EXTENSION — the same treatment in the success / warning roles */\r\n[mono-rich-text-editor][mono-validation-state=\"valid\"] [mono-rte-field] {\r\n --_mono-rte-border-color: color-mix(in oklab, var(--_mono-rte-valid) var(--mono-mode-state-border-alpha), transparent);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) color-mix(in oklab, var(--_mono-rte-valid) var(--mono-mode-state-ring-alpha), transparent);\r\n}\r\n[mono-rich-text-editor][mono-validation-state=\"warning\"] [mono-rte-field] {\r\n --_mono-rte-border-color: color-mix(in oklab, var(--_mono-rte-warning) var(--mono-mode-state-border-alpha), transparent);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) color-mix(in oklab, var(--_mono-rte-warning) var(--mono-mode-state-ring-alpha), transparent);\r\n}\r\n\r\n/* disabled:cursor-not-allowed disabled:opacity-50 */\r\n[mono-rich-text-editor][mono-disabled] [mono-rte-field] {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n background-color: var(--mono-rich-text-editor-disabled-bg, var(--mono-textarea-disabled-bg, var(--_mono-rte-bg)));\r\n}\r\n\r\n/* EXTENSION — readonly is legible, not dimmed: a muted surface */\r\n[mono-rich-text-editor][mono-readonly]:not([mono-disabled]) [mono-rte-field] {\r\n --_se-main-background: var(--mono-rich-text-editor-readonly-bg, var(--mono-textarea-readonly-bg, var(--muted)));\r\n background-color: var(--mono-rich-text-editor-readonly-bg, var(--mono-textarea-readonly-bg, var(--muted)));\r\n}\r\n\r\n/* =========================================\r\n Variants — EXTENSION: the two other looks Basecoat's styles ship, through\r\n the textarea's own knobs so a flavour that restyles the textarea restyles this\r\n ========================================= */\r\n\r\n[mono-rich-text-editor]:is(:not([mono-variant]), [mono-variant=\"outlined\"]) {\r\n --_mono-rte-bg-preset: var(--mono-rich-text-editor-outline-bg, var(--mono-textarea-outline-bg));\r\n --_mono-rte-border-color-preset: var(--mono-rich-text-editor-outline-border-color, var(--mono-textarea-outline-border-color));\r\n --_mono-rte-side-border-color-preset: var(--mono-rich-text-editor-outline-side-border-color, var(--mono-textarea-outline-side-border-color));\r\n --_mono-rte-shadow-preset: var(--mono-rich-text-editor-outline-shadow, var(--mono-textarea-outline-shadow, var(--mono-shadow-xs)));\r\n --_mono-rte-radius-preset: var(--mono-rich-text-editor-outline-radius, var(--mono-textarea-outline-radius));\r\n --_mono-rte-ring-width-preset: var(--mono-rich-text-editor-outline-ring-width, var(--mono-textarea-outline-ring-width));\r\n}\r\n\r\n/* `filled` ≡ luma / mira / rhea's textarea: a tinted surface, no border, no shadow */\r\n[mono-rich-text-editor][mono-variant=\"filled\"] {\r\n --_mono-rte-bg-preset: var(--mono-rich-text-editor-filled-bg, var(--mono-textarea-filled-bg, color-mix(in oklab, var(--input) 50%, transparent)));\r\n --_mono-rte-border-color-preset: transparent;\r\n --_mono-rte-shadow-preset: 0 0 #0000;\r\n}\r\n\r\n/* `underlined` ≡ sera's: square, the bottom edge only, and no ring */\r\n[mono-rich-text-editor][mono-variant=\"underlined\"] {\r\n --_mono-rte-radius-preset: 0;\r\n --_mono-rte-bg-preset: transparent;\r\n --_mono-rte-side-border-color-preset: transparent;\r\n --_mono-rte-shadow-preset: 0 0 #0000;\r\n --_mono-rte-ring-width-preset: 0px;\r\n}\r\n[mono-rich-text-editor][mono-variant=\"underlined\"] [mono-rte-field] {\r\n --_se-main-background: transparent;\r\n --_mono-rte-toolbar-bg: transparent;\r\n}\r\n\r\n/* =========================================\r\n Footer — the message row\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .fieldset legend + p, .field > p, .field section > p\r\n — text-sm text-muted-foreground leading-normal font-normal */\r\n:where([mono-rich-text-editor]) [mono-rte-footer] {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: calc(var(--mono-spacing) * 2);\r\n}\r\n\r\n:where([mono-rich-text-editor]) [mono-rte-message-wrap] {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-rich-text-editor]) [mono-rte-message] {\r\n font-size: var(--mono-rich-text-editor-message-font-size, var(--mono-textarea-message-font-size, var(--mono-text-sm)));\r\n line-height: var(--mono-rich-text-editor-message-line-height, var(--mono-textarea-message-line-height, var(--mono-leading-normal)));\r\n font-weight: var(--mono-font-weight-normal);\r\n color: var(--_mono-rte-muted);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field [role=\"alert\"] — text-destructive text-sm */\r\n:where([mono-rich-text-editor]) [mono-rte-message=\"invalid\"] {\r\n color: var(--_mono-rte-invalid);\r\n}\r\n:where([mono-rich-text-editor]) [mono-rte-message=\"valid\"] {\r\n color: var(--_mono-rte-valid);\r\n}\r\n:where([mono-rich-text-editor]) [mono-rte-message=\"warning\"] {\r\n color: var(--_mono-rte-warning);\r\n}\r\n\r\n/* EXTENSION — the peer-missing notice: reads like a validation message, never like a crash */\r\n:where([mono-rich-text-editor]) [mono-rte-unavailable] {\r\n padding: calc(var(--mono-spacing) * 2.5) calc(var(--mono-spacing) * 3);\r\n border: var(--mono-border-width) dashed var(--_mono-rte-danger);\r\n border-radius: var(--_mono-rte-radius);\r\n background: color-mix(in oklab, var(--_mono-rte-danger) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-rte-danger);\r\n font-size: var(--mono-text-sm);\r\n line-height: var(--mono-leading-normal);\r\n overflow-wrap: anywhere;\r\n}\r\n\r\n/* =========================================\r\n SunEditor inside the frame — from the PAGE sheet (the mount is light DOM)\r\n ========================================= */\r\n\r\n[mono-rte-mount] {\r\n display: block;\r\n width: 100%;\r\n min-width: 0;\r\n}\r\n\r\n/* Deliver the remap. `.sun-editor` sets every `--se-*` on itself from\r\n SunEditor's sheet, so the same selector (plus ours for specificity) has to\r\n set them again — the values, though, come from the frame's `--_se-*` above,\r\n which the mount inherits. Only the tokens a theme is made of; the rest keep\r\n SunEditor's defaults. */\r\n[mono-rte-mount] .sun-editor,\r\n[mono-rte-mount] .sun-editor-editable,\r\n.sun-editor.sun-editor-carrier-wrapper {\r\n --se-main-font-family: var(--_se-font-family);\r\n --se-content-font-family: var(--_se-font-family);\r\n --se-main-font-size: var(--_se-font-size);\r\n --se-btn-font-size: var(--_se-font-size);\r\n --se-edit-font-size: calc(var(--_se-font-size) * 1.1);\r\n --se-icon-size: var(--_se-icon-size);\r\n --se-min-height: var(--_se-min-height);\r\n --se-border-radius: var(--_se-radius);\r\n --se-border-radius-lg: var(--_se-radius-lg);\r\n\r\n --se-main-color: var(--_se-main-color);\r\n --se-main-color-lighter: var(--_se-main-color-lighter);\r\n --se-main-font-color: var(--_se-main-color);\r\n --se-main-background-color: var(--_se-main-background);\r\n --se-main-border-color: var(--_se-main-border);\r\n --se-main-divider-color: var(--_se-main-divider);\r\n --se-main-outline-color: var(--_se-main-outline);\r\n --se-main-shadow-color: var(--_se-main-divider);\r\n --se-statusbar-font-color: var(--_se-main-color-lighter);\r\n --se-dropdown-font-color: var(--_se-main-color);\r\n\r\n --se-edit-font-color: var(--_se-main-color);\r\n --se-edit-background-color: var(--_se-main-background);\r\n --se-edit-anchor: var(--_se-active);\r\n --se-caret-color: var(--_se-main-color);\r\n --se-placeholder-color: var(--_se-placeholder);\r\n\r\n --se-hover-color: var(--_se-hover);\r\n --se-hover-dark-color: var(--_se-main-border);\r\n --se-hover-light-color: var(--_se-hover-light);\r\n --se-hover-light2-color: var(--_se-hover-light2);\r\n --se-hover-light3-color: var(--_se-hover-light2);\r\n\r\n /* the accent for outlines and links; the toggle-on state for buttons and\r\n checked list items (ink = --se-active-dark3/4, wash = --se-active-light*) */\r\n --se-active-color: var(--_se-active);\r\n --se-active-hover-color: var(--_se-active-ink);\r\n --se-active-dark-color: var(--_se-main-border);\r\n --se-active-dark2-color: var(--_se-active-dark);\r\n --se-active-dark3-color: var(--_se-active-ink);\r\n --se-active-dark4-color: var(--_se-main-border);\r\n --se-active-dark5-color: var(--_se-active-dark);\r\n --se-active-light-color: var(--_se-active-light);\r\n --se-active-light2-color: var(--_se-active-light);\r\n --se-active-light3-color: var(--_se-active-light2);\r\n --se-active-light4-color: var(--_se-active-light);\r\n --se-active-light5-color: var(--_se-active-light2);\r\n --se-active-light6-color: var(--_se-active-light2);\r\n\r\n --se-error-color: var(--_se-error);\r\n --se-success-color: var(--_se-success);\r\n\r\n --se-select-menu-hover-bg: var(--_se-hover-light);\r\n --se-select-menu-active-bg: var(--_se-active-light);\r\n --se-modal-background-color: var(--_mono-rte-popover-bg);\r\n --se-modal-color: var(--_mono-rte-popover-color);\r\n --se-modal-border-color: var(--_se-main-border);\r\n --se-modal-anchor-color: var(--_se-active);\r\n --se-shadow-layer: var(--_se-shadow-layer);\r\n\r\n /* ── the sub-surfaces SunEditor paints from its own light palette ────────\r\n code view, the table picker, the floating controllers, the modal chrome,\r\n the overlay, the editing area's own colours — every one a page token now */\r\n --se-codeview-font-family: var(--font-mono, ui-monospace, monospace);\r\n --se-markdown-font-family: var(--font-mono, ui-monospace, monospace);\r\n --se-code-view-color: var(--_mono-rte-text);\r\n --se-code-view-background-color: var(--_se-main-background);\r\n --se-code-view-line-color: var(--_mono-rte-muted);\r\n --se-code-view-line-background-color: var(--muted);\r\n --se-markdown-view-color: var(--_mono-rte-text);\r\n --se-markdown-view-background-color: var(--_se-main-background);\r\n --se-markdown-view-line-color: var(--_mono-rte-muted);\r\n --se-markdown-view-line-background-color: var(--muted);\r\n\r\n --se-table-picker-color: var(--_mono-rte-popover-bg);\r\n --se-table-picker-border-color: var(--_se-main-border);\r\n --se-table-picker-highlight-color: color-mix(in oklab, var(--_se-active) var(--mono-mode-tint), var(--_mono-rte-popover-bg));\r\n --se-table-picker-highlight-border-color: var(--_se-active);\r\n\r\n --se-controller-background-color: var(--_mono-rte-popover-bg);\r\n --se-controller-color: var(--_mono-rte-popover-color);\r\n --se-controller-border-color: var(--_se-main-border);\r\n --se-shadow-controller: var(--_se-shadow-layer);\r\n --se-shadow-controller-color: transparent;\r\n --se-shadow-layer-color: transparent;\r\n --se-overlay-background-color: var(--mono-mode-backdrop, #000);\r\n\r\n --se-modal-preview-color: var(--_mono-rte-muted);\r\n --se-modal-file-input-background-color: var(--muted);\r\n --se-modal-input-disabled-color: var(--_mono-rte-muted);\r\n --se-modal-input-disabled-background-color: var(--muted);\r\n --se-input-btn-border-color: var(--_se-main-border);\r\n --se-input-btn-disabled-color: var(--_mono-rte-muted);\r\n --se-main-out-color: var(--_se-main-border);\r\n --se-hover-dark2-color: var(--_se-main-border);\r\n --se-hover-dark3-color: var(--_se-main-border);\r\n --se-loading-color: var(--_se-active);\r\n\r\n --se-drag-caret-color: var(--_se-active);\r\n --se-edit-active: var(--_se-active);\r\n --se-edit-hover: var(--_se-active-light);\r\n --se-edit-outline: var(--_se-main-border);\r\n --se-edit-font-pre: var(--_mono-rte-text);\r\n --se-edit-font-quote: var(--_mono-rte-muted);\r\n --se-edit-background-pre: var(--muted);\r\n --se-edit-border-light: var(--_se-main-border);\r\n --se-edit-border-dark: var(--_se-main-border);\r\n --se-edit-border-dark-n1: var(--_se-main-border);\r\n --se-edit-border-dark-n2: var(--_se-main-border);\r\n --se-edit-border-table: var(--_se-main-border);\r\n --se-edit-hr-color: var(--_se-main-border);\r\n --se-edit-hr-on-back: var(--_se-active-light);\r\n --se-edit-anchor-on-back: color-mix(in oklab, var(--_se-active) var(--mono-mode-tint), transparent);\r\n --se-edit-anchor-on-font: var(--_se-active);\r\n\r\n --se-success-dark-color: var(--_se-success);\r\n --se-success-dark2-color: var(--_se-success);\r\n --se-success-dark3-color: var(--_se-success);\r\n --se-success-light-color: color-mix(in oklab, var(--_se-success) var(--mono-mode-tint), transparent);\r\n --se-success-light2-color: color-mix(in oklab, var(--_se-success) var(--mono-mode-tint), transparent);\r\n --se-success-light3-color: color-mix(in oklab, var(--_se-success) var(--mono-mode-tint-hover), transparent);\r\n --se-success-light4-color: var(--_se-success);\r\n --se-success-light5-color: var(--_se-success);\r\n --se-error-dark-color: var(--_se-error);\r\n --se-error-dark2-color: var(--_se-error);\r\n --se-error-dark3-color: var(--_se-error);\r\n --se-error-light-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint-hover), transparent);\r\n --se-error-light2-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n --se-error-light3-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n --se-error-light4-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n --se-error-light5-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n}\r\n\r\n/* In the carrier \"main background\" is the LAYER surface — the dropdown lists,\r\n dialogs and alerts — so it is the popover surface there, not the editing\r\n surface (which is transparent in light mode: an invisible list). */\r\n.sun-editor.sun-editor-carrier-wrapper {\r\n --se-main-background-color: var(--_mono-rte-popover-bg);\r\n --se-main-font-color: var(--_mono-rte-popover-color);\r\n --se-dropdown-font-color: var(--_mono-rte-popover-color);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .select:not(select) [role='option'].active, .select:not(select) [role='option']:focus-visible — bg-muted text-foreground\r\n a checked list item (the current font, size, format …) is a selected option:\r\n SunEditor only re-inks it, and its ink was the primary tint */\r\n[mono-rte-mount] .sun-editor .se-list-inner li.se-checked > button,\r\n.sun-editor.sun-editor-carrier-wrapper .se-list-inner li.se-checked > button {\r\n background-color: var(--_se-active-light);\r\n color: var(--_se-active-ink);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > textarea, .textarea — placeholder:text-muted-foreground\r\n Every placeholder the editor shows — the Size / Font inputs in the toolbar,\r\n the empty editing area, a dialog's fields — is the field placeholder: the\r\n muted ink, OPAQUE. Left alone, a host page's preflight (Tailwind / UnoCSS)\r\n makes a placeholder 50% translucent currentColor, which over a tinted page\r\n reads as a colour of its own; and SunEditor inks its empty-area placeholder\r\n with its OUTLINE token, the accent. */\r\n[mono-rte-mount] .sun-editor input::placeholder,\r\n[mono-rte-mount] .sun-editor textarea::placeholder,\r\n.sun-editor.sun-editor-carrier-wrapper input::placeholder,\r\n.sun-editor.sun-editor-carrier-wrapper textarea::placeholder {\r\n color: var(--_mono-rte-placeholder);\r\n opacity: 1;\r\n}\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-placeholder,\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-placeholder-line:before {\r\n color: var(--_mono-rte-placeholder);\r\n}\r\n\r\n/* The frame replaces SunEditor's own — no double border, no second radius. */\r\n[mono-rte-mount] .sun-editor {\r\n border: 0;\r\n border-radius: 0;\r\n background: transparent;\r\n width: 100% !important;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — bg-foreground text-background inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs\r\n SunEditor's toolbar tooltips, painted as Basecoat's tooltip: it drew them in\r\n `--se-main-font-color` on `--se-main-background-color`, which in dark mode\r\n is a translucent wash under near-white text. (0,5,0) over SunEditor's (0,4,0). */\r\n[mono-rte-mount] .sun-editor .se-tooltip .se-tooltip-inner .se-tooltip-text,\r\n.sun-editor.sun-editor-carrier-wrapper .se-tooltip .se-tooltip-inner .se-tooltip-text {\r\n padding: calc(var(--mono-spacing) * 1.5) calc(var(--mono-spacing) * 3);\r\n border-radius: var(--_mono-rte-tooltip-radius);\r\n background-color: var(--_mono-rte-tooltip-bg);\r\n color: var(--_mono-rte-tooltip-color);\r\n /* the page font, handed over by the element: a tooltip inside the font list\r\n would otherwise inherit the item's own face */\r\n font-family: var(--_mono-rte-page-font, inherit);\r\n font-size: var(--mono-text-xs);\r\n line-height: var(--mono-text-xs--lh);\r\n font-weight: var(--mono-font-weight-normal);\r\n white-space: nowrap;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — the dropdown items (font family,\r\n font size, the colour palettes …) carried native `title` tooltips, which no theme can\r\n paint; the element rewrites them into `data-tooltip`, drawn here the way Basecoat\r\n draws its own: a pseudo-element with the attribute as content, above the item\r\n (the anchor is `position: relative`, as in Basecoat's compiled `[data-tooltip]`) */\r\n[mono-rte-mount] .sun-editor [data-tooltip],\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip] {\r\n position: relative;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — bg-foreground text-background inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs */\r\n[mono-rte-mount] .sun-editor [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip]::after {\r\n content: attr(data-tooltip);\r\n position: absolute;\r\n left: 50%;\r\n bottom: calc(100% + calc(var(--mono-spacing) * 1.5));\r\n z-index: 60;\r\n width: max-content;\r\n max-width: 20rem;\r\n padding: calc(var(--mono-spacing) * 1.5) calc(var(--mono-spacing) * 3);\r\n border-radius: var(--_mono-rte-tooltip-radius);\r\n background-color: var(--_mono-rte-tooltip-bg);\r\n color: var(--_mono-rte-tooltip-color);\r\n font-family: var(--_mono-rte-page-font, inherit);\r\n font-size: var(--mono-text-xs);\r\n line-height: var(--mono-text-xs--lh);\r\n font-weight: var(--mono-font-weight-normal);\r\n font-style: normal;\r\n text-indent: 0;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n pointer-events: none;\r\n visibility: hidden;\r\n opacity: 0;\r\n transform: translateX(-50%) scale(0.95);\r\n transform-origin: bottom center;\r\n transition-property: opacity, transform, visibility;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration-fast, 100ms);\r\n}\r\n\r\n[mono-rte-mount] .sun-editor [data-tooltip]:hover::after,\r\n[mono-rte-mount] .sun-editor [data-tooltip]:focus-visible::after,\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip]:hover::after,\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip]:focus-visible::after {\r\n visibility: visible;\r\n opacity: 1;\r\n transform: translateX(-50%) scale(1);\r\n}\r\n\r\n/* a dropdown layer clips its own overflow, so a tooltip above the FIRST row of a\r\n palette would be cut off at the layer edge: that row opens its tooltips below */\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet:first-child [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet:first-child [data-tooltip]::after {\r\n bottom: auto;\r\n top: calc(100% + calc(var(--mono-spacing) * 1.5));\r\n transform-origin: top center;\r\n}\r\n\r\n/* SunEditor shrinks a hovered / active swatch with `transform: scale(.8)`. A\r\n transform makes the button a stacking context, so its tooltip — a child —\r\n can never rise above the swatches painted after it (the next row covers a\r\n first-row tooltip) and shrinks with it. The same \"pressed\" read as an inset\r\n ring of the layer surface instead; the hovered swatch lifts above its row. */\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet button:hover,\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet button.active,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet button:hover,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet button.active {\r\n transform: none;\r\n box-shadow: inset 0 0 0 3px var(--_mono-rte-popover-bg, var(--popover));\r\n}\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet button:hover,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet button:hover {\r\n z-index: 1;\r\n}\r\n\r\n/* …and the same clip sideways: a centred tooltip on the first / last column of\r\n a palette row runs past the layer's edge, so those hang from the item's own\r\n outer edge instead */\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:first-child [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:first-child [data-tooltip]::after {\r\n left: 0;\r\n transform: scale(0.95);\r\n transform-origin: left center;\r\n}\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:last-child [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:last-child [data-tooltip]::after {\r\n left: auto;\r\n right: 0;\r\n transform: scale(0.95);\r\n transform-origin: right center;\r\n}\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:hover::after,\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:focus-visible::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:hover::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:focus-visible::after {\r\n transform: scale(1);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip][data-arrow]::after — bg-foreground */\r\n[mono-rte-mount] .sun-editor .se-tooltip .se-tooltip-inner .se-tooltip-text:after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-tooltip .se-tooltip-inner .se-tooltip-text:after {\r\n border-color: transparent transparent var(--_mono-rte-tooltip-bg) transparent;\r\n}\r\n[mono-rte-mount] .sun-editor .se-toolbar.se-toolbar-bottom .se-tooltip .se-tooltip-inner .se-tooltip-text:after {\r\n border-color: var(--_mono-rte-tooltip-bg) transparent transparent transparent;\r\n}\r\n\r\n/* EXTENSION — the toolbar band, on a hairline */\r\n[mono-rte-mount] .sun-editor .se-toolbar {\r\n background: var(--_mono-rte-toolbar-bg);\r\n box-shadow: inset 0 calc(var(--mono-border-width) * -1) 0 0 var(--border);\r\n}\r\n\r\n/* The carrier — modals, alerts and the dropdown lists SunEditor parks on <body>\r\n — is in the token block and the delivery rule above: it paints exactly like\r\n the frame it belongs to, at the element's default `color` and `size`. */\r\n\r\n/* =========================================\r\n SunEditor's dialogs — the modal SunEditor parks in its carrier: its chrome\r\n is the page's dialog, its fields the ported input, its buttons the ported\r\n button, its tabs the ported tabs. Selectors mirror SunEditor's own chains\r\n (prefixed by the scope) so they out-weigh them by exactly the scope.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * — bg-popover text-popover-foreground */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-content {\r\n border: var(--mono-border-width) solid var(--_se-main-border);\r\n border-radius: var(--_mono-rte-popover-radius);\r\n box-shadow: var(--_mono-rte-popover-shadow);\r\n color: var(--_mono-rte-popover-color);\r\n}\r\n\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-header .se-modal-title {\r\n font-size: var(--mono-text-base);\r\n font-weight: var(--mono-font-weight-semibold);\r\n color: var(--_mono-rte-popover-color);\r\n}\r\n\r\n/* the close button: a ghost button, muted at rest */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-header .se-close-btn {\r\n color: var(--_mono-rte-muted);\r\n text-shadow: none;\r\n border-radius: var(--mono-radius-sm);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] — the modal's Image / Link tabs:\r\n a text tab with the accent under the active one, not a boxed strip */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs {\r\n /* SunEditor floats the tab buttons inside a 25px-high strip; as a flex row the\r\n strip is as tall as the tabs and stays in flow above the form */\r\n display: flex;\r\n align-items: stretch;\r\n gap: calc(var(--mono-spacing) * 1);\r\n height: auto;\r\n margin-bottom: calc(var(--mono-spacing) * 3);\r\n border-bottom: var(--mono-border-width) solid var(--_se-main-border);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs button {\r\n background-color: transparent;\r\n border: 0;\r\n border-bottom: 2px solid transparent;\r\n margin-bottom: calc(var(--mono-border-width) * -1);\r\n padding: calc(var(--mono-spacing) * 1.5) calc(var(--mono-spacing) * 3);\r\n color: var(--_mono-rte-muted);\r\n font-size: var(--mono-text-sm);\r\n font-weight: var(--mono-font-weight-medium);\r\n transition-property: color, border-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs button:hover {\r\n background-color: transparent;\r\n color: var(--_mono-rte-text);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs button.active {\r\n background-color: transparent;\r\n border-bottom-color: var(--_se-active);\r\n color: var(--_mono-rte-text);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .input-group — rounded-md border border-input\r\n the modal's text fields and selects are the ported input: its surface, edge,\r\n corner and ring, through the input's own public knobs */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-input-form,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-input-select,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form select,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-controller input[type='text'],\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-controller select {\r\n background-color: var(--mono-input-bg, var(--mono-input-surface, var(--mono-input-outline-bg, var(--mono-mode-surface))));\r\n border: var(--mono-border-width) solid var(--mono-input-rest-border, var(--mono-input-border-color, var(--mono-input-outline-border-color, var(--input))));\r\n border-radius: var(--mono-input-radius-sm, var(--mono-input-outline-radius, var(--mono-input-radius, var(--mono-radius-md))));\r\n color: var(--_mono-rte-text);\r\n box-shadow: var(--mono-input-outline-shadow, var(--mono-shadow-xs));\r\n font-size: var(--mono-text-sm);\r\n outline: none;\r\n transition-property: border-color, box-shadow;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-input-form:focus,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form select:focus {\r\n border-color: var(--_se-active);\r\n box-shadow: 0 0 0 var(--mono-ring-width) color-mix(in oklab, var(--_se-active) var(--mono-ring-alpha), transparent);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner input:disabled {\r\n opacity: 0.5;\r\n}\r\n\r\n/* the file drop area: a dashed muted panel */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-flex-input-wrapper > .se-input-form-abs {\r\n border-radius: var(--mono-input-radius-sm, var(--mono-input-outline-radius, var(--mono-input-radius, var(--mono-radius-md))));\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .btn — Submit is the primary button */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-content .se-btn-primary {\r\n background-color: var(--mono-button-bg, var(--primary));\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--mono-button-sm-radius, var(--mono-button-radius, var(--mono-radius-md)));\r\n color: var(--mono-button-color, var(--primary-foreground));\r\n font-size: var(--mono-text-sm);\r\n font-weight: var(--mono-font-weight-medium);\r\n box-shadow: var(--mono-shadow-xs);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary:hover,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary:focus {\r\n background-color: color-mix(in oklab, var(--mono-button-bg, var(--primary)) 90%, transparent);\r\n border-color: transparent;\r\n color: var(--mono-button-color, var(--primary-foreground));\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary:disabled {\r\n opacity: 0.5;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .btn[data-variant='outline'] — the modal's secondary buttons */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-btn-revert,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-modal-form-files .se-modal-files-edge-button,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-modal-flex-form .se-btn {\r\n border: var(--mono-border-width) solid var(--input);\r\n border-radius: var(--mono-button-sm-radius, var(--mono-button-radius, var(--mono-radius-md)));\r\n background-color: var(--background);\r\n color: var(--_mono-rte-text);\r\n opacity: 1;\r\n}\r\n\r\n/* the native checkboxes and radios take the accent */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) input[type='checkbox'],\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) input[type='radio'] {\r\n accent-color: var(--_se-active);\r\n}\r\n\r\n/* the floating controllers (link / image / table) are popovers */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-controller {\r\n border-radius: var(--_mono-rte-popover-radius);\r\n}\r\n\r\n/* Full screen — SunEditor fixes its root over the page (inline style, no class of\r\n its own; the element marks the mount when SunEditor reports the toggle, and the\r\n inline style is the fallback). The frame stays behind, so the editor takes the\r\n PAGE surface itself: opaque, in the mode's colours, the toolbar band on top. */\r\n[mono-rte-mount][mono-fullscreen] .sun-editor,\r\n[mono-rte-mount] .sun-editor[style*=\"position: fixed\"] {\r\n --_se-main-background: var(--mono-rich-text-editor-fullscreen-bg, var(--background));\r\n --_mono-rte-toolbar-bg: var(--mono-rich-text-editor-toolbar-bg, color-mix(in oklab, var(--muted) 60%, var(--mono-rich-text-editor-fullscreen-bg, var(--background))));\r\n background: var(--mono-rich-text-editor-fullscreen-bg, var(--background));\r\n color: var(--_mono-rte-text);\r\n}\r\n\r\n/* code view: the page's mono face on the editing surface, the line column muted */\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-code-viewer,\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-code-wrapper .se-code-view-line {\r\n font-family: var(--font-mono, ui-monospace, monospace);\r\n font-size: var(--mono-text-sm);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-rich-text-editor]) [mono-rte-field] {\r\n transition: none;\r\n }\r\n}\r\n";
1280
+ //#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\rich-text-editor\rich-text-editor.css?raw.js
1281
+ var rich_text_editor_css_raw_default = "/* =========================================================================\r\n mono-rich-text-editor — a mono form field whose input is a SunEditor v3\r\n instance. An EXTENSION: Basecoat has no editor, so the CHROME is the ported\r\n textarea's `.field` (basecoat-css@1.0.2, vega style) — label, frame, message\r\n — and the EDITOR is SunEditor's own DOM, styled by ITS stylesheet\r\n (`suneditor/css/editor`, loaded by the element at runtime) and themed from\r\n here by remapping its `--se-*` tokens onto the Basecoat tokens.\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-rich-text-editor size=\"sm\" color=\"danger\" label=\"Body\" helper-text=\"…\">\r\n <div mono-rich-text-editor mono-size=\"sm\" mono-color=\"danger\">\r\n <label mono-rte-label>Body</label>\r\n <div mono-rte-field><div mono-rte-mount>…SunEditor…</div></div>\r\n <div mono-rte-footer><div mono-rte-message-wrap><div mono-rte-message=\"helper\">…</div></div></div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary, `:not([mono-variant])` = outlined). The element\r\n renders these on its root (both builds) plus the STATES `mono-disabled` /\r\n `mono-readonly` / `mono-required` / `mono-loading` / `mono-unavailable` /\r\n `mono-has-value` and `mono-validation-state=\"valid|invalid|warning\"`. The\r\n old classes (`.mono-rich-text-editor.md.primary.outlined`) are still emitted\r\n as inert hooks until 2.0 but no rule here reads them.\r\n\r\n THE PARTS ARE FAMILY-UNIQUE (`mono-rte-*`): the frame holds SunEditor's whole\r\n DOM, and a consumer's content may carry anything.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-rich-text-editor] ≡ .field (flex w-full flex-col gap-3)\r\n [mono-rich-text-editor] > [mono-rte-label] ≡ .field > label / .label\r\n [mono-rte-field] ≡ .textarea's box (rounded-md border-input bg-transparent shadow-xs,\r\n focus-within: border-ring ring-3 ring-ring/50) — the editor sits inside\r\n [mono-rte-mount] .sun-editor .se-toolbar ≡ EXTENSION (a muted band under the frame's top edge)\r\n [mono-rte-footer] > [mono-rte-message-wrap] > [mono-rte-message=\"…\"] ≡ .field > p / .field [role='alert']\r\n [mono-validation-state=\"invalid\"] ≡ aria-invalid:border-destructive aria-invalid:ring-destructive/20\r\n [mono-validation-state=\"valid|warning\"] ≡ EXTENSION (the same treatment in --success / --warning)\r\n [mono-size=\"xs|sm|lg|xl|xxl\"] ≡ EXTENSION (the textarea's font ladder; icons step with it)\r\n [mono-variant=\"filled\"] ≡ EXTENSION (luma / mira / rhea's textarea)\r\n [mono-variant=\"underlined\"] ≡ EXTENSION (sera's: the bottom edge only, no ring)\r\n [mono-rte-unavailable] ≡ EXTENSION (the peer-missing notice)\r\n .se-tooltip-text (SunEditor's) ≡ [data-tooltip]::before (bg-foreground text-background rounded-md px-3 py-1.5 text-xs)\r\n\r\n FLAVORS: the frame IS the textarea's box, so every metric resolves\r\n `--mono-rich-text-editor-<k>` → `--mono-textarea-<k>` → the base through the\r\n SAME chains textarea.css uses — a flavour that retunes the textarea retunes\r\n this frame, and no flavour file carries an editor entry. SunEditor's own\r\n popovers (dropdowns, the modal layer it parks on <body>) take the select\r\n panel's popover chain (`--mono-select-dropdown-*`), like every other popover.\r\n\r\n The editor DOM is LIGHT DOM in both builds (see `rich-text-editor-core.ts`),\r\n so the `--se-*` remap is declared on the frame and inherited by the mount —\r\n through a `<slot>` in the shadow build, which custom properties cross — and\r\n DELIVERED on `.sun-editor` from the PAGE sheet (the shadow sheet cannot reach\r\n a slotted descendant). Nothing below reaches into SunEditor's selectors except\r\n to flatten the frame it paints around itself, which the mono frame replaces.\r\n ========================================================================= */\r\n\r\nmono-rich-text-editor {\r\n display: block;\r\n}\r\n\r\n/* The token block — on the element root AND on SunEditor's carrier (the layer it\r\n parks on <body> for its dropdown lists, dialogs and alerts), which is outside\r\n every frame and can inherit nothing from it. The element's own props (`color`,\r\n `size`) cannot reach the carrier either: it takes the defaults. */\r\n[mono-rich-text-editor],\r\n.sun-editor.sun-editor-carrier-wrapper {\r\n /* ── palette: each slot is a public knob over the textarea's, over a Basecoat token ── */\r\n --_mono-rte-text: var(--mono-rich-text-editor-text, var(--mono-textarea-text, var(--foreground)));\r\n --_mono-rte-placeholder: var(--mono-rich-text-editor-placeholder, var(--mono-textarea-placeholder, var(--muted-foreground)));\r\n --_mono-rte-muted: var(--mono-rich-text-editor-muted, var(--mono-textarea-muted, var(--muted-foreground)));\r\n --_mono-rte-primary: var(--mono-rich-text-editor-primary, var(--mono-textarea-primary, var(--ring)));\r\n --_mono-rte-secondary: var(--mono-rich-text-editor-secondary, var(--mono-textarea-secondary, var(--muted-foreground)));\r\n --_mono-rte-success: var(--mono-rich-text-editor-success, var(--mono-textarea-success, var(--success)));\r\n --_mono-rte-danger: var(--mono-rich-text-editor-danger, var(--mono-textarea-danger, var(--destructive)));\r\n --_mono-rte-warning: var(--mono-rich-text-editor-warning, var(--mono-textarea-warning, var(--warning)));\r\n --_mono-rte-info: var(--mono-rich-text-editor-info, var(--mono-textarea-info, var(--info)));\r\n --_mono-rte-teal: var(--mono-rich-text-editor-teal, var(--mono-textarea-teal, var(--teal)));\r\n --_mono-rte-purple: var(--mono-rich-text-editor-purple, var(--mono-textarea-purple, var(--purple)));\r\n --_mono-rte-neutral: var(--mono-rich-text-editor-neutral, var(--mono-textarea-neutral, var(--neutral)));\r\n --_mono-rte-dark: var(--mono-rich-text-editor-dark, var(--mono-textarea-dark, var(--dark)));\r\n --_mono-rte-valid: var(--mono-rich-text-editor-valid, var(--mono-textarea-valid, var(--success)));\r\n --_mono-rte-invalid: var(--mono-rich-text-editor-invalid, var(--mono-textarea-invalid, var(--destructive)));\r\n\r\n /* ── the painted result — three tiers, base = vega's .textarea ─────────── */\r\n --_mono-rte-ring-color: var(--mono-rich-text-editor-ring-color, var(--mono-rich-text-editor-focus-color, var(--_mono-rte-ring-color-preset, var(--_mono-rte-primary))));\r\n --_mono-rte-ring-width: var(--mono-rich-text-editor-ring-width, var(--mono-textarea-ring-width, var(--_mono-rte-ring-width-preset, var(--mono-ring-width))));\r\n --_mono-rte-ring-alpha: var(--mono-rich-text-editor-ring-alpha, var(--mono-textarea-ring-alpha, var(--mono-ring-alpha)));\r\n --_mono-rte-border-color: var(--mono-rich-text-editor-rest-border, var(--mono-rich-text-editor-border-color, var(--mono-rich-text-editor-border, var(--mono-textarea-rest-border, var(--mono-textarea-border-color, var(--_mono-rte-border-color-preset, var(--input)))))));\r\n --_mono-rte-side-border-color: var(--_mono-rte-side-border-color-preset, var(--_mono-rte-border-color));\r\n --_mono-rte-bg: var(--mono-rich-text-editor-bg, var(--mono-rich-text-editor-surface, var(--mono-textarea-bg, var(--mono-textarea-surface, var(--_mono-rte-bg-preset, var(--mono-mode-surface))))));\r\n --_mono-rte-shadow: var(--mono-rich-text-editor-shadow, var(--mono-textarea-shadow, var(--_mono-rte-shadow-preset, var(--mono-shadow-xs))));\r\n --_mono-rte-border-width: var(--mono-rich-text-editor-border-width, var(--mono-textarea-border-width, var(--mono-border-width)));\r\n --_mono-rte-radius: var(--mono-rich-text-editor-radius, var(--mono-textarea-radius, var(--_mono-rte-radius-preset, var(--mono-radius-md))));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE: hand-written\r\n `<div mono-rich-text-editor>` that names no size renders like size=\"md\" ── */\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-md, var(--mono-textarea-font-md, var(--mono-text-sm))));\r\n --_mono-rte-icon-size: var(--mono-rich-text-editor-icon-size, var(--_mono-rte-icon-size-preset, 18px));\r\n --_mono-rte-font-family: var(--mono-rich-text-editor-font-family, inherit);\r\n --_mono-rte-min-height: var(--mono-rich-text-editor-min-height, 10rem);\r\n /* EXTENSION — the toolbar band: a muted wash under the frame's top edge */\r\n --_mono-rte-toolbar-bg: var(--mono-rich-text-editor-toolbar-bg, color-mix(in oklab, var(--muted) 60%, var(--_mono-rte-bg)));\r\n\r\n /* ── SunEditor's popovers (dropdowns, dialogs) are the select panel's popover ── */\r\n --_mono-rte-popover-bg: var(--mono-rich-text-editor-popover-bg, var(--mono-select-dropdown-bg, var(--popover)));\r\n --_mono-rte-popover-color: var(--mono-rich-text-editor-popover-color, var(--mono-select-dropdown-color, var(--popover-foreground)));\r\n --_mono-rte-popover-radius: var(--mono-rich-text-editor-popover-radius, var(--mono-select-dropdown-radius, var(--mono-radius-md)));\r\n --_mono-rte-popover-shadow: var(--mono-rich-text-editor-popover-shadow, var(--mono-select-dropdown-shadow, var(--mono-shadow-md)));\r\n\r\n /* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — bg-foreground text-background rounded-md px-3 py-1.5 text-xs\r\n SunEditor's toolbar tooltips; the corner is the style's shared tooltip token */\r\n --_mono-rte-tooltip-bg: var(--mono-rich-text-editor-tooltip-bg, var(--mono-tooltip-bg, var(--foreground)));\r\n --_mono-rte-tooltip-color: var(--mono-rich-text-editor-tooltip-color, var(--mono-tooltip-color, var(--background)));\r\n --_mono-rte-tooltip-radius: var(--mono-rich-text-editor-tooltip-radius, var(--mono-tooltip-radius, var(--mono-radius-md)));\r\n\r\n /* ── SunEditor's tokens, remapped onto the theme ─────────────────────────\r\n Declared on the FRAME'S ancestor so the light-DOM mount inherits them in\r\n both builds. `.sun-editor` re-declares every one of these on itself with\r\n its defaults, so each is delivered again on `.sun-editor` below — this\r\n block is what a consumer sees and overrides; that one is the delivery. */\r\n --_se-main-color: var(--_mono-rte-text);\r\n --_se-main-color-lighter: var(--_mono-rte-muted);\r\n --_se-main-background: var(--_mono-rte-bg);\r\n --_se-main-border: var(--border);\r\n --_se-main-divider: var(--border);\r\n --_se-main-outline: var(--_mono-rte-ring-color);\r\n /* the accent: links and the focus outline */\r\n --_se-active: var(--_mono-rte-ring-color);\r\n --_se-active-dark: color-mix(in oklab, var(--_mono-rte-ring-color) 85%, var(--foreground));\r\n /* basecoat@1.0.2 styles/vega.css .btn[data-variant='ghost'] — hover:bg-accent hover:text-accent-foreground\r\n a pressed toolbar button and a checked list item are the toggle-on state:\r\n the accent WASH with the foreground ink, never a primary tint */\r\n --_se-active-ink: var(--mono-rich-text-editor-active-color, var(--accent-foreground, var(--_mono-rte-text)));\r\n --_se-active-light: var(--mono-rich-text-editor-active-bg, var(--accent, var(--muted)));\r\n --_se-active-light2: var(--mono-mode-surface-hover);\r\n --_se-hover: var(--_mono-rte-text);\r\n --_se-hover-light: var(--mono-mode-ghost-hover);\r\n --_se-hover-light2: var(--mono-mode-surface-hover);\r\n --_se-error: var(--_mono-rte-danger);\r\n --_se-success: var(--_mono-rte-success);\r\n --_se-placeholder: var(--_mono-rte-placeholder);\r\n --_se-radius: var(--mono-radius-sm);\r\n --_se-radius-lg: var(--_mono-rte-popover-radius);\r\n --_se-shadow-layer: var(--_mono-rte-popover-shadow);\r\n --_se-font-family: var(--_mono-rte-font-family);\r\n --_se-font-size: var(--_mono-rte-font-size);\r\n --_se-icon-size: var(--_mono-rte-icon-size);\r\n --_se-min-height: var(--_mono-rte-min-height);\r\n\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field — flex w-full flex-col gap-3 */\r\n[mono-rich-text-editor] {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-rich-text-editor-gap, var(--mono-textarea-gap, calc(var(--mono-spacing) * 3)));\r\n width: 100%;\r\n min-width: 0;\r\n color: var(--_mono-rte-text);\r\n font-family: inherit;\r\n}\r\n\r\n[mono-rich-text-editor],\r\n:where([mono-rich-text-editor]) > *,\r\n:where([mono-rich-text-editor]) > * > *::before,\r\n:where([mono-rich-text-editor]) > * > *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* the shadow build renders every region and marks the empty ones; the light\r\n build renders only what exists */\r\n[mono-rich-text-editor] :is([mono-rte-label], [mono-rte-message], [mono-rte-footer])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n[mono-rich-text-editor] > [mono-rte-message-outlet]:not(:has([mono-rte-footer]:not([mono-empty]))) {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: the textarea's font ladder; the icons step with it\r\n ========================================= */\r\n\r\n[mono-rich-text-editor][mono-size=\"xs\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-xs, var(--mono-textarea-font-xs, var(--mono-text-xs))));\r\n --_mono-rte-icon-size-preset: 14px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"sm\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-sm, var(--mono-textarea-font-sm, var(--mono-textarea-font-md, var(--mono-text-sm)))));\r\n --_mono-rte-icon-size-preset: 16px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"lg\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-lg, var(--mono-textarea-font-lg, var(--mono-textarea-font-md, var(--mono-text-sm)))));\r\n --_mono-rte-icon-size-preset: 20px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"xl\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-xl, var(--mono-textarea-font-xl, var(--mono-text-base))));\r\n --_mono-rte-icon-size-preset: 22px;\r\n}\r\n[mono-rich-text-editor][mono-size=\"xxl\"] {\r\n --_mono-rte-font-size: var(--mono-rich-text-editor-font-size, var(--mono-rich-text-editor-font-xxl, var(--mono-textarea-font-xxl, var(--mono-text-base))));\r\n --_mono-rte-icon-size-preset: 24px;\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the `color` prop is the FOCUS colour, which is also the\r\n editor's active state and links\r\n ========================================= */\r\n\r\n[mono-rich-text-editor][mono-color=\"secondary\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-secondary);\r\n}\r\n[mono-rich-text-editor][mono-color=\"success\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-success);\r\n}\r\n[mono-rich-text-editor][mono-color=\"danger\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-danger);\r\n}\r\n[mono-rich-text-editor][mono-color=\"warning\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-warning);\r\n}\r\n[mono-rich-text-editor][mono-color=\"info\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-info);\r\n}\r\n[mono-rich-text-editor][mono-color=\"teal\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-teal);\r\n}\r\n[mono-rich-text-editor][mono-color=\"purple\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-purple);\r\n}\r\n[mono-rich-text-editor][mono-color=\"neutral\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-neutral);\r\n}\r\n[mono-rich-text-editor][mono-color=\"dark\"] {\r\n --_mono-rte-ring-color-preset: var(--_mono-rte-dark);\r\n}\r\n\r\n/* =========================================\r\n Label\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > label, .label\r\n — text-sm leading-snug font-medium */\r\n:where([mono-rich-text-editor]) > [mono-rte-label] {\r\n display: flex;\r\n align-items: center;\r\n gap: calc(var(--mono-spacing) * 1);\r\n font-size: var(--mono-rich-text-editor-label-font-size, var(--mono-textarea-label-font-size, var(--mono-text-sm)));\r\n line-height: var(--mono-rich-text-editor-label-line-height, var(--mono-textarea-label-line-height, var(--mono-leading-snug)));\r\n font-weight: var(--mono-rich-text-editor-label-font-weight, var(--mono-textarea-label-font-weight, var(--mono-label-font-weight, var(--mono-font-weight-medium))));\r\n color: var(--mono-rich-text-editor-label-color, var(--mono-textarea-label-color, var(--_mono-rte-text)));\r\n}\r\n\r\n[mono-rich-text-editor][mono-validation-state=\"invalid\"] > [mono-rte-label] {\r\n color: var(--mono-rich-text-editor-label-color, var(--mono-textarea-label-color, var(--_mono-rte-invalid)));\r\n}\r\n\r\n:where([mono-rich-text-editor]) [mono-rte-required-mark] {\r\n color: var(--mono-rich-text-editor-required-color, var(--mono-textarea-required-color, var(--destructive)));\r\n}\r\n\r\n[mono-rich-text-editor][mono-disabled] > [mono-rte-label] {\r\n opacity: 0.5;\r\n}\r\n\r\n/* =========================================\r\n The frame — the textarea's box, holding the editor\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > textarea, .textarea\r\n — rounded-md border border-input bg-transparent shadow-xs\r\n transition-[color,box-shadow] (dark:bg-input/30 via --mono-mode-surface);\r\n mono: no padding — the editor's toolbar and page fill the box edge to edge */\r\n:where([mono-rich-text-editor]) [mono-rte-field] {\r\n --_mono-rte-ring: 0 0 #0000;\r\n position: relative;\r\n width: 100%;\r\n min-width: 0;\r\n border: var(--_mono-rte-border-width) solid var(--_mono-rte-side-border-color);\r\n border-bottom-color: var(--_mono-rte-border-color);\r\n border-radius: var(--_mono-rte-radius);\r\n background-color: var(--_mono-rte-bg);\r\n color: var(--_mono-rte-text);\r\n box-shadow: var(--_mono-rte-ring), var(--_mono-rte-shadow);\r\n /* the editor paints its own corners; clip so the toolbar's top corners follow\r\n the frame's radius */\r\n overflow: hidden;\r\n transition-property: color, background-color, border-color, box-shadow, opacity;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n/* Before the editor loads (and on the server) the frame is a quiet box the\r\n size of the editing area, so the form does not jump when it lands. */\r\n[mono-rich-text-editor][mono-loading] [mono-rte-field] {\r\n min-height: calc(var(--_mono-rte-min-height) + 2.75rem);\r\n}\r\n[mono-rich-text-editor][mono-unavailable] [mono-rte-field] {\r\n display: none;\r\n}\r\n\r\n/* focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 —\r\n the focus is on SunEditor's contenteditable inside the frame */\r\n:where([mono-rich-text-editor]) [mono-rte-field]:focus-within {\r\n border-color: var(--_mono-rte-side-border-color);\r\n border-bottom-color: var(--_mono-rte-ring-color);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) color-mix(in oklab, var(--_mono-rte-ring-color) var(--_mono-rte-ring-alpha), transparent);\r\n}\r\n[mono-rich-text-editor]:is(:not([mono-variant]), [mono-variant=\"outlined\"], [mono-variant=\"filled\"]) [mono-rte-field]:focus-within {\r\n border-color: var(--_mono-rte-ring-color);\r\n}\r\n\r\n/* aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\r\n (dark: /50 and /40, carried by the mode tokens) */\r\n[mono-rich-text-editor][mono-validation-state=\"invalid\"] [mono-rte-field] {\r\n --_mono-rte-border-color: var(--mono-mode-invalid-border);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) var(--mono-mode-invalid-ring);\r\n}\r\n\r\n/* EXTENSION — the same treatment in the success / warning roles */\r\n[mono-rich-text-editor][mono-validation-state=\"valid\"] [mono-rte-field] {\r\n --_mono-rte-border-color: color-mix(in oklab, var(--_mono-rte-valid) var(--mono-mode-state-border-alpha), transparent);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) color-mix(in oklab, var(--_mono-rte-valid) var(--mono-mode-state-ring-alpha), transparent);\r\n}\r\n[mono-rich-text-editor][mono-validation-state=\"warning\"] [mono-rte-field] {\r\n --_mono-rte-border-color: color-mix(in oklab, var(--_mono-rte-warning) var(--mono-mode-state-border-alpha), transparent);\r\n --_mono-rte-ring: 0 0 0 var(--_mono-rte-ring-width) color-mix(in oklab, var(--_mono-rte-warning) var(--mono-mode-state-ring-alpha), transparent);\r\n}\r\n\r\n/* disabled:cursor-not-allowed disabled:opacity-50 */\r\n[mono-rich-text-editor][mono-disabled] [mono-rte-field] {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n background-color: var(--mono-rich-text-editor-disabled-bg, var(--mono-textarea-disabled-bg, var(--_mono-rte-bg)));\r\n}\r\n\r\n/* EXTENSION — readonly is legible, not dimmed: a muted surface */\r\n[mono-rich-text-editor][mono-readonly]:not([mono-disabled]) [mono-rte-field] {\r\n --_se-main-background: var(--mono-rich-text-editor-readonly-bg, var(--mono-textarea-readonly-bg, var(--muted)));\r\n background-color: var(--mono-rich-text-editor-readonly-bg, var(--mono-textarea-readonly-bg, var(--muted)));\r\n}\r\n\r\n/* =========================================\r\n Variants — EXTENSION: the two other looks Basecoat's styles ship, through\r\n the textarea's own knobs so a flavour that restyles the textarea restyles this\r\n ========================================= */\r\n\r\n[mono-rich-text-editor]:is(:not([mono-variant]), [mono-variant=\"outlined\"]) {\r\n --_mono-rte-bg-preset: var(--mono-rich-text-editor-outline-bg, var(--mono-textarea-outline-bg));\r\n --_mono-rte-border-color-preset: var(--mono-rich-text-editor-outline-border-color, var(--mono-textarea-outline-border-color));\r\n --_mono-rte-side-border-color-preset: var(--mono-rich-text-editor-outline-side-border-color, var(--mono-textarea-outline-side-border-color));\r\n --_mono-rte-shadow-preset: var(--mono-rich-text-editor-outline-shadow, var(--mono-textarea-outline-shadow, var(--mono-shadow-xs)));\r\n --_mono-rte-radius-preset: var(--mono-rich-text-editor-outline-radius, var(--mono-textarea-outline-radius));\r\n --_mono-rte-ring-width-preset: var(--mono-rich-text-editor-outline-ring-width, var(--mono-textarea-outline-ring-width));\r\n}\r\n\r\n/* `filled` ≡ luma / mira / rhea's textarea: a tinted surface, no border, no shadow */\r\n[mono-rich-text-editor][mono-variant=\"filled\"] {\r\n --_mono-rte-bg-preset: var(--mono-rich-text-editor-filled-bg, var(--mono-textarea-filled-bg, color-mix(in oklab, var(--input) 50%, transparent)));\r\n --_mono-rte-border-color-preset: transparent;\r\n --_mono-rte-shadow-preset: 0 0 #0000;\r\n}\r\n\r\n/* `underlined` ≡ sera's: square, the bottom edge only, and no ring */\r\n[mono-rich-text-editor][mono-variant=\"underlined\"] {\r\n --_mono-rte-radius-preset: 0;\r\n --_mono-rte-bg-preset: transparent;\r\n --_mono-rte-side-border-color-preset: transparent;\r\n --_mono-rte-shadow-preset: 0 0 #0000;\r\n --_mono-rte-ring-width-preset: 0px;\r\n}\r\n[mono-rich-text-editor][mono-variant=\"underlined\"] [mono-rte-field] {\r\n --_se-main-background: transparent;\r\n --_mono-rte-toolbar-bg: transparent;\r\n}\r\n\r\n/* =========================================\r\n Footer — the message row\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .fieldset legend + p, .field > p, .field section > p\r\n — text-sm text-muted-foreground leading-normal font-normal */\r\n:where([mono-rich-text-editor]) [mono-rte-footer] {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: calc(var(--mono-spacing) * 2);\r\n}\r\n\r\n:where([mono-rich-text-editor]) [mono-rte-message-wrap] {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-rich-text-editor]) [mono-rte-message] {\r\n font-size: var(--mono-rich-text-editor-message-font-size, var(--mono-textarea-message-font-size, var(--mono-text-sm)));\r\n line-height: var(--mono-rich-text-editor-message-line-height, var(--mono-textarea-message-line-height, var(--mono-leading-normal)));\r\n font-weight: var(--mono-font-weight-normal);\r\n color: var(--_mono-rte-muted);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field [role=\"alert\"] — text-destructive text-sm */\r\n:where([mono-rich-text-editor]) [mono-rte-message=\"invalid\"] {\r\n color: var(--_mono-rte-invalid);\r\n}\r\n:where([mono-rich-text-editor]) [mono-rte-message=\"valid\"] {\r\n color: var(--_mono-rte-valid);\r\n}\r\n:where([mono-rich-text-editor]) [mono-rte-message=\"warning\"] {\r\n color: var(--_mono-rte-warning);\r\n}\r\n\r\n/* EXTENSION — the peer-missing notice: reads like a validation message, never like a crash */\r\n:where([mono-rich-text-editor]) [mono-rte-unavailable] {\r\n padding: calc(var(--mono-spacing) * 2.5) calc(var(--mono-spacing) * 3);\r\n border: var(--mono-border-width) dashed var(--_mono-rte-danger);\r\n border-radius: var(--_mono-rte-radius);\r\n background: color-mix(in oklab, var(--_mono-rte-danger) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-rte-danger);\r\n font-size: var(--mono-text-sm);\r\n line-height: var(--mono-leading-normal);\r\n overflow-wrap: anywhere;\r\n}\r\n\r\n/* =========================================\r\n SunEditor inside the frame — from the PAGE sheet (the mount is light DOM)\r\n ========================================= */\r\n\r\n[mono-rte-mount] {\r\n display: block;\r\n width: 100%;\r\n min-width: 0;\r\n}\r\n\r\n/* Deliver the remap. `.sun-editor` sets every `--se-*` on itself from\r\n SunEditor's sheet, so the same selector (plus ours for specificity) has to\r\n set them again — the values, though, come from the frame's `--_se-*` above,\r\n which the mount inherits. Only the tokens a theme is made of; the rest keep\r\n SunEditor's defaults. */\r\n[mono-rte-mount] .sun-editor,\r\n[mono-rte-mount] .sun-editor-editable,\r\n.sun-editor.sun-editor-carrier-wrapper {\r\n --se-main-font-family: var(--_se-font-family);\r\n --se-content-font-family: var(--_se-font-family);\r\n --se-main-font-size: var(--_se-font-size);\r\n --se-btn-font-size: var(--_se-font-size);\r\n --se-edit-font-size: calc(var(--_se-font-size) * 1.1);\r\n --se-icon-size: var(--_se-icon-size);\r\n --se-min-height: var(--_se-min-height);\r\n --se-border-radius: var(--_se-radius);\r\n --se-border-radius-lg: var(--_se-radius-lg);\r\n\r\n --se-main-color: var(--_se-main-color);\r\n --se-main-color-lighter: var(--_se-main-color-lighter);\r\n --se-main-font-color: var(--_se-main-color);\r\n --se-main-background-color: var(--_se-main-background);\r\n --se-main-border-color: var(--_se-main-border);\r\n --se-main-divider-color: var(--_se-main-divider);\r\n --se-main-outline-color: var(--_se-main-outline);\r\n --se-main-shadow-color: var(--_se-main-divider);\r\n --se-statusbar-font-color: var(--_se-main-color-lighter);\r\n --se-dropdown-font-color: var(--_se-main-color);\r\n\r\n --se-edit-font-color: var(--_se-main-color);\r\n --se-edit-background-color: var(--_se-main-background);\r\n --se-edit-anchor: var(--_se-active);\r\n --se-caret-color: var(--_se-main-color);\r\n --se-placeholder-color: var(--_se-placeholder);\r\n\r\n --se-hover-color: var(--_se-hover);\r\n --se-hover-dark-color: var(--_se-main-border);\r\n --se-hover-light-color: var(--_se-hover-light);\r\n --se-hover-light2-color: var(--_se-hover-light2);\r\n --se-hover-light3-color: var(--_se-hover-light2);\r\n\r\n /* the accent for outlines and links; the toggle-on state for buttons and\r\n checked list items (ink = --se-active-dark3/4, wash = --se-active-light*) */\r\n --se-active-color: var(--_se-active);\r\n --se-active-hover-color: var(--_se-active-ink);\r\n --se-active-dark-color: var(--_se-main-border);\r\n --se-active-dark2-color: var(--_se-active-dark);\r\n --se-active-dark3-color: var(--_se-active-ink);\r\n --se-active-dark4-color: var(--_se-main-border);\r\n --se-active-dark5-color: var(--_se-active-dark);\r\n --se-active-light-color: var(--_se-active-light);\r\n --se-active-light2-color: var(--_se-active-light);\r\n --se-active-light3-color: var(--_se-active-light2);\r\n --se-active-light4-color: var(--_se-active-light);\r\n --se-active-light5-color: var(--_se-active-light2);\r\n --se-active-light6-color: var(--_se-active-light2);\r\n\r\n --se-error-color: var(--_se-error);\r\n --se-success-color: var(--_se-success);\r\n\r\n --se-select-menu-hover-bg: var(--_se-hover-light);\r\n --se-select-menu-active-bg: var(--_se-active-light);\r\n --se-modal-background-color: var(--_mono-rte-popover-bg);\r\n --se-modal-color: var(--_mono-rte-popover-color);\r\n --se-modal-border-color: var(--_se-main-border);\r\n --se-modal-anchor-color: var(--_se-active);\r\n --se-shadow-layer: var(--_se-shadow-layer);\r\n\r\n /* ── the sub-surfaces SunEditor paints from its own light palette ────────\r\n code view, the table picker, the floating controllers, the modal chrome,\r\n the overlay, the editing area's own colours — every one a page token now */\r\n --se-codeview-font-family: var(--font-mono, ui-monospace, monospace);\r\n --se-markdown-font-family: var(--font-mono, ui-monospace, monospace);\r\n --se-code-view-color: var(--_mono-rte-text);\r\n --se-code-view-background-color: var(--_se-main-background);\r\n --se-code-view-line-color: var(--_mono-rte-muted);\r\n --se-code-view-line-background-color: var(--muted);\r\n --se-markdown-view-color: var(--_mono-rte-text);\r\n --se-markdown-view-background-color: var(--_se-main-background);\r\n --se-markdown-view-line-color: var(--_mono-rte-muted);\r\n --se-markdown-view-line-background-color: var(--muted);\r\n\r\n --se-table-picker-color: var(--_mono-rte-popover-bg);\r\n --se-table-picker-border-color: var(--_se-main-border);\r\n --se-table-picker-highlight-color: color-mix(in oklab, var(--_se-active) var(--mono-mode-tint), var(--_mono-rte-popover-bg));\r\n --se-table-picker-highlight-border-color: var(--_se-active);\r\n\r\n --se-controller-background-color: var(--_mono-rte-popover-bg);\r\n --se-controller-color: var(--_mono-rte-popover-color);\r\n --se-controller-border-color: var(--_se-main-border);\r\n --se-shadow-controller: var(--_se-shadow-layer);\r\n --se-shadow-controller-color: transparent;\r\n --se-shadow-layer-color: transparent;\r\n --se-overlay-background-color: var(--mono-mode-backdrop, #000);\r\n\r\n --se-modal-preview-color: var(--_mono-rte-muted);\r\n --se-modal-file-input-background-color: var(--muted);\r\n --se-modal-input-disabled-color: var(--_mono-rte-muted);\r\n --se-modal-input-disabled-background-color: var(--muted);\r\n --se-input-btn-border-color: var(--_se-main-border);\r\n --se-input-btn-disabled-color: var(--_mono-rte-muted);\r\n --se-main-out-color: var(--_se-main-border);\r\n --se-hover-dark2-color: var(--_se-main-border);\r\n --se-hover-dark3-color: var(--_se-main-border);\r\n --se-loading-color: var(--_se-active);\r\n\r\n --se-drag-caret-color: var(--_se-active);\r\n --se-edit-active: var(--_se-active);\r\n --se-edit-hover: var(--_se-active-light);\r\n --se-edit-outline: var(--_se-main-border);\r\n --se-edit-font-pre: var(--_mono-rte-text);\r\n --se-edit-font-quote: var(--_mono-rte-muted);\r\n --se-edit-background-pre: var(--muted);\r\n --se-edit-border-light: var(--_se-main-border);\r\n --se-edit-border-dark: var(--_se-main-border);\r\n --se-edit-border-dark-n1: var(--_se-main-border);\r\n --se-edit-border-dark-n2: var(--_se-main-border);\r\n --se-edit-border-table: var(--_se-main-border);\r\n --se-edit-hr-color: var(--_se-main-border);\r\n --se-edit-hr-on-back: var(--_se-active-light);\r\n --se-edit-anchor-on-back: color-mix(in oklab, var(--_se-active) var(--mono-mode-tint), transparent);\r\n --se-edit-anchor-on-font: var(--_se-active);\r\n\r\n --se-success-dark-color: var(--_se-success);\r\n --se-success-dark2-color: var(--_se-success);\r\n --se-success-dark3-color: var(--_se-success);\r\n --se-success-light-color: color-mix(in oklab, var(--_se-success) var(--mono-mode-tint), transparent);\r\n --se-success-light2-color: color-mix(in oklab, var(--_se-success) var(--mono-mode-tint), transparent);\r\n --se-success-light3-color: color-mix(in oklab, var(--_se-success) var(--mono-mode-tint-hover), transparent);\r\n --se-success-light4-color: var(--_se-success);\r\n --se-success-light5-color: var(--_se-success);\r\n --se-error-dark-color: var(--_se-error);\r\n --se-error-dark2-color: var(--_se-error);\r\n --se-error-dark3-color: var(--_se-error);\r\n --se-error-light-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint-hover), transparent);\r\n --se-error-light2-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n --se-error-light3-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n --se-error-light4-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n --se-error-light5-color: color-mix(in oklab, var(--_se-error) var(--mono-mode-tint), transparent);\r\n}\r\n\r\n/* In the carrier \"main background\" is the LAYER surface — the dropdown lists,\r\n dialogs and alerts — so it is the popover surface there, not the editing\r\n surface (which is transparent in light mode: an invisible list). */\r\n.sun-editor.sun-editor-carrier-wrapper {\r\n --se-main-background-color: var(--_mono-rte-popover-bg);\r\n --se-main-font-color: var(--_mono-rte-popover-color);\r\n --se-dropdown-font-color: var(--_mono-rte-popover-color);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .select:not(select) [role='option'].active, .select:not(select) [role='option']:focus-visible — bg-muted text-foreground\r\n a checked list item (the current font, size, format …) is a selected option:\r\n SunEditor only re-inks it, and its ink was the primary tint */\r\n[mono-rte-mount] .sun-editor .se-list-inner li.se-checked > button,\r\n.sun-editor.sun-editor-carrier-wrapper .se-list-inner li.se-checked > button {\r\n background-color: var(--_se-active-light);\r\n color: var(--_se-active-ink);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .field > textarea, .textarea — placeholder:text-muted-foreground\r\n Every placeholder the editor shows — the Size / Font inputs in the toolbar,\r\n the empty editing area, a dialog's fields — is the field placeholder: the\r\n muted ink, OPAQUE. Left alone, a host page's preflight (Tailwind / UnoCSS)\r\n makes a placeholder 50% translucent currentColor, which over a tinted page\r\n reads as a colour of its own; and SunEditor inks its empty-area placeholder\r\n with its OUTLINE token, the accent. */\r\n[mono-rte-mount] .sun-editor input::placeholder,\r\n[mono-rte-mount] .sun-editor textarea::placeholder,\r\n.sun-editor.sun-editor-carrier-wrapper input::placeholder,\r\n.sun-editor.sun-editor-carrier-wrapper textarea::placeholder {\r\n color: var(--_mono-rte-placeholder);\r\n opacity: 1;\r\n}\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-placeholder,\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-placeholder-line:before {\r\n color: var(--_mono-rte-placeholder);\r\n}\r\n\r\n/* The frame replaces SunEditor's own — no double border, no second radius. */\r\n[mono-rte-mount] .sun-editor {\r\n border: 0;\r\n border-radius: 0;\r\n background: transparent;\r\n width: 100% !important;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — bg-foreground text-background inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs\r\n SunEditor's toolbar tooltips, painted as Basecoat's tooltip: it drew them in\r\n `--se-main-font-color` on `--se-main-background-color`, which in dark mode\r\n is a translucent wash under near-white text. (0,5,0) over SunEditor's (0,4,0). */\r\n[mono-rte-mount] .sun-editor .se-tooltip .se-tooltip-inner .se-tooltip-text,\r\n.sun-editor.sun-editor-carrier-wrapper .se-tooltip .se-tooltip-inner .se-tooltip-text {\r\n padding: calc(var(--mono-spacing) * 1.5) calc(var(--mono-spacing) * 3);\r\n border-radius: var(--_mono-rte-tooltip-radius);\r\n background-color: var(--_mono-rte-tooltip-bg);\r\n color: var(--_mono-rte-tooltip-color);\r\n /* the page font, handed over by the element: a tooltip inside the font list\r\n would otherwise inherit the item's own face */\r\n font-family: var(--_mono-rte-page-font, inherit);\r\n font-size: var(--mono-text-xs);\r\n line-height: var(--mono-text-xs--lh);\r\n font-weight: var(--mono-font-weight-normal);\r\n white-space: nowrap;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — the dropdown items (font family,\r\n font size, the colour palettes …) carried native `title` tooltips, which no theme can\r\n paint; the element rewrites them into `data-tooltip`, drawn here the way Basecoat\r\n draws its own: a pseudo-element with the attribute as content, above the item\r\n (the anchor is `position: relative`, as in Basecoat's compiled `[data-tooltip]`) */\r\n[mono-rte-mount] .sun-editor [data-tooltip],\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip] {\r\n position: relative;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip]::before — bg-foreground text-background inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs */\r\n[mono-rte-mount] .sun-editor [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip]::after {\r\n content: attr(data-tooltip);\r\n position: absolute;\r\n left: 50%;\r\n bottom: calc(100% + calc(var(--mono-spacing) * 1.5));\r\n z-index: 60;\r\n width: max-content;\r\n max-width: 20rem;\r\n padding: calc(var(--mono-spacing) * 1.5) calc(var(--mono-spacing) * 3);\r\n border-radius: var(--_mono-rte-tooltip-radius);\r\n background-color: var(--_mono-rte-tooltip-bg);\r\n color: var(--_mono-rte-tooltip-color);\r\n font-family: var(--_mono-rte-page-font, inherit);\r\n font-size: var(--mono-text-xs);\r\n line-height: var(--mono-text-xs--lh);\r\n font-weight: var(--mono-font-weight-normal);\r\n font-style: normal;\r\n text-indent: 0;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n pointer-events: none;\r\n visibility: hidden;\r\n opacity: 0;\r\n transform: translateX(-50%) scale(0.95);\r\n transform-origin: bottom center;\r\n transition-property: opacity, transform, visibility;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration-fast, 100ms);\r\n}\r\n\r\n[mono-rte-mount] .sun-editor [data-tooltip]:hover::after,\r\n[mono-rte-mount] .sun-editor [data-tooltip]:focus-visible::after,\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip]:hover::after,\r\n.sun-editor.sun-editor-carrier-wrapper [data-tooltip]:focus-visible::after {\r\n visibility: visible;\r\n opacity: 1;\r\n transform: translateX(-50%) scale(1);\r\n}\r\n\r\n/* a dropdown layer clips its own overflow, so a tooltip above the FIRST row of a\r\n palette would be cut off at the layer edge: that row opens its tooltips below */\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet:first-child [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet:first-child [data-tooltip]::after {\r\n bottom: auto;\r\n top: calc(100% + calc(var(--mono-spacing) * 1.5));\r\n transform-origin: top center;\r\n}\r\n\r\n/* SunEditor shrinks a hovered / active swatch with `transform: scale(.8)`. A\r\n transform makes the button a stacking context, so its tooltip — a child —\r\n can never rise above the swatches painted after it (the next row covers a\r\n first-row tooltip) and shrinks with it. The same \"pressed\" read as an inset\r\n ring of the layer surface instead; the hovered swatch lifts above its row. */\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet button:hover,\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet button.active,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet button:hover,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet button.active {\r\n transform: none;\r\n box-shadow: inset 0 0 0 3px var(--_mono-rte-popover-bg, var(--popover));\r\n}\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet button:hover,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet button:hover {\r\n z-index: 1;\r\n}\r\n\r\n/* …and the same clip sideways: a centred tooltip on the first / last column of\r\n a palette row runs past the layer's edge, so those hang from the item's own\r\n outer edge instead */\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:first-child [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:first-child [data-tooltip]::after {\r\n left: 0;\r\n transform: scale(0.95);\r\n transform-origin: left center;\r\n}\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:last-child [data-tooltip]::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:last-child [data-tooltip]::after {\r\n left: auto;\r\n right: 0;\r\n transform: scale(0.95);\r\n transform-origin: right center;\r\n}\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:hover::after,\r\n[mono-rte-mount] .sun-editor .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:focus-visible::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:hover::after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-dropdown .se-color-pallet li:is(:first-child, :last-child) [data-tooltip]:focus-visible::after {\r\n transform: scale(1);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css [data-tooltip][data-arrow]::after — bg-foreground */\r\n[mono-rte-mount] .sun-editor .se-tooltip .se-tooltip-inner .se-tooltip-text:after,\r\n.sun-editor.sun-editor-carrier-wrapper .se-tooltip .se-tooltip-inner .se-tooltip-text:after {\r\n border-color: transparent transparent var(--_mono-rte-tooltip-bg) transparent;\r\n}\r\n[mono-rte-mount] .sun-editor .se-toolbar.se-toolbar-bottom .se-tooltip .se-tooltip-inner .se-tooltip-text:after {\r\n border-color: var(--_mono-rte-tooltip-bg) transparent transparent transparent;\r\n}\r\n\r\n/* EXTENSION — the toolbar band, on a hairline */\r\n[mono-rte-mount] .sun-editor .se-toolbar {\r\n background: var(--_mono-rte-toolbar-bg);\r\n box-shadow: inset 0 calc(var(--mono-border-width) * -1) 0 0 var(--border);\r\n}\r\n\r\n/* The carrier — modals, alerts and the dropdown lists SunEditor parks on <body>\r\n — is in the token block and the delivery rule above: it paints exactly like\r\n the frame it belongs to, at the element's default `color` and `size`. */\r\n\r\n/* =========================================\r\n SunEditor's dialogs — the modal SunEditor parks in its carrier: its chrome\r\n is the page's dialog, its fields the ported input, its buttons the ported\r\n button, its tabs the ported tabs. Selectors mirror SunEditor's own chains\r\n (prefixed by the scope) so they out-weigh them by exactly the scope.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * — bg-popover text-popover-foreground */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-content {\r\n border: var(--mono-border-width) solid var(--_se-main-border);\r\n border-radius: var(--_mono-rte-popover-radius);\r\n box-shadow: var(--_mono-rte-popover-shadow);\r\n color: var(--_mono-rte-popover-color);\r\n}\r\n\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-header .se-modal-title {\r\n font-size: var(--mono-text-base);\r\n font-weight: var(--mono-font-weight-semibold);\r\n color: var(--_mono-rte-popover-color);\r\n}\r\n\r\n/* the close button: a ghost button, muted at rest */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-header .se-close-btn {\r\n color: var(--_mono-rte-muted);\r\n text-shadow: none;\r\n border-radius: var(--mono-radius-sm);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .tabs > [role='tablist'] — the modal's Image / Link tabs:\r\n a text tab with the accent under the active one, not a boxed strip */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs {\r\n /* SunEditor floats the tab buttons inside a 25px-high strip; as a flex row the\r\n strip is as tall as the tabs and stays in flow above the form */\r\n display: flex;\r\n align-items: stretch;\r\n gap: calc(var(--mono-spacing) * 1);\r\n height: auto;\r\n margin-bottom: calc(var(--mono-spacing) * 3);\r\n border-bottom: var(--mono-border-width) solid var(--_se-main-border);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs button {\r\n background-color: transparent;\r\n border: 0;\r\n border-bottom: 2px solid transparent;\r\n margin-bottom: calc(var(--mono-border-width) * -1);\r\n padding: calc(var(--mono-spacing) * 1.5) calc(var(--mono-spacing) * 3);\r\n color: var(--_mono-rte-muted);\r\n font-size: var(--mono-text-sm);\r\n font-weight: var(--mono-font-weight-medium);\r\n transition-property: color, border-color;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs button:hover {\r\n background-color: transparent;\r\n color: var(--_mono-rte-text);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-tabs button.active {\r\n background-color: transparent;\r\n border-bottom-color: var(--_se-active);\r\n color: var(--_mono-rte-text);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .input-group — rounded-md border border-input\r\n the modal's text fields and selects are the ported input: its surface, edge,\r\n corner and ring, through the input's own public knobs */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-input-form,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-input-select,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form select,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-controller input[type='text'],\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-controller select {\r\n background-color: var(--mono-input-bg, var(--mono-input-surface, var(--mono-input-outline-bg, var(--mono-mode-surface))));\r\n border: var(--mono-border-width) solid var(--mono-input-rest-border, var(--mono-input-border-color, var(--mono-input-outline-border-color, var(--input))));\r\n border-radius: var(--mono-input-radius-sm, var(--mono-input-outline-radius, var(--mono-input-radius, var(--mono-radius-md))));\r\n color: var(--_mono-rte-text);\r\n box-shadow: var(--mono-input-outline-shadow, var(--mono-shadow-xs));\r\n font-size: var(--mono-text-sm);\r\n outline: none;\r\n transition-property: border-color, box-shadow;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-input-form:focus,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form select:focus {\r\n border-color: var(--_se-active);\r\n box-shadow: 0 0 0 var(--mono-ring-width) color-mix(in oklab, var(--_se-active) var(--mono-ring-alpha), transparent);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner input:disabled {\r\n opacity: 0.5;\r\n}\r\n\r\n/* the file drop area: a dashed muted panel */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-flex-input-wrapper > .se-input-form-abs {\r\n border-radius: var(--mono-input-radius-sm, var(--mono-input-outline-radius, var(--mono-input-radius, var(--mono-radius-md))));\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .btn — Submit is the primary button */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-content .se-btn-primary {\r\n background-color: var(--mono-button-bg, var(--primary));\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--mono-button-sm-radius, var(--mono-button-radius, var(--mono-radius-md)));\r\n color: var(--mono-button-color, var(--primary-foreground));\r\n font-size: var(--mono-text-sm);\r\n font-weight: var(--mono-font-weight-medium);\r\n box-shadow: var(--mono-shadow-xs);\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary:hover,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary:focus {\r\n background-color: color-mix(in oklab, var(--mono-button-bg, var(--primary)) 90%, transparent);\r\n border-color: transparent;\r\n color: var(--mono-button-color, var(--primary-foreground));\r\n}\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-btn-primary:disabled {\r\n opacity: 0.5;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .btn[data-variant='outline'] — the modal's secondary buttons */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-btn-revert,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-modal-form-files .se-modal-files-edge-button,\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-modal-area .se-modal-inner .se-modal-form .se-modal-flex-form .se-btn {\r\n border: var(--mono-border-width) solid var(--input);\r\n border-radius: var(--mono-button-sm-radius, var(--mono-button-radius, var(--mono-radius-md)));\r\n background-color: var(--background);\r\n color: var(--_mono-rte-text);\r\n opacity: 1;\r\n}\r\n\r\n/* the native checkboxes and radios take the accent */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) input[type='checkbox'],\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) input[type='radio'] {\r\n accent-color: var(--_se-active);\r\n}\r\n\r\n/* the floating controllers (link / image / table) are popovers */\r\n:is([mono-rte-mount] .sun-editor, .sun-editor.sun-editor-carrier-wrapper) .se-controller {\r\n border-radius: var(--_mono-rte-popover-radius);\r\n}\r\n\r\n/* Full screen — SunEditor fixes its root over the page (inline style, no class of\r\n its own; the element marks the mount when SunEditor reports the toggle, and the\r\n inline style is the fallback). The frame stays behind, so the editor takes the\r\n PAGE surface itself: opaque, in the mode's colours, the toolbar band on top. */\r\n[mono-rte-mount][mono-fullscreen] .sun-editor,\r\n[mono-rte-mount] .sun-editor[style*=\"position: fixed\"] {\r\n --_se-main-background: var(--mono-rich-text-editor-fullscreen-bg, var(--background));\r\n --_mono-rte-toolbar-bg: var(--mono-rich-text-editor-toolbar-bg, color-mix(in oklab, var(--muted) 60%, var(--mono-rich-text-editor-fullscreen-bg, var(--background))));\r\n background: var(--mono-rich-text-editor-fullscreen-bg, var(--background));\r\n color: var(--_mono-rte-text);\r\n}\r\n\r\n/* code view: the page's mono face on the editing surface, the line column muted */\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-code-viewer,\r\n[mono-rte-mount] .sun-editor .se-wrapper .se-code-wrapper .se-code-view-line {\r\n font-family: var(--font-mono, ui-monospace, monospace);\r\n font-size: var(--mono-text-sm);\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n :where([mono-rich-text-editor]) [mono-rte-field] {\r\n transition: none;\r\n }\r\n}\r\n";
1282
+
1278
1283
  //#endregion
1279
1284
  //#region src/components/rich-text-editor/mono-rich-text-editor.shadow.ts
1280
- var SHADOW_EXTRA_CSS = `
1285
+ const SHADOW_EXTRA_CSS = `
1281
1286
  [mono-rte-label][mono-empty],
1282
1287
  [mono-rte-message][mono-empty],
1283
1288
  [mono-rte-footer][mono-empty] {
1284
1289
  display: none;
1285
1290
  }
1286
1291
  `;
1287
- var MonoRichTextEditorShadow = class MonoRichTextEditorShadow extends withShadowUtilityStyles(MonoRichTextEditorCore(LitElement)) {
1292
+ let MonoRichTextEditorShadow = class MonoRichTextEditorShadow extends withShadowUtilityStyles(MonoRichTextEditorCore(LitElement)) {
1288
1293
  static {
1289
1294
  this.disableWarning?.("change-in-update");
1290
1295
  }
1291
1296
  static {
1292
- this.styles = [unsafeCSS(toShadowCss(rich_text_editor_default, {
1297
+ this.styles = [unsafeCSS(toShadowCss(rich_text_editor_css_raw_default, {
1293
1298
  host: "mono-rich-text-editor",
1294
1299
  append: SHADOW_EXTRA_CSS
1295
1300
  }))];
@@ -1340,5 +1345,6 @@ var MonoRichTextEditorShadow = class MonoRichTextEditorShadow extends withShadow
1340
1345
  }
1341
1346
  };
1342
1347
  MonoRichTextEditorShadow = __decorate([customElement("mono-shadow-rich-text-editor")], MonoRichTextEditorShadow);
1348
+
1343
1349
  //#endregion
1344
- export { AUTO_EXCLUDED_PLUGINS, MonoRichTextEditorCore, MonoRichTextEditorShadow, SUNEDITOR_CORE_BUTTONS, SUNEDITOR_LANG_CODES, TOOLBAR_BASIC, TOOLBAR_DEFAULT, TOOLBAR_FULL, TOOLBAR_PRESETS, TOOLBAR_STANDARD, loadSunEditor, loadSunEditorCss, loadSunEditorLang, loadSunEditorPlugins, pruneToolbar, resolvePlugins, resolveToolbar };
1350
+ export { AUTO_EXCLUDED_PLUGINS, MonoRichTextEditorCore, MonoRichTextEditorShadow, SUNEDITOR_CORE_BUTTONS, SUNEDITOR_LANG_CODES, TOOLBAR_BASIC, TOOLBAR_DEFAULT, TOOLBAR_FULL, TOOLBAR_PRESETS, TOOLBAR_STANDARD, loadSunEditor, loadSunEditorCss, loadSunEditorLang, loadSunEditorPlugins, pruneToolbar, resolvePlugins, resolveToolbar };