@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
package/dist/ui/drawer.js CHANGED
@@ -1,18 +1,19 @@
1
- import { l as monoHostChildNodes } from "../mono-ui-CPV7rrdo.js";
2
- import { a as unregisterPopupLayer, n as refreshPopupStack, r as registerPopupLayer, t as getOpenPopupLayers } from "../popup-stack-CEEMib__.js";
3
- import { t as customElement } from "../mono-element-B0kP_96P.js";
4
- import { a as defineHybridPropAliases, r as booleanStringConverter, s as optionalNumberConverter, t as __decorate } from "../decorate-DEXtNagw.js";
5
- import { t as dispatchMonoEvent } from "../mono-event-Bi1qP9uN.js";
6
- import { a as parkDetachedNodes, i as guardHostTextContent, s as placeSlotNode } from "../light-slots-DW1WgfgT.js";
7
- import { i as pathOwnedBy } from "../popup-portal-BziRX1yG.js";
8
- import { n as isBelowBreakpoint, r as resolveAutoFullscreen, t as autoFullscreenConverter } from "../breakpoints-CAbhDUht.js";
1
+ import { l as monoHostChildNodes } from "../mono-ui-BwUc0L6B.js";
2
+ import { a as unregisterPopupLayer, n as refreshPopupStack, r as registerPopupLayer, t as getOpenPopupLayers } from "../popup-stack-De05Y-mJ.js";
3
+ import { t as customElement } from "../mono-element-C7vCschg.js";
4
+ import { a as defineHybridPropAliases, r as booleanStringConverter, s as optionalNumberConverter, t as __decorate } from "../decorate-DbYFpi8R.js";
5
+ import { t as dispatchMonoEvent } from "../mono-event-BPku9HpS.js";
6
+ import { a as parkDetachedNodes, i as guardHostTextContent, s as placeSlotNode } from "../light-slots-DdDdZ6zs.js";
7
+ import { i as pathOwnedBy } from "../popup-portal-HWhkd7oy.js";
8
+ import { n as isBelowBreakpoint, r as resolveAutoFullscreen, t as autoFullscreenConverter } from "../breakpoints-DllybT82.js";
9
9
  import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
10
10
  import { property, query, state } from "lit/decorators.js";
11
+
11
12
  //#region src/components/drawer/drawer-core.ts
12
13
  /** Per-instance id seed for the light build's heading ids (they live in the
13
14
  * document, so they must be unique). The shadow build scopes ids to its own
14
15
  * root and uses a constant — see `_headingIdBase`. */
15
- var drawerIdSeq = 0;
16
+ let drawerIdSeq = 0;
16
17
  /**
17
18
  * Named dimension presets for `width` / `height` — `width="lg"`, `height="sm"`.
18
19
  *
@@ -24,7 +25,7 @@ var drawerIdSeq = 0;
24
25
  * stylesheet defaults (`420px` / `50vh`) exactly. Only the axis `position` leaves
25
26
  * free is ever read, so a token on the pinned axis is simply inert.
26
27
  */
