@mono-lit/helper 0.0.1 → 0.0.3

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 (499) hide show
  1. package/LICENSE.md +55 -55
  2. package/README.md +35 -35
  3. package/dist/{breakpoints-CAbhDUht.js → breakpoints-DllybT82.js} +7 -5
  4. package/dist/checkbox.css_raw-AYtSbUtY.js +5 -0
  5. package/dist/{chip-limits-BMoO31JM.js → chip-limits-CFABydIL.js} +5 -3
  6. package/dist/{chip-strip-Cw3gyz0q.js → chip-strip-bNfLn52Z.js} +5 -3
  7. package/dist/chip.css_raw-ChfRSHLO.js +5 -0
  8. package/dist/{color-DHYrfXsX.js → color-CEYYtRX-.js} +8 -7
  9. package/dist/{css-class-BRKRzHx-.js → css-class-B6Tc_MAx.js} +2 -1
  10. package/dist/{css-size-DhHSVZJK.js → css-size-DWAPgQdT.js} +2 -1
  11. package/dist/{data-source-controller-C50Qyfzh.js → data-source-controller-Cf_sMxEh.js} +72 -7
  12. package/dist/data-source-controller-Dx6IQ2CN.js +243 -0
  13. package/dist/{data-source-options-BTpfrOZ_.js → data-source-options-Bk-UoaZV.js} +15 -10
  14. package/dist/{data-source-options-CQSTZHPE.js → data-source-options-QjuI73g8.js} +17 -12
  15. package/dist/{data-source-read-CUX-lgrQ.js → data-source-read-Cuqw3LcP.js} +7 -4
  16. package/dist/{data-source-read-DL88aH8t.js → data-source-read-FxqzQkk2.js} +8 -5
  17. package/dist/{decorate-DEXtNagw.js → decorate-DbYFpi8R.js} +7 -5
  18. package/dist/{element-props-CLB6yvbm.js → element-props-xvw0EB7H.js} +4 -3
  19. package/dist/{esm-Ptok4SQZ.js → esm-D0We7ndD.js} +48 -44
  20. package/dist/{excel-DopRbEMK.js → excel-BXzr3uI1.js} +192 -16
  21. package/dist/{excel-CY6zGkcx.js → excel-DtRpxmxs.js} +27 -16
  22. package/dist/{export-BvlBx_GZ.js → export-B91P6J1y.js} +104 -18
  23. package/dist/export.js +103 -18
  24. package/dist/{field-icons-BoOG6KrL.js → field-icons-FmyBWa0g.js} +38 -1
  25. package/dist/{field-path-C92eGLg3.js → field-path-BabiMrrA.js} +3 -2
  26. package/dist/{filter-builder-Bke3qOgJ.js → filter-builder-B6Y2mmbM.js} +7 -4
  27. package/dist/{filter-builder-CE4zE0V5.js → filter-builder-C0T3pMx2.js} +7 -4
  28. package/dist/{filter-eval-DIfU2EAn.js → filter-eval-ChDSaAUH.js} +7 -5
  29. package/dist/{filter-odata-C1vSGZaY.js → filter-odata-Bi27XUpQ.js} +9 -6
  30. package/dist/{form-control-core-B8d7k6vk.js → form-control-core-CIdMLXMo.js} +9 -6
  31. package/dist/{form-control-core-eeRr0zLU.js → form-control-core-CRZPZ1ru.js} +9 -6
  32. package/dist/hydration-flush-DHrl4_KK.js +1014 -0
  33. package/dist/{icon-CJkTlmTb.js → icon-BM9N-jOt.js} +5 -2
  34. package/dist/{icon-dVhYJUIH.js → icon-ClxnYhBG.js} +4 -2
  35. package/dist/{import-BgJdkwBI.js → import-Dc4eXC02.js} +22 -16
  36. package/dist/import.js +22 -16
  37. package/dist/index.js +17 -16
  38. package/dist/{index.node-DjvYOL-J.js → index.node-dvrNviMx.js} +26 -19
  39. package/dist/index.node.js +17 -16
  40. package/dist/input.css_raw-CGESifay.js +5 -0
  41. package/dist/{layout-var-CZnzMC0s.js → layout-var-BSBKY49k.js} +3 -2
  42. package/dist/{light-slots-BVJwyg_2.js → light-slots-4ZCjOcBg.js} +6 -4
  43. package/dist/{light-slots-DW1WgfgT.js → light-slots-DdDdZ6zs.js} +6 -4
  44. package/dist/{markdown-DfqrfOJN.js → markdown-uGlE_OfJ.js} +414 -369
  45. package/dist/mono-button-CeDB9khW.js +878 -0
  46. package/dist/mono-button.shadow-D9NdMsmH.js +790 -0
  47. package/dist/{mono-data-chart-ChU4Ii3p.js → mono-data-chart-ChkelNT7.js} +66 -22
  48. package/dist/{mono-data-dropdown-BAUl58kW.js → mono-data-dropdown-DxpUUk2y.js} +5 -3
  49. package/dist/{mono-data-grid-Db80FzdZ.js → mono-data-grid-8jmeIXUU.js} +56 -265
  50. package/dist/{mono-data-grid-CLBK8clE.js → mono-data-grid-BHlo1IgR.js} +56 -265
  51. package/dist/{mono-element-B0kP_96P.js → mono-element-C7vCschg.js} +7 -4
  52. package/dist/{mono-event-Bi1qP9uN.js → mono-event-BPku9HpS.js} +4 -3
  53. package/dist/{mono-form-controller-5PfsU4qa.js → mono-form-controller-IYn0MuUQ.js} +7 -4
  54. package/dist/{mono-modal-controller-BMO3n3rP.js → mono-modal-controller-ClObbHUs.js} +9 -7
  55. package/dist/{mono-ui-CPV7rrdo.js → mono-ui-BwUc0L6B.js} +22 -20
  56. package/dist/{data-search-Bwo5bg8K.js → normalize-error-D93O4q8g.js} +314 -10
  57. package/dist/{notifier-CE4yxMUQ.js → notifier-BIrqUzRh.js} +11 -1
  58. package/dist/nuxt.js +20 -15
  59. package/dist/{popup-portal-BziRX1yG.js → popup-portal-HWhkd7oy.js} +6 -4
  60. package/dist/{popup-stack-CEEMib__.js → popup-stack-De05Y-mJ.js} +13 -10
  61. package/dist/{rate-limit-BBa2PO79.js → rate-limit-e9Jlpl5l.js} +12 -9
  62. package/dist/{reactive-BHsqVjRh.js → reactive-DFCdZbH9.js} +318 -12
  63. package/dist/{reactive-D3EERqgO.js → reactive-Dtd-esHO.js} +2 -1
  64. package/dist/search.js +5 -4
  65. package/dist/src/components/accordion/accordion-core.d.ts +42 -40
  66. package/dist/src/components/accordion/accordion-types.d.ts +50 -48
  67. package/dist/src/components/accordion/index.d.ts +3 -2
  68. package/dist/src/components/accordion/index.shadow.d.ts +4 -4
  69. package/dist/src/components/accordion/mono-accordion.d.ts +44 -40
  70. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +42 -38
  71. package/dist/src/components/alert/alert-core.d.ts +30 -28
  72. package/dist/src/components/alert/alert-types.d.ts +36 -34
  73. package/dist/src/components/alert/index.d.ts +3 -2
  74. package/dist/src/components/alert/index.shadow.d.ts +4 -4
  75. package/dist/src/components/alert/mono-alert.d.ts +30 -26
  76. package/dist/src/components/alert/mono-alert.shadow.d.ts +24 -20
  77. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +42 -40
  78. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +31 -29
  79. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +18 -16
  80. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +89 -87
  81. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +18 -15
  82. package/dist/src/components/breadcrumb/index.d.ts +6 -5
  83. package/dist/src/components/breadcrumb/index.shadow.d.ts +7 -7
  84. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +18 -14
  85. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +33 -29
  86. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +24 -20
  87. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +55 -51
  88. package/dist/src/components/button/button-core.d.ts +73 -71
  89. package/dist/src/components/button/button-dropdown-core.d.ts +55 -53
  90. package/dist/src/components/button/button-dropdown-types.d.ts +98 -96
  91. package/dist/src/components/button/button-types.d.ts +157 -155
  92. package/dist/src/components/button/button-utils.d.ts +7 -5
  93. package/dist/src/components/button/index.button-dropdown.d.ts +5 -3
  94. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +5 -3
  95. package/dist/src/components/button/index.d.ts +4 -7
  96. package/dist/src/components/button/index.shadow.d.ts +5 -4
  97. package/dist/src/components/button/mono-button-dropdown.d.ts +24 -19
  98. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +34 -29
  99. package/dist/src/components/button/mono-button.d.ts +105 -101
  100. package/dist/src/components/button/mono-button.shadow.d.ts +42 -38
  101. package/dist/src/components/card/card-core.d.ts +59 -56
  102. package/dist/src/components/card/card-types.d.ts +91 -89
  103. package/dist/src/components/card/card-utils.d.ts +11 -9
  104. package/dist/src/components/card/index.d.ts +4 -3
  105. package/dist/src/components/card/index.shadow.d.ts +5 -5
  106. package/dist/src/components/card/mono-card.d.ts +36 -32
  107. package/dist/src/components/card/mono-card.shadow.d.ts +32 -28
  108. package/dist/src/components/chart/chart-core.d.ts +30 -28
  109. package/dist/src/components/chart/chart-odata.d.ts +17 -16
  110. package/dist/src/components/chart/chart-types.d.ts +269 -248
  111. package/dist/src/components/chart/index.d.ts +7 -7
  112. package/dist/src/components/chart/index.shadow.d.ts +7 -6
  113. package/dist/src/components/chart/mono-chart-presets.d.ts +33 -29
  114. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +33 -29
  115. package/dist/src/components/chart/mono-chart.d.ts +13 -9
  116. package/dist/src/components/chart/mono-chart.shadow.d.ts +13 -9
  117. package/dist/src/components/chart/mono-data-chart.d.ts +4 -26
  118. package/dist/src/components/checkbox/checkbox-core.d.ts +39 -37
  119. package/dist/src/components/checkbox/checkbox-types.d.ts +59 -57
  120. package/dist/src/components/checkbox/checkbox-utils.d.ts +13 -11
  121. package/dist/src/components/checkbox/index.d.ts +4 -3
  122. package/dist/src/components/checkbox/index.shadow.d.ts +5 -4
  123. package/dist/src/components/checkbox/mono-checkbox.d.ts +21 -17
  124. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +31 -27
  125. package/dist/src/components/chip/chip-core.d.ts +42 -40
  126. package/dist/src/components/chip/chip-types.d.ts +104 -102
  127. package/dist/src/components/chip/chip-utils.d.ts +20 -18
  128. package/dist/src/components/chip/index.d.ts +5 -7
  129. package/dist/src/components/chip/index.shadow.d.ts +6 -5
  130. package/dist/src/components/chip/mono-chip.d.ts +31 -27
  131. package/dist/src/components/chip/mono-chip.shadow.d.ts +19 -15
  132. package/dist/src/components/chip/mono-status-dot.d.ts +19 -17
  133. package/dist/src/components/date/date-core.d.ts +64 -62
  134. package/dist/src/components/date/date-types.d.ts +143 -141
  135. package/dist/src/components/date/index.d.ts +3 -2
  136. package/dist/src/components/date/index.shadow.d.ts +4 -3
  137. package/dist/src/components/date/mono-date.d.ts +12 -8
  138. package/dist/src/components/date/mono-date.shadow.d.ts +21 -17
  139. package/dist/src/components/drawer/drawer-core.d.ts +75 -73
  140. package/dist/src/components/drawer/drawer-types.d.ts +109 -107
  141. package/dist/src/components/drawer/index.d.ts +3 -2
  142. package/dist/src/components/drawer/index.shadow.d.ts +4 -3
  143. package/dist/src/components/drawer/mono-drawer.d.ts +32 -28
  144. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +34 -31
  145. package/dist/src/components/dropdown/dropdown-core.d.ts +31 -29
  146. package/dist/src/components/dropdown/dropdown-types.d.ts +62 -60
  147. package/dist/src/components/dropdown/index.d.ts +3 -2
  148. package/dist/src/components/dropdown/index.shadow.d.ts +4 -3
  149. package/dist/src/components/dropdown/mono-dropdown.d.ts +23 -19
  150. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +19 -15
  151. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +53 -51
  152. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +218 -216
  153. package/dist/src/components/dropdown-table/index.d.ts +5 -4
  154. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -5
  155. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +119 -129
  156. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +20 -16
  157. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +15 -11
  158. package/dist/src/components/file-upload/file-upload-core.d.ts +44 -42
  159. package/dist/src/components/file-upload/file-upload-types.d.ts +123 -121
  160. package/dist/src/components/file-upload/file-upload-utils.d.ts +7 -4
  161. package/dist/src/components/file-upload/index.d.ts +4 -3
  162. package/dist/src/components/file-upload/index.shadow.d.ts +5 -4
  163. package/dist/src/components/file-upload/mono-file-upload.d.ts +20 -16
  164. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +34 -30
  165. package/dist/src/components/filter/filter-builder-core.d.ts +17 -15
  166. package/dist/src/components/filter/filter-builder.d.ts +4 -22
  167. package/dist/src/components/filter/filter-odata.d.ts +3 -1
  168. package/dist/src/components/filter/filter-operators.d.ts +3 -1
  169. package/dist/src/components/filter/filter-types.d.ts +172 -170
  170. package/dist/src/components/filter/index.d.ts +6 -5
  171. package/dist/src/components/filter/index.shadow.d.ts +7 -6
  172. package/dist/src/components/filter/mono-filter-builder.d.ts +13 -10
  173. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +10 -7
  174. package/dist/src/components/form/form-control-core.d.ts +14 -12
  175. package/dist/src/components/form/form-rules.d.ts +7 -5
  176. package/dist/src/components/form/form-types.d.ts +214 -214
  177. package/dist/src/components/form/index.d.ts +5 -5
  178. package/dist/src/components/form/mono-form-controller.d.ts +4 -15
  179. package/dist/src/components/input/index.d.ts +5 -5
  180. package/dist/src/components/input/index.shadow.d.ts +6 -7
  181. package/dist/src/components/input/input-core.d.ts +73 -71
  182. package/dist/src/components/input/input-format.d.ts +22 -20
  183. package/dist/src/components/input/input-types.d.ts +167 -165
  184. package/dist/src/components/input/input-utils.d.ts +7 -5
  185. package/dist/src/components/input/mono-input.d.ts +35 -31
  186. package/dist/src/components/input/mono-input.shadow.d.ts +17 -13
  187. package/dist/src/components/menu/index.d.ts +7 -5
  188. package/dist/src/components/menu/index.shadow.d.ts +7 -6
  189. package/dist/src/components/menu/menu-core.d.ts +47 -45
  190. package/dist/src/components/menu/menu-render.d.ts +42 -40
  191. package/dist/src/components/menu/menu-types.d.ts +132 -130
  192. package/dist/src/components/menu/menu-utils.d.ts +16 -13
  193. package/dist/src/components/menu/mono-menu-list.d.ts +116 -114
  194. package/dist/src/components/menu/mono-menu.d.ts +30 -26
  195. package/dist/src/components/menu/mono-menu.shadow.d.ts +22 -18
  196. package/dist/src/components/modal/index.d.ts +5 -3
  197. package/dist/src/components/modal/index.shadow.d.ts +6 -4
  198. package/dist/src/components/modal/modal-core.d.ts +81 -79
  199. package/dist/src/components/modal/modal-types.d.ts +223 -221
  200. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -3
  201. package/dist/src/components/modal/mono-modal.d.ts +32 -28
  202. package/dist/src/components/modal/mono-modal.shadow.d.ts +38 -35
  203. package/dist/src/components/nav/index.d.ts +4 -3
  204. package/dist/src/components/nav/index.shadow.d.ts +5 -5
  205. package/dist/src/components/nav/mono-nav.d.ts +28 -24
  206. package/dist/src/components/nav/mono-nav.shadow.d.ts +10 -7
  207. package/dist/src/components/nav/nav-core.d.ts +16 -14
  208. package/dist/src/components/nav/nav-types.d.ts +23 -22
  209. package/dist/src/components/nav/nav-utils.d.ts +10 -8
  210. package/dist/src/components/radio/index.d.ts +4 -3
  211. package/dist/src/components/radio/index.shadow.d.ts +5 -4
  212. package/dist/src/components/radio/mono-radio.d.ts +19 -15
  213. package/dist/src/components/radio/mono-radio.shadow.d.ts +22 -18
  214. package/dist/src/components/radio/radio-core.d.ts +31 -29
  215. package/dist/src/components/radio/radio-types.d.ts +48 -46
  216. package/dist/src/components/radio/radio-utils.d.ts +5 -3
  217. package/dist/src/components/rich-text-editor/index.d.ts +5 -4
  218. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -5
  219. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +19 -15
  220. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +22 -19
  221. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +61 -59
  222. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +2 -0
  223. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +5 -3
  224. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +179 -177
  225. package/dist/src/components/select/index.d.ts +4 -3
  226. package/dist/src/components/select/index.shadow.d.ts +5 -4
  227. package/dist/src/components/select/mono-select.d.ts +58 -54
  228. package/dist/src/components/select/mono-select.shadow.d.ts +30 -27
  229. package/dist/src/components/select/select-core.d.ts +82 -80
  230. package/dist/src/components/select/select-types.d.ts +235 -208
  231. package/dist/src/components/select/select-utils.d.ts +7 -5
  232. package/dist/src/components/sidebar/index.d.ts +4 -3
  233. package/dist/src/components/sidebar/index.shadow.d.ts +5 -5
  234. package/dist/src/components/sidebar/mono-sidebar.d.ts +22 -18
  235. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +11 -8
  236. package/dist/src/components/sidebar/sidebar-core.d.ts +33 -31
  237. package/dist/src/components/sidebar/sidebar-types.d.ts +77 -75
  238. package/dist/src/components/sidebar/sidebar-utils.d.ts +28 -26
  239. package/dist/src/components/switch/index.d.ts +4 -3
  240. package/dist/src/components/switch/index.shadow.d.ts +5 -4
  241. package/dist/src/components/switch/mono-switch.d.ts +19 -15
  242. package/dist/src/components/switch/mono-switch.shadow.d.ts +23 -19
  243. package/dist/src/components/switch/switch-core.d.ts +35 -33
  244. package/dist/src/components/switch/switch-types.d.ts +55 -53
  245. package/dist/src/components/switch/switch-utils.d.ts +5 -3
  246. package/dist/src/components/table/array-source.d.ts +31 -29
  247. package/dist/src/components/table/date-filter-tree.d.ts +25 -23
  248. package/dist/src/components/table/grouping.d.ts +22 -20
  249. package/dist/src/components/table/index.d.ts +28 -32
  250. package/dist/src/components/table/index.shadow.d.ts +34 -46
  251. package/dist/src/components/table/mono-data-grid.d.ts +1447 -1456
  252. package/dist/src/components/table/mono-table-checkbox-core.d.ts +34 -32
  253. package/dist/src/components/table/mono-table-checkbox.d.ts +12 -8
  254. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +16 -12
  255. package/dist/src/components/table/mono-table-detail-core.d.ts +29 -27
  256. package/dist/src/components/table/mono-table-detail.d.ts +12 -8
  257. package/dist/src/components/table/mono-table-detail.shadow.d.ts +13 -9
  258. package/dist/src/components/table/mono-table-empty-core.d.ts +24 -22
  259. package/dist/src/components/table/mono-table-empty.d.ts +17 -13
  260. package/dist/src/components/table/mono-table-empty.shadow.d.ts +22 -18
  261. package/dist/src/components/table/mono-table-error-core.d.ts +24 -22
  262. package/dist/src/components/table/mono-table-error.d.ts +12 -8
  263. package/dist/src/components/table/mono-table-error.shadow.d.ts +15 -11
  264. package/dist/src/components/table/mono-table-info-core.d.ts +6 -4
  265. package/dist/src/components/table/mono-table-info.d.ts +12 -8
  266. package/dist/src/components/table/mono-table-info.shadow.d.ts +9 -5
  267. package/dist/src/components/table/mono-table-loading-core.d.ts +7 -5
  268. package/dist/src/components/table/mono-table-loading.d.ts +12 -8
  269. package/dist/src/components/table/mono-table-loading.shadow.d.ts +9 -5
  270. package/dist/src/components/table/mono-table-page-size-core.d.ts +7 -5
  271. package/dist/src/components/table/mono-table-page-size.d.ts +12 -8
  272. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +9 -5
  273. package/dist/src/components/table/mono-table-paging-core.d.ts +16 -14
  274. package/dist/src/components/table/mono-table-paging-group-core.d.ts +10 -8
  275. package/dist/src/components/table/mono-table-paging-group.d.ts +12 -8
  276. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +9 -5
  277. package/dist/src/components/table/mono-table-paging.d.ts +12 -8
  278. package/dist/src/components/table/mono-table-paging.shadow.d.ts +9 -5
  279. package/dist/src/components/table/mono-table-search-core.d.ts +51 -49
  280. package/dist/src/components/table/mono-table-search.d.ts +25 -22
  281. package/dist/src/components/table/mono-table-search.shadow.d.ts +12 -9
  282. package/dist/src/components/table/mono-table-sort-core.d.ts +16 -14
  283. package/dist/src/components/table/mono-table-sort.d.ts +21 -18
  284. package/dist/src/components/table/mono-table-sort.shadow.d.ts +11 -8
  285. package/dist/src/components/table/mono-table-summary-core.d.ts +9 -7
  286. package/dist/src/components/table/mono-table-summary.d.ts +12 -8
  287. package/dist/src/components/table/mono-table-summary.shadow.d.ts +9 -5
  288. package/dist/src/components/table/mono-table-th-core.d.ts +23 -21
  289. package/dist/src/components/table/mono-table-th.d.ts +21 -18
  290. package/dist/src/components/table/mono-table-th.shadow.d.ts +11 -8
  291. package/dist/src/components/table/store-group-source.d.ts +14 -12
  292. package/dist/src/components/table/table-controller-core.d.ts +17 -15
  293. package/dist/src/components/table/table-filter-icons.d.ts +3 -1
  294. package/dist/src/components/table/table-menu-core.d.ts +40 -38
  295. package/dist/src/components/table/table-overlay.d.ts +43 -41
  296. package/dist/src/components/table/table-sort-icons.d.ts +4 -2
  297. package/dist/src/components/table/table-sort-utils.d.ts +3 -1
  298. package/dist/src/components/table/table-types.d.ts +391 -400
  299. package/dist/src/components/tabs/index.d.ts +3 -2
  300. package/dist/src/components/tabs/index.shadow.d.ts +4 -3
  301. package/dist/src/components/tabs/mono-tabs.d.ts +21 -17
  302. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +21 -17
  303. package/dist/src/components/tabs/tabs-core.d.ts +36 -34
  304. package/dist/src/components/tabs/tabs-types.d.ts +48 -46
  305. package/dist/src/components/tag-input/index.d.ts +5 -3
  306. package/dist/src/components/tag-input/index.shadow.d.ts +6 -4
  307. package/dist/src/components/tag-input/mono-tag-input.d.ts +56 -52
  308. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +41 -38
  309. package/dist/src/components/tag-input/tag-input-core.d.ts +95 -93
  310. package/dist/src/components/tag-input/tag-input-types.d.ts +350 -327
  311. package/dist/src/components/tag-input/tag-input-utils.d.ts +7 -5
  312. package/dist/src/components/textarea/index.d.ts +4 -3
  313. package/dist/src/components/textarea/index.shadow.d.ts +5 -4
  314. package/dist/src/components/textarea/mono-textarea.d.ts +19 -15
  315. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +19 -16
  316. package/dist/src/components/textarea/textarea-core.d.ts +48 -46
  317. package/dist/src/components/textarea/textarea-types.d.ts +120 -118
  318. package/dist/src/components/textarea/textarea-utils.d.ts +7 -5
  319. package/dist/src/components/tooltip/control-tooltip.d.ts +3 -1
  320. package/dist/src/components/tooltip/index.d.ts +6 -5
  321. package/dist/src/components/tooltip/tooltip-config.d.ts +17 -15
  322. package/dist/src/components/tooltip/tooltip-declarative.d.ts +3 -1
  323. package/dist/src/components/tooltip/tooltip-loader.d.ts +2 -0
  324. package/dist/src/components/tooltip/tooltip-types.d.ts +74 -72
  325. package/dist/src/composables/breakpoints.d.ts +9 -7
  326. package/dist/src/composables/chip-limits.d.ts +12 -10
  327. package/dist/src/composables/chip-strip.d.ts +91 -89
  328. package/dist/src/composables/color.d.ts +6 -4
  329. package/dist/src/composables/css-class.d.ts +4 -2
  330. package/dist/src/composables/css-size.d.ts +9 -7
  331. package/dist/src/composables/data-source-controller.d.ts +90 -59
  332. package/dist/src/composables/element-props.d.ts +3 -3
  333. package/dist/src/composables/field-icons.d.ts +11 -1
  334. package/dist/src/composables/hybird-prop.d.ts +10 -8
  335. package/dist/src/composables/hydration-flush.d.ts +16 -14
  336. package/dist/src/composables/icon.d.ts +3 -1
  337. package/dist/src/composables/layout-var.d.ts +2 -0
  338. package/dist/src/composables/light-slots.d.ts +34 -32
  339. package/dist/src/composables/mdi-glyphs.d.ts +2 -0
  340. package/dist/src/composables/mono-element.d.ts +3 -1
  341. package/dist/src/composables/mono-event.d.ts +15 -13
  342. package/dist/src/composables/mono-pending.d.ts +4 -2
  343. package/dist/src/composables/mono-skeleton.d.ts +100 -98
  344. package/dist/src/composables/mono-ui.d.ts +17 -18
  345. package/dist/src/composables/notifier.d.ts +20 -18
  346. package/dist/src/composables/popup-portal.d.ts +177 -175
  347. package/dist/src/composables/popup-stack.d.ts +36 -34
  348. package/dist/src/composables/rate-limit.d.ts +33 -31
  349. package/dist/src/composables/reactive.d.ts +3 -1
  350. package/dist/src/composables/shadow-css.d.ts +17 -15
  351. package/dist/src/composables/visibility.d.ts +6 -4
  352. package/dist/src/data/theme/index.d.ts +9 -7
  353. package/dist/src/data/theme/presets.d.ts +64 -62
  354. package/dist/src/entries/index.d.ts +36 -1
  355. package/dist/src/entries/index.node.d.ts +34 -41
  356. package/dist/src/entries/search.d.ts +2 -2
  357. package/dist/src/export/detail.d.ts +14 -12
  358. package/dist/src/export/download.d.ts +2 -0
  359. package/dist/src/export/excel/index.d.ts +13 -11
  360. package/dist/src/export/excel/nodes.d.ts +95 -93
  361. package/dist/src/export/expression.d.ts +3 -1
  362. package/dist/src/export/helpers.d.ts +3 -1
  363. package/dist/src/export/index.d.ts +6 -4
  364. package/dist/src/export/markdown.d.ts +19 -17
  365. package/dist/src/export/resolve-data.d.ts +3 -1
  366. package/dist/src/export/sentinel.d.ts +32 -30
  367. package/dist/src/export/sheet-name.d.ts +7 -5
  368. package/dist/src/export/styles.d.ts +13 -11
  369. package/dist/src/export/template.d.ts +3 -1
  370. package/dist/src/export/types.d.ts +224 -222
  371. package/dist/src/import/coerce.d.ts +5 -3
  372. package/dist/src/import/index.d.ts +12 -10
  373. package/dist/src/import/match.d.ts +20 -18
  374. package/dist/src/import/parse.d.ts +5 -3
  375. package/dist/src/import/types.d.ts +125 -123
  376. package/dist/src/nuxt/index.d.ts +92 -90
  377. package/dist/src/search/data-search.d.ts +92 -90
  378. package/dist/src/search/field-path.d.ts +10 -8
  379. package/dist/src/search/filter-eval.d.ts +2 -0
  380. package/dist/src/search/index.d.ts +6 -22
  381. package/dist/src/search/odata-search.d.ts +9 -7
  382. package/dist/src/search/search-expr.d.ts +16 -14
  383. package/dist/src/utils/data-source-apply.d.ts +11 -9
  384. package/dist/src/utils/data-source-options.d.ts +37 -35
  385. package/dist/src/utils/data-source-read.d.ts +40 -54
  386. package/dist/src/utils/data-source-summary.d.ts +8 -7
  387. package/dist/src/utils/normalize-error.d.ts +41 -9
  388. package/dist/src/vite/index.d.ts +34 -34
  389. package/dist/src/vite/mono-client-only.d.ts +34 -32
  390. package/dist/src/vite/mono-ssr-stub.d.ts +8 -6
  391. package/dist/src/vite/shadow-manifest.d.ts +2 -0
  392. package/dist/{styles-BIJ31TM4.js → styles-D-ergrfR.js} +417 -207
  393. package/dist/{tooltip-CysgRgBi.js → tooltip-FCMRUSLi.js} +94 -52
  394. package/dist/tooltip.js +3 -2
  395. package/dist/ui/accordion.js +16 -12
  396. package/dist/ui/alert.js +21 -14
  397. package/dist/ui/breadcrumb.js +28 -18
  398. package/dist/ui/button-dropdown.js +18 -14
  399. package/dist/ui/button.js +4 -2
  400. package/dist/ui/card.js +31 -13
  401. package/dist/ui/chart.js +107 -25
  402. package/dist/ui/checkbox.js +17 -12
  403. package/dist/ui/chip.js +19 -12
  404. package/dist/ui/date.js +19 -15
  405. package/dist/ui/drawer.js +26 -20
  406. package/dist/ui/dropdown-table.js +39 -30
  407. package/dist/ui/dropdown.js +19 -15
  408. package/dist/ui/file-upload.js +22 -17
  409. package/dist/ui/filter.js +18 -14
  410. package/dist/ui/form.js +4 -3
  411. package/dist/ui/index.css +1233 -2194
  412. package/dist/ui/input.js +24 -17
  413. package/dist/ui/menu.js +32 -20
  414. package/dist/ui/modal.js +34 -26
  415. package/dist/ui/nav.js +21 -15
  416. package/dist/ui/radio.js +17 -12
  417. package/dist/ui/rich-text-editor.js +34 -28
  418. package/dist/ui/select.js +181 -41
  419. package/dist/ui/shadow/accordion.js +13 -9
  420. package/dist/ui/shadow/alert.js +13 -9
  421. package/dist/ui/shadow/breadcrumb.js +23 -14
  422. package/dist/ui/shadow/button-dropdown.js +17 -13
  423. package/dist/ui/shadow/button.js +4 -2
  424. package/dist/ui/shadow/card.js +30 -11
  425. package/dist/ui/shadow/chart.js +163 -40
  426. package/dist/ui/shadow/checkbox.js +13 -9
  427. package/dist/ui/shadow/chip.js +16 -10
  428. package/dist/ui/shadow/date.js +19 -12
  429. package/dist/ui/shadow/drawer.js +22 -16
  430. package/dist/ui/shadow/dropdown-table.js +39 -28
  431. package/dist/ui/shadow/dropdown.js +15 -11
  432. package/dist/ui/shadow/file-upload.js +26 -19
  433. package/dist/ui/shadow/filter.js +17 -13
  434. package/dist/ui/shadow/input.js +20 -14
  435. package/dist/ui/shadow/menu.js +24 -14
  436. package/dist/ui/shadow/modal.js +36 -27
  437. package/dist/ui/shadow/nav.js +18 -12
  438. package/dist/ui/shadow/radio.js +15 -10
  439. package/dist/ui/shadow/rich-text-editor.js +32 -26
  440. package/dist/ui/shadow/select.js +179 -39
  441. package/dist/ui/shadow/sidebar.js +23 -16
  442. package/dist/ui/shadow/switch.js +15 -10
  443. package/dist/ui/shadow/table.js +123 -84
  444. package/dist/ui/shadow/tabs.js +12 -8
  445. package/dist/ui/shadow/tag-input.js +186 -52
  446. package/dist/ui/shadow/textarea.js +17 -12
  447. package/dist/ui/sidebar.js +27 -20
  448. package/dist/ui/switch.js +17 -12
  449. package/dist/ui/table.js +129 -87
  450. package/dist/ui/tabs.js +15 -11
  451. package/dist/ui/tag-input.js +182 -48
  452. package/dist/ui/textarea.js +19 -14
  453. package/dist/{vite-C5iUK7so.js → vite-DcyRlTTf.js} +17 -9
  454. package/dist/vite.js +3 -2
  455. package/package.json +15 -14
  456. package/dist/checkbox-Cqpie9Ap.js +0 -4
  457. package/dist/chip-DBUUa2eB.js +0 -4
  458. package/dist/data/theme/presets.json.d.ts +0 -140
  459. package/dist/export.d.ts +0 -1
  460. package/dist/hydration-flush-RB5Tz5nl.js +0 -1001
  461. package/dist/import.d.ts +0 -1
  462. package/dist/index.d.ts +0 -1
  463. package/dist/index.node.d.ts +0 -1
  464. package/dist/input-zGOULADt.js +0 -4
  465. package/dist/mono-button-CoVnBLav.js +0 -873
  466. package/dist/mono-button.shadow-FfP_hMH4.js +0 -784
  467. package/dist/nuxt.d.ts +0 -1
  468. package/dist/search.d.ts +0 -1
  469. package/dist/tooltip.d.ts +0 -1
  470. package/dist/ui/accordion.d.ts +0 -1
  471. package/dist/ui/alert.d.ts +0 -1
  472. package/dist/ui/breadcrumb.d.ts +0 -1
  473. package/dist/ui/button-dropdown.d.ts +0 -1
  474. package/dist/ui/button.d.ts +0 -1
  475. package/dist/ui/card.d.ts +0 -1
  476. package/dist/ui/chart.d.ts +0 -1
  477. package/dist/ui/checkbox.d.ts +0 -1
  478. package/dist/ui/chip.d.ts +0 -1
  479. package/dist/ui/date.d.ts +0 -1
  480. package/dist/ui/drawer.d.ts +0 -1
  481. package/dist/ui/dropdown-table.d.ts +0 -1
  482. package/dist/ui/dropdown.d.ts +0 -1
  483. package/dist/ui/file-upload.d.ts +0 -1
  484. package/dist/ui/filter.d.ts +0 -1
  485. package/dist/ui/form.d.ts +0 -1
  486. package/dist/ui/input.d.ts +0 -1
  487. package/dist/ui/menu.d.ts +0 -1
  488. package/dist/ui/modal.d.ts +0 -1
  489. package/dist/ui/nav.d.ts +0 -1
  490. package/dist/ui/radio.d.ts +0 -1
  491. package/dist/ui/rich-text-editor.d.ts +0 -1
  492. package/dist/ui/select.d.ts +0 -1
  493. package/dist/ui/sidebar.d.ts +0 -1
  494. package/dist/ui/switch.d.ts +0 -1
  495. package/dist/ui/table.d.ts +0 -1
  496. package/dist/ui/tabs.d.ts +0 -1
  497. package/dist/ui/tag-input.d.ts +0 -1
  498. package/dist/ui/textarea.d.ts +0 -1
  499. package/dist/vite.d.ts +0 -1
