@mono-lit/helper 0.0.0-stage → 0.0.1

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 (538) hide show
  1. package/LICENSE.md +55 -0
  2. package/README.md +34 -2
  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-search-Bwo5bg8K.js +573 -0
  13. package/dist/data-source-controller-C50Qyfzh.js +178 -0
  14. package/dist/data-source-options-BTpfrOZ_.js +535 -0
  15. package/dist/data-source-options-CQSTZHPE.js +537 -0
  16. package/dist/data-source-read-CUX-lgrQ.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-BvlBx_GZ.js +2302 -0
  24. package/dist/export.d.ts +1 -0
  25. package/dist/export.js +2302 -0
  26. package/dist/field-icons-BoOG6KrL.js +51 -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-DjvYOL-J.js +395 -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-CoVnBLav.js +873 -0
  51. package/dist/mono-button.shadow-FfP_hMH4.js +784 -0
  52. package/dist/mono-data-chart-ChU4Ii3p.js +738 -0
  53. package/dist/mono-data-dropdown-BAUl58kW.js +357 -0
  54. package/dist/mono-data-grid-CLBK8clE.js +4140 -0
  55. package/dist/mono-data-grid-Db80FzdZ.js +4142 -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/notifier-CE4yxMUQ.js +88 -0
  62. package/dist/nuxt.d.ts +1 -0
  63. package/dist/nuxt.js +130 -0
  64. package/dist/popup-portal-BziRX1yG.js +465 -0
  65. package/dist/popup-stack-CEEMib__.js +189 -0
  66. package/dist/rate-limit-BBa2PO79.js +521 -0
  67. package/dist/reactive-BHsqVjRh.js +789 -0
  68. package/dist/reactive-D3EERqgO.js +47 -0
  69. package/dist/search.d.ts +1 -0
  70. package/dist/search.js +97 -0
  71. package/dist/src/components/accordion/accordion-core.d.ts +62 -0
  72. package/dist/src/components/accordion/accordion-types.d.ts +62 -0
  73. package/dist/src/components/accordion/index.d.ts +3 -0
  74. package/dist/src/components/accordion/index.shadow.d.ts +5 -0
  75. package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
  76. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
  77. package/dist/src/components/alert/alert-core.d.ts +46 -0
  78. package/dist/src/components/alert/alert-types.d.ts +44 -0
  79. package/dist/src/components/alert/index.d.ts +3 -0
  80. package/dist/src/components/alert/index.shadow.d.ts +5 -0
  81. package/dist/src/components/alert/mono-alert.d.ts +44 -0
  82. package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
  83. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
  84. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
  85. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
  86. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
  87. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
  88. package/dist/src/components/breadcrumb/index.d.ts +6 -0
  89. package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
  90. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
  91. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
  92. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
  93. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
  94. package/dist/src/components/button/button-core.d.ts +90 -0
  95. package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
  96. package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
  97. package/dist/src/components/button/button-types.d.ts +219 -0
  98. package/dist/src/components/button/button-utils.d.ts +18 -0
  99. package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
  100. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
  101. package/dist/src/components/button/index.d.ts +8 -0
  102. package/dist/src/components/button/index.shadow.d.ts +5 -0
  103. package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
  104. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
  105. package/dist/src/components/button/mono-button.d.ts +123 -0
  106. package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
  107. package/dist/src/components/card/card-core.d.ts +74 -0
  108. package/dist/src/components/card/card-types.d.ts +137 -0
  109. package/dist/src/components/card/card-utils.d.ts +23 -0
  110. package/dist/src/components/card/index.d.ts +4 -0
  111. package/dist/src/components/card/index.shadow.d.ts +6 -0
  112. package/dist/src/components/card/mono-card.d.ts +56 -0
  113. package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
  114. package/dist/src/components/chart/chart-core.d.ts +43 -0
  115. package/dist/src/components/chart/chart-odata.d.ts +52 -0
  116. package/dist/src/components/chart/chart-types.d.ts +337 -0
  117. package/dist/src/components/chart/index.d.ts +8 -0
  118. package/dist/src/components/chart/index.shadow.d.ts +7 -0
  119. package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
  120. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
  121. package/dist/src/components/chart/mono-chart.d.ts +30 -0
  122. package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
  123. package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
  124. package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
  125. package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
  126. package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
  127. package/dist/src/components/checkbox/index.d.ts +4 -0
  128. package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
  129. package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
  130. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
  131. package/dist/src/components/chip/chip-core.d.ts +58 -0
  132. package/dist/src/components/chip/chip-types.d.ts +142 -0
  133. package/dist/src/components/chip/chip-utils.d.ts +24 -0
  134. package/dist/src/components/chip/index.d.ts +8 -0
  135. package/dist/src/components/chip/index.shadow.d.ts +6 -0
  136. package/dist/src/components/chip/mono-chip.d.ts +48 -0
  137. package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
  138. package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
  139. package/dist/src/components/date/date-core.d.ts +80 -0
  140. package/dist/src/components/date/date-types.d.ts +163 -0
  141. package/dist/src/components/date/index.d.ts +3 -0
  142. package/dist/src/components/date/index.shadow.d.ts +4 -0
  143. package/dist/src/components/date/mono-date.d.ts +22 -0
  144. package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
  145. package/dist/src/components/drawer/drawer-core.d.ts +99 -0
  146. package/dist/src/components/drawer/drawer-types.d.ts +153 -0
  147. package/dist/src/components/drawer/index.d.ts +3 -0
  148. package/dist/src/components/drawer/index.shadow.d.ts +4 -0
  149. package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
  150. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
  151. package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
  152. package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
  153. package/dist/src/components/dropdown/index.d.ts +3 -0
  154. package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
  155. package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
  156. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
  157. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
  158. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
  159. package/dist/src/components/dropdown-table/index.d.ts +5 -0
  160. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
  161. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
  162. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
  163. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
  164. package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
  165. package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
  166. package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
  167. package/dist/src/components/file-upload/index.d.ts +4 -0
  168. package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
  169. package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
  170. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
  171. package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
  172. package/dist/src/components/filter/filter-builder.d.ts +23 -0
  173. package/dist/src/components/filter/filter-odata.d.ts +27 -0
  174. package/dist/src/components/filter/filter-operators.d.ts +13 -0
  175. package/dist/src/components/filter/filter-types.d.ts +253 -0
  176. package/dist/src/components/filter/index.d.ts +6 -0
  177. package/dist/src/components/filter/index.shadow.d.ts +7 -0
  178. package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
  179. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
  180. package/dist/src/components/form/form-control-core.d.ts +37 -0
  181. package/dist/src/components/form/form-rules.d.ts +25 -0
  182. package/dist/src/components/form/form-types.d.ts +307 -0
  183. package/dist/src/components/form/index.d.ts +6 -0
  184. package/dist/src/components/form/mono-form-controller.d.ts +16 -0
  185. package/dist/src/components/input/index.d.ts +6 -0
  186. package/dist/src/components/input/index.shadow.d.ts +8 -0
  187. package/dist/src/components/input/input-core.d.ts +91 -0
  188. package/dist/src/components/input/input-format.d.ts +118 -0
  189. package/dist/src/components/input/input-types.d.ts +179 -0
  190. package/dist/src/components/input/input-utils.d.ts +10 -0
  191. package/dist/src/components/input/mono-input.d.ts +46 -0
  192. package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
  193. package/dist/src/components/menu/index.d.ts +6 -0
  194. package/dist/src/components/menu/index.shadow.d.ts +7 -0
  195. package/dist/src/components/menu/menu-core.d.ts +65 -0
  196. package/dist/src/components/menu/menu-render.d.ts +55 -0
  197. package/dist/src/components/menu/menu-types.d.ts +195 -0
  198. package/dist/src/components/menu/menu-utils.d.ts +53 -0
  199. package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
  200. package/dist/src/components/menu/mono-menu.d.ts +39 -0
  201. package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
  202. package/dist/src/components/modal/index.d.ts +4 -0
  203. package/dist/src/components/modal/index.shadow.d.ts +5 -0
  204. package/dist/src/components/modal/modal-core.d.ts +110 -0
  205. package/dist/src/components/modal/modal-types.d.ts +304 -0
  206. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
  207. package/dist/src/components/modal/mono-modal.d.ts +45 -0
  208. package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
  209. package/dist/src/components/nav/index.d.ts +4 -0
  210. package/dist/src/components/nav/index.shadow.d.ts +6 -0
  211. package/dist/src/components/nav/mono-nav.d.ts +41 -0
  212. package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
  213. package/dist/src/components/nav/nav-core.d.ts +34 -0
  214. package/dist/src/components/nav/nav-types.d.ts +48 -0
  215. package/dist/src/components/nav/nav-utils.d.ts +12 -0
  216. package/dist/src/components/radio/index.d.ts +4 -0
  217. package/dist/src/components/radio/index.shadow.d.ts +5 -0
  218. package/dist/src/components/radio/mono-radio.d.ts +31 -0
  219. package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
  220. package/dist/src/components/radio/radio-core.d.ts +45 -0
  221. package/dist/src/components/radio/radio-types.d.ts +58 -0
  222. package/dist/src/components/radio/radio-utils.d.ts +12 -0
  223. package/dist/src/components/rich-text-editor/index.d.ts +5 -0
  224. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
  225. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
  226. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
  227. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
  228. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
  229. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
  230. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
  231. package/dist/src/components/select/index.d.ts +4 -0
  232. package/dist/src/components/select/index.shadow.d.ts +5 -0
  233. package/dist/src/components/select/mono-select.d.ts +69 -0
  234. package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
  235. package/dist/src/components/select/select-core.d.ts +98 -0
  236. package/dist/src/components/select/select-types.d.ts +258 -0
  237. package/dist/src/components/select/select-utils.d.ts +7 -0
  238. package/dist/src/components/sidebar/index.d.ts +4 -0
  239. package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
  240. package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
  241. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
  242. package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
  243. package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
  244. package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
  245. package/dist/src/components/switch/index.d.ts +4 -0
  246. package/dist/src/components/switch/index.shadow.d.ts +5 -0
  247. package/dist/src/components/switch/mono-switch.d.ts +31 -0
  248. package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
  249. package/dist/src/components/switch/switch-core.d.ts +49 -0
  250. package/dist/src/components/switch/switch-types.d.ts +64 -0
  251. package/dist/src/components/switch/switch-utils.d.ts +12 -0
  252. package/dist/src/components/table/array-source.d.ts +44 -0
  253. package/dist/src/components/table/date-filter-tree.d.ts +93 -0
  254. package/dist/src/components/table/grouping.d.ts +55 -0
  255. package/dist/src/components/table/index.d.ts +33 -0
  256. package/dist/src/components/table/index.shadow.d.ts +47 -0
  257. package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
  258. package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
  259. package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
  260. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
  261. package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
  262. package/dist/src/components/table/mono-table-detail.d.ts +32 -0
  263. package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
  264. package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
  265. package/dist/src/components/table/mono-table-empty.d.ts +35 -0
  266. package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
  267. package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
  268. package/dist/src/components/table/mono-table-error.d.ts +28 -0
  269. package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
  270. package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
  271. package/dist/src/components/table/mono-table-info.d.ts +19 -0
  272. package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
  273. package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
  274. package/dist/src/components/table/mono-table-loading.d.ts +50 -0
  275. package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
  276. package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
  277. package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
  278. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
  279. package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
  280. package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
  281. package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
  282. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
  283. package/dist/src/components/table/mono-table-paging.d.ts +16 -0
  284. package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
  285. package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
  286. package/dist/src/components/table/mono-table-search.d.ts +34 -0
  287. package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
  288. package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
  289. package/dist/src/components/table/mono-table-sort.d.ts +38 -0
  290. package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
  291. package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
  292. package/dist/src/components/table/mono-table-summary.d.ts +24 -0
  293. package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
  294. package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
  295. package/dist/src/components/table/mono-table-th.d.ts +41 -0
  296. package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
  297. package/dist/src/components/table/store-group-source.d.ts +24 -0
  298. package/dist/src/components/table/table-controller-core.d.ts +40 -0
  299. package/dist/src/components/table/table-filter-icons.d.ts +3 -0
  300. package/dist/src/components/table/table-menu-core.d.ts +65 -0
  301. package/dist/src/components/table/table-overlay.d.ts +165 -0
  302. package/dist/src/components/table/table-sort-icons.d.ts +4 -0
  303. package/dist/src/components/table/table-sort-utils.d.ts +20 -0
  304. package/dist/src/components/table/table-types.d.ts +475 -0
  305. package/dist/src/components/tabs/index.d.ts +3 -0
  306. package/dist/src/components/tabs/index.shadow.d.ts +4 -0
  307. package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
  308. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
  309. package/dist/src/components/tabs/tabs-core.d.ts +57 -0
  310. package/dist/src/components/tabs/tabs-types.d.ts +65 -0
  311. package/dist/src/components/tag-input/index.d.ts +4 -0
  312. package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
  313. package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
  314. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
  315. package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
  316. package/dist/src/components/tag-input/tag-input-types.d.ts +394 -0
  317. package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
  318. package/dist/src/components/textarea/index.d.ts +4 -0
  319. package/dist/src/components/textarea/index.shadow.d.ts +5 -0
  320. package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
  321. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
  322. package/dist/src/components/textarea/textarea-core.d.ts +60 -0
  323. package/dist/src/components/textarea/textarea-types.d.ts +131 -0
  324. package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
  325. package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
  326. package/dist/src/components/tooltip/index.d.ts +6 -0
  327. package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
  328. package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
  329. package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
  330. package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
  331. package/dist/src/composables/breakpoints.d.ts +59 -0
  332. package/dist/src/composables/chip-limits.d.ts +48 -0
  333. package/dist/src/composables/chip-strip.d.ts +93 -0
  334. package/dist/src/composables/color.d.ts +103 -0
  335. package/dist/src/composables/css-class.d.ts +27 -0
  336. package/dist/src/composables/css-size.d.ts +40 -0
  337. package/dist/src/composables/data-source-controller.d.ts +84 -0
  338. package/dist/src/composables/element-props.d.ts +46 -0
  339. package/dist/src/composables/field-icons.d.ts +7 -0
  340. package/dist/src/composables/hybird-prop.d.ts +79 -0
  341. package/dist/src/composables/hydration-flush.d.ts +34 -0
  342. package/dist/src/composables/icon.d.ts +17 -0
  343. package/dist/src/composables/layout-var.d.ts +34 -0
  344. package/dist/src/composables/light-slots.d.ts +133 -0
  345. package/dist/src/composables/mdi-glyphs.d.ts +4 -0
  346. package/dist/src/composables/mono-element.d.ts +9 -0
  347. package/dist/src/composables/mono-event.d.ts +55 -0
  348. package/dist/src/composables/mono-pending.d.ts +8 -0
  349. package/dist/src/composables/mono-skeleton.d.ts +193 -0
  350. package/dist/src/composables/mono-ui.d.ts +58 -0
  351. package/dist/src/composables/notifier.d.ts +46 -0
  352. package/dist/src/composables/popup-portal.d.ts +226 -0
  353. package/dist/src/composables/popup-stack.d.ts +70 -0
  354. package/dist/src/composables/rate-limit.d.ts +108 -0
  355. package/dist/src/composables/reactive.d.ts +53 -0
  356. package/dist/src/composables/shadow-css.d.ts +42 -0
  357. package/dist/src/composables/visibility.d.ts +36 -0
  358. package/dist/src/data/theme/index.d.ts +30 -0
  359. package/dist/src/data/theme/presets.d.ts +94 -0
  360. package/dist/src/entries/index.d.ts +2 -0
  361. package/dist/src/entries/index.node.d.ts +42 -0
  362. package/dist/src/entries/search.d.ts +3 -0
  363. package/dist/src/export/detail.d.ts +29 -0
  364. package/dist/src/export/download.d.ts +9 -0
  365. package/dist/src/export/excel/index.d.ts +27 -0
  366. package/dist/src/export/excel/nodes.d.ts +123 -0
  367. package/dist/src/export/expression.d.ts +36 -0
  368. package/dist/src/export/helpers.d.ts +6 -0
  369. package/dist/src/export/index.d.ts +13 -0
  370. package/dist/src/export/markdown.d.ts +52 -0
  371. package/dist/src/export/resolve-data.d.ts +31 -0
  372. package/dist/src/export/sentinel.d.ts +97 -0
  373. package/dist/src/export/sheet-name.d.ts +45 -0
  374. package/dist/src/export/styles.d.ts +33 -0
  375. package/dist/src/export/template.d.ts +10 -0
  376. package/dist/src/export/types.d.ts +259 -0
  377. package/dist/src/import/coerce.d.ts +38 -0
  378. package/dist/src/import/index.d.ts +16 -0
  379. package/dist/src/import/match.d.ts +54 -0
  380. package/dist/src/import/parse.d.ts +15 -0
  381. package/dist/src/import/types.d.ts +153 -0
  382. package/dist/src/nuxt/index.d.ts +94 -0
  383. package/dist/src/search/data-search.d.ts +207 -0
  384. package/dist/src/search/field-path.d.ts +107 -0
  385. package/dist/src/search/filter-eval.d.ts +30 -0
  386. package/dist/src/search/index.d.ts +22 -0
  387. package/dist/src/search/odata-search.d.ts +18 -0
  388. package/dist/src/search/search-expr.d.ts +160 -0
  389. package/dist/src/utils/data-source-apply.d.ts +97 -0
  390. package/dist/src/utils/data-source-options.d.ts +116 -0
  391. package/dist/src/utils/data-source-read.d.ts +85 -0
  392. package/dist/src/utils/data-source-summary.d.ts +55 -0
  393. package/dist/src/utils/normalize-error.d.ts +60 -0
  394. package/dist/src/vite/index.d.ts +48 -0
  395. package/dist/src/vite/mono-client-only.d.ts +35 -0
  396. package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
  397. package/dist/src/vite/shadow-manifest.d.ts +8 -0
  398. package/dist/styles-BIJ31TM4.js +20146 -0
  399. package/dist/tooltip-CysgRgBi.js +760 -0
  400. package/dist/tooltip.d.ts +1 -0
  401. package/dist/tooltip.js +2 -0
  402. package/dist/ui/accordion.d.ts +1 -0
  403. package/dist/ui/accordion.js +466 -0
  404. package/dist/ui/alert.d.ts +1 -0
  405. package/dist/ui/alert.js +221 -0
  406. package/dist/ui/breadcrumb.d.ts +1 -0
  407. package/dist/ui/breadcrumb.js +902 -0
  408. package/dist/ui/button-dropdown.d.ts +1 -0
  409. package/dist/ui/button-dropdown.js +679 -0
  410. package/dist/ui/button.d.ts +1 -0
  411. package/dist/ui/button.js +63 -0
  412. package/dist/ui/card.d.ts +1 -0
  413. package/dist/ui/card.js +511 -0
  414. package/dist/ui/chart.d.ts +1 -0
  415. package/dist/ui/chart.js +808 -0
  416. package/dist/ui/checkbox.d.ts +1 -0
  417. package/dist/ui/checkbox.js +413 -0
  418. package/dist/ui/chip.d.ts +1 -0
  419. package/dist/ui/chip.js +558 -0
  420. package/dist/ui/date.d.ts +1 -0
  421. package/dist/ui/date.js +686 -0
  422. package/dist/ui/drawer.d.ts +1 -0
  423. package/dist/ui/drawer.js +901 -0
  424. package/dist/ui/dropdown-table.d.ts +1 -0
  425. package/dist/ui/dropdown-table.js +1291 -0
  426. package/dist/ui/dropdown.d.ts +1 -0
  427. package/dist/ui/dropdown.js +586 -0
  428. package/dist/ui/file-upload.d.ts +1 -0
  429. package/dist/ui/file-upload.js +688 -0
  430. package/dist/ui/filter.d.ts +1 -0
  431. package/dist/ui/filter.js +400 -0
  432. package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
  433. package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
  434. package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
  435. package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
  436. package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
  437. package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
  438. package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
  439. package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
  440. package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
  441. package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
  442. package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
  443. package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
  444. package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
  445. package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
  446. package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
  447. package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
  448. package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
  449. package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
  450. package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
  451. package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
  452. package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
  453. package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
  454. package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
  455. package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
  456. package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
  457. package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
  458. package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
  459. package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
  460. package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
  461. package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
  462. package/dist/ui/font/geist-mono.css +104 -0
  463. package/dist/ui/font/geist.css +168 -0
  464. package/dist/ui/font/inter.css +232 -0
  465. package/dist/ui/font/poppins.css +104 -0
  466. package/dist/ui/form.d.ts +1 -0
  467. package/dist/ui/form.js +3 -0
  468. package/dist/ui/index.css +21826 -0
  469. package/dist/ui/input.d.ts +1 -0
  470. package/dist/ui/input.js +1176 -0
  471. package/dist/ui/menu.d.ts +1 -0
  472. package/dist/ui/menu.js +1289 -0
  473. package/dist/ui/modal.d.ts +1 -0
  474. package/dist/ui/modal.js +995 -0
  475. package/dist/ui/nav.d.ts +1 -0
  476. package/dist/ui/nav.js +295 -0
  477. package/dist/ui/radio.d.ts +1 -0
  478. package/dist/ui/radio.js +379 -0
  479. package/dist/ui/rich-text-editor.d.ts +1 -0
  480. package/dist/ui/rich-text-editor.js +1338 -0
  481. package/dist/ui/select.d.ts +1 -0
  482. package/dist/ui/select.js +2066 -0
  483. package/dist/ui/shadow/accordion.js +442 -0
  484. package/dist/ui/shadow/alert.js +218 -0
  485. package/dist/ui/shadow/breadcrumb.js +919 -0
  486. package/dist/ui/shadow/button-dropdown.js +696 -0
  487. package/dist/ui/shadow/button.js +63 -0
  488. package/dist/ui/shadow/card.js +524 -0
  489. package/dist/ui/shadow/chart.js +1569 -0
  490. package/dist/ui/shadow/checkbox.js +457 -0
  491. package/dist/ui/shadow/chip.js +559 -0
  492. package/dist/ui/shadow/date.js +712 -0
  493. package/dist/ui/shadow/drawer.js +869 -0
  494. package/dist/ui/shadow/dropdown-table.js +1620 -0
  495. package/dist/ui/shadow/dropdown.js +547 -0
  496. package/dist/ui/shadow/file-upload.js +731 -0
  497. package/dist/ui/shadow/filter.js +402 -0
  498. package/dist/ui/shadow/input.js +1150 -0
  499. package/dist/ui/shadow/menu.js +899 -0
  500. package/dist/ui/shadow/modal.js +1193 -0
  501. package/dist/ui/shadow/nav.js +240 -0
  502. package/dist/ui/shadow/radio.js +408 -0
  503. package/dist/ui/shadow/rich-text-editor.js +1344 -0
  504. package/dist/ui/shadow/select.js +2033 -0
  505. package/dist/ui/shadow/sidebar.js +606 -0
  506. package/dist/ui/shadow/switch.js +428 -0
  507. package/dist/ui/shadow/table.js +4755 -0
  508. package/dist/ui/shadow/tabs.js +372 -0
  509. package/dist/ui/shadow/tag-input.js +2846 -0
  510. package/dist/ui/shadow/textarea.js +816 -0
  511. package/dist/ui/sidebar.d.ts +1 -0
  512. package/dist/ui/sidebar.js +659 -0
  513. package/dist/ui/switch.d.ts +1 -0
  514. package/dist/ui/switch.js +398 -0
  515. package/dist/ui/table.d.ts +1 -0
  516. package/dist/ui/table.js +4654 -0
  517. package/dist/ui/tabs.d.ts +1 -0
  518. package/dist/ui/tabs.js +379 -0
  519. package/dist/ui/tag-input.d.ts +1 -0
  520. package/dist/ui/tag-input.js +2819 -0
  521. package/dist/ui/textarea.d.ts +1 -0
  522. package/dist/ui/textarea.js +819 -0
  523. package/dist/ui/theme/legacy.css +293 -0
  524. package/dist/ui/theme/luma.css +743 -0
  525. package/dist/ui/theme/lyra.css +754 -0
  526. package/dist/ui/theme/maia.css +673 -0
  527. package/dist/ui/theme/mira.css +802 -0
  528. package/dist/ui/theme/nova.css +662 -0
  529. package/dist/ui/theme/one.css +699 -0
  530. package/dist/ui/theme/rhea.css +742 -0
  531. package/dist/ui/theme/sera.css +845 -0
  532. package/dist/ui/theme/tokens.css +261 -0
  533. package/dist/ui/theme/vega.css +467 -0
  534. package/dist/vite-C5iUK7so.js +329 -0
  535. package/dist/vite.d.ts +1 -0
  536. package/dist/vite.js +2 -0
  537. package/dist/vue.d.ts +282 -0
  538. package/package.json +411 -3