27
- var WIDTH_PRESETS = {
28
+ const WIDTH_PRESETS = {
28
29
  xs: "220px",
29
30
  sm: "280px",
30
31
  md: "420px",
@@ -32,7 +33,7 @@ var WIDTH_PRESETS = {
32
33
  xl: "720px",
33
34
  xxl: "900px"
34
35
  };
35
- var HEIGHT_PRESETS = {
36
+ const HEIGHT_PRESETS = {
36
37
  xs: "22vh",
37
38
  sm: "30vh",
38
39
  md: "50vh",
@@ -73,7 +74,7 @@ function toCssSize(value, axis) {
73
74
  * - shadow (`mono-drawer.shadow.ts`): a real shadow root with an inner
74
75
  * `.mono-drawer` root, native `<slot>`s, inline-SVG ✕.
75
76
  */
76
- var MonoDrawerCore = (superClass) => {
77
+ const MonoDrawerCore = (superClass) => {
77
78
  class MonoDrawerCoreClass extends superClass {
78
79
  static {
79
80
  this.monoPendingAuto = "never";
@@ -227,8 +228,10 @@ var MonoDrawerCore = (superClass) => {
227
228
  "resizeable",
228
229
  "stackable"
229
230
  ]) if (typeof this[key] === "string") this[key] = this._toBoolean(this[key]);
230
- if (changed.has("modelValue")) if (this.modelValue) this._applyOpenSideEffects();
231
- else this._releaseSideEffects();
231
+ if (changed.has("modelValue")) {
232
+ if (this.modelValue) this._applyOpenSideEffects();
233
+ else this._releaseSideEffects();
234
+ }
232
235
  super.willUpdate?.(changed);
233
236
  }
234
237
  updated(changed) {
@@ -745,12 +748,14 @@ var MonoDrawerCore = (superClass) => {
745
748
  __decorate([query(".mono-drawer-panel")], MonoDrawerCoreClass.prototype, "_panelEl", void 0);
746
749
  return MonoDrawerCoreClass;
747
750
  };
751
+
748
752
  //#endregion
749
- //#region src/components/drawer/drawer.css?raw
750
- var drawer_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-drawer — a port of Basecoat's `.drawer` (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-drawer size=\"lg\" color=\"success\" position=\"left\" model-value>\r\n <div mono-drawer mono-size=\"lg\" mono-color=\"success\" mono-position=\"left\"\r\n mono-open role=\"dialog\" aria-modal=\"true\">\r\n <div mono-overlay></div>\r\n <div mono-panel role=\"document\">\r\n <div mono-resizer role=\"separator\"></div>\r\n <div mono-header>\r\n <div mono-heading>\r\n <div mono-title>Filters</div>\r\n <div mono-subtitle>Narrow the results</div>\r\n </div>\r\n <button mono-close type=\"button\" aria-label=\"Close drawer\">…</button>\r\n </div>\r\n <div mono-body>…</div>\r\n <div mono-footer>…</div>\r\n </div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary, `:not([mono-position])` = RIGHT — upstream's\r\n unqualified side is `bottom`, ours is `right`). The element writes them on its\r\n ROOT — the `<body>` portal in the light build, an inner root `<div>` in the\r\n shadow one — along with every state below. The old classes\r\n (`.mono-drawer.md.primary.position-right.open`) are still emitted as inert\r\n hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-drawer] ≡ .drawer (the <dialog>) — DEVIATION: a var scope, not a\r\n `fixed inset-0` box, because the overlay and the panel\r\n are each `position: fixed` and this component owns its\r\n own layer through `composables/popup-stack`\r\n [mono-overlay] ≡ .drawer::backdrop (bg-black/10 backdrop-blur-xs) — the\r\n fill is `--mono-mode-backdrop`, a token, since a\r\n pseudo-element cannot be reached from a shadow sheet\r\n [mono-panel] ≡ .drawer > * (fixed flex h-auto flex-col\r\n transition-transform duration-500\r\n ease-[cubic-bezier(0.32,0.72,0,1)], bg-popover\r\n text-popover-foreground text-sm), plus the per-side\r\n inset / measure / translate and the ONE rounded edge\r\n and border that face the content\r\n [mono-position=…] ≡ [data-side='…'] (left / right / top / bottom)\r\n [mono-header] ≡ .drawer > * > header (flex flex-col gap-0.5 p-4\r\n text-start, md:gap-1.5) — DEVIATION: a ROW, because\r\n the ✕ lives inside it (see below), and NOT centred on\r\n the top / bottom sides for the same reason\r\n [mono-heading] ≡ upstream's header column itself (flex-col gap-0.5,\r\n md:gap-1.5) — the ✕'s row-mate; `slot=\"header\"`\r\n replaces it\r\n [mono-title] ≡ .drawer > * > header > h2 (text-lg font-semibold\r\n leading-none tracking-tight)\r\n [mono-subtitle] ≡ .drawer > * > header > p (text-muted-foreground\r\n text-sm)\r\n [mono-body] ≡ .drawer > * > section (min-h-0 flex-1 overflow-y-auto)\r\n — DEVIATION: padded. Upstream leaves the section bare\r\n and its own examples pad the content they put in it;\r\n here the body is a SLOT a consumer fills with plain\r\n text, so it brings the `p-4` itself\r\n (`--mono-drawer-body-pad` turns it off)\r\n [mono-footer] ≡ .drawer > * > footer (mt-auto flex flex-col gap-2 p-4)\r\n [mono-close] ≡ EXTENSION (upstream's drawer has no close button)\r\n [mono-resizer] ≡ EXTENSION (the grab bar on the inner edge)\r\n [mono-size]/[mono-color] ≡ EXTENSION (upstream ships one drawer, no colour)\r\n\r\n THE TINTED HEADER IS GONE, exactly as in the modal: `--mono-drawer-header-bg`\r\n and `-footer-bg` remain as knobs, defaulting to transparent, with matching\r\n `-border` / `-border-width` so a consumer who wants the bars back sets them.\r\n\r\n THE FOOTER STACKS. Upstream's drawer footer is a COLUMN — it is the mobile\r\n sheet idiom, where the actions are full-width and stacked — where this\r\n component's was a right-aligned row. `--mono-drawer-footer-direction: row`\r\n restores the row, and ONE sets it, so the default flavor is unchanged.\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-panel]`, `[mono-body]` and `[mono-title]`\r\n are also dropdown's, card's and modal's part names, and a drawer BODY is where\r\n consumers put all three. Every rule here is written as an explicit child path\r\n from the root, with `:where()` keeping the resting weight at (0,1,0) so a\r\n `cssClass` utility still wins by source order.\r\n\r\n FLAVORS set `--mono-drawer-{radius,shadow,overlay-*,pad,header-gap,footer-gap,\r\n title-*,body-font,body-line-height,width,height}` (+ the per-size forms), and\r\n the four that float the panel as a card set the `inset` trio as well\r\n (`--mono-drawer-{inset,inset-radius,inset-border-width}` with\r\n `--mono-drawer-panel-pad`). Every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \".drawer\"`).\r\n ========================================================================= */\r\n\r\nmono-drawer {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Root — the layer\r\n ========================================= */\r\n\r\n[mono-drawer] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-drawer-primary: var(--mono-drawer-primary, var(--primary));\r\n --_mono-drawer-secondary: var(--mono-drawer-secondary, var(--secondary-foreground));\r\n --_mono-drawer-success: var(--mono-drawer-success, var(--success));\r\n --_mono-drawer-danger: var(--mono-drawer-danger, var(--destructive));\r\n --_mono-drawer-warning: var(--mono-drawer-warning, var(--warning));\r\n --_mono-drawer-info: var(--mono-drawer-info, var(--info));\r\n --_mono-drawer-teal: var(--mono-drawer-teal, var(--teal));\r\n --_mono-drawer-purple: var(--mono-drawer-purple, var(--purple));\r\n --_mono-drawer-neutral: var(--mono-drawer-neutral, var(--neutral));\r\n --_mono-drawer-dark: var(--mono-drawer-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-drawer-accent: var(--mono-drawer-accent, var(--_mono-drawer-accent-preset, var(--_mono-drawer-primary)));\r\n\r\n /* ── panel paint — `bg-popover text-popover-foreground`, one border edge ── */\r\n --_mono-drawer-bg: var(--mono-drawer-bg, var(--mono-drawer-surface, var(--popover)));\r\n --_mono-drawer-text: var(--mono-drawer-text, var(--popover-foreground));\r\n --_mono-drawer-border: var(--mono-drawer-border, var(--border));\r\n --_mono-drawer-border-width: var(--mono-drawer-border-width, var(--mono-border-width));\r\n --_mono-drawer-shadow: var(--mono-drawer-shadow, var(--mono-shadow-lg));\r\n /* a faint halo of the accent under the elevation — nothing until `color` is set */\r\n --_mono-drawer-glow: var(--mono-drawer-glow, 0 0 #0000);\r\n /* maia, mira, luma and rhea float the panel as an INSET card (`before:inset-2`\r\n over a transparent panel); at 0 the card is the panel itself, which is vega. */\r\n --_mono-drawer-inset: var(--mono-drawer-inset, 0px);\r\n --_mono-drawer-panel-pad: var(--mono-drawer-panel-pad, 0px);\r\n /* vega borders the ONE edge that faces the content; an inset card is a free\r\n floating box, so it borders all four (`before:border`). At 0 the per-side\r\n rules below are the only edge, which is vega. */\r\n --_mono-drawer-inset-border-width: var(--mono-drawer-inset-border-width, 0px);\r\n\r\n /* The tinted head / foot bars of the pre-port drawer. Upstream has neither, so\r\n both default to nothing — set the pair (and the `-border-width`) to restore. */\r\n --_mono-drawer-header-bg: var(--mono-drawer-header-bg, var(--mono-drawer-head-bg, transparent));\r\n --_mono-drawer-footer-bg: var(--mono-drawer-footer-bg, var(--mono-drawer-foot-bg, transparent));\r\n --_mono-drawer-header-border: var(--mono-drawer-header-border, transparent);\r\n --_mono-drawer-footer-border: var(--mono-drawer-footer-border, transparent);\r\n --_mono-drawer-header-border-width: var(--mono-drawer-header-border-width, 0);\r\n --_mono-drawer-footer-border-width: var(--mono-drawer-footer-border-width, 0);\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .drawer > * > header — gap-0.5 p-4 (md:gap-1.5)\r\n basecoat@1.0.2 styles/vega.css .drawer > * > footer — gap-2 p-4 */\r\n --_mono-drawer-radius: var(--mono-drawer-radius, var(--_mono-drawer-radius-preset, var(--mono-drawer-radius-md, var(--mono-radius-xl))));\r\n --_mono-drawer-pad: var(--mono-drawer-pad, var(--_mono-drawer-pad-preset, var(--mono-drawer-pad-md, calc(var(--mono-spacing) * 4))));\r\n --_mono-drawer-header-gap: var(--mono-drawer-header-gap, var(--_mono-drawer-header-gap-preset, var(--mono-drawer-header-gap-md, calc(var(--mono-spacing) * 1.5))));\r\n --_mono-drawer-footer-gap: var(--mono-drawer-footer-gap, var(--_mono-drawer-footer-gap-preset, var(--mono-drawer-footer-gap-md, calc(var(--mono-spacing) * 2))));\r\n --_mono-drawer-font: var(--mono-drawer-font, var(--_mono-drawer-font-preset, var(--mono-drawer-body-font-md, var(--mono-text-sm))));\r\n --_mono-drawer-body-line-height: var(--mono-drawer-body-line-height, var(--_mono-drawer-body-line-height-preset, var(--mono-text-sm--lh)));\r\n /* `text-lg font-semibold leading-none tracking-tight` — the drawer's title is\r\n the loud one; the dialog's is `font-medium` at the panel's own size. */\r\n --_mono-drawer-title-font: var(--mono-drawer-title-font, var(--_mono-drawer-title-font-preset, var(--mono-drawer-title-font-md, var(--mono-text-lg))));\r\n --_mono-drawer-title-weight: var(--mono-drawer-title-weight, var(--mono-font-weight-semibold));\r\n --_mono-drawer-title-tracking: var(--mono-drawer-title-tracking, -0.015em);\r\n --_mono-drawer-title-line-height: var(--mono-drawer-title-line-height, var(--mono-leading-none, 1));\r\n --_mono-drawer-title-transform: var(--mono-drawer-title-transform, none);\r\n --_mono-drawer-title-color: var(--mono-drawer-title-color, var(--_mono-drawer-text));\r\n /* the description line — `text-muted-foreground text-sm`; the font follows the\r\n drawer's per-size body step, which is `text-sm` at md */\r\n --_mono-drawer-subtitle-font: var(--mono-drawer-subtitle-font, var(--_mono-drawer-font));\r\n --_mono-drawer-subtitle-color: var(--mono-drawer-subtitle-color, var(--muted-foreground));\r\n\r\n /* ── the close ✕ — EXTENSION, styled like the dialog's ─────────────────── */\r\n --_mono-drawer-close-size: var(--mono-drawer-close-size, var(--_mono-drawer-close-size-preset, var(--mono-drawer-close-size-md, calc(var(--mono-spacing) * 7))));\r\n --_mono-drawer-close-glyph: var(--mono-drawer-close-glyph, var(--_mono-drawer-icon-size-preset, calc(var(--mono-spacing) * 4)));\r\n --_mono-drawer-close-radius: var(--mono-drawer-close-radius, var(--mono-radius-sm));\r\n --_mono-drawer-close-bg: var(--mono-drawer-close-bg, transparent);\r\n --_mono-drawer-close-color: var(--mono-drawer-close-color, var(--_mono-drawer-text));\r\n --_mono-drawer-close-opacity: var(--mono-drawer-close-opacity, 0.7);\r\n --_mono-drawer-close-hover-opacity: var(--mono-drawer-close-hover-opacity, 1);\r\n --_mono-drawer-close-hover-bg: var(--mono-drawer-close-hover-bg, transparent);\r\n\r\n /* ── the backdrop — `bg-black/10 backdrop-blur-xs` ─────────────────────── */\r\n --_mono-drawer-overlay-bg: var(--mono-drawer-overlay-bg, var(--mono-mode-backdrop));\r\n --_mono-drawer-overlay-backdrop-filter: var(--mono-drawer-overlay-backdrop-filter, blur(var(--mono-blur-xs)));\r\n\r\n --_mono-drawer-z: var(--mono-drawer-z, 9990);\r\n\r\n /* `w-3/4 max-w-sm` on the side drawers; `max-h-[80vh]` with a content height on\r\n the sheet ones. Both are PROPS here (`width` / `height`), so these are the\r\n defaults they override. */\r\n --_mono-drawer-width: var(--mono-drawer-width, min(75%, var(--mono-container-sm)));\r\n --_mono-drawer-height: var(--mono-drawer-height, auto);\r\n --_mono-drawer-max-height: var(--mono-drawer-max-height, 80vh);\r\n\r\n /* ── the slide — `duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]` ────────\r\n Open/close animation duration. One source of truth for the panel's slide AND\r\n the delayed `visibility` / `content-visibility` flips, which have to stay in\r\n lockstep with it. Set `--mono-drawer-duration: 0s` for an instant,\r\n animation-free drawer — worth doing when the drawer body holds a lot of\r\n components, since that is what the open/close frames have to re-measure. */\r\n --_mono-drawer-duration: var(--mono-drawer-duration, 500ms);\r\n --_mono-drawer-ease: var(--mono-drawer-ease, cubic-bezier(0.32, 0.72, 0, 1));\r\n /* The overlay follows the panel unless it is given its own. */\r\n --_mono-drawer-overlay-duration: var(--mono-drawer-duration, 500ms);\r\n\r\n font-family: inherit;\r\n color: var(--_mono-drawer-text);\r\n}\r\n\r\n[mono-drawer],\r\n:where([mono-drawer]) *,\r\n:where([mono-drawer]) *::before,\r\n:where([mono-drawer]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: `size` is the CONTENT scale, never the measure\r\n ========================================= */\r\n\r\n[mono-drawer][mono-size=\"xs\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-xs, var(--mono-radius-md));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-xs, calc(var(--mono-spacing) * 2));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-xs, calc(var(--mono-spacing) * 0.5));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-xs, var(--mono-spacing));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-xs, var(--mono-text-xs));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-xs, var(--mono-text-sm));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-xs, calc(var(--mono-spacing) * 5));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 3);\r\n}\r\n\r\n[mono-drawer][mono-size=\"sm\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-sm, var(--mono-radius-lg));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-sm, var(--mono-spacing));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-sm, calc(var(--mono-spacing) * 1.5));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-sm, var(--mono-text-xs));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-sm, var(--mono-text-base));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-sm, calc(var(--mono-spacing) * 6));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 3.5);\r\n}\r\n\r\n[mono-drawer][mono-size=\"lg\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-lg, var(--mono-radius-2xl));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-lg, calc(var(--mono-spacing) * 5));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-lg, calc(var(--mono-spacing) * 2));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-lg, calc(var(--mono-spacing) * 2.5));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-lg, var(--mono-text-base));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-lg, var(--mono-text-xl));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-lg, calc(var(--mono-spacing) * 8));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 4.5);\r\n}\r\n\r\n[mono-drawer][mono-size=\"xl\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-xl, var(--mono-radius-2xl));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-xl, calc(var(--mono-spacing) * 6));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-xl, calc(var(--mono-spacing) * 2.5));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-xl, calc(var(--mono-spacing) * 3));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-xl, var(--mono-text-lg));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-xl, var(--mono-text-2xl, 1.5rem));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-xl, calc(var(--mono-spacing) * 9));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 5);\r\n}\r\n\r\n[mono-drawer][mono-size=\"xxl\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-xxl, var(--mono-radius-4xl));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-xxl, calc(var(--mono-spacing) * 7));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-xxl, calc(var(--mono-spacing) * 3));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-xxl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-xxl, var(--mono-text-lg));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-xxl, 1.75rem);\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-xxl, calc(var(--mono-spacing) * 10));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 5.5);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role tints the resizer and whatever the consumer\r\n turns back on (the head bar, the close hover)\r\n ========================================= */\r\n\r\n[mono-drawer][mono-color=\"primary\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-primary); }\r\n[mono-drawer][mono-color=\"secondary\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-secondary); }\r\n[mono-drawer][mono-color=\"success\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-success); }\r\n[mono-drawer][mono-color=\"danger\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-danger); }\r\n[mono-drawer][mono-color=\"warning\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-warning); }\r\n[mono-drawer][mono-color=\"info\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-info); }\r\n[mono-drawer][mono-color=\"teal\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-teal); }\r\n[mono-drawer][mono-color=\"purple\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-purple); }\r\n[mono-drawer][mono-color=\"neutral\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-neutral); }\r\n[mono-drawer][mono-color=\"dark\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-dark); }\r\n\r\n/* An explicit `color` shows on the panel itself: its edge (the one border in\r\n vega, the whole inset card in maia / mira / luma / rhea) becomes a thin line\r\n of the accent and a faint halo of it sits under the elevation. Without\r\n `color` the edge stays `--border` and there is no halo. A consumer's\r\n `--mono-drawer-border` / `--mono-drawer-glow` still win. */\r\n[mono-drawer][mono-color] {\r\n --_mono-drawer-border: var(--mono-drawer-border, var(--mono-drawer-accent-border, color-mix(in oklab, var(--_mono-drawer-accent) 35%, var(--border))));\r\n --_mono-drawer-glow: var(--mono-drawer-glow, 0 0 24px -4px color-mix(in oklab, var(--_mono-drawer-accent) 45%, transparent));\r\n}\r\n\r\n/* =========================================\r\n Overlay — `::backdrop`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .drawer::backdrop — bg-black/10 backdrop-blur-xs.\r\n A real `::backdrop` cannot be reached from a shadow sheet and cannot stack with\r\n this component's own layer manager, so it is an element. */\r\n:where([mono-drawer]) > [mono-overlay] {\r\n /* Sized in VIEWPORT units, not `inset: 0`. `inset`/`100%` resolve against the\r\n initial containing block, which a horizontally-overflowing page inflates under\r\n mobile emulation (measured: 481x1041 on a 390x844 screen), so the scrim\r\n overshot the screen. `dvh`/`dvw` also track mobile browser chrome; the plain\r\n `v*` line above each is the pre-2022 fallback. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n z-index: var(--_mono-drawer-z);\r\n background: var(--_mono-drawer-overlay-bg);\r\n opacity: 0;\r\n pointer-events: none;\r\n cursor: pointer;\r\n\r\n /* The blur is applied only while open, and its removal is DELAYED by the fade\r\n so the backdrop does not snap sharp while the scrim is still going. */\r\n backdrop-filter: none;\r\n -webkit-backdrop-filter: none;\r\n transition:\r\n opacity var(--_mono-drawer-overlay-duration) var(--_mono-drawer-ease),\r\n backdrop-filter 0s linear var(--_mono-drawer-overlay-duration),\r\n -webkit-backdrop-filter 0s linear var(--_mono-drawer-overlay-duration);\r\n}\r\n\r\n[mono-drawer][mono-open] > [mono-overlay] {\r\n opacity: 1;\r\n pointer-events: auto;\r\n backdrop-filter: var(--_mono-drawer-overlay-backdrop-filter);\r\n -webkit-backdrop-filter: var(--_mono-drawer-overlay-backdrop-filter);\r\n transition:\r\n opacity var(--_mono-drawer-overlay-duration) var(--_mono-drawer-ease),\r\n backdrop-filter 0s linear 0s,\r\n -webkit-backdrop-filter 0s linear 0s;\r\n}\r\n\r\n[mono-drawer][mono-no-overlay] > [mono-overlay] {\r\n display: none;\r\n}\r\n\r\n/* Stacked drawers: when another drawer or modal WITH an overlay is open above\r\n this one, hide this backdrop so dim layers don't compound — the topmost\r\n overlay alone dims everything beneath it. An `overlay=\"false\"` dialog above\r\n does not count, so this one keeps dimming the page. */\r\n[mono-drawer][mono-open][mono-has-drawer-above] > [mono-overlay] {\r\n opacity: 0;\r\n}\r\n\r\n/* =========================================\r\n Panel — `.drawer > *`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * — fixed z-50 flex h-auto\r\n flex-col transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]\r\n will-change-transform outline-hidden */\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * — bg-popover text-popover-foreground text-sm */\r\n:where([mono-drawer]) > [mono-panel] {\r\n position: fixed;\r\n z-index: calc(var(--_mono-drawer-z) + 1);\r\n display: flex;\r\n flex-direction: column;\r\n padding: var(--_mono-drawer-panel-pad);\r\n color: var(--_mono-drawer-text);\r\n font-size: var(--_mono-drawer-font);\r\n outline: none;\r\n pointer-events: auto;\r\n will-change: transform;\r\n\r\n /* Closed state: invisible (hides the shadow halo too) until the slide-in\r\n begins. On close the visibility flip is delayed by the transform duration so\r\n the slide-out animation plays first. */\r\n visibility: hidden;\r\n transition:\r\n transform var(--_mono-drawer-duration) var(--_mono-drawer-ease),\r\n visibility 0s linear var(--_mono-drawer-duration);\r\n}\r\n\r\n/* The panel's PAINT is a layer, not the panel's own box: maia, mira, luma and\r\n rhea float the drawer as a card inset from the viewport edge\r\n (`before:inset-2 before:rounded-4xl before:border`) over a transparent panel.\r\n At `--mono-drawer-inset: 0` the layer is exactly the panel, which is vega. */\r\n[mono-drawer] > [mono-panel]::before {\r\n content: '';\r\n position: absolute;\r\n inset: var(--_mono-drawer-inset);\r\n z-index: -1;\r\n background: var(--_mono-drawer-bg);\r\n /* `inherit` picks up the panel's per-corner radii, which is the vega card.\r\n A flavor that INSETS the layer rounds all four corners instead, so it sets\r\n the radius outright. */\r\n border-radius: var(--mono-drawer-inset-radius, inherit);\r\n border: var(--_mono-drawer-inset-border-width) solid var(--_mono-drawer-border);\r\n box-shadow: var(--_mono-drawer-glow), var(--_mono-drawer-shadow);\r\n pointer-events: none;\r\n}\r\n\r\n[mono-drawer][mono-open] > [mono-panel] {\r\n visibility: visible;\r\n transition:\r\n transform var(--_mono-drawer-duration) var(--_mono-drawer-ease),\r\n visibility 0s linear 0s;\r\n}\r\n\r\n/* =========================================\r\n Positions — `[data-side]`\r\n -----------------------------------------------------------------------------\r\n Each side fixes the two insets it spans, takes its measure from the axis it\r\n grows on, and rounds + borders the ONE edge that faces the content.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &[data-side='right'] > *\r\n — inset-y-0 right-0 w-3/4 max-w-sm translate-x-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer[data-side='right'] > * — rounded-l-xl border-l\r\n DEVIATION: `right` is this component's DEFAULT side, where upstream's is\r\n `bottom`, so the unqualified root is this one. */\r\n[mono-drawer]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel] {\r\n top: 0;\r\n right: 0;\r\n height: 100vh;\r\n height: 100dvh;\r\n width: var(--_mono-drawer-width);\r\n max-width: 100vw;\r\n max-width: 100dvw;\r\n transform: translateX(100%);\r\n border-start-start-radius: var(--_mono-drawer-radius);\r\n border-end-start-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel]::before {\r\n border-left-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel] {\r\n transform: translateX(0);\r\n}\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &[data-side='left'] > *\r\n — inset-y-0 left-0 w-3/4 max-w-sm -translate-x-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer[data-side='left'] > * — rounded-r-xl border-r */\r\n[mono-drawer][mono-position=\"left\"] > [mono-panel] {\r\n top: 0;\r\n left: 0;\r\n height: 100vh;\r\n height: 100dvh;\r\n width: var(--_mono-drawer-width);\r\n max-width: 100vw;\r\n max-width: 100dvw;\r\n transform: translateX(-100%);\r\n border-start-end-radius: var(--_mono-drawer-radius);\r\n border-end-end-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer][mono-position=\"left\"] > [mono-panel]::before {\r\n border-right-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open][mono-position=\"left\"] > [mono-panel] {\r\n transform: translateX(0);\r\n}\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &[data-side='top'] > *\r\n — inset-x-0 top-0 mb-24 max-h-[80vh] -translate-y-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer[data-side='top'] > * — rounded-b-xl border-b */\r\n[mono-drawer][mono-position=\"top\"] > [mono-panel] {\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: var(--_mono-drawer-height);\r\n max-height: var(--_mono-drawer-max-height);\r\n transform: translateY(-100%);\r\n border-end-start-radius: var(--_mono-drawer-radius);\r\n border-end-end-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer][mono-position=\"top\"] > [mono-panel]::before {\r\n border-bottom-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open][mono-position=\"top\"] > [mono-panel] {\r\n transform: translateY(0);\r\n}\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &:not([data-side]) > *, &[data-side='bottom'] > *\r\n — inset-x-0 bottom-0 mt-24 max-h-[80vh] translate-y-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer:not([data-side]) > *, .drawer[data-side='bottom'] > *\r\n — rounded-t-xl border-t */\r\n[mono-drawer][mono-position=\"bottom\"] > [mono-panel] {\r\n bottom: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: var(--_mono-drawer-height);\r\n max-height: var(--_mono-drawer-max-height);\r\n transform: translateY(100%);\r\n border-start-start-radius: var(--_mono-drawer-radius);\r\n border-start-end-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer][mono-position=\"bottom\"] > [mono-panel]::before {\r\n border-top-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open][mono-position=\"bottom\"] > [mono-panel] {\r\n transform: translateY(0);\r\n}\r\n\r\n/* =========================================\r\n Resizer — EXTENSION: a grab bar on the panel's inner edge\r\n ========================================= */\r\n\r\n:where([mono-drawer] > [mono-panel]) > [mono-resizer] {\r\n position: absolute;\r\n z-index: 2;\r\n touch-action: none;\r\n background: transparent;\r\n transition: background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-drawer] > [mono-panel] > [mono-resizer]:hover,\r\n[mono-drawer][mono-resizing] > [mono-panel] > [mono-resizer] {\r\n background: color-mix(in oklab, var(--_mono-drawer-accent) 30%, transparent);\r\n}\r\n\r\n[mono-drawer]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel] > [mono-resizer] {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n width: 6px;\r\n cursor: ew-resize;\r\n}\r\n\r\n[mono-drawer][mono-position=\"left\"] > [mono-panel] > [mono-resizer] {\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 6px;\r\n cursor: ew-resize;\r\n}\r\n\r\n[mono-drawer][mono-position=\"top\"] > [mono-panel] > [mono-resizer] {\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n height: 6px;\r\n cursor: ns-resize;\r\n}\r\n\r\n[mono-drawer][mono-position=\"bottom\"] > [mono-panel] > [mono-resizer] {\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n height: 6px;\r\n cursor: ns-resize;\r\n}\r\n\r\n/* No lag while dragging the handle. */\r\n[mono-drawer][mono-resizing] > [mono-panel] {\r\n transition: none;\r\n}\r\n\r\n[mono-drawer][mono-resizing] {\r\n user-select: none;\r\n}\r\n\r\n/* =========================================\r\n Header — `> header`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > header — flex flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * > header — gap-0.5 p-4 text-start\r\n DEVIATIONS: a ROW, because the ✕ lives inside it (upstream's drawer has no\r\n close button and its header is a column of title + description); and NOT\r\n centred on the top / bottom sides for the same reason — a centred title beside\r\n a trailing ✕ reads as a mistake. */\r\n:where([mono-drawer] > [mono-panel]) > [mono-header] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--_mono-drawer-header-gap);\r\n flex-shrink: 0;\r\n padding: var(--_mono-drawer-pad);\r\n text-align: start;\r\n border-bottom: var(--_mono-drawer-header-border-width) solid var(--_mono-drawer-header-border);\r\n background: var(--_mono-drawer-header-bg);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * > header > h2, .drawer > * > [data-title]\r\n — text-lg font-semibold leading-none tracking-tight */\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > header — flex flex-col\r\n (+ vega's gap-0.5 md:gap-1.5): the title / subtitle column beside the ✕. */\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) > [mono-heading] {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-drawer-heading-gap, var(--_mono-drawer-header-gap));\r\n}\r\n\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) [mono-title] {\r\n min-width: 0;\r\n font-size: var(--_mono-drawer-title-font);\r\n font-weight: var(--_mono-drawer-title-weight);\r\n line-height: var(--_mono-drawer-title-line-height);\r\n letter-spacing: var(--_mono-drawer-title-tracking);\r\n text-transform: var(--_mono-drawer-title-transform);\r\n color: var(--_mono-drawer-title-color);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * > header > p, .drawer > * > [data-description]\r\n — text-muted-foreground text-sm */\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) [mono-subtitle] {\r\n min-width: 0;\r\n font-size: var(--_mono-drawer-subtitle-font);\r\n line-height: var(--mono-drawer-subtitle-line-height, var(--mono-leading-normal));\r\n color: var(--_mono-drawer-subtitle-color);\r\n}\r\n\r\n/* Empty regions. The light build omits them; the shadow build always renders\r\n them (its native `<slot>`s must exist to be scanned) and marks them\r\n [mono-empty]. The heading parts are matched as descendants because the shadow\r\n build nests them inside the `header` slot's fallback. */\r\n:where([mono-drawer] > [mono-panel]) > :is([mono-header], [mono-footer])[mono-empty],\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) > [mono-heading][mono-empty],\r\n:where([mono-drawer] > [mono-panel] > [mono-header] > [mono-heading]) :is([mono-title], [mono-subtitle])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Close — EXTENSION, styled like the dialog's\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > :is(button, form[method='dialog'] > button)\r\n — inline-flex items-center justify-center opacity-70 transition-opacity\r\n hover:opacity-100. Upstream's DRAWER has no close button at all; borrowing the\r\n dialog's keeps the two consistent. */\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) [mono-close] {\r\n flex-shrink: 0;\r\n /* stays at the end even when the heading column is empty (hidden) */\r\n margin-inline-start: auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-drawer-close-size);\r\n height: var(--_mono-drawer-close-size);\r\n padding: 0;\r\n border: none;\r\n border-radius: var(--_mono-drawer-close-radius);\r\n background: var(--_mono-drawer-close-bg);\r\n color: var(--_mono-drawer-close-color);\r\n opacity: var(--_mono-drawer-close-opacity);\r\n cursor: pointer;\r\n appearance: none;\r\n transition:\r\n opacity var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-drawer] [mono-close]:hover {\r\n opacity: var(--_mono-drawer-close-hover-opacity);\r\n background: var(--_mono-drawer-close-hover-bg);\r\n }\r\n}\r\n\r\n[mono-drawer] [mono-close]:focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width)\r\n color-mix(in oklab, var(--ring) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n[mono-drawer] [mono-close] > :is(svg, span) {\r\n display: block;\r\n width: var(--_mono-drawer-close-glyph);\r\n height: var(--_mono-drawer-close-glyph);\r\n}\r\n\r\n/* =========================================\r\n Body — `> section`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > section\r\n — min-h-0 flex-1 overflow-y-auto\r\n DEVIATION: padded. Upstream leaves the section bare and pads the content it\r\n puts inside; here the body is a SLOT a consumer fills with plain text, so it\r\n brings the same `p-4` the header and footer use. `--mono-drawer-body-pad: 0`\r\n gives upstream's bare section back. */\r\n:where([mono-drawer] > [mono-panel]) > [mono-body] {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: var(--mono-drawer-body-pad, var(--_mono-drawer-pad));\r\n font-size: var(--_mono-drawer-font);\r\n line-height: var(--_mono-drawer-body-line-height);\r\n}\r\n\r\n/* =========================================\r\n Footer — `> footer`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > footer — mt-auto flex flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .alert-dialog > * > footer, .dialog > * > footer — gap-2\r\n basecoat@1.0.2 styles/vega.css .drawer > * > footer — gap-2 p-4\r\n The COLUMN is upstream's: a drawer footer is the mobile-sheet idiom, where the\r\n actions are full-width and stacked. `--mono-drawer-footer-direction: row`\r\n restores the pre-port right-aligned row, and ONE sets it. */\r\n:where([mono-drawer] > [mono-panel]) > [mono-footer] {\r\n display: flex;\r\n flex-direction: var(--mono-drawer-footer-direction, column);\r\n align-items: var(--mono-drawer-footer-align, stretch);\r\n justify-content: var(--mono-drawer-footer-justify, flex-start);\r\n gap: var(--_mono-drawer-footer-gap);\r\n margin-top: auto;\r\n flex-shrink: 0;\r\n padding: var(--_mono-drawer-pad);\r\n border-top: var(--_mono-drawer-footer-border-width) solid var(--_mono-drawer-footer-border);\r\n background: var(--_mono-drawer-footer-bg);\r\n}\r\n\r\n/* The light build re-appends slotted nodes into a `[data-mono-slot]` outlet.\r\n Left inline, that outlet is ONE flex child, so the footer's gap and\r\n justification apply to IT rather than to the buttons inside it — while the\r\n shadow build's `<slot>` is `display: contents` per the UA sheet and the\r\n hand-written markup has no wrapper at all. Dissolving the outlet is what\r\n makes the three agree, and it is what a consumer writing\r\n `<button slot=\"footer\">` twice expects. */\r\n:where([mono-drawer] > [mono-panel] > [mono-footer]) > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Closed\r\n ========================================= */\r\n\r\n[mono-drawer]:not([mono-open]) {\r\n pointer-events: none;\r\n}\r\n\r\n[mono-drawer]:not([mono-open]) > [mono-overlay] {\r\n opacity: 0;\r\n pointer-events: none;\r\n}\r\n\r\n/* A closed drawer is hidden with `visibility: hidden`, which skips PAINT but not\r\n LAYOUT — so the panel and everything slotted into it kept generating boxes and\r\n being measured even for a drawer the user never opened.\r\n `content-visibility: hidden` drops the closed subtree entirely.\r\n\r\n Measured alongside the modal (Chromium, ~400-node panels, 10 modal+drawer pairs):\r\n layout objects 12281 → 81, mount layout+style 94.6ms → 14.9ms and flat in the\r\n count. One open+close costs slightly more in exchange, since an opening panel is\r\n laid out from scratch; `--mono-drawer-duration: 0s` removes that if it matters.\r\n\r\n `allow-discrete` is what makes it safe to animate: opening flips the property to\r\n `visible` at 0% so the slide-in has something to composite; closing holds it\r\n `visible` until 100% so the panel slides out instead of vanishing on frame one.\r\n\r\n Gated behind @supports deliberately — `content-visibility … allow-discrete` in the\r\n `transition` SHORTHAND is a parse error without the feature, and one bad entry\r\n drops the WHOLE declaration, which would take the slide with it. Inside the guard\r\n the shorthand is known to parse, so the list is restated in full. Browsers without\r\n support keep exactly the previous behaviour.\r\n\r\n Safe for every position: the side drawers fix `top`/`bottom` and take an explicit\r\n `width`, the sheet ones fix `left`/`right` and cap their height, so size\r\n containment has no content-driven dimension to collapse while closed.\r\n\r\n Must stay ABOVE the reduced-motion block below — @supports adds no specificity, so\r\n source order is what keeps `transition: none` the winner there. */\r\n@supports (transition-behavior: allow-discrete) {\r\n :where([mono-drawer]) > [mono-panel] {\r\n content-visibility: hidden;\r\n contain-intrinsic-size: 0;\r\n transition:\r\n transform var(--_mono-drawer-duration) var(--_mono-drawer-ease),\r\n visibility 0s linear var(--_mono-drawer-duration),\r\n content-visibility var(--_mono-drawer-duration) allow-discrete;\r\n }\r\n\r\n [mono-drawer][mono-open] > [mono-panel] {\r\n content-visibility: visible;\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-drawer] > [mono-panel],\r\n [mono-drawer] > [mono-overlay] {\r\n transition: none;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Auto full-screen (`auto-fullscreen` prop)\r\n =========================================\r\n\r\n Fill the screen at a Tailwind breakpoint and below, keeping the drawer's\r\n `position` — a `right` drawer still slides in from the right, it just covers the\r\n viewport. Boundaries are `<breakpoint> - 0.02px` to match Tailwind's `max-*`\r\n variants (at exactly 640px `sm:` applies, so auto-fullscreen must not).\r\n\r\n No `!important` needed, unlike modal.css: drawer sizing arrives as the\r\n `--mono-drawer-*` custom properties on the ROOT, while the panel's\r\n `width`/`height` come from the position rules above — (0,2,1) selectors that\r\n these, at (0,2,1) and declared AFTER, beat on order. Keep this section last.\r\n*/\r\n\r\n@media (max-width: 639.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"sm\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"sm\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n /* Load-bearing, not cosmetic: the rules above outrank the `--mono-drawer-width`\r\n the resizer writes, so a drag here moves nothing visible YET still records a\r\n width — and the drawer would snap to it the moment the viewport grew back past\r\n the breakpoint. Hiding the handle removes the pointer target so no such drag\r\n can begin (`_onResizeStart` also guards, as belt-and-braces). */\r\n [mono-drawer][mono-auto-fullscreen=\"sm\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"md\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"md\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"md\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1023.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"lg\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"lg\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"lg\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1279.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"xl\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"xl\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"xl\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1535.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"2xl\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"2xl\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"2xl\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n";
753
+ //#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\drawer\drawer.css?raw.js
754
+ var drawer_css_raw_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-drawer — a port of Basecoat's `.drawer` (basecoat-css@1.0.2, vega style).\r\n\r\n Styled by ATTRIBUTE, like Basecoat — and the attributes mirror the element's\r\n props one for one, so hand-written markup reads like the Lit / Vue tag:\r\n\r\n <mono-drawer size=\"lg\" color=\"success\" position=\"left\" model-value>\r\n <div mono-drawer mono-size=\"lg\" mono-color=\"success\" mono-position=\"left\"\r\n mono-open role=\"dialog\" aria-modal=\"true\">\r\n <div mono-overlay></div>\r\n <div mono-panel role=\"document\">\r\n <div mono-resizer role=\"separator\"></div>\r\n <div mono-header>\r\n <div mono-heading>\r\n <div mono-title>Filters</div>\r\n <div mono-subtitle>Narrow the results</div>\r\n </div>\r\n <button mono-close type=\"button\" aria-label=\"Close drawer\">…</button>\r\n </div>\r\n <div mono-body>…</div>\r\n <div mono-footer>…</div>\r\n </div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary, `:not([mono-position])` = RIGHT — upstream's\r\n unqualified side is `bottom`, ours is `right`). The element writes them on its\r\n ROOT — the `<body>` portal in the light build, an inner root `<div>` in the\r\n shadow one — along with every state below. The old classes\r\n (`.mono-drawer.md.primary.position-right.open`) are still emitted as inert\r\n hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-drawer] ≡ .drawer (the <dialog>) — DEVIATION: a var scope, not a\r\n `fixed inset-0` box, because the overlay and the panel\r\n are each `position: fixed` and this component owns its\r\n own layer through `composables/popup-stack`\r\n [mono-overlay] ≡ .drawer::backdrop (bg-black/10 backdrop-blur-xs) — the\r\n fill is `--mono-mode-backdrop`, a token, since a\r\n pseudo-element cannot be reached from a shadow sheet\r\n [mono-panel] ≡ .drawer > * (fixed flex h-auto flex-col\r\n transition-transform duration-500\r\n ease-[cubic-bezier(0.32,0.72,0,1)], bg-popover\r\n text-popover-foreground text-sm), plus the per-side\r\n inset / measure / translate and the ONE rounded edge\r\n and border that face the content\r\n [mono-position=…] ≡ [data-side='…'] (left / right / top / bottom)\r\n [mono-header] ≡ .drawer > * > header (flex flex-col gap-0.5 p-4\r\n text-start, md:gap-1.5) — DEVIATION: a ROW, because\r\n the ✕ lives inside it (see below), and NOT centred on\r\n the top / bottom sides for the same reason\r\n [mono-heading] ≡ upstream's header column itself (flex-col gap-0.5,\r\n md:gap-1.5) — the ✕'s row-mate; `slot=\"header\"`\r\n replaces it\r\n [mono-title] ≡ .drawer > * > header > h2 (text-lg font-semibold\r\n leading-none tracking-tight)\r\n [mono-subtitle] ≡ .drawer > * > header > p (text-muted-foreground\r\n text-sm)\r\n [mono-body] ≡ .drawer > * > section (min-h-0 flex-1 overflow-y-auto)\r\n — DEVIATION: padded. Upstream leaves the section bare\r\n and its own examples pad the content they put in it;\r\n here the body is a SLOT a consumer fills with plain\r\n text, so it brings the `p-4` itself\r\n (`--mono-drawer-body-pad` turns it off)\r\n [mono-footer] ≡ .drawer > * > footer (mt-auto flex flex-col gap-2 p-4)\r\n [mono-close] ≡ EXTENSION (upstream's drawer has no close button)\r\n [mono-resizer] ≡ EXTENSION (the grab bar on the inner edge)\r\n [mono-size]/[mono-color] ≡ EXTENSION (upstream ships one drawer, no colour)\r\n\r\n THE TINTED HEADER IS GONE, exactly as in the modal: `--mono-drawer-header-bg`\r\n and `-footer-bg` remain as knobs, defaulting to transparent, with matching\r\n `-border` / `-border-width` so a consumer who wants the bars back sets them.\r\n\r\n THE FOOTER STACKS. Upstream's drawer footer is a COLUMN — it is the mobile\r\n sheet idiom, where the actions are full-width and stacked — where this\r\n component's was a right-aligned row. `--mono-drawer-footer-direction: row`\r\n restores the row, and ONE sets it, so the default flavor is unchanged.\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-panel]`, `[mono-body]` and `[mono-title]`\r\n are also dropdown's, card's and modal's part names, and a drawer BODY is where\r\n consumers put all three. Every rule here is written as an explicit child path\r\n from the root, with `:where()` keeping the resting weight at (0,1,0) so a\r\n `cssClass` utility still wins by source order.\r\n\r\n FLAVORS set `--mono-drawer-{radius,shadow,overlay-*,pad,header-gap,footer-gap,\r\n title-*,body-font,body-line-height,width,height}` (+ the per-size forms), and\r\n the four that float the panel as a card set the `inset` trio as well\r\n (`--mono-drawer-{inset,inset-radius,inset-border-width}` with\r\n `--mono-drawer-panel-pad`). Every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \".drawer\"`).\r\n ========================================================================= */\r\n\r\nmono-drawer {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Root — the layer\r\n ========================================= */\r\n\r\n[mono-drawer] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-drawer-primary: var(--mono-drawer-primary, var(--primary));\r\n --_mono-drawer-secondary: var(--mono-drawer-secondary, var(--secondary-foreground));\r\n --_mono-drawer-success: var(--mono-drawer-success, var(--success));\r\n --_mono-drawer-danger: var(--mono-drawer-danger, var(--destructive));\r\n --_mono-drawer-warning: var(--mono-drawer-warning, var(--warning));\r\n --_mono-drawer-info: var(--mono-drawer-info, var(--info));\r\n --_mono-drawer-teal: var(--mono-drawer-teal, var(--teal));\r\n --_mono-drawer-purple: var(--mono-drawer-purple, var(--purple));\r\n --_mono-drawer-neutral: var(--mono-drawer-neutral, var(--neutral));\r\n --_mono-drawer-dark: var(--mono-drawer-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-drawer-accent: var(--mono-drawer-accent, var(--_mono-drawer-accent-preset, var(--_mono-drawer-primary)));\r\n\r\n /* ── panel paint — `bg-popover text-popover-foreground`, one border edge ── */\r\n --_mono-drawer-bg: var(--mono-drawer-bg, var(--mono-drawer-surface, var(--popover)));\r\n --_mono-drawer-text: var(--mono-drawer-text, var(--popover-foreground));\r\n --_mono-drawer-border: var(--mono-drawer-border, var(--border));\r\n --_mono-drawer-border-width: var(--mono-drawer-border-width, var(--mono-border-width));\r\n --_mono-drawer-shadow: var(--mono-drawer-shadow, var(--mono-shadow-lg));\r\n /* a faint halo of the accent under the elevation — nothing until `color` is set */\r\n --_mono-drawer-glow: var(--mono-drawer-glow, 0 0 #0000);\r\n /* maia, mira, luma and rhea float the panel as an INSET card (`before:inset-2`\r\n over a transparent panel); at 0 the card is the panel itself, which is vega. */\r\n --_mono-drawer-inset: var(--mono-drawer-inset, 0px);\r\n --_mono-drawer-panel-pad: var(--mono-drawer-panel-pad, 0px);\r\n /* vega borders the ONE edge that faces the content; an inset card is a free\r\n floating box, so it borders all four (`before:border`). At 0 the per-side\r\n rules below are the only edge, which is vega. */\r\n --_mono-drawer-inset-border-width: var(--mono-drawer-inset-border-width, 0px);\r\n\r\n /* The tinted head / foot bars of the pre-port drawer. Upstream has neither, so\r\n both default to nothing — set the pair (and the `-border-width`) to restore. */\r\n --_mono-drawer-header-bg: var(--mono-drawer-header-bg, var(--mono-drawer-head-bg, transparent));\r\n --_mono-drawer-footer-bg: var(--mono-drawer-footer-bg, var(--mono-drawer-foot-bg, transparent));\r\n --_mono-drawer-header-border: var(--mono-drawer-header-border, transparent);\r\n --_mono-drawer-footer-border: var(--mono-drawer-footer-border, transparent);\r\n --_mono-drawer-header-border-width: var(--mono-drawer-header-border-width, 0);\r\n --_mono-drawer-footer-border-width: var(--mono-drawer-footer-border-width, 0);\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .drawer > * > header — gap-0.5 p-4 (md:gap-1.5)\r\n basecoat@1.0.2 styles/vega.css .drawer > * > footer — gap-2 p-4 */\r\n --_mono-drawer-radius: var(--mono-drawer-radius, var(--_mono-drawer-radius-preset, var(--mono-drawer-radius-md, var(--mono-radius-xl))));\r\n --_mono-drawer-pad: var(--mono-drawer-pad, var(--_mono-drawer-pad-preset, var(--mono-drawer-pad-md, calc(var(--mono-spacing) * 4))));\r\n --_mono-drawer-header-gap: var(--mono-drawer-header-gap, var(--_mono-drawer-header-gap-preset, var(--mono-drawer-header-gap-md, calc(var(--mono-spacing) * 1.5))));\r\n --_mono-drawer-footer-gap: var(--mono-drawer-footer-gap, var(--_mono-drawer-footer-gap-preset, var(--mono-drawer-footer-gap-md, calc(var(--mono-spacing) * 2))));\r\n --_mono-drawer-font: var(--mono-drawer-font, var(--_mono-drawer-font-preset, var(--mono-drawer-body-font-md, var(--mono-text-sm))));\r\n --_mono-drawer-body-line-height: var(--mono-drawer-body-line-height, var(--_mono-drawer-body-line-height-preset, var(--mono-text-sm--lh)));\r\n /* `text-lg font-semibold leading-none tracking-tight` — the drawer's title is\r\n the loud one; the dialog's is `font-medium` at the panel's own size. */\r\n --_mono-drawer-title-font: var(--mono-drawer-title-font, var(--_mono-drawer-title-font-preset, var(--mono-drawer-title-font-md, var(--mono-text-lg))));\r\n --_mono-drawer-title-weight: var(--mono-drawer-title-weight, var(--mono-font-weight-semibold));\r\n --_mono-drawer-title-tracking: var(--mono-drawer-title-tracking, -0.015em);\r\n --_mono-drawer-title-line-height: var(--mono-drawer-title-line-height, var(--mono-leading-none, 1));\r\n --_mono-drawer-title-transform: var(--mono-drawer-title-transform, none);\r\n --_mono-drawer-title-color: var(--mono-drawer-title-color, var(--_mono-drawer-text));\r\n /* the description line — `text-muted-foreground text-sm`; the font follows the\r\n drawer's per-size body step, which is `text-sm` at md */\r\n --_mono-drawer-subtitle-font: var(--mono-drawer-subtitle-font, var(--_mono-drawer-font));\r\n --_mono-drawer-subtitle-color: var(--mono-drawer-subtitle-color, var(--muted-foreground));\r\n\r\n /* ── the close ✕ — EXTENSION, styled like the dialog's ─────────────────── */\r\n --_mono-drawer-close-size: var(--mono-drawer-close-size, var(--_mono-drawer-close-size-preset, var(--mono-drawer-close-size-md, calc(var(--mono-spacing) * 7))));\r\n --_mono-drawer-close-glyph: var(--mono-drawer-close-glyph, var(--_mono-drawer-icon-size-preset, calc(var(--mono-spacing) * 4)));\r\n --_mono-drawer-close-radius: var(--mono-drawer-close-radius, var(--mono-radius-sm));\r\n --_mono-drawer-close-bg: var(--mono-drawer-close-bg, transparent);\r\n --_mono-drawer-close-color: var(--mono-drawer-close-color, var(--_mono-drawer-text));\r\n --_mono-drawer-close-opacity: var(--mono-drawer-close-opacity, 0.7);\r\n --_mono-drawer-close-hover-opacity: var(--mono-drawer-close-hover-opacity, 1);\r\n --_mono-drawer-close-hover-bg: var(--mono-drawer-close-hover-bg, transparent);\r\n\r\n /* ── the backdrop — `bg-black/10 backdrop-blur-xs` ─────────────────────── */\r\n --_mono-drawer-overlay-bg: var(--mono-drawer-overlay-bg, var(--mono-mode-backdrop));\r\n --_mono-drawer-overlay-backdrop-filter: var(--mono-drawer-overlay-backdrop-filter, blur(var(--mono-blur-xs)));\r\n\r\n --_mono-drawer-z: var(--mono-drawer-z, 9990);\r\n\r\n /* `w-3/4 max-w-sm` on the side drawers; `max-h-[80vh]` with a content height on\r\n the sheet ones. Both are PROPS here (`width` / `height`), so these are the\r\n defaults they override. */\r\n --_mono-drawer-width: var(--mono-drawer-width, min(75%, var(--mono-container-sm)));\r\n --_mono-drawer-height: var(--mono-drawer-height, auto);\r\n --_mono-drawer-max-height: var(--mono-drawer-max-height, 80vh);\r\n\r\n /* ── the slide — `duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]` ────────\r\n Open/close animation duration. One source of truth for the panel's slide AND\r\n the delayed `visibility` / `content-visibility` flips, which have to stay in\r\n lockstep with it. Set `--mono-drawer-duration: 0s` for an instant,\r\n animation-free drawer — worth doing when the drawer body holds a lot of\r\n components, since that is what the open/close frames have to re-measure. */\r\n --_mono-drawer-duration: var(--mono-drawer-duration, 500ms);\r\n --_mono-drawer-ease: var(--mono-drawer-ease, cubic-bezier(0.32, 0.72, 0, 1));\r\n /* The overlay follows the panel unless it is given its own. */\r\n --_mono-drawer-overlay-duration: var(--mono-drawer-duration, 500ms);\r\n\r\n font-family: inherit;\r\n color: var(--_mono-drawer-text);\r\n}\r\n\r\n[mono-drawer],\r\n:where([mono-drawer]) *,\r\n:where([mono-drawer]) *::before,\r\n:where([mono-drawer]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: `size` is the CONTENT scale, never the measure\r\n ========================================= */\r\n\r\n[mono-drawer][mono-size=\"xs\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-xs, var(--mono-radius-md));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-xs, calc(var(--mono-spacing) * 2));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-xs, calc(var(--mono-spacing) * 0.5));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-xs, var(--mono-spacing));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-xs, var(--mono-text-xs));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-xs, var(--mono-text-sm));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-xs, calc(var(--mono-spacing) * 5));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 3);\r\n}\r\n\r\n[mono-drawer][mono-size=\"sm\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-sm, var(--mono-radius-lg));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-sm, var(--mono-spacing));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-sm, calc(var(--mono-spacing) * 1.5));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-sm, var(--mono-text-xs));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-sm, var(--mono-text-base));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-sm, calc(var(--mono-spacing) * 6));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 3.5);\r\n}\r\n\r\n[mono-drawer][mono-size=\"lg\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-lg, var(--mono-radius-2xl));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-lg, calc(var(--mono-spacing) * 5));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-lg, calc(var(--mono-spacing) * 2));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-lg, calc(var(--mono-spacing) * 2.5));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-lg, var(--mono-text-base));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-lg, var(--mono-text-xl));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-lg, calc(var(--mono-spacing) * 8));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 4.5);\r\n}\r\n\r\n[mono-drawer][mono-size=\"xl\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-xl, var(--mono-radius-2xl));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-xl, calc(var(--mono-spacing) * 6));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-xl, calc(var(--mono-spacing) * 2.5));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-xl, calc(var(--mono-spacing) * 3));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-xl, var(--mono-text-lg));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-xl, var(--mono-text-2xl, 1.5rem));\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-xl, calc(var(--mono-spacing) * 9));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 5);\r\n}\r\n\r\n[mono-drawer][mono-size=\"xxl\"] {\r\n --_mono-drawer-radius-preset: var(--mono-drawer-radius-xxl, var(--mono-radius-4xl));\r\n --_mono-drawer-pad-preset: var(--mono-drawer-pad-xxl, calc(var(--mono-spacing) * 7));\r\n --_mono-drawer-header-gap-preset: var(--mono-drawer-header-gap-xxl, calc(var(--mono-spacing) * 3));\r\n --_mono-drawer-footer-gap-preset: var(--mono-drawer-footer-gap-xxl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-drawer-font-preset: var(--mono-drawer-body-font-xxl, var(--mono-text-lg));\r\n --_mono-drawer-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-drawer-title-font-preset: var(--mono-drawer-title-font-xxl, 1.75rem);\r\n --_mono-drawer-close-size-preset: var(--mono-drawer-close-size-xxl, calc(var(--mono-spacing) * 10));\r\n --_mono-drawer-icon-size-preset: calc(var(--mono-spacing) * 5.5);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role tints the resizer and whatever the consumer\r\n turns back on (the head bar, the close hover)\r\n ========================================= */\r\n\r\n[mono-drawer][mono-color=\"primary\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-primary); }\r\n[mono-drawer][mono-color=\"secondary\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-secondary); }\r\n[mono-drawer][mono-color=\"success\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-success); }\r\n[mono-drawer][mono-color=\"danger\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-danger); }\r\n[mono-drawer][mono-color=\"warning\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-warning); }\r\n[mono-drawer][mono-color=\"info\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-info); }\r\n[mono-drawer][mono-color=\"teal\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-teal); }\r\n[mono-drawer][mono-color=\"purple\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-purple); }\r\n[mono-drawer][mono-color=\"neutral\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-neutral); }\r\n[mono-drawer][mono-color=\"dark\"] { --_mono-drawer-accent-preset: var(--_mono-drawer-dark); }\r\n\r\n/* An explicit `color` shows on the panel itself: its edge (the one border in\r\n vega, the whole inset card in maia / mira / luma / rhea) becomes a thin line\r\n of the accent and a faint halo of it sits under the elevation. Without\r\n `color` the edge stays `--border` and there is no halo. A consumer's\r\n `--mono-drawer-border` / `--mono-drawer-glow` still win. */\r\n[mono-drawer][mono-color] {\r\n --_mono-drawer-border: var(--mono-drawer-border, var(--mono-drawer-accent-border, color-mix(in oklab, var(--_mono-drawer-accent) 35%, var(--border))));\r\n --_mono-drawer-glow: var(--mono-drawer-glow, 0 0 24px -4px color-mix(in oklab, var(--_mono-drawer-accent) 45%, transparent));\r\n}\r\n\r\n/* =========================================\r\n Overlay — `::backdrop`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .drawer::backdrop — bg-black/10 backdrop-blur-xs.\r\n A real `::backdrop` cannot be reached from a shadow sheet and cannot stack with\r\n this component's own layer manager, so it is an element. */\r\n:where([mono-drawer]) > [mono-overlay] {\r\n /* Sized in VIEWPORT units, not `inset: 0`. `inset`/`100%` resolve against the\r\n initial containing block, which a horizontally-overflowing page inflates under\r\n mobile emulation (measured: 481x1041 on a 390x844 screen), so the scrim\r\n overshot the screen. `dvh`/`dvw` also track mobile browser chrome; the plain\r\n `v*` line above each is the pre-2022 fallback. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n z-index: var(--_mono-drawer-z);\r\n background: var(--_mono-drawer-overlay-bg);\r\n opacity: 0;\r\n pointer-events: none;\r\n cursor: pointer;\r\n\r\n /* The blur is applied only while open, and its removal is DELAYED by the fade\r\n so the backdrop does not snap sharp while the scrim is still going. */\r\n backdrop-filter: none;\r\n -webkit-backdrop-filter: none;\r\n transition:\r\n opacity var(--_mono-drawer-overlay-duration) var(--_mono-drawer-ease),\r\n backdrop-filter 0s linear var(--_mono-drawer-overlay-duration),\r\n -webkit-backdrop-filter 0s linear var(--_mono-drawer-overlay-duration);\r\n}\r\n\r\n[mono-drawer][mono-open] > [mono-overlay] {\r\n opacity: 1;\r\n pointer-events: auto;\r\n backdrop-filter: var(--_mono-drawer-overlay-backdrop-filter);\r\n -webkit-backdrop-filter: var(--_mono-drawer-overlay-backdrop-filter);\r\n transition:\r\n opacity var(--_mono-drawer-overlay-duration) var(--_mono-drawer-ease),\r\n backdrop-filter 0s linear 0s,\r\n -webkit-backdrop-filter 0s linear 0s;\r\n}\r\n\r\n[mono-drawer][mono-no-overlay] > [mono-overlay] {\r\n display: none;\r\n}\r\n\r\n/* Stacked drawers: when another drawer or modal WITH an overlay is open above\r\n this one, hide this backdrop so dim layers don't compound — the topmost\r\n overlay alone dims everything beneath it. An `overlay=\"false\"` dialog above\r\n does not count, so this one keeps dimming the page. */\r\n[mono-drawer][mono-open][mono-has-drawer-above] > [mono-overlay] {\r\n opacity: 0;\r\n}\r\n\r\n/* =========================================\r\n Panel — `.drawer > *`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * — fixed z-50 flex h-auto\r\n flex-col transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]\r\n will-change-transform outline-hidden */\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * — bg-popover text-popover-foreground text-sm */\r\n:where([mono-drawer]) > [mono-panel] {\r\n position: fixed;\r\n z-index: calc(var(--_mono-drawer-z) + 1);\r\n display: flex;\r\n flex-direction: column;\r\n padding: var(--_mono-drawer-panel-pad);\r\n color: var(--_mono-drawer-text);\r\n font-size: var(--_mono-drawer-font);\r\n outline: none;\r\n pointer-events: auto;\r\n will-change: transform;\r\n\r\n /* Closed state: invisible (hides the shadow halo too) until the slide-in\r\n begins. On close the visibility flip is delayed by the transform duration so\r\n the slide-out animation plays first. */\r\n visibility: hidden;\r\n transition:\r\n transform var(--_mono-drawer-duration) var(--_mono-drawer-ease),\r\n visibility 0s linear var(--_mono-drawer-duration);\r\n}\r\n\r\n/* The panel's PAINT is a layer, not the panel's own box: maia, mira, luma and\r\n rhea float the drawer as a card inset from the viewport edge\r\n (`before:inset-2 before:rounded-4xl before:border`) over a transparent panel.\r\n At `--mono-drawer-inset: 0` the layer is exactly the panel, which is vega. */\r\n[mono-drawer] > [mono-panel]::before {\r\n content: '';\r\n position: absolute;\r\n inset: var(--_mono-drawer-inset);\r\n z-index: -1;\r\n background: var(--_mono-drawer-bg);\r\n /* `inherit` picks up the panel's per-corner radii, which is the vega card.\r\n A flavor that INSETS the layer rounds all four corners instead, so it sets\r\n the radius outright. */\r\n border-radius: var(--mono-drawer-inset-radius, inherit);\r\n border: var(--_mono-drawer-inset-border-width) solid var(--_mono-drawer-border);\r\n box-shadow: var(--_mono-drawer-glow), var(--_mono-drawer-shadow);\r\n pointer-events: none;\r\n}\r\n\r\n[mono-drawer][mono-open] > [mono-panel] {\r\n visibility: visible;\r\n transition:\r\n transform var(--_mono-drawer-duration) var(--_mono-drawer-ease),\r\n visibility 0s linear 0s;\r\n}\r\n\r\n/* =========================================\r\n Positions — `[data-side]`\r\n -----------------------------------------------------------------------------\r\n Each side fixes the two insets it spans, takes its measure from the axis it\r\n grows on, and rounds + borders the ONE edge that faces the content.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &[data-side='right'] > *\r\n — inset-y-0 right-0 w-3/4 max-w-sm translate-x-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer[data-side='right'] > * — rounded-l-xl border-l\r\n DEVIATION: `right` is this component's DEFAULT side, where upstream's is\r\n `bottom`, so the unqualified root is this one. */\r\n[mono-drawer]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel] {\r\n top: 0;\r\n right: 0;\r\n height: 100vh;\r\n height: 100dvh;\r\n width: var(--_mono-drawer-width);\r\n max-width: 100vw;\r\n max-width: 100dvw;\r\n transform: translateX(100%);\r\n border-start-start-radius: var(--_mono-drawer-radius);\r\n border-end-start-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel]::before {\r\n border-left-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel] {\r\n transform: translateX(0);\r\n}\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &[data-side='left'] > *\r\n — inset-y-0 left-0 w-3/4 max-w-sm -translate-x-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer[data-side='left'] > * — rounded-r-xl border-r */\r\n[mono-drawer][mono-position=\"left\"] > [mono-panel] {\r\n top: 0;\r\n left: 0;\r\n height: 100vh;\r\n height: 100dvh;\r\n width: var(--_mono-drawer-width);\r\n max-width: 100vw;\r\n max-width: 100dvw;\r\n transform: translateX(-100%);\r\n border-start-end-radius: var(--_mono-drawer-radius);\r\n border-end-end-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer][mono-position=\"left\"] > [mono-panel]::before {\r\n border-right-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open][mono-position=\"left\"] > [mono-panel] {\r\n transform: translateX(0);\r\n}\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &[data-side='top'] > *\r\n — inset-x-0 top-0 mb-24 max-h-[80vh] -translate-y-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer[data-side='top'] > * — rounded-b-xl border-b */\r\n[mono-drawer][mono-position=\"top\"] > [mono-panel] {\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: var(--_mono-drawer-height);\r\n max-height: var(--_mono-drawer-max-height);\r\n transform: translateY(-100%);\r\n border-end-start-radius: var(--_mono-drawer-radius);\r\n border-end-end-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer][mono-position=\"top\"] > [mono-panel]::before {\r\n border-bottom-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open][mono-position=\"top\"] > [mono-panel] {\r\n transform: translateY(0);\r\n}\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> &:not([data-side]) > *, &[data-side='bottom'] > *\r\n — inset-x-0 bottom-0 mt-24 max-h-[80vh] translate-y-full */\r\n/* basecoat@1.0.2 styles/vega.css .drawer:not([data-side]) > *, .drawer[data-side='bottom'] > *\r\n — rounded-t-xl border-t */\r\n[mono-drawer][mono-position=\"bottom\"] > [mono-panel] {\r\n bottom: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: var(--_mono-drawer-height);\r\n max-height: var(--_mono-drawer-max-height);\r\n transform: translateY(100%);\r\n border-start-start-radius: var(--_mono-drawer-radius);\r\n border-start-end-radius: var(--_mono-drawer-radius);\r\n}\r\n\r\n[mono-drawer][mono-position=\"bottom\"] > [mono-panel]::before {\r\n border-top-width: var(--_mono-drawer-border-width);\r\n}\r\n\r\n[mono-drawer][mono-open][mono-position=\"bottom\"] > [mono-panel] {\r\n transform: translateY(0);\r\n}\r\n\r\n/* =========================================\r\n Resizer — EXTENSION: a grab bar on the panel's inner edge\r\n ========================================= */\r\n\r\n:where([mono-drawer] > [mono-panel]) > [mono-resizer] {\r\n position: absolute;\r\n z-index: 2;\r\n touch-action: none;\r\n background: transparent;\r\n transition: background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-drawer] > [mono-panel] > [mono-resizer]:hover,\r\n[mono-drawer][mono-resizing] > [mono-panel] > [mono-resizer] {\r\n background: color-mix(in oklab, var(--_mono-drawer-accent) 30%, transparent);\r\n}\r\n\r\n[mono-drawer]:is(:not([mono-position]), [mono-position=\"right\"]) > [mono-panel] > [mono-resizer] {\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n width: 6px;\r\n cursor: ew-resize;\r\n}\r\n\r\n[mono-drawer][mono-position=\"left\"] > [mono-panel] > [mono-resizer] {\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 6px;\r\n cursor: ew-resize;\r\n}\r\n\r\n[mono-drawer][mono-position=\"top\"] > [mono-panel] > [mono-resizer] {\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n height: 6px;\r\n cursor: ns-resize;\r\n}\r\n\r\n[mono-drawer][mono-position=\"bottom\"] > [mono-panel] > [mono-resizer] {\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n height: 6px;\r\n cursor: ns-resize;\r\n}\r\n\r\n/* No lag while dragging the handle. */\r\n[mono-drawer][mono-resizing] > [mono-panel] {\r\n transition: none;\r\n}\r\n\r\n[mono-drawer][mono-resizing] {\r\n user-select: none;\r\n}\r\n\r\n/* =========================================\r\n Header — `> header`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > header — flex flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * > header — gap-0.5 p-4 text-start\r\n DEVIATIONS: a ROW, because the ✕ lives inside it (upstream's drawer has no\r\n close button and its header is a column of title + description); and NOT\r\n centred on the top / bottom sides for the same reason — a centred title beside\r\n a trailing ✕ reads as a mistake. */\r\n:where([mono-drawer] > [mono-panel]) > [mono-header] {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--_mono-drawer-header-gap);\r\n flex-shrink: 0;\r\n padding: var(--_mono-drawer-pad);\r\n text-align: start;\r\n border-bottom: var(--_mono-drawer-header-border-width) solid var(--_mono-drawer-header-border);\r\n background: var(--_mono-drawer-header-bg);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * > header > h2, .drawer > * > [data-title]\r\n — text-lg font-semibold leading-none tracking-tight */\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > header — flex flex-col\r\n (+ vega's gap-0.5 md:gap-1.5): the title / subtitle column beside the ✕. */\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) > [mono-heading] {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-drawer-heading-gap, var(--_mono-drawer-header-gap));\r\n}\r\n\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) [mono-title] {\r\n min-width: 0;\r\n font-size: var(--_mono-drawer-title-font);\r\n font-weight: var(--_mono-drawer-title-weight);\r\n line-height: var(--_mono-drawer-title-line-height);\r\n letter-spacing: var(--_mono-drawer-title-tracking);\r\n text-transform: var(--_mono-drawer-title-transform);\r\n color: var(--_mono-drawer-title-color);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .drawer > * > header > p, .drawer > * > [data-description]\r\n — text-muted-foreground text-sm */\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) [mono-subtitle] {\r\n min-width: 0;\r\n font-size: var(--_mono-drawer-subtitle-font);\r\n line-height: var(--mono-drawer-subtitle-line-height, var(--mono-leading-normal));\r\n color: var(--_mono-drawer-subtitle-color);\r\n}\r\n\r\n/* Empty regions. The light build omits them; the shadow build always renders\r\n them (its native `<slot>`s must exist to be scanned) and marks them\r\n [mono-empty]. The heading parts are matched as descendants because the shadow\r\n build nests them inside the `header` slot's fallback. */\r\n:where([mono-drawer] > [mono-panel]) > :is([mono-header], [mono-footer])[mono-empty],\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) > [mono-heading][mono-empty],\r\n:where([mono-drawer] > [mono-panel] > [mono-header] > [mono-heading]) :is([mono-title], [mono-subtitle])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Close — EXTENSION, styled like the dialog's\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > :is(button, form[method='dialog'] > button)\r\n — inline-flex items-center justify-center opacity-70 transition-opacity\r\n hover:opacity-100. Upstream's DRAWER has no close button at all; borrowing the\r\n dialog's keeps the two consistent. */\r\n:where([mono-drawer] > [mono-panel] > [mono-header]) [mono-close] {\r\n flex-shrink: 0;\r\n /* stays at the end even when the heading column is empty (hidden) */\r\n margin-inline-start: auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-drawer-close-size);\r\n height: var(--_mono-drawer-close-size);\r\n padding: 0;\r\n border: none;\r\n border-radius: var(--_mono-drawer-close-radius);\r\n background: var(--_mono-drawer-close-bg);\r\n color: var(--_mono-drawer-close-color);\r\n opacity: var(--_mono-drawer-close-opacity);\r\n cursor: pointer;\r\n appearance: none;\r\n transition:\r\n opacity var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-drawer] [mono-close]:hover {\r\n opacity: var(--_mono-drawer-close-hover-opacity);\r\n background: var(--_mono-drawer-close-hover-bg);\r\n }\r\n}\r\n\r\n[mono-drawer] [mono-close]:focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width)\r\n color-mix(in oklab, var(--ring) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n[mono-drawer] [mono-close] > :is(svg, span) {\r\n display: block;\r\n width: var(--_mono-drawer-close-glyph);\r\n height: var(--_mono-drawer-close-glyph);\r\n}\r\n\r\n/* =========================================\r\n Body — `> section`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > section\r\n — min-h-0 flex-1 overflow-y-auto\r\n DEVIATION: padded. Upstream leaves the section bare and pads the content it\r\n puts inside; here the body is a SLOT a consumer fills with plain text, so it\r\n brings the same `p-4` the header and footer use. `--mono-drawer-body-pad: 0`\r\n gives upstream's bare section back. */\r\n:where([mono-drawer] > [mono-panel]) > [mono-body] {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: var(--mono-drawer-body-pad, var(--_mono-drawer-pad));\r\n font-size: var(--_mono-drawer-font);\r\n line-height: var(--_mono-drawer-body-line-height);\r\n}\r\n\r\n/* =========================================\r\n Footer — `> footer`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/drawer.css .drawer >> > * > footer — mt-auto flex flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .alert-dialog > * > footer, .dialog > * > footer — gap-2\r\n basecoat@1.0.2 styles/vega.css .drawer > * > footer — gap-2 p-4\r\n The COLUMN is upstream's: a drawer footer is the mobile-sheet idiom, where the\r\n actions are full-width and stacked. `--mono-drawer-footer-direction: row`\r\n restores the pre-port right-aligned row, and ONE sets it. */\r\n:where([mono-drawer] > [mono-panel]) > [mono-footer] {\r\n display: flex;\r\n flex-direction: var(--mono-drawer-footer-direction, column);\r\n align-items: var(--mono-drawer-footer-align, stretch);\r\n justify-content: var(--mono-drawer-footer-justify, flex-start);\r\n gap: var(--_mono-drawer-footer-gap);\r\n margin-top: auto;\r\n flex-shrink: 0;\r\n padding: var(--_mono-drawer-pad);\r\n border-top: var(--_mono-drawer-footer-border-width) solid var(--_mono-drawer-footer-border);\r\n background: var(--_mono-drawer-footer-bg);\r\n}\r\n\r\n/* The light build re-appends slotted nodes into a `[data-mono-slot]` outlet.\r\n Left inline, that outlet is ONE flex child, so the footer's gap and\r\n justification apply to IT rather than to the buttons inside it — while the\r\n shadow build's `<slot>` is `display: contents` per the UA sheet and the\r\n hand-written markup has no wrapper at all. Dissolving the outlet is what\r\n makes the three agree, and it is what a consumer writing\r\n `<button slot=\"footer\">` twice expects. */\r\n:where([mono-drawer] > [mono-panel] > [mono-footer]) > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Closed\r\n ========================================= */\r\n\r\n[mono-drawer]:not([mono-open]) {\r\n pointer-events: none;\r\n}\r\n\r\n[mono-drawer]:not([mono-open]) > [mono-overlay] {\r\n opacity: 0;\r\n pointer-events: none;\r\n}\r\n\r\n/* A closed drawer is hidden with `visibility: hidden`, which skips PAINT but not\r\n LAYOUT — so the panel and everything slotted into it kept generating boxes and\r\n being measured even for a drawer the user never opened.\r\n `content-visibility: hidden` drops the closed subtree entirely.\r\n\r\n Measured alongside the modal (Chromium, ~400-node panels, 10 modal+drawer pairs):\r\n layout objects 12281 → 81, mount layout+style 94.6ms → 14.9ms and flat in the\r\n count. One open+close costs slightly more in exchange, since an opening panel is\r\n laid out from scratch; `--mono-drawer-duration: 0s` removes that if it matters.\r\n\r\n `allow-discrete` is what makes it safe to animate: opening flips the property to\r\n `visible` at 0% so the slide-in has something to composite; closing holds it\r\n `visible` until 100% so the panel slides out instead of vanishing on frame one.\r\n\r\n Gated behind @supports deliberately — `content-visibility … allow-discrete` in the\r\n `transition` SHORTHAND is a parse error without the feature, and one bad entry\r\n drops the WHOLE declaration, which would take the slide with it. Inside the guard\r\n the shorthand is known to parse, so the list is restated in full. Browsers without\r\n support keep exactly the previous behaviour.\r\n\r\n Safe for every position: the side drawers fix `top`/`bottom` and take an explicit\r\n `width`, the sheet ones fix `left`/`right` and cap their height, so size\r\n containment has no content-driven dimension to collapse while closed.\r\n\r\n Must stay ABOVE the reduced-motion block below — @supports adds no specificity, so\r\n source order is what keeps `transition: none` the winner there. */\r\n@supports (transition-behavior: allow-discrete) {\r\n :where([mono-drawer]) > [mono-panel] {\r\n content-visibility: hidden;\r\n contain-intrinsic-size: 0;\r\n transition:\r\n transform var(--_mono-drawer-duration) var(--_mono-drawer-ease),\r\n visibility 0s linear var(--_mono-drawer-duration),\r\n content-visibility var(--_mono-drawer-duration) allow-discrete;\r\n }\r\n\r\n [mono-drawer][mono-open] > [mono-panel] {\r\n content-visibility: visible;\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-drawer] > [mono-panel],\r\n [mono-drawer] > [mono-overlay] {\r\n transition: none;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Auto full-screen (`auto-fullscreen` prop)\r\n =========================================\r\n\r\n Fill the screen at a Tailwind breakpoint and below, keeping the drawer's\r\n `position` — a `right` drawer still slides in from the right, it just covers the\r\n viewport. Boundaries are `<breakpoint> - 0.02px` to match Tailwind's `max-*`\r\n variants (at exactly 640px `sm:` applies, so auto-fullscreen must not).\r\n\r\n No `!important` needed, unlike modal.css: drawer sizing arrives as the\r\n `--mono-drawer-*` custom properties on the ROOT, while the panel's\r\n `width`/`height` come from the position rules above — (0,2,1) selectors that\r\n these, at (0,2,1) and declared AFTER, beat on order. Keep this section last.\r\n*/\r\n\r\n@media (max-width: 639.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"sm\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"sm\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n /* Load-bearing, not cosmetic: the rules above outrank the `--mono-drawer-width`\r\n the resizer writes, so a drag here moves nothing visible YET still records a\r\n width — and the drawer would snap to it the moment the viewport grew back past\r\n the breakpoint. Hiding the handle removes the pointer target so no such drag\r\n can begin (`_onResizeStart` also guards, as belt-and-braces). */\r\n [mono-drawer][mono-auto-fullscreen=\"sm\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"md\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"md\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"md\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1023.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"lg\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"lg\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"lg\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1279.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"xl\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"xl\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"xl\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-width: 1535.98px) {\r\n [mono-drawer][mono-auto-fullscreen=\"2xl\"] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: none;\r\n max-height: none;\r\n border-radius: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"2xl\"] > [mono-panel]::before {\r\n border-width: 0;\r\n inset: 0;\r\n }\r\n\r\n [mono-drawer][mono-auto-fullscreen=\"2xl\"] > [mono-panel] > [mono-resizer] {\r\n display: none;\r\n }\r\n}\r\n";
755
+
751
756
  //#endregion
752
757
  //#region src/components/drawer/mono-drawer.ts
753
- var MonoDrawer = class MonoDrawer extends MonoDrawerCore(LitElement) {
758
+ let MonoDrawer = class MonoDrawer extends MonoDrawerCore(LitElement) {
754
759
  constructor(..._args) {
755
760
  super(..._args);
756
761
  this._portal = null;
@@ -762,7 +767,7 @@ var MonoDrawer = class MonoDrawer extends MonoDrawerCore(LitElement) {
762
767
  this._slotFooter = [];
763
768
  }
764
769
  static {
765
- this.styles = [unsafeCSS(drawer_default)];
770
+ this.styles = [unsafeCSS(drawer_css_raw_default)];
766
771
  }
767
772
  createRenderRoot() {
768
773
  if (this._portal) return this._portal;
@@ -875,7 +880,7 @@ var MonoDrawer = class MonoDrawer extends MonoDrawerCore(LitElement) {
875
880
  this._hasFooterSlotState = this._slotFooter.length > 0;
876
881
  this._hasBodySlotState = unslottedSeen && this._slotBody.length > 0;
877
882
  for (const node of capturedSlotNodes) if (node.parentNode === this) this.removeChild(node);
878
- guardHostTextContent(this, new Map([
883
+ guardHostTextContent(this, /* @__PURE__ */ new Map([
879
884
  ["header", this._slotHeader],
880
885
  ["title", this._slotTitle],
881
886
  ["subtitle", this._slotSubtitle],
@@ -897,5 +902,6 @@ var MonoDrawer = class MonoDrawer extends MonoDrawerCore(LitElement) {
897
902
  }
898
903
  };
899
904
  MonoDrawer = __decorate([customElement("mono-drawer")], MonoDrawer);
905
+
900
906
  //#endregion
901
- export { MonoDrawer };
907
+ export { MonoDrawer };