@@ -1,15 +1,16 @@
1
- import { a as __decorate, 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 cssPart } from "../../css-class-BRKRzHx-.js";
4
- import { t as buildSizeStyle } from "../../css-size-DhHSVZJK.js";
5
- import { t as MonoFormControlCore } from "../../form-control-core-B8d7k6vk.js";
6
- import { t as input_default } from "../../input-zGOULADt.js";
1
+ import { a as __decorate, 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 cssPart } from "../../css-class-B6Tc_MAx.js";
4
+ import { t as buildSizeStyle } from "../../css-size-DWAPgQdT.js";
5
+ import { t as MonoFormControlCore } from "../../form-control-core-CIdMLXMo.js";
6
+ import { t as input_css_raw_default } from "../../input.css_raw-CGESifay.js";
7
7
  import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
8
8
  import { property, query, state } from "lit/decorators.js";
9
9
  import { ifDefined } from "lit/directives/if-defined.js";
10
10
  import { styleMap } from "lit/directives/style-map.js";
11
+
11
12
  //#region src/components/input/input-format.ts
12
- var SEPARATOR_CACHE = /* @__PURE__ */ new Map();
13
+ const SEPARATOR_CACHE = /* @__PURE__ */ new Map();
13
14
  /**
14
15
  * Ask `Intl` which characters this locale uses, rather than assuming `,` and `.`.
15
16
  *
@@ -256,9 +257,10 @@ function resolveFormat(format, raw, ctx, mode) {
256
257
  if (!descriptor) return null;
257
258
  return mode === "display" ? applyFormat(raw, descriptor, ctx.locale) : normaliseValue(raw, descriptor);
258
259
  }
260
+
259
261
  //#endregion
260
262
  //#region src/components/input/input-core.ts
261
- var numberStringConverter = {
263
+ const numberStringConverter = {
262
264
  fromAttribute(value) {
263
265
  if (value === null || value === "") return void 0;
264
266
  const parsed = Number(value);
@@ -282,7 +284,7 @@ var numberStringConverter = {
282
284
  * shared `_hasXxxSlotState` `@state` fields back both strategies and feed the
283
285
  * class getters.
284
286
  */
