@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,465 @@
1
+ import { a as unregisterPopupLayer, r as registerPopupLayer } from "./popup-stack-CEEMib__.js";
2
+ import { isServer } from "lit";
3
+ //#region src/composables/popup-portal.ts
4
+ /** Smallest height we will ever constrain a panel to — below this it's unusable. */
5
+ var MIN_CONSTRAINED = 96;
6
+ /** Composed-tree parent — crosses shadow boundaries. */
7
+ function flatTreeParent(node) {
8
+ const slot = node.assignedSlot;
9
+ if (slot) return slot;
10
+ const parent = node.parentNode;
11
+ if (parent instanceof ShadowRoot) return parent.host;
12
+ return parent;
13
+ }
14
+ /** Composed-tree containment — `root.contains(node)` that crosses shadow roots and slots. */
15
+ function flatTreeContains(root, node) {
16
+ for (let n = node; n; n = flatTreeParent(n)) if (n === root) return true;
17
+ return false;
18
+ }
19
+ /**
20
+ * Which element OPENED a body-level portal.
21
+ *
22
+ * Every portal is a direct child of `<body>`, so the DOM says nothing about
23
+ * where its popup came from — and a popup opened from inside another popup's
24
+ * panel (a header filter inside a dropdown-table, a select inside a modal) is
25
+ * then "outside" to that panel's own dismiss test, which closes it under the
26
+ * user's hands. This map is the missing link, kept off the DOM (no attribute,
27
+ * nothing to serialise) and weak so a torn-down portal is not held.
28
+ */
29
+ var portalOwner = /* @__PURE__ */ new WeakMap();
30
+ /** The portal `node` currently lives in (composed tree), or `null` when it is not inside one. */
31
+ function flatTreeClosestPortal(node) {
32
+ for (let n = flatTreeParent(node); n; n = flatTreeParent(n)) if (n instanceof Element && n.hasAttribute("data-mono-popup-portal")) return n;
33
+ return null;
34
+ }
35
+ /**
36
+ * True when an event's composed path passes through any of `roots` — directly,
37
+ * or through a body-level popup portal whose OWNER lives inside one of them (at
38
+ * any depth: a select inside a header filter inside a dropdown-table resolves
39
+ * all the way up).
40
+ *
41
+ * The one "is this click inside me?" test the library uses. Popups ask it
42
+ * through `PopupPortalController.containsInPath`; `mono-modal` / `mono-drawer`
43
+ * — which portal themselves, not through this controller — ask it directly with
44
+ * their host + render root, so a click in a select's option list opened from
45
+ * inside a no-overlay dialog counts as inside the dialog.
46
+ */
47
+ function pathOwnedBy(path, roots) {
48
+ if (path.some((node) => node instanceof Element && roots.includes(node))) return true;
49
+ return nestedPortalInPath(path, roots);
50
+ }
51
+ /**
52
+ * The portal half of `pathOwnedBy`: true when the path passes through a
53
+ * `[data-mono-popup-portal]` whose owner chain lands in one of `roots` — the
54
+ * roots themselves being in the path does NOT count. That distinction is what
55
+ * `ownsNestedInPath` is built on: an Escape with focus on a dropdown's own
56
+ * trigger is the dropdown's to close, not a nested popup's.
57
+ */
58
+ function nestedPortalInPath(path, roots) {
59
+ for (const node of path) {
60
+ if (!(node instanceof Element) || !node.hasAttribute("data-mono-popup-portal")) continue;
61
+ let owner = portalOwner.get(node);
62
+ const seen = /* @__PURE__ */ new Set();
63
+ while (owner && !seen.has(owner)) {
64
+ seen.add(owner);
65
+ if (roots.some((root) => root === owner || flatTreeContains(root, owner))) return true;
66
+ const outer = flatTreeClosestPortal(owner);
67
+ owner = outer ? portalOwner.get(outer) : void 0;
68
+ }
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * Nearest ancestor of the panel that establishes a containing block for
74
+ * `position: fixed` descendants. A body-portaled panel has none (the portal is
75
+ * a direct child of `<body>`), but a shadow-root panel usually sits under app
76
+ * chrome that does.
77
+ */
78
+ function findFixedContainingBlock(panel) {
79
+ let node = flatTreeParent(panel);
80
+ while (node && node !== document.body && node !== document.documentElement) {
81
+ if (node instanceof HTMLElement) {
82
+ const cs = getComputedStyle(node);
83
+ if (cs.transform && cs.transform !== "none") return node;
84
+ if (cs.perspective && cs.perspective !== "none") return node;
85
+ if (cs.filter && cs.filter !== "none") return node;
86
+ const backdrop = cs.backdropFilter || cs.webkitBackdropFilter;
87
+ if (backdrop && backdrop !== "none") return node;
88
+ const willChange = cs.willChange || "";
89
+ if (willChange.includes("transform") || willChange.includes("perspective") || willChange.includes("filter")) return node;
90
+ const contain = cs.contain || "";
91
+ if (contain.includes("paint") || contain.includes("layout") || contain.includes("strict") || contain.includes("content")) return node;
92
+ }
93
+ node = flatTreeParent(node);
94
+ }
95
+ return null;
96
+ }
97
+ /**
98
+ * Resolve where `panel` should sit relative to `anchor`, in viewport
99
+ * coordinates (i.e. what `position: fixed` wants, before any containing-block
100
+ * compensation — that's {@link applyPopupPlacement}'s job).
101
+ *
102
+ * IMPORTANT — the panel is measured at its NATURAL size: any previously
103
+ * published `--mono-popup-avail-*` constraint is cleared first. A constrained
104
+ * panel is exactly as tall as the room we gave it, so measuring it that way
105
+ * would make the flip test (`spaceBelow < panelH`) always report "it fits" and
106
+ * the panel would oscillate between sides on every scroll tick.
107
+ */
108
+ function computePopupPlacement(anchor, panel, o = {}) {
109
+ panel.style.removeProperty("--mono-popup-avail-h");
110
+ panel.style.removeProperty("--mono-popup-avail-w");
111
+ const triggerRect = anchor.getBoundingClientRect();
112
+ const panelRect = panel.getBoundingClientRect();
113
+ const vw = window.innerWidth;
114
+ const vh = window.innerHeight;
115
+ const margin = o.margin ?? 4;
116
+ const cs = getComputedStyle(panel);
117
+ const borderX = (parseFloat(cs.borderLeftWidth) || 0) + (parseFloat(cs.borderRightWidth) || 0);
118
+ const borderY = (parseFloat(cs.borderTopWidth) || 0) + (parseFloat(cs.borderBottomWidth) || 0);
119
+ const boxW = panelRect.width || panel.offsetWidth;
120
+ const boxH = panelRect.height || panel.offsetHeight;
121
+ const panelW = cs.overflowX === "visible" ? Math.max(boxW, panel.scrollWidth + borderX) : boxW;
122
+ const panelH = cs.overflowY === "visible" ? Math.max(boxH, panel.scrollHeight + borderY) : boxH;
123
+ let side = o.side ?? "bottom";
124
+ let align = o.align ?? "start";
125
+ const offset = o.offset ?? 6;
126
+ const flip = o.flip ?? false;
127
+ const shift = o.shift ?? false;
128
+ const constrain = o.constrain ?? false;
129
+ /** Extent the panel will actually occupy along the main axis once clamped. */
130
+ const clamped = (natural, available) => constrain ? Math.min(natural, Math.max(MIN_CONSTRAINED, available)) : natural;
131
+ if (flip) {
132
+ if (side === "bottom") {
133
+ const below = vh - triggerRect.bottom - offset;
134
+ const above = triggerRect.top - offset;
135
+ if (below < panelH && above > below) side = "top";
136
+ } else if (side === "top") {
137
+ const above = triggerRect.top - offset;
138
+ const below = vh - triggerRect.bottom - offset;
139
+ if (above < panelH && below > above) side = "bottom";
140
+ } else if (side === "right") {
141
+ const right = vw - triggerRect.right - offset;
142
+ const left = triggerRect.left - offset;
143
+ if (right < panelW && left > right) side = "left";
144
+ } else if (side === "left") {
145
+ const left = triggerRect.left - offset;
146
+ const right = vw - triggerRect.right - offset;
147
+ if (left < panelW && right > left) side = "right";
148
+ }
149
+ }
150
+ if (flip && align !== "center") {
151
+ const fitsStart = side === "bottom" || side === "top" ? triggerRect.left + panelW + margin <= vw : triggerRect.top + panelH + margin <= vh;
152
+ const fitsEnd = side === "bottom" || side === "top" ? triggerRect.right - panelW - margin >= 0 : triggerRect.bottom - panelH - margin >= 0;
153
+ if (align === "start" && !fitsStart && fitsEnd) align = "end";
154
+ else if (align === "end" && !fitsEnd && fitsStart) align = "start";
155
+ }
156
+ let top = 0;
157
+ let left = 0;
158
+ let availableMain = 0;
159
+ if (side === "bottom" || side === "top") {
160
+ if (align === "start") left = triggerRect.left;
161
+ else if (align === "end") left = triggerRect.right - panelW;
162
+ else left = triggerRect.left + triggerRect.width / 2 - panelW / 2;
163
+ if (shift) {
164
+ const minLeft = margin;
165
+ const maxLeft = vw - panelW - margin;
166
+ if (maxLeft >= minLeft) {
167
+ if (left < minLeft) left = minLeft;
168
+ if (left > maxLeft) left = maxLeft;
169
+ }
170
+ }
171
+ availableMain = side === "bottom" ? vh - triggerRect.bottom - offset - margin : triggerRect.top - offset - margin;
172
+ top = side === "bottom" ? triggerRect.bottom + offset : triggerRect.top - clamped(panelH, availableMain) - offset;
173
+ } else {
174
+ if (align === "start") top = triggerRect.top;
175
+ else if (align === "end") top = triggerRect.bottom - panelH;
176
+ else top = triggerRect.top + triggerRect.height / 2 - panelH / 2;
177
+ if (shift) {
178
+ const minTop = margin;
179
+ const maxTop = vh - panelH - margin;
180
+ if (maxTop >= minTop) {
181
+ if (top < minTop) top = minTop;
182
+ if (top > maxTop) top = maxTop;
183
+ }
184
+ }
185
+ availableMain = side === "right" ? vw - triggerRect.right - offset - margin : triggerRect.left - offset - margin;
186
+ left = side === "right" ? triggerRect.right + offset : triggerRect.left - clamped(panelW, availableMain) - offset;
187
+ }
188
+ return {
189
+ top,
190
+ left,
191
+ side,
192
+ availableMain
193
+ };
194
+ }
195
+ /**
196
+ * Commit a {@link computePopupPlacement} result to the panel. Compensates for a
197
+ * transformed / contained ancestor that has become the fixed panel's containing
198
+ * block (a no-op for a body-portaled panel), and — when `constrain` is set —
199
+ * publishes the available room so the panel's own CSS can clamp itself.
200
+ */
201
+ function applyPopupPlacement(panel, placement, constrain = false) {
202
+ let { top, left } = placement;
203
+ const cb = findFixedContainingBlock(panel);
204
+ if (cb) {
205
+ const cbRect = cb.getBoundingClientRect();
206
+ top -= cbRect.top;
207
+ left -= cbRect.left;
208
+ }
209
+ panel.style.position = "fixed";
210
+ const grid = typeof window !== "undefined" && window.devicePixelRatio > 0 ? window.devicePixelRatio : 1;
211
+ const snap = (v) => Math.round(v * grid) / grid;
212
+ panel.style.top = `${snap(top)}px`;
213
+ panel.style.left = `${snap(left)}px`;
214
+ panel.style.right = "auto";
215
+ panel.style.bottom = "auto";
216
+ panel.style.transform = "none";
217
+ if (constrain) {
218
+ const avail = `${Math.round(Math.max(MIN_CONSTRAINED, placement.availableMain))}px`;
219
+ const vertical = placement.side === "bottom" || placement.side === "top";
220
+ panel.style.setProperty(vertical ? "--mono-popup-avail-h" : "--mono-popup-avail-w", avail);
221
+ }
222
+ }
223
+ var PopupPortalController = class {
224
+ constructor(host, opts) {
225
+ this.host = host;
226
+ this.opts = opts;
227
+ this._portal = null;
228
+ this._panel = null;
229
+ this._adopted = false;
230
+ this._registered = false;
231
+ this._resolvedSide = "bottom";
232
+ this._classObserver = null;
233
+ this._viewportBound = false;
234
+ this._viewportFrame = 0;
235
+ this._onViewport = () => {
236
+ if (!this.opts.isOpen() || this._viewportFrame) return;
237
+ this._viewportFrame = requestAnimationFrame(() => {
238
+ this._viewportFrame = 0;
239
+ if (this.opts.isOpen()) this.reposition();
240
+ });
241
+ };
242
+ host.addController(this);
243
+ }
244
+ hostConnected() {
245
+ if (isServer) return;
246
+ if (this.opts.isOpen()) {
247
+ this._adopt();
248
+ this._enterStack();
249
+ this._syncPortalClass();
250
+ this.reposition();
251
+ }
252
+ }
253
+ hostDisconnected() {
254
+ this._unbindViewport();
255
+ this._leaveStack();
256
+ this._classObserver?.disconnect();
257
+ this._classObserver = null;
258
+ if (this._portal?.parentNode) this._portal.parentNode.removeChild(this._portal);
259
+ this._portal = null;
260
+ this._adopted = false;
261
+ }
262
+ hostUpdated() {
263
+ if (isServer) return;
264
+ if (this.opts.isOpen()) {
265
+ this._adopt();
266
+ this._enterStack();
267
+ this._syncPortalClass();
268
+ this.reposition();
269
+ } else {
270
+ this._leaveStack();
271
+ this._syncPortalClass();
272
+ }
273
+ }
274
+ /**
275
+ * Only relocate to `<body>` when the host renders into light DOM
276
+ * (`renderRoot === host`). Shadow hosts keep the panel in their shadow root.
277
+ */
278
+ get _canPortal() {
279
+ return !isServer && this.host.renderRoot === this.host;
280
+ }
281
+ _ensurePortal() {
282
+ if (this._portal) return this._portal;
283
+ if (typeof document === "undefined") return null;
284
+ const portal = document.createElement("div");
285
+ portal.setAttribute("data-mono-popup-portal", "");
286
+ portal.style.display = "contents";
287
+ document.body.appendChild(portal);
288
+ portalOwner.set(portal, this.host);
289
+ this._portal = portal;
290
+ return portal;
291
+ }
292
+ /** Move the panel into the body portal on first open; keep it there after. */
293
+ _adopt() {
294
+ if (this._adopted) return;
295
+ if (!this._canPortal) {
296
+ this._panel = this.opts.getPanel();
297
+ return;
298
+ }
299
+ const panel = this.opts.getPanel() ?? this._panel;
300
+ if (!panel) return;
301
+ const portal = this._ensurePortal();
302
+ if (!portal) return;
303
+ this._syncPortalClass();
304
+ this._observeStyleScope();
305
+ portal.appendChild(panel);
306
+ this._panel = panel;
307
+ this._adopted = true;
308
+ }
309
+ /** Mirror the style-scope element's classes and `mono-*` attributes onto the portal. */
310
+ _syncPortalClass() {
311
+ if (!this._portal) return;
312
+ const scope = this.opts.getStyleScope();
313
+ const cls = scope?.getAttribute("class") ?? "";
314
+ if (this._portal.getAttribute("class") !== cls) this._portal.setAttribute("class", cls);
315
+ const mirrored = (name) => name.startsWith("mono-") && !name.startsWith("mono-tooltip-");
316
+ const wanted = /* @__PURE__ */ new Map();
317
+ if (scope) {
318
+ for (const a of Array.from(scope.attributes)) if (mirrored(a.name)) wanted.set(a.name, a.value);
319
+ }
320
+ for (const a of Array.from(this._portal.attributes)) if (mirrored(a.name) && !wanted.has(a.name)) this._portal.removeAttribute(a.name);
321
+ for (const [name, value] of wanted) if (this._portal.getAttribute(name) !== value) this._portal.setAttribute(name, value);
322
+ this._syncPortalVars(scope);
323
+ }
324
+ /**
325
+ * Carry the component's public custom properties across the portal (see
326
+ * `styleVars`). Only values that DIFFER from the portal's own resolution are
327
+ * written, so a theme-level token stays inherited and only a real override
328
+ * (an ancestor of the host, or an inline style on it) is copied.
329
+ */
330
+ _syncPortalVars(scope) {
331
+ const names = this.opts.styleVars?.();
332
+ if (!this._portal || !scope || !names?.length) return;
333
+ const from = getComputedStyle(scope);
334
+ const here = getComputedStyle(this._portal);
335
+ for (const name of names) {
336
+ const value = from.getPropertyValue(name);
337
+ if (!value) {
338
+ if (this._portal.style.getPropertyValue(name)) this._portal.style.removeProperty(name);
339
+ continue;
340
+ }
341
+ if ((this._portal.style.getPropertyValue(name) || here.getPropertyValue(name)) !== value) this._portal.style.setProperty(name, value);
342
+ }
343
+ }
344
+ /**
345
+ * Watch the style-scope's `class` attribute so the portal stays in sync even
346
+ * when the host toggles state classes (e.g. `open`) imperatively in
347
+ * `updated()`, which runs after the controller's `hostUpdated`.
348
+ */
349
+ _observeStyleScope() {
350
+ if (this._classObserver || typeof MutationObserver === "undefined") return;
351
+ const scope = this.opts.getStyleScope();
352
+ if (!scope) return;
353
+ this._classObserver = new MutationObserver((records) => {
354
+ if (records.some((r) => r.attributeName === "class" || r.attributeName?.startsWith("mono-"))) this._syncPortalClass();
355
+ });
356
+ this._classObserver.observe(scope, { attributes: true });
357
+ }
358
+ _enterStack() {
359
+ this._bindViewport();
360
+ if (this._registered) return;
361
+ registerPopupLayer(this);
362
+ this._registered = true;
363
+ }
364
+ _leaveStack() {
365
+ this._unbindViewport();
366
+ if (!this._registered) return;
367
+ unregisterPopupLayer(this);
368
+ this._registered = false;
369
+ }
370
+ /** PopupLayer hook — write the chained z onto the portal (root context). */
371
+ setStackZ(z) {
372
+ (this._portal ?? this.host).style.setProperty("--mono-popup-z", String(z));
373
+ }
374
+ /** Where panel-internal elements live now (portal while adopted, else host). */
375
+ get panelRoot() {
376
+ return this._adopted && this._portal ? this._portal : this.host.renderRoot;
377
+ }
378
+ /**
379
+ * True when an event's composed path passes through this popup — its own
380
+ * portaled panel, OR any popup that was opened from inside it.
381
+ *
382
+ * The second half is what keeps a nested popup from dismissing its parent:
383
+ * a header filter opened from a `<mono-table-th>` in a dropdown-table's
384
+ * panel, a select's option list inside a modal — each lives in a portal of
385
+ * its own on `<body>`, so a click in it is nowhere near the parent in the
386
+ * DOM. It IS inside by ownership, and that is what every outside-click test
387
+ * in the library asks this method.
388
+ */
389
+ containsInPath(path) {
390
+ if (this._portal && path.includes(this._portal)) return true;
391
+ return this.ownsNestedInPath(path);
392
+ }
393
+ /**
394
+ * True when the path passes through a popup opened from INSIDE this one
395
+ * (at any depth) — not this popup's own panel.
396
+ *
397
+ * Walks each portal in the path back to its owner and asks whether that
398
+ * owner lives in this host or this panel; an owner that is itself inside
399
+ * another popup climbs to that popup's owner, so a select inside a filter
400
+ * inside a dropdown-table resolves all the way up. Composed-tree
401
+ * containment throughout: the owner may sit behind a slot or a shadow root.
402
+ */
403
+ ownsNestedInPath(path) {
404
+ const roots = this._portal ? [this.host, this._portal] : [this.host];
405
+ return nestedPortalInPath(path.filter((n) => n !== this._portal), roots);
406
+ }
407
+ /**
408
+ * Listen for viewport movement — but ONLY while this popup is open.
409
+ *
410
+ * These used to be bound in `hostConnected`, which meant one capture-phase
411
+ * `scroll` listener on `window` per popup-capable element on the page, open or
412
+ * not: every select, every table header filter, every search box — and one per
413
+ * ROW on a grid that puts a `mono-button-dropdown` in each. `_onViewport` bails
414
+ * when closed, so the handler was free; the *dispatch* was not, and a
415
+ * non-passive capture listener on `window` also disqualifies the whole page's
416
+ * scrolling from running off the compositor thread.
417
+ *
418
+ * `passive` because nothing here calls `preventDefault`.
419
+ */
420
+ _bindViewport() {
421
+ if (isServer || this._viewportBound) return;
422
+ window.addEventListener("scroll", this._onViewport, {
423
+ capture: true,
424
+ passive: true
425
+ });
426
+ window.addEventListener("resize", this._onViewport, { passive: true });
427
+ this._viewportBound = true;
428
+ }
429
+ _unbindViewport() {
430
+ if (isServer) return;
431
+ if (this._viewportFrame) {
432
+ cancelAnimationFrame(this._viewportFrame);
433
+ this._viewportFrame = 0;
434
+ }
435
+ if (!this._viewportBound) return;
436
+ window.removeEventListener("scroll", this._onViewport, true);
437
+ window.removeEventListener("resize", this._onViewport);
438
+ this._viewportBound = false;
439
+ }
440
+ reposition() {
441
+ if (isServer) return;
442
+ if (!this._canPortal) return;
443
+ const panel = this._panel ?? this.opts.getPanel();
444
+ if (!panel) return;
445
+ const anchor = this.opts.getAnchor();
446
+ if (!anchor || !anchor.isConnected) return;
447
+ if (typeof this.opts.matchWidth === "function" ? this.opts.matchWidth() : this.opts.matchWidth) panel.style.width = `${anchor.getBoundingClientRect().width}px`;
448
+ const constrain = this.opts.constrainSize?.() ?? false;
449
+ const placement = computePopupPlacement(anchor, panel, {
450
+ side: this.opts.side?.(),
451
+ align: this.opts.align?.(),
452
+ offset: this.opts.offset?.(),
453
+ flip: this.opts.flip?.(),
454
+ shift: this.opts.shift?.(),
455
+ constrain
456
+ });
457
+ applyPopupPlacement(panel, placement, constrain);
458
+ if (this._resolvedSide !== placement.side) {
459
+ this._resolvedSide = placement.side;
460
+ this.opts.onSideResolved?.(placement.side);
461
+ }
462
+ }
463
+ };
464
+ //#endregion
465
+ export { pathOwnedBy as i, applyPopupPlacement as n, computePopupPlacement as r, PopupPortalController as t };
@@ -0,0 +1,189 @@
1
+ //#region src/composables/popup-stack.ts
2
+ /** First layer's z-index. Each subsequent open layer sits one STEP higher. */
3
+ var POPUP_Z_BASE = 1e3;
4
+ /** Open layers in open order; the last entry is the topmost. */
5
+ var stack = [];
6
+ /**
7
+ * Inline styles captured once when the stack first locks scroll, restored when the
8
+ * last locking owner leaves. `null` doubles as the "not currently locked" sentinel.
9
+ */
10
+ var savedRootOverflow = null;
11
+ var savedRootPriority = "";
12
+ var savedBodyOverflow = null;
13
+ var savedBodyPriority = "";
14
+ var savedBodyPadRight = null;
15
+ /**
16
+ * Lock holders that are NOT stack layers — `mono-sidebar`, which owns its own
17
+ * z-index and Escape handling and so has no business in the stack, but must share
18
+ * the lock. Without one shared owner set the two save/restore pairs interleave and
19
+ * a sidebar closing under an open modal restores an overflow the modal still needs
20
+ * — leaving the page locked for good once the modal closes.
21
+ */
22
+ var externalLockOwners = /* @__PURE__ */ new Set();
23
+ /** Whether the shared Escape listener is currently attached. */
24
+ var escBound = false;
25
+ /**
26
+ * Reassign every open layer's z-index.
27
+ *
28
+ * A running cursor rather than `BASE + i * STEP`, so a PINNED layer (see
29
+ * `PopupLayer.pinnedZ`) lifts the levels of everything opened above it. With no
30
+ * pinned layer in the stack the cursor produces exactly the old sequence —
31
+ * 1000, 1010, 1020 … — so nothing that worked before moves.
32
+ */
33
+ function applyStackOrder() {
34
+ let z = POPUP_Z_BASE;
35
+ stack.forEach((layer, i) => {
36
+ const pinned = Number(layer.pinnedZ);
37
+ if (Number.isFinite(pinned) && pinned > z) z = pinned;
38
+ const hasBackdropAbove = stack.slice(i + 1).some((above) => above.hasBackdrop);
39
+ layer.setStackZ(z, !hasBackdropAbove);
40
+ z += 10;
41
+ });
42
+ }
43
+ /**
44
+ * Hold / release the page scroll for every owner that wants it.
45
+ *
46
+ * ── Why the ROOT and not just the body ──
47
+ *
48
+ * The body's `overflow` only reaches the viewport while the ROOT element's computed
49
+ * overflow is `visible` (CSS Overflow §3.5, "viewport propagation"). Any reset that
50
+ * gives `html` an explicit overflow cancels that — Vuetify's ships
51
+ * `html { overflow-y: scroll }`, and ress / sanitize.css do the same — and from then on
52
+ * `body { overflow: hidden }` clips nothing: the body is `height: auto`, already tall
53
+ * enough for its own content, so it never becomes a scrollport. The page kept scrolling
54
+ * behind every modal, and no static style check caught it, because the body attribute
55
+ * this used to set was there all along.
56
+ *
57
+ * The body is still locked as well. It costs nothing, it is what the e2e check asserts,
58
+ * and in a quirks-mode document the body IS the scroller.
59
+ *
60
+ * ── Why the declaration is `!important` ──
61
+ *
62
+ * Because a plain inline style LOSES to a consumer stylesheet that claims the root's overflow
63
+ * with `!important`, and doing so is common — Vuetify writes its own scroll block that way
64
+ * (`.v-overlay-scroll-blocked:not(html) { overflow-y: hidden !important }`), and an app that
65
+ * drives `<html class>` from its layout (`.overflow-auto { overflow: auto !important }`) pins
66
+ * it permanently. The symptom is silent and deeply confusing: `documentElement.style.overflow`
67
+ * reads `"hidden"`, every style assertion passes, and the page scrolls anyway, because the
68
+ * COMPUTED value is still `auto`. An important declaration in the style attribute outranks an
69
+ * important one from a selector, so this is the one write that cannot be out-cascaded.
70
+ *
71
+ * ── Why the gutter is measured, and paid for with padding ──
72
+ *
73
+ * With `overflow-y: scroll` the scrollbar is rendered even on a short page, so locking
74
+ * takes it away and everything shifts sideways by its width. The width is measured before
75
+ * the lock and handed back to the body as `padding-right`, so nothing moves.
76
+ *
77
+ * NOT `scrollbar-gutter: stable` on the root, which reserves the same space in one
78
+ * declaration and would hold `position: fixed` chrome still too: Chrome paints the empty
79
+ * scrollbar TRACK in a stable gutter, so the page still looks like it has a scrollbar —
80
+ * which is the thing being complained about. Padding leaves no track.
81
+ *
82
+ * Measured rather than assumed, because on a system with overlay scrollbars there is no
83
+ * gutter at all and compensating would itself be the shift.
84
+ */
85
+ function syncScrollLock() {
86
+ if (typeof document === "undefined") return;
87
+ const body = document.body;
88
+ if (!body) return;
89
+ const root = document.documentElement;
90
+ const wantLock = externalLockOwners.size > 0 || stack.some((l) => l.lockBodyScroll);
91
+ if (wantLock && savedRootOverflow === null) {
92
+ const gutter = Math.max(0, window.innerWidth - root.clientWidth);
93
+ savedRootOverflow = root.style.getPropertyValue("overflow");
94
+ savedRootPriority = root.style.getPropertyPriority("overflow");
95
+ savedBodyOverflow = body.style.getPropertyValue("overflow");
96
+ savedBodyPriority = body.style.getPropertyPriority("overflow");
97
+ root.style.setProperty("overflow", "hidden", "important");
98
+ body.style.setProperty("overflow", "hidden", "important");
99
+ if (gutter > 0) {
100
+ savedBodyPadRight = body.style.paddingRight;
101
+ body.style.paddingRight = `${gutter}px`;
102
+ }
103
+ } else if (!wantLock && savedRootOverflow !== null) {
104
+ restoreOverflow(root, savedRootOverflow, savedRootPriority);
105
+ restoreOverflow(body, savedBodyOverflow, savedBodyPriority);
106
+ if (savedBodyPadRight !== null) body.style.paddingRight = savedBodyPadRight;
107
+ savedRootOverflow = null;
108
+ savedRootPriority = "";
109
+ savedBodyOverflow = null;
110
+ savedBodyPriority = "";
111
+ savedBodyPadRight = null;
112
+ }
113
+ }
114
+ /** Put an element's inline `overflow` back exactly as it was — value, priority, or absent. */
115
+ function restoreOverflow(el, value, priority) {
116
+ if (value) el.style.setProperty("overflow", value, priority);
117
+ else el.style.removeProperty("overflow");
118
+ }
119
+ function onStackKeydown(event) {
120
+ if (event.key !== "Escape") return;
121
+ stack[stack.length - 1]?.onStackEscape?.(event);
122
+ }
123
+ function ensureEscapeListener() {
124
+ if (typeof document === "undefined") return;
125
+ if (stack.length > 0 && !escBound) {
126
+ document.addEventListener("keydown", onStackKeydown);
127
+ escBound = true;
128
+ } else if (stack.length === 0 && escBound) {
129
+ document.removeEventListener("keydown", onStackKeydown);
130
+ escBound = false;
131
+ }
132
+ }
133
+ /** Add a layer to the top of the stack (call on open). */
134
+ function registerPopupLayer(layer) {
135
+ if (typeof document === "undefined") return;
136
+ if (stack.includes(layer)) return;
137
+ stack.push(layer);
138
+ applyStackOrder();
139
+ syncScrollLock();
140
+ ensureEscapeListener();
141
+ }
142
+ /** Remove a layer from the stack (call on close / disconnect). */
143
+ function unregisterPopupLayer(layer) {
144
+ const idx = stack.indexOf(layer);
145
+ if (idx === -1) return;
146
+ stack.splice(idx, 1);
147
+ applyStackOrder();
148
+ syncScrollLock();
149
+ ensureEscapeListener();
150
+ }
151
+ /**
152
+ * Recompute every open layer's level without touching the membership.
153
+ *
154
+ * For a layer whose `pinnedZ` changed while it was open — a bound `:z-index` on a
155
+ * modal that is already showing. The dialog's own level is republished by its
156
+ * `updated()` either way; this is what moves the layers stacked ABOVE it.
157
+ *
158
+ * Re-runs the scroll lock as well, because `lockScroll` can flip on an overlay that is
159
+ * ALREADY open: membership has not changed, so neither register nor unregister fires,
160
+ * and without this the page stays locked until the overlay closes.
161
+ */
162
+ function refreshPopupStack() {
163
+ if (typeof document === "undefined") return;
164
+ applyStackOrder();
165
+ syncScrollLock();
166
+ }
167
+ /**
168
+ * Take or release a share of the page-scroll lock from OUTSIDE the stack.
169
+ *
170
+ * For an overlay that manages its own z-index and Escape handling and so does not belong
171
+ * in the stack, but must still share the one lock — `mono-sidebar`. Idempotent per owner;
172
+ * the lock lifts only when the last owner (stack layer or otherwise) lets go.
173
+ */
174
+ function setExternalScrollLock(owner, wanted) {
175
+ if (typeof document === "undefined") return;
176
+ if (wanted) externalLockOwners.add(owner);
177
+ else externalLockOwners.delete(owner);
178
+ syncScrollLock();
179
+ }
180
+ /**
181
+ * Currently-open layers in open order (topmost last). Used by exclusive
182
+ * (non-stackable) modal/drawer logic that must close *other* instances of its
183
+ * own type — filter the returned list by `instanceof`.
184
+ */
185
+ function getOpenPopupLayers() {
186
+ return stack;
187
+ }
188
+ //#endregion
189
+ export { unregisterPopupLayer as a, setExternalScrollLock as i, refreshPopupStack as n, registerPopupLayer as r, getOpenPopupLayers as t };