@mono-lit/helper 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/LICENSE.md +55 -55
  2. package/README.md +35 -35
  3. package/dist/{breakpoints-CAbhDUht.js → breakpoints-DllybT82.js} +7 -5
  4. package/dist/checkbox.css_raw-AYtSbUtY.js +5 -0
  5. package/dist/{chip-limits-BMoO31JM.js → chip-limits-CFABydIL.js} +5 -3
  6. package/dist/{chip-strip-Cw3gyz0q.js → chip-strip-bNfLn52Z.js} +5 -3
  7. package/dist/chip.css_raw-ChfRSHLO.js +5 -0
  8. package/dist/{color-DHYrfXsX.js → color-CEYYtRX-.js} +8 -7
  9. package/dist/{css-class-BRKRzHx-.js → css-class-B6Tc_MAx.js} +2 -1
  10. package/dist/{css-size-DhHSVZJK.js → css-size-DWAPgQdT.js} +2 -1
  11. package/dist/{data-source-controller-C50Qyfzh.js → data-source-controller-Cf_sMxEh.js} +72 -7
  12. package/dist/data-source-controller-Dx6IQ2CN.js +243 -0
  13. package/dist/{data-source-options-BTpfrOZ_.js → data-source-options-Bk-UoaZV.js} +15 -10
  14. package/dist/{data-source-options-CQSTZHPE.js → data-source-options-QjuI73g8.js} +17 -12
  15. package/dist/{data-source-read-CUX-lgrQ.js → data-source-read-Cuqw3LcP.js} +7 -4
  16. package/dist/{data-source-read-DL88aH8t.js → data-source-read-FxqzQkk2.js} +8 -5
  17. package/dist/{decorate-DEXtNagw.js → decorate-DbYFpi8R.js} +7 -5
  18. package/dist/{element-props-CLB6yvbm.js → element-props-xvw0EB7H.js} +4 -3
  19. package/dist/{esm-Ptok4SQZ.js → esm-D0We7ndD.js} +48 -44
  20. package/dist/{excel-DopRbEMK.js → excel-BXzr3uI1.js} +192 -16
  21. package/dist/{excel-CY6zGkcx.js → excel-DtRpxmxs.js} +27 -16
  22. package/dist/{export-BvlBx_GZ.js → export-B91P6J1y.js} +104 -18
  23. package/dist/export.js +103 -18
  24. package/dist/{field-icons-BoOG6KrL.js → field-icons-FmyBWa0g.js} +38 -1
  25. package/dist/{field-path-C92eGLg3.js → field-path-BabiMrrA.js} +3 -2
  26. package/dist/{filter-builder-Bke3qOgJ.js → filter-builder-B6Y2mmbM.js} +7 -4
  27. package/dist/{filter-builder-CE4zE0V5.js → filter-builder-C0T3pMx2.js} +7 -4
  28. package/dist/{filter-eval-DIfU2EAn.js → filter-eval-ChDSaAUH.js} +7 -5
  29. package/dist/{filter-odata-C1vSGZaY.js → filter-odata-Bi27XUpQ.js} +9 -6
  30. package/dist/{form-control-core-B8d7k6vk.js → form-control-core-CIdMLXMo.js} +9 -6
  31. package/dist/{form-control-core-eeRr0zLU.js → form-control-core-CRZPZ1ru.js} +9 -6
  32. package/dist/hydration-flush-DHrl4_KK.js +1014 -0
  33. package/dist/{icon-CJkTlmTb.js → icon-BM9N-jOt.js} +5 -2
  34. package/dist/{icon-dVhYJUIH.js → icon-ClxnYhBG.js} +4 -2
  35. package/dist/{import-BgJdkwBI.js → import-Dc4eXC02.js} +22 -16
  36. package/dist/import.js +22 -16
  37. package/dist/index.js +17 -16
  38. package/dist/{index.node-DjvYOL-J.js → index.node-dvrNviMx.js} +26 -19
  39. package/dist/index.node.js +17 -16
  40. package/dist/input.css_raw-CGESifay.js +5 -0
  41. package/dist/{layout-var-CZnzMC0s.js → layout-var-BSBKY49k.js} +3 -2
  42. package/dist/{light-slots-BVJwyg_2.js → light-slots-4ZCjOcBg.js} +6 -4
  43. package/dist/{light-slots-DW1WgfgT.js → light-slots-DdDdZ6zs.js} +6 -4
  44. package/dist/{markdown-DfqrfOJN.js → markdown-uGlE_OfJ.js} +414 -369
  45. package/dist/mono-button-CeDB9khW.js +878 -0
  46. package/dist/mono-button.shadow-D9NdMsmH.js +790 -0
  47. package/dist/{mono-data-chart-ChU4Ii3p.js → mono-data-chart-ChkelNT7.js} +66 -22
  48. package/dist/{mono-data-dropdown-BAUl58kW.js → mono-data-dropdown-DxpUUk2y.js} +5 -3
  49. package/dist/{mono-data-grid-Db80FzdZ.js → mono-data-grid-8jmeIXUU.js} +56 -265
  50. package/dist/{mono-data-grid-CLBK8clE.js → mono-data-grid-BHlo1IgR.js} +56 -265
  51. package/dist/{mono-element-B0kP_96P.js → mono-element-C7vCschg.js} +7 -4
  52. package/dist/{mono-event-Bi1qP9uN.js → mono-event-BPku9HpS.js} +4 -3
  53. package/dist/{mono-form-controller-5PfsU4qa.js → mono-form-controller-IYn0MuUQ.js} +7 -4
  54. package/dist/{mono-modal-controller-BMO3n3rP.js → mono-modal-controller-ClObbHUs.js} +9 -7
  55. package/dist/{mono-ui-CPV7rrdo.js → mono-ui-BwUc0L6B.js} +22 -20
  56. package/dist/{data-search-Bwo5bg8K.js → normalize-error-D93O4q8g.js} +314 -10
  57. package/dist/{notifier-CE4yxMUQ.js → notifier-BIrqUzRh.js} +11 -1
  58. package/dist/nuxt.js +20 -15
  59. package/dist/{popup-portal-BziRX1yG.js → popup-portal-HWhkd7oy.js} +6 -4
  60. package/dist/{popup-stack-CEEMib__.js → popup-stack-De05Y-mJ.js} +13 -10
  61. package/dist/{rate-limit-BBa2PO79.js → rate-limit-e9Jlpl5l.js} +12 -9
  62. package/dist/{reactive-BHsqVjRh.js → reactive-DFCdZbH9.js} +318 -12
  63. package/dist/{reactive-D3EERqgO.js → reactive-Dtd-esHO.js} +2 -1
  64. package/dist/search.js +5 -4
  65. package/dist/src/components/accordion/accordion-core.d.ts +42 -40
  66. package/dist/src/components/accordion/accordion-types.d.ts +50 -48
  67. package/dist/src/components/accordion/index.d.ts +3 -2
  68. package/dist/src/components/accordion/index.shadow.d.ts +4 -4
  69. package/dist/src/components/accordion/mono-accordion.d.ts +44 -40
  70. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +42 -38
  71. package/dist/src/components/alert/alert-core.d.ts +30 -28
  72. package/dist/src/components/alert/alert-types.d.ts +36 -34
  73. package/dist/src/components/alert/index.d.ts +3 -2
  74. package/dist/src/components/alert/index.shadow.d.ts +4 -4
  75. package/dist/src/components/alert/mono-alert.d.ts +30 -26
  76. package/dist/src/components/alert/mono-alert.shadow.d.ts +24 -20
  77. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +42 -40
  78. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +31 -29
  79. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +18 -16
  80. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +89 -87
  81. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +18 -15
  82. package/dist/src/components/breadcrumb/index.d.ts +6 -5
  83. package/dist/src/components/breadcrumb/index.shadow.d.ts +7 -7
  84. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +18 -14
  85. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +33 -29
  86. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +24 -20
  87. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +55 -51
  88. package/dist/src/components/button/button-core.d.ts +73 -71
  89. package/dist/src/components/button/button-dropdown-core.d.ts +55 -53
  90. package/dist/src/components/button/button-dropdown-types.d.ts +98 -96
  91. package/dist/src/components/button/button-types.d.ts +157 -155
  92. package/dist/src/components/button/button-utils.d.ts +7 -5
  93. package/dist/src/components/button/index.button-dropdown.d.ts +5 -3
  94. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +5 -3
  95. package/dist/src/components/button/index.d.ts +4 -7
  96. package/dist/src/components/button/index.shadow.d.ts +5 -4
  97. package/dist/src/components/button/mono-button-dropdown.d.ts +24 -19
  98. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +34 -29
  99. package/dist/src/components/button/mono-button.d.ts +105 -101
  100. package/dist/src/components/button/mono-button.shadow.d.ts +42 -38
  101. package/dist/src/components/card/card-core.d.ts +59 -56
  102. package/dist/src/components/card/card-types.d.ts +91 -89
  103. package/dist/src/components/card/card-utils.d.ts +11 -9
  104. package/dist/src/components/card/index.d.ts +4 -3
  105. package/dist/src/components/card/index.shadow.d.ts +5 -5
  106. package/dist/src/components/card/mono-card.d.ts +36 -32
  107. package/dist/src/components/card/mono-card.shadow.d.ts +32 -28
  108. package/dist/src/components/chart/chart-core.d.ts +30 -28
  109. package/dist/src/components/chart/chart-odata.d.ts +17 -16
  110. package/dist/src/components/chart/chart-types.d.ts +269 -248
  111. package/dist/src/components/chart/index.d.ts +7 -7
  112. package/dist/src/components/chart/index.shadow.d.ts +7 -6
  113. package/dist/src/components/chart/mono-chart-presets.d.ts +33 -29
  114. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +33 -29
  115. package/dist/src/components/chart/mono-chart.d.ts +13 -9
  116. package/dist/src/components/chart/mono-chart.shadow.d.ts +13 -9
  117. package/dist/src/components/chart/mono-data-chart.d.ts +4 -26
  118. package/dist/src/components/checkbox/checkbox-core.d.ts +39 -37
  119. package/dist/src/components/checkbox/checkbox-types.d.ts +59 -57
  120. package/dist/src/components/checkbox/checkbox-utils.d.ts +13 -11
  121. package/dist/src/components/checkbox/index.d.ts +4 -3
  122. package/dist/src/components/checkbox/index.shadow.d.ts +5 -4
  123. package/dist/src/components/checkbox/mono-checkbox.d.ts +21 -17
  124. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +31 -27
  125. package/dist/src/components/chip/chip-core.d.ts +42 -40
  126. package/dist/src/components/chip/chip-types.d.ts +104 -102
  127. package/dist/src/components/chip/chip-utils.d.ts +20 -18
  128. package/dist/src/components/chip/index.d.ts +5 -7
  129. package/dist/src/components/chip/index.shadow.d.ts +6 -5
  130. package/dist/src/components/chip/mono-chip.d.ts +31 -27
  131. package/dist/src/components/chip/mono-chip.shadow.d.ts +19 -15
  132. package/dist/src/components/chip/mono-status-dot.d.ts +19 -17
  133. package/dist/src/components/date/date-core.d.ts +64 -62
  134. package/dist/src/components/date/date-types.d.ts +143 -141
  135. package/dist/src/components/date/index.d.ts +3 -2
  136. package/dist/src/components/date/index.shadow.d.ts +4 -3
  137. package/dist/src/components/date/mono-date.d.ts +12 -8
  138. package/dist/src/components/date/mono-date.shadow.d.ts +21 -17
  139. package/dist/src/components/drawer/drawer-core.d.ts +75 -73
  140. package/dist/src/components/drawer/drawer-types.d.ts +109 -107
  141. package/dist/src/components/drawer/index.d.ts +3 -2
  142. package/dist/src/components/drawer/index.shadow.d.ts +4 -3
  143. package/dist/src/components/drawer/mono-drawer.d.ts +32 -28
  144. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +34 -31
  145. package/dist/src/components/dropdown/dropdown-core.d.ts +31 -29
  146. package/dist/src/components/dropdown/dropdown-types.d.ts +62 -60
  147. package/dist/src/components/dropdown/index.d.ts +3 -2
  148. package/dist/src/components/dropdown/index.shadow.d.ts +4 -3
  149. package/dist/src/components/dropdown/mono-dropdown.d.ts +23 -19
  150. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +19 -15
  151. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +53 -51
  152. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +218 -216
  153. package/dist/src/components/dropdown-table/index.d.ts +5 -4
  154. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -5
  155. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +119 -129
  156. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +20 -16
  157. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +15 -11
  158. package/dist/src/components/file-upload/file-upload-core.d.ts +44 -42
  159. package/dist/src/components/file-upload/file-upload-types.d.ts +123 -121
  160. package/dist/src/components/file-upload/file-upload-utils.d.ts +7 -4
  161. package/dist/src/components/file-upload/index.d.ts +4 -3
  162. package/dist/src/components/file-upload/index.shadow.d.ts +5 -4
  163. package/dist/src/components/file-upload/mono-file-upload.d.ts +20 -16
  164. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +34 -30
  165. package/dist/src/components/filter/filter-builder-core.d.ts +17 -15
  166. package/dist/src/components/filter/filter-builder.d.ts +4 -22
  167. package/dist/src/components/filter/filter-odata.d.ts +3 -1
  168. package/dist/src/components/filter/filter-operators.d.ts +3 -1
  169. package/dist/src/components/filter/filter-types.d.ts +172 -170
  170. package/dist/src/components/filter/index.d.ts +6 -5
  171. package/dist/src/components/filter/index.shadow.d.ts +7 -6
  172. package/dist/src/components/filter/mono-filter-builder.d.ts +13 -10
  173. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +10 -7
  174. package/dist/src/components/form/form-control-core.d.ts +14 -12
  175. package/dist/src/components/form/form-rules.d.ts +7 -5
  176. package/dist/src/components/form/form-types.d.ts +214 -214
  177. package/dist/src/components/form/index.d.ts +5 -5
  178. package/dist/src/components/form/mono-form-controller.d.ts +4 -15
  179. package/dist/src/components/input/index.d.ts +5 -5
  180. package/dist/src/components/input/index.shadow.d.ts +6 -7
  181. package/dist/src/components/input/input-core.d.ts +73 -71
  182. package/dist/src/components/input/input-format.d.ts +22 -20
  183. package/dist/src/components/input/input-types.d.ts +167 -165
  184. package/dist/src/components/input/input-utils.d.ts +7 -5
  185. package/dist/src/components/input/mono-input.d.ts +35 -31
  186. package/dist/src/components/input/mono-input.shadow.d.ts +17 -13
  187. package/dist/src/components/menu/index.d.ts +7 -5
  188. package/dist/src/components/menu/index.shadow.d.ts +7 -6
  189. package/dist/src/components/menu/menu-core.d.ts +47 -45
  190. package/dist/src/components/menu/menu-render.d.ts +42 -40
  191. package/dist/src/components/menu/menu-types.d.ts +132 -130
  192. package/dist/src/components/menu/menu-utils.d.ts +16 -13
  193. package/dist/src/components/menu/mono-menu-list.d.ts +116 -114
  194. package/dist/src/components/menu/mono-menu.d.ts +30 -26
  195. package/dist/src/components/menu/mono-menu.shadow.d.ts +22 -18
  196. package/dist/src/components/modal/index.d.ts +5 -3
  197. package/dist/src/components/modal/index.shadow.d.ts +6 -4
  198. package/dist/src/components/modal/modal-core.d.ts +81 -79
  199. package/dist/src/components/modal/modal-types.d.ts +223 -221
  200. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -3
  201. package/dist/src/components/modal/mono-modal.d.ts +32 -28
  202. package/dist/src/components/modal/mono-modal.shadow.d.ts +38 -35
  203. package/dist/src/components/nav/index.d.ts +4 -3
  204. package/dist/src/components/nav/index.shadow.d.ts +5 -5
  205. package/dist/src/components/nav/mono-nav.d.ts +28 -24
  206. package/dist/src/components/nav/mono-nav.shadow.d.ts +10 -7
  207. package/dist/src/components/nav/nav-core.d.ts +16 -14
  208. package/dist/src/components/nav/nav-types.d.ts +23 -22
  209. package/dist/src/components/nav/nav-utils.d.ts +10 -8
  210. package/dist/src/components/radio/index.d.ts +4 -3
  211. package/dist/src/components/radio/index.shadow.d.ts +5 -4
  212. package/dist/src/components/radio/mono-radio.d.ts +19 -15
  213. package/dist/src/components/radio/mono-radio.shadow.d.ts +22 -18
  214. package/dist/src/components/radio/radio-core.d.ts +31 -29
  215. package/dist/src/components/radio/radio-types.d.ts +48 -46
  216. package/dist/src/components/radio/radio-utils.d.ts +5 -3
  217. package/dist/src/components/rich-text-editor/index.d.ts +5 -4
  218. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -5
  219. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +19 -15
  220. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +22 -19
  221. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +61 -59
  222. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +2 -0
  223. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +5 -3
  224. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +179 -177
  225. package/dist/src/components/select/index.d.ts +4 -3
  226. package/dist/src/components/select/index.shadow.d.ts +5 -4
  227. package/dist/src/components/select/mono-select.d.ts +58 -54
  228. package/dist/src/components/select/mono-select.shadow.d.ts +30 -27
  229. package/dist/src/components/select/select-core.d.ts +82 -80
  230. package/dist/src/components/select/select-types.d.ts +235 -208
  231. package/dist/src/components/select/select-utils.d.ts +7 -5
  232. package/dist/src/components/sidebar/index.d.ts +4 -3
  233. package/dist/src/components/sidebar/index.shadow.d.ts +5 -5
  234. package/dist/src/components/sidebar/mono-sidebar.d.ts +22 -18
  235. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +11 -8
  236. package/dist/src/components/sidebar/sidebar-core.d.ts +33 -31
  237. package/dist/src/components/sidebar/sidebar-types.d.ts +77 -75
  238. package/dist/src/components/sidebar/sidebar-utils.d.ts +28 -26
  239. package/dist/src/components/switch/index.d.ts +4 -3
  240. package/dist/src/components/switch/index.shadow.d.ts +5 -4
  241. package/dist/src/components/switch/mono-switch.d.ts +19 -15
  242. package/dist/src/components/switch/mono-switch.shadow.d.ts +23 -19
  243. package/dist/src/components/switch/switch-core.d.ts +35 -33
  244. package/dist/src/components/switch/switch-types.d.ts +55 -53
  245. package/dist/src/components/switch/switch-utils.d.ts +5 -3
  246. package/dist/src/components/table/array-source.d.ts +31 -29
  247. package/dist/src/components/table/date-filter-tree.d.ts +25 -23
  248. package/dist/src/components/table/grouping.d.ts +22 -20
  249. package/dist/src/components/table/index.d.ts +28 -32
  250. package/dist/src/components/table/index.shadow.d.ts +34 -46
  251. package/dist/src/components/table/mono-data-grid.d.ts +1447 -1456
  252. package/dist/src/components/table/mono-table-checkbox-core.d.ts +34 -32
  253. package/dist/src/components/table/mono-table-checkbox.d.ts +12 -8
  254. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +16 -12
  255. package/dist/src/components/table/mono-table-detail-core.d.ts +29 -27
  256. package/dist/src/components/table/mono-table-detail.d.ts +12 -8
  257. package/dist/src/components/table/mono-table-detail.shadow.d.ts +13 -9
  258. package/dist/src/components/table/mono-table-empty-core.d.ts +24 -22
  259. package/dist/src/components/table/mono-table-empty.d.ts +17 -13
  260. package/dist/src/components/table/mono-table-empty.shadow.d.ts +22 -18
  261. package/dist/src/components/table/mono-table-error-core.d.ts +24 -22
  262. package/dist/src/components/table/mono-table-error.d.ts +12 -8
  263. package/dist/src/components/table/mono-table-error.shadow.d.ts +15 -11
  264. package/dist/src/components/table/mono-table-info-core.d.ts +6 -4
  265. package/dist/src/components/table/mono-table-info.d.ts +12 -8
  266. package/dist/src/components/table/mono-table-info.shadow.d.ts +9 -5
  267. package/dist/src/components/table/mono-table-loading-core.d.ts +7 -5
  268. package/dist/src/components/table/mono-table-loading.d.ts +12 -8
  269. package/dist/src/components/table/mono-table-loading.shadow.d.ts +9 -5
  270. package/dist/src/components/table/mono-table-page-size-core.d.ts +7 -5
  271. package/dist/src/components/table/mono-table-page-size.d.ts +12 -8
  272. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +9 -5
  273. package/dist/src/components/table/mono-table-paging-core.d.ts +16 -14
  274. package/dist/src/components/table/mono-table-paging-group-core.d.ts +10 -8
  275. package/dist/src/components/table/mono-table-paging-group.d.ts +12 -8
  276. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +9 -5
  277. package/dist/src/components/table/mono-table-paging.d.ts +12 -8
  278. package/dist/src/components/table/mono-table-paging.shadow.d.ts +9 -5
  279. package/dist/src/components/table/mono-table-search-core.d.ts +51 -49
  280. package/dist/src/components/table/mono-table-search.d.ts +25 -22
  281. package/dist/src/components/table/mono-table-search.shadow.d.ts +12 -9
  282. package/dist/src/components/table/mono-table-sort-core.d.ts +16 -14
  283. package/dist/src/components/table/mono-table-sort.d.ts +21 -18
  284. package/dist/src/components/table/mono-table-sort.shadow.d.ts +11 -8
  285. package/dist/src/components/table/mono-table-summary-core.d.ts +9 -7
  286. package/dist/src/components/table/mono-table-summary.d.ts +12 -8
  287. package/dist/src/components/table/mono-table-summary.shadow.d.ts +9 -5
  288. package/dist/src/components/table/mono-table-th-core.d.ts +23 -21
  289. package/dist/src/components/table/mono-table-th.d.ts +21 -18
  290. package/dist/src/components/table/mono-table-th.shadow.d.ts +11 -8
  291. package/dist/src/components/table/store-group-source.d.ts +14 -12
  292. package/dist/src/components/table/table-controller-core.d.ts +17 -15
  293. package/dist/src/components/table/table-filter-icons.d.ts +3 -1
  294. package/dist/src/components/table/table-menu-core.d.ts +40 -38
  295. package/dist/src/components/table/table-overlay.d.ts +43 -41
  296. package/dist/src/components/table/table-sort-icons.d.ts +4 -2
  297. package/dist/src/components/table/table-sort-utils.d.ts +3 -1
  298. package/dist/src/components/table/table-types.d.ts +391 -400
  299. package/dist/src/components/tabs/index.d.ts +3 -2
  300. package/dist/src/components/tabs/index.shadow.d.ts +4 -3
  301. package/dist/src/components/tabs/mono-tabs.d.ts +21 -17
  302. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +21 -17
  303. package/dist/src/components/tabs/tabs-core.d.ts +36 -34
  304. package/dist/src/components/tabs/tabs-types.d.ts +48 -46
  305. package/dist/src/components/tag-input/index.d.ts +5 -3
  306. package/dist/src/components/tag-input/index.shadow.d.ts +6 -4
  307. package/dist/src/components/tag-input/mono-tag-input.d.ts +56 -52
  308. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +41 -38
  309. package/dist/src/components/tag-input/tag-input-core.d.ts +95 -93
  310. package/dist/src/components/tag-input/tag-input-types.d.ts +350 -327
  311. package/dist/src/components/tag-input/tag-input-utils.d.ts +7 -5
  312. package/dist/src/components/textarea/index.d.ts +4 -3
  313. package/dist/src/components/textarea/index.shadow.d.ts +5 -4
  314. package/dist/src/components/textarea/mono-textarea.d.ts +19 -15
  315. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +19 -16
  316. package/dist/src/components/textarea/textarea-core.d.ts +48 -46
  317. package/dist/src/components/textarea/textarea-types.d.ts +120 -118
  318. package/dist/src/components/textarea/textarea-utils.d.ts +7 -5
  319. package/dist/src/components/tooltip/control-tooltip.d.ts +3 -1
  320. package/dist/src/components/tooltip/index.d.ts +6 -5
  321. package/dist/src/components/tooltip/tooltip-config.d.ts +17 -15
  322. package/dist/src/components/tooltip/tooltip-declarative.d.ts +3 -1
  323. package/dist/src/components/tooltip/tooltip-loader.d.ts +2 -0
  324. package/dist/src/components/tooltip/tooltip-types.d.ts +74 -72
  325. package/dist/src/composables/breakpoints.d.ts +9 -7
  326. package/dist/src/composables/chip-limits.d.ts +12 -10
  327. package/dist/src/composables/chip-strip.d.ts +91 -89
  328. package/dist/src/composables/color.d.ts +6 -4
  329. package/dist/src/composables/css-class.d.ts +4 -2
  330. package/dist/src/composables/css-size.d.ts +9 -7
  331. package/dist/src/composables/data-source-controller.d.ts +90 -59
  332. package/dist/src/composables/element-props.d.ts +3 -3
  333. package/dist/src/composables/field-icons.d.ts +11 -1
  334. package/dist/src/composables/hybird-prop.d.ts +10 -8
  335. package/dist/src/composables/hydration-flush.d.ts +16 -14
  336. package/dist/src/composables/icon.d.ts +3 -1
  337. package/dist/src/composables/layout-var.d.ts +2 -0
  338. package/dist/src/composables/light-slots.d.ts +34 -32
  339. package/dist/src/composables/mdi-glyphs.d.ts +2 -0
  340. package/dist/src/composables/mono-element.d.ts +3 -1
  341. package/dist/src/composables/mono-event.d.ts +15 -13
  342. package/dist/src/composables/mono-pending.d.ts +4 -2
  343. package/dist/src/composables/mono-skeleton.d.ts +100 -98
  344. package/dist/src/composables/mono-ui.d.ts +17 -18
  345. package/dist/src/composables/notifier.d.ts +20 -18
  346. package/dist/src/composables/popup-portal.d.ts +177 -175
  347. package/dist/src/composables/popup-stack.d.ts +36 -34
  348. package/dist/src/composables/rate-limit.d.ts +33 -31
  349. package/dist/src/composables/reactive.d.ts +3 -1
  350. package/dist/src/composables/shadow-css.d.ts +17 -15
  351. package/dist/src/composables/visibility.d.ts +6 -4
  352. package/dist/src/data/theme/index.d.ts +9 -7
  353. package/dist/src/data/theme/presets.d.ts +64 -62
  354. package/dist/src/entries/index.d.ts +36 -1
  355. package/dist/src/entries/index.node.d.ts +34 -41
  356. package/dist/src/entries/search.d.ts +2 -2
  357. package/dist/src/export/detail.d.ts +14 -12
  358. package/dist/src/export/download.d.ts +2 -0
  359. package/dist/src/export/excel/index.d.ts +13 -11
  360. package/dist/src/export/excel/nodes.d.ts +95 -93
  361. package/dist/src/export/expression.d.ts +3 -1
  362. package/dist/src/export/helpers.d.ts +3 -1
  363. package/dist/src/export/index.d.ts +6 -4
  364. package/dist/src/export/markdown.d.ts +19 -17
  365. package/dist/src/export/resolve-data.d.ts +3 -1
  366. package/dist/src/export/sentinel.d.ts +32 -30
  367. package/dist/src/export/sheet-name.d.ts +7 -5
  368. package/dist/src/export/styles.d.ts +13 -11
  369. package/dist/src/export/template.d.ts +3 -1
  370. package/dist/src/export/types.d.ts +224 -222
  371. package/dist/src/import/coerce.d.ts +5 -3
  372. package/dist/src/import/index.d.ts +12 -10
  373. package/dist/src/import/match.d.ts +20 -18
  374. package/dist/src/import/parse.d.ts +5 -3
  375. package/dist/src/import/types.d.ts +125 -123
  376. package/dist/src/nuxt/index.d.ts +92 -90
  377. package/dist/src/search/data-search.d.ts +92 -90
  378. package/dist/src/search/field-path.d.ts +10 -8
  379. package/dist/src/search/filter-eval.d.ts +2 -0
  380. package/dist/src/search/index.d.ts +6 -22
  381. package/dist/src/search/odata-search.d.ts +9 -7
  382. package/dist/src/search/search-expr.d.ts +16 -14
  383. package/dist/src/utils/data-source-apply.d.ts +11 -9
  384. package/dist/src/utils/data-source-options.d.ts +37 -35
  385. package/dist/src/utils/data-source-read.d.ts +40 -54
  386. package/dist/src/utils/data-source-summary.d.ts +8 -7
  387. package/dist/src/utils/normalize-error.d.ts +41 -9
  388. package/dist/src/vite/index.d.ts +34 -34
  389. package/dist/src/vite/mono-client-only.d.ts +34 -32
  390. package/dist/src/vite/mono-ssr-stub.d.ts +8 -6
  391. package/dist/src/vite/shadow-manifest.d.ts +2 -0
  392. package/dist/{styles-BIJ31TM4.js → styles-D-ergrfR.js} +417 -207
  393. package/dist/{tooltip-CysgRgBi.js → tooltip-FCMRUSLi.js} +94 -52
  394. package/dist/tooltip.js +3 -2
  395. package/dist/ui/accordion.js +16 -12
  396. package/dist/ui/alert.js +21 -14
  397. package/dist/ui/breadcrumb.js +28 -18
  398. package/dist/ui/button-dropdown.js +18 -14
  399. package/dist/ui/button.js +4 -2
  400. package/dist/ui/card.js +31 -13
  401. package/dist/ui/chart.js +107 -25
  402. package/dist/ui/checkbox.js +17 -12
  403. package/dist/ui/chip.js +19 -12
  404. package/dist/ui/date.js +19 -15
  405. package/dist/ui/drawer.js +26 -20
  406. package/dist/ui/dropdown-table.js +39 -30
  407. package/dist/ui/dropdown.js +19 -15
  408. package/dist/ui/file-upload.js +22 -17
  409. package/dist/ui/filter.js +18 -14
  410. package/dist/ui/form.js +4 -3
  411. package/dist/ui/index.css +1233 -2194
  412. package/dist/ui/input.js +24 -17
  413. package/dist/ui/menu.js +32 -20
  414. package/dist/ui/modal.js +34 -26
  415. package/dist/ui/nav.js +21 -15
  416. package/dist/ui/radio.js +17 -12
  417. package/dist/ui/rich-text-editor.js +34 -28
  418. package/dist/ui/select.js +181 -41
  419. package/dist/ui/shadow/accordion.js +13 -9
  420. package/dist/ui/shadow/alert.js +13 -9
  421. package/dist/ui/shadow/breadcrumb.js +23 -14
  422. package/dist/ui/shadow/button-dropdown.js +17 -13
  423. package/dist/ui/shadow/button.js +4 -2
  424. package/dist/ui/shadow/card.js +30 -11
  425. package/dist/ui/shadow/chart.js +163 -40
  426. package/dist/ui/shadow/checkbox.js +13 -9
  427. package/dist/ui/shadow/chip.js +16 -10
  428. package/dist/ui/shadow/date.js +19 -12
  429. package/dist/ui/shadow/drawer.js +22 -16
  430. package/dist/ui/shadow/dropdown-table.js +39 -28
  431. package/dist/ui/shadow/dropdown.js +15 -11
  432. package/dist/ui/shadow/file-upload.js +26 -19
  433. package/dist/ui/shadow/filter.js +17 -13
  434. package/dist/ui/shadow/input.js +20 -14
  435. package/dist/ui/shadow/menu.js +24 -14
  436. package/dist/ui/shadow/modal.js +36 -27
  437. package/dist/ui/shadow/nav.js +18 -12
  438. package/dist/ui/shadow/radio.js +15 -10
  439. package/dist/ui/shadow/rich-text-editor.js +32 -26
  440. package/dist/ui/shadow/select.js +179 -39
  441. package/dist/ui/shadow/sidebar.js +23 -16
  442. package/dist/ui/shadow/switch.js +15 -10
  443. package/dist/ui/shadow/table.js +123 -84
  444. package/dist/ui/shadow/tabs.js +12 -8
  445. package/dist/ui/shadow/tag-input.js +186 -52
  446. package/dist/ui/shadow/textarea.js +17 -12
  447. package/dist/ui/sidebar.js +27 -20
  448. package/dist/ui/switch.js +17 -12
  449. package/dist/ui/table.js +129 -87
  450. package/dist/ui/tabs.js +15 -11
  451. package/dist/ui/tag-input.js +182 -48
  452. package/dist/ui/textarea.js +19 -14
  453. package/dist/{vite-C5iUK7so.js → vite-DcyRlTTf.js} +17 -9
  454. package/dist/vite.js +3 -2
  455. package/package.json +15 -14
  456. package/dist/checkbox-Cqpie9Ap.js +0 -4
  457. package/dist/chip-DBUUa2eB.js +0 -4
  458. package/dist/data/theme/presets.json.d.ts +0 -140
  459. package/dist/export.d.ts +0 -1
  460. package/dist/hydration-flush-RB5Tz5nl.js +0 -1001
  461. package/dist/import.d.ts +0 -1
  462. package/dist/index.d.ts +0 -1
  463. package/dist/index.node.d.ts +0 -1
  464. package/dist/input-zGOULADt.js +0 -4
  465. package/dist/mono-button-CoVnBLav.js +0 -873
  466. package/dist/mono-button.shadow-FfP_hMH4.js +0 -784
  467. package/dist/nuxt.d.ts +0 -1
  468. package/dist/search.d.ts +0 -1
  469. package/dist/tooltip.d.ts +0 -1
  470. package/dist/ui/accordion.d.ts +0 -1
  471. package/dist/ui/alert.d.ts +0 -1
  472. package/dist/ui/breadcrumb.d.ts +0 -1
  473. package/dist/ui/button-dropdown.d.ts +0 -1
  474. package/dist/ui/button.d.ts +0 -1
  475. package/dist/ui/card.d.ts +0 -1
  476. package/dist/ui/chart.d.ts +0 -1
  477. package/dist/ui/checkbox.d.ts +0 -1
  478. package/dist/ui/chip.d.ts +0 -1
  479. package/dist/ui/date.d.ts +0 -1
  480. package/dist/ui/drawer.d.ts +0 -1
  481. package/dist/ui/dropdown-table.d.ts +0 -1
  482. package/dist/ui/dropdown.d.ts +0 -1
  483. package/dist/ui/file-upload.d.ts +0 -1
  484. package/dist/ui/filter.d.ts +0 -1
  485. package/dist/ui/form.d.ts +0 -1
  486. package/dist/ui/input.d.ts +0 -1
  487. package/dist/ui/menu.d.ts +0 -1
  488. package/dist/ui/modal.d.ts +0 -1
  489. package/dist/ui/nav.d.ts +0 -1
  490. package/dist/ui/radio.d.ts +0 -1
  491. package/dist/ui/rich-text-editor.d.ts +0 -1
  492. package/dist/ui/select.d.ts +0 -1
  493. package/dist/ui/sidebar.d.ts +0 -1
  494. package/dist/ui/switch.d.ts +0 -1
  495. package/dist/ui/table.d.ts +0 -1
  496. package/dist/ui/tabs.d.ts +0 -1
  497. package/dist/ui/tag-input.d.ts +0 -1
  498. package/dist/ui/textarea.d.ts +0 -1
  499. package/dist/vite.d.ts +0 -1
@@ -1,7 +1,8 @@
1
- import { n as unwrapReactive, t as resolveMaybeReactive } from "./reactive-D3EERqgO.js";
2
- import { a as unregisterPopupLayer, r as registerPopupLayer } from "./popup-stack-CEEMib__.js";
1
+ import { n as unwrapReactive, t as resolveMaybeReactive } from "./reactive-Dtd-esHO.js";
2
+ import { a as unregisterPopupLayer, r as registerPopupLayer } from "./popup-stack-De05Y-mJ.js";
3
+
3
4
  //#region src/components/tooltip/tooltip-config.ts
4
- var DEFAULT_TOOLTIP_OPTIONS = {
5
+ const DEFAULT_TOOLTIP_OPTIONS = {
5
6
  allowHTML: false,
6
7
  placement: "top",
7
8
  offset: 6,
@@ -17,7 +18,7 @@ var DEFAULT_TOOLTIP_OPTIONS = {
17
18
  disabled: false,
18
19
  hideOnClick: true
19
20
  };
20
- var globalOptions = null;
21
+ let globalOptions = null;
21
22
  /** @internal — written by `createMonoTooltip` / `resetMonoTooltip`. */
22
23
  function setMonoTooltipGlobal(options) {
23
24
  globalOptions = options ? { ...options } : null;
@@ -27,7 +28,7 @@ function getMonoTooltipGlobal() {
27
28
  return globalOptions;
28
29
  }
29
30
  /** Keys of the global object that configure the addon, not a tooltip. */
30
- var NOT_TOOLTIP_OPTIONS = new Set(["attributes"]);
31
+ const NOT_TOOLTIP_OPTIONS = /* @__PURE__ */ new Set(["attributes"]);
31
32
  /**
32
33
  * `DEFAULTS ← local ← global ← anchor`, key by key; `undefined` never
33
34
  * overwrites. `anchor` is the options read off the element's own attributes.
@@ -44,6 +45,7 @@ function resolveTooltipOptions(local, anchor) {
44
45
  }
45
46
  return out;
46
47
  }
48
+
47
49
  //#endregion
48
50
  //#region src/components/tooltip/tooltip-loader.ts
49
51
  /**
@@ -51,10 +53,10 @@ function resolveTooltipOptions(local, anchor) {
51
53
  * `@floating-ui/core` — both are the consumer's to install).
52
54
  *
53
55
  * Loaded on the FIRST show, never at import: registering a tooltip in
54
- * `<script setup>` costs nothing until somebody actually hovers. Externalized in
55
- * both vite configs, so the consumer's bundler resolves and splits it.
56
+ * `<script setup>` costs nothing until somebody actually hovers. Externalized by
57
+ * `NEVER_BUNDLE` in `tsdown.config.ts`, so the consumer's bundler resolves and splits it.
56
58
  */
57
- var _floatingPromise = null;
59
+ let _floatingPromise = null;
58
60
  function loadFloatingUi() {
59
61
  _floatingPromise ??= import("@floating-ui/dom").catch((err) => {
60
62
  _floatingPromise = null;
@@ -62,33 +64,34 @@ function loadFloatingUi() {
62
64
  });
63
65
  return _floatingPromise;
64
66
  }
67
+
65
68
  //#endregion
66
69
  //#region src/components/tooltip/control-tooltip.ts
67
70
  /** Grace period so an INTERACTIVE tooltip can be reached across the offset gap. */
68
- var INTERACTIVE_HIDE_GRACE = 120;
71
+ const INTERACTIVE_HIDE_GRACE = 120;
69
72
  /** Longest the exit transition may take before the element is removed anyway. */
70
- var EXIT_FALLBACK_MS = 200;
71
- var nextId = 0;
72
- var live = /* @__PURE__ */ new Set();
73
- var bound = false;
73
+ const EXIT_FALLBACK_MS = 200;
74
+ let nextId = 0;
75
+ const live = /* @__PURE__ */ new Set();
76
+ let bound = false;
74
77
  function each(fn) {
75
78
  for (const inst of Array.from(live)) fn(inst);
76
79
  }
77
- var onPointerOver = (e) => {
80
+ const onPointerOver = (e) => {
78
81
  const path = e.composedPath();
79
82
  each((i) => i._pointerOver(path, e));
80
83
  };
81
- var onPointerOut = (e) => {
84
+ const onPointerOut = (e) => {
82
85
  if (!e.relatedTarget) each((i) => i._pointerOver([], e));
83
86
  };
84
- var onFocusIn = (e) => {
87
+ const onFocusIn = (e) => {
85
88
  const path = e.composedPath();
86
89
  each((i) => i._focusIn(path));
87
90
  };
88
- var onFocusOut = (e) => {
91
+ const onFocusOut = (e) => {
89
92
  if (!e.relatedTarget) each((i) => i._focusIn([]));
90
93
  };
91
- var onClick = (e) => {
94
+ const onClick = (e) => {
92
95
  const path = e.composedPath();
93
96
  each((i) => i._click(path));
94
97
  };
@@ -119,7 +122,7 @@ function unbindDocument() {
119
122
  document.removeEventListener("click", onClick, true);
120
123
  bound = false;
121
124
  }
122
- var warnedSelectors = /* @__PURE__ */ new Set();
125
+ const warnedSelectors = /* @__PURE__ */ new Set();
123
126
  function safeMatches(el, selector) {
124
127
  try {
125
128
  return el.matches(selector);
@@ -166,7 +169,7 @@ function flatTreeParent(node) {
166
169
  * wrapper's theme classes onto the tooltip re-resolves the same tokens there.
167
170
  */
168
171
  function scopedThemeClasses(anchor) {
169
- const stop = new Set([
172
+ const stop = /* @__PURE__ */ new Set([
170
173
  document.body,
171
174
  document.documentElement,
172
175
  null
@@ -186,34 +189,55 @@ function isFocusVisible(el) {
186
189
  return true;
187
190
  }
188
191
  }
189
- /**
190
- * How far the arrow must stay from the bubble's corners: past the rounding, on the
191
- * straight part of the edge. A fixed 4px let a `-start` / `-end` arrow land on the
192
- * curve of a well-rounded flavor (a pill, in the extreme), where the edge has
193
- * already pulled away and the diamond hung off the corner.
194
- *
195
- * Read from the PAINTED radius, so every flavor and radius preset is covered.
196
- * CSS scales radii that overflow the box down to fit it (a `9999px` pill paints
197
- * half its height), hence the clamp to half the smaller side. The diamond is the
198
- * arrow box rotated 45°: where it meets the edge it is `size·√2` wide, so it
199
- * overhangs its own box by `size·(√2−1)/2` on each side. Floating UI caps the
200
- * padding itself when the bubble is too short for it — the arrow then centres on
201
- * the edge and the bubble shifts so it still points at the trigger.
202
- */
203
- function arrowPadding(bubble, arrowEl) {
192
+ /** The bubble's four computed corner radii — read once per open, BEFORE any cap lands. */
193
+ function readCorners(bubble) {
204
194
  const cs = getComputedStyle(bubble);
205
- const half = Math.min(bubble.offsetWidth, bubble.offsetHeight) / 2;
206
- const radius = Math.max(...[
195
+ return [
207
196
  cs.borderTopLeftRadius,
208
197
  cs.borderTopRightRadius,
209
198
  cs.borderBottomRightRadius,
210
199
  cs.borderBottomLeftRadius
211
- ].map((v) => {
200
+ ];
201
+ }
202
+ /**
203
+ * Where the arrow may sit on the edge of `side`, and whether the bubble's rounding
204
+ * has to give way for it.
205
+ *
206
+ * `padding` keeps the arrow past the rounding, on the straight part of the edge. A
207
+ * fixed 4px let a `-start` / `-end` arrow land on the curve of a well-rounded
208
+ * flavor, where the edge has already pulled away and the diamond hung off the
209
+ * corner.
210
+ *
211
+ * `cap` handles the edge that has NO straight part: a pill's short side is all
212
+ * curve (height = 2 × radius), so whatever the padding, the diamond sat on a curve
213
+ * and looked glued to the corner. When the edge can't fit the arrow between its two
214
+ * roundings, the radius is capped to the widest value that still leaves the
215
+ * diamond a straight run — the bubble turns from a pill into a rounded rectangle
216
+ * only on the placements that need it. `null` = the painted radius already fits.
217
+ *
218
+ * Read from the PAINTED radius, so every flavor and radius preset is covered. CSS
219
+ * scales radii that overflow the box down to fit it (a `9999px` pill paints half
220
+ * its height), hence the clamp to half the smaller side. The diamond is the arrow
221
+ * box rotated 45°: where it meets the edge it is `size·√2` wide, so it overhangs
222
+ * its own box by `size·(√2−1)/2` on each side.
223
+ */
224
+ function arrowGeometry(bubble, arrowEl, corners, side) {
225
+ const width = bubble.offsetWidth;
226
+ const height = bubble.offsetHeight;
227
+ const half = Math.min(width, height) / 2;
228
+ const painted = Math.min(half, Math.max(...corners.map((v) => {
212
229
  const n = parseFloat(v) || 0;
213
230
  return v.trim().endsWith("%") ? n / 100 * half * 2 : n;
214
- }));
215
- const overhang = arrowEl.offsetWidth * (Math.SQRT2 - 1) / 2;
216
- return Math.max(4, Math.ceil(Math.min(radius, half) + overhang) + 1);
231
+ })));
232
+ const size = arrowEl.offsetWidth;
233
+ const diagonal = size * Math.SQRT2;
234
+ const overhang = (diagonal - size) / 2;
235
+ const fit = Math.max(0, Math.floor(((side === "left" || side === "right" ? height : width) - diagonal) / 2) - 2);
236
+ const radius = Math.min(painted, fit);
237
+ return {
238
+ padding: Math.max(4, Math.ceil(radius + overhang) + 1),
239
+ cap: radius < painted ? radius : null
240
+ };
217
241
  }
218
242
  function toDelays(delay) {
219
243
  if (Array.isArray(delay)) return [Number(delay[0]) || 0, Number(delay[1]) || 0];
@@ -239,6 +263,8 @@ function resolveContent(content, anchor) {
239
263
  if (content !== void 0) return null;
240
264
  return anchorText(anchor);
241
265
  }
266
+ /** Prefix of the declarative anchor attributes (`mono-tooltip-content`, …). */
267
+ const ANCHOR_ATTR_PREFIX = "mono-tooltip-";
242
268
  var TooltipInstance = class {
243
269
  constructor(_target, options, _anchorOptions) {
244
270
  this._target = _target;
@@ -247,6 +273,7 @@ var TooltipInstance = class {
247
273
  this._reasons = /* @__PURE__ */ new Set();
248
274
  this._token = 0;
249
275
  this._pending = null;
276
+ this._pendingReason = null;
250
277
  this._suppressed = null;
251
278
  this._lastPath = [];
252
279
  this._destroyed = false;
@@ -374,8 +401,13 @@ var TooltipInstance = class {
374
401
  }
375
402
  if (anchor && o.hideOnClick) {
376
403
  this._suppressed = anchor;
377
- if (this._pending === anchor) this._cancelShow();
378
- if (this._open?.anchor === anchor && !this._reasons.has("manual")) this._close(false);
404
+ if (this._pending === anchor) {
405
+ if (this._pendingReason !== "focus") this._cancelShow();
406
+ return;
407
+ }
408
+ if (this._open?.anchor !== anchor || this._reasons.has("manual")) return;
409
+ if (this._reasons.has("focus")) this._reasons.delete("hover");
410
+ else this._close(false);
379
411
  }
380
412
  }
381
413
  _resolved(anchor) {
@@ -409,6 +441,7 @@ var TooltipInstance = class {
409
441
  clearTimeout(this._showTimer);
410
442
  this._showTimer = void 0;
411
443
  this._pending = null;
444
+ this._pendingReason = null;
412
445
  }
413
446
  _cancelHide() {
414
447
  clearTimeout(this._hideTimer);
@@ -416,7 +449,7 @@ var TooltipInstance = class {
416
449
  }
417
450
  /** One reason to stay open went away — close once none is left. */
418
451
  _dropReason(reason) {
419
- if (this._pending && !this._open) {
452
+ if (this._pending && !this._open && this._pendingReason === reason) {
420
453
  this._cancelShow();
421
454
  this._token++;
422
455
  }
@@ -441,12 +474,14 @@ var TooltipInstance = class {
441
474
  const token = ++this._token;
442
475
  if (delay > 0) {
443
476
  this._pending = anchor;
477
+ this._pendingReason = reason;
444
478
  await new Promise((resolve) => {
445
479
  this._showTimer = setTimeout(resolve, delay);
446
480
  });
447
481
  if (token !== this._token) return;
448
482
  }
449
483
  this._pending = null;
484
+ this._pendingReason = null;
450
485
  await this._mount(anchor, reason, token);
451
486
  }
452
487
  async _mount(anchor, reason, token) {
@@ -496,7 +531,7 @@ var TooltipInstance = class {
496
531
  state.observer.observe(anchor, { attributes: true });
497
532
  }
498
533
  this._open = state;
499
- this._reasons = new Set([reason]);
534
+ this._reasons = /* @__PURE__ */ new Set([reason]);
500
535
  this._renderContent(body, content, o.allowHTML);
501
536
  ((typeof o.appendTo === "function" ? o.appendTo() : o.appendTo) ?? document.body).appendChild(el);
502
537
  this._stashTitles(state);
@@ -521,10 +556,12 @@ var TooltipInstance = class {
521
556
  const middleware = [offset(o.offset)];
522
557
  if (o.flip) middleware.push(flip({ padding: o.padding }));
523
558
  if (o.shift) middleware.push(shift({ padding: o.padding }));
524
- if (o.arrow) middleware.push(arrow({
559
+ const corners = state.corners ??= readCorners(state.el);
560
+ const geometry = (placement) => arrowGeometry(state.el, state.arrow, corners, placement.split("-")[0]);
561
+ if (o.arrow) middleware.push(arrow(({ placement }) => ({
525
562
  element: state.arrow,
526
- padding: arrowPadding(state.el, state.arrow)
527
- }));
563
+ padding: geometry(placement).padding
564
+ })));
528
565
  middleware.push(hide());
529
566
  const { x, y, placement, middlewareData } = await computePosition(state.anchor, state.el, {
530
567
  placement: o.placement,
@@ -538,6 +575,9 @@ var TooltipInstance = class {
538
575
  state.el.setAttribute("data-side", side);
539
576
  if (align) state.el.setAttribute("data-align", align);
540
577
  else state.el.removeAttribute("data-align");
578
+ const cap = o.arrow ? geometry(placement).cap : null;
579
+ if (cap === null) state.el.style.removeProperty("--_mono-tooltip-radius-cap");
580
+ else state.el.style.setProperty("--_mono-tooltip-radius-cap", `${cap}px`);
541
581
  const a = middlewareData.arrow;
542
582
  state.arrow.style.left = a?.x != null ? `${a.x}px` : "";
543
583
  state.arrow.style.top = a?.y != null ? `${a.y}px` : "";
@@ -654,16 +694,17 @@ function createTooltipController(target, options, anchorOptions) {
654
694
  return new TooltipInstance(target, options, anchorOptions);
655
695
  }
656
696
  /** Alias, matching the `monoX` / `controlMonoX` pairs of the other controllers. */
657
- var monoTooltip = controlMonoTooltip;
697
+ const monoTooltip = controlMonoTooltip;
658
698
  /** @internal — close and forget every live controller. Public as `destroyAllMonoTooltips`. */
659
699
  function destroyAllTooltipControllers() {
660
700
  each((i) => i.destroy());
661
701
  }
702
+
662
703
  //#endregion
663
704
  //#region src/components/tooltip/tooltip-declarative.ts
664
705
  /** The two text attributes — `message` is an alias of `content`. */
665
- var TOOLTIP_ATTRIBUTE_SELECTOR = "[mono-tooltip-content], [mono-tooltip-message]";
666
- var declarative = null;
706
+ const TOOLTIP_ATTRIBUTE_SELECTOR = "[mono-tooltip-content], [mono-tooltip-message]";
707
+ let declarative = null;
667
708
  /**
668
709
  * Per-element options, from `mono-tooltip-<option>` attributes:
669
710
  *
@@ -756,5 +797,6 @@ function resetMonoTooltip() {
756
797
  declarative?.destroy();
757
798
  declarative = null;
758
799
  }
800
+
759
801
  //#endregion
760
- export { resetMonoTooltip as a, loadFloatingUi as c, resolveTooltipOptions as d, readTooltipAttributes as i, DEFAULT_TOOLTIP_OPTIONS as l, createMonoTooltip as n, controlMonoTooltip as o, destroyAllMonoTooltips as r, monoTooltip as s, TOOLTIP_ATTRIBUTE_SELECTOR as t, getMonoTooltipGlobal as u };
802
+ export { resetMonoTooltip as a, loadFloatingUi as c, resolveTooltipOptions as d, readTooltipAttributes as i, DEFAULT_TOOLTIP_OPTIONS as l, createMonoTooltip as n, controlMonoTooltip as o, destroyAllMonoTooltips as r, monoTooltip as s, TOOLTIP_ATTRIBUTE_SELECTOR as t, getMonoTooltipGlobal as u };
package/dist/tooltip.js CHANGED
@@ -1,2 +1,3 @@
1
- import { a as resetMonoTooltip, c as loadFloatingUi, d as resolveTooltipOptions, i as readTooltipAttributes, l as DEFAULT_TOOLTIP_OPTIONS, n as createMonoTooltip, o as controlMonoTooltip, r as destroyAllMonoTooltips, s as monoTooltip, t as TOOLTIP_ATTRIBUTE_SELECTOR, u as getMonoTooltipGlobal } from "./tooltip-CysgRgBi.js";
2
- export { DEFAULT_TOOLTIP_OPTIONS, TOOLTIP_ATTRIBUTE_SELECTOR, controlMonoTooltip, createMonoTooltip, destroyAllMonoTooltips, getMonoTooltipGlobal, loadFloatingUi, monoTooltip, readTooltipAttributes, resetMonoTooltip, resolveTooltipOptions };
1
+ import { a as resetMonoTooltip, c as loadFloatingUi, d as resolveTooltipOptions, i as readTooltipAttributes, l as DEFAULT_TOOLTIP_OPTIONS, n as createMonoTooltip, o as controlMonoTooltip, r as destroyAllMonoTooltips, s as monoTooltip, t as TOOLTIP_ATTRIBUTE_SELECTOR, u as getMonoTooltipGlobal } from "./tooltip-FCMRUSLi.js";
2
+
3
+ export { DEFAULT_TOOLTIP_OPTIONS, TOOLTIP_ATTRIBUTE_SELECTOR, controlMonoTooltip, createMonoTooltip, destroyAllMonoTooltips, getMonoTooltipGlobal, loadFloatingUi, monoTooltip, readTooltipAttributes, resetMonoTooltip, resolveTooltipOptions };
@@ -1,11 +1,12 @@
1
- import { l as monoHostChildNodes } from "../mono-ui-CPV7rrdo.js";
2
- import { t as customElement } from "../mono-element-B0kP_96P.js";
3
- import { a as defineHybridPropAliases, i as defineHybridPropAlias, r as booleanStringConverter, t as __decorate } from "../decorate-DEXtNagw.js";
4
- import { t as dispatchMonoEvent } from "../mono-event-Bi1qP9uN.js";
5
- import { a as parkDetachedNodes, i as guardHostTextContent, s as placeSlotNode } from "../light-slots-DW1WgfgT.js";
1
+ import { l as monoHostChildNodes } from "../mono-ui-BwUc0L6B.js";
2
+ import { t as customElement } from "../mono-element-C7vCschg.js";
3
+ import { a as defineHybridPropAliases, i as defineHybridPropAlias, r as booleanStringConverter, t as __decorate } from "../decorate-DbYFpi8R.js";
4
+ import { t as dispatchMonoEvent } from "../mono-event-BPku9HpS.js";
5
+ import { a as parkDetachedNodes, i as guardHostTextContent, s as placeSlotNode } from "../light-slots-DdDdZ6zs.js";
6
6
  import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
7
7
  import { ref } from "lit/directives/ref.js";
8
8
  import { property, query, state } from "lit/decorators.js";
9
+
9
10
  //#region src/components/accordion/accordion-core.ts
10
11
  /**
11
12
  * `MonoAccordionCore` — all render-mode-agnostic logic for `mono-accordion`:
@@ -18,7 +19,7 @@ import { property, query, state } from "lit/decorators.js";
18
19
  * SSR-safe: no `document`/`window` access. `_headEl` (`@query`) is lazy and
19
20
  * `focus/blur` only run client-side.
20
21
  */
21
- var MonoAccordionCore = (superClass) => {
22
+ const MonoAccordionCore = (superClass) => {
22
23
  class MonoAccordionCoreClass extends superClass {
23
24
  constructor(...args) {
24
25
  super(...args);
@@ -262,12 +263,14 @@ var MonoAccordionCore = (superClass) => {
262
263
  __decorate([query(".mono-accordion-head")], MonoAccordionCoreClass.prototype, "_headEl", void 0);
263
264
  return MonoAccordionCoreClass;
264
265
  };
266
+
265
267
  //#endregion
266
- //#region src/components/accordion/accordion.css?raw
267
- var accordion_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-accordion — a port of Basecoat's `.accordion`\r\n (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-accordion size=\"lg\" color=\"success\" model-value>\r\n <div mono-accordion mono-size=\"lg\" mono-color=\"success\" mono-open>\r\n <button mono-head type=\"button\" aria-expanded=\"true\">\r\n <span mono-glyph>…</span>\r\n <span mono-heading>\r\n <span mono-title>Question</span>\r\n <span mono-subtitle>Sub-text</span>\r\n </span>\r\n <span mono-actions>…</span>\r\n <span mono-arrow><svg …></svg></span>\r\n </button>\r\n <div mono-body role=\"region\"><div>…</div></div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element writes them on its root — the\r\n host in the light build, an inner root `<div>` in the shadow one — plus the\r\n states `mono-open` and `mono-disabled`. The old classes\r\n (`.mono-accordion.md.primary.open`) are still emitted as inert hooks until\r\n 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-accordion-group] ≡ .accordion (flex w-full flex-col; maia /\r\n mira / luma / rhea add the frame, which is\r\n the `-group-*` knobs below)\r\n [mono-accordion] ≡ .accordion > details (not-last:border-b, and\r\n `open:bg-muted/50` on four flavors)\r\n — EXTENSION when standalone: upstream has no\r\n accordion outside a group, so on its own it\r\n keeps this component's frame (border, radius,\r\n shadow-xs). Inside a group the frame moves to\r\n the group and the item flattens to a divider.\r\n [mono-head] ≡ > summary (relative flex w-full items-start\r\n justify-between border border-transparent\r\n cursor-pointer outline-none, rounded-md py-4\r\n text-left text-sm font-medium hover:underline,\r\n focus-visible:ring-3 ring-ring/50 border-ring)\r\n — DEVIATION: a real <button>, so the row is a\r\n button for a11y rather than a <summary> whose\r\n open state the element would have to fight\r\n [mono-glyph] ≡ EXTENSION (the leading icon chip)\r\n [mono-heading] > [mono-title] ≡ the summary's own text\r\n [mono-subtitle] ≡ EXTENSION (a second line under the title;\r\n `[mono-description]` is its old name, and the\r\n element still renders both)\r\n [mono-actions] ≡ EXTENSION (trailing controls in the row)\r\n [mono-arrow] ≡ summary > svg:last-child (text-muted-foreground\r\n ms-auto size-4, rotate-180 while open)\r\n [mono-body] ≡ details > :not(summary) (overflow-hidden,\r\n pt-0 pb-4 text-sm) — plus the animated\r\n collapse, which upstream's <details> gets free\r\n [mono-size]/[mono-color] ≡ EXTENSION (upstream ships one size, no colour)\r\n [mono-disabled] ≡ details[aria-disabled] > summary\r\n (pointer-events-none opacity-50)\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-title]`, `[mono-body]`, `[mono-actions]`\r\n and `[mono-icon]` are also card's, dropdown's and button's part names, and an\r\n accordion BODY is a place consumers put cards and buttons. Every rule here is\r\n therefore written as an explicit child path from the root — `:where([mono-accordion]\r\n > [mono-head] > [mono-heading]) > [mono-title]` — so a nested component's parts\r\n are never reached. The `:where()` keeps that path at (0,1,0), the same weight a\r\n one-attribute rule would have, so a `cssClass` utility still wins by source order.\r\n\r\n FLAVORS set `--mono-accordion-{radius,shadow,pad-x-<size>,pad-y-<size>,\r\n title-font-<size>,body-font-<size>,open-bg,group-radius,group-border-width,\r\n arrow-size,ring-width}`; every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"accordion\"` prints the matrix).\r\n ========================================================================= */\r\n\r\nmono-accordion {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the item\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details — not-last:border-b */\r\n[mono-accordion] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-accordion-primary: var(--mono-accordion-primary, var(--primary));\r\n --_mono-accordion-secondary: var(--mono-accordion-secondary, var(--secondary-foreground));\r\n --_mono-accordion-success: var(--mono-accordion-success, var(--success));\r\n --_mono-accordion-danger: var(--mono-accordion-danger, var(--destructive));\r\n --_mono-accordion-warning: var(--mono-accordion-warning, var(--warning));\r\n --_mono-accordion-info: var(--mono-accordion-info, var(--info));\r\n --_mono-accordion-teal: var(--mono-accordion-teal, var(--teal));\r\n --_mono-accordion-purple: var(--mono-accordion-purple, var(--purple));\r\n --_mono-accordion-neutral: var(--mono-accordion-neutral, var(--neutral));\r\n --_mono-accordion-dark: var(--mono-accordion-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-accordion-accent: var(--mono-accordion-accent, var(--_mono-accordion-accent-preset, var(--_mono-accordion-primary)));\r\n\r\n /* ── surfaces ──────────────────────────────────────────────────────────── */\r\n --_mono-accordion-bg: var(--mono-accordion-bg, var(--mono-accordion-surface, var(--card)));\r\n --_mono-accordion-text: var(--mono-accordion-text, var(--card-foreground));\r\n --_mono-accordion-border: var(--mono-accordion-border, var(--border));\r\n --_mono-accordion-shadow: var(--mono-accordion-shadow, var(--mono-shadow-xs));\r\n /* `open:bg-muted/50` — vega does NOT tint an open item; maia, mira, luma and\r\n rhea do, and set this knob. `--mono-accordion-head-bg` is the pre-port name,\r\n honoured until 2.0: it tinted the open HEAD, where this tints the open item\r\n (head and body alike), which is what upstream's `open:` variant does. */\r\n /* An OPAQUE fill, not an overlay: it replaces the item's own surface while\r\n open, so a flavor's `bg-muted/50` is written as that mix OVER `--card`.\r\n Defaulting to the item's surface is what makes vega's \"no tint\" a no-op. */\r\n --_mono-accordion-open-bg: var(--mono-accordion-open-bg, var(--mono-accordion-head-bg, var(--_mono-accordion-bg)));\r\n --_mono-accordion-open-border-color: var(--mono-accordion-open-border-color,\r\n color-mix(in oklab, var(--_mono-accordion-accent) 32%, var(--_mono-accordion-border)));\r\n --_mono-accordion-open-shadow: var(--mono-accordion-open-shadow,\r\n 0 3px 14px color-mix(in oklab, var(--_mono-accordion-accent) 9%, transparent));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .accordion > details > summary — py-4 text-sm\r\n — DEVIATION: the inline padding is ours. Upstream's summary has none because\r\n its group is edge-to-edge in the page; this item can stand alone inside its\r\n own frame, where text flush against the border reads as a bug. maia / luma /\r\n rhea say `p-4`, which is exactly the value used here. */\r\n --_mono-accordion-pad-x: var(--mono-accordion-pad-x, var(--_mono-accordion-pad-x-preset, var(--mono-accordion-pad-x-md, calc(var(--mono-spacing) * 4))));\r\n --_mono-accordion-pad-y: var(--mono-accordion-pad-y, var(--_mono-accordion-pad-y-preset, var(--mono-accordion-pad-y-md, calc(var(--mono-spacing) * 4))));\r\n --_mono-accordion-radius: var(--mono-accordion-radius, var(--_mono-accordion-radius-preset, var(--mono-accordion-radius-md, var(--mono-radius-md))));\r\n --_mono-accordion-gap: var(--mono-accordion-gap, var(--_mono-accordion-gap-preset, calc(var(--mono-spacing) * 3)));\r\n\r\n /* ── type ──────────────────────────────────────────────────────────────── */\r\n --_mono-accordion-title-font: var(--mono-accordion-title-font, var(--_mono-accordion-title-font-preset, var(--mono-accordion-title-font-md, var(--mono-text-sm))));\r\n --_mono-accordion-title-line-height: var(--mono-accordion-title-line-height, var(--_mono-accordion-title-line-height-preset, var(--mono-text-sm--lh)));\r\n --_mono-accordion-title-weight: var(--mono-accordion-title-weight, var(--mono-font-weight-medium));\r\n /* `hover:underline` — the whole row is the control, so the hover cue is on its\r\n label. A flavor (or a consumer) sets `none` to drop it. */\r\n --_mono-accordion-title-hover-decoration: var(--mono-accordion-title-hover-decoration, underline);\r\n --_mono-accordion-description-font: var(--mono-accordion-description-font, var(--_mono-accordion-description-font-preset, var(--mono-text-xs)));\r\n --_mono-accordion-description-color: var(--mono-accordion-description-color, var(--muted-foreground));\r\n --_mono-accordion-body-font: var(--mono-accordion-body-font, var(--_mono-accordion-body-font-preset, var(--mono-accordion-body-font-md, var(--mono-text-sm))));\r\n --_mono-accordion-body-line-height: var(--mono-accordion-body-line-height, var(--_mono-accordion-body-line-height-preset, var(--mono-text-sm--lh)));\r\n --_mono-accordion-body-color: var(--mono-accordion-body-color, inherit);\r\n\r\n /* ── the chevron — `text-muted-foreground size-4` ──────────────────────── */\r\n --_mono-accordion-arrow-size: var(--mono-accordion-arrow-size, var(--_mono-accordion-arrow-size-preset, calc(var(--mono-spacing) * 4)));\r\n --_mono-accordion-arrow-color: var(--mono-accordion-arrow-color, var(--muted-foreground));\r\n /* EXTENSION: the role reads the open state at a glance. Set it to\r\n `--muted-foreground` for upstream's single-colour chevron. */\r\n --_mono-accordion-arrow-open-color: var(--mono-accordion-arrow-open-color, var(--_mono-accordion-accent));\r\n\r\n /* ── the leading chip (EXTENSION) ──────────────────────────────────────── */\r\n --_mono-accordion-glyph-size: var(--mono-accordion-glyph-size, var(--_mono-accordion-glyph-size-preset, calc(var(--mono-spacing) * 7)));\r\n --_mono-accordion-glyph-radius: var(--mono-accordion-glyph-radius, var(--_mono-accordion-glyph-radius-preset, var(--mono-radius-sm)));\r\n --_mono-accordion-glyph-bg: var(--mono-accordion-glyph-bg, color-mix(in oklab, var(--_mono-accordion-accent) 14%, transparent));\r\n --_mono-accordion-glyph-color: var(--mono-accordion-glyph-color, var(--_mono-accordion-accent));\r\n\r\n /* ── focus — `focus-visible:ring-3 ring-ring/50 border-ring` ───────────── */\r\n --_mono-accordion-ring-color: var(--mono-accordion-ring-color, var(--_mono-accordion-accent));\r\n\r\n /* The head's hover fill. Upstream has none — it underlines the label instead —\r\n so the tint is 0% on vega. A flavor sets the ALPHA (`-head-hover-tint`) and\r\n the wash is built HERE: a flavor writing the colour itself would have to\r\n reference `--_mono-accordion-accent`, which is declared on this element, and\r\n a `:root` declaration that references it is invalid at computed-value time. */\r\n --_mono-accordion-head-hover-bg: var(--mono-accordion-head-hover-bg,\r\n color-mix(in oklab, var(--_mono-accordion-accent) var(--mono-accordion-head-hover-tint, 0%), transparent));\r\n --_mono-accordion-ring-width: var(--mono-accordion-ring-width, var(--mono-ring-width));\r\n /* A slot, so a state can neutralise the resting shadow without `box-shadow: none`. */\r\n --_mono-accordion-ring: 0 0 #0000;\r\n\r\n /* Open/close animation duration, shared by the body collapse and the chevron so\r\n `--mono-accordion-duration: 0s` means a fully instant toggle.\r\n\r\n This is THE lever for a slow open/close. `grid-template-rows: 0fr → 1fr` is the\r\n only animated LAYOUT property in the library, and it re-lays-out the whole slotted\r\n subtree on every frame of the transition, so its cost scales with what is inside\r\n the body — and, because the panel's own height changes, with whatever follows it\r\n in the document too. Measured with ~320-node bodies (Chromium, median of 3), one\r\n open+close cycle: 24.8ms animated vs 3.6ms at `0s` — the animation is ~85% of the\r\n toggle's cost. Set this to `0s` on accordions whose bodies (or whose pages) are\r\n heavy.\r\n\r\n THREE approaches that look like fixes and are NOT. All were built and measured\r\n (Chromium, LayoutDuration + RecalcStyleDuration, min of 9 toggles, two scenarios:\r\n 40 panels with ~320-node bodies, and one small panel above a 2000-row sticky\r\n table). Recorded so nobody spends the afternoon on them again:\r\n\r\n 1. Pin the track to a measured PIXEL height for the transition, so the `fr`\r\n never has to be resolved against content. Landed inside the noise across\r\n three runs (+11%, -2%, -17%) and cost two extra forced layouts per toggle to\r\n measure and release. The per-frame cost is NOT the `fr` resolution — it is\r\n that the row's block size changes at all, which re-lays-out the grid item\r\n however the target size was expressed.\r\n 2. Also give the inner region a definite `height`, so its own constraint space\r\n stops changing and its subtree layout can be cached. No effect either.\r\n 3. Don't animate a layout property at all: snap the box to its final size and\r\n slide the content in on `transform`/`opacity`. A quick CSS prototype looked\r\n like a 50% win, but only because it had no `content-visibility` transition\r\n and so dropped the subtree instantly on close — the close animation was\r\n simply invisible. Made to actually work, it measured 14.6/18.3ms vs\r\n collapse's 20.0/18.4ms on heavy bodies (i.e. unreliable), and 17.4/19.6ms vs\r\n 12.6/12.8ms on the heavy-page scenario — reliably WORSE, because the\r\n transform/opacity pass costs more than the box animation it replaced.\r\n\r\n So `--mono-accordion-duration: 0s` really is the lever, and there is no cleverer\r\n one. Measured against it: heavy bodies 7.0/10.8ms vs 20.0/18.4ms (~45-65% off);\r\n heavy page 11.1/11.7ms vs 12.6/12.8ms (~10% off — on a page like that the\r\n accordion is nearly irrelevant and the page's own weight is the cost). */\r\n --_mono-accordion-duration: var(--mono-accordion-duration, var(--mono-duration));\r\n\r\n display: block;\r\n width: 100%;\r\n font-family: inherit;\r\n color: var(--_mono-accordion-text);\r\n\r\n /* EXTENSION — the standalone frame. Inside a group this is flattened below and\r\n the frame moves to the group, which is upstream's arrangement. */\r\n border: var(--mono-border-width) solid var(--_mono-accordion-border);\r\n border-radius: var(--_mono-accordion-radius);\r\n background: var(--_mono-accordion-bg);\r\n box-shadow: var(--_mono-accordion-shadow);\r\n overflow: hidden;\r\n transition:\r\n border-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion],\r\n:where([mono-accordion]) *,\r\n:where([mono-accordion]) *::before,\r\n:where([mono-accordion]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* The shadow build renders EVERY region up front (so DSD can project into them\r\n server-side) and marks the ones with nothing in them; the light build renders\r\n only what exists. Hiding them here is what keeps the two builds identical.\r\n\r\n NOT wrapped in `:where()`, unlike the other parts: a region rule is two\r\n attributes strong, so a zero-weight hide would tie and lose on source order. */\r\n[mono-accordion] :is(\r\n [mono-glyph],\r\n [mono-heading],\r\n [mono-title],\r\n [mono-subtitle],\r\n [mono-description],\r\n [mono-actions]\r\n)[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Group — `.accordion`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion — flex w-full flex-col\r\n The GROUP is consumer markup — the element renders one item, not the list — so\r\n unlike every part below, its pre-port CLASS is public API and keeps working\r\n beside the attribute until 2.0.\r\n The frame knobs are inert on vega (0 width, no radius) and set by the four\r\n flavors whose `.accordion` says `overflow-hidden rounded-2xl border`. */\r\n:is([mono-accordion-group], .mono-accordion-group) {\r\n --_mono-accordion-group-gap: var(--mono-accordion-group-gap, 0px);\r\n --_mono-accordion-group-radius: var(--mono-accordion-group-radius, 0px);\r\n --_mono-accordion-group-border-width: var(--mono-accordion-group-border-width, 0px);\r\n --_mono-accordion-group-border-color: var(--mono-accordion-group-border-color, var(--border));\r\n\r\n display: flex;\r\n width: 100%;\r\n flex-direction: column;\r\n gap: var(--_mono-accordion-group-gap);\r\n box-sizing: border-box;\r\n border: var(--_mono-accordion-group-border-width) solid var(--_mono-accordion-group-border-color);\r\n border-radius: var(--_mono-accordion-group-radius);\r\n overflow: hidden;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details — not-last:border-b\r\n In a group the ITEM stops being a card: the frame is the group's, and all an\r\n item carries is the hairline to the next one.\r\n\r\n TWO selectors for one rule, because the item is not always a child of the\r\n group. Hand-written markup nests `[mono-accordion]` directly, so the `>`\r\n path matches; the ELEMENT puts a custom-element host in between (light) or a\r\n shadow boundary (shadow), which no selector crosses — so it detects the group\r\n itself and writes `mono-grouped` / `mono-last` on its root. */\r\n:where([mono-accordion-group], .mono-accordion-group) > [mono-accordion],\r\n[mono-accordion][mono-grouped] {\r\n border-width: 0;\r\n border-radius: 0;\r\n box-shadow: none;\r\n}\r\n\r\n/* The divider rides the group's own CHILD, whatever that is — the item itself in\r\n hand-written markup, the custom-element host when the element renders it. That\r\n is what makes `:last-child` reliable: the host is a child of the group in both\r\n builds, where the ITEM is one only in raw markup, and an item that asked \"am I\r\n last?\" itself would answer from however many siblings existed when it rendered. */\r\n:where([mono-accordion-group], .mono-accordion-group)\r\n > :is([mono-accordion], mono-accordion, mono-shadow-accordion) {\r\n border-bottom: var(--mono-border-width) solid var(--mono-accordion-border, var(--border));\r\n}\r\n\r\n:where([mono-accordion-group], .mono-accordion-group)\r\n > :is([mono-accordion], mono-accordion, mono-shadow-accordion):last-child {\r\n border-bottom-width: 0;\r\n}\r\n\r\n/* A group with a GAP has separate boxes again, and a divider would float in the\r\n space between them — so a gap is a consumer's own arrangement, not upstream's,\r\n and they set `--mono-accordion-group-gap` knowing the dividers go with it. */\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: Basecoat ships ONE accordion size; md is its `summary`\r\n ========================================= */\r\n\r\n[mono-accordion][mono-size=\"xs\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-xs, calc(var(--mono-spacing) * 2.5));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-xs, calc(var(--mono-spacing) * 2));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-xs, var(--mono-radius-sm));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 1.5);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-xs, var(--mono-text-xs));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-xs);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-xs, var(--mono-text-xs));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 3);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 4.5);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-sm);\r\n}\r\n\r\n[mono-accordion][mono-size=\"sm\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-sm, var(--mono-radius-md));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 2);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-sm, var(--mono-text-xs));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-xs);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-sm, var(--mono-text-xs));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 3.5);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 6);\r\n}\r\n\r\n[mono-accordion][mono-size=\"lg\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-lg, calc(var(--mono-spacing) * 5));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-lg, calc(var(--mono-spacing) * 5));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-lg, var(--mono-radius-lg));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 3.5);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-lg, var(--mono-text-base));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-lg, var(--mono-text-sm));\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 5);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 8);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-md);\r\n}\r\n\r\n[mono-accordion][mono-size=\"xl\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-xl, calc(var(--mono-spacing) * 6));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-xl, calc(var(--mono-spacing) * 6));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-xl, var(--mono-radius-xl));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 4);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-xl, var(--mono-text-lg));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-sm);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-xl, var(--mono-text-base));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 5.5);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 9);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-lg);\r\n}\r\n\r\n[mono-accordion][mono-size=\"xxl\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-xxl, calc(var(--mono-spacing) * 7));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-xxl, calc(var(--mono-spacing) * 7));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-xxl, var(--mono-radius-xl));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 4.5);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-xxl, var(--mono-text-xl));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-xl--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-sm);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-xxl, var(--mono-text-lg));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 6);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 10);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-lg);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role tints the chevron, the ring and the open edge\r\n ========================================= */\r\n\r\n[mono-accordion][mono-color=\"primary\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-primary); }\r\n[mono-accordion][mono-color=\"secondary\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-secondary); }\r\n[mono-accordion][mono-color=\"success\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-success); }\r\n[mono-accordion][mono-color=\"danger\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-danger); }\r\n[mono-accordion][mono-color=\"warning\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-warning); }\r\n[mono-accordion][mono-color=\"info\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-info); }\r\n[mono-accordion][mono-color=\"teal\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-teal); }\r\n[mono-accordion][mono-color=\"purple\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-purple); }\r\n[mono-accordion][mono-color=\"neutral\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-neutral); }\r\n[mono-accordion][mono-color=\"dark\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-dark); }\r\n\r\n/* =========================================\r\n States\r\n ========================================= */\r\n\r\n[mono-accordion][mono-open] {\r\n border-color: var(--_mono-accordion-open-border-color);\r\n box-shadow: var(--_mono-accordion-open-shadow);\r\n background: var(--_mono-accordion-open-bg);\r\n}\r\n\r\n/* In a group the item has no frame to tint — only the open wash survives. */\r\n:where([mono-accordion-group], .mono-accordion-group) > [mono-accordion][mono-open],\r\n[mono-accordion][mono-grouped][mono-open] {\r\n border-color: var(--_mono-accordion-border);\r\n box-shadow: none;\r\n}\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details[aria-disabled='true'] > summary, .accordion > details > summary[aria-disabled='true']\r\n — pointer-events-none opacity-50. DEVIATION: 0.6, this component's pre-port\r\n value, and on the whole item rather than the summary alone (the body is\r\n equally unusable). */\r\n[mono-accordion][mono-disabled] {\r\n opacity: 0.6;\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n/* =========================================\r\n Head — `> summary`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details > summary —\r\n relative flex w-full flex-1 cursor-pointer list-none items-start\r\n justify-between border border-transparent transition-all outline-none */\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > summary — rounded-md py-4\r\n text-left text-sm font-medium hover:underline focus-visible:ring-3\r\n focus-visible:ring-ring/50 focus-visible:border-ring\r\n — DEVIATIONS: a real <button> (so it needs the UA button reset), and\r\n `items-center` rather than `items-start`: this row can carry a glyph chip and\r\n trailing actions, which upstream's text-only summary never does. */\r\n:where([mono-accordion]) > [mono-head] {\r\n position: relative;\r\n display: flex;\r\n width: 100%;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--_mono-accordion-gap);\r\n padding: var(--_mono-accordion-pad-y) var(--_mono-accordion-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-accordion-radius);\r\n background: none;\r\n color: inherit;\r\n font: inherit;\r\n text-align: left;\r\n cursor: pointer;\r\n user-select: none;\r\n outline: none;\r\n appearance: none;\r\n box-shadow: var(--_mono-accordion-ring);\r\n transition:\r\n background-color var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion] > [mono-head]:focus-visible {\r\n border-color: var(--_mono-accordion-ring-color);\r\n --_mono-accordion-ring: 0 0 0 var(--_mono-accordion-ring-width)\r\n color-mix(in oklab, var(--_mono-accordion-ring-color) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* `hover:underline` — on the label, which is the only text in upstream's summary. */\r\n@media (hover: hover) {\r\n [mono-accordion] > [mono-head]:hover:not(:disabled) {\r\n background: var(--_mono-accordion-head-hover-bg);\r\n }\r\n\r\n [mono-accordion] > [mono-head]:hover:not(:disabled) [mono-title] {\r\n text-decoration-line: var(--_mono-accordion-title-hover-decoration);\r\n }\r\n}\r\n\r\n[mono-accordion] > [mono-head]:disabled {\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n/* =========================================\r\n Leading chip — EXTENSION\r\n ========================================= */\r\n\r\n:where([mono-accordion] > [mono-head]) > [mono-glyph] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-accordion-glyph-size);\r\n height: var(--_mono-accordion-glyph-size);\r\n border-radius: var(--_mono-accordion-glyph-radius);\r\n background: var(--_mono-accordion-glyph-bg);\r\n color: var(--_mono-accordion-glyph-color);\r\n line-height: 1;\r\n}\r\n\r\n/* The glyph itself fills the chip at 62% — light: the `[data-mono-slot]`\r\n placeholder the svg is moved into; shadow: the projected svg. */\r\n[mono-accordion] > [mono-head] > [mono-glyph] > [data-mono-slot=\"icon\"],\r\n[mono-accordion] > [mono-head] > [mono-glyph] > svg,\r\n[mono-accordion] > [mono-head] > [mono-glyph] slot[name=\"icon\"]::slotted(svg) {\r\n display: block;\r\n width: 62%;\r\n height: 62%;\r\n}\r\n\r\n/* …and the light build's svg fills that placeholder. It used to lean on a global\r\n `[data-mono-slot='icon'] > svg` rule in chip.css; since the Basecoat port that\r\n rule is scoped to chips, and an unsized inline svg falls back to 300×150. */\r\n[mono-accordion] > [mono-head] > [mono-glyph] > [data-mono-slot=\"icon\"] > svg {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* =========================================\r\n Title + description\r\n ========================================= */\r\n\r\n:where([mono-accordion] > [mono-head]) > [mono-heading] {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: calc(var(--mono-spacing) * 0.25);\r\n}\r\n\r\n/* `> slot[name=\"header\"]`: in the shadow build the title/subtitle are the\r\n FALLBACK content of `<slot name=\"header\">`, so they sit one element deeper. */\r\n:where(\r\n [mono-accordion] > [mono-head] > [mono-heading],\r\n [mono-accordion] > [mono-head] > [mono-heading] > slot[name=\"header\"]\r\n) > [mono-title] {\r\n font-size: var(--_mono-accordion-title-font);\r\n line-height: var(--_mono-accordion-title-line-height);\r\n font-weight: var(--_mono-accordion-title-weight);\r\n color: var(--_mono-accordion-text);\r\n}\r\n\r\n:where(\r\n [mono-accordion] > [mono-head] > [mono-heading],\r\n [mono-accordion] > [mono-head] > [mono-heading] > slot[name=\"header\"]\r\n) > :is([mono-subtitle], [mono-description]) {\r\n font-size: var(--_mono-accordion-description-font);\r\n line-height: var(--mono-leading-normal);\r\n color: var(--_mono-accordion-description-color);\r\n}\r\n\r\n:where([mono-accordion] > [mono-head]) > [mono-actions] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: calc(var(--mono-spacing) * 1.5);\r\n}\r\n\r\n/* =========================================\r\n Chevron — `summary > svg:last-child`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > summary > svg:last-child\r\n — text-muted-foreground ms-auto size-4 */\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details > summary > svg:last-child\r\n — pointer-events-none shrink-0 transition-transform */\r\n:where([mono-accordion] > [mono-head]) > [mono-arrow] {\r\n flex-shrink: 0;\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-accordion-arrow-size);\r\n height: var(--_mono-accordion-arrow-size);\r\n color: var(--_mono-accordion-arrow-color);\r\n pointer-events: none;\r\n transition:\r\n rotate var(--_mono-accordion-duration) var(--mono-ease),\r\n color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion] > [mono-head] > [mono-arrow] > :is(svg, span) {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details[open] > summary > svg:last-child\r\n — rotate-180 */\r\n[mono-accordion][mono-open] > [mono-head] > [mono-arrow] {\r\n rotate: 180deg;\r\n color: var(--_mono-accordion-arrow-open-color);\r\n}\r\n\r\n/* =========================================\r\n Body — `details > :not(summary)`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details > :not(summary) — overflow-hidden */\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > :not(summary) — pt-0 pb-4 text-sm\r\n A <details> collapses for free; a div has to be animated. The\r\n `grid-template-rows: 0fr → 1fr` trick measures the content's natural height\r\n through the grid track and interpolates the row size, with the vertical padding\r\n and the top border collapsing in lockstep so the entrance feels of-a-piece.\r\n `> * { min-height: 0 }` lets grid items shrink below their intrinsic height when\r\n the row is 0fr — without it the body would refuse to collapse. */\r\n:where([mono-accordion]) > [mono-body] {\r\n display: grid;\r\n grid-template-rows: 0fr;\r\n overflow: hidden;\r\n padding: 0 var(--_mono-accordion-pad-x);\r\n font-size: var(--_mono-accordion-body-font);\r\n line-height: var(--_mono-accordion-body-line-height);\r\n color: var(--_mono-accordion-body-color);\r\n border-top: var(--mono-border-width) solid transparent;\r\n\r\n /* Scope this body's layout/paint work to its own box. Measured effect: neutral on\r\n toggle cost, a modest win on the initial layout of a long list of accordions.\r\n (It is NOT what fixes sibling cost — Chrome already does not re-lay-out sibling\r\n subtrees when one accordion animates; that was measured, not assumed.)\r\n `paint` adds no new clipping — `overflow: hidden` above already clips. `layout`\r\n does make this a containing block + stacking context for absolutely positioned\r\n descendants, which is safe here because that same `overflow: hidden` already\r\n confined them, and mono's own popups are moved to a <body> portal. */\r\n contain: layout paint;\r\n\r\n transition:\r\n grid-template-rows var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-top var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-bottom var(--_mono-accordion-duration) var(--mono-ease),\r\n border-top-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion] > [mono-body] > * {\r\n min-width: 0;\r\n min-height: 0;\r\n}\r\n\r\n/* Shadow build: the body's native <slot>s (`body` + the default one) default to\r\n `display: contents` and so have no box — slotted content would become the grid\r\n items directly (un-targetable by `> * { min-height: 0 }`) and keep the\r\n `grid-template-rows: 0fr → 1fr` track from ever collapsing. They sit in ONE\r\n `[mono-body-slots]` block, the single grid item (like the light build's\r\n <span data-mono-slot=\"body\">), so the open/close collapse works. A bare `slot`\r\n child is kept for markup that still renders one. */\r\n[mono-accordion] > [mono-body] > :is(slot, [mono-body-slots]) {\r\n display: block;\r\n min-width: 0;\r\n min-height: 0;\r\n}\r\n\r\n/* Standalone, the item IS the frame, so the open body is separated from the head\r\n by a hairline the way a card's footer is — EXTENSION, and the reason the top\r\n padding is not upstream's `pt-0` here. */\r\n[mono-accordion][mono-open] > [mono-body] {\r\n grid-template-rows: 1fr;\r\n padding-top: var(--_mono-accordion-pad-y);\r\n padding-bottom: var(--_mono-accordion-pad-y);\r\n border-top-color: var(--_mono-accordion-border);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > :not(summary) — pt-0.\r\n In a group the head and its body are one run of text between two dividers,\r\n exactly as upstream renders it, so the top gap and the hairline both go. */\r\n:where([mono-accordion-group], .mono-accordion-group) > [mono-accordion][mono-open] > [mono-body],\r\n[mono-accordion][mono-grouped][mono-open] > [mono-body] {\r\n padding-top: 0;\r\n border-top-color: transparent;\r\n}\r\n\r\n/* A collapsed body is still fully rendered — the `0fr` track only hides it — so\r\n without this every closed accordion keeps its whole slotted subtree in the style,\r\n layout and paint trees. `content-visibility: hidden` drops it entirely.\r\n\r\n What this buys, measured with ~320-node bodies (Chromium, median of 3):\r\n initial layout, 40 panels: 157ms → 18ms, and flat in the panel count\r\n (5 panels: 52ms → 23ms). That is the cost of putting a long list of heavy\r\n accordions on screen at all — e.g. opening a modal that builds N entry forms.\r\n What it does NOT buy: a cheaper toggle. Skipping the subtree means an opening\r\n panel is laid out from scratch, so one open+close costs slightly MORE\r\n (23ms → 31ms at 40 panels). The toggle's real cost is the animation above —\r\n see `--mono-accordion-duration`.\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 grid can still measure the content it is expanding to;\r\n closing holds it `visible` until 100%, so the collapse plays out before the content\r\n is dropped. Get that backwards and a closing body vanishes instantly instead of\r\n collapsing.\r\n\r\n Gated behind @supports deliberately. `content-visibility … allow-discrete` inside\r\n the `transition` SHORTHAND is a parse error to a browser without the feature, and a\r\n single bad entry drops the WHOLE declaration — which would take every accordion\r\n transition with it. Inside the guard the shorthand is known to parse, so the list is\r\n restated in full rather than patched with the `transition-behavior` longhand.\r\n Browsers without support keep exactly the previous behaviour.\r\n\r\n Must stay ABOVE the reduced-motion block: @supports adds no specificity, so source\r\n order is the only thing keeping `transition: none` the winner down there. */\r\n@supports (transition-behavior: allow-discrete) {\r\n :where([mono-accordion]) > [mono-body] {\r\n content-visibility: hidden;\r\n /* Must stay `0`, NOT `auto 0`. `content-visibility: hidden` skips this element's\r\n own contents, so its size comes from HERE — and the `auto` keyword's remembered\r\n size is the panel's last OPEN height, which leaves a closed accordion holding\r\n full height with nothing in it. Tried, measured, reverted: a closed body read\r\n 656px instead of collapsing. The scrollbar-stability that `auto` normally buys\r\n does not apply to an element that is itself the skipped one. */\r\n contain-intrinsic-size: 0;\r\n transition:\r\n grid-template-rows var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-top var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-bottom var(--_mono-accordion-duration) var(--mono-ease),\r\n border-top-color var(--mono-duration) var(--mono-ease),\r\n content-visibility var(--_mono-accordion-duration) allow-discrete;\r\n }\r\n\r\n [mono-accordion][mono-open] > [mono-body] {\r\n content-visibility: visible;\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-accordion],\r\n [mono-accordion] > [mono-head],\r\n [mono-accordion] > [mono-head] > [mono-arrow],\r\n [mono-accordion] > [mono-body] {\r\n transition: none;\r\n }\r\n}\r\n";
268
+ //#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\accordion\accordion.css?raw.js
269
+ var accordion_css_raw_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-accordion — a port of Basecoat's `.accordion`\r\n (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-accordion size=\"lg\" color=\"success\" model-value>\r\n <div mono-accordion mono-size=\"lg\" mono-color=\"success\" mono-open>\r\n <button mono-head type=\"button\" aria-expanded=\"true\">\r\n <span mono-glyph>…</span>\r\n <span mono-heading>\r\n <span mono-title>Question</span>\r\n <span mono-subtitle>Sub-text</span>\r\n </span>\r\n <span mono-actions>…</span>\r\n <span mono-arrow><svg …></svg></span>\r\n </button>\r\n <div mono-body role=\"region\"><div>…</div></div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element writes them on its root — the\r\n host in the light build, an inner root `<div>` in the shadow one — plus the\r\n states `mono-open` and `mono-disabled`. The old classes\r\n (`.mono-accordion.md.primary.open`) are still emitted as inert hooks until\r\n 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-accordion-group] ≡ .accordion (flex w-full flex-col; maia /\r\n mira / luma / rhea add the frame, which is\r\n the `-group-*` knobs below)\r\n [mono-accordion] ≡ .accordion > details (not-last:border-b, and\r\n `open:bg-muted/50` on four flavors)\r\n — EXTENSION when standalone: upstream has no\r\n accordion outside a group, so on its own it\r\n keeps this component's frame (border, radius,\r\n shadow-xs). Inside a group the frame moves to\r\n the group and the item flattens to a divider.\r\n [mono-head] ≡ > summary (relative flex w-full items-start\r\n justify-between border border-transparent\r\n cursor-pointer outline-none, rounded-md py-4\r\n text-left text-sm font-medium hover:underline,\r\n focus-visible:ring-3 ring-ring/50 border-ring)\r\n — DEVIATION: a real <button>, so the row is a\r\n button for a11y rather than a <summary> whose\r\n open state the element would have to fight\r\n [mono-glyph] ≡ EXTENSION (the leading icon chip)\r\n [mono-heading] > [mono-title] ≡ the summary's own text\r\n [mono-subtitle] ≡ EXTENSION (a second line under the title;\r\n `[mono-description]` is its old name, and the\r\n element still renders both)\r\n [mono-actions] ≡ EXTENSION (trailing controls in the row)\r\n [mono-arrow] ≡ summary > svg:last-child (text-muted-foreground\r\n ms-auto size-4, rotate-180 while open)\r\n [mono-body] ≡ details > :not(summary) (overflow-hidden,\r\n pt-0 pb-4 text-sm) — plus the animated\r\n collapse, which upstream's <details> gets free\r\n [mono-size]/[mono-color] ≡ EXTENSION (upstream ships one size, no colour)\r\n [mono-disabled] ≡ details[aria-disabled] > summary\r\n (pointer-events-none opacity-50)\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-title]`, `[mono-body]`, `[mono-actions]`\r\n and `[mono-icon]` are also card's, dropdown's and button's part names, and an\r\n accordion BODY is a place consumers put cards and buttons. Every rule here is\r\n therefore written as an explicit child path from the root — `:where([mono-accordion]\r\n > [mono-head] > [mono-heading]) > [mono-title]` — so a nested component's parts\r\n are never reached. The `:where()` keeps that path at (0,1,0), the same weight a\r\n one-attribute rule would have, so a `cssClass` utility still wins by source order.\r\n\r\n FLAVORS set `--mono-accordion-{radius,shadow,pad-x-<size>,pad-y-<size>,\r\n title-font-<size>,body-font-<size>,open-bg,group-radius,group-border-width,\r\n arrow-size,ring-width}`; every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"accordion\"` prints the matrix).\r\n ========================================================================= */\r\n\r\nmono-accordion {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the item\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details — not-last:border-b */\r\n[mono-accordion] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-accordion-primary: var(--mono-accordion-primary, var(--primary));\r\n --_mono-accordion-secondary: var(--mono-accordion-secondary, var(--secondary-foreground));\r\n --_mono-accordion-success: var(--mono-accordion-success, var(--success));\r\n --_mono-accordion-danger: var(--mono-accordion-danger, var(--destructive));\r\n --_mono-accordion-warning: var(--mono-accordion-warning, var(--warning));\r\n --_mono-accordion-info: var(--mono-accordion-info, var(--info));\r\n --_mono-accordion-teal: var(--mono-accordion-teal, var(--teal));\r\n --_mono-accordion-purple: var(--mono-accordion-purple, var(--purple));\r\n --_mono-accordion-neutral: var(--mono-accordion-neutral, var(--neutral));\r\n --_mono-accordion-dark: var(--mono-accordion-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-accordion-accent: var(--mono-accordion-accent, var(--_mono-accordion-accent-preset, var(--_mono-accordion-primary)));\r\n\r\n /* ── surfaces ──────────────────────────────────────────────────────────── */\r\n --_mono-accordion-bg: var(--mono-accordion-bg, var(--mono-accordion-surface, var(--card)));\r\n --_mono-accordion-text: var(--mono-accordion-text, var(--card-foreground));\r\n --_mono-accordion-border: var(--mono-accordion-border, var(--border));\r\n --_mono-accordion-shadow: var(--mono-accordion-shadow, var(--mono-shadow-xs));\r\n /* `open:bg-muted/50` — vega does NOT tint an open item; maia, mira, luma and\r\n rhea do, and set this knob. `--mono-accordion-head-bg` is the pre-port name,\r\n honoured until 2.0: it tinted the open HEAD, where this tints the open item\r\n (head and body alike), which is what upstream's `open:` variant does. */\r\n /* An OPAQUE fill, not an overlay: it replaces the item's own surface while\r\n open, so a flavor's `bg-muted/50` is written as that mix OVER `--card`.\r\n Defaulting to the item's surface is what makes vega's \"no tint\" a no-op. */\r\n --_mono-accordion-open-bg: var(--mono-accordion-open-bg, var(--mono-accordion-head-bg, var(--_mono-accordion-bg)));\r\n --_mono-accordion-open-border-color: var(--mono-accordion-open-border-color,\r\n color-mix(in oklab, var(--_mono-accordion-accent) 32%, var(--_mono-accordion-border)));\r\n --_mono-accordion-open-shadow: var(--mono-accordion-open-shadow,\r\n 0 3px 14px color-mix(in oklab, var(--_mono-accordion-accent) 9%, transparent));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .accordion > details > summary — py-4 text-sm\r\n — DEVIATION: the inline padding is ours. Upstream's summary has none because\r\n its group is edge-to-edge in the page; this item can stand alone inside its\r\n own frame, where text flush against the border reads as a bug. maia / luma /\r\n rhea say `p-4`, which is exactly the value used here. */\r\n --_mono-accordion-pad-x: var(--mono-accordion-pad-x, var(--_mono-accordion-pad-x-preset, var(--mono-accordion-pad-x-md, calc(var(--mono-spacing) * 4))));\r\n --_mono-accordion-pad-y: var(--mono-accordion-pad-y, var(--_mono-accordion-pad-y-preset, var(--mono-accordion-pad-y-md, calc(var(--mono-spacing) * 4))));\r\n --_mono-accordion-radius: var(--mono-accordion-radius, var(--_mono-accordion-radius-preset, var(--mono-accordion-radius-md, var(--mono-radius-md))));\r\n --_mono-accordion-gap: var(--mono-accordion-gap, var(--_mono-accordion-gap-preset, calc(var(--mono-spacing) * 3)));\r\n\r\n /* ── type ──────────────────────────────────────────────────────────────── */\r\n --_mono-accordion-title-font: var(--mono-accordion-title-font, var(--_mono-accordion-title-font-preset, var(--mono-accordion-title-font-md, var(--mono-text-sm))));\r\n --_mono-accordion-title-line-height: var(--mono-accordion-title-line-height, var(--_mono-accordion-title-line-height-preset, var(--mono-text-sm--lh)));\r\n --_mono-accordion-title-weight: var(--mono-accordion-title-weight, var(--mono-font-weight-medium));\r\n /* `hover:underline` — the whole row is the control, so the hover cue is on its\r\n label. A flavor (or a consumer) sets `none` to drop it. */\r\n --_mono-accordion-title-hover-decoration: var(--mono-accordion-title-hover-decoration, underline);\r\n --_mono-accordion-description-font: var(--mono-accordion-description-font, var(--_mono-accordion-description-font-preset, var(--mono-text-xs)));\r\n --_mono-accordion-description-color: var(--mono-accordion-description-color, var(--muted-foreground));\r\n --_mono-accordion-body-font: var(--mono-accordion-body-font, var(--_mono-accordion-body-font-preset, var(--mono-accordion-body-font-md, var(--mono-text-sm))));\r\n --_mono-accordion-body-line-height: var(--mono-accordion-body-line-height, var(--_mono-accordion-body-line-height-preset, var(--mono-text-sm--lh)));\r\n --_mono-accordion-body-color: var(--mono-accordion-body-color, inherit);\r\n\r\n /* ── the chevron — `text-muted-foreground size-4` ──────────────────────── */\r\n --_mono-accordion-arrow-size: var(--mono-accordion-arrow-size, var(--_mono-accordion-arrow-size-preset, calc(var(--mono-spacing) * 4)));\r\n --_mono-accordion-arrow-color: var(--mono-accordion-arrow-color, var(--muted-foreground));\r\n /* EXTENSION: the role reads the open state at a glance. Set it to\r\n `--muted-foreground` for upstream's single-colour chevron. */\r\n --_mono-accordion-arrow-open-color: var(--mono-accordion-arrow-open-color, var(--_mono-accordion-accent));\r\n\r\n /* ── the leading chip (EXTENSION) ──────────────────────────────────────── */\r\n --_mono-accordion-glyph-size: var(--mono-accordion-glyph-size, var(--_mono-accordion-glyph-size-preset, calc(var(--mono-spacing) * 7)));\r\n --_mono-accordion-glyph-radius: var(--mono-accordion-glyph-radius, var(--_mono-accordion-glyph-radius-preset, var(--mono-radius-sm)));\r\n --_mono-accordion-glyph-bg: var(--mono-accordion-glyph-bg, color-mix(in oklab, var(--_mono-accordion-accent) 14%, transparent));\r\n --_mono-accordion-glyph-color: var(--mono-accordion-glyph-color, var(--_mono-accordion-accent));\r\n\r\n /* ── focus — `focus-visible:ring-3 ring-ring/50 border-ring` ───────────── */\r\n --_mono-accordion-ring-color: var(--mono-accordion-ring-color, var(--_mono-accordion-accent));\r\n\r\n /* The head's hover fill. Upstream has none — it underlines the label instead —\r\n so the tint is 0% on vega. A flavor sets the ALPHA (`-head-hover-tint`) and\r\n the wash is built HERE: a flavor writing the colour itself would have to\r\n reference `--_mono-accordion-accent`, which is declared on this element, and\r\n a `:root` declaration that references it is invalid at computed-value time. */\r\n --_mono-accordion-head-hover-bg: var(--mono-accordion-head-hover-bg,\r\n color-mix(in oklab, var(--_mono-accordion-accent) var(--mono-accordion-head-hover-tint, 0%), transparent));\r\n --_mono-accordion-ring-width: var(--mono-accordion-ring-width, var(--mono-ring-width));\r\n /* A slot, so a state can neutralise the resting shadow without `box-shadow: none`. */\r\n --_mono-accordion-ring: 0 0 #0000;\r\n\r\n /* Open/close animation duration, shared by the body collapse and the chevron so\r\n `--mono-accordion-duration: 0s` means a fully instant toggle.\r\n\r\n This is THE lever for a slow open/close. `grid-template-rows: 0fr → 1fr` is the\r\n only animated LAYOUT property in the library, and it re-lays-out the whole slotted\r\n subtree on every frame of the transition, so its cost scales with what is inside\r\n the body — and, because the panel's own height changes, with whatever follows it\r\n in the document too. Measured with ~320-node bodies (Chromium, median of 3), one\r\n open+close cycle: 24.8ms animated vs 3.6ms at `0s` — the animation is ~85% of the\r\n toggle's cost. Set this to `0s` on accordions whose bodies (or whose pages) are\r\n heavy.\r\n\r\n THREE approaches that look like fixes and are NOT. All were built and measured\r\n (Chromium, LayoutDuration + RecalcStyleDuration, min of 9 toggles, two scenarios:\r\n 40 panels with ~320-node bodies, and one small panel above a 2000-row sticky\r\n table). Recorded so nobody spends the afternoon on them again:\r\n\r\n 1. Pin the track to a measured PIXEL height for the transition, so the `fr`\r\n never has to be resolved against content. Landed inside the noise across\r\n three runs (+11%, -2%, -17%) and cost two extra forced layouts per toggle to\r\n measure and release. The per-frame cost is NOT the `fr` resolution — it is\r\n that the row's block size changes at all, which re-lays-out the grid item\r\n however the target size was expressed.\r\n 2. Also give the inner region a definite `height`, so its own constraint space\r\n stops changing and its subtree layout can be cached. No effect either.\r\n 3. Don't animate a layout property at all: snap the box to its final size and\r\n slide the content in on `transform`/`opacity`. A quick CSS prototype looked\r\n like a 50% win, but only because it had no `content-visibility` transition\r\n and so dropped the subtree instantly on close — the close animation was\r\n simply invisible. Made to actually work, it measured 14.6/18.3ms vs\r\n collapse's 20.0/18.4ms on heavy bodies (i.e. unreliable), and 17.4/19.6ms vs\r\n 12.6/12.8ms on the heavy-page scenario — reliably WORSE, because the\r\n transform/opacity pass costs more than the box animation it replaced.\r\n\r\n So `--mono-accordion-duration: 0s` really is the lever, and there is no cleverer\r\n one. Measured against it: heavy bodies 7.0/10.8ms vs 20.0/18.4ms (~45-65% off);\r\n heavy page 11.1/11.7ms vs 12.6/12.8ms (~10% off — on a page like that the\r\n accordion is nearly irrelevant and the page's own weight is the cost). */\r\n --_mono-accordion-duration: var(--mono-accordion-duration, var(--mono-duration));\r\n\r\n display: block;\r\n width: 100%;\r\n font-family: inherit;\r\n color: var(--_mono-accordion-text);\r\n\r\n /* EXTENSION — the standalone frame. Inside a group this is flattened below and\r\n the frame moves to the group, which is upstream's arrangement. */\r\n border: var(--mono-border-width) solid var(--_mono-accordion-border);\r\n border-radius: var(--_mono-accordion-radius);\r\n background: var(--_mono-accordion-bg);\r\n box-shadow: var(--_mono-accordion-shadow);\r\n overflow: hidden;\r\n transition:\r\n border-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion],\r\n:where([mono-accordion]) *,\r\n:where([mono-accordion]) *::before,\r\n:where([mono-accordion]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* The shadow build renders EVERY region up front (so DSD can project into them\r\n server-side) and marks the ones with nothing in them; the light build renders\r\n only what exists. Hiding them here is what keeps the two builds identical.\r\n\r\n NOT wrapped in `:where()`, unlike the other parts: a region rule is two\r\n attributes strong, so a zero-weight hide would tie and lose on source order. */\r\n[mono-accordion] :is(\r\n [mono-glyph],\r\n [mono-heading],\r\n [mono-title],\r\n [mono-subtitle],\r\n [mono-description],\r\n [mono-actions]\r\n)[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Group — `.accordion`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion — flex w-full flex-col\r\n The GROUP is consumer markup — the element renders one item, not the list — so\r\n unlike every part below, its pre-port CLASS is public API and keeps working\r\n beside the attribute until 2.0.\r\n The frame knobs are inert on vega (0 width, no radius) and set by the four\r\n flavors whose `.accordion` says `overflow-hidden rounded-2xl border`. */\r\n:is([mono-accordion-group], .mono-accordion-group) {\r\n --_mono-accordion-group-gap: var(--mono-accordion-group-gap, 0px);\r\n --_mono-accordion-group-radius: var(--mono-accordion-group-radius, 0px);\r\n --_mono-accordion-group-border-width: var(--mono-accordion-group-border-width, 0px);\r\n --_mono-accordion-group-border-color: var(--mono-accordion-group-border-color, var(--border));\r\n\r\n display: flex;\r\n width: 100%;\r\n flex-direction: column;\r\n gap: var(--_mono-accordion-group-gap);\r\n box-sizing: border-box;\r\n border: var(--_mono-accordion-group-border-width) solid var(--_mono-accordion-group-border-color);\r\n border-radius: var(--_mono-accordion-group-radius);\r\n overflow: hidden;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details — not-last:border-b\r\n In a group the ITEM stops being a card: the frame is the group's, and all an\r\n item carries is the hairline to the next one.\r\n\r\n TWO selectors for one rule, because the item is not always a child of the\r\n group. Hand-written markup nests `[mono-accordion]` directly, so the `>`\r\n path matches; the ELEMENT puts a custom-element host in between (light) or a\r\n shadow boundary (shadow), which no selector crosses — so it detects the group\r\n itself and writes `mono-grouped` / `mono-last` on its root. */\r\n:where([mono-accordion-group], .mono-accordion-group) > [mono-accordion],\r\n[mono-accordion][mono-grouped] {\r\n border-width: 0;\r\n border-radius: 0;\r\n box-shadow: none;\r\n}\r\n\r\n/* The divider rides the group's own CHILD, whatever that is — the item itself in\r\n hand-written markup, the custom-element host when the element renders it. That\r\n is what makes `:last-child` reliable: the host is a child of the group in both\r\n builds, where the ITEM is one only in raw markup, and an item that asked \"am I\r\n last?\" itself would answer from however many siblings existed when it rendered. */\r\n:where([mono-accordion-group], .mono-accordion-group)\r\n > :is([mono-accordion], mono-accordion, mono-shadow-accordion) {\r\n border-bottom: var(--mono-border-width) solid var(--mono-accordion-border, var(--border));\r\n}\r\n\r\n:where([mono-accordion-group], .mono-accordion-group)\r\n > :is([mono-accordion], mono-accordion, mono-shadow-accordion):last-child {\r\n border-bottom-width: 0;\r\n}\r\n\r\n/* A group with a GAP has separate boxes again, and a divider would float in the\r\n space between them — so a gap is a consumer's own arrangement, not upstream's,\r\n and they set `--mono-accordion-group-gap` knowing the dividers go with it. */\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: Basecoat ships ONE accordion size; md is its `summary`\r\n ========================================= */\r\n\r\n[mono-accordion][mono-size=\"xs\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-xs, calc(var(--mono-spacing) * 2.5));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-xs, calc(var(--mono-spacing) * 2));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-xs, var(--mono-radius-sm));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 1.5);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-xs, var(--mono-text-xs));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-xs);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-xs, var(--mono-text-xs));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 3);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 4.5);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-sm);\r\n}\r\n\r\n[mono-accordion][mono-size=\"sm\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-sm, calc(var(--mono-spacing) * 3));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-sm, var(--mono-radius-md));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 2);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-sm, var(--mono-text-xs));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-xs);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-sm, var(--mono-text-xs));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 3.5);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 6);\r\n}\r\n\r\n[mono-accordion][mono-size=\"lg\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-lg, calc(var(--mono-spacing) * 5));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-lg, calc(var(--mono-spacing) * 5));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-lg, var(--mono-radius-lg));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 3.5);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-lg, var(--mono-text-base));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-lg, var(--mono-text-sm));\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 5);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 8);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-md);\r\n}\r\n\r\n[mono-accordion][mono-size=\"xl\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-xl, calc(var(--mono-spacing) * 6));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-xl, calc(var(--mono-spacing) * 6));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-xl, var(--mono-radius-xl));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 4);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-xl, var(--mono-text-lg));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-sm);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-xl, var(--mono-text-base));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 5.5);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 9);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-lg);\r\n}\r\n\r\n[mono-accordion][mono-size=\"xxl\"] {\r\n --_mono-accordion-pad-x-preset: var(--mono-accordion-pad-x-xxl, calc(var(--mono-spacing) * 7));\r\n --_mono-accordion-pad-y-preset: var(--mono-accordion-pad-y-xxl, calc(var(--mono-spacing) * 7));\r\n --_mono-accordion-radius-preset: var(--mono-accordion-radius-xxl, var(--mono-radius-xl));\r\n --_mono-accordion-gap-preset: calc(var(--mono-spacing) * 4.5);\r\n --_mono-accordion-title-font-preset: var(--mono-accordion-title-font-xxl, var(--mono-text-xl));\r\n --_mono-accordion-title-line-height-preset: var(--mono-text-xl--lh);\r\n --_mono-accordion-description-font-preset: var(--mono-text-sm);\r\n --_mono-accordion-body-font-preset: var(--mono-accordion-body-font-xxl, var(--mono-text-lg));\r\n --_mono-accordion-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-accordion-arrow-size-preset: calc(var(--mono-spacing) * 6);\r\n --_mono-accordion-glyph-size-preset: calc(var(--mono-spacing) * 10);\r\n --_mono-accordion-glyph-radius-preset: var(--mono-radius-lg);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role tints the chevron, the ring and the open edge\r\n ========================================= */\r\n\r\n[mono-accordion][mono-color=\"primary\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-primary); }\r\n[mono-accordion][mono-color=\"secondary\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-secondary); }\r\n[mono-accordion][mono-color=\"success\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-success); }\r\n[mono-accordion][mono-color=\"danger\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-danger); }\r\n[mono-accordion][mono-color=\"warning\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-warning); }\r\n[mono-accordion][mono-color=\"info\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-info); }\r\n[mono-accordion][mono-color=\"teal\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-teal); }\r\n[mono-accordion][mono-color=\"purple\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-purple); }\r\n[mono-accordion][mono-color=\"neutral\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-neutral); }\r\n[mono-accordion][mono-color=\"dark\"] { --_mono-accordion-accent-preset: var(--_mono-accordion-dark); }\r\n\r\n/* =========================================\r\n States\r\n ========================================= */\r\n\r\n[mono-accordion][mono-open] {\r\n border-color: var(--_mono-accordion-open-border-color);\r\n box-shadow: var(--_mono-accordion-open-shadow);\r\n background: var(--_mono-accordion-open-bg);\r\n}\r\n\r\n/* In a group the item has no frame to tint — only the open wash survives. */\r\n:where([mono-accordion-group], .mono-accordion-group) > [mono-accordion][mono-open],\r\n[mono-accordion][mono-grouped][mono-open] {\r\n border-color: var(--_mono-accordion-border);\r\n box-shadow: none;\r\n}\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details[aria-disabled='true'] > summary, .accordion > details > summary[aria-disabled='true']\r\n — pointer-events-none opacity-50. DEVIATION: 0.6, this component's pre-port\r\n value, and on the whole item rather than the summary alone (the body is\r\n equally unusable). */\r\n[mono-accordion][mono-disabled] {\r\n opacity: 0.6;\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n/* =========================================\r\n Head — `> summary`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details > summary —\r\n relative flex w-full flex-1 cursor-pointer list-none items-start\r\n justify-between border border-transparent transition-all outline-none */\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > summary — rounded-md py-4\r\n text-left text-sm font-medium hover:underline focus-visible:ring-3\r\n focus-visible:ring-ring/50 focus-visible:border-ring\r\n — DEVIATIONS: a real <button> (so it needs the UA button reset), and\r\n `items-center` rather than `items-start`: this row can carry a glyph chip and\r\n trailing actions, which upstream's text-only summary never does. */\r\n:where([mono-accordion]) > [mono-head] {\r\n position: relative;\r\n display: flex;\r\n width: 100%;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--_mono-accordion-gap);\r\n padding: var(--_mono-accordion-pad-y) var(--_mono-accordion-pad-x);\r\n border: var(--mono-border-width) solid transparent;\r\n border-radius: var(--_mono-accordion-radius);\r\n background: none;\r\n color: inherit;\r\n font: inherit;\r\n text-align: left;\r\n cursor: pointer;\r\n user-select: none;\r\n outline: none;\r\n appearance: none;\r\n box-shadow: var(--_mono-accordion-ring);\r\n transition:\r\n background-color var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion] > [mono-head]:focus-visible {\r\n border-color: var(--_mono-accordion-ring-color);\r\n --_mono-accordion-ring: 0 0 0 var(--_mono-accordion-ring-width)\r\n color-mix(in oklab, var(--_mono-accordion-ring-color) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* `hover:underline` — on the label, which is the only text in upstream's summary. */\r\n@media (hover: hover) {\r\n [mono-accordion] > [mono-head]:hover:not(:disabled) {\r\n background: var(--_mono-accordion-head-hover-bg);\r\n }\r\n\r\n [mono-accordion] > [mono-head]:hover:not(:disabled) [mono-title] {\r\n text-decoration-line: var(--_mono-accordion-title-hover-decoration);\r\n }\r\n}\r\n\r\n[mono-accordion] > [mono-head]:disabled {\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\n/* =========================================\r\n Leading chip — EXTENSION\r\n ========================================= */\r\n\r\n:where([mono-accordion] > [mono-head]) > [mono-glyph] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-accordion-glyph-size);\r\n height: var(--_mono-accordion-glyph-size);\r\n border-radius: var(--_mono-accordion-glyph-radius);\r\n background: var(--_mono-accordion-glyph-bg);\r\n color: var(--_mono-accordion-glyph-color);\r\n line-height: 1;\r\n}\r\n\r\n/* The glyph itself fills the chip at 62% — light: the `[data-mono-slot]`\r\n placeholder the svg is moved into; shadow: the projected svg. */\r\n[mono-accordion] > [mono-head] > [mono-glyph] > [data-mono-slot=\"icon\"],\r\n[mono-accordion] > [mono-head] > [mono-glyph] > svg,\r\n[mono-accordion] > [mono-head] > [mono-glyph] slot[name=\"icon\"]::slotted(svg) {\r\n display: block;\r\n width: 62%;\r\n height: 62%;\r\n}\r\n\r\n/* …and the light build's svg fills that placeholder. It used to lean on a global\r\n `[data-mono-slot='icon'] > svg` rule in chip.css; since the Basecoat port that\r\n rule is scoped to chips, and an unsized inline svg falls back to 300×150. */\r\n[mono-accordion] > [mono-head] > [mono-glyph] > [data-mono-slot=\"icon\"] > svg {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* =========================================\r\n Title + description\r\n ========================================= */\r\n\r\n:where([mono-accordion] > [mono-head]) > [mono-heading] {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: calc(var(--mono-spacing) * 0.25);\r\n}\r\n\r\n/* `> slot[name=\"header\"]`: in the shadow build the title/subtitle are the\r\n FALLBACK content of `<slot name=\"header\">`, so they sit one element deeper. */\r\n:where(\r\n [mono-accordion] > [mono-head] > [mono-heading],\r\n [mono-accordion] > [mono-head] > [mono-heading] > slot[name=\"header\"]\r\n) > [mono-title] {\r\n font-size: var(--_mono-accordion-title-font);\r\n line-height: var(--_mono-accordion-title-line-height);\r\n font-weight: var(--_mono-accordion-title-weight);\r\n color: var(--_mono-accordion-text);\r\n}\r\n\r\n:where(\r\n [mono-accordion] > [mono-head] > [mono-heading],\r\n [mono-accordion] > [mono-head] > [mono-heading] > slot[name=\"header\"]\r\n) > :is([mono-subtitle], [mono-description]) {\r\n font-size: var(--_mono-accordion-description-font);\r\n line-height: var(--mono-leading-normal);\r\n color: var(--_mono-accordion-description-color);\r\n}\r\n\r\n:where([mono-accordion] > [mono-head]) > [mono-actions] {\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: calc(var(--mono-spacing) * 1.5);\r\n}\r\n\r\n/* =========================================\r\n Chevron — `summary > svg:last-child`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > summary > svg:last-child\r\n — text-muted-foreground ms-auto size-4 */\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details > summary > svg:last-child\r\n — pointer-events-none shrink-0 transition-transform */\r\n:where([mono-accordion] > [mono-head]) > [mono-arrow] {\r\n flex-shrink: 0;\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-accordion-arrow-size);\r\n height: var(--_mono-accordion-arrow-size);\r\n color: var(--_mono-accordion-arrow-color);\r\n pointer-events: none;\r\n transition:\r\n rotate var(--_mono-accordion-duration) var(--mono-ease),\r\n color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion] > [mono-head] > [mono-arrow] > :is(svg, span) {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details[open] > summary > svg:last-child\r\n — rotate-180 */\r\n[mono-accordion][mono-open] > [mono-head] > [mono-arrow] {\r\n rotate: 180deg;\r\n color: var(--_mono-accordion-arrow-open-color);\r\n}\r\n\r\n/* =========================================\r\n Body — `details > :not(summary)`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/accordion.css .accordion > details > :not(summary) — overflow-hidden */\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > :not(summary) — pt-0 pb-4 text-sm\r\n A <details> collapses for free; a div has to be animated. The\r\n `grid-template-rows: 0fr → 1fr` trick measures the content's natural height\r\n through the grid track and interpolates the row size, with the vertical padding\r\n and the top border collapsing in lockstep so the entrance feels of-a-piece.\r\n `> * { min-height: 0 }` lets grid items shrink below their intrinsic height when\r\n the row is 0fr — without it the body would refuse to collapse. */\r\n:where([mono-accordion]) > [mono-body] {\r\n display: grid;\r\n grid-template-rows: 0fr;\r\n overflow: hidden;\r\n padding: 0 var(--_mono-accordion-pad-x);\r\n font-size: var(--_mono-accordion-body-font);\r\n line-height: var(--_mono-accordion-body-line-height);\r\n color: var(--_mono-accordion-body-color);\r\n border-top: var(--mono-border-width) solid transparent;\r\n\r\n /* Scope this body's layout/paint work to its own box. Measured effect: neutral on\r\n toggle cost, a modest win on the initial layout of a long list of accordions.\r\n (It is NOT what fixes sibling cost — Chrome already does not re-lay-out sibling\r\n subtrees when one accordion animates; that was measured, not assumed.)\r\n `paint` adds no new clipping — `overflow: hidden` above already clips. `layout`\r\n does make this a containing block + stacking context for absolutely positioned\r\n descendants, which is safe here because that same `overflow: hidden` already\r\n confined them, and mono's own popups are moved to a <body> portal. */\r\n contain: layout paint;\r\n\r\n transition:\r\n grid-template-rows var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-top var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-bottom var(--_mono-accordion-duration) var(--mono-ease),\r\n border-top-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-accordion] > [mono-body] > * {\r\n min-width: 0;\r\n min-height: 0;\r\n}\r\n\r\n/* Shadow build: the body's native <slot>s (`body` + the default one) default to\r\n `display: contents` and so have no box — slotted content would become the grid\r\n items directly (un-targetable by `> * { min-height: 0 }`) and keep the\r\n `grid-template-rows: 0fr → 1fr` track from ever collapsing. They sit in ONE\r\n `[mono-body-slots]` block, the single grid item (like the light build's\r\n <span data-mono-slot=\"body\">), so the open/close collapse works. A bare `slot`\r\n child is kept for markup that still renders one. */\r\n[mono-accordion] > [mono-body] > :is(slot, [mono-body-slots]) {\r\n display: block;\r\n min-width: 0;\r\n min-height: 0;\r\n}\r\n\r\n/* Standalone, the item IS the frame, so the open body is separated from the head\r\n by a hairline the way a card's footer is — EXTENSION, and the reason the top\r\n padding is not upstream's `pt-0` here. */\r\n[mono-accordion][mono-open] > [mono-body] {\r\n grid-template-rows: 1fr;\r\n padding-top: var(--_mono-accordion-pad-y);\r\n padding-bottom: var(--_mono-accordion-pad-y);\r\n border-top-color: var(--_mono-accordion-border);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .accordion > details > :not(summary) — pt-0.\r\n In a group the head and its body are one run of text between two dividers,\r\n exactly as upstream renders it, so the top gap and the hairline both go. */\r\n:where([mono-accordion-group], .mono-accordion-group) > [mono-accordion][mono-open] > [mono-body],\r\n[mono-accordion][mono-grouped][mono-open] > [mono-body] {\r\n padding-top: 0;\r\n border-top-color: transparent;\r\n}\r\n\r\n/* A collapsed body is still fully rendered — the `0fr` track only hides it — so\r\n without this every closed accordion keeps its whole slotted subtree in the style,\r\n layout and paint trees. `content-visibility: hidden` drops it entirely.\r\n\r\n What this buys, measured with ~320-node bodies (Chromium, median of 3):\r\n initial layout, 40 panels: 157ms → 18ms, and flat in the panel count\r\n (5 panels: 52ms → 23ms). That is the cost of putting a long list of heavy\r\n accordions on screen at all — e.g. opening a modal that builds N entry forms.\r\n What it does NOT buy: a cheaper toggle. Skipping the subtree means an opening\r\n panel is laid out from scratch, so one open+close costs slightly MORE\r\n (23ms → 31ms at 40 panels). The toggle's real cost is the animation above —\r\n see `--mono-accordion-duration`.\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 grid can still measure the content it is expanding to;\r\n closing holds it `visible` until 100%, so the collapse plays out before the content\r\n is dropped. Get that backwards and a closing body vanishes instantly instead of\r\n collapsing.\r\n\r\n Gated behind @supports deliberately. `content-visibility … allow-discrete` inside\r\n the `transition` SHORTHAND is a parse error to a browser without the feature, and a\r\n single bad entry drops the WHOLE declaration — which would take every accordion\r\n transition with it. Inside the guard the shorthand is known to parse, so the list is\r\n restated in full rather than patched with the `transition-behavior` longhand.\r\n Browsers without support keep exactly the previous behaviour.\r\n\r\n Must stay ABOVE the reduced-motion block: @supports adds no specificity, so source\r\n order is the only thing keeping `transition: none` the winner down there. */\r\n@supports (transition-behavior: allow-discrete) {\r\n :where([mono-accordion]) > [mono-body] {\r\n content-visibility: hidden;\r\n /* Must stay `0`, NOT `auto 0`. `content-visibility: hidden` skips this element's\r\n own contents, so its size comes from HERE — and the `auto` keyword's remembered\r\n size is the panel's last OPEN height, which leaves a closed accordion holding\r\n full height with nothing in it. Tried, measured, reverted: a closed body read\r\n 656px instead of collapsing. The scrollbar-stability that `auto` normally buys\r\n does not apply to an element that is itself the skipped one. */\r\n contain-intrinsic-size: 0;\r\n transition:\r\n grid-template-rows var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-top var(--_mono-accordion-duration) var(--mono-ease),\r\n padding-bottom var(--_mono-accordion-duration) var(--mono-ease),\r\n border-top-color var(--mono-duration) var(--mono-ease),\r\n content-visibility var(--_mono-accordion-duration) allow-discrete;\r\n }\r\n\r\n [mono-accordion][mono-open] > [mono-body] {\r\n content-visibility: visible;\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-accordion],\r\n [mono-accordion] > [mono-head],\r\n [mono-accordion] > [mono-head] > [mono-arrow],\r\n [mono-accordion] > [mono-body] {\r\n transition: none;\r\n }\r\n}\r\n";
270
+
268
271
  //#endregion
269
272
  //#region src/components/accordion/mono-accordion.ts
270
- var MonoAccordion = class MonoAccordion extends MonoAccordionCore(LitElement) {
273
+ let MonoAccordion = class MonoAccordion extends MonoAccordionCore(LitElement) {
271
274
  constructor(..._args) {
272
275
  super(..._args);
273
276
  this._slotTitle = [];
@@ -280,7 +283,7 @@ var MonoAccordion = class MonoAccordion extends MonoAccordionCore(LitElement) {
280
283
  this._slotBody = [];
281
284
  }
282
285
  static {
283
- this.styles = [unsafeCSS(accordion_default)];
286
+ this.styles = [unsafeCSS(accordion_css_raw_default)];
284
287
  }
285
288
  createRenderRoot() {
286
289
  return this;
@@ -436,7 +439,7 @@ var MonoAccordion = class MonoAccordion extends MonoAccordionCore(LitElement) {
436
439
  this._hasBodySlotState = this._slotBody.length > 0;
437
440
  for (const node of capturedNodes) if (node.parentNode === this) this.removeChild(node);
438
441
  }
439
- guardHostTextContent(this, new Map([
442
+ guardHostTextContent(this, /* @__PURE__ */ new Map([
440
443
  ["title", this._slotTitle],
441
444
  ["label", this._slotLabel],
442
445
  ["subtitle", this._slotSubtitle],
@@ -462,5 +465,6 @@ var MonoAccordion = class MonoAccordion extends MonoAccordionCore(LitElement) {
462
465
  }
463
466
  };
464
467
  MonoAccordion = __decorate([customElement("mono-accordion")], MonoAccordion);
468
+
465
469
  //#endregion
466
- export { MonoAccordion };
470
+ export { MonoAccordion };