285
- var MonoInputCore = (superClass) => {
287
+ const MonoInputCore = (superClass) => {
286
288
  class MonoInputCoreClass extends MonoFormControlCore(superClass) {
287
289
  constructor(...args) {
288
290
  super(...args);
@@ -658,7 +660,8 @@ var MonoInputCore = (superClass) => {
658
660
  input.value = next;
659
661
  this._display = next;
660
662
  if (caretBefore == null) return;
661
- const caret = caretAfterFormat(next, caretBefore, prev, significantFor(this._displayDescriptor, this.formatLocale));
663
+ const significant = significantFor(this._displayDescriptor, this.formatLocale);
664
+ const caret = caretAfterFormat(next, caretBefore, prev, significant);
662
665
  try {
663
666
  input.setSelectionRange(caret, caret);
664
667
  } catch {}
@@ -960,15 +963,16 @@ var MonoInputCore = (superClass) => {
960
963
  __decorate([state()], MonoInputCoreClass.prototype, "_hasHelperSlotState", void 0);
961
964
  return MonoInputCoreClass;
962
965
  };
966
+
963
967
  //#endregion
964
968
  //#region src/components/input/mono-input.shadow.ts
965
- var SHADOW_EXTRA_CSS = "";
966
- var MonoInputShadow = class MonoInputShadow extends withShadowUtilityStyles(MonoInputCore(LitElement)) {
969
+ const SHADOW_EXTRA_CSS = "";
970
+ let MonoInputShadow = class MonoInputShadow extends withShadowUtilityStyles(MonoInputCore(LitElement)) {
967
971
  static {
968
972
  this.disableWarning?.("change-in-update");
969
973
  }
970
974
  static {
971
- this.styles = [unsafeCSS(toShadowCss(input_default, {
975
+ this.styles = [unsafeCSS(toShadowCss(input_css_raw_default, {
972
976
  host: "mono-input",
973
977
  append: SHADOW_EXTRA_CSS
974
978
  }))];
@@ -1060,6 +1064,7 @@ var MonoInputShadow = class MonoInputShadow extends withShadowUtilityStyles(Mono
1060
1064
  }
1061
1065
  };
1062
1066
  MonoInputShadow = __decorate([customElement("mono-shadow-input")], MonoInputShadow);
1067
+
1063
1068
  //#endregion
1064
1069
  //#region src/components/input/input-utils.ts
1065
1070
  function validateInputProps(props) {
@@ -1146,5 +1151,6 @@ function getInputIcon(type) {
1146
1151
  };
1147
1152
  return iconMap[type] ?? iconMap.text;
1148
1153
  }
1154
+
1149
1155
  //#endregion
1150
- export { MonoInputCore, MonoInputShadow, applyFormat, caretAfterFormat, generateInputAriaAttributes, generateInputAttributes, getInputIcon, localeSeparators, normaliseValue, parseFormat, resolveFormat, significantFor, stripFormat, validateInputProps };
1156
+ export { MonoInputCore, MonoInputShadow, applyFormat, caretAfterFormat, generateInputAriaAttributes, generateInputAttributes, getInputIcon, localeSeparators, normaliseValue, parseFormat, resolveFormat, significantFor, stripFormat, validateInputProps };
@@ -1,9 +1,10 @@
1
- import { a as __decorate, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, o as arrayHasChanged, 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 isIconifyClass } from "../../icon-CJkTlmTb.js";
4
- import { a as validateColorProp, i as isThemeColorToken, n as colorClassToken, r as customColorStyle, t as CUSTOM_COLOR_CLASS } from "../../color-DHYrfXsX.js";
1
+ import { a as __decorate, f as customElement, i as withShadowUtilityStyles, l as defineHybridPropAliases, o as arrayHasChanged, 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 isIconifyClass } from "../../icon-BM9N-jOt.js";
4
+ import { a as validateColorProp, i as isThemeColorToken, n as colorClassToken, r as customColorStyle, t as CUSTOM_COLOR_CLASS } from "../../color-CEYYtRX-.js";
5
5
  import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
6
6
  import { property, state } from "lit/decorators.js";
7
+
7
8
  //#region src/components/menu/menu-utils.ts
8
9
  function isItem(node) {
9
10
  return !node.type || node.type === "item";
@@ -109,6 +110,7 @@ function menuRootAttrs(props) {
109
110
  color: isThemeColorToken(props.color) || props.color === "surface" ? props.color === "primary" ? null : props.color : CUSTOM_COLOR_CLASS
110
111
  };
111
112
  }
113
+
112
114
  //#endregion
113
115
  //#region src/components/menu/menu-render.ts
114
116
  function clsFor(base, key, cssClass) {
@@ -257,9 +259,10 @@ function renderMenuItemRow(item, ctx) {
257
259
  function renderMenuGroup(group, ctx) {
258
260
  const open = ctx.isGroupOpen(group.id);
259
261
  const ancestorActive = ctx.isGroupActive?.(group) ?? false;
262
+ const groupClasses = [clsFor("mono-menu-group", "group", ctx.cssClass), ancestorActive ? "active" : ""].filter(Boolean).join(" ");
260
263
  return html`
261
264
  <li
262
- class=${[clsFor("mono-menu-group", "group", ctx.cssClass), ancestorActive ? "active" : ""].filter(Boolean).join(" ")}
265
+ class=${groupClasses}
263
266
  mono-item
264
267
  mono-group
265
268
  ?mono-open=${open}
@@ -343,6 +346,7 @@ function renderMenuGroupsOnly(list, ctx) {
343
346
  for (const item of list) if (isGroup(item)) out.push(renderMenuGroup(item, ctx));
344
347
  return out;
345
348
  }
349
+
346
350
  //#endregion
347
351
  //#region src/components/menu/menu-core.ts
348
352
  /** Coerce any `items` input (array, JSON string, or other) to a MenuItem array. */
@@ -369,7 +373,7 @@ function coerceItems(value) {
369
373
  * capture / declarative `slot="body"`; shadow: items-driven only), and
370
374
  * `_chevronSvg()` (light: undefined → UnoCSS icon span; shadow: inline SVG).
371
375
  */
372
- var MonoMenuCore = (superClass) => {
376
+ const MonoMenuCore = (superClass) => {
373
377
  class MonoMenuCoreClass extends superClass {
374
378
  constructor(...args) {
375
379
  super(...args);
@@ -507,7 +511,8 @@ var MonoMenuCore = (superClass) => {
507
511
  }
508
512
  _findRegisteredItem(id) {
509
513
  for (const child of this._listChildren) {
510
- const found = findItem(child.getMenuItems?.() ?? [], id);
514
+ const items = child.getMenuItems?.() ?? [];
515
+ const found = findItem(items, id);
511
516
  if (found) return found;
512
517
  }
513
518
  return null;
@@ -517,7 +522,8 @@ var MonoMenuCore = (superClass) => {
517
522
  }
518
523
  _getRegisteredActivePath(id) {
519
524
  for (const child of this._listChildren) {
520
- const path = findActivePath(child.getMenuItems?.() ?? [], id);
525
+ const items = child.getMenuItems?.() ?? [];
526
+ const path = findActivePath(items, id);
521
527
  if (path.length) return path;
522
528
  }
523
529
  return [];
@@ -760,7 +766,8 @@ var MonoMenuCore = (superClass) => {
760
766
  * it has to serialize from THIS getter or it will wipe the colour.
761
767
  */
762
768
  get _inlineRootStyle() {
763
- return customColorStyle(isThemeColorToken(this.color) || this.color === "surface" ? "" : this.color, "menu");
769
+ const raw = isThemeColorToken(this.color) || this.color === "surface" ? "" : this.color;
770
+ return customColorStyle(raw, "menu");
764
771
  }
765
772
  render() {
766
773
  const attrs = menuRootAttrs(this);
@@ -819,14 +826,16 @@ var MonoMenuCore = (superClass) => {
819
826
  __decorate([state()], MonoMenuCoreClass.prototype, "_openGroups", void 0);
820
827
  return MonoMenuCoreClass;
821
828
  };
829
+
822
830
  //#endregion
823
- //#region src/components/menu/menu.css?raw
824
- var menu_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-menu — a port of Basecoat's sidebar NAVIGATION (basecoat-css@1.0.2,\r\n vega style).\r\n\r\n Basecoat has no standalone menu, but it has the thing a menu is: the list\r\n inside `.sidebar nav` — a group, its rows, its headings and its separators.\r\n That block is also the richest per-flavor surface in the whole vendor sheet,\r\n so this port is where a flavor finally gets to say what a nav row looks like.\r\n\r\n Styled by ATTRIBUTE, and the attributes mirror the element's props one for\r\n one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-menu density=\"compact\" color=\"success\" :nav=\"false\">\r\n <nav mono-menu mono-density=\"compact\" mono-color=\"success\" mono-plain\r\n role=\"navigation\">\r\n <ul mono-list>\r\n <li mono-item mono-active>\r\n <a mono-action href=\"/\" aria-current=\"page\">\r\n <span mono-icon>…</span>\r\n <span mono-content>\r\n <span mono-title>Dashboard</span>\r\n <span mono-subtitle>Overview</span>\r\n </span>\r\n <span mono-badge=\"info\">3</span>\r\n </a>\r\n </li>\r\n <li mono-divider role=\"separator\"></li>\r\n <li mono-subheader>Section</li>\r\n </ul>\r\n </nav>\r\n\r\n An absent attribute is the prop's default (`:not([mono-density])` =\r\n comfortable, `:not([mono-color])` = primary, and `nav` defaults to TRUE so\r\n `mono-plain` is what the other mode says). The old classes\r\n (`.mono-menu.comfortable.primary.nav`) are still emitted as inert hooks\r\n until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-menu] ≡ .sidebar nav > section > [role=group]\r\n (relative flex w-full min-w-0 flex-col, p-2 text-sm)\r\n :where([mono-menu]) [mono-list] ≡ .sidebar nav ul (flex w-full min-w-0 flex-col, gap-1)\r\n :where([mono-menu]) [mono-item] ≡ .sidebar nav li (relative)\r\n :where([mono-menu]) [mono-action] ≡ .sidebar nav li > :is(a, button) — the row\r\n [mono-active] ≡ [aria-current=page], [data-active=true]\r\n (bg-sidebar-accent text-sidebar-accent-foreground font-medium)\r\n :where([mono-menu]) [mono-subheader] ≡ .sidebar nav h3\r\n :where([mono-menu]) [mono-divider] ≡ .sidebar nav [role=separator] (border-sidebar-border mx-2 w-auto)\r\n :where([mono-menu]) [mono-group-header]≡ details > summary — the same row, plus the chevron\r\n [mono-density=…] ≡ [data-size='sm' | default | 'lg'] (h-7 / h-8 / h-12)\r\n :where([mono-menu]) [mono-badge] ≡ .badge — EXTENSION (upstream's rows carry none)\r\n :where([mono-menu]) [mono-subtitle] ≡ EXTENSION ([&>span:last-child]:truncate is upstream's\r\n only nod to a second line)\r\n [mono-color=…] ≡ EXTENSION (upstream has one accent)\r\n\r\n THE ACTIVE ROW IS A NEUTRAL WASH, not a brand gradient. Upstream paints it\r\n `bg-sidebar-accent text-sidebar-accent-foreground font-medium` — a flat\r\n surface tint. The pre-port sheet filled it with a two-stop brand gradient and\r\n a coloured shadow; both are gone. `color` still tints hover and the active\r\n row through `--mono-menu-accent`, and `color=\"surface\"` leaves it upstream's\r\n plain `--sidebar-accent`.\r\n\r\n DARK MODE comes free — every colour resolves through a Basecoat token that\r\n already flips. A selector crosses neither the custom-element host nor the\r\n shadow boundary, so no `.dark` rule can live in component CSS.\r\n\r\n FLAVORS set `--mono-menu-{radius,pad-x,pad-y,height,font,gap,icon-size,\r\n subheader-*,badge-*}` (+ the per-density forms); every fallback here is\r\n vega's value (`node scripts/basecoat-styles.mjs --grep \"sidebar nav\"`).\r\n ========================================================================= */\r\n\r\nmono-menu,\r\nmono-menu-list {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the group\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> > [role=group] — relative flex w-full min-w-0 flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav > section > [role=group] — p-2 text-sm */\r\n[mono-menu] {\r\n /* ── the roles, each a public knob over a Basecoat token ────────────────── */\r\n --_mono-menu-primary: var(--mono-menu-primary, var(--primary));\r\n --_mono-menu-secondary: var(--mono-menu-secondary, var(--secondary-foreground));\r\n --_mono-menu-success: var(--mono-menu-success, var(--success));\r\n --_mono-menu-danger: var(--mono-menu-danger, var(--destructive));\r\n --_mono-menu-warning: var(--mono-menu-warning, var(--warning));\r\n --_mono-menu-info: var(--mono-menu-info, var(--info));\r\n --_mono-menu-teal: var(--mono-menu-teal, var(--teal));\r\n --_mono-menu-purple: var(--mono-menu-purple, var(--purple));\r\n --_mono-menu-neutral: var(--mono-menu-neutral, var(--neutral));\r\n --_mono-menu-dark: var(--mono-menu-dark, var(--dark));\r\n\r\n --_mono-menu-accent: var(--mono-menu-accent, var(--_mono-menu-accent-preset, var(--_mono-menu-primary)));\r\n --_mono-menu-on-accent: var(--mono-menu-on-accent, var(--_mono-menu-on-accent-preset, var(--primary-foreground)));\r\n\r\n /* ── ink and surface — upstream's own chrome tokens ──────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav — bg-sidebar text-sidebar-foreground */\r\n --_mono-menu-surface: var(--mono-menu-surface, transparent);\r\n --_mono-menu-text: var(--mono-menu-text, var(--sidebar-foreground));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 …:\r\n upstream's muted chrome ink is the row ink at 70%. */\r\n --_mono-menu-text-soft: var(--mono-menu-text-soft, color-mix(in oklab, var(--_mono-menu-text) 70%, transparent));\r\n --_mono-menu-text-faint: var(--mono-menu-text-faint, color-mix(in oklab, var(--_mono-menu-text) 50%, transparent));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav [role=separator] — border-sidebar-border mx-2 */\r\n --_mono-menu-border: var(--mono-menu-border, var(--sidebar-border));\r\n --_mono-menu-border-lite: var(--mono-menu-border-lite, var(--_mono-menu-border));\r\n\r\n /* ── the row's resting / hover / active paint ────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button), .sidebar nav li > details > summary — ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-sm focus-visible:ring-2 text-left focus-visible:outline-hidden data-[open]:hover:bg-sidebar-accent data-[open]:hover:text-sidebar-accent-foreground [&>svg]:shrink-0 [&>svg]:size-4\r\n Hover is a SURFACE wash upstream, not the brand — so the role only tints\r\n it, at `--mono-mode-tint`, and `color=\"surface\"` leaves it exactly\r\n `--sidebar-accent`. */\r\n --_mono-menu-hover-tint: var(--mono-menu-hover-tint, var(--_mono-menu-hover-tint-preset, var(--mono-mode-tint)));\r\n --_mono-menu-hover-bg: var(--mono-menu-hover-bg, color-mix(in oklab, var(--_mono-menu-accent) var(--_mono-menu-hover-tint), var(--sidebar-accent)));\r\n --_mono-menu-hover-color: var(--mono-menu-hover-color, var(--sidebar-accent-foreground));\r\n --_mono-menu-hover-border-color: var(--mono-menu-hover-border-color, transparent);\r\n\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button):is([aria-current=page], [data-active=true]), .sidebar nav li > details > summary:is([aria-current=page], [data-active=true]) — bg-sidebar-accent text-sidebar-accent-foreground font-medium */\r\n --_mono-menu-active-tint: var(--mono-menu-active-tint, var(--_mono-menu-active-tint-preset, var(--mono-mode-tint-hover)));\r\n --_mono-menu-active-bg: var(--mono-menu-active-bg, color-mix(in oklab, var(--_mono-menu-accent) var(--_mono-menu-active-tint), var(--sidebar-accent)));\r\n --_mono-menu-active-color: var(--mono-menu-active-color, var(--_mono-menu-active-color-preset, var(--_mono-menu-accent)));\r\n --_mono-menu-active-weight: var(--mono-menu-active-weight, var(--mono-font-weight-medium));\r\n /* the pre-port glow; upstream has none, so it starts at nothing */\r\n --_mono-menu-active-shadow: var(--mono-menu-active-shadow, none);\r\n\r\n /* ── comfortable metrics live on the unqualified root ON PURPOSE ─────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button):not([data-size]), .sidebar nav li > details > summary:not([data-size]), .sidebar nav li > :is(a, button)[data-size=default], .sidebar nav li > details > summary[data-size=default] — h-8 text-sm */\r\n --_mono-menu-height: var(--mono-menu-height, var(--_mono-menu-height-preset, var(--mono-menu-height-comfortable, calc(var(--mono-spacing) * 8))));\r\n --_mono-menu-pad-x: var(--mono-menu-pad-x, var(--_mono-menu-pad-x-preset, var(--mono-menu-pad-x-comfortable, calc(var(--mono-spacing) * 2))));\r\n --_mono-menu-pad-y: var(--mono-menu-pad-y, var(--_mono-menu-pad-y-preset, var(--mono-menu-pad-y-comfortable, calc(var(--mono-spacing) * 2))));\r\n --_mono-menu-font: var(--mono-menu-font, var(--_mono-menu-font-preset, var(--mono-menu-font-comfortable, var(--mono-text-sm))));\r\n --_mono-menu-line-height: var(--mono-menu-line-height, var(--_mono-menu-line-height-preset, var(--mono-text-sm--lh)));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav > section > [role=group] > ul — gap-1 */\r\n --_mono-menu-gap: var(--mono-menu-gap, var(--_mono-menu-gap-preset, var(--mono-menu-gap-comfortable, var(--mono-spacing))));\r\n /* the row's own gap — `gap-2` between icon, label and append */\r\n --_mono-menu-row-gap: var(--mono-menu-row-gap, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-radius: var(--mono-menu-radius, var(--_mono-menu-radius-preset, var(--mono-menu-radius-comfortable, var(--mono-radius-md))));\r\n /* `[&>svg]:size-4` */\r\n --_mono-menu-icon-size: var(--mono-menu-icon-size, var(--_mono-menu-icon-size-preset, var(--mono-menu-icon-size-comfortable, calc(var(--mono-spacing) * 4))));\r\n /* the group's own padding — `p-2` */\r\n --_mono-menu-group-pad: var(--mono-menu-group-pad, var(--_mono-menu-group-pad-preset, var(--mono-menu-group-pad-comfortable, calc(var(--mono-spacing) * 2))));\r\n /* ── the nested tree — EXTENSION ─────────────────────────────────────────\r\n Upstream nests a list and leaves it flush — `.sidebar nav … ul > ul` is only\r\n `flex min-w-0 flex-col` — so a child list reads as one straight column with\r\n its parent. mono keeps its pre-port tree affordance instead: a child list\r\n steps in by one gutter and hangs off a guide rule drawn under the centre of\r\n the parent row's icon, so depth is legible without reading the labels. */\r\n --_mono-menu-indent: var(--mono-menu-indent, var(--_mono-menu-indent-preset, var(--mono-menu-indent-comfortable, calc(var(--mono-spacing) * 4))));\r\n --_mono-menu-guide-width: var(--mono-menu-guide-width, var(--mono-border-width));\r\n --_mono-menu-guide-color: var(--mono-menu-guide-color, var(--_mono-menu-border-lite));\r\n /* the guide lines up with the middle of the parent row's icon */\r\n --_mono-menu-guide-offset: var(--mono-menu-guide-offset, calc(var(--_mono-menu-pad-x) + (var(--_mono-menu-icon-size) / 2)));\r\n\r\n /* ── the subheader — `.sidebar nav h3` ───────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium focus-visible:ring-2 [&>svg]:size-4 transition-[margin,opacity] duration-200 ease-linear */\r\n --_mono-menu-subheader-height: var(--mono-menu-subheader-height, calc(var(--mono-spacing) * 8));\r\n --_mono-menu-subheader-pad-x: var(--mono-menu-subheader-pad-x, var(--_mono-menu-subheader-pad-x-preset, calc(var(--mono-spacing) * 2)));\r\n --_mono-menu-subheader-font: var(--mono-menu-subheader-font, var(--mono-text-xs));\r\n --_mono-menu-subheader-weight: var(--mono-menu-subheader-weight, var(--mono-font-weight-medium));\r\n --_mono-menu-subheader-transform: var(--mono-menu-subheader-transform, none);\r\n --_mono-menu-subheader-tracking: var(--mono-menu-subheader-tracking, normal);\r\n --_mono-menu-subheader-radius: var(--mono-menu-subheader-radius, var(--_mono-menu-subheader-radius-preset, var(--mono-radius-md)));\r\n\r\n /* ── the badge — EXTENSION, borrowing `.badge`'s shape ───────────────────\r\n basecoat@1.0.2 styles/vega.css .badge — h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all [&>svg]:size-3! */\r\n --_mono-menu-badge-height: var(--mono-menu-badge-height, calc(var(--mono-spacing) * 5));\r\n --_mono-menu-badge-pad-x: var(--mono-menu-badge-pad-x, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-badge-radius: var(--mono-menu-badge-radius, var(--mono-radius-4xl));\r\n --_mono-menu-badge-font: var(--mono-menu-badge-font, var(--mono-text-xs));\r\n --_mono-menu-badge-weight: var(--mono-menu-badge-weight, var(--mono-font-weight-medium));\r\n --_mono-menu-badge-bg: var(--mono-menu-badge-bg, var(--secondary));\r\n --_mono-menu-badge-color: var(--mono-menu-badge-color, var(--secondary-foreground));\r\n\r\n /* the two knobs a rail collapses with — the sidebar writes them */\r\n /* ── the rail-collapse contract ──────────────────────────────────────────\r\n A sidebar in collapsed rail mode hands these down as inherited custom\r\n properties, because a descendant selector cannot reach a slotted SHADOW\r\n menu's rows. Every one of them has to be consumed here or the collapse\r\n only happens in the build the sidebar's own legacy class rules could\r\n reach — which is exactly how the light build ended up centring its rows\r\n while the shadow build and the hand-written twins did not. */\r\n --_mono-menu-label-display: var(--mono-menu-label-display, inline-flex);\r\n /* the same switch, for the parts whose natural display is block-level */\r\n --_mono-menu-block-display: var(--mono-menu-label-display, list-item);\r\n --_mono-menu-row-display: var(--mono-menu-row-display, list-item);\r\n --_mono-menu-row-justify: var(--mono-menu-row-justify, normal);\r\n --_mono-menu-action-width: var(--mono-menu-action-width, 100%);\r\n --_mono-menu-action-justify: var(--mono-menu-action-justify, flex-start);\r\n --_mono-menu-action-gap: var(--mono-menu-action-gap, var(--_mono-menu-row-gap));\r\n\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n min-width: 0;\r\n padding: var(--_mono-menu-group-pad);\r\n font-family: inherit;\r\n font-size: var(--_mono-menu-font);\r\n color: var(--_mono-menu-text);\r\n background: var(--_mono-menu-surface);\r\n}\r\n\r\n[mono-menu],\r\n:where([mono-menu]) *,\r\n:where([mono-menu]) *::before,\r\n:where([mono-menu]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Density — upstream's `data-size` ladder\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button)[data-size=sm], .sidebar nav li > details > summary[data-size=sm] — h-7 text-xs */\r\n[mono-menu][mono-density=\"compact\"] {\r\n --_mono-menu-height-preset: var(--mono-menu-height-compact, calc(var(--mono-spacing) * 7));\r\n --_mono-menu-pad-x-preset: var(--mono-menu-pad-x-compact, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-pad-y-preset: var(--mono-menu-pad-y-compact, calc(var(--mono-spacing) * 1));\r\n --_mono-menu-font-preset: var(--mono-menu-font-compact, var(--mono-text-xs));\r\n --_mono-menu-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-menu-gap-preset: var(--mono-menu-gap-compact, calc(var(--mono-spacing) * 0.5));\r\n --_mono-menu-icon-size-preset: var(--mono-menu-icon-size-compact, calc(var(--mono-spacing) * 3.5));\r\n --_mono-menu-group-pad-preset: var(--mono-menu-group-pad-compact, calc(var(--mono-spacing) * 1.5));\r\n --_mono-menu-indent-preset: var(--mono-menu-indent-compact, calc(var(--mono-spacing) * 3.5));\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button)[data-size=lg], .sidebar nav li > details > summary[data-size=lg] — h-12 text-sm */\r\n[mono-menu][mono-density=\"default\"] {\r\n --_mono-menu-height-preset: var(--mono-menu-height-default, calc(var(--mono-spacing) * 12));\r\n --_mono-menu-pad-x-preset: var(--mono-menu-pad-x-default, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-pad-y-preset: var(--mono-menu-pad-y-default, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-font-preset: var(--mono-menu-font-default, var(--mono-text-sm));\r\n --_mono-menu-gap-preset: var(--mono-menu-gap-default, calc(var(--mono-spacing) * 1.5));\r\n --_mono-menu-icon-size-preset: var(--mono-menu-icon-size-default, calc(var(--mono-spacing) * 5));\r\n --_mono-menu-group-pad-preset: var(--mono-menu-group-pad-default, calc(var(--mono-spacing) * 3));\r\n --_mono-menu-indent-preset: var(--mono-menu-indent-default, calc(var(--mono-spacing) * 4.5));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role TINTS upstream's neutral wash\r\n ========================================= */\r\n\r\n[mono-menu][mono-color=\"primary\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-primary);\r\n --_mono-menu-on-accent-preset: var(--primary-foreground);\r\n}\r\n[mono-menu][mono-color=\"secondary\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-secondary);\r\n --_mono-menu-on-accent-preset: var(--secondary);\r\n}\r\n[mono-menu][mono-color=\"success\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-success);\r\n --_mono-menu-on-accent-preset: var(--success-foreground);\r\n}\r\n[mono-menu][mono-color=\"danger\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-danger);\r\n --_mono-menu-on-accent-preset: var(--destructive-foreground);\r\n}\r\n[mono-menu][mono-color=\"warning\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-warning);\r\n --_mono-menu-on-accent-preset: var(--warning-foreground);\r\n}\r\n[mono-menu][mono-color=\"info\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-info);\r\n --_mono-menu-on-accent-preset: var(--info-foreground);\r\n}\r\n[mono-menu][mono-color=\"teal\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-teal);\r\n --_mono-menu-on-accent-preset: var(--teal-foreground);\r\n}\r\n[mono-menu][mono-color=\"purple\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-purple);\r\n --_mono-menu-on-accent-preset: var(--purple-foreground);\r\n}\r\n[mono-menu][mono-color=\"neutral\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-neutral);\r\n --_mono-menu-on-accent-preset: var(--neutral-foreground);\r\n}\r\n[mono-menu][mono-color=\"dark\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-dark);\r\n --_mono-menu-on-accent-preset: var(--dark-foreground);\r\n}\r\n\r\n/* `surface` is upstream exactly: the wash is `--sidebar-accent`, untinted, and\r\n the active row is inked `--sidebar-accent-foreground` rather than a role. */\r\n[mono-menu][mono-color=\"surface\"] {\r\n --_mono-menu-hover-tint-preset: 0%;\r\n --_mono-menu-active-tint-preset: 0%;\r\n --_mono-menu-active-color-preset: var(--sidebar-accent-foreground);\r\n}\r\n\r\n/* =========================================\r\n The list\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul — flex w-full min-w-0 flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav > section > [role=group] > ul — gap-1\r\n The root is in the selector so `.vp-doc ul, .vp-doc ol` (0,1,1) cannot inject\r\n the left padding that would break a flush menu. */\r\n:where([mono-menu]) [mono-list] {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n min-width: 0;\r\n gap: var(--_mono-menu-gap);\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> ul — flex min-w-0 flex-col\r\n Upstream stops at the flex column. The rest is mono's own tree affordance:\r\n the child list is pushed in under the parent row's icon, hangs off a guide\r\n rule, and clears the row above it by one list gap — a nested `ul` is a block\r\n child of its `li`, so the parent list's `gap` never reaches it.\r\n\r\n `:has(> *)` because a declarative row always renders its children list, even\r\n with no children in it: an empty one would otherwise hang a guide off every\r\n leaf row and push the next row down by a gap. */\r\n:where([mono-menu]) [mono-list] [mono-list]:has(> *) {\r\n width: auto;\r\n margin-top: var(--_mono-menu-gap);\r\n margin-inline-start: var(--_mono-menu-guide-offset);\r\n padding-inline-start: var(--_mono-menu-indent);\r\n border-inline-start: var(--_mono-menu-guide-width) solid var(--_mono-menu-guide-color);\r\n}\r\n\r\n/* The DECLARATIVE body (`slot=\"body\"` + `<mono-menu-list>`). Each top-level\r\n row renders its own `<ul mono-list>`, so they are siblings of one another\r\n rather than `li`s of one list — nothing was left to carry the row gap, and a\r\n declarative menu's top-level rows sat flush while an items-driven one (and\r\n every hand-written twin) spaced them. Lay the body out as the list would, and\r\n dissolve the element the author hung `slot=\"body\"` on so the rows become its\r\n own children. */\r\n:where([mono-menu]) [mono-body] {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n min-width: 0;\r\n gap: var(--_mono-menu-gap);\r\n}\r\n\r\n:where([mono-menu]) [mono-body] > [mono-slotted] {\r\n display: contents;\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li — relative */\r\n:where([mono-menu]) [mono-item] {\r\n position: relative;\r\n display: var(--_mono-menu-row-display);\r\n justify-content: var(--_mono-menu-row-justify);\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n}\r\n\r\n/* =========================================\r\n The row\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li >> > a, > button, > details > summary — flex w-full items-center overflow-hidden text-left outline-hidden transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0 */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button), .sidebar nav li > details > summary — ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-sm focus-visible:ring-2 text-left focus-visible:outline-hidden data-[open]:hover:bg-sidebar-accent data-[open]:hover:text-sidebar-accent-foreground [&>svg]:shrink-0 [&>svg]:size-4 */\r\n:where([mono-menu]) :is([mono-action], [mono-group-header]) {\r\n display: flex;\r\n align-items: center;\r\n justify-content: var(--_mono-menu-action-justify);\r\n gap: var(--_mono-menu-action-gap);\r\n width: var(--_mono-menu-action-width);\r\n min-height: var(--_mono-menu-height);\r\n padding: var(--_mono-menu-pad-y) var(--_mono-menu-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-menu-radius);\r\n background: transparent;\r\n color: inherit;\r\n font: inherit;\r\n font-size: var(--_mono-menu-font);\r\n line-height: var(--_mono-menu-line-height);\r\n text-align: left;\r\n text-decoration: none;\r\n overflow: hidden;\r\n cursor: pointer;\r\n outline: none;\r\n transition:\r\n background-color var(--mono-duration) var(--mono-ease),\r\n color var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n/* VitePress's `.vp-doc a` (0,1,1) underlines and re-inks every link. */\r\n[mono-menu] a[mono-action] {\r\n text-decoration: none;\r\n color: inherit;\r\n}\r\n\r\n[mono-menu] a[mono-action]::after {\r\n display: none !important;\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-menu] :is([mono-action], [mono-group-header]):hover {\r\n background: var(--_mono-menu-hover-bg);\r\n color: var(--_mono-menu-hover-color);\r\n border-color: var(--_mono-menu-hover-border-color);\r\n }\r\n}\r\n\r\n/* `focus-visible:ring-2` on `ring-sidebar-ring` */\r\n[mono-menu] :is([mono-action], [mono-group-header]):focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width)\r\n color-mix(in oklab, var(--sidebar-ring, var(--ring)) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button):is([aria-current=page], [data-active=true]), .sidebar nav li > details > summary:is([aria-current=page], [data-active=true]) — bg-sidebar-accent text-sidebar-accent-foreground font-medium\r\n A flat wash and a weight step — NOT the pre-port brand gradient and glow. */\r\n[mono-menu] [mono-item][mono-active] > :is([mono-action], [mono-group-header]) {\r\n background: var(--_mono-menu-active-bg);\r\n color: var(--_mono-menu-active-color);\r\n font-weight: var(--_mono-menu-active-weight);\r\n box-shadow: var(--_mono-menu-active-shadow);\r\n}\r\n\r\n/* `disabled:pointer-events-none disabled:opacity-50 aria-disabled:…` */\r\n[mono-menu] [mono-item][mono-disabled] > :is([mono-action], [mono-group-header]),\r\n[mono-menu] :is([mono-action], [mono-group-header]):disabled,\r\n[mono-menu][mono-disabled] :is([mono-action], [mono-group-header]) {\r\n opacity: var(--mono-disabled-opacity, 0.5);\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n/* `plain` — the non-`nav` mode: rows read as list entries, not links. */\r\n[mono-menu][mono-plain] :is([mono-action], [mono-group-header]) {\r\n border-radius: 0;\r\n}\r\n\r\n/* =========================================\r\n Row content\r\n ========================================= */\r\n\r\n/* `[&>svg]:shrink-0 [&>svg]:size-4` */\r\n:where([mono-menu]) [mono-icon] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-menu-icon-size);\r\n height: var(--_mono-menu-icon-size);\r\n font-size: var(--_mono-menu-icon-size);\r\n line-height: 1;\r\n}\r\n\r\n/* Three shapes end up inside the box and all must fill it:\r\n shadow build, user-slotted → <slot> → ::slotted(svg)\r\n light build, user-slotted → <span data-mono-slot=\"icon-<id>\"> → svg\r\n inline `item.icon` markup → a direct child svg\r\n The light placeholder parks the captured child, so the SVG is a GRANDchild\r\n and a `> svg` rule misses it entirely. */\r\n[mono-menu] [mono-icon] > svg,\r\n[mono-menu] [mono-icon] > [data-mono-slot] > svg,\r\n[mono-menu] [mono-icon] slot::slotted(svg) {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n[mono-menu] [mono-icon] > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* Class + attribute = specificity (0,2,0), deliberately. UnoCSS's `i-…`\r\n utilities set `width`/`height: 1.2em` (presetIcons `scale: 1.2`) at (0,1,0)\r\n and their sheet loads AFTER this one, so a single selector loses and the\r\n glyph overflows its box. Two selectors win regardless of sheet order — and it\r\n is the only thing that works for the SHADOW build, where this span is a\r\n LIGHT-DOM child of the host that no shadow-scoped selector can reach.\r\n Scoped to the menu: its OWN class (every build sets it on the span — the shadow\r\n build's span is a light-DOM child of the host, outside [mono-menu]) OR anything\r\n inside a [mono-menu] root (raw CSS markup writes a bare\r\n `<span mono-glyph class=\"i-…\">`). Still (0,2,0): `:is()` weighs its heaviest\r\n argument. A bare `[mono-glyph][mono-glyph]` is global and stretched every other\r\n component's `[mono-glyph]` to 100% — the accordion's icon chip filled its header. */\r\n:is(.mono-menu-iconify, [mono-menu] *)[mono-glyph] {\r\n display: inline-block;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n color: inherit;\r\n}\r\n\r\n/* An `alias` icon is the placeholder a row shows when it has no glyph of its\r\n own — a dimmed dot rather than a hole in the column. */\r\n[mono-menu] [mono-icon][mono-alias] {\r\n opacity: 0.55;\r\n}\r\n\r\n/* `[&>span:last-child]:truncate` */\r\n:where([mono-menu]) [mono-content] {\r\n display: var(--_mono-menu-label-display);\r\n flex-direction: column;\r\n justify-content: center;\r\n min-width: 0;\r\n flex: 1;\r\n overflow: hidden;\r\n}\r\n\r\n:where([mono-menu]) [mono-title] {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n font-size: inherit;\r\n color: inherit;\r\n}\r\n\r\n:where([mono-menu]) [mono-subtitle] {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n font-size: var(--mono-text-xs);\r\n line-height: var(--mono-text-xs--lh);\r\n color: var(--_mono-menu-text-soft);\r\n}\r\n\r\n:where([mono-menu]) [mono-append] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-menu-icon-size);\r\n height: var(--_mono-menu-icon-size);\r\n color: var(--_mono-menu-text-faint);\r\n}\r\n\r\n/* =========================================\r\n Group — upstream's `<details><summary>`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li >> > details >> > summary >> &::after — ms-auto block size-3.5 bg-current content-[''] transition-transform ease-linear */\r\n:where([mono-menu]) [mono-chevron] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n justify-content: center;\r\n margin-inline-start: auto;\r\n width: calc(var(--mono-spacing) * 3.5);\r\n height: calc(var(--mono-spacing) * 3.5);\r\n color: var(--_mono-menu-text-faint);\r\n transition: rotate var(--mono-duration) linear;\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li >> > details >> &:not([open]) >> > summary >> &::after — -rotate-90 rtl:rotate-90\r\n Upstream's marker is a chevron-DOWN, so it rotates the CLOSED state a quarter\r\n turn back to point along the reading direction. mono's marker is a\r\n chevron-RIGHT, which already points that way at rest — so the rotation\r\n belongs on the OPEN state instead. Taking upstream's rule literally left an\r\n open group pointing right and a closed one pointing up. */\r\n[mono-menu] [mono-group][mono-open] > [mono-group-header] > [mono-chevron] {\r\n rotate: 90deg;\r\n}\r\n\r\n[dir=\"rtl\"] [mono-menu] [mono-group]:not([mono-open]) > [mono-group-header] > [mono-chevron] {\r\n rotate: 180deg;\r\n}\r\n\r\n[mono-menu] [mono-group]:not([mono-open]) > [mono-group-body] {\r\n display: none;\r\n}\r\n\r\n[mono-menu] [mono-group] > [mono-group-body] {\r\n display: var(--mono-menu-group-children-display, flex);\r\n}\r\n\r\n/* =========================================\r\n Subheader and divider\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> h3 — flex shrink-0 items-center outline-hidden transition-[margin,opacity] duration-200 ease-linear [&>svg]:shrink-0 */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium focus-visible:ring-2 [&>svg]:size-4 transition-[margin,opacity] duration-200 ease-linear */\r\n:where([mono-menu]) [mono-subheader] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n height: var(--_mono-menu-subheader-height);\r\n padding: 0 var(--_mono-menu-subheader-pad-x);\r\n margin: 0;\r\n border-radius: var(--_mono-menu-subheader-radius);\r\n list-style: none;\r\n font-size: var(--_mono-menu-subheader-font);\r\n font-weight: var(--_mono-menu-subheader-weight);\r\n text-transform: var(--_mono-menu-subheader-transform);\r\n letter-spacing: var(--_mono-menu-subheader-tracking);\r\n color: var(--_mono-menu-text-soft);\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> [role=separator] — w-auto */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav [role=separator] — border-sidebar-border mx-2 */\r\n:where([mono-menu]) [mono-divider] {\r\n display: var(--_mono-menu-block-display);\r\n width: auto;\r\n height: 0;\r\n /* `mx-2` and nothing else: upstream gives the separator no block margin at\r\n all, because it is a flex item of the list and the list's own `gap` already\r\n spaces it from the rows either side. Adding a block margin on top double-\r\n spaced it — and put the one property on this row that `.vp-doc li + li`\r\n (0,1,2) could out-specify. */\r\n margin-inline: calc(var(--mono-spacing) * 2);\r\n padding: 0;\r\n border: 0;\r\n border-top: var(--mono-border-width) solid var(--_mono-menu-border-lite);\r\n list-style: none;\r\n}\r\n\r\n/* =========================================\r\n Badge — EXTENSION, borrowing `.badge`'s shape\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .badge — h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all [&>svg]:size-3! */\r\n:where([mono-menu]) [mono-badge] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--mono-spacing);\r\n margin-inline-start: auto;\r\n height: var(--_mono-menu-badge-height);\r\n padding: 0 var(--_mono-menu-badge-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-menu-badge-radius);\r\n font-size: var(--_mono-menu-badge-font);\r\n font-weight: var(--_mono-menu-badge-weight);\r\n line-height: 1;\r\n background: var(--_mono-menu-badge-bg);\r\n color: var(--_mono-menu-badge-color);\r\n}\r\n\r\n[mono-menu] [mono-badge=\"primary\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-primary) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-primary);\r\n}\r\n[mono-menu] [mono-badge=\"success\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-success) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-success);\r\n}\r\n[mono-menu] [mono-badge=\"danger\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-danger) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-danger);\r\n}\r\n[mono-menu] [mono-badge=\"warning\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-warning) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-warning);\r\n}\r\n[mono-menu] [mono-badge=\"info\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-info) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-info);\r\n}\r\n\r\n/* =========================================\r\n Reduced motion\r\n ========================================= */\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-menu] :is([mono-action], [mono-group-header], [mono-chevron]) {\r\n transition: none;\r\n }\r\n}\r\n";
831
+ //#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\menu\menu.css?raw.js
832
+ var menu_css_raw_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-menu — a port of Basecoat's sidebar NAVIGATION (basecoat-css@1.0.2,\r\n vega style).\r\n\r\n Basecoat has no standalone menu, but it has the thing a menu is: the list\r\n inside `.sidebar nav` — a group, its rows, its headings and its separators.\r\n That block is also the richest per-flavor surface in the whole vendor sheet,\r\n so this port is where a flavor finally gets to say what a nav row looks like.\r\n\r\n Styled by ATTRIBUTE, and the attributes mirror the element's props one for\r\n one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-menu density=\"compact\" color=\"success\" :nav=\"false\">\r\n <nav mono-menu mono-density=\"compact\" mono-color=\"success\" mono-plain\r\n role=\"navigation\">\r\n <ul mono-list>\r\n <li mono-item mono-active>\r\n <a mono-action href=\"/\" aria-current=\"page\">\r\n <span mono-icon>…</span>\r\n <span mono-content>\r\n <span mono-title>Dashboard</span>\r\n <span mono-subtitle>Overview</span>\r\n </span>\r\n <span mono-badge=\"info\">3</span>\r\n </a>\r\n </li>\r\n <li mono-divider role=\"separator\"></li>\r\n <li mono-subheader>Section</li>\r\n </ul>\r\n </nav>\r\n\r\n An absent attribute is the prop's default (`:not([mono-density])` =\r\n comfortable, `:not([mono-color])` = primary, and `nav` defaults to TRUE so\r\n `mono-plain` is what the other mode says). The old classes\r\n (`.mono-menu.comfortable.primary.nav`) are still emitted as inert hooks\r\n until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-menu] ≡ .sidebar nav > section > [role=group]\r\n (relative flex w-full min-w-0 flex-col, p-2 text-sm)\r\n :where([mono-menu]) [mono-list] ≡ .sidebar nav ul (flex w-full min-w-0 flex-col, gap-1)\r\n :where([mono-menu]) [mono-item] ≡ .sidebar nav li (relative)\r\n :where([mono-menu]) [mono-action] ≡ .sidebar nav li > :is(a, button) — the row\r\n [mono-active] ≡ [aria-current=page], [data-active=true]\r\n (bg-sidebar-accent text-sidebar-accent-foreground font-medium)\r\n :where([mono-menu]) [mono-subheader] ≡ .sidebar nav h3\r\n :where([mono-menu]) [mono-divider] ≡ .sidebar nav [role=separator] (border-sidebar-border mx-2 w-auto)\r\n :where([mono-menu]) [mono-group-header]≡ details > summary — the same row, plus the chevron\r\n [mono-density=…] ≡ [data-size='sm' | default | 'lg'] (h-7 / h-8 / h-12)\r\n :where([mono-menu]) [mono-badge] ≡ .badge — EXTENSION (upstream's rows carry none)\r\n :where([mono-menu]) [mono-subtitle] ≡ EXTENSION ([&>span:last-child]:truncate is upstream's\r\n only nod to a second line)\r\n [mono-color=…] ≡ EXTENSION (upstream has one accent)\r\n\r\n THE ACTIVE ROW IS A NEUTRAL WASH, not a brand gradient. Upstream paints it\r\n `bg-sidebar-accent text-sidebar-accent-foreground font-medium` — a flat\r\n surface tint. The pre-port sheet filled it with a two-stop brand gradient and\r\n a coloured shadow; both are gone. `color` still tints hover and the active\r\n row through `--mono-menu-accent`, and `color=\"surface\"` leaves it upstream's\r\n plain `--sidebar-accent`.\r\n\r\n DARK MODE comes free — every colour resolves through a Basecoat token that\r\n already flips. A selector crosses neither the custom-element host nor the\r\n shadow boundary, so no `.dark` rule can live in component CSS.\r\n\r\n FLAVORS set `--mono-menu-{radius,pad-x,pad-y,height,font,gap,icon-size,\r\n subheader-*,badge-*}` (+ the per-density forms); every fallback here is\r\n vega's value (`node scripts/basecoat-styles.mjs --grep \"sidebar nav\"`).\r\n ========================================================================= */\r\n\r\nmono-menu,\r\nmono-menu-list {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the group\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> > [role=group] — relative flex w-full min-w-0 flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav > section > [role=group] — p-2 text-sm */\r\n[mono-menu] {\r\n /* ── the roles, each a public knob over a Basecoat token ────────────────── */\r\n --_mono-menu-primary: var(--mono-menu-primary, var(--primary));\r\n --_mono-menu-secondary: var(--mono-menu-secondary, var(--secondary-foreground));\r\n --_mono-menu-success: var(--mono-menu-success, var(--success));\r\n --_mono-menu-danger: var(--mono-menu-danger, var(--destructive));\r\n --_mono-menu-warning: var(--mono-menu-warning, var(--warning));\r\n --_mono-menu-info: var(--mono-menu-info, var(--info));\r\n --_mono-menu-teal: var(--mono-menu-teal, var(--teal));\r\n --_mono-menu-purple: var(--mono-menu-purple, var(--purple));\r\n --_mono-menu-neutral: var(--mono-menu-neutral, var(--neutral));\r\n --_mono-menu-dark: var(--mono-menu-dark, var(--dark));\r\n\r\n --_mono-menu-accent: var(--mono-menu-accent, var(--_mono-menu-accent-preset, var(--_mono-menu-primary)));\r\n --_mono-menu-on-accent: var(--mono-menu-on-accent, var(--_mono-menu-on-accent-preset, var(--primary-foreground)));\r\n\r\n /* ── ink and surface — upstream's own chrome tokens ──────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav — bg-sidebar text-sidebar-foreground */\r\n --_mono-menu-surface: var(--mono-menu-surface, transparent);\r\n --_mono-menu-text: var(--mono-menu-text, var(--sidebar-foreground));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 …:\r\n upstream's muted chrome ink is the row ink at 70%. */\r\n --_mono-menu-text-soft: var(--mono-menu-text-soft, color-mix(in oklab, var(--_mono-menu-text) 70%, transparent));\r\n --_mono-menu-text-faint: var(--mono-menu-text-faint, color-mix(in oklab, var(--_mono-menu-text) 50%, transparent));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav [role=separator] — border-sidebar-border mx-2 */\r\n --_mono-menu-border: var(--mono-menu-border, var(--sidebar-border));\r\n --_mono-menu-border-lite: var(--mono-menu-border-lite, var(--_mono-menu-border));\r\n\r\n /* ── the row's resting / hover / active paint ────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button), .sidebar nav li > details > summary — ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-sm focus-visible:ring-2 text-left focus-visible:outline-hidden data-[open]:hover:bg-sidebar-accent data-[open]:hover:text-sidebar-accent-foreground [&>svg]:shrink-0 [&>svg]:size-4\r\n Hover is a SURFACE wash upstream, not the brand — so the role only tints\r\n it, at `--mono-mode-tint`, and `color=\"surface\"` leaves it exactly\r\n `--sidebar-accent`. */\r\n --_mono-menu-hover-tint: var(--mono-menu-hover-tint, var(--_mono-menu-hover-tint-preset, var(--mono-mode-tint)));\r\n --_mono-menu-hover-bg: var(--mono-menu-hover-bg, color-mix(in oklab, var(--_mono-menu-accent) var(--_mono-menu-hover-tint), var(--sidebar-accent)));\r\n --_mono-menu-hover-color: var(--mono-menu-hover-color, var(--sidebar-accent-foreground));\r\n --_mono-menu-hover-border-color: var(--mono-menu-hover-border-color, transparent);\r\n\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button):is([aria-current=page], [data-active=true]), .sidebar nav li > details > summary:is([aria-current=page], [data-active=true]) — bg-sidebar-accent text-sidebar-accent-foreground font-medium */\r\n --_mono-menu-active-tint: var(--mono-menu-active-tint, var(--_mono-menu-active-tint-preset, var(--mono-mode-tint-hover)));\r\n --_mono-menu-active-bg: var(--mono-menu-active-bg, color-mix(in oklab, var(--_mono-menu-accent) var(--_mono-menu-active-tint), var(--sidebar-accent)));\r\n --_mono-menu-active-color: var(--mono-menu-active-color, var(--_mono-menu-active-color-preset, var(--_mono-menu-accent)));\r\n --_mono-menu-active-weight: var(--mono-menu-active-weight, var(--mono-font-weight-medium));\r\n /* the pre-port glow; upstream has none, so it starts at nothing */\r\n --_mono-menu-active-shadow: var(--mono-menu-active-shadow, none);\r\n\r\n /* ── comfortable metrics live on the unqualified root ON PURPOSE ─────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button):not([data-size]), .sidebar nav li > details > summary:not([data-size]), .sidebar nav li > :is(a, button)[data-size=default], .sidebar nav li > details > summary[data-size=default] — h-8 text-sm */\r\n --_mono-menu-height: var(--mono-menu-height, var(--_mono-menu-height-preset, var(--mono-menu-height-comfortable, calc(var(--mono-spacing) * 8))));\r\n --_mono-menu-pad-x: var(--mono-menu-pad-x, var(--_mono-menu-pad-x-preset, var(--mono-menu-pad-x-comfortable, calc(var(--mono-spacing) * 2))));\r\n --_mono-menu-pad-y: var(--mono-menu-pad-y, var(--_mono-menu-pad-y-preset, var(--mono-menu-pad-y-comfortable, calc(var(--mono-spacing) * 2))));\r\n --_mono-menu-font: var(--mono-menu-font, var(--_mono-menu-font-preset, var(--mono-menu-font-comfortable, var(--mono-text-sm))));\r\n --_mono-menu-line-height: var(--mono-menu-line-height, var(--_mono-menu-line-height-preset, var(--mono-text-sm--lh)));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav > section > [role=group] > ul — gap-1 */\r\n --_mono-menu-gap: var(--mono-menu-gap, var(--_mono-menu-gap-preset, var(--mono-menu-gap-comfortable, var(--mono-spacing))));\r\n /* the row's own gap — `gap-2` between icon, label and append */\r\n --_mono-menu-row-gap: var(--mono-menu-row-gap, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-radius: var(--mono-menu-radius, var(--_mono-menu-radius-preset, var(--mono-menu-radius-comfortable, var(--mono-radius-md))));\r\n /* `[&>svg]:size-4` */\r\n --_mono-menu-icon-size: var(--mono-menu-icon-size, var(--_mono-menu-icon-size-preset, var(--mono-menu-icon-size-comfortable, calc(var(--mono-spacing) * 4))));\r\n /* the group's own padding — `p-2` */\r\n --_mono-menu-group-pad: var(--mono-menu-group-pad, var(--_mono-menu-group-pad-preset, var(--mono-menu-group-pad-comfortable, calc(var(--mono-spacing) * 2))));\r\n /* ── the nested tree — EXTENSION ─────────────────────────────────────────\r\n Upstream nests a list and leaves it flush — `.sidebar nav … ul > ul` is only\r\n `flex min-w-0 flex-col` — so a child list reads as one straight column with\r\n its parent. mono keeps its pre-port tree affordance instead: a child list\r\n steps in by one gutter and hangs off a guide rule drawn under the centre of\r\n the parent row's icon, so depth is legible without reading the labels. */\r\n --_mono-menu-indent: var(--mono-menu-indent, var(--_mono-menu-indent-preset, var(--mono-menu-indent-comfortable, calc(var(--mono-spacing) * 4))));\r\n --_mono-menu-guide-width: var(--mono-menu-guide-width, var(--mono-border-width));\r\n --_mono-menu-guide-color: var(--mono-menu-guide-color, var(--_mono-menu-border-lite));\r\n /* the guide lines up with the middle of the parent row's icon */\r\n --_mono-menu-guide-offset: var(--mono-menu-guide-offset, calc(var(--_mono-menu-pad-x) + (var(--_mono-menu-icon-size) / 2)));\r\n\r\n /* ── the subheader — `.sidebar nav h3` ───────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium focus-visible:ring-2 [&>svg]:size-4 transition-[margin,opacity] duration-200 ease-linear */\r\n --_mono-menu-subheader-height: var(--mono-menu-subheader-height, calc(var(--mono-spacing) * 8));\r\n --_mono-menu-subheader-pad-x: var(--mono-menu-subheader-pad-x, var(--_mono-menu-subheader-pad-x-preset, calc(var(--mono-spacing) * 2)));\r\n --_mono-menu-subheader-font: var(--mono-menu-subheader-font, var(--mono-text-xs));\r\n --_mono-menu-subheader-weight: var(--mono-menu-subheader-weight, var(--mono-font-weight-medium));\r\n --_mono-menu-subheader-transform: var(--mono-menu-subheader-transform, none);\r\n --_mono-menu-subheader-tracking: var(--mono-menu-subheader-tracking, normal);\r\n --_mono-menu-subheader-radius: var(--mono-menu-subheader-radius, var(--_mono-menu-subheader-radius-preset, var(--mono-radius-md)));\r\n\r\n /* ── the badge — EXTENSION, borrowing `.badge`'s shape ───────────────────\r\n basecoat@1.0.2 styles/vega.css .badge — h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all [&>svg]:size-3! */\r\n --_mono-menu-badge-height: var(--mono-menu-badge-height, calc(var(--mono-spacing) * 5));\r\n --_mono-menu-badge-pad-x: var(--mono-menu-badge-pad-x, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-badge-radius: var(--mono-menu-badge-radius, var(--mono-radius-4xl));\r\n --_mono-menu-badge-font: var(--mono-menu-badge-font, var(--mono-text-xs));\r\n --_mono-menu-badge-weight: var(--mono-menu-badge-weight, var(--mono-font-weight-medium));\r\n --_mono-menu-badge-bg: var(--mono-menu-badge-bg, var(--secondary));\r\n --_mono-menu-badge-color: var(--mono-menu-badge-color, var(--secondary-foreground));\r\n\r\n /* the two knobs a rail collapses with — the sidebar writes them */\r\n /* ── the rail-collapse contract ──────────────────────────────────────────\r\n A sidebar in collapsed rail mode hands these down as inherited custom\r\n properties, because a descendant selector cannot reach a slotted SHADOW\r\n menu's rows. Every one of them has to be consumed here or the collapse\r\n only happens in the build the sidebar's own legacy class rules could\r\n reach — which is exactly how the light build ended up centring its rows\r\n while the shadow build and the hand-written twins did not. */\r\n --_mono-menu-label-display: var(--mono-menu-label-display, inline-flex);\r\n /* the same switch, for the parts whose natural display is block-level */\r\n --_mono-menu-block-display: var(--mono-menu-label-display, list-item);\r\n --_mono-menu-row-display: var(--mono-menu-row-display, list-item);\r\n --_mono-menu-row-justify: var(--mono-menu-row-justify, normal);\r\n --_mono-menu-action-width: var(--mono-menu-action-width, 100%);\r\n --_mono-menu-action-justify: var(--mono-menu-action-justify, flex-start);\r\n --_mono-menu-action-gap: var(--mono-menu-action-gap, var(--_mono-menu-row-gap));\r\n\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n min-width: 0;\r\n padding: var(--_mono-menu-group-pad);\r\n font-family: inherit;\r\n font-size: var(--_mono-menu-font);\r\n color: var(--_mono-menu-text);\r\n background: var(--_mono-menu-surface);\r\n}\r\n\r\n[mono-menu],\r\n:where([mono-menu]) *,\r\n:where([mono-menu]) *::before,\r\n:where([mono-menu]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Density — upstream's `data-size` ladder\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button)[data-size=sm], .sidebar nav li > details > summary[data-size=sm] — h-7 text-xs */\r\n[mono-menu][mono-density=\"compact\"] {\r\n --_mono-menu-height-preset: var(--mono-menu-height-compact, calc(var(--mono-spacing) * 7));\r\n --_mono-menu-pad-x-preset: var(--mono-menu-pad-x-compact, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-pad-y-preset: var(--mono-menu-pad-y-compact, calc(var(--mono-spacing) * 1));\r\n --_mono-menu-font-preset: var(--mono-menu-font-compact, var(--mono-text-xs));\r\n --_mono-menu-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-menu-gap-preset: var(--mono-menu-gap-compact, calc(var(--mono-spacing) * 0.5));\r\n --_mono-menu-icon-size-preset: var(--mono-menu-icon-size-compact, calc(var(--mono-spacing) * 3.5));\r\n --_mono-menu-group-pad-preset: var(--mono-menu-group-pad-compact, calc(var(--mono-spacing) * 1.5));\r\n --_mono-menu-indent-preset: var(--mono-menu-indent-compact, calc(var(--mono-spacing) * 3.5));\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button)[data-size=lg], .sidebar nav li > details > summary[data-size=lg] — h-12 text-sm */\r\n[mono-menu][mono-density=\"default\"] {\r\n --_mono-menu-height-preset: var(--mono-menu-height-default, calc(var(--mono-spacing) * 12));\r\n --_mono-menu-pad-x-preset: var(--mono-menu-pad-x-default, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-pad-y-preset: var(--mono-menu-pad-y-default, calc(var(--mono-spacing) * 2));\r\n --_mono-menu-font-preset: var(--mono-menu-font-default, var(--mono-text-sm));\r\n --_mono-menu-gap-preset: var(--mono-menu-gap-default, calc(var(--mono-spacing) * 1.5));\r\n --_mono-menu-icon-size-preset: var(--mono-menu-icon-size-default, calc(var(--mono-spacing) * 5));\r\n --_mono-menu-group-pad-preset: var(--mono-menu-group-pad-default, calc(var(--mono-spacing) * 3));\r\n --_mono-menu-indent-preset: var(--mono-menu-indent-default, calc(var(--mono-spacing) * 4.5));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role TINTS upstream's neutral wash\r\n ========================================= */\r\n\r\n[mono-menu][mono-color=\"primary\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-primary);\r\n --_mono-menu-on-accent-preset: var(--primary-foreground);\r\n}\r\n[mono-menu][mono-color=\"secondary\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-secondary);\r\n --_mono-menu-on-accent-preset: var(--secondary);\r\n}\r\n[mono-menu][mono-color=\"success\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-success);\r\n --_mono-menu-on-accent-preset: var(--success-foreground);\r\n}\r\n[mono-menu][mono-color=\"danger\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-danger);\r\n --_mono-menu-on-accent-preset: var(--destructive-foreground);\r\n}\r\n[mono-menu][mono-color=\"warning\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-warning);\r\n --_mono-menu-on-accent-preset: var(--warning-foreground);\r\n}\r\n[mono-menu][mono-color=\"info\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-info);\r\n --_mono-menu-on-accent-preset: var(--info-foreground);\r\n}\r\n[mono-menu][mono-color=\"teal\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-teal);\r\n --_mono-menu-on-accent-preset: var(--teal-foreground);\r\n}\r\n[mono-menu][mono-color=\"purple\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-purple);\r\n --_mono-menu-on-accent-preset: var(--purple-foreground);\r\n}\r\n[mono-menu][mono-color=\"neutral\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-neutral);\r\n --_mono-menu-on-accent-preset: var(--neutral-foreground);\r\n}\r\n[mono-menu][mono-color=\"dark\"] {\r\n --_mono-menu-accent-preset: var(--_mono-menu-dark);\r\n --_mono-menu-on-accent-preset: var(--dark-foreground);\r\n}\r\n\r\n/* `surface` is upstream exactly: the wash is `--sidebar-accent`, untinted, and\r\n the active row is inked `--sidebar-accent-foreground` rather than a role. */\r\n[mono-menu][mono-color=\"surface\"] {\r\n --_mono-menu-hover-tint-preset: 0%;\r\n --_mono-menu-active-tint-preset: 0%;\r\n --_mono-menu-active-color-preset: var(--sidebar-accent-foreground);\r\n}\r\n\r\n/* =========================================\r\n The list\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul — flex w-full min-w-0 flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav > section > [role=group] > ul — gap-1\r\n The root is in the selector so `.vp-doc ul, .vp-doc ol` (0,1,1) cannot inject\r\n the left padding that would break a flush menu. */\r\n:where([mono-menu]) [mono-list] {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n min-width: 0;\r\n gap: var(--_mono-menu-gap);\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> ul — flex min-w-0 flex-col\r\n Upstream stops at the flex column. The rest is mono's own tree affordance:\r\n the child list is pushed in under the parent row's icon, hangs off a guide\r\n rule, and clears the row above it by one list gap — a nested `ul` is a block\r\n child of its `li`, so the parent list's `gap` never reaches it.\r\n\r\n `:has(> *)` because a declarative row always renders its children list, even\r\n with no children in it: an empty one would otherwise hang a guide off every\r\n leaf row and push the next row down by a gap. */\r\n:where([mono-menu]) [mono-list] [mono-list]:has(> *) {\r\n width: auto;\r\n margin-top: var(--_mono-menu-gap);\r\n margin-inline-start: var(--_mono-menu-guide-offset);\r\n padding-inline-start: var(--_mono-menu-indent);\r\n border-inline-start: var(--_mono-menu-guide-width) solid var(--_mono-menu-guide-color);\r\n}\r\n\r\n/* The DECLARATIVE body (`slot=\"body\"` + `<mono-menu-list>`). Each top-level\r\n row renders its own `<ul mono-list>`, so they are siblings of one another\r\n rather than `li`s of one list — nothing was left to carry the row gap, and a\r\n declarative menu's top-level rows sat flush while an items-driven one (and\r\n every hand-written twin) spaced them. Lay the body out as the list would, and\r\n dissolve the element the author hung `slot=\"body\"` on so the rows become its\r\n own children. */\r\n:where([mono-menu]) [mono-body] {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n min-width: 0;\r\n gap: var(--_mono-menu-gap);\r\n}\r\n\r\n:where([mono-menu]) [mono-body] > [mono-slotted] {\r\n display: contents;\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li — relative */\r\n:where([mono-menu]) [mono-item] {\r\n position: relative;\r\n display: var(--_mono-menu-row-display);\r\n justify-content: var(--_mono-menu-row-justify);\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n}\r\n\r\n/* =========================================\r\n The row\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li >> > a, > button, > details > summary — flex w-full items-center overflow-hidden text-left outline-hidden transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0 */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button), .sidebar nav li > details > summary — ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-sm focus-visible:ring-2 text-left focus-visible:outline-hidden data-[open]:hover:bg-sidebar-accent data-[open]:hover:text-sidebar-accent-foreground [&>svg]:shrink-0 [&>svg]:size-4 */\r\n:where([mono-menu]) :is([mono-action], [mono-group-header]) {\r\n display: flex;\r\n align-items: center;\r\n justify-content: var(--_mono-menu-action-justify);\r\n gap: var(--_mono-menu-action-gap);\r\n width: var(--_mono-menu-action-width);\r\n min-height: var(--_mono-menu-height);\r\n padding: var(--_mono-menu-pad-y) var(--_mono-menu-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-menu-radius);\r\n background: transparent;\r\n color: inherit;\r\n font: inherit;\r\n font-size: var(--_mono-menu-font);\r\n line-height: var(--_mono-menu-line-height);\r\n text-align: left;\r\n text-decoration: none;\r\n overflow: hidden;\r\n cursor: pointer;\r\n outline: none;\r\n transition:\r\n background-color var(--mono-duration) var(--mono-ease),\r\n color var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n/* VitePress's `.vp-doc a` (0,1,1) underlines and re-inks every link. */\r\n[mono-menu] a[mono-action] {\r\n text-decoration: none;\r\n color: inherit;\r\n}\r\n\r\n[mono-menu] a[mono-action]::after {\r\n display: none !important;\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-menu] :is([mono-action], [mono-group-header]):hover {\r\n background: var(--_mono-menu-hover-bg);\r\n color: var(--_mono-menu-hover-color);\r\n border-color: var(--_mono-menu-hover-border-color);\r\n }\r\n}\r\n\r\n/* `focus-visible:ring-2` on `ring-sidebar-ring` */\r\n[mono-menu] :is([mono-action], [mono-group-header]):focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width)\r\n color-mix(in oklab, var(--sidebar-ring, var(--ring)) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav li > :is(a, button):is([aria-current=page], [data-active=true]), .sidebar nav li > details > summary:is([aria-current=page], [data-active=true]) — bg-sidebar-accent text-sidebar-accent-foreground font-medium\r\n A flat wash and a weight step — NOT the pre-port brand gradient and glow. */\r\n[mono-menu] [mono-item][mono-active] > :is([mono-action], [mono-group-header]) {\r\n background: var(--_mono-menu-active-bg);\r\n color: var(--_mono-menu-active-color);\r\n font-weight: var(--_mono-menu-active-weight);\r\n box-shadow: var(--_mono-menu-active-shadow);\r\n}\r\n\r\n/* `disabled:pointer-events-none disabled:opacity-50 aria-disabled:…` */\r\n[mono-menu] [mono-item][mono-disabled] > :is([mono-action], [mono-group-header]),\r\n[mono-menu] :is([mono-action], [mono-group-header]):disabled,\r\n[mono-menu][mono-disabled] :is([mono-action], [mono-group-header]) {\r\n opacity: var(--mono-disabled-opacity, 0.5);\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n/* `plain` — the non-`nav` mode: rows read as list entries, not links. */\r\n[mono-menu][mono-plain] :is([mono-action], [mono-group-header]) {\r\n border-radius: 0;\r\n}\r\n\r\n/* =========================================\r\n Row content\r\n ========================================= */\r\n\r\n/* `[&>svg]:shrink-0 [&>svg]:size-4` */\r\n:where([mono-menu]) [mono-icon] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-menu-icon-size);\r\n height: var(--_mono-menu-icon-size);\r\n font-size: var(--_mono-menu-icon-size);\r\n line-height: 1;\r\n}\r\n\r\n/* Three shapes end up inside the box and all must fill it:\r\n shadow build, user-slotted → <slot> → ::slotted(svg)\r\n light build, user-slotted → <span data-mono-slot=\"icon-<id>\"> → svg\r\n inline `item.icon` markup → a direct child svg\r\n The light placeholder parks the captured child, so the SVG is a GRANDchild\r\n and a `> svg` rule misses it entirely. */\r\n[mono-menu] [mono-icon] > svg,\r\n[mono-menu] [mono-icon] > [data-mono-slot] > svg,\r\n[mono-menu] [mono-icon] slot::slotted(svg) {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n[mono-menu] [mono-icon] > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* Class + attribute = specificity (0,2,0), deliberately. UnoCSS's `i-…`\r\n utilities set `width`/`height: 1.2em` (presetIcons `scale: 1.2`) at (0,1,0)\r\n and their sheet loads AFTER this one, so a single selector loses and the\r\n glyph overflows its box. Two selectors win regardless of sheet order — and it\r\n is the only thing that works for the SHADOW build, where this span is a\r\n LIGHT-DOM child of the host that no shadow-scoped selector can reach.\r\n Scoped to the menu: its OWN class (every build sets it on the span — the shadow\r\n build's span is a light-DOM child of the host, outside [mono-menu]) OR anything\r\n inside a [mono-menu] root (raw CSS markup writes a bare\r\n `<span mono-glyph class=\"i-…\">`). Still (0,2,0): `:is()` weighs its heaviest\r\n argument. A bare `[mono-glyph][mono-glyph]` is global and stretched every other\r\n component's `[mono-glyph]` to 100% — the accordion's icon chip filled its header. */\r\n:is(.mono-menu-iconify, [mono-menu] *)[mono-glyph] {\r\n display: inline-block;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n color: inherit;\r\n}\r\n\r\n/* An `alias` icon is the placeholder a row shows when it has no glyph of its\r\n own — a dimmed dot rather than a hole in the column. */\r\n[mono-menu] [mono-icon][mono-alias] {\r\n opacity: 0.55;\r\n}\r\n\r\n/* `[&>span:last-child]:truncate` */\r\n:where([mono-menu]) [mono-content] {\r\n display: var(--_mono-menu-label-display);\r\n flex-direction: column;\r\n justify-content: center;\r\n min-width: 0;\r\n flex: 1;\r\n overflow: hidden;\r\n}\r\n\r\n:where([mono-menu]) [mono-title] {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n font-size: inherit;\r\n color: inherit;\r\n}\r\n\r\n:where([mono-menu]) [mono-subtitle] {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n font-size: var(--mono-text-xs);\r\n line-height: var(--mono-text-xs--lh);\r\n color: var(--_mono-menu-text-soft);\r\n}\r\n\r\n:where([mono-menu]) [mono-append] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-menu-icon-size);\r\n height: var(--_mono-menu-icon-size);\r\n color: var(--_mono-menu-text-faint);\r\n}\r\n\r\n/* =========================================\r\n Group — upstream's `<details><summary>`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li >> > details >> > summary >> &::after — ms-auto block size-3.5 bg-current content-[''] transition-transform ease-linear */\r\n:where([mono-menu]) [mono-chevron] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n justify-content: center;\r\n margin-inline-start: auto;\r\n width: calc(var(--mono-spacing) * 3.5);\r\n height: calc(var(--mono-spacing) * 3.5);\r\n color: var(--_mono-menu-text-faint);\r\n transition: rotate var(--mono-duration) linear;\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> ul >> li >> > details >> &:not([open]) >> > summary >> &::after — -rotate-90 rtl:rotate-90\r\n Upstream's marker is a chevron-DOWN, so it rotates the CLOSED state a quarter\r\n turn back to point along the reading direction. mono's marker is a\r\n chevron-RIGHT, which already points that way at rest — so the rotation\r\n belongs on the OPEN state instead. Taking upstream's rule literally left an\r\n open group pointing right and a closed one pointing up. */\r\n[mono-menu] [mono-group][mono-open] > [mono-group-header] > [mono-chevron] {\r\n rotate: 90deg;\r\n}\r\n\r\n[dir=\"rtl\"] [mono-menu] [mono-group]:not([mono-open]) > [mono-group-header] > [mono-chevron] {\r\n rotate: 180deg;\r\n}\r\n\r\n[mono-menu] [mono-group]:not([mono-open]) > [mono-group-body] {\r\n display: none;\r\n}\r\n\r\n[mono-menu] [mono-group] > [mono-group-body] {\r\n display: var(--mono-menu-group-children-display, flex);\r\n}\r\n\r\n/* =========================================\r\n Subheader and divider\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> > section >> h3 — flex shrink-0 items-center outline-hidden transition-[margin,opacity] duration-200 ease-linear [&>svg]:shrink-0 */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium focus-visible:ring-2 [&>svg]:size-4 transition-[margin,opacity] duration-200 ease-linear */\r\n:where([mono-menu]) [mono-subheader] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n height: var(--_mono-menu-subheader-height);\r\n padding: 0 var(--_mono-menu-subheader-pad-x);\r\n margin: 0;\r\n border-radius: var(--_mono-menu-subheader-radius);\r\n list-style: none;\r\n font-size: var(--_mono-menu-subheader-font);\r\n font-weight: var(--_mono-menu-subheader-weight);\r\n text-transform: var(--_mono-menu-subheader-transform);\r\n letter-spacing: var(--_mono-menu-subheader-tracking);\r\n color: var(--_mono-menu-text-soft);\r\n}\r\n\r\n/* basecoat@1.0.2 components/sidebar.css .sidebar >> nav >> [role=separator] — w-auto */\r\n/* basecoat@1.0.2 styles/vega.css .sidebar nav [role=separator] — border-sidebar-border mx-2 */\r\n:where([mono-menu]) [mono-divider] {\r\n display: var(--_mono-menu-block-display);\r\n width: auto;\r\n height: 0;\r\n /* `mx-2` and nothing else: upstream gives the separator no block margin at\r\n all, because it is a flex item of the list and the list's own `gap` already\r\n spaces it from the rows either side. Adding a block margin on top double-\r\n spaced it — and put the one property on this row that `.vp-doc li + li`\r\n (0,1,2) could out-specify. */\r\n margin-inline: calc(var(--mono-spacing) * 2);\r\n padding: 0;\r\n border: 0;\r\n border-top: var(--mono-border-width) solid var(--_mono-menu-border-lite);\r\n list-style: none;\r\n}\r\n\r\n/* =========================================\r\n Badge — EXTENSION, borrowing `.badge`'s shape\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .badge — h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all [&>svg]:size-3! */\r\n:where([mono-menu]) [mono-badge] {\r\n flex-shrink: 0;\r\n display: var(--_mono-menu-label-display);\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--mono-spacing);\r\n margin-inline-start: auto;\r\n height: var(--_mono-menu-badge-height);\r\n padding: 0 var(--_mono-menu-badge-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-menu-badge-radius);\r\n font-size: var(--_mono-menu-badge-font);\r\n font-weight: var(--_mono-menu-badge-weight);\r\n line-height: 1;\r\n background: var(--_mono-menu-badge-bg);\r\n color: var(--_mono-menu-badge-color);\r\n}\r\n\r\n[mono-menu] [mono-badge=\"primary\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-primary) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-primary);\r\n}\r\n[mono-menu] [mono-badge=\"success\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-success) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-success);\r\n}\r\n[mono-menu] [mono-badge=\"danger\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-danger) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-danger);\r\n}\r\n[mono-menu] [mono-badge=\"warning\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-warning) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-warning);\r\n}\r\n[mono-menu] [mono-badge=\"info\"] {\r\n background: color-mix(in oklab, var(--_mono-menu-info) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-menu-info);\r\n}\r\n\r\n/* =========================================\r\n Reduced motion\r\n ========================================= */\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-menu] :is([mono-action], [mono-group-header], [mono-chevron]) {\r\n transition: none;\r\n }\r\n}\r\n";
833
+
825
834
  //#endregion
826
835
  //#region src/components/menu/mono-menu.shadow.ts
827
- var MonoMenuShadow = class MonoMenuShadow extends withShadowUtilityStyles(MonoMenuCore(LitElement)) {
836
+ let MonoMenuShadow = class MonoMenuShadow extends withShadowUtilityStyles(MonoMenuCore(LitElement)) {
828
837
  static {
829
- this.styles = [unsafeCSS(toShadowCss(menu_default, { host: "mono-menu" }))];
838
+ this.styles = [unsafeCSS(toShadowCss(menu_css_raw_default, { host: "mono-menu" }))];
830
839
  }
831
840
  _useIconSlots() {
832
841
  return true;
@@ -895,5 +904,6 @@ var MonoMenuShadow = class MonoMenuShadow extends withShadowUtilityStyles(MonoMe
895
904
  }
896
905
  };
897
906
  MonoMenuShadow = __decorate([customElement("mono-shadow-menu")], MonoMenuShadow);
907
+
898
908
  //#endregion
899
- export { MonoMenuCore, MonoMenuShadow, collectDefaultOpenGroups, findActivePath, findItem, generateMenuRootClasses, getMenuAlias, isDivider, isGroup, isIconifyClass, isItem, isSubheader, renderMenuAppend, renderMenuBadge, renderMenuDivider, renderMenuGroup, renderMenuGroupsOnly, renderMenuIcon, renderMenuItemRow, renderMenuList, renderMenuSubheader, validateMenuProps };
909
+ export { MonoMenuCore, MonoMenuShadow, collectDefaultOpenGroups, findActivePath, findItem, generateMenuRootClasses, getMenuAlias, isDivider, isGroup, isIconifyClass, isItem, isSubheader, renderMenuAppend, renderMenuBadge, renderMenuDivider, renderMenuGroup, renderMenuGroupsOnly, renderMenuIcon, renderMenuItemRow, renderMenuList, renderMenuSubheader, validateMenuProps };