@mono-lit/helper 0.0.0-stage → 0.0.2

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 (539) hide show
  1. package/LICENSE.md +55 -0
  2. package/README.md +35 -3
  3. package/dist/breakpoints-CAbhDUht.js +84 -0
  4. package/dist/checkbox-Cqpie9Ap.js +4 -0
  5. package/dist/chip-DBUUa2eB.js +4 -0
  6. package/dist/chip-limits-BMoO31JM.js +213 -0
  7. package/dist/chip-strip-Cw3gyz0q.js +213 -0
  8. package/dist/color-DHYrfXsX.js +253 -0
  9. package/dist/css-class-BRKRzHx-.js +60 -0
  10. package/dist/css-size-DhHSVZJK.js +37 -0
  11. package/dist/data/theme/presets.json.d.ts +140 -0
  12. package/dist/data-source-controller-B_rgHCjw.js +241 -0
  13. package/dist/data-source-controller-Dbb4fd8I.js +241 -0
  14. package/dist/data-source-options-CP-X62Pa.js +535 -0
  15. package/dist/data-source-options-Jqj7LU3Z.js +537 -0
  16. package/dist/data-source-read-B4DGp6UQ.js +216 -0
  17. package/dist/data-source-read-DL88aH8t.js +217 -0
  18. package/dist/decorate-DEXtNagw.js +141 -0
  19. package/dist/element-props-CLB6yvbm.js +114 -0
  20. package/dist/esm-Ptok4SQZ.js +2026 -0
  21. package/dist/excel-CY6zGkcx.js +608 -0
  22. package/dist/excel-DopRbEMK.js +608 -0
  23. package/dist/export-BiGVyxt6.js +2302 -0
  24. package/dist/export.d.ts +1 -0
  25. package/dist/export.js +2302 -0
  26. package/dist/field-icons-DELrSdqJ.js +86 -0
  27. package/dist/field-path-C92eGLg3.js +251 -0
  28. package/dist/filter-builder-Bke3qOgJ.js +205 -0
  29. package/dist/filter-builder-CE4zE0V5.js +205 -0
  30. package/dist/filter-eval-DIfU2EAn.js +173 -0
  31. package/dist/filter-odata-C1vSGZaY.js +591 -0
  32. package/dist/form-control-core-B8d7k6vk.js +223 -0
  33. package/dist/form-control-core-eeRr0zLU.js +223 -0
  34. package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
  35. package/dist/icon-CJkTlmTb.js +55 -0
  36. package/dist/icon-dVhYJUIH.js +17 -0
  37. package/dist/import-BgJdkwBI.js +606 -0
  38. package/dist/import.d.ts +1 -0
  39. package/dist/import.js +606 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +16 -0
  42. package/dist/index.node-BIqEGehH.js +396 -0
  43. package/dist/index.node.d.ts +1 -0
  44. package/dist/index.node.js +16 -0
  45. package/dist/input-zGOULADt.js +4 -0
  46. package/dist/layout-var-CZnzMC0s.js +73 -0
  47. package/dist/light-slots-BVJwyg_2.js +244 -0
  48. package/dist/light-slots-DW1WgfgT.js +254 -0
  49. package/dist/markdown-DfqrfOJN.js +20146 -0
  50. package/dist/mono-button-simcTQdW.js +873 -0
  51. package/dist/mono-button.shadow-B_rKOY9N.js +784 -0
  52. package/dist/mono-data-chart-CEv29_NS.js +779 -0
  53. package/dist/mono-data-dropdown-Wnoke6zO.js +357 -0
  54. package/dist/mono-data-grid-CjkEqxgE.js +3913 -0
  55. package/dist/mono-data-grid-YjR3n9Ar.js +3915 -0
  56. package/dist/mono-element-B0kP_96P.js +232 -0
  57. package/dist/mono-event-Bi1qP9uN.js +129 -0
  58. package/dist/mono-form-controller-5PfsU4qa.js +409 -0
  59. package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
  60. package/dist/mono-ui-CPV7rrdo.js +358 -0
  61. package/dist/normalize-error-Gcgmgh5i.js +871 -0
  62. package/dist/notifier-CE4yxMUQ.js +88 -0
  63. package/dist/nuxt.d.ts +1 -0
  64. package/dist/nuxt.js +130 -0
  65. package/dist/popup-portal-BziRX1yG.js +465 -0
  66. package/dist/popup-stack-CEEMib__.js +189 -0
  67. package/dist/rate-limit-BBa2PO79.js +521 -0
  68. package/dist/reactive-D3EERqgO.js +47 -0
  69. package/dist/reactive-Di3mTMnV.js +1087 -0
  70. package/dist/search.d.ts +1 -0
  71. package/dist/search.js +97 -0
  72. package/dist/src/components/accordion/accordion-core.d.ts +62 -0
  73. package/dist/src/components/accordion/accordion-types.d.ts +62 -0
  74. package/dist/src/components/accordion/index.d.ts +3 -0
  75. package/dist/src/components/accordion/index.shadow.d.ts +5 -0
  76. package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
  77. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
  78. package/dist/src/components/alert/alert-core.d.ts +46 -0
  79. package/dist/src/components/alert/alert-types.d.ts +44 -0
  80. package/dist/src/components/alert/index.d.ts +3 -0
  81. package/dist/src/components/alert/index.shadow.d.ts +5 -0
  82. package/dist/src/components/alert/mono-alert.d.ts +44 -0
  83. package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
  84. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
  85. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
  86. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
  87. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
  88. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
  89. package/dist/src/components/breadcrumb/index.d.ts +6 -0
  90. package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
  91. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
  92. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
  93. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
  94. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
  95. package/dist/src/components/button/button-core.d.ts +90 -0
  96. package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
  97. package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
  98. package/dist/src/components/button/button-types.d.ts +219 -0
  99. package/dist/src/components/button/button-utils.d.ts +18 -0
  100. package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
  101. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
  102. package/dist/src/components/button/index.d.ts +8 -0
  103. package/dist/src/components/button/index.shadow.d.ts +5 -0
  104. package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
  105. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
  106. package/dist/src/components/button/mono-button.d.ts +123 -0
  107. package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
  108. package/dist/src/components/card/card-core.d.ts +75 -0
  109. package/dist/src/components/card/card-types.d.ts +137 -0
  110. package/dist/src/components/card/card-utils.d.ts +23 -0
  111. package/dist/src/components/card/index.d.ts +4 -0
  112. package/dist/src/components/card/index.shadow.d.ts +6 -0
  113. package/dist/src/components/card/mono-card.d.ts +56 -0
  114. package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
  115. package/dist/src/components/chart/chart-core.d.ts +43 -0
  116. package/dist/src/components/chart/chart-odata.d.ts +52 -0
  117. package/dist/src/components/chart/chart-types.d.ts +356 -0
  118. package/dist/src/components/chart/index.d.ts +8 -0
  119. package/dist/src/components/chart/index.shadow.d.ts +7 -0
  120. package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
  121. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
  122. package/dist/src/components/chart/mono-chart.d.ts +30 -0
  123. package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
  124. package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
  125. package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
  126. package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
  127. package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
  128. package/dist/src/components/checkbox/index.d.ts +4 -0
  129. package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
  130. package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
  131. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
  132. package/dist/src/components/chip/chip-core.d.ts +58 -0
  133. package/dist/src/components/chip/chip-types.d.ts +142 -0
  134. package/dist/src/components/chip/chip-utils.d.ts +24 -0
  135. package/dist/src/components/chip/index.d.ts +8 -0
  136. package/dist/src/components/chip/index.shadow.d.ts +6 -0
  137. package/dist/src/components/chip/mono-chip.d.ts +48 -0
  138. package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
  139. package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
  140. package/dist/src/components/date/date-core.d.ts +80 -0
  141. package/dist/src/components/date/date-types.d.ts +163 -0
  142. package/dist/src/components/date/index.d.ts +3 -0
  143. package/dist/src/components/date/index.shadow.d.ts +4 -0
  144. package/dist/src/components/date/mono-date.d.ts +22 -0
  145. package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
  146. package/dist/src/components/drawer/drawer-core.d.ts +99 -0
  147. package/dist/src/components/drawer/drawer-types.d.ts +153 -0
  148. package/dist/src/components/drawer/index.d.ts +3 -0
  149. package/dist/src/components/drawer/index.shadow.d.ts +4 -0
  150. package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
  151. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
  152. package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
  153. package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
  154. package/dist/src/components/dropdown/index.d.ts +3 -0
  155. package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
  156. package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
  157. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
  158. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
  159. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
  160. package/dist/src/components/dropdown-table/index.d.ts +5 -0
  161. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
  162. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
  163. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
  164. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
  165. package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
  166. package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
  167. package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
  168. package/dist/src/components/file-upload/index.d.ts +4 -0
  169. package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
  170. package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
  171. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
  172. package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
  173. package/dist/src/components/filter/filter-builder.d.ts +23 -0
  174. package/dist/src/components/filter/filter-odata.d.ts +27 -0
  175. package/dist/src/components/filter/filter-operators.d.ts +13 -0
  176. package/dist/src/components/filter/filter-types.d.ts +253 -0
  177. package/dist/src/components/filter/index.d.ts +6 -0
  178. package/dist/src/components/filter/index.shadow.d.ts +7 -0
  179. package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
  180. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
  181. package/dist/src/components/form/form-control-core.d.ts +37 -0
  182. package/dist/src/components/form/form-rules.d.ts +25 -0
  183. package/dist/src/components/form/form-types.d.ts +307 -0
  184. package/dist/src/components/form/index.d.ts +6 -0
  185. package/dist/src/components/form/mono-form-controller.d.ts +16 -0
  186. package/dist/src/components/input/index.d.ts +6 -0
  187. package/dist/src/components/input/index.shadow.d.ts +8 -0
  188. package/dist/src/components/input/input-core.d.ts +91 -0
  189. package/dist/src/components/input/input-format.d.ts +118 -0
  190. package/dist/src/components/input/input-types.d.ts +179 -0
  191. package/dist/src/components/input/input-utils.d.ts +10 -0
  192. package/dist/src/components/input/mono-input.d.ts +46 -0
  193. package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
  194. package/dist/src/components/menu/index.d.ts +6 -0
  195. package/dist/src/components/menu/index.shadow.d.ts +7 -0
  196. package/dist/src/components/menu/menu-core.d.ts +65 -0
  197. package/dist/src/components/menu/menu-render.d.ts +55 -0
  198. package/dist/src/components/menu/menu-types.d.ts +195 -0
  199. package/dist/src/components/menu/menu-utils.d.ts +53 -0
  200. package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
  201. package/dist/src/components/menu/mono-menu.d.ts +39 -0
  202. package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
  203. package/dist/src/components/modal/index.d.ts +4 -0
  204. package/dist/src/components/modal/index.shadow.d.ts +5 -0
  205. package/dist/src/components/modal/modal-core.d.ts +110 -0
  206. package/dist/src/components/modal/modal-types.d.ts +304 -0
  207. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
  208. package/dist/src/components/modal/mono-modal.d.ts +45 -0
  209. package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
  210. package/dist/src/components/nav/index.d.ts +4 -0
  211. package/dist/src/components/nav/index.shadow.d.ts +6 -0
  212. package/dist/src/components/nav/mono-nav.d.ts +41 -0
  213. package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
  214. package/dist/src/components/nav/nav-core.d.ts +34 -0
  215. package/dist/src/components/nav/nav-types.d.ts +48 -0
  216. package/dist/src/components/nav/nav-utils.d.ts +12 -0
  217. package/dist/src/components/radio/index.d.ts +4 -0
  218. package/dist/src/components/radio/index.shadow.d.ts +5 -0
  219. package/dist/src/components/radio/mono-radio.d.ts +31 -0
  220. package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
  221. package/dist/src/components/radio/radio-core.d.ts +45 -0
  222. package/dist/src/components/radio/radio-types.d.ts +58 -0
  223. package/dist/src/components/radio/radio-utils.d.ts +12 -0
  224. package/dist/src/components/rich-text-editor/index.d.ts +5 -0
  225. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
  226. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
  227. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
  228. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
  229. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
  230. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
  231. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
  232. package/dist/src/components/select/index.d.ts +4 -0
  233. package/dist/src/components/select/index.shadow.d.ts +5 -0
  234. package/dist/src/components/select/mono-select.d.ts +69 -0
  235. package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
  236. package/dist/src/components/select/select-core.d.ts +98 -0
  237. package/dist/src/components/select/select-types.d.ts +284 -0
  238. package/dist/src/components/select/select-utils.d.ts +7 -0
  239. package/dist/src/components/sidebar/index.d.ts +4 -0
  240. package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
  241. package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
  242. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
  243. package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
  244. package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
  245. package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
  246. package/dist/src/components/switch/index.d.ts +4 -0
  247. package/dist/src/components/switch/index.shadow.d.ts +5 -0
  248. package/dist/src/components/switch/mono-switch.d.ts +31 -0
  249. package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
  250. package/dist/src/components/switch/switch-core.d.ts +49 -0
  251. package/dist/src/components/switch/switch-types.d.ts +64 -0
  252. package/dist/src/components/switch/switch-utils.d.ts +12 -0
  253. package/dist/src/components/table/array-source.d.ts +44 -0
  254. package/dist/src/components/table/date-filter-tree.d.ts +93 -0
  255. package/dist/src/components/table/grouping.d.ts +55 -0
  256. package/dist/src/components/table/index.d.ts +33 -0
  257. package/dist/src/components/table/index.shadow.d.ts +47 -0
  258. package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
  259. package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
  260. package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
  261. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
  262. package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
  263. package/dist/src/components/table/mono-table-detail.d.ts +32 -0
  264. package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
  265. package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
  266. package/dist/src/components/table/mono-table-empty.d.ts +35 -0
  267. package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
  268. package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
  269. package/dist/src/components/table/mono-table-error.d.ts +28 -0
  270. package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
  271. package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
  272. package/dist/src/components/table/mono-table-info.d.ts +19 -0
  273. package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
  274. package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
  275. package/dist/src/components/table/mono-table-loading.d.ts +50 -0
  276. package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
  277. package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
  278. package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
  279. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
  280. package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
  281. package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
  282. package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
  283. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
  284. package/dist/src/components/table/mono-table-paging.d.ts +16 -0
  285. package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
  286. package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
  287. package/dist/src/components/table/mono-table-search.d.ts +34 -0
  288. package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
  289. package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
  290. package/dist/src/components/table/mono-table-sort.d.ts +38 -0
  291. package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
  292. package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
  293. package/dist/src/components/table/mono-table-summary.d.ts +24 -0
  294. package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
  295. package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
  296. package/dist/src/components/table/mono-table-th.d.ts +41 -0
  297. package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
  298. package/dist/src/components/table/store-group-source.d.ts +24 -0
  299. package/dist/src/components/table/table-controller-core.d.ts +40 -0
  300. package/dist/src/components/table/table-filter-icons.d.ts +3 -0
  301. package/dist/src/components/table/table-menu-core.d.ts +65 -0
  302. package/dist/src/components/table/table-overlay.d.ts +165 -0
  303. package/dist/src/components/table/table-sort-icons.d.ts +4 -0
  304. package/dist/src/components/table/table-sort-utils.d.ts +20 -0
  305. package/dist/src/components/table/table-types.d.ts +475 -0
  306. package/dist/src/components/tabs/index.d.ts +3 -0
  307. package/dist/src/components/tabs/index.shadow.d.ts +4 -0
  308. package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
  309. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
  310. package/dist/src/components/tabs/tabs-core.d.ts +57 -0
  311. package/dist/src/components/tabs/tabs-types.d.ts +65 -0
  312. package/dist/src/components/tag-input/index.d.ts +4 -0
  313. package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
  314. package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
  315. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
  316. package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
  317. package/dist/src/components/tag-input/tag-input-types.d.ts +420 -0
  318. package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
  319. package/dist/src/components/textarea/index.d.ts +4 -0
  320. package/dist/src/components/textarea/index.shadow.d.ts +5 -0
  321. package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
  322. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
  323. package/dist/src/components/textarea/textarea-core.d.ts +60 -0
  324. package/dist/src/components/textarea/textarea-types.d.ts +131 -0
  325. package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
  326. package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
  327. package/dist/src/components/tooltip/index.d.ts +6 -0
  328. package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
  329. package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
  330. package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
  331. package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
  332. package/dist/src/composables/breakpoints.d.ts +59 -0
  333. package/dist/src/composables/chip-limits.d.ts +48 -0
  334. package/dist/src/composables/chip-strip.d.ts +93 -0
  335. package/dist/src/composables/color.d.ts +103 -0
  336. package/dist/src/composables/css-class.d.ts +27 -0
  337. package/dist/src/composables/css-size.d.ts +40 -0
  338. package/dist/src/composables/data-source-controller.d.ts +113 -0
  339. package/dist/src/composables/element-props.d.ts +46 -0
  340. package/dist/src/composables/field-icons.d.ts +15 -0
  341. package/dist/src/composables/hybird-prop.d.ts +79 -0
  342. package/dist/src/composables/hydration-flush.d.ts +34 -0
  343. package/dist/src/composables/icon.d.ts +17 -0
  344. package/dist/src/composables/layout-var.d.ts +34 -0
  345. package/dist/src/composables/light-slots.d.ts +133 -0
  346. package/dist/src/composables/mdi-glyphs.d.ts +4 -0
  347. package/dist/src/composables/mono-element.d.ts +9 -0
  348. package/dist/src/composables/mono-event.d.ts +55 -0
  349. package/dist/src/composables/mono-pending.d.ts +8 -0
  350. package/dist/src/composables/mono-skeleton.d.ts +193 -0
  351. package/dist/src/composables/mono-ui.d.ts +58 -0
  352. package/dist/src/composables/notifier.d.ts +46 -0
  353. package/dist/src/composables/popup-portal.d.ts +226 -0
  354. package/dist/src/composables/popup-stack.d.ts +70 -0
  355. package/dist/src/composables/rate-limit.d.ts +108 -0
  356. package/dist/src/composables/reactive.d.ts +53 -0
  357. package/dist/src/composables/shadow-css.d.ts +42 -0
  358. package/dist/src/composables/visibility.d.ts +36 -0
  359. package/dist/src/data/theme/index.d.ts +30 -0
  360. package/dist/src/data/theme/presets.d.ts +94 -0
  361. package/dist/src/entries/index.d.ts +2 -0
  362. package/dist/src/entries/index.node.d.ts +42 -0
  363. package/dist/src/entries/search.d.ts +3 -0
  364. package/dist/src/export/detail.d.ts +29 -0
  365. package/dist/src/export/download.d.ts +9 -0
  366. package/dist/src/export/excel/index.d.ts +27 -0
  367. package/dist/src/export/excel/nodes.d.ts +123 -0
  368. package/dist/src/export/expression.d.ts +36 -0
  369. package/dist/src/export/helpers.d.ts +6 -0
  370. package/dist/src/export/index.d.ts +13 -0
  371. package/dist/src/export/markdown.d.ts +52 -0
  372. package/dist/src/export/resolve-data.d.ts +31 -0
  373. package/dist/src/export/sentinel.d.ts +97 -0
  374. package/dist/src/export/sheet-name.d.ts +45 -0
  375. package/dist/src/export/styles.d.ts +33 -0
  376. package/dist/src/export/template.d.ts +10 -0
  377. package/dist/src/export/types.d.ts +259 -0
  378. package/dist/src/import/coerce.d.ts +38 -0
  379. package/dist/src/import/index.d.ts +16 -0
  380. package/dist/src/import/match.d.ts +54 -0
  381. package/dist/src/import/parse.d.ts +15 -0
  382. package/dist/src/import/types.d.ts +153 -0
  383. package/dist/src/nuxt/index.d.ts +94 -0
  384. package/dist/src/search/data-search.d.ts +207 -0
  385. package/dist/src/search/field-path.d.ts +107 -0
  386. package/dist/src/search/filter-eval.d.ts +30 -0
  387. package/dist/src/search/index.d.ts +22 -0
  388. package/dist/src/search/odata-search.d.ts +18 -0
  389. package/dist/src/search/search-expr.d.ts +160 -0
  390. package/dist/src/utils/data-source-apply.d.ts +97 -0
  391. package/dist/src/utils/data-source-options.d.ts +116 -0
  392. package/dist/src/utils/data-source-read.d.ts +85 -0
  393. package/dist/src/utils/data-source-summary.d.ts +55 -0
  394. package/dist/src/utils/normalize-error.d.ts +90 -0
  395. package/dist/src/vite/index.d.ts +48 -0
  396. package/dist/src/vite/mono-client-only.d.ts +35 -0
  397. package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
  398. package/dist/src/vite/shadow-manifest.d.ts +8 -0
  399. package/dist/styles-BIJ31TM4.js +20146 -0
  400. package/dist/tooltip-DQqNpqk2.js +795 -0
  401. package/dist/tooltip.d.ts +1 -0
  402. package/dist/tooltip.js +2 -0
  403. package/dist/ui/accordion.d.ts +1 -0
  404. package/dist/ui/accordion.js +466 -0
  405. package/dist/ui/alert.d.ts +1 -0
  406. package/dist/ui/alert.js +221 -0
  407. package/dist/ui/breadcrumb.d.ts +1 -0
  408. package/dist/ui/breadcrumb.js +902 -0
  409. package/dist/ui/button-dropdown.d.ts +1 -0
  410. package/dist/ui/button-dropdown.js +679 -0
  411. package/dist/ui/button.d.ts +1 -0
  412. package/dist/ui/button.js +63 -0
  413. package/dist/ui/card.d.ts +1 -0
  414. package/dist/ui/card.js +524 -0
  415. package/dist/ui/chart.d.ts +1 -0
  416. package/dist/ui/chart.js +885 -0
  417. package/dist/ui/checkbox.d.ts +1 -0
  418. package/dist/ui/checkbox.js +413 -0
  419. package/dist/ui/chip.d.ts +1 -0
  420. package/dist/ui/chip.js +558 -0
  421. package/dist/ui/date.d.ts +1 -0
  422. package/dist/ui/date.js +686 -0
  423. package/dist/ui/drawer.d.ts +1 -0
  424. package/dist/ui/drawer.js +901 -0
  425. package/dist/ui/dropdown-table.d.ts +1 -0
  426. package/dist/ui/dropdown-table.js +1291 -0
  427. package/dist/ui/dropdown.d.ts +1 -0
  428. package/dist/ui/dropdown.js +586 -0
  429. package/dist/ui/file-upload.d.ts +1 -0
  430. package/dist/ui/file-upload.js +688 -0
  431. package/dist/ui/filter.d.ts +1 -0
  432. package/dist/ui/filter.js +400 -0
  433. package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
  434. package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
  435. package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
  436. package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
  437. package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
  438. package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
  439. package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
  440. package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
  441. package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
  442. package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
  443. package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
  444. package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
  445. package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
  446. package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
  447. package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
  448. package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
  449. package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
  450. package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
  451. package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
  452. package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
  453. package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
  454. package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
  455. package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
  456. package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
  457. package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
  458. package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
  459. package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
  460. package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
  461. package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
  462. package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
  463. package/dist/ui/font/geist-mono.css +104 -0
  464. package/dist/ui/font/geist.css +168 -0
  465. package/dist/ui/font/inter.css +232 -0
  466. package/dist/ui/font/poppins.css +104 -0
  467. package/dist/ui/form.d.ts +1 -0
  468. package/dist/ui/form.js +3 -0
  469. package/dist/ui/index.css +21989 -0
  470. package/dist/ui/input.d.ts +1 -0
  471. package/dist/ui/input.js +1176 -0
  472. package/dist/ui/menu.d.ts +1 -0
  473. package/dist/ui/menu.js +1289 -0
  474. package/dist/ui/modal.d.ts +1 -0
  475. package/dist/ui/modal.js +996 -0
  476. package/dist/ui/nav.d.ts +1 -0
  477. package/dist/ui/nav.js +295 -0
  478. package/dist/ui/radio.d.ts +1 -0
  479. package/dist/ui/radio.js +379 -0
  480. package/dist/ui/rich-text-editor.d.ts +1 -0
  481. package/dist/ui/rich-text-editor.js +1338 -0
  482. package/dist/ui/select.d.ts +1 -0
  483. package/dist/ui/select.js +2200 -0
  484. package/dist/ui/shadow/accordion.js +442 -0
  485. package/dist/ui/shadow/alert.js +218 -0
  486. package/dist/ui/shadow/breadcrumb.js +919 -0
  487. package/dist/ui/shadow/button-dropdown.js +696 -0
  488. package/dist/ui/shadow/button.js +63 -0
  489. package/dist/ui/shadow/card.js +538 -0
  490. package/dist/ui/shadow/chart.js +1685 -0
  491. package/dist/ui/shadow/checkbox.js +457 -0
  492. package/dist/ui/shadow/chip.js +559 -0
  493. package/dist/ui/shadow/date.js +712 -0
  494. package/dist/ui/shadow/drawer.js +869 -0
  495. package/dist/ui/shadow/dropdown-table.js +1620 -0
  496. package/dist/ui/shadow/dropdown.js +547 -0
  497. package/dist/ui/shadow/file-upload.js +731 -0
  498. package/dist/ui/shadow/filter.js +402 -0
  499. package/dist/ui/shadow/input.js +1150 -0
  500. package/dist/ui/shadow/menu.js +899 -0
  501. package/dist/ui/shadow/modal.js +1194 -0
  502. package/dist/ui/shadow/nav.js +240 -0
  503. package/dist/ui/shadow/radio.js +408 -0
  504. package/dist/ui/shadow/rich-text-editor.js +1344 -0
  505. package/dist/ui/shadow/select.js +2167 -0
  506. package/dist/ui/shadow/sidebar.js +606 -0
  507. package/dist/ui/shadow/switch.js +428 -0
  508. package/dist/ui/shadow/table.js +4755 -0
  509. package/dist/ui/shadow/tabs.js +372 -0
  510. package/dist/ui/shadow/tag-input.js +2974 -0
  511. package/dist/ui/shadow/textarea.js +816 -0
  512. package/dist/ui/sidebar.d.ts +1 -0
  513. package/dist/ui/sidebar.js +659 -0
  514. package/dist/ui/switch.d.ts +1 -0
  515. package/dist/ui/switch.js +398 -0
  516. package/dist/ui/table.d.ts +1 -0
  517. package/dist/ui/table.js +4654 -0
  518. package/dist/ui/tabs.d.ts +1 -0
  519. package/dist/ui/tabs.js +379 -0
  520. package/dist/ui/tag-input.d.ts +1 -0
  521. package/dist/ui/tag-input.js +2947 -0
  522. package/dist/ui/textarea.d.ts +1 -0
  523. package/dist/ui/textarea.js +819 -0
  524. package/dist/ui/theme/legacy.css +293 -0
  525. package/dist/ui/theme/luma.css +743 -0
  526. package/dist/ui/theme/lyra.css +754 -0
  527. package/dist/ui/theme/maia.css +673 -0
  528. package/dist/ui/theme/mira.css +802 -0
  529. package/dist/ui/theme/nova.css +662 -0
  530. package/dist/ui/theme/one.css +699 -0
  531. package/dist/ui/theme/rhea.css +742 -0
  532. package/dist/ui/theme/sera.css +845 -0
  533. package/dist/ui/theme/tokens.css +261 -0
  534. package/dist/ui/theme/vega.css +467 -0
  535. package/dist/vite-C5iUK7so.js +329 -0
  536. package/dist/vite.d.ts +1 -0
  537. package/dist/vite.js +2 -0
  538. package/dist/vue.d.ts +282 -0
  539. package/package.json +411 -3
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
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-DQqNpqk2.js";
2
+ export { DEFAULT_TOOLTIP_OPTIONS, TOOLTIP_ATTRIBUTE_SELECTOR, controlMonoTooltip, createMonoTooltip, destroyAllMonoTooltips, getMonoTooltipGlobal, loadFloatingUi, monoTooltip, readTooltipAttributes, resetMonoTooltip, resolveTooltipOptions };
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,466 @@
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";
6
+ import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
7
+ import { ref } from "lit/directives/ref.js";
8
+ import { property, query, state } from "lit/decorators.js";
9
+ //#region src/components/accordion/accordion-core.ts
10
+ /**
11
+ * `MonoAccordionCore` — all render-mode-agnostic logic for `mono-accordion`:
12
+ * reactive props, hybrid aliases, the camelCase attribute fallbacks, slot-presence
13
+ * `@state`, class/getter computation, click/toggle interactivity, and the
14
+ * imperative `focus/blur`. No `render()` — the light build keeps its
15
+ * `[data-mono-slot]` capture strategy and the shadow build uses native `<slot>`
16
+ * (each ships its own `render()`, mirroring `mono-card`).
17
+ *
18
+ * SSR-safe: no `document`/`window` access. `_headEl` (`@query`) is lazy and
19
+ * `focus/blur` only run client-side.
20
+ */
21
+ var MonoAccordionCore = (superClass) => {
22
+ class MonoAccordionCoreClass extends superClass {
23
+ constructor(...args) {
24
+ super(...args);
25
+ this.size = "md";
26
+ this.color = "primary";
27
+ this.modelValue = false;
28
+ this.disabled = false;
29
+ this.cssClass = {};
30
+ this.cssClassName = "";
31
+ this._hasTitleSlotState = false;
32
+ this._hasSubtitleSlotState = false;
33
+ this._hasHeaderSlotState = false;
34
+ this._hasIconSlotState = false;
35
+ this._hasActionsSlotState = false;
36
+ this._hasBodySlotState = false;
37
+ this._rootEl = null;
38
+ this.bindRoot = (el) => {
39
+ this._rootEl = el ?? null;
40
+ this._applyRootAttrs(this._rootEl);
41
+ };
42
+ defineHybridPropAliases(this, ["modelValue", "cssClass"]);
43
+ defineHybridPropAlias(this, "label", "title");
44
+ defineHybridPropAlias(this, "description", "subtitle");
45
+ this.title = "";
46
+ this.subtitle = "";
47
+ /**
48
+ * Vue support:
49
+ *
50
+ * <mono-accordion :cssClass="{}" />
51
+ * <mono-accordion :css-class="{}" />
52
+ * <mono-accordion :cssclass="{}" />
53
+ */
54
+ Object.defineProperty(this, "css-class", {
55
+ get: () => this.cssClass,
56
+ set: (value) => {
57
+ this._setCssClass(value);
58
+ },
59
+ configurable: true,
60
+ enumerable: false
61
+ });
62
+ Object.defineProperty(this, "cssclass", {
63
+ get: () => this.cssClass,
64
+ set: (value) => {
65
+ this._setCssClass(value);
66
+ },
67
+ configurable: true,
68
+ enumerable: false
69
+ });
70
+ }
71
+ static get observedAttributes() {
72
+ return [
73
+ ...super.observedAttributes ?? [],
74
+ "modelvalue",
75
+ "css-class",
76
+ "cssclass",
77
+ "label",
78
+ "description"
79
+ ];
80
+ }
81
+ attributeChangedCallback(name, oldValue, newValue) {
82
+ super.attributeChangedCallback(name, oldValue, newValue);
83
+ if (oldValue === newValue) return;
84
+ if (name === "modelvalue") {
85
+ this.modelValue = this._toBoolean(newValue);
86
+ return;
87
+ }
88
+ if (name === "css-class" || name === "cssclass") {
89
+ this._setCssClass(newValue);
90
+ return;
91
+ }
92
+ if (name === "label") {
93
+ this.title = newValue ?? "";
94
+ return;
95
+ }
96
+ if (name === "description") this.subtitle = newValue ?? "";
97
+ }
98
+ _toBoolean(value) {
99
+ if (typeof value === "boolean") return value;
100
+ if (typeof value === "string") {
101
+ const normalized = value.toLowerCase().trim();
102
+ return normalized === "" || normalized === "true";
103
+ }
104
+ return Boolean(value);
105
+ }
106
+ _setCssClass(value) {
107
+ if (value == null) {
108
+ this.cssClass = {};
109
+ this.cssClassName = "";
110
+ return;
111
+ }
112
+ if (typeof value === "object") {
113
+ this.cssClass = value;
114
+ return;
115
+ }
116
+ if (typeof value === "string") {
117
+ const trimmed = value.trim();
118
+ if (!trimmed) {
119
+ this.cssClass = {};
120
+ this.cssClassName = "";
121
+ return;
122
+ }
123
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) try {
124
+ this.cssClass = JSON.parse(trimmed);
125
+ return;
126
+ } catch {}
127
+ this.cssClassName = trimmed;
128
+ }
129
+ }
130
+ _cls(base, key) {
131
+ const extra = this.cssClass?.[key];
132
+ return extra ? `${base} ${extra}` : base;
133
+ }
134
+ /**
135
+ * The prop mirrors, each omitted at its default so `:not([mono-size])` means
136
+ * "md" for hand-written markup exactly as it does for the element.
137
+ */
138
+ _computeRootAttrs() {
139
+ return {
140
+ "mono-size": this.size === "md" ? null : this.size,
141
+ "mono-color": this.color === "primary" ? null : this.color,
142
+ "mono-open": this.modelValue ? "" : null,
143
+ "mono-disabled": this.disabled ? "" : null,
144
+ "mono-grouped": this._inGroup() ? "" : null
145
+ };
146
+ }
147
+ /**
148
+ * Is this item inside an accordion group?
149
+ *
150
+ * The CSS can see that for hand-written markup — `[mono-accordion-group] >
151
+ * [mono-accordion]` — but not for the ELEMENT: the light build puts the
152
+ * custom-element host between the group and the root, and the shadow build
153
+ * puts a boundary there, and a selector crosses neither. So the element
154
+ * detects its own group and writes it as an attribute, which is the one thing
155
+ * that reaches the root in both builds.
156
+ *
157
+ * Only MEMBERSHIP, never position: "am I the last one?" would be answered
158
+ * from however many siblings existed at this render, and appending a fourth
159
+ * item does not re-render the third. The divider is the group's business and
160
+ * rides its own `:last-child` (see accordion.css).
161
+ *
162
+ * `closest()` on the HOST, not the root: the group is the consumer's wrapper
163
+ * around `<mono-accordion>`, so the host is what sits inside it.
164
+ */
165
+ _inGroup() {
166
+ if (typeof this.closest !== "function") return false;
167
+ return Boolean(this.closest("[mono-accordion-group], .mono-accordion-group"));
168
+ }
169
+ _applyRootAttrs(root) {
170
+ if (!root) return;
171
+ if (!root.hasAttribute("mono-accordion")) root.setAttribute("mono-accordion", "");
172
+ for (const [name, value] of Object.entries(this._computeRootAttrs())) if (value === null) root.removeAttribute(name);
173
+ else if (root.getAttribute(name) !== value) root.setAttribute(name, value);
174
+ }
175
+ updated(changed) {
176
+ super.updated?.(changed);
177
+ this._applyRootAttrs(this._rootEl);
178
+ }
179
+ get _wrapperClasses() {
180
+ return [
181
+ "mono-accordion",
182
+ this.size,
183
+ this.color,
184
+ this.modelValue ? "open" : "",
185
+ this.disabled ? "disabled" : "",
186
+ this.cssClassName,
187
+ this.cssClass?.root
188
+ ].filter(Boolean).join(" ");
189
+ }
190
+ get _hasTitleContent() {
191
+ return Boolean(this.title) || this._hasTitleSlotState;
192
+ }
193
+ get _hasSubtitleContent() {
194
+ return Boolean(this.subtitle) || this._hasSubtitleSlotState;
195
+ }
196
+ get _hasIconContent() {
197
+ return this._hasIconSlotState;
198
+ }
199
+ /**
200
+ * The open state changed. `mno-click` is the historical name; the plain
201
+ * event is `toggle`, and the transition also fires `open` / `close`
202
+ * (+ `mno-open` / `mno-close`) — the same trio modal and drawer emit.
203
+ */
204
+ _emitClick(detail) {
205
+ dispatchMonoEvent(this, "click", detail, { alias: "toggle" });
206
+ dispatchMonoEvent(this, detail.modelValue ? "open" : "close", detail);
207
+ }
208
+ _setOpen(next, sourceEvent) {
209
+ if (this.disabled) return;
210
+ if (this.modelValue === next) return;
211
+ const oldValue = this.modelValue;
212
+ this.modelValue = next;
213
+ this._emitClick({
214
+ modelValue: next,
215
+ currentValue: next,
216
+ oldValue,
217
+ value: next,
218
+ sourceEvent
219
+ });
220
+ }
221
+ _handleClick(event) {
222
+ if (this.disabled) return;
223
+ this._setOpen(!this.modelValue, event);
224
+ }
225
+ toggle() {
226
+ this._setOpen(!this.modelValue);
227
+ }
228
+ expand() {
229
+ this._setOpen(true);
230
+ }
231
+ collapse() {
232
+ this._setOpen(false);
233
+ }
234
+ focus() {
235
+ this._headEl?.focus();
236
+ }
237
+ blur() {
238
+ this._headEl?.blur();
239
+ }
240
+ }
241
+ __decorate([property({ type: String })], MonoAccordionCoreClass.prototype, "size", void 0);
242
+ __decorate([property({ type: String })], MonoAccordionCoreClass.prototype, "color", void 0);
243
+ __decorate([property({ type: String })], MonoAccordionCoreClass.prototype, "title", void 0);
244
+ __decorate([property({ type: String })], MonoAccordionCoreClass.prototype, "subtitle", void 0);
245
+ __decorate([property({
246
+ attribute: "model-value",
247
+ reflect: true,
248
+ converter: booleanStringConverter
249
+ })], MonoAccordionCoreClass.prototype, "modelValue", void 0);
250
+ __decorate([property({
251
+ reflect: true,
252
+ converter: booleanStringConverter
253
+ })], MonoAccordionCoreClass.prototype, "disabled", void 0);
254
+ __decorate([property({ attribute: false })], MonoAccordionCoreClass.prototype, "cssClass", void 0);
255
+ __decorate([property({ attribute: false })], MonoAccordionCoreClass.prototype, "cssClassName", void 0);
256
+ __decorate([state()], MonoAccordionCoreClass.prototype, "_hasTitleSlotState", void 0);
257
+ __decorate([state()], MonoAccordionCoreClass.prototype, "_hasSubtitleSlotState", void 0);
258
+ __decorate([state()], MonoAccordionCoreClass.prototype, "_hasHeaderSlotState", void 0);
259
+ __decorate([state()], MonoAccordionCoreClass.prototype, "_hasIconSlotState", void 0);
260
+ __decorate([state()], MonoAccordionCoreClass.prototype, "_hasActionsSlotState", void 0);
261
+ __decorate([state()], MonoAccordionCoreClass.prototype, "_hasBodySlotState", void 0);
262
+ __decorate([query(".mono-accordion-head")], MonoAccordionCoreClass.prototype, "_headEl", void 0);
263
+ return MonoAccordionCoreClass;
264
+ };
265
+ //#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
+ //#endregion
269
+ //#region src/components/accordion/mono-accordion.ts
270
+ var MonoAccordion = class MonoAccordion extends MonoAccordionCore(LitElement) {
271
+ constructor(..._args) {
272
+ super(..._args);
273
+ this._slotTitle = [];
274
+ this._slotLabel = [];
275
+ this._slotSubtitle = [];
276
+ this._slotDescription = [];
277
+ this._slotHeader = [];
278
+ this._slotIcon = [];
279
+ this._slotActions = [];
280
+ this._slotBody = [];
281
+ }
282
+ static {
283
+ this.styles = [unsafeCSS(accordion_default)];
284
+ }
285
+ createRenderRoot() {
286
+ return this;
287
+ }
288
+ /** The title nodes that render: `slot="title"` beats its alias `slot="label"`. */
289
+ get _titleNodes() {
290
+ return this._slotTitle.length ? this._slotTitle : this._slotLabel;
291
+ }
292
+ /** The subtitle nodes that render: `slot="subtitle"` beats `slot="description"`. */
293
+ get _subtitleNodes() {
294
+ return this._slotSubtitle.length ? this._slotSubtitle : this._slotDescription;
295
+ }
296
+ connectedCallback() {
297
+ super.connectedCallback();
298
+ if (!isServer && !this._slotObserver && typeof MutationObserver !== "undefined") this._slotObserver = new MutationObserver(() => this._captureSlots());
299
+ this._captureSlots();
300
+ if (this.isConnected) this.performUpdate();
301
+ }
302
+ disconnectedCallback() {
303
+ this._slotObserver?.disconnect();
304
+ super.disconnectedCallback();
305
+ }
306
+ updated(changed) {
307
+ super.updated(changed);
308
+ if (this._hasHeaderSlotState) this._placeSlot("header", this._slotHeader);
309
+ else {
310
+ this._placeSlot("title", this._titleNodes);
311
+ this._placeSlot("subtitle", this._subtitleNodes);
312
+ this._placeSlot("icon", this._slotIcon);
313
+ }
314
+ this._placeSlot("actions", this._slotActions);
315
+ this._placeSlot("body", this._slotBody);
316
+ for (const nodes of [
317
+ this._slotTitle,
318
+ this._slotLabel,
319
+ this._slotSubtitle,
320
+ this._slotDescription,
321
+ this._slotHeader,
322
+ this._slotIcon
323
+ ]) this._parked = parkDetachedNodes(this._parked, nodes);
324
+ }
325
+ _renderIcon() {
326
+ if (!this._hasIconContent || this._hasHeaderSlotState) return nothing;
327
+ return html`
328
+ <span class=${this._cls("mono-accordion-icon", "icon")} mono-glyph aria-hidden="true">
329
+ <span data-mono-slot="icon"></span>
330
+ </span>
331
+ `;
332
+ }
333
+ _renderText() {
334
+ if (this._hasHeaderSlotState) return html`<span class="mono-accordion-text" mono-heading data-mono-slot="header"></span>`;
335
+ if (!this._hasTitleContent && !this._hasSubtitleContent) return nothing;
336
+ return html`
337
+ <span class="mono-accordion-text" mono-heading>
338
+ ${this._hasTitleContent ? html`
339
+ <span class=${this._cls("mono-accordion-title", "title")} mono-title>
340
+ ${this._hasTitleSlotState ? html`<span data-mono-slot="title"></span>` : this.title}
341
+ </span>
342
+ ` : nothing}
343
+
344
+ ${this._hasSubtitleContent ? html`
345
+ <span
346
+ class=${this._cls("mono-accordion-description", "description")}
347
+ mono-subtitle
348
+ mono-description
349
+ >
350
+ ${this._hasSubtitleSlotState ? html`<span data-mono-slot="subtitle"></span>` : this.subtitle}
351
+ </span>
352
+ ` : nothing}
353
+ </span>
354
+ `;
355
+ }
356
+ _renderActions() {
357
+ if (!this._hasActionsSlotState) return nothing;
358
+ return html`
359
+ <span class=${this._cls("mono-accordion-actions", "actions")} mono-actions>
360
+ <span data-mono-slot="actions"></span>
361
+ </span>
362
+ `;
363
+ }
364
+ _renderBody() {
365
+ return html`
366
+ <div class=${this._cls("mono-accordion-body", "body")} mono-body role="region">
367
+ ${this._hasBodySlotState ? html`<span data-mono-slot="body"></span>` : html`<slot></slot>`}
368
+ </div>
369
+ `;
370
+ }
371
+ render() {
372
+ return html`
373
+ <div class=${this._wrapperClasses} mono-accordion title="" ${ref(this.bindRoot)}>
374
+ <button
375
+ type="button"
376
+ class=${this._cls("mono-accordion-head", "head")}
377
+ mono-head
378
+ aria-expanded=${this.modelValue ? "true" : "false"}
379
+ ?disabled=${this.disabled}
380
+ @click=${this._handleClick}
381
+ >
382
+ ${this._renderIcon()}
383
+ ${this._renderText()}
384
+ ${this._renderActions()}
385
+ <span class=${this._cls("mono-accordion-arrow", "arrow")} mono-arrow aria-hidden="true">
386
+ <span class="mono-icon i-mdi-chevron-down" aria-hidden="true"></span>
387
+ </span>
388
+ </button>
389
+
390
+ ${this._renderBody()}
391
+ </div>
392
+ `;
393
+ }
394
+ /**
395
+ * Capture `slot="…"` named children + the unnamed/default body content into the
396
+ * per-region arrays. Safe to run MORE THAN ONCE: captured nodes are detached
397
+ * from the host (and named ones lose their `slot` attribute), so a re-scan never
398
+ * re-captures them — and the Lit-rendered wrapper (`.mono-accordion`) is skipped.
399
+ * Re-running lets the MutationObserver pick up children Vue appends after connect.
400
+ */
401
+ _captureSlots() {
402
+ this._slotObserver?.disconnect();
403
+ const captured = monoHostChildNodes(this);
404
+ const capturedNodes = /* @__PURE__ */ new Set();
405
+ for (const node of captured) if (node instanceof Element) {
406
+ if (node.classList.contains("mono-accordion")) continue;
407
+ const slotName = node.getAttribute("slot");
408
+ const named = slotName === "title" ? this._slotTitle : slotName === "label" ? this._slotLabel : slotName === "subtitle" ? this._slotSubtitle : slotName === "description" ? this._slotDescription : slotName === "header" ? this._slotHeader : null;
409
+ if (named) {
410
+ node.removeAttribute("slot");
411
+ named.push(node);
412
+ capturedNodes.add(node);
413
+ } else if (slotName === "icon") {
414
+ node.removeAttribute("slot");
415
+ this._slotIcon.push(node);
416
+ capturedNodes.add(node);
417
+ } else if (slotName === "actions") {
418
+ node.removeAttribute("slot");
419
+ this._slotActions.push(node);
420
+ capturedNodes.add(node);
421
+ } else {
422
+ if (slotName === "body") node.removeAttribute("slot");
423
+ this._slotBody.push(node);
424
+ capturedNodes.add(node);
425
+ }
426
+ } else if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {
427
+ this._slotBody.push(node);
428
+ capturedNodes.add(node);
429
+ }
430
+ if (capturedNodes.size) {
431
+ this._hasTitleSlotState = this._titleNodes.length > 0;
432
+ this._hasSubtitleSlotState = this._subtitleNodes.length > 0;
433
+ this._hasHeaderSlotState = this._slotHeader.length > 0;
434
+ this._hasIconSlotState = this._slotIcon.length > 0;
435
+ this._hasActionsSlotState = this._slotActions.length > 0;
436
+ this._hasBodySlotState = this._slotBody.length > 0;
437
+ for (const node of capturedNodes) if (node.parentNode === this) this.removeChild(node);
438
+ }
439
+ guardHostTextContent(this, new Map([
440
+ ["title", this._slotTitle],
441
+ ["label", this._slotLabel],
442
+ ["subtitle", this._slotSubtitle],
443
+ ["description", this._slotDescription],
444
+ ["header", this._slotHeader],
445
+ ["icon", this._slotIcon],
446
+ ["actions", this._slotActions],
447
+ ["body", this._slotBody]
448
+ ]), {
449
+ fallback: "body",
450
+ onWrite: () => {
451
+ this._hasBodySlotState = this._slotBody.length > 0;
452
+ this.requestUpdate();
453
+ }
454
+ });
455
+ if (this._slotObserver && this.isConnected) this._slotObserver.observe(this, { childList: true });
456
+ }
457
+ _placeSlot(name, nodes) {
458
+ if (!nodes.length) return;
459
+ const target = this.querySelector(`[data-mono-slot="${name}"]`);
460
+ if (!target) return;
461
+ for (const node of nodes) placeSlotNode(target, node);
462
+ }
463
+ };
464
+ MonoAccordion = __decorate([customElement("mono-accordion")], MonoAccordion);
465
+ //#endregion
466
+ export { MonoAccordion };
@@ -0,0 +1 @@
1
+ export {}