@@ -0,0 +1,679 @@
1
+ import { t as applyProps } from "../element-props-CLB6yvbm.js";
2
+ import { t as customElement } from "../mono-element-B0kP_96P.js";
3
+ import { a as defineHybridPropAliases, o as numberStringConverter, r as booleanStringConverter, t as __decorate } from "../decorate-DEXtNagw.js";
4
+ import { t as dispatchMonoEvent } from "../mono-event-Bi1qP9uN.js";
5
+ import { a as rateLimitHasChanged } from "../rate-limit-BBa2PO79.js";
6
+ import { n as button_default } from "../mono-button-CoVnBLav.js";
7
+ import { t as PopupPortalController } from "../popup-portal-BziRX1yG.js";
8
+ import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
9
+ import { ref } from "lit/directives/ref.js";
10
+ import { property, state } from "lit/decorators.js";
11
+ import { repeat } from "lit/directives/repeat.js";
12
+ //#region src/components/button/button-dropdown-core.ts
13
+ /**
14
+ * Would these two entry lists RENDER identically?
15
+ *
16
+ * Function-valued fields are skipped: a consumer rebuilds `onClick` on every render
17
+ * so it closes over the current row, and those handlers are resolved at click time
18
+ * rather than baked into the DOM, so they cannot make the output differ. Everything
19
+ * else — label, icon, size, color, variant, disabled — is compared strictly, and any
20
+ * non-primitive field (a fresh `cssClass` object, say) simply compares unequal and
21
+ * falls back to a normal update. Conservative by construction: a false "same" would
22
+ * show stale markup, a false "different" only costs the render we have today.
23
+ */
24
+ function sameButtonItems(a, b) {
25
+ if (a === b) return true;
26
+ if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;
27
+ for (let i = 0; i < a.length; i++) {
28
+ const x = a[i];
29
+ const y = b[i];
30
+ if (x === y) continue;
31
+ if (!x || !y || typeof x !== "object" || typeof y !== "object") return false;
32
+ const keys = Object.keys(x);
33
+ if (keys.length !== Object.keys(y).length) return false;
34
+ for (const key of keys) {
35
+ const xv = x[key];
36
+ const yv = y[key];
37
+ if (typeof xv === "function" && typeof yv === "function") continue;
38
+ if (xv !== yv) return false;
39
+ }
40
+ }
41
+ return true;
42
+ }
43
+ /**
44
+ * `MonoButtonDropdownCore` — everything render-mode-agnostic for
45
+ * `mono-button-dropdown`.
46
+ *
47
+ * The behaviour in one line: **while `buttons.length <= min` the entries render
48
+ * as plain buttons; past that they ALL move into a dropdown and only the trigger
49
+ * is left.** That all-or-nothing rule is deliberate (it mirrors the Vuetify
50
+ * `ButtonMenu` this replaces) — a partial split would leave the row's width
51
+ * jumping around as the action list changes.
52
+ *
53
+ * Two pieces are borrowed rather than rebuilt:
54
+ * - **`PopupPortalController`** does the positioning, flipping and z-index
55
+ * stacking, exactly as `mono-dropdown` uses it, so this panel ranks correctly
56
+ * against modals and other popups.
57
+ * - **Each entry is a real `<mono-button>`**, so every `ButtonProps` — `loading`,
58
+ * `throttle`, `handler`, `badge` — keeps working with nothing re-implemented.
59
+ * Props are pushed on with `applyProps` rather than a fixed attribute list, so
60
+ * a prop added to the button later flows through without touching this file.
61
+ */
62
+ /**
63
+ * The component's PUBLIC custom properties, handed to the popup portal so a
64
+ * relocated panel keeps overrides an ancestor of the host set — a portaled panel
65
+ * is a child of `<body>`, so it inherits none of them, and `getComputedStyle`
66
+ * cannot enumerate custom properties for the portal to copy them blindly.
67
+ *
68
+ * Kept in step with button-dropdown.css by tests/button-dropdown-attributes.test.ts.
69
+ */
70
+ var BUTTON_DROPDOWN_STYLE_VARS = [
71
+ "--mono-button-dropdown-bg",
72
+ "--mono-button-dropdown-border",
73
+ "--mono-button-dropdown-dark",
74
+ "--mono-button-dropdown-danger",
75
+ "--mono-button-dropdown-gap",
76
+ "--mono-button-dropdown-info",
77
+ "--mono-button-dropdown-item-base-color",
78
+ "--mono-button-dropdown-item-base-hover-bg",
79
+ "--mono-button-dropdown-item-base-hover-color",
80
+ "--mono-button-dropdown-item-color",
81
+ "--mono-button-dropdown-item-font-weight",
82
+ "--mono-button-dropdown-item-hover",
83
+ "--mono-button-dropdown-item-hover-bg",
84
+ "--mono-button-dropdown-item-hover-color",
85
+ "--mono-button-dropdown-item-radius",
86
+ "--mono-button-dropdown-item-radius-lg",
87
+ "--mono-button-dropdown-item-radius-xl",
88
+ "--mono-button-dropdown-item-radius-xxl",
89
+ "--mono-button-dropdown-light",
90
+ "--mono-button-dropdown-list-gap",
91
+ "--mono-button-dropdown-min-width",
92
+ "--mono-button-dropdown-min-width-lg",
93
+ "--mono-button-dropdown-min-width-md",
94
+ "--mono-button-dropdown-min-width-sm",
95
+ "--mono-button-dropdown-min-width-xl",
96
+ "--mono-button-dropdown-min-width-xs",
97
+ "--mono-button-dropdown-min-width-xxl",
98
+ "--mono-button-dropdown-offset",
99
+ "--mono-button-dropdown-offset-lg",
100
+ "--mono-button-dropdown-offset-md",
101
+ "--mono-button-dropdown-offset-sm",
102
+ "--mono-button-dropdown-offset-xl",
103
+ "--mono-button-dropdown-offset-xs",
104
+ "--mono-button-dropdown-offset-xxl",
105
+ "--mono-button-dropdown-padding",
106
+ "--mono-button-dropdown-padding-lg",
107
+ "--mono-button-dropdown-padding-md",
108
+ "--mono-button-dropdown-padding-sm",
109
+ "--mono-button-dropdown-padding-xl",
110
+ "--mono-button-dropdown-padding-xs",
111
+ "--mono-button-dropdown-padding-xxl",
112
+ "--mono-button-dropdown-primary",
113
+ "--mono-button-dropdown-purple",
114
+ "--mono-button-dropdown-radius",
115
+ "--mono-button-dropdown-radius-lg",
116
+ "--mono-button-dropdown-radius-md",
117
+ "--mono-button-dropdown-radius-sm",
118
+ "--mono-button-dropdown-radius-xl",
119
+ "--mono-button-dropdown-radius-xs",
120
+ "--mono-button-dropdown-radius-xxl",
121
+ "--mono-button-dropdown-ring-color",
122
+ "--mono-button-dropdown-ring-width",
123
+ "--mono-button-dropdown-secondary",
124
+ "--mono-button-dropdown-shadow",
125
+ "--mono-button-dropdown-success",
126
+ "--mono-button-dropdown-surface",
127
+ "--mono-button-dropdown-teal",
128
+ "--mono-button-dropdown-text",
129
+ "--mono-button-dropdown-warning"
130
+ ];
131
+ var MonoButtonDropdownCore = (superClass) => {
132
+ class MonoButtonDropdownCoreClass extends superClass {
133
+ constructor(...args) {
134
+ super(...args);
135
+ this._panelEl = null;
136
+ this._triggerEl = null;
137
+ this._popup = new PopupPortalController(this, {
138
+ getPanel: () => this._panelEl,
139
+ getAnchor: () => this._triggerEl,
140
+ /**
141
+ * The INNER wrapper, not the host — it's what carries
142
+ * `.mono-button-dropdown`, and therefore the `--_mono-button-dropdown-*`
143
+ * variables every panel rule reads. The portal mirrors this element's class
144
+ * onto itself, so the relocated panel keeps inheriting them; pointing at the
145
+ * host (which has no class) left the panel transparent and border-less,
146
+ * since each value resolved to an undefined var.
147
+ */
148
+ getStyleScope: () => this.renderRoot?.querySelector?.(".mono-button-dropdown"),
149
+ isOpen: () => this.modelValue,
150
+ side: () => this._side(),
151
+ align: () => this._align(),
152
+ offset: () => this.offset,
153
+ styleVars: () => BUTTON_DROPDOWN_STYLE_VARS,
154
+ flip: () => true,
155
+ shift: () => true,
156
+ onSideResolved: (side) => {
157
+ if (this._resolvedSide !== side) this._resolvedSide = side;
158
+ }
159
+ });
160
+ this._buttons = [];
161
+ this.min = 1;
162
+ this.placement = "bottom-end";
163
+ this.offset = 4;
164
+ this.modelValue = false;
165
+ this.disabled = false;
166
+ this.closeOnSelect = true;
167
+ this.closeOnOutsideClick = true;
168
+ this.closeOnEscape = true;
169
+ this.cssClass = {};
170
+ this._resolvedSide = "bottom";
171
+ this._onDocumentClick = (event) => {
172
+ if (!this.modelValue || !this.closeOnOutsideClick) return;
173
+ const path = event.composedPath();
174
+ if (path.includes(this) || this._popup.containsInPath(path)) return;
175
+ this._setOpen(false, "outside", event);
176
+ };
177
+ this._onDocumentKeydown = (event) => {
178
+ if (!this.modelValue) return;
179
+ if (event.key === "Escape" && this.closeOnEscape) {
180
+ this._setOpen(false, "escape", event);
181
+ this._focusTrigger();
182
+ return;
183
+ }
184
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
185
+ const rows = this._menuButtons();
186
+ if (!rows.length) return;
187
+ event.preventDefault();
188
+ rows[(rows.findIndex((b) => b === document.activeElement || b.contains(document.activeElement)) + (event.key === "ArrowDown" ? 1 : -1) + rows.length) % rows.length]?.focus?.();
189
+ }
190
+ };
191
+ this._itemEls = /* @__PURE__ */ new Map();
192
+ this._itemParts = /* @__PURE__ */ new Map();
193
+ this.bindPanel = (el) => {
194
+ this._panelEl = el ?? null;
195
+ };
196
+ this._rootEl = null;
197
+ this.bindRoot = (el) => {
198
+ this._rootEl = el ?? null;
199
+ this._applyRootAttrs(this._rootEl);
200
+ };
201
+ defineHybridPropAliases(this, [
202
+ "modelValue",
203
+ "closeOnSelect",
204
+ "closeOnOutsideClick",
205
+ "closeOnEscape",
206
+ "cssClass",
207
+ "cssClassName"
208
+ ]);
209
+ }
210
+ /**
211
+ * Entries for this dropdown.
212
+ *
213
+ * `noAccessor` because assignment does two things, only one of which is an
214
+ * update. Building a fresh array on every render is the NORMAL shape whenever an
215
+ * entry's `onClick` closes over the current row — and with one dropdown per table
216
+ * row that means an unrelated re-render (a filter panel opening, say) hands N
217
+ * dropdowns a brand-new array and re-renders all of them. Measured on a 2000-row
218
+ * table: 737ms of blocked main thread per toggle, against 60ms when the array
219
+ * identity happened to be stable. Nothing about the RENDER differed.
220
+ *
221
+ * So: compare by content and skip the update when it is equivalent. Handlers are
222
+ * excluded from that comparison deliberately — they are rebuilt every render by
223
+ * design and are resolved at CLICK time from `_itemParts`, never captured in the
224
+ * listener closure (see `_itemElement`). That is also why `_retargetItemParts()`
225
+ * has to run on EVERY assignment including a skipped one: `_itemParts` is
226
+ * normally refreshed during render, so without it a suppressed update would
227
+ * leave the cached entries pointing at the previous array's closures and a click
228
+ * would fire the wrong row's handler.
229
+ */
230
+ get buttons() {
231
+ return this._buttons;
232
+ }
233
+ set buttons(next) {
234
+ const previous = this._buttons;
235
+ this._buttons = next ?? [];
236
+ this._retargetItemParts();
237
+ if (!sameButtonItems(previous, this._buttons)) this.requestUpdate("buttons", previous);
238
+ }
239
+ /**
240
+ * Point the cached entry elements at the CURRENT array without rendering, so a
241
+ * click resolves this render's `item`/`index` even when the update was skipped.
242
+ */
243
+ _retargetItemParts() {
244
+ if (!this._itemParts?.size) return;
245
+ for (const [key, state] of this._itemParts) {
246
+ const index = Number(key.slice(2));
247
+ const item = this._buttons[index];
248
+ if (item) this._itemParts.set(key, {
249
+ ...state,
250
+ item,
251
+ index
252
+ });
253
+ }
254
+ }
255
+ connectedCallback() {
256
+ super.connectedCallback();
257
+ if (isServer) return;
258
+ document.addEventListener("click", this._onDocumentClick, true);
259
+ document.addEventListener("keydown", this._onDocumentKeydown);
260
+ }
261
+ disconnectedCallback() {
262
+ if (!isServer) {
263
+ document.removeEventListener("click", this._onDocumentClick, true);
264
+ document.removeEventListener("keydown", this._onDocumentKeydown);
265
+ }
266
+ super.disconnectedCallback();
267
+ }
268
+ /** Entries are behind the trigger once there are more of them than `min`. */
269
+ get collapsed() {
270
+ return (this.buttons?.length ?? 0) > Math.max(0, this.min ?? 1);
271
+ }
272
+ show(source = "manual") {
273
+ this._setOpen(true, source);
274
+ }
275
+ hide(source = "manual") {
276
+ this._setOpen(false, source);
277
+ }
278
+ toggle(source = "manual") {
279
+ this._setOpen(!this.modelValue, source);
280
+ }
281
+ _setOpen(next, source, sourceEvent) {
282
+ if (this.disabled && next) return;
283
+ if (this.modelValue === next) return;
284
+ this.modelValue = next;
285
+ const detail = {
286
+ modelValue: next,
287
+ collapsed: this.collapsed,
288
+ source,
289
+ sourceEvent
290
+ };
291
+ dispatchMonoEvent(this, next ? "open" : "close", detail);
292
+ }
293
+ /** The rendered entry buttons inside the open panel, in order. */
294
+ _menuButtons() {
295
+ return this._panelEl ? Array.from(this._panelEl.querySelectorAll("[data-mono-bd-item]")) : [];
296
+ }
297
+ _focusTrigger() {
298
+ this._triggerEl?.focus?.();
299
+ }
300
+ _side() {
301
+ return this.placement?.split("-")[0] ?? "bottom";
302
+ }
303
+ _align() {
304
+ const part = this.placement?.split("-")[1];
305
+ return part === "start" || part === "end" ? part : "center";
306
+ }
307
+ /** Light renders `mono-button`; the shadow build overrides with its own tag. */
308
+ _buttonTag() {
309
+ return "mono-button";
310
+ }
311
+ /**
312
+ * Whether entry content can be written as a Lit template.
313
+ *
314
+ * **It can't for the light build.** A light `<mono-button>` CAPTURES its
315
+ * children in `connectedCallback` and relocates them into its own
316
+ * `[data-mono-slot]` targets — including nodes our template rendered into it.
317
+ * That ejects this element's part markers, and the next render dies with
318
+ * "this `ChildPart` has no `parentNode`". So the light build hands Lit a
319
+ * fully-built element instead (see `_itemElement`), leaving Lit no parts
320
+ * inside the button to lose.
321
+ *
322
+ * The shadow build has no such problem: it projects through a native
323
+ * `<slot>`, moves nothing, and stays SSR-safe.
324
+ */
325
+ _declarativeItems() {
326
+ return false;
327
+ }
328
+ updated(changed) {
329
+ super.updated?.(changed);
330
+ this._applyRootAttrs(this._rootEl);
331
+ }
332
+ willUpdate(changed) {
333
+ if (changed.has("buttons")) this._pruneItemCache();
334
+ super.willUpdate?.(changed);
335
+ }
336
+ /** Forget cached entries whose index no longer exists in `buttons`. */
337
+ _pruneItemCache() {
338
+ const len = this.buttons?.length ?? 0;
339
+ for (const key of [...this._itemEls.keys()]) {
340
+ const index = Number(key.slice(2));
341
+ if (!Number.isFinite(index) || index >= len) {
342
+ this._itemEls.delete(key);
343
+ this._itemParts.delete(key);
344
+ }
345
+ }
346
+ }
347
+ /** Build (or update) the real element for one entry. */
348
+ _itemElement(item, index, inMenu, opts) {
349
+ const key = `${inMenu ? "m" : "r"}:${index}`;
350
+ let el = this._itemEls.get(key);
351
+ const prev = this._itemParts.get(key);
352
+ if (el && prev && (prev.label !== item.label || prev.icon !== item.icon)) {
353
+ this._itemEls.delete(key);
354
+ el = void 0;
355
+ }
356
+ if (!el) {
357
+ el = document.createElement(this._buttonTag());
358
+ el.setAttribute("data-mono-bd-item", "");
359
+ if (item.icon) {
360
+ const icon = document.createElement("span");
361
+ icon.setAttribute("slot", "icon");
362
+ icon.className = `mono-icon ${item.icon}`;
363
+ el.appendChild(icon);
364
+ }
365
+ if (item.label) el.appendChild(document.createTextNode(item.label));
366
+ el.addEventListener("click", ((event) => {
367
+ const state = this._itemParts.get(key);
368
+ if (state) this._onItemClick(state.item, state.index, event);
369
+ }));
370
+ el.addEventListener("mno-click", (e) => e.stopPropagation());
371
+ el.addEventListener("mnoClick", (e) => e.stopPropagation());
372
+ this._itemEls.set(key, el);
373
+ }
374
+ this._itemParts.set(key, {
375
+ label: item.label,
376
+ icon: item.icon,
377
+ item,
378
+ index
379
+ });
380
+ el.className = opts.cls;
381
+ this._applyItem(el, item);
382
+ return el;
383
+ }
384
+ _cls(base, key) {
385
+ const extra = this.cssClass?.[key];
386
+ return extra ? `${base} ${extra}` : base;
387
+ }
388
+ /**
389
+ * Push an entry's props onto its rendered `<mono-button>`.
390
+ *
391
+ * Done imperatively via a Lit ref callback rather than as template
392
+ * attributes: object/function props (`handler`, `cssClass`, `throttle`) can't
393
+ * cross as attributes, and going through `applyProps` means any prop the
394
+ * button gains later works here with no change.
395
+ */
396
+ _applyItem(el, item) {
397
+ if (!el) return;
398
+ const { label: _l, icon: _i, onClick: _c, className: _n, ...rest } = item;
399
+ applyProps(el, rest);
400
+ if (this.disabled) el.disabled = true;
401
+ }
402
+ _onItemClick(item, index, event) {
403
+ if (item.disabled || this.disabled) return;
404
+ item.onClick?.(event);
405
+ dispatchMonoEvent(this, "click", {
406
+ item,
407
+ index,
408
+ modelValue: this.modelValue,
409
+ collapsed: this.collapsed,
410
+ source: "trigger",
411
+ sourceEvent: event
412
+ });
413
+ if (this.collapsed && this.closeOnSelect) this._setOpen(false, "manual", event);
414
+ }
415
+ /** One entry, as a real button element carrying its own props. */
416
+ renderItem(item, index, inMenu) {
417
+ const tag = this._buttonTag();
418
+ const cls = [
419
+ inMenu ? "mono-button-dropdown-item-btn" : "mono-button-dropdown-row-btn",
420
+ inMenu && item.color ? `mono-bd-c-${item.color}` : "",
421
+ item.className ?? ""
422
+ ].filter(Boolean).join(" ");
423
+ const content = html`
424
+ ${item.icon ? html`<span slot="icon" class="mono-icon ${item.icon}"></span>` : nothing}
425
+ ${item.label ?? nothing}
426
+ `;
427
+ const onClick = (e) => this._onItemClick(item, index, e);
428
+ if (!this._declarativeItems()) return this._itemElement(item, index, inMenu, {
429
+ cls,
430
+ onClick
431
+ });
432
+ const bind = (el) => this._applyItem(el, item);
433
+ const stop = (e) => e.stopPropagation();
434
+ return tag === "mono-button" ? html`<mono-button
435
+ class=${cls}
436
+ data-mono-bd-item
437
+ ${ref(bind)}
438
+ @click=${onClick}
439
+ @mno-click=${stop}
440
+ @mnoClick=${stop}
441
+ >${content}</mono-button
442
+ >` : html`<mono-shadow-button
443
+ class=${cls}
444
+ data-mono-bd-item
445
+ ${ref(bind)}
446
+ @click=${onClick}
447
+ @mno-click=${stop}
448
+ @mnoClick=${stop}
449
+ >${content}</mono-shadow-button
450
+ >`;
451
+ }
452
+ /** The inline row — every entry as a plain button, no dropdown involved. */
453
+ renderRow() {
454
+ return html`
455
+ <div class=${this._cls("mono-button-dropdown-row", "row")} mono-row ?hidden=${this.collapsed}>
456
+ ${this.collapsed ? nothing : repeat(this.buttons ?? [], (_item, i) => i, (item, i) => this.renderItem(item, i, false))}
457
+ </div>
458
+ `;
459
+ }
460
+ /** Class + state for the panel, which each build writes into its own template. */
461
+ get panelClass() {
462
+ return this._cls("mono-button-dropdown-panel", "panel");
463
+ }
464
+ get panelHidden() {
465
+ return !this.collapsed || !this.modelValue;
466
+ }
467
+ /**
468
+ * The prop mirrors, each omitted at its default so `:not([mono-size])` means
469
+ * "md" for hand-written markup exactly as it does for the element.
470
+ */
471
+ _computeRootAttrs() {
472
+ const align = this._align();
473
+ const side = this.modelValue ? this._resolvedSide : this._side();
474
+ return {
475
+ "mono-size": !this.size || this.size === "md" ? null : this.size,
476
+ "mono-color": !this.color || this.color === "primary" ? null : this.color,
477
+ "mono-variant": !this.variant || this.variant === "solid" ? null : this.variant,
478
+ "mono-rounded": this.rounded ?? null,
479
+ "mono-placement": this.placement === "bottom-end" ? null : this.placement,
480
+ "mono-side": side === "bottom" ? null : side,
481
+ "mono-align": align === "end" ? null : align,
482
+ "mono-open": this.modelValue ? "" : null,
483
+ "mono-collapsed": this.collapsed ? "" : null,
484
+ "mono-disabled": this.disabled ? "" : null,
485
+ "mono-fixed": this._positionsPanel() ? "" : null
486
+ };
487
+ }
488
+ /** Does this build measure and place the panel itself? (light only — see above.) */
489
+ _positionsPanel() {
490
+ return !isServer && this.renderRoot === this;
491
+ }
492
+ _applyRootAttrs(root) {
493
+ if (!root) return;
494
+ if (!root.hasAttribute("mono-button-dropdown")) root.setAttribute("mono-button-dropdown", "");
495
+ for (const [name, value] of Object.entries(this._computeRootAttrs())) if (value === null) root.removeAttribute(name);
496
+ else if (root.getAttribute(name) !== value) root.setAttribute(name, value);
497
+ }
498
+ /**
499
+ * An entry's `color` inside the menu.
500
+ *
501
+ * It is NOT a button colour in there (see button-dropdown.css): the row takes
502
+ * the role as its INK and a 10%/20% wash of it on hover, the way Basecoat
503
+ * treats `[data-variant='destructive']`. `primary` is written out rather
504
+ * than dropped as a default, because the panel's own ink is the popover
505
+ * foreground, not the primary role.
506
+ */
507
+ _itemColorAttr(item) {
508
+ return item.color ?? null;
509
+ }
510
+ /** The menu rows. Lives INSIDE the panel, so these parts travel with it. */
511
+ renderMenuList() {
512
+ return html`
513
+ <ul class=${this._cls("mono-button-dropdown-list", "list")} mono-list>
514
+ ${this.collapsed ? repeat(this.buttons ?? [], (_item, i) => i, (item, i) => html`
515
+ <li
516
+ class=${this._cls("mono-button-dropdown-item", "item")}
517
+ mono-item
518
+ mono-item-color=${this._itemColorAttr(item) ?? nothing}
519
+ role="none"
520
+ >
521
+ ${this.renderItem(item, i, true)}
522
+ </li>
523
+ `) : nothing}
524
+ </ul>
525
+ `;
526
+ }
527
+ /** The `⋮` trigger. `nothing` while the entries are inline. */
528
+ renderTrigger() {
529
+ if (!this.collapsed) return nothing;
530
+ return this._renderTriggerButton();
531
+ }
532
+ _renderTriggerButton() {
533
+ const t = {
534
+ ...this.color ? { color: this.color } : {},
535
+ ...this.variant ? { variant: this.variant } : {},
536
+ ...this.size ? { size: this.size } : {},
537
+ ...this.rounded ? { rounded: this.rounded } : {},
538
+ ...this.trigger ?? {}
539
+ };
540
+ const tag = this._buttonTag();
541
+ const triggerCls = this._cls("mono-button-dropdown-trigger", "trigger");
542
+ const bindTrigger = (el) => {
543
+ this._triggerEl = el ?? null;
544
+ if (!el) return;
545
+ const { label: _l, icon: _i, ...rest } = t;
546
+ applyProps(el, rest);
547
+ if (this.disabled) el.disabled = true;
548
+ };
549
+ const stop = (e) => e.stopPropagation();
550
+ const onTrigger = (e) => {
551
+ e.stopPropagation();
552
+ this.toggle("trigger");
553
+ };
554
+ if (!this._declarativeItems()) {
555
+ let el = this._itemEls.get("trigger");
556
+ if (!el) {
557
+ el = document.createElement(tag);
558
+ el.setAttribute("mono-trigger", "");
559
+ const icon = document.createElement("span");
560
+ icon.setAttribute("slot", "icon");
561
+ icon.className = `mono-icon ${t.icon ?? "i-mdi-dots-vertical"}`;
562
+ el.appendChild(icon);
563
+ if (t.label) el.appendChild(document.createTextNode(t.label));
564
+ if (!t.label) el.setAttribute("icon-only", "true");
565
+ el.addEventListener("click", onTrigger);
566
+ el.addEventListener("mno-click", stop);
567
+ el.addEventListener("mnoClick", stop);
568
+ this._itemEls.set("trigger", el);
569
+ }
570
+ el.className = triggerCls;
571
+ bindTrigger(el);
572
+ return el;
573
+ }
574
+ const triggerContent = html`
575
+ <span slot="icon" class="mono-icon ${t.icon ?? "i-mdi-dots-vertical"}"></span>
576
+ ${t.label ?? nothing}
577
+ `;
578
+ return tag === "mono-button" ? html`<mono-button
579
+ class=${triggerCls}
580
+ mono-trigger
581
+ icon-only=${t.label ? nothing : "true"}
582
+ ${ref(bindTrigger)}
583
+ @click=${onTrigger}
584
+ @mno-click=${stop}
585
+ @mnoClick=${stop}
586
+ >${triggerContent}</mono-button
587
+ >` : html`<mono-shadow-button
588
+ class=${triggerCls}
589
+ mono-trigger
590
+ icon-only=${t.label ? nothing : "true"}
591
+ ${ref(bindTrigger)}
592
+ @click=${onTrigger}
593
+ @mno-click=${stop}
594
+ @mnoClick=${stop}
595
+ >${triggerContent}</mono-shadow-button
596
+ >`;
597
+ }
598
+ }
599
+ __decorate([property({
600
+ attribute: false,
601
+ noAccessor: true
602
+ })], MonoButtonDropdownCoreClass.prototype, "buttons", null);
603
+ __decorate([property({ converter: numberStringConverter })], MonoButtonDropdownCoreClass.prototype, "min", void 0);
604
+ __decorate([property({ type: String })], MonoButtonDropdownCoreClass.prototype, "placement", void 0);
605
+ __decorate([property({ converter: numberStringConverter })], MonoButtonDropdownCoreClass.prototype, "offset", void 0);
606
+ __decorate([property({ type: String })], MonoButtonDropdownCoreClass.prototype, "color", void 0);
607
+ __decorate([property({ type: String })], MonoButtonDropdownCoreClass.prototype, "variant", void 0);
608
+ __decorate([property({ type: String })], MonoButtonDropdownCoreClass.prototype, "size", void 0);
609
+ __decorate([property({ type: String })], MonoButtonDropdownCoreClass.prototype, "rounded", void 0);
610
+ __decorate([property({
611
+ attribute: false,
612
+ hasChanged: rateLimitHasChanged
613
+ })], MonoButtonDropdownCoreClass.prototype, "trigger", void 0);
614
+ __decorate([property({
615
+ attribute: "model-value",
616
+ reflect: true,
617
+ converter: booleanStringConverter
618
+ })], MonoButtonDropdownCoreClass.prototype, "modelValue", void 0);
619
+ __decorate([property({
620
+ reflect: true,
621
+ converter: booleanStringConverter
622
+ })], MonoButtonDropdownCoreClass.prototype, "disabled", void 0);
623
+ __decorate([property({
624
+ attribute: "close-on-select",
625
+ converter: booleanStringConverter
626
+ })], MonoButtonDropdownCoreClass.prototype, "closeOnSelect", void 0);
627
+ __decorate([property({
628
+ attribute: "close-on-outside-click",
629
+ converter: booleanStringConverter
630
+ })], MonoButtonDropdownCoreClass.prototype, "closeOnOutsideClick", void 0);
631
+ __decorate([property({
632
+ attribute: "close-on-escape",
633
+ converter: booleanStringConverter
634
+ })], MonoButtonDropdownCoreClass.prototype, "closeOnEscape", void 0);
635
+ __decorate([property({ attribute: false })], MonoButtonDropdownCoreClass.prototype, "cssClass", void 0);
636
+ __decorate([state()], MonoButtonDropdownCoreClass.prototype, "_resolvedSide", void 0);
637
+ return MonoButtonDropdownCoreClass;
638
+ };
639
+ //#endregion
640
+ //#region src/components/button/button-dropdown.css?raw
641
+ var button_dropdown_default = "/* =========================================================================\r\n mono-button-dropdown — a port of Basecoat's `.dropdown-menu`\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-button-dropdown size=\"sm\" placement=\"bottom-end\" model-value>\r\n <div mono-button-dropdown mono-size=\"sm\" mono-side=\"bottom\" mono-align=\"end\" mono-open>\r\n <div mono-row hidden></div>\r\n <div mono-button mono-trigger mono-icon-only>…the ⋮ button…</div>\r\n <div mono-panel role=\"menu\" aria-hidden=\"false\">\r\n <ul mono-list>\r\n <li mono-item role=\"none\" mono-item-color=\"success\">\r\n <div mono-button>…a real button…</div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md, no\r\n `mono-side` = bottom, no `mono-align` = start, no `mono-item-color` = the\r\n panel's own ink). The element writes them on the inner root in BOTH builds;\r\n the old classes (`.mono-button-dropdown-panel`, `.mono-bd-c-danger`) are still\r\n emitted as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-button-dropdown] ≡ .dropdown-menu (relative inline-flex)\r\n [mono-row] ≡ EXTENSION (the INLINE row — upstream has\r\n no \"stay flat while short\" mode)\r\n [mono-trigger] ≡ .dropdown-menu > button (a real mono-button,\r\n styled by button.css — nothing to add here)\r\n [mono-panel] ≡ .dropdown-menu > [data-popover]\r\n (bg-popover text-popover-foreground\r\n ring-1 ring-foreground/10 gap-0 rounded-md\r\n p-1 shadow-md overflow-x-hidden\r\n overflow-y-auto duration-100)\r\n [mono-list] ≡ [role='menu'] (outline-hidden)\r\n [mono-item] ≡ [role='menuitem'] (gap-2 rounded-sm px-2\r\n py-1.5 text-sm, hover bg-accent\r\n text-accent-foreground)\r\n [mono-item][mono-item-color=…] ≡ .dropdown-menu [data-variant='destructive']\r\n (text-destructive, hover bg-destructive/10,\r\n dark /20) — generalised to all ten roles\r\n [mono-side] / [mono-align] ≡ [data-popover][data-side] / [data-align]\r\n [mono-size=\"…\"] ≡ EXTENSION (upstream ships one menu size)\r\n\r\n THE ROW IS A REAL BUTTON. Each entry renders as a `<mono-button>`, so the\r\n menu cannot paint it with a selector — in the shadow build the control sits\r\n behind a boundary. It is flattened with the button's own PUBLIC knobs, set on\r\n the `<li mono-item>`: custom properties inherit, so one declaration reaches\r\n both builds. `--mono-button-width` / `-justify` exist for exactly this.\r\n\r\n COLOUR: an entry's `color` is NOT a button colour in here — a row of solid,\r\n outlined and tonal buttons reads as noise rather than a list. It is the\r\n Basecoat `[data-variant='destructive']` treatment generalised: the row's INK\r\n (label and glyph alike, the glyph being a `currentColor` mask) becomes the\r\n role, and hover lays that role down at `--mono-mode-tint` (10% light / 20%\r\n dark). Never the role as a solid fill — a full-strength background under a\r\n full-strength glyph is the one combination that makes the glyph vanish.\r\n\r\n THE PANEL IS PORTALED in the light build: `composables/popup-portal` moves it\r\n into a `<body>` portal and mirrors the root's class AND `mono-*` attributes\r\n onto that portal, so `[mono-button-dropdown] > [mono-panel]` keeps matching.\r\n Every panel rule is therefore written as a CHILD of the root, and every public\r\n knob it reads is listed in `BUTTON_DROPDOWN_STYLE_VARS` (button-dropdown-core)\r\n so an ancestor's override travels with it.\r\n\r\n Specificity contract: a part's RESTING rule is exactly one attribute strong —\r\n `:where([mono-button-dropdown]) > [mono-panel]` = (0,1,0) — so a utility class\r\n handed in through `cssClass` wins by source order, while the prop and state\r\n rules stay heavier.\r\n\r\n FLAVORS set `--mono-button-dropdown-{radius,padding,min-width,offset,shadow,\r\n ring-*,item-radius,item-font-weight}` (+ the per-size forms); every fallback\r\n here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"dropdown-menu\"`).\r\n ========================================================================= */\r\n\r\nmono-button-dropdown {\r\n display: inline-flex;\r\n}\r\n\r\n/* =========================================\r\n Root — layout and the palette\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dropdown-menu.css .dropdown-menu — relative inline-flex */\r\n[mono-button-dropdown] {\r\n /* ── the ten entry roles, each a public knob over a Basecoat token ───────\r\n `secondary`, `light` and `dark` are SURFACES upstream, and a surface makes\r\n no ink: `--dark` is a near-black in light mode and STILL a dark grey in dark\r\n mode (the role is a fill, paired with `--dark-foreground`), so inking a row\r\n with it turns that row invisible on a dark popover. The three resolve to a\r\n foreground instead, which flips with the mode. */\r\n --_mono-bd-primary: var(--mono-button-dropdown-primary, var(--primary));\r\n --_mono-bd-secondary: var(--mono-button-dropdown-secondary, var(--secondary-foreground));\r\n --_mono-bd-success: var(--mono-button-dropdown-success, var(--success));\r\n --_mono-bd-danger: var(--mono-button-dropdown-danger, var(--destructive));\r\n --_mono-bd-warning: var(--mono-button-dropdown-warning, var(--warning));\r\n --_mono-bd-info: var(--mono-button-dropdown-info, var(--info));\r\n --_mono-bd-teal: var(--mono-button-dropdown-teal, var(--teal));\r\n --_mono-bd-purple: var(--mono-button-dropdown-purple, var(--purple));\r\n --_mono-bd-dark: var(--mono-button-dropdown-dark, var(--foreground));\r\n --_mono-bd-light: var(--mono-button-dropdown-light, var(--foreground));\r\n\r\n /* ── panel paint — `bg-popover text-popover-foreground ring-foreground/10` ── */\r\n --_mono-bd-bg: var(--mono-button-dropdown-bg, var(--mono-button-dropdown-surface, var(--popover)));\r\n --_mono-bd-text: var(--mono-button-dropdown-text, var(--popover-foreground));\r\n --_mono-bd-ring-width: var(--mono-button-dropdown-ring-width, var(--mono-border-width));\r\n --_mono-bd-ring-color: var(--mono-button-dropdown-ring-color, var(--mono-button-dropdown-border,\r\n color-mix(in oklab, var(--foreground) 10%, transparent)));\r\n --_mono-bd-shadow: var(--mono-button-dropdown-shadow, var(--mono-shadow-md));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .dropdown-menu > [data-popover] — rounded-md p-1 gap-0 */\r\n --_mono-bd-radius: var(--mono-button-dropdown-radius, var(--_mono-bd-radius-preset, var(--mono-button-dropdown-radius-md, var(--mono-radius-md))));\r\n --_mono-bd-padding: var(--mono-button-dropdown-padding, var(--_mono-bd-padding-preset, var(--mono-button-dropdown-padding-md, var(--mono-spacing))));\r\n --_mono-bd-list-gap: var(--mono-button-dropdown-list-gap, var(--_mono-bd-list-gap-preset, 0px));\r\n /* DEVIATION: upstream is `min-width: anchor-size(width)` — the panel is at\r\n least as wide as its trigger. Anchor positioning is not the mechanism here\r\n (the panel is portaled and placed from measurements), so the floor is a\r\n plain length; maia/luma/sera's `min-w-48` is the per-size knob. */\r\n --_mono-bd-min-width: var(--mono-button-dropdown-min-width, var(--_mono-bd-min-width-preset, var(--mono-button-dropdown-min-width-md, 9rem)));\r\n /* The static offset — the JS path uses the `offset` PROP; keep them in step. */\r\n --_mono-bd-offset: var(--mono-button-dropdown-offset, var(--_mono-bd-offset-preset, var(--mono-button-dropdown-offset-md, var(--mono-spacing))));\r\n\r\n /* ── the inline row (NOT the menu): the gap between loose buttons ───────── */\r\n --_mono-bd-gap: var(--mono-button-dropdown-gap, calc(var(--mono-spacing) * 1.5));\r\n\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n font-family: inherit;\r\n}\r\n\r\n[mono-button-dropdown] *,\r\n[mono-button-dropdown] *::before,\r\n[mono-button-dropdown] *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: Basecoat ships ONE menu; md is its `[data-popover]`\r\n ========================================= */\r\n\r\n[mono-button-dropdown][mono-size=\"xs\"] {\r\n --_mono-bd-radius-preset: var(--mono-button-dropdown-radius-xs, var(--mono-radius-sm));\r\n --_mono-bd-padding-preset: var(--mono-button-dropdown-padding-xs, calc(var(--mono-spacing) * 0.5));\r\n --_mono-bd-min-width-preset: var(--mono-button-dropdown-min-width-xs, 7rem);\r\n --_mono-bd-offset-preset: var(--mono-button-dropdown-offset-xs, calc(var(--mono-spacing) * 0.75));\r\n}\r\n\r\n[mono-button-dropdown][mono-size=\"sm\"] {\r\n --_mono-bd-radius-preset: var(--mono-button-dropdown-radius-sm, var(--mono-radius-md));\r\n --_mono-bd-padding-preset: var(--mono-button-dropdown-padding-sm, calc(var(--mono-spacing) * 0.75));\r\n --_mono-bd-min-width-preset: var(--mono-button-dropdown-min-width-sm, 8rem);\r\n --_mono-bd-offset-preset: var(--mono-button-dropdown-offset-sm, var(--mono-spacing));\r\n}\r\n\r\n[mono-button-dropdown][mono-size=\"lg\"] {\r\n --_mono-bd-radius-preset: var(--mono-button-dropdown-radius-lg, var(--mono-radius-lg));\r\n --_mono-bd-padding-preset: var(--mono-button-dropdown-padding-lg, calc(var(--mono-spacing) * 1.5));\r\n --_mono-bd-min-width-preset: var(--mono-button-dropdown-min-width-lg, 11rem);\r\n --_mono-bd-offset-preset: var(--mono-button-dropdown-offset-lg, calc(var(--mono-spacing) * 1.5));\r\n --_mono-bd-item-radius-preset: var(--mono-button-dropdown-item-radius-lg, var(--mono-radius-md));\r\n}\r\n\r\n[mono-button-dropdown][mono-size=\"xl\"] {\r\n --_mono-bd-radius-preset: var(--mono-button-dropdown-radius-xl, var(--mono-radius-xl));\r\n --_mono-bd-padding-preset: var(--mono-button-dropdown-padding-xl, calc(var(--mono-spacing) * 2));\r\n --_mono-bd-min-width-preset: var(--mono-button-dropdown-min-width-xl, 13rem);\r\n --_mono-bd-offset-preset: var(--mono-button-dropdown-offset-xl, calc(var(--mono-spacing) * 2));\r\n --_mono-bd-item-radius-preset: var(--mono-button-dropdown-item-radius-xl, var(--mono-radius-md));\r\n}\r\n\r\n[mono-button-dropdown][mono-size=\"xxl\"] {\r\n --_mono-bd-radius-preset: var(--mono-button-dropdown-radius-xxl, var(--mono-radius-xl));\r\n --_mono-bd-padding-preset: var(--mono-button-dropdown-padding-xxl, calc(var(--mono-spacing) * 2.5));\r\n --_mono-bd-min-width-preset: var(--mono-button-dropdown-min-width-xxl, 15rem);\r\n --_mono-bd-offset-preset: var(--mono-button-dropdown-offset-xxl, calc(var(--mono-spacing) * 2.5));\r\n --_mono-bd-item-radius-preset: var(--mono-button-dropdown-item-radius-xxl, var(--mono-radius-lg));\r\n}\r\n\r\n/* =========================================\r\n Inline row — EXTENSION: the entries before they collapse\r\n ========================================= */\r\n\r\n:where([mono-button-dropdown]) > [mono-row] {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n gap: var(--_mono-bd-gap);\r\n}\r\n\r\n/* `hidden` is a UA rule, and an author `display` beats it whatever the\r\n specificity — so the hidden state has to be stated here. */\r\n[mono-button-dropdown] > [mono-row][hidden] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Panel — `.dropdown-menu > [data-popover]`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/popover.css [data-popover] — absolute z-50 w-max\r\n overflow-x-hidden overflow-y-auto outline-hidden\r\n basecoat@1.0.2 styles/vega.css .dropdown-menu > [data-popover] — bg-popover\r\n text-popover-foreground ring-foreground/10 gap-0 rounded-md p-1 shadow-md ring-1\r\n — DEVIATIONS: the z-index is the shared popup stack's `--mono-popup-z` rather\r\n than a flat z-50, and the height cap is the room the portal measured. */\r\n:where([mono-button-dropdown]) > [mono-panel] {\r\n position: absolute;\r\n z-index: var(--mono-popup-z, 1000);\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--_mono-bd-list-gap);\r\n width: max-content;\r\n min-width: var(--_mono-bd-min-width);\r\n max-height: var(--mono-popup-avail-h, none);\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n outline: none;\r\n padding: var(--_mono-bd-padding);\r\n border-radius: var(--_mono-bd-radius);\r\n background: var(--_mono-bd-bg);\r\n color: var(--_mono-bd-text);\r\n box-shadow:\r\n 0 0 0 var(--_mono-bd-ring-width) var(--_mono-bd-ring-color),\r\n var(--_mono-bd-shadow);\r\n}\r\n\r\n/* Same UA-`hidden` story as the row, and it has to out-specify the rule above\r\n even once the panel has been portaled (where it is still a `>` child). */\r\n[mono-button-dropdown] > [mono-panel][hidden] {\r\n display: none;\r\n}\r\n\r\n/* Once the element takes over it measures and writes inline top/left, so the\r\n static placement rules below must stand aside. */\r\n[mono-button-dropdown][mono-fixed] > [mono-panel] {\r\n position: fixed;\r\n}\r\n\r\n/* =========================================\r\n Static placement — `[data-side]` / `[data-align]`, verbatim\r\n -----------------------------------------------------------------------------\r\n What hand-written markup positions with (and SSR, before hydration). The\r\n element overrides all of it with inline top/left once it has measured.\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/popover.css [data-popover] >> &:not([data-side]), &[data-side='bottom'] — mt-1 top-full */\r\n[mono-button-dropdown]:not([mono-side]):not([mono-fixed]) > [mono-panel],\r\n[mono-button-dropdown][mono-side=\"bottom\"]:not([mono-fixed]) > [mono-panel] {\r\n top: 100%;\r\n margin-top: var(--_mono-bd-offset);\r\n}\r\n\r\n/* basecoat@1.0.2 components/popover.css [data-popover] >> &[data-side='top'] — mb-1 bottom-full */\r\n[mono-button-dropdown][mono-side=\"top\"]:not([mono-fixed]) > [mono-panel] {\r\n bottom: 100%;\r\n margin-bottom: var(--_mono-bd-offset);\r\n}\r\n\r\n/* basecoat@1.0.2 components/popover.css [data-popover] >> &[data-side='left'] — me-1 end-full */\r\n[mono-button-dropdown][mono-side=\"left\"]:not([mono-fixed]) > [mono-panel] {\r\n inset-inline-end: 100%;\r\n margin-inline-end: var(--_mono-bd-offset);\r\n}\r\n\r\n/* basecoat@1.0.2 components/popover.css [data-popover] >> &[data-side='right'] — ms-1 start-full */\r\n[mono-button-dropdown][mono-side=\"right\"]:not([mono-fixed]) > [mono-panel] {\r\n inset-inline-start: 100%;\r\n margin-inline-start: var(--_mono-bd-offset);\r\n}\r\n\r\n/* The top/bottom pair aligns on the inline axis: start-0 / end-0 / start-1/2 -translate-x-1/2.\r\n DEVIATION from `mono-dropdown`: the default here is `end`, matching the\r\n `placement=\"bottom-end\"` default — a row of actions hangs off the right. */\r\n[mono-button-dropdown]:is(:not([mono-side]), [mono-side=\"top\"], [mono-side=\"bottom\"])[mono-align=\"start\"]:not([mono-fixed]) > [mono-panel] {\r\n inset-inline-start: 0;\r\n}\r\n\r\n[mono-button-dropdown]:is(:not([mono-side]), [mono-side=\"top\"], [mono-side=\"bottom\"]):is(:not([mono-align]), [mono-align=\"end\"]):not([mono-fixed]) > [mono-panel] {\r\n inset-inline-end: 0;\r\n}\r\n\r\n[mono-button-dropdown]:is(:not([mono-side]), [mono-side=\"top\"], [mono-side=\"bottom\"])[mono-align=\"center\"]:not([mono-fixed]) > [mono-panel] {\r\n inset-inline-start: 50%;\r\n translate: -50% 0;\r\n}\r\n\r\n/* …and the left/right pair on the block axis: top-0 / bottom-0 / top-1/2 -translate-y-1/2 */\r\n[mono-button-dropdown]:is([mono-side=\"left\"], [mono-side=\"right\"]):is(:not([mono-align]), [mono-align=\"start\"]):not([mono-fixed]) > [mono-panel] {\r\n top: 0;\r\n}\r\n\r\n[mono-button-dropdown]:is([mono-side=\"left\"], [mono-side=\"right\"])[mono-align=\"end\"]:not([mono-fixed]) > [mono-panel] {\r\n bottom: 0;\r\n}\r\n\r\n[mono-button-dropdown]:is([mono-side=\"left\"], [mono-side=\"right\"])[mono-align=\"center\"]:not([mono-fixed]) > [mono-panel] {\r\n top: 50%;\r\n translate: 0 -50%;\r\n}\r\n\r\n/* =========================================\r\n List — `[role='menu']`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dropdown-menu.css .dropdown-menu [role='menu'] — outline-hidden */\r\n:where([mono-button-dropdown]) [mono-list] {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--_mono-bd-list-gap);\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n outline: none;\r\n}\r\n\r\n/* =========================================\r\n Item — `[role='menuitem']`\r\n -----------------------------------------------------------------------------\r\n The `<li>` paints nothing itself: it hands the entry button a flattened\r\n palette through the button's PUBLIC knobs, which is the only route that\r\n reaches the control in BOTH builds (the shadow one keeps it behind a\r\n boundary). The entry's own `variant` and `color` presets are overridden by\r\n construction — inside the menu every row is one flat strip.\r\n ========================================= */\r\n\r\n:where([mono-button-dropdown]) [mono-item] {\r\n /* ── the row's ink and its hover wash ──────────────────────────────────────\r\n FOUR tiers, not three, because the middle one belongs to a PER-ENTRY prop:\r\n\r\n --mono-button-dropdown-item-<x> consumer, wins over everything\r\n --_mono-bd-item-<x>-preset the entry's `color` (mono-item-color)\r\n --mono-button-dropdown-item-base-<x> a FLAVOR's neutral row\r\n the Basecoat value\r\n\r\n A flavor must write the `-base-` tier: writing the consumer knob would\r\n out-rank every role and freeze all ten colours at one ink. */\r\n --_mono-bd-item-color: var(--mono-button-dropdown-item-color, var(--_mono-bd-item-color-preset, var(--mono-button-dropdown-item-base-color, var(--_mono-bd-text))));\r\n /* basecoat@1.0.2 styles/vega.css .dropdown-menu :is([role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio']) — focus-visible:bg-accent */\r\n --_mono-bd-item-hover-bg: var(--mono-button-dropdown-item-hover-bg, var(--_mono-bd-item-hover-bg-preset, var(--mono-button-dropdown-item-base-hover-bg, var(--mono-button-dropdown-item-hover, var(--accent)))));\r\n --_mono-bd-item-hover-color: var(--mono-button-dropdown-item-hover-color, var(--_mono-bd-item-hover-color-preset, var(--mono-button-dropdown-item-base-hover-color, var(--accent-foreground))));\r\n /* basecoat@1.0.2 styles/vega.css .dropdown-menu :is([role='menuitem'], [role='menuitemcheckbox'], [role='menuitemradio']) — rounded-sm */\r\n --_mono-bd-item-radius: var(--mono-button-dropdown-item-radius, var(--_mono-bd-item-radius-preset, var(--mono-radius-sm)));\r\n\r\n /* ── flatten the entry: the button's own public knobs, set on its ancestor ─ */\r\n --mono-button-bg: transparent;\r\n --mono-button-color: var(--_mono-bd-item-color);\r\n --mono-button-border-color: transparent;\r\n --mono-button-shadow: 0 0 #0000;\r\n --mono-button-hover-bg: var(--_mono-bd-item-hover-bg);\r\n --mono-button-hover-color: var(--_mono-bd-item-hover-color);\r\n --mono-button-hover-border-color: transparent;\r\n --mono-button-hover-shadow: 0 0 #0000;\r\n --mono-button-radius: var(--_mono-bd-item-radius);\r\n /* A menu row is a strip, not a chip: full width, label against the start edge. */\r\n --mono-button-width: 100%;\r\n --mono-button-justify: flex-start;\r\n /* No press twitch in a list — right for a standalone button, wrong for a row. */\r\n --mono-button-press-translate: 0 0;\r\n --mono-button-font-weight: var(--mono-button-dropdown-item-font-weight, var(--mono-font-weight-medium));\r\n\r\n display: block;\r\n min-width: 0;\r\n}\r\n\r\n/* The entry element itself — `<mono-button>` / `<mono-shadow-button>`, both\r\n `display: inline-block` hosts — has to fill the row for the whole strip to be\r\n clickable rather than just the label's width. */\r\n:where([mono-button-dropdown]) [mono-item] > * {\r\n display: block;\r\n width: 100%;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dropdown-menu [data-variant='destructive'] —\r\n `text-destructive`, and `:is(:focus-visible, .active)` lays the same colour\r\n down at `bg-destructive/10` (dark `/20`, carried by `--mono-mode-tint`).\r\n EXTENSION: generalised from destructive to all ten roles. The tint is the\r\n whole point — a solid role fill under a role-coloured glyph erases it. */\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"primary\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-primary);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-primary) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-primary);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"success\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-success);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-success) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-success);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"danger\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-danger);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-danger) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-danger);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"warning\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-warning);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-warning) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-warning);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"info\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-info);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-info) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-info);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"teal\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-teal);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-teal) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-teal);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"purple\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-purple);\r\n --_mono-bd-item-hover-bg-preset: color-mix(in oklab, var(--_mono-bd-purple) var(--mono-mode-tint), transparent);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-purple);\r\n}\r\n\r\n/* The three surface roles: their ink is a foreground, and a 10% wash of a\r\n near-background colour is invisible — so they hover on `--accent`, the\r\n neutral row wash, exactly like an uncoloured entry. */\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"dark\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-dark);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-dark);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"secondary\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-secondary);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-secondary);\r\n}\r\n\r\n[mono-button-dropdown] [mono-item][mono-item-color=\"light\"] {\r\n --_mono-bd-item-color-preset: var(--_mono-bd-light);\r\n --_mono-bd-item-hover-color-preset: var(--_mono-bd-light);\r\n}\r\n\r\n/**\r\n * Icon glyphs inside a shadow root.\r\n *\r\n * `adoptIconStyles` copies the page's `.i-mdi-…` rules through CSSOM `cssText`,\r\n * and that read-back DROPS the mask declarations — `mask-image: ;` comes back\r\n * empty whenever the value is a `var()`. What survives is `--un-icon`, the data\r\n * URI itself. So the copy leaves `background-color: currentColor` with no mask,\r\n * painting a solid square: the \"black cube\".\r\n *\r\n * Re-declaring the mask here fixes it, because this sheet is authored source\r\n * rather than a CSSOM copy — it consumes the custom property that DID survive.\r\n * Harmless in the light build, where it merely restates what the page already\r\n * says. The glyph's BOX is left to `[mono-button] [mono-icon]` (Basecoat's\r\n * `size-4`): sizing it here as well used to out-specify that and hand every\r\n * menu icon a 1.1em box the button never asked for.\r\n */\r\n[mono-button-dropdown] [class*='i-'].mono-icon {\r\n -webkit-mask: var(--un-icon) no-repeat;\r\n mask: var(--un-icon) no-repeat;\r\n -webkit-mask-size: 100% 100%;\r\n mask-size: 100% 100%;\r\n background-color: currentColor;\r\n display: inline-block;\r\n}\r\n";
642
+ //#endregion
643
+ //#region src/components/button/mono-button-dropdown.ts
644
+ var MonoButtonDropdown = class MonoButtonDropdown extends MonoButtonDropdownCore(LitElement) {
645
+ static {
646
+ this.styles = [unsafeCSS(button_default), unsafeCSS(button_dropdown_default)];
647
+ }
648
+ createRenderRoot() {
649
+ return this;
650
+ }
651
+ /**
652
+ * The panel is a STATIC element here, not something a helper returns.
653
+ *
654
+ * `PopupPortalController` moves it into a `<body>` portal on open and never
655
+ * moves it back. A node produced inside a `${}` expression sits in a
656
+ * `ChildPart` range, and ejecting it from that range breaks Lit on the next
657
+ * render ("this `ChildPart` has no `parentNode`"). As a fixed template node it
658
+ * has no range to leave — which is exactly why `mono-dropdown` is shaped this
659
+ * way too.
660
+ */
661
+ render() {
662
+ return html`<div class=${this._cls("mono-button-dropdown", "root")} mono-button-dropdown ${ref(this.bindRoot)}>
663
+ ${this.renderRow()}${this.renderTrigger()}
664
+ <div
665
+ class=${this.panelClass}
666
+ mono-panel
667
+ role="menu"
668
+ aria-hidden=${this.modelValue ? "false" : "true"}
669
+ ?hidden=${this.panelHidden}
670
+ ${ref(this.bindPanel)}
671
+ >
672
+ ${this.renderMenuList()}
673
+ </div>
674
+ </div>`;
675
+ }
676
+ };
677
+ MonoButtonDropdown = __decorate([customElement("mono-button-dropdown")], MonoButtonDropdown);
678
+ //#endregion
679
+ export { MonoButtonDropdown, MonoButtonDropdownCore };