@mono-lit/helper 0.0.2 → 0.0.4
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.
- package/dist/{breakpoints-CAbhDUht.js → breakpoints-DllybT82.js} +7 -5
- package/dist/checkbox.css_raw-AYtSbUtY.js +5 -0
- package/dist/{chip-limits-BMoO31JM.js → chip-limits-CFABydIL.js} +5 -3
- package/dist/{chip-strip-Cw3gyz0q.js → chip-strip-bNfLn52Z.js} +5 -3
- package/dist/chip.css_raw-ChfRSHLO.js +5 -0
- package/dist/{color-DHYrfXsX.js → color-CEYYtRX-.js} +8 -7
- package/dist/{css-class-BRKRzHx-.js → css-class-B6Tc_MAx.js} +2 -1
- package/dist/{css-size-DhHSVZJK.js → css-size-DWAPgQdT.js} +2 -1
- package/dist/{data-source-controller-Dbb4fd8I.js → data-source-controller-Cf_sMxEh.js} +4 -2
- package/dist/{data-source-controller-B_rgHCjw.js → data-source-controller-Dx6IQ2CN.js} +4 -2
- package/dist/{data-source-options-CP-X62Pa.js → data-source-options-Bk-UoaZV.js} +15 -10
- package/dist/{data-source-options-Jqj7LU3Z.js → data-source-options-QjuI73g8.js} +17 -12
- package/dist/{data-source-read-B4DGp6UQ.js → data-source-read-Cuqw3LcP.js} +7 -4
- package/dist/{data-source-read-DL88aH8t.js → data-source-read-FxqzQkk2.js} +8 -5
- package/dist/{decorate-DEXtNagw.js → decorate-DbYFpi8R.js} +7 -5
- package/dist/{element-props-CLB6yvbm.js → element-props-xvw0EB7H.js} +4 -3
- package/dist/{esm-Ptok4SQZ.js → esm-D0We7ndD.js} +48 -44
- package/dist/{excel-DopRbEMK.js → excel-BXzr3uI1.js} +192 -16
- package/dist/{excel-CY6zGkcx.js → excel-DtRpxmxs.js} +27 -16
- package/dist/{export-BiGVyxt6.js → export-B91P6J1y.js} +104 -18
- package/dist/export.js +103 -18
- package/dist/{field-icons-DELrSdqJ.js → field-icons-FmyBWa0g.js} +3 -1
- package/dist/{field-path-C92eGLg3.js → field-path-BabiMrrA.js} +3 -2
- package/dist/{filter-builder-CE4zE0V5.js → filter-builder-B6Y2mmbM.js} +7 -4
- package/dist/{filter-builder-Bke3qOgJ.js → filter-builder-C0T3pMx2.js} +7 -4
- package/dist/{filter-eval-DIfU2EAn.js → filter-eval-ChDSaAUH.js} +7 -5
- package/dist/{filter-odata-C1vSGZaY.js → filter-odata-Bi27XUpQ.js} +9 -6
- package/dist/{form-control-core-B8d7k6vk.js → form-control-core-CIdMLXMo.js} +9 -6
- package/dist/{form-control-core-eeRr0zLU.js → form-control-core-CRZPZ1ru.js} +9 -6
- package/dist/hydration-flush-DHrl4_KK.js +1014 -0
- package/dist/{icon-CJkTlmTb.js → icon-BM9N-jOt.js} +5 -2
- package/dist/{icon-dVhYJUIH.js → icon-ClxnYhBG.js} +4 -2
- package/dist/{import-BgJdkwBI.js → import-Dc4eXC02.js} +22 -16
- package/dist/import.js +22 -16
- package/dist/index.js +17 -16
- package/dist/{index.node-BIqEGehH.js → index.node-dvrNviMx.js} +26 -20
- package/dist/index.node.js +17 -16
- package/dist/input.css_raw-CGESifay.js +5 -0
- package/dist/{layout-var-CZnzMC0s.js → layout-var-BSBKY49k.js} +3 -2
- package/dist/{light-slots-BVJwyg_2.js → light-slots-4ZCjOcBg.js} +6 -4
- package/dist/{light-slots-DW1WgfgT.js → light-slots-DdDdZ6zs.js} +6 -4
- package/dist/{markdown-DfqrfOJN.js → markdown-uGlE_OfJ.js} +414 -369
- package/dist/mono-button-CeDB9khW.js +878 -0
- package/dist/mono-button.shadow-D9NdMsmH.js +790 -0
- package/dist/{mono-data-chart-CEv29_NS.js → mono-data-chart-ChkelNT7.js} +15 -12
- package/dist/{mono-data-dropdown-Wnoke6zO.js → mono-data-dropdown-DxpUUk2y.js} +5 -3
- package/dist/{mono-data-grid-YjR3n9Ar.js → mono-data-grid-8jmeIXUU.js} +56 -38
- package/dist/{mono-data-grid-CjkEqxgE.js → mono-data-grid-BHlo1IgR.js} +56 -38
- package/dist/{mono-element-B0kP_96P.js → mono-element-C7vCschg.js} +7 -4
- package/dist/{mono-event-Bi1qP9uN.js → mono-event-BPku9HpS.js} +4 -3
- package/dist/{mono-form-controller-5PfsU4qa.js → mono-form-controller-IYn0MuUQ.js} +7 -4
- package/dist/{mono-modal-controller-BMO3n3rP.js → mono-modal-controller-ClObbHUs.js} +9 -7
- package/dist/{mono-ui-CPV7rrdo.js → mono-ui-BwUc0L6B.js} +22 -20
- package/dist/{normalize-error-Gcgmgh5i.js → normalize-error-D93O4q8g.js} +26 -20
- package/dist/{notifier-CE4yxMUQ.js → notifier-BIrqUzRh.js} +11 -1
- package/dist/nuxt.js +50 -17
- package/dist/{popup-portal-BziRX1yG.js → popup-portal-HWhkd7oy.js} +6 -4
- package/dist/{popup-stack-CEEMib__.js → popup-stack-De05Y-mJ.js} +13 -10
- package/dist/{rate-limit-BBa2PO79.js → rate-limit-e9Jlpl5l.js} +12 -9
- package/dist/{reactive-Di3mTMnV.js → reactive-DFCdZbH9.js} +30 -22
- package/dist/{reactive-D3EERqgO.js → reactive-Dtd-esHO.js} +2 -1
- package/dist/search.js +5 -4
- package/dist/src/components/accordion/accordion-core.d.ts +42 -40
- package/dist/src/components/accordion/accordion-types.d.ts +50 -48
- package/dist/src/components/accordion/index.d.ts +3 -2
- package/dist/src/components/accordion/index.shadow.d.ts +4 -4
- package/dist/src/components/accordion/mono-accordion.d.ts +44 -40
- package/dist/src/components/accordion/mono-accordion.shadow.d.ts +42 -38
- package/dist/src/components/alert/alert-core.d.ts +30 -28
- package/dist/src/components/alert/alert-types.d.ts +36 -34
- package/dist/src/components/alert/index.d.ts +3 -2
- package/dist/src/components/alert/index.shadow.d.ts +4 -4
- package/dist/src/components/alert/mono-alert.d.ts +30 -26
- package/dist/src/components/alert/mono-alert.shadow.d.ts +24 -20
- package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +42 -40
- package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +31 -29
- package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +18 -16
- package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +89 -87
- package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +18 -15
- package/dist/src/components/breadcrumb/index.d.ts +6 -5
- package/dist/src/components/breadcrumb/index.shadow.d.ts +7 -7
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +18 -14
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +33 -29
- package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +24 -20
- package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +55 -51
- package/dist/src/components/button/button-core.d.ts +73 -71
- package/dist/src/components/button/button-dropdown-core.d.ts +55 -53
- package/dist/src/components/button/button-dropdown-types.d.ts +98 -96
- package/dist/src/components/button/button-types.d.ts +157 -155
- package/dist/src/components/button/button-utils.d.ts +7 -5
- package/dist/src/components/button/index.button-dropdown.d.ts +5 -3
- package/dist/src/components/button/index.button-dropdown.shadow.d.ts +5 -3
- package/dist/src/components/button/index.d.ts +4 -7
- package/dist/src/components/button/index.shadow.d.ts +5 -4
- package/dist/src/components/button/mono-button-dropdown.d.ts +24 -19
- package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +34 -29
- package/dist/src/components/button/mono-button.d.ts +105 -101
- package/dist/src/components/button/mono-button.shadow.d.ts +42 -38
- package/dist/src/components/card/card-core.d.ts +59 -57
- package/dist/src/components/card/card-types.d.ts +91 -89
- package/dist/src/components/card/card-utils.d.ts +11 -9
- package/dist/src/components/card/index.d.ts +4 -3
- package/dist/src/components/card/index.shadow.d.ts +5 -5
- package/dist/src/components/card/mono-card.d.ts +36 -32
- package/dist/src/components/card/mono-card.shadow.d.ts +32 -28
- package/dist/src/components/chart/chart-core.d.ts +30 -28
- package/dist/src/components/chart/chart-odata.d.ts +17 -16
- package/dist/src/components/chart/chart-types.d.ts +269 -267
- package/dist/src/components/chart/index.d.ts +7 -7
- package/dist/src/components/chart/index.shadow.d.ts +7 -6
- package/dist/src/components/chart/mono-chart-presets.d.ts +33 -29
- package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +33 -29
- package/dist/src/components/chart/mono-chart.d.ts +13 -9
- package/dist/src/components/chart/mono-chart.shadow.d.ts +13 -9
- package/dist/src/components/chart/mono-data-chart.d.ts +4 -26
- package/dist/src/components/checkbox/checkbox-core.d.ts +39 -37
- package/dist/src/components/checkbox/checkbox-types.d.ts +59 -57
- package/dist/src/components/checkbox/checkbox-utils.d.ts +13 -11
- package/dist/src/components/checkbox/index.d.ts +4 -3
- package/dist/src/components/checkbox/index.shadow.d.ts +5 -4
- package/dist/src/components/checkbox/mono-checkbox.d.ts +21 -17
- package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +31 -27
- package/dist/src/components/chip/chip-core.d.ts +42 -40
- package/dist/src/components/chip/chip-types.d.ts +104 -102
- package/dist/src/components/chip/chip-utils.d.ts +20 -18
- package/dist/src/components/chip/index.d.ts +5 -7
- package/dist/src/components/chip/index.shadow.d.ts +6 -5
- package/dist/src/components/chip/mono-chip.d.ts +31 -27
- package/dist/src/components/chip/mono-chip.shadow.d.ts +19 -15
- package/dist/src/components/chip/mono-status-dot.d.ts +19 -17
- package/dist/src/components/date/date-core.d.ts +64 -62
- package/dist/src/components/date/date-types.d.ts +143 -141
- package/dist/src/components/date/index.d.ts +3 -2
- package/dist/src/components/date/index.shadow.d.ts +4 -3
- package/dist/src/components/date/mono-date.d.ts +12 -8
- package/dist/src/components/date/mono-date.shadow.d.ts +21 -17
- package/dist/src/components/drawer/drawer-core.d.ts +75 -73
- package/dist/src/components/drawer/drawer-types.d.ts +109 -107
- package/dist/src/components/drawer/index.d.ts +3 -2
- package/dist/src/components/drawer/index.shadow.d.ts +4 -3
- package/dist/src/components/drawer/mono-drawer.d.ts +32 -28
- package/dist/src/components/drawer/mono-drawer.shadow.d.ts +34 -31
- package/dist/src/components/dropdown/dropdown-core.d.ts +31 -29
- package/dist/src/components/dropdown/dropdown-types.d.ts +62 -60
- package/dist/src/components/dropdown/index.d.ts +3 -2
- package/dist/src/components/dropdown/index.shadow.d.ts +4 -3
- package/dist/src/components/dropdown/mono-dropdown.d.ts +23 -19
- package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +19 -15
- package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +53 -51
- package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +218 -216
- package/dist/src/components/dropdown-table/index.d.ts +5 -4
- package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -5
- package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +119 -129
- package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +20 -16
- package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +15 -11
- package/dist/src/components/file-upload/file-upload-core.d.ts +44 -42
- package/dist/src/components/file-upload/file-upload-types.d.ts +123 -121
- package/dist/src/components/file-upload/file-upload-utils.d.ts +7 -4
- package/dist/src/components/file-upload/index.d.ts +4 -3
- package/dist/src/components/file-upload/index.shadow.d.ts +5 -4
- package/dist/src/components/file-upload/mono-file-upload.d.ts +20 -16
- package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +34 -30
- package/dist/src/components/filter/filter-builder-core.d.ts +17 -15
- package/dist/src/components/filter/filter-builder.d.ts +4 -22
- package/dist/src/components/filter/filter-odata.d.ts +3 -1
- package/dist/src/components/filter/filter-operators.d.ts +3 -1
- package/dist/src/components/filter/filter-types.d.ts +172 -170
- package/dist/src/components/filter/index.d.ts +6 -5
- package/dist/src/components/filter/index.shadow.d.ts +7 -6
- package/dist/src/components/filter/mono-filter-builder.d.ts +13 -10
- package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +10 -7
- package/dist/src/components/form/form-control-core.d.ts +14 -12
- package/dist/src/components/form/form-rules.d.ts +7 -5
- package/dist/src/components/form/form-types.d.ts +214 -214
- package/dist/src/components/form/index.d.ts +5 -5
- package/dist/src/components/form/mono-form-controller.d.ts +4 -15
- package/dist/src/components/input/index.d.ts +5 -5
- package/dist/src/components/input/index.shadow.d.ts +6 -7
- package/dist/src/components/input/input-core.d.ts +73 -71
- package/dist/src/components/input/input-format.d.ts +22 -20
- package/dist/src/components/input/input-types.d.ts +167 -165
- package/dist/src/components/input/input-utils.d.ts +7 -5
- package/dist/src/components/input/mono-input.d.ts +35 -31
- package/dist/src/components/input/mono-input.shadow.d.ts +17 -13
- package/dist/src/components/menu/index.d.ts +7 -5
- package/dist/src/components/menu/index.shadow.d.ts +7 -6
- package/dist/src/components/menu/menu-core.d.ts +47 -45
- package/dist/src/components/menu/menu-render.d.ts +42 -40
- package/dist/src/components/menu/menu-types.d.ts +132 -130
- package/dist/src/components/menu/menu-utils.d.ts +16 -13
- package/dist/src/components/menu/mono-menu-list.d.ts +116 -114
- package/dist/src/components/menu/mono-menu.d.ts +30 -26
- package/dist/src/components/menu/mono-menu.shadow.d.ts +22 -18
- package/dist/src/components/modal/index.d.ts +5 -3
- package/dist/src/components/modal/index.shadow.d.ts +6 -4
- package/dist/src/components/modal/modal-core.d.ts +81 -79
- package/dist/src/components/modal/modal-types.d.ts +223 -221
- package/dist/src/components/modal/mono-modal-controller.d.ts +4 -3
- package/dist/src/components/modal/mono-modal.d.ts +32 -28
- package/dist/src/components/modal/mono-modal.shadow.d.ts +38 -35
- package/dist/src/components/nav/index.d.ts +4 -3
- package/dist/src/components/nav/index.shadow.d.ts +5 -5
- package/dist/src/components/nav/mono-nav.d.ts +28 -24
- package/dist/src/components/nav/mono-nav.shadow.d.ts +10 -7
- package/dist/src/components/nav/nav-core.d.ts +16 -14
- package/dist/src/components/nav/nav-types.d.ts +23 -22
- package/dist/src/components/nav/nav-utils.d.ts +10 -8
- package/dist/src/components/radio/index.d.ts +4 -3
- package/dist/src/components/radio/index.shadow.d.ts +5 -4
- package/dist/src/components/radio/mono-radio.d.ts +19 -15
- package/dist/src/components/radio/mono-radio.shadow.d.ts +22 -18
- package/dist/src/components/radio/radio-core.d.ts +31 -29
- package/dist/src/components/radio/radio-types.d.ts +48 -46
- package/dist/src/components/radio/radio-utils.d.ts +5 -3
- package/dist/src/components/rich-text-editor/index.d.ts +5 -4
- package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -5
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +19 -15
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +22 -19
- package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +61 -59
- package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +2 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +5 -3
- package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +179 -177
- package/dist/src/components/select/index.d.ts +4 -3
- package/dist/src/components/select/index.shadow.d.ts +5 -4
- package/dist/src/components/select/mono-select.d.ts +58 -54
- package/dist/src/components/select/mono-select.shadow.d.ts +30 -27
- package/dist/src/components/select/select-core.d.ts +82 -80
- package/dist/src/components/select/select-types.d.ts +228 -227
- package/dist/src/components/select/select-utils.d.ts +7 -5
- package/dist/src/components/sidebar/index.d.ts +4 -3
- package/dist/src/components/sidebar/index.shadow.d.ts +5 -5
- package/dist/src/components/sidebar/mono-sidebar.d.ts +22 -18
- package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +11 -8
- package/dist/src/components/sidebar/sidebar-core.d.ts +33 -31
- package/dist/src/components/sidebar/sidebar-types.d.ts +77 -75
- package/dist/src/components/sidebar/sidebar-utils.d.ts +28 -26
- package/dist/src/components/switch/index.d.ts +4 -3
- package/dist/src/components/switch/index.shadow.d.ts +5 -4
- package/dist/src/components/switch/mono-switch.d.ts +19 -15
- package/dist/src/components/switch/mono-switch.shadow.d.ts +23 -19
- package/dist/src/components/switch/switch-core.d.ts +35 -33
- package/dist/src/components/switch/switch-types.d.ts +55 -53
- package/dist/src/components/switch/switch-utils.d.ts +5 -3
- package/dist/src/components/table/array-source.d.ts +31 -29
- package/dist/src/components/table/date-filter-tree.d.ts +25 -23
- package/dist/src/components/table/grouping.d.ts +22 -20
- package/dist/src/components/table/index.d.ts +28 -32
- package/dist/src/components/table/index.shadow.d.ts +34 -46
- package/dist/src/components/table/mono-data-grid.d.ts +1447 -1456
- package/dist/src/components/table/mono-table-checkbox-core.d.ts +34 -32
- package/dist/src/components/table/mono-table-checkbox.d.ts +12 -8
- package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +16 -12
- package/dist/src/components/table/mono-table-detail-core.d.ts +29 -27
- package/dist/src/components/table/mono-table-detail.d.ts +12 -8
- package/dist/src/components/table/mono-table-detail.shadow.d.ts +13 -9
- package/dist/src/components/table/mono-table-empty-core.d.ts +24 -22
- package/dist/src/components/table/mono-table-empty.d.ts +17 -13
- package/dist/src/components/table/mono-table-empty.shadow.d.ts +22 -18
- package/dist/src/components/table/mono-table-error-core.d.ts +24 -22
- package/dist/src/components/table/mono-table-error.d.ts +12 -8
- package/dist/src/components/table/mono-table-error.shadow.d.ts +15 -11
- package/dist/src/components/table/mono-table-info-core.d.ts +6 -4
- package/dist/src/components/table/mono-table-info.d.ts +12 -8
- package/dist/src/components/table/mono-table-info.shadow.d.ts +9 -5
- package/dist/src/components/table/mono-table-loading-core.d.ts +7 -5
- package/dist/src/components/table/mono-table-loading.d.ts +12 -8
- package/dist/src/components/table/mono-table-loading.shadow.d.ts +9 -5
- package/dist/src/components/table/mono-table-page-size-core.d.ts +7 -5
- package/dist/src/components/table/mono-table-page-size.d.ts +12 -8
- package/dist/src/components/table/mono-table-page-size.shadow.d.ts +9 -5
- package/dist/src/components/table/mono-table-paging-core.d.ts +16 -14
- package/dist/src/components/table/mono-table-paging-group-core.d.ts +10 -8
- package/dist/src/components/table/mono-table-paging-group.d.ts +12 -8
- package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +9 -5
- package/dist/src/components/table/mono-table-paging.d.ts +12 -8
- package/dist/src/components/table/mono-table-paging.shadow.d.ts +9 -5
- package/dist/src/components/table/mono-table-search-core.d.ts +51 -49
- package/dist/src/components/table/mono-table-search.d.ts +25 -22
- package/dist/src/components/table/mono-table-search.shadow.d.ts +12 -9
- package/dist/src/components/table/mono-table-sort-core.d.ts +16 -14
- package/dist/src/components/table/mono-table-sort.d.ts +21 -18
- package/dist/src/components/table/mono-table-sort.shadow.d.ts +11 -8
- package/dist/src/components/table/mono-table-summary-core.d.ts +9 -7
- package/dist/src/components/table/mono-table-summary.d.ts +12 -8
- package/dist/src/components/table/mono-table-summary.shadow.d.ts +9 -5
- package/dist/src/components/table/mono-table-th-core.d.ts +23 -21
- package/dist/src/components/table/mono-table-th.d.ts +21 -18
- package/dist/src/components/table/mono-table-th.shadow.d.ts +11 -8
- package/dist/src/components/table/store-group-source.d.ts +14 -12
- package/dist/src/components/table/table-controller-core.d.ts +17 -15
- package/dist/src/components/table/table-filter-icons.d.ts +3 -1
- package/dist/src/components/table/table-menu-core.d.ts +40 -38
- package/dist/src/components/table/table-overlay.d.ts +43 -41
- package/dist/src/components/table/table-sort-icons.d.ts +4 -2
- package/dist/src/components/table/table-sort-utils.d.ts +3 -1
- package/dist/src/components/table/table-types.d.ts +391 -400
- package/dist/src/components/tabs/index.d.ts +3 -2
- package/dist/src/components/tabs/index.shadow.d.ts +4 -3
- package/dist/src/components/tabs/mono-tabs.d.ts +21 -17
- package/dist/src/components/tabs/mono-tabs.shadow.d.ts +21 -17
- package/dist/src/components/tabs/tabs-core.d.ts +36 -34
- package/dist/src/components/tabs/tabs-types.d.ts +48 -46
- package/dist/src/components/tag-input/index.d.ts +5 -3
- package/dist/src/components/tag-input/index.shadow.d.ts +6 -4
- package/dist/src/components/tag-input/mono-tag-input.d.ts +56 -52
- package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +41 -38
- package/dist/src/components/tag-input/tag-input-core.d.ts +95 -93
- package/dist/src/components/tag-input/tag-input-types.d.ts +343 -346
- package/dist/src/components/tag-input/tag-input-utils.d.ts +7 -5
- package/dist/src/components/textarea/index.d.ts +4 -3
- package/dist/src/components/textarea/index.shadow.d.ts +5 -4
- package/dist/src/components/textarea/mono-textarea.d.ts +19 -15
- package/dist/src/components/textarea/mono-textarea.shadow.d.ts +19 -16
- package/dist/src/components/textarea/textarea-core.d.ts +48 -46
- package/dist/src/components/textarea/textarea-types.d.ts +120 -118
- package/dist/src/components/textarea/textarea-utils.d.ts +7 -5
- package/dist/src/components/tooltip/control-tooltip.d.ts +3 -1
- package/dist/src/components/tooltip/index.d.ts +6 -5
- package/dist/src/components/tooltip/tooltip-config.d.ts +17 -15
- package/dist/src/components/tooltip/tooltip-declarative.d.ts +3 -1
- package/dist/src/components/tooltip/tooltip-loader.d.ts +2 -0
- package/dist/src/components/tooltip/tooltip-types.d.ts +74 -72
- package/dist/src/composables/breakpoints.d.ts +9 -7
- package/dist/src/composables/chip-limits.d.ts +12 -10
- package/dist/src/composables/chip-strip.d.ts +91 -89
- package/dist/src/composables/color.d.ts +6 -4
- package/dist/src/composables/css-class.d.ts +4 -2
- package/dist/src/composables/css-size.d.ts +9 -7
- package/dist/src/composables/data-source-controller.d.ts +90 -88
- package/dist/src/composables/element-props.d.ts +3 -3
- package/dist/src/composables/field-icons.d.ts +3 -1
- package/dist/src/composables/hybird-prop.d.ts +10 -8
- package/dist/src/composables/hydration-flush.d.ts +16 -14
- package/dist/src/composables/icon.d.ts +3 -1
- package/dist/src/composables/layout-var.d.ts +2 -0
- package/dist/src/composables/light-slots.d.ts +34 -32
- package/dist/src/composables/mdi-glyphs.d.ts +2 -0
- package/dist/src/composables/mono-element.d.ts +3 -1
- package/dist/src/composables/mono-event.d.ts +15 -13
- package/dist/src/composables/mono-pending.d.ts +4 -2
- package/dist/src/composables/mono-skeleton.d.ts +100 -98
- package/dist/src/composables/mono-ui.d.ts +17 -18
- package/dist/src/composables/notifier.d.ts +20 -18
- package/dist/src/composables/popup-portal.d.ts +177 -175
- package/dist/src/composables/popup-stack.d.ts +36 -34
- package/dist/src/composables/rate-limit.d.ts +33 -31
- package/dist/src/composables/reactive.d.ts +3 -1
- package/dist/src/composables/shadow-css.d.ts +17 -15
- package/dist/src/composables/visibility.d.ts +6 -4
- package/dist/src/data/theme/index.d.ts +9 -7
- package/dist/src/data/theme/presets.d.ts +64 -62
- package/dist/src/entries/index.d.ts +36 -1
- package/dist/src/entries/index.node.d.ts +34 -41
- package/dist/src/entries/search.d.ts +2 -2
- package/dist/src/export/detail.d.ts +14 -12
- package/dist/src/export/download.d.ts +2 -0
- package/dist/src/export/excel/index.d.ts +13 -11
- package/dist/src/export/excel/nodes.d.ts +95 -93
- package/dist/src/export/expression.d.ts +3 -1
- package/dist/src/export/helpers.d.ts +3 -1
- package/dist/src/export/index.d.ts +6 -4
- package/dist/src/export/markdown.d.ts +19 -17
- package/dist/src/export/resolve-data.d.ts +3 -1
- package/dist/src/export/sentinel.d.ts +32 -30
- package/dist/src/export/sheet-name.d.ts +7 -5
- package/dist/src/export/styles.d.ts +13 -11
- package/dist/src/export/template.d.ts +3 -1
- package/dist/src/export/types.d.ts +224 -222
- package/dist/src/import/coerce.d.ts +5 -3
- package/dist/src/import/index.d.ts +12 -10
- package/dist/src/import/match.d.ts +20 -18
- package/dist/src/import/parse.d.ts +5 -3
- package/dist/src/import/types.d.ts +125 -123
- package/dist/src/nuxt/index.d.ts +92 -90
- package/dist/src/nuxt/ssr-lit/index.d.ts +4 -0
- package/dist/src/search/data-search.d.ts +92 -90
- package/dist/src/search/field-path.d.ts +10 -8
- package/dist/src/search/filter-eval.d.ts +2 -0
- package/dist/src/search/index.d.ts +6 -22
- package/dist/src/search/odata-search.d.ts +9 -7
- package/dist/src/search/search-expr.d.ts +16 -14
- package/dist/src/utils/data-source-apply.d.ts +11 -9
- package/dist/src/utils/data-source-options.d.ts +37 -35
- package/dist/src/utils/data-source-read.d.ts +40 -54
- package/dist/src/utils/data-source-summary.d.ts +8 -7
- package/dist/src/utils/normalize-error.d.ts +16 -14
- package/dist/src/vite/index.d.ts +34 -34
- package/dist/src/vite/mono-client-only.d.ts +34 -32
- package/dist/src/vite/mono-ssr-stub.d.ts +8 -6
- package/dist/src/vite/shadow-manifest.d.ts +2 -0
- package/dist/ssr-lit/runtime/components/LitWrapper.vue +11 -0
- package/dist/ssr-lit/runtime/components/LitWrapperClient.vue +11 -0
- package/dist/ssr-lit/runtime/components/LitWrapperServer.vue +38 -0
- package/dist/ssr-lit/runtime/plugins/antiFouc.server.js +25 -0
- package/dist/ssr-lit/runtime/plugins/hydrateSupport.client.js +4 -0
- package/dist/ssr-lit/runtime/plugins/polyfill.client.js +9 -0
- package/dist/ssr-lit/runtime/utils/customElements.js +11 -0
- package/dist/ssr-lit/runtime/utils/litElementRenderer.js +28 -0
- package/dist/{styles-BIJ31TM4.js → styles-D-ergrfR.js} +417 -207
- package/dist/{tooltip-DQqNpqk2.js → tooltip-FCMRUSLi.js} +32 -25
- package/dist/tooltip.js +3 -2
- package/dist/ui/accordion.js +16 -12
- package/dist/ui/alert.js +21 -14
- package/dist/ui/breadcrumb.js +28 -18
- package/dist/ui/button-dropdown.js +18 -14
- package/dist/ui/button.js +4 -2
- package/dist/ui/card.js +17 -12
- package/dist/ui/chart.js +31 -26
- package/dist/ui/checkbox.js +17 -12
- package/dist/ui/chip.js +19 -12
- package/dist/ui/date.js +19 -15
- package/dist/ui/drawer.js +26 -20
- package/dist/ui/dropdown-table.js +39 -30
- package/dist/ui/dropdown.js +19 -15
- package/dist/ui/file-upload.js +22 -17
- package/dist/ui/filter.js +18 -14
- package/dist/ui/form.js +4 -3
- package/dist/ui/index.css +1073 -2197
- package/dist/ui/input.js +24 -17
- package/dist/ui/menu.js +32 -20
- package/dist/ui/modal.js +33 -26
- package/dist/ui/nav.js +21 -15
- package/dist/ui/radio.js +17 -12
- package/dist/ui/rich-text-editor.js +34 -28
- package/dist/ui/select.js +32 -26
- package/dist/ui/shadow/accordion.js +13 -9
- package/dist/ui/shadow/alert.js +13 -9
- package/dist/ui/shadow/breadcrumb.js +23 -14
- package/dist/ui/shadow/button-dropdown.js +17 -13
- package/dist/ui/shadow/button.js +4 -2
- package/dist/ui/shadow/card.js +15 -10
- package/dist/ui/shadow/chart.js +36 -29
- package/dist/ui/shadow/checkbox.js +13 -9
- package/dist/ui/shadow/chip.js +16 -10
- package/dist/ui/shadow/date.js +19 -12
- package/dist/ui/shadow/drawer.js +22 -16
- package/dist/ui/shadow/dropdown-table.js +39 -28
- package/dist/ui/shadow/dropdown.js +15 -11
- package/dist/ui/shadow/file-upload.js +26 -19
- package/dist/ui/shadow/filter.js +17 -13
- package/dist/ui/shadow/input.js +20 -14
- package/dist/ui/shadow/menu.js +24 -14
- package/dist/ui/shadow/modal.js +35 -27
- package/dist/ui/shadow/nav.js +18 -12
- package/dist/ui/shadow/radio.js +15 -10
- package/dist/ui/shadow/rich-text-editor.js +32 -26
- package/dist/ui/shadow/select.js +30 -24
- package/dist/ui/shadow/sidebar.js +23 -16
- package/dist/ui/shadow/switch.js +15 -10
- package/dist/ui/shadow/table.js +123 -84
- package/dist/ui/shadow/tabs.js +12 -8
- package/dist/ui/shadow/tag-input.js +37 -31
- package/dist/ui/shadow/textarea.js +17 -12
- package/dist/ui/sidebar.js +27 -20
- package/dist/ui/switch.js +17 -12
- package/dist/ui/table.js +129 -87
- package/dist/ui/tabs.js +15 -11
- package/dist/ui/tag-input.js +33 -27
- package/dist/ui/textarea.js +19 -14
- package/dist/{vite-C5iUK7so.js → vite-DcyRlTTf.js} +17 -9
- package/dist/vite.js +3 -2
- package/package.json +18 -20
- package/dist/checkbox-Cqpie9Ap.js +0 -4
- package/dist/chip-DBUUa2eB.js +0 -4
- package/dist/data/theme/presets.json.d.ts +0 -140
- package/dist/export.d.ts +0 -1
- package/dist/hydration-flush-RB5Tz5nl.js +0 -1001
- package/dist/import.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.node.d.ts +0 -1
- package/dist/input-zGOULADt.js +0 -4
- package/dist/mono-button-simcTQdW.js +0 -873
- package/dist/mono-button.shadow-B_rKOY9N.js +0 -784
- package/dist/nuxt.d.ts +0 -1
- package/dist/search.d.ts +0 -1
- package/dist/tooltip.d.ts +0 -1
- package/dist/ui/accordion.d.ts +0 -1
- package/dist/ui/alert.d.ts +0 -1
- package/dist/ui/breadcrumb.d.ts +0 -1
- package/dist/ui/button-dropdown.d.ts +0 -1
- package/dist/ui/button.d.ts +0 -1
- package/dist/ui/card.d.ts +0 -1
- package/dist/ui/chart.d.ts +0 -1
- package/dist/ui/checkbox.d.ts +0 -1
- package/dist/ui/chip.d.ts +0 -1
- package/dist/ui/date.d.ts +0 -1
- package/dist/ui/drawer.d.ts +0 -1
- package/dist/ui/dropdown-table.d.ts +0 -1
- package/dist/ui/dropdown.d.ts +0 -1
- package/dist/ui/file-upload.d.ts +0 -1
- package/dist/ui/filter.d.ts +0 -1
- package/dist/ui/form.d.ts +0 -1
- package/dist/ui/input.d.ts +0 -1
- package/dist/ui/menu.d.ts +0 -1
- package/dist/ui/modal.d.ts +0 -1
- package/dist/ui/nav.d.ts +0 -1
- package/dist/ui/radio.d.ts +0 -1
- package/dist/ui/rich-text-editor.d.ts +0 -1
- package/dist/ui/select.d.ts +0 -1
- package/dist/ui/sidebar.d.ts +0 -1
- package/dist/ui/switch.d.ts +0 -1
- package/dist/ui/table.d.ts +0 -1
- package/dist/ui/tabs.d.ts +0 -1
- package/dist/ui/tag-input.d.ts +0 -1
- package/dist/ui/textarea.d.ts +0 -1
- package/dist/vite.d.ts +0 -1
package/dist/ui/modal.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { l as monoHostChildNodes } from "../mono-ui-
|
|
2
|
-
import { n as detachEventHandlers, t as applyProps } from "../element-props-
|
|
3
|
-
import { t as monoModal } from "../mono-modal-controller-
|
|
4
|
-
import { a as unregisterPopupLayer, n as refreshPopupStack, r as registerPopupLayer, t as getOpenPopupLayers } from "../popup-stack-
|
|
5
|
-
import { t as customElement } from "../mono-element-
|
|
6
|
-
import { a as defineHybridPropAliases, i as defineHybridPropAlias, r as booleanStringConverter, s as optionalNumberConverter, t as __decorate } from "../decorate-
|
|
7
|
-
import { t as dispatchMonoEvent } from "../mono-event-
|
|
8
|
-
import { a as parkDetachedNodes, i as guardHostTextContent, s as placeSlotNode } from "../light-slots-
|
|
9
|
-
import "../mono-button-
|
|
10
|
-
import { i as pathOwnedBy } from "../popup-portal-
|
|
11
|
-
import { n as isBelowBreakpoint, r as resolveAutoFullscreen, t as autoFullscreenConverter } from "../breakpoints-
|
|
1
|
+
import { l as monoHostChildNodes } from "../mono-ui-BwUc0L6B.js";
|
|
2
|
+
import { n as detachEventHandlers, t as applyProps } from "../element-props-xvw0EB7H.js";
|
|
3
|
+
import { t as monoModal } from "../mono-modal-controller-ClObbHUs.js";
|
|
4
|
+
import { a as unregisterPopupLayer, n as refreshPopupStack, r as registerPopupLayer, t as getOpenPopupLayers } from "../popup-stack-De05Y-mJ.js";
|
|
5
|
+
import { t as customElement } from "../mono-element-C7vCschg.js";
|
|
6
|
+
import { a as defineHybridPropAliases, i as defineHybridPropAlias, r as booleanStringConverter, s as optionalNumberConverter, t as __decorate } from "../decorate-DbYFpi8R.js";
|
|
7
|
+
import { t as dispatchMonoEvent } from "../mono-event-BPku9HpS.js";
|
|
8
|
+
import { a as parkDetachedNodes, i as guardHostTextContent, s as placeSlotNode } from "../light-slots-DdDdZ6zs.js";
|
|
9
|
+
import "../mono-button-CeDB9khW.js";
|
|
10
|
+
import { i as pathOwnedBy } from "../popup-portal-HWhkd7oy.js";
|
|
11
|
+
import { n as isBelowBreakpoint, r as resolveAutoFullscreen, t as autoFullscreenConverter } from "../breakpoints-DllybT82.js";
|
|
12
12
|
import { LitElement, html, isServer, nothing, unsafeCSS } from "lit";
|
|
13
13
|
import { property, query, state } from "lit/decorators.js";
|
|
14
14
|
import { styleMap } from "lit/directives/style-map.js";
|
|
15
|
+
|
|
15
16
|
//#region src/components/modal/modal-core.ts
|
|
16
17
|
/** Per-instance id seed for the light build's heading ids (they live in the
|
|
17
18
|
* document, so they must be unique). The shadow build scopes ids to its own
|
|
18
19
|
* root and uses a constant — see `_headingIdBase`. */
|
|
19
|
-
|
|
20
|
+
let modalIdSeq = 0;
|
|
20
21
|
/**
|
|
21
22
|
* Named dimension presets for the sizing props — `width="lg"`, `max-height="sm"`.
|
|
22
23
|
*
|
|
@@ -30,7 +31,7 @@ var modalIdSeq = 0;
|
|
|
30
31
|
* are viewport-relative and match the drawer's top/bottom ladder, so one token means
|
|
31
32
|
* the same thing on both components.
|
|
32
33
|
*/
|
|
33
|
-
|
|
34
|
+
const WIDTH_PRESETS = {
|
|
34
35
|
xs: "min(90vw, 300px)",
|
|
35
36
|
sm: "min(90vw, 380px)",
|
|
36
37
|
md: "min(90vw, 520px)",
|
|
@@ -38,7 +39,7 @@ var WIDTH_PRESETS = {
|
|
|
38
39
|
xl: "min(95vw, 880px)",
|
|
39
40
|
xxl: "min(95vw, 1080px)"
|
|
40
41
|
};
|
|
41
|
-
|
|
42
|
+
const HEIGHT_PRESETS = {
|
|
42
43
|
xs: "22vh",
|
|
43
44
|
sm: "30vh",
|
|
44
45
|
md: "50vh",
|
|
@@ -80,7 +81,7 @@ function toCssSize(value, axis) {
|
|
|
80
81
|
* - shadow (`mono-modal.shadow.ts`): a real shadow root with an inner
|
|
81
82
|
* `.mono-modal` root, native `<slot>`s, inline-SVG ✕ (mirrors dropdown).
|
|
82
83
|
*/
|
|
83
|
-
|
|
84
|
+
const MonoModalCore = (superClass) => {
|
|
84
85
|
class MonoModalCoreClass extends superClass {
|
|
85
86
|
static {
|
|
86
87
|
this.monoPendingAuto = "never";
|
|
@@ -133,7 +134,8 @@ var MonoModalCore = (superClass) => {
|
|
|
133
134
|
const layers = getOpenPopupLayers();
|
|
134
135
|
if (layers[layers.length - 1] !== this) return;
|
|
135
136
|
const root = this.renderRoot instanceof Element ? this.renderRoot : null;
|
|
136
|
-
|
|
137
|
+
const path = event.composedPath();
|
|
138
|
+
if (pathOwnedBy(path, root ? [this, root] : [this])) return;
|
|
137
139
|
this.hide("overlay", event);
|
|
138
140
|
};
|
|
139
141
|
this._onHeaderPointerDown = (event) => {
|
|
@@ -260,10 +262,12 @@ var MonoModalCore = (superClass) => {
|
|
|
260
262
|
"stackable"
|
|
261
263
|
]) if (typeof this[key] === "string") this[key] = this._toBoolean(this[key]);
|
|
262
264
|
if (changed.has("dataModal")) this._bindController();
|
|
263
|
-
if (changed.has("modelValue"))
|
|
264
|
-
this.
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
if (changed.has("modelValue")) {
|
|
266
|
+
if (this.modelValue) {
|
|
267
|
+
this._resetDrag();
|
|
268
|
+
this._applyOpenSideEffects();
|
|
269
|
+
} else this._releaseSideEffects();
|
|
270
|
+
}
|
|
267
271
|
super.willUpdate?.(changed);
|
|
268
272
|
}
|
|
269
273
|
updated(changed) {
|
|
@@ -831,12 +835,14 @@ var MonoModalCore = (superClass) => {
|
|
|
831
835
|
__decorate([query(".mono-modal-panel")], MonoModalCoreClass.prototype, "_panelEl", void 0);
|
|
832
836
|
return MonoModalCoreClass;
|
|
833
837
|
};
|
|
838
|
+
|
|
834
839
|
//#endregion
|
|
835
|
-
//#region src
|
|
836
|
-
var modal_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-modal — a port of Basecoat's `.dialog` (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-modal size=\"lg\" color=\"success\" model-value title=\"Settings\">\r\n <div mono-modal mono-size=\"lg\" mono-color=\"success\" mono-open\r\n role=\"dialog\" aria-modal=\"true\">\r\n <div mono-overlay></div>\r\n <div mono-panel-wrap>\r\n <div mono-panel role=\"document\">\r\n <div mono-header>\r\n <div mono-heading>\r\n <div mono-title>Settings</div>\r\n <div mono-subtitle>Manage your account</div>\r\n </div>\r\n <button mono-close type=\"button\" aria-label=\"Close\">…</button>\r\n </div>\r\n <div mono-body>…</div>\r\n <div mono-footer>…</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element writes them on its ROOT — the\r\n `<body>` portal in the light build, an inner root `<div>` in the shadow one —\r\n along with every state below. The old classes (`.mono-modal.md.primary.open`)\r\n are still emitted as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-modal] ≡ .dialog (the <dialog> itself) — DEVIATION: a fixed\r\n full-viewport wrapper, because this component predates\r\n `<dialog>` support and owns its own stacking through\r\n `composables/popup-stack`\r\n [mono-overlay] ≡ .dialog::backdrop (bg-black/10 backdrop-blur-xs) — the\r\n fill is `--mono-mode-backdrop`, a token, since a\r\n pseudo-element cannot be reached from a shadow sheet\r\n [mono-panel-wrap] ≡ EXTENSION (upstream centres the panel itself with\r\n `fixed top-1/2 left-1/2 -translate-1/2`; a flex wrap\r\n centres a DRAGGED panel correctly, which that cannot)\r\n [mono-panel] ≡ .dialog > * (bg-popover text-popover-foreground ring-1\r\n ring-foreground/10 rounded-xl p-6 gap-6 text-sm\r\n max-w-[calc(100%-2rem)] max-h-[calc(100%-2rem)]\r\n flex flex-col sm:max-w-md)\r\n [mono-header] ≡ .dialog > * > header (flex flex-col gap-2) — DEVIATION:\r\n a ROW, because the ✕ lives inside it (see below)\r\n [mono-heading] ≡ upstream's header column itself (flex flex-col gap-2)\r\n — the ✕'s row-mate; `slot=\"header\"` replaces it\r\n [mono-title] ≡ .dialog > * > header > h2 (leading-none font-medium)\r\n [mono-subtitle] ≡ .dialog > * > header > p (text-muted-foreground text-sm\r\n leading-normal)\r\n [mono-body] ≡ .dialog > * > section (flex-1)\r\n [mono-footer] ≡ .dialog > * > footer (flex flex-col-reverse gap-2,\r\n sm:flex-row sm:justify-end)\r\n [mono-close] ≡ .dialog > * > button (opacity-70 hover:opacity-100,\r\n svg size-4) — DEVIATION: in flow inside the head\r\n rather than `absolute top-4 end-4`, because the head is\r\n also the drag handle; a `slot=\"header\"` replaces only\r\n the heading column, never the ✕\r\n [mono-size] ≡ EXTENSION. Upstream's `data-size` is a WIDTH; ours is\r\n the content scale (padding, type, radius, close box).\r\n Width is its own prop — a compact `sm` can still be\r\n wide — and defaults to `--mono-container-md`, which is\r\n upstream's `sm:max-w-md`.\r\n [mono-color] ≡ EXTENSION (upstream's dialog has no colour)\r\n\r\n THE TINTED HEADER IS GONE. Upstream's dialog is one padded box: the panel\r\n carries `p-6` and `gap-6`, and header / section / footer are unpadded,\r\n unbordered, untinted regions inside it. The gradient head bar, the tinted\r\n footer and both divider rules went with it — `--mono-modal-header-bg` and\r\n `-foot-bg` remain as knobs, defaulting to `transparent`, so a consumer who\r\n wants the bar back sets those two.\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-panel]`, `[mono-body]`, `[mono-title]` and\r\n `[mono-close]` are also dropdown's, card's and input's part names, and a modal\r\n BODY is where consumers put all three. Every rule here is written as an\r\n explicit child path from the root, with `:where()` keeping the resting weight\r\n at (0,1,0) so a `cssClass` utility still wins by source order.\r\n\r\n FLAVORS set `--mono-modal-{radius,padding,gap,ring-color,shadow,width,\r\n title-font,overlay-bg,overlay-backdrop-filter,close-*}` (+ the per-size\r\n forms); every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"dialog\"` prints the matrix).\r\n ========================================================================= */\r\n\r\nmono-modal {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Root — the layer\r\n ========================================= */\r\n\r\n[mono-modal] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-modal-primary: var(--mono-modal-primary, var(--primary));\r\n --_mono-modal-secondary: var(--mono-modal-secondary, var(--secondary-foreground));\r\n --_mono-modal-success: var(--mono-modal-success, var(--success));\r\n --_mono-modal-danger: var(--mono-modal-danger, var(--destructive));\r\n --_mono-modal-warning: var(--mono-modal-warning, var(--warning));\r\n --_mono-modal-info: var(--mono-modal-info, var(--info));\r\n --_mono-modal-teal: var(--mono-modal-teal, var(--teal));\r\n --_mono-modal-purple: var(--mono-modal-purple, var(--purple));\r\n --_mono-modal-neutral: var(--mono-modal-neutral, var(--neutral));\r\n --_mono-modal-dark: var(--mono-modal-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-modal-accent: var(--mono-modal-accent, var(--_mono-modal-accent-preset, var(--_mono-modal-primary)));\r\n\r\n /* ── panel paint — `bg-popover text-popover-foreground ring-foreground/10` ── */\r\n --_mono-modal-bg: var(--mono-modal-bg, var(--mono-modal-surface, var(--popover)));\r\n --_mono-modal-text: var(--mono-modal-text, var(--popover-foreground));\r\n --_mono-modal-border: var(--mono-modal-border, var(--border));\r\n --_mono-modal-ring-width: var(--mono-modal-ring-width, var(--mono-border-width));\r\n --_mono-modal-ring-color: var(--mono-modal-ring-color,\r\n color-mix(in oklab, var(--foreground) 10%, transparent));\r\n --_mono-modal-shadow: var(--mono-modal-shadow, var(--mono-shadow-lg));\r\n /* a faint halo of the accent under the elevation — nothing until `color` is set */\r\n --_mono-modal-glow: var(--mono-modal-glow, 0 0 #0000);\r\n\r\n /* The tinted head / foot bars of the pre-port modal. Upstream has neither —\r\n its dialog is ONE padded box — so both default to nothing, and a consumer\r\n who wants the bar back sets the pair (and `-head-border` for the rule). */\r\n --_mono-modal-header-bg: var(--mono-modal-header-bg, var(--mono-modal-head-bg, transparent));\r\n --_mono-modal-footer-bg: var(--mono-modal-footer-bg, transparent);\r\n --_mono-modal-header-border: var(--mono-modal-header-border, transparent);\r\n --_mono-modal-footer-border: var(--mono-modal-footer-border, transparent);\r\n /* 0, not a transparent hairline: upstream has no divider, and a transparent\r\n one would still take a pixel of layout. Restoring the bar means setting the\r\n width with the colour. */\r\n --_mono-modal-header-border-width: var(--mono-modal-header-border-width, 0);\r\n --_mono-modal-footer-border-width: var(--mono-modal-footer-border-width, 0);\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .dialog > * — rounded-xl p-6 gap-6 text-sm */\r\n --_mono-modal-radius: var(--mono-modal-radius, var(--_mono-modal-radius-preset, var(--mono-modal-radius-md, var(--mono-radius-xl))));\r\n --_mono-modal-pad: var(--mono-modal-pad, var(--_mono-modal-pad-preset, var(--mono-modal-pad-md, calc(var(--mono-spacing) * 6))));\r\n --_mono-modal-gap: var(--mono-modal-gap, var(--_mono-modal-gap-preset, var(--mono-modal-gap-md, calc(var(--mono-spacing) * 6))));\r\n --_mono-modal-header-gap: var(--mono-modal-header-gap, var(--_mono-modal-header-gap-preset, var(--mono-modal-header-gap-md, calc(var(--mono-spacing) * 2))));\r\n --_mono-modal-footer-gap: var(--mono-modal-footer-gap, var(--_mono-modal-footer-gap-preset, var(--mono-modal-footer-gap-md, calc(var(--mono-spacing) * 2))));\r\n --_mono-modal-body-font: var(--mono-modal-body-font, var(--_mono-modal-body-font-preset, var(--mono-modal-body-font-md, var(--mono-text-sm))));\r\n --_mono-modal-body-line-height: var(--mono-modal-body-line-height, var(--_mono-modal-body-line-height-preset, var(--mono-text-sm--lh)));\r\n /* `leading-none font-medium`, at the panel's own size — four of the eight\r\n flavors bump it to `text-base` and sera to `text-lg`. */\r\n --_mono-modal-title-font: var(--mono-modal-title-font, var(--_mono-modal-title-font-preset, var(--mono-modal-title-font-md, var(--mono-text-sm))));\r\n --_mono-modal-title-weight: var(--mono-modal-title-weight, var(--mono-font-weight-medium));\r\n --_mono-modal-title-color: var(--mono-modal-title-color, var(--_mono-modal-text));\r\n /* the description line — `text-muted-foreground text-sm leading-normal`; the\r\n font follows the body's per-size step, which is `text-sm` at md */\r\n --_mono-modal-subtitle-font: var(--mono-modal-subtitle-font, var(--_mono-modal-body-font));\r\n --_mono-modal-subtitle-color: var(--mono-modal-subtitle-color, var(--muted-foreground));\r\n\r\n /* ── the close ✕ — `opacity-70 hover:opacity-100`, glyph `size-4` ───────── */\r\n --_mono-modal-close-size: var(--mono-modal-close-size, var(--_mono-modal-close-size-preset, var(--mono-modal-close-size-md, calc(var(--mono-spacing) * 7))));\r\n --_mono-modal-close-glyph: var(--mono-modal-close-glyph, var(--_mono-modal-close-glyph-preset, calc(var(--mono-spacing) * 4)));\r\n --_mono-modal-close-radius: var(--mono-modal-close-radius, var(--mono-radius-sm));\r\n --_mono-modal-close-bg: var(--mono-modal-close-bg, transparent);\r\n --_mono-modal-close-color: var(--mono-modal-close-color, var(--_mono-modal-text));\r\n --_mono-modal-close-opacity: var(--mono-modal-close-opacity, 0.7);\r\n --_mono-modal-close-hover-opacity: var(--mono-modal-close-hover-opacity, 1);\r\n --_mono-modal-close-hover-bg: var(--mono-modal-close-hover-bg, transparent);\r\n\r\n /* ── the backdrop — `bg-black/10 backdrop-blur-xs` ─────────────────────── */\r\n --_mono-modal-overlay-bg: var(--mono-modal-overlay-bg, var(--mono-mode-backdrop));\r\n /* Public so a flavor can drop the blur; a descendant rule would not reach the\r\n shadow build's overlay. */\r\n --_mono-modal-overlay-backdrop-filter: var(--mono-modal-overlay-backdrop-filter, blur(var(--mono-blur-xs)));\r\n\r\n --_mono-modal-z: var(--mono-modal-z, 600);\r\n\r\n /* `max-w-[calc(100%-2rem)] sm:max-w-md` — the width is a PROP here (a dialog's\r\n measure and its density are independent choices, which is why `size` does\r\n not touch it), so the default is upstream's `md` container. */\r\n --_mono-modal-width: var(--mono-modal-width, min(calc(100% - 2rem), var(--mono-container-md)));\r\n\r\n /* Open/close animation duration. One source of truth for the panel's opacity +\r\n transform AND the delayed `visibility` / `content-visibility` flips, which have\r\n to stay in lockstep with them — they used to be six hand-maintained `0.22s`\r\n literals. Set `--mono-modal-duration: 0s` for an instant, animation-free modal;\r\n worth doing when the modal body holds a lot of components, since that is what\r\n the open/close frames have to re-measure. */\r\n --_mono-modal-duration: var(--mono-modal-duration, var(--mono-duration-slow));\r\n /* The overlay keeps its own default so an explicit `--mono-modal-duration: 0s`\r\n does not leave the scrim fading on its own. */\r\n --_mono-modal-overlay-duration: var(--mono-modal-duration, var(--mono-duration-slow));\r\n\r\n /* Sized in VIEWPORT units, not `inset: 0`/`100%`. Both of those resolve against\r\n the initial containing block, which a horizontally-overflowing page inflates\r\n under mobile emulation (measured: 481x1041 on a 390x844 screen) — the panel\r\n then centres inside an oversized wrap and stops covering the screen. Viewport\r\n units stay correct there. `dvh`/`dvw` additionally track mobile browser chrome,\r\n so the `v*` line below is only the pre-2022 fallback. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n z-index: var(--_mono-modal-z);\r\n pointer-events: none;\r\n font-family: inherit;\r\n color: var(--_mono-modal-text);\r\n}\r\n\r\n[mono-modal],\r\n:where([mono-modal]) *,\r\n:where([mono-modal]) *::before,\r\n:where([mono-modal]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: upstream's `data-size` is a width; this is the density\r\n ========================================= */\r\n\r\n[mono-modal][mono-size=\"xs\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-xs, var(--mono-radius-md));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-xs, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-xs, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-xs, var(--mono-spacing));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-xs, var(--mono-spacing));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-xs, var(--mono-text-xs));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-xs, var(--mono-text-xs));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-xs, calc(var(--mono-spacing) * 5));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 3);\r\n}\r\n\r\n[mono-modal][mono-size=\"sm\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-sm, var(--mono-radius-lg));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-sm, calc(var(--mono-spacing) * 4));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-sm, calc(var(--mono-spacing) * 4));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-sm, calc(var(--mono-spacing) * 1.5));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-sm, calc(var(--mono-spacing) * 2));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-sm, var(--mono-text-sm));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-sm, var(--mono-text-xs));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-sm, calc(var(--mono-spacing) * 6));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 3.5);\r\n}\r\n\r\n[mono-modal][mono-size=\"lg\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-lg, var(--mono-radius-2xl));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-lg, calc(var(--mono-spacing) * 7));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-lg, calc(var(--mono-spacing) * 7));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-lg, calc(var(--mono-spacing) * 2.5));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-lg, calc(var(--mono-spacing) * 2.5));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-lg, var(--mono-text-base));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-lg, var(--mono-text-sm));\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-lg, calc(var(--mono-spacing) * 8));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 4.5);\r\n}\r\n\r\n[mono-modal][mono-size=\"xl\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-xl, var(--mono-radius-2xl));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-xl, calc(var(--mono-spacing) * 8));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-xl, calc(var(--mono-spacing) * 8));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-xl, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-xl, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-xl, var(--mono-text-lg));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-xl, var(--mono-text-base));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-xl, calc(var(--mono-spacing) * 9));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 5);\r\n}\r\n\r\n[mono-modal][mono-size=\"xxl\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-xxl, var(--mono-radius-4xl));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-xxl, calc(var(--mono-spacing) * 9));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-xxl, calc(var(--mono-spacing) * 9));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-xxl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-xxl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-xxl, var(--mono-text-xl));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-xxl, var(--mono-text-lg));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-xxl, calc(var(--mono-spacing) * 10));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 5.5);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role tints the ring and whatever the consumer\r\n turns back on (the head bar, the close hover)\r\n ========================================= */\r\n\r\n[mono-modal][mono-color=\"primary\"] { --_mono-modal-accent-preset: var(--_mono-modal-primary); }\r\n[mono-modal][mono-color=\"secondary\"] { --_mono-modal-accent-preset: var(--_mono-modal-secondary); }\r\n[mono-modal][mono-color=\"success\"] { --_mono-modal-accent-preset: var(--_mono-modal-success); }\r\n[mono-modal][mono-color=\"danger\"] { --_mono-modal-accent-preset: var(--_mono-modal-danger); }\r\n[mono-modal][mono-color=\"warning\"] { --_mono-modal-accent-preset: var(--_mono-modal-warning); }\r\n[mono-modal][mono-color=\"info\"] { --_mono-modal-accent-preset: var(--_mono-modal-info); }\r\n[mono-modal][mono-color=\"teal\"] { --_mono-modal-accent-preset: var(--_mono-modal-teal); }\r\n[mono-modal][mono-color=\"purple\"] { --_mono-modal-accent-preset: var(--_mono-modal-purple); }\r\n[mono-modal][mono-color=\"neutral\"] { --_mono-modal-accent-preset: var(--_mono-modal-neutral); }\r\n[mono-modal][mono-color=\"dark\"] { --_mono-modal-accent-preset: var(--_mono-modal-dark); }\r\n\r\n/* An explicit `color` shows on the panel itself, not only in the ✕ hover: a\r\n thin line of the accent sits ON the ring and a faint halo of it under the\r\n elevation — \"bordered green, glowing green just a little\". Both live in the\r\n glow layer (first in the shadow list, so the translucent foreground/10 ring\r\n does not muddy the line, and a flavour's own `--mono-modal-ring-color` is\r\n left alone). Without `color` the layer is nothing. `--mono-modal-glow`\r\n replaces the whole layer; `--mono-modal-accent-ring` recolours the line. */\r\n[mono-modal][mono-color] {\r\n --_mono-modal-glow: var(--mono-modal-glow,\r\n 0 0 0 var(--_mono-modal-ring-width) var(--mono-modal-accent-ring, color-mix(in oklab, var(--_mono-modal-accent) 35%, var(--_mono-modal-border))),\r\n 0 0 24px -4px color-mix(in oklab, var(--_mono-modal-accent) 45%, transparent));\r\n}\r\n\r\n/* =========================================\r\n Overlay — `::backdrop`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog::backdrop, .alert-dialog::backdrop, .command-dialog::backdrop\r\n — bg-black/10 backdrop-blur-xs duration-100. A real `::backdrop` cannot be\r\n reached from a shadow sheet and cannot stack with this component's own layer\r\n manager, so it is an element — the fill is upstream's, through the mode token. */\r\n:where([mono-modal]) > [mono-overlay] {\r\n /* Viewport units, not `inset: 0` — see the note on the root. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n background: var(--_mono-modal-overlay-bg);\r\n opacity: 0;\r\n pointer-events: none;\r\n\r\n /* The blur is applied only while open; it used to be declared unconditionally with\r\n `opacity: 0` as the only thing hiding it. Hygiene rather than a measured win —\r\n `backdrop-filter` is a paint/composite cost, and the layout+style metrics used to\r\n validate the `content-visibility` change below cannot attribute anything to it\r\n either way. Kept because a filter on a never-shown full-viewport element is work\r\n the browser should never be asked to consider, and the change is free.\r\n\r\n Removal is DELAYED by the fade duration (the same idiom this file already uses\r\n for `visibility` below): drop it immediately and the backdrop snaps sharp while\r\n the scrim is still fading out. `backdrop-filter` is animatable, so a plain\r\n delayed transition does the job — no `allow-discrete` needed. */\r\n backdrop-filter: none;\r\n -webkit-backdrop-filter: none;\r\n transition:\r\n opacity var(--_mono-modal-overlay-duration) var(--mono-ease),\r\n backdrop-filter 0s linear var(--_mono-modal-overlay-duration),\r\n -webkit-backdrop-filter 0s linear var(--_mono-modal-overlay-duration);\r\n}\r\n\r\n[mono-modal][mono-open] > [mono-overlay] {\r\n opacity: 1;\r\n pointer-events: auto;\r\n backdrop-filter: var(--_mono-modal-overlay-backdrop-filter);\r\n -webkit-backdrop-filter: var(--_mono-modal-overlay-backdrop-filter);\r\n transition:\r\n opacity var(--_mono-modal-overlay-duration) var(--mono-ease),\r\n backdrop-filter 0s linear 0s,\r\n -webkit-backdrop-filter 0s linear 0s;\r\n}\r\n\r\n[mono-modal][mono-no-overlay] > [mono-overlay] {\r\n display: none;\r\n}\r\n\r\n/* Stacked modals: when another modal or drawer WITH an overlay is open above\r\n this one, hide this backdrop so dim layers don't compound — the topmost\r\n overlay alone dims everything beneath it. An `overlay=\"false\"` dialog above\r\n does not count, so this one keeps dimming the page. */\r\n[mono-modal][mono-open][mono-has-modal-above] > [mono-overlay] {\r\n opacity: 0;\r\n}\r\n\r\n/* =========================================\r\n Panel — `.dialog > *`\r\n ========================================= */\r\n\r\n/* EXTENSION — the centring box. Upstream centres the panel itself\r\n (`fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2`), which this\r\n component cannot: the drag offset is a `translate` too, and the two would\r\n fight. A flex wrap centres without spending the transform. */\r\n:where([mono-modal]) > [mono-panel-wrap] {\r\n /* Viewport units, not `inset: 0` — see the note on the root. This is the box\r\n the panel centres in, so an inflated one offsets the panel off-screen. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 1rem;\r\n pointer-events: none;\r\n z-index: calc(var(--_mono-modal-z) + 1);\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog, .alert-dialog >> > * — fixed z-50\r\n flex max-h-[calc(100%_-_2rem)] w-full flex-col transition-all outline-hidden */\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * — bg-popover text-popover-foreground\r\n ring-foreground/10 max-w-[calc(100%-2rem)] gap-6 rounded-xl p-6 text-sm ring-1\r\n duration-100 sm:max-w-md */\r\n:where([mono-modal] > [mono-panel-wrap]) > [mono-panel] {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--_mono-modal-gap);\r\n width: var(--_mono-modal-width);\r\n max-width: calc(100% - 2rem);\r\n max-height: calc(100vh - 2rem);\r\n max-height: calc(100dvh - 2rem);\r\n padding: var(--_mono-modal-pad);\r\n border-radius: var(--_mono-modal-radius);\r\n background: var(--_mono-modal-bg);\r\n color: var(--_mono-modal-text);\r\n box-shadow:\r\n var(--_mono-modal-glow),\r\n 0 0 0 var(--_mono-modal-ring-width) var(--_mono-modal-ring-color),\r\n var(--_mono-modal-shadow);\r\n overflow: hidden;\r\n outline: none;\r\n pointer-events: auto;\r\n\r\n /* Closed state: invisible (hides shadow halo) + scaled-down, which is\r\n upstream's `@starting-style` pair (`opacity-0` + `scale-95`) written as a\r\n class transition — a `<dialog>`'s discrete open/close is not available to a\r\n component that manages its own layer. The visibility flip is delayed on\r\n close so the scale-out animation plays first. */\r\n opacity: 0;\r\n transform: translate(var(--drag-x, 0px), var(--drag-y, 0px)) scale(0.95);\r\n visibility: hidden;\r\n transition:\r\n opacity var(--_mono-modal-duration) var(--mono-ease),\r\n transform var(--_mono-modal-duration) var(--mono-ease),\r\n visibility 0s linear var(--_mono-modal-duration);\r\n}\r\n\r\n[mono-modal][mono-open] > [mono-panel-wrap] > [mono-panel] {\r\n opacity: 1;\r\n transform: translate(var(--drag-x, 0px), var(--drag-y, 0px)) scale(1);\r\n visibility: visible;\r\n transition:\r\n opacity var(--_mono-modal-duration) var(--mono-ease),\r\n transform var(--_mono-modal-duration) var(--mono-ease),\r\n visibility 0s linear 0s;\r\n}\r\n\r\n/* Draggable: the head is the drag handle; suppress the transform transition while\r\n dragging so the panel tracks the pointer 1:1 and snaps instantly on drop. */\r\n[mono-modal][mono-draggable] > [mono-panel-wrap] > [mono-panel] > [mono-header] {\r\n cursor: move;\r\n touch-action: none;\r\n user-select: none;\r\n}\r\n\r\n[mono-modal][mono-draggable] > [mono-panel-wrap] > [mono-panel] > [mono-header] [mono-close] {\r\n cursor: pointer;\r\n}\r\n\r\n[mono-modal][mono-dragging] > [mono-panel-wrap] > [mono-panel] {\r\n transition: none;\r\n}\r\n\r\n/* =========================================\r\n Head — `> header`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > header — flex flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * > header — gap-2\r\n DEVIATION: a ROW. Upstream's header is a column of title + description with the\r\n ✕ absolutely positioned beside it; ours holds the ✕ because the head is the\r\n drag handle. Upstream's column is `[mono-heading]` below, the ✕'s row-mate —\r\n and all a `slot=\"header\"` replaces. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-header] {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: var(--_mono-modal-header-gap);\r\n flex-shrink: 0;\r\n padding: var(--mono-modal-header-pad, 0);\r\n border-bottom: var(--_mono-modal-header-border-width) solid var(--_mono-modal-header-border);\r\n background: var(--_mono-modal-header-bg);\r\n}\r\n\r\n/* No subtitle: a lone title line sits centred beside the taller ✕ instead of\r\n riding its top edge. With a subtitle the head stays top-aligned. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-header][mono-no-subtitle] {\r\n align-items: center;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * > header > h2, .dialog > * > [data-title]\r\n — leading-none font-medium */\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > header — flex flex-col\r\n (+ vega's gap-2): the title / subtitle column, taking the row beside the ✕. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) > [mono-heading] {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-modal-heading-gap, var(--_mono-modal-header-gap));\r\n}\r\n\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) [mono-title] {\r\n min-width: 0;\r\n font-size: var(--_mono-modal-title-font);\r\n font-weight: var(--_mono-modal-title-weight);\r\n line-height: var(--mono-leading-none, 1);\r\n color: var(--_mono-modal-title-color);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * > header > p, .dialog > * > [data-description]\r\n — text-muted-foreground text-sm leading-normal */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) [mono-subtitle] {\r\n min-width: 0;\r\n font-size: var(--_mono-modal-subtitle-font);\r\n line-height: var(--mono-modal-subtitle-line-height, var(--mono-leading-normal));\r\n color: var(--_mono-modal-subtitle-color);\r\n}\r\n\r\n/* Empty regions. The light build omits them; the shadow build always renders\r\n them (its native `<slot>`s must exist to be scanned) and marks them\r\n [mono-empty]. The heading parts are matched as descendants because the shadow\r\n build nests them inside the `header` slot's fallback. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > :is([mono-header], [mono-footer])[mono-empty],\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) > [mono-heading][mono-empty],\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header] > [mono-heading]) :is([mono-title], [mono-subtitle])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Close — `> button`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > :is(button, form[method='dialog'] > button)\r\n — inline-flex items-center justify-center opacity-70 transition-opacity\r\n hover:opacity-100 focus-visible:outline-hidden disabled:pointer-events-none\r\n DEVIATION: in flow inside the head rather than `absolute top-4 end-4` — see\r\n the header note above. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) [mono-close] {\r\n flex-shrink: 0;\r\n /* stays at the end even when the heading column is empty (hidden) */\r\n margin-inline-start: auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-modal-close-size);\r\n height: var(--_mono-modal-close-size);\r\n padding: 0;\r\n border: none;\r\n border-radius: var(--_mono-modal-close-radius);\r\n background: var(--_mono-modal-close-bg);\r\n color: var(--_mono-modal-close-color);\r\n opacity: var(--_mono-modal-close-opacity);\r\n cursor: pointer;\r\n appearance: none;\r\n transition:\r\n opacity var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-modal] [mono-close]:hover {\r\n opacity: var(--_mono-modal-close-hover-opacity);\r\n background: var(--_mono-modal-close-hover-bg);\r\n }\r\n}\r\n\r\n[mono-modal] [mono-close]:focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width)\r\n color-mix(in oklab, var(--ring) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > :is(button, form[method='dialog'] > button) > svg:not([class*='size-'])\r\n — size-4 */\r\n[mono-modal] [mono-close] > :is(svg, span) {\r\n display: block;\r\n width: var(--_mono-modal-close-glyph);\r\n height: var(--_mono-modal-close-glyph);\r\n}\r\n\r\n/* =========================================\r\n Body — `> section`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > section — flex-1\r\n The panel's own `p-6` is the padding; `--mono-modal-body-pad` restores an\r\n inner one for a body that scrolls under a restored head bar. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-body] {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: var(--mono-modal-body-pad, 0);\r\n font-size: var(--_mono-modal-body-font);\r\n line-height: var(--_mono-modal-body-line-height);\r\n color: var(--_mono-modal-text);\r\n}\r\n\r\n/* =========================================\r\n Foot — `> footer`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > footer\r\n — flex flex-col-reverse sm:flex-row sm:justify-end */\r\n/* basecoat@1.0.2 styles/vega.css .alert-dialog > * > footer, .dialog > * > footer — gap-2 */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-footer] {\r\n display: flex;\r\n flex-direction: column-reverse;\r\n gap: var(--_mono-modal-footer-gap);\r\n flex-shrink: 0;\r\n margin: var(--mono-modal-footer-margin, 0);\r\n padding: var(--mono-modal-footer-pad, 0);\r\n border-top: var(--_mono-modal-footer-border-width) solid var(--_mono-modal-footer-border);\r\n border-end-start-radius: var(--mono-modal-footer-radius, 0);\r\n border-end-end-radius: var(--mono-modal-footer-radius, 0);\r\n background: var(--_mono-modal-footer-bg);\r\n}\r\n\r\n@media (width >= 40rem) {\r\n [mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-footer] {\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-end;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Full screen — both width and height passed as \"100%\"\r\n ========================================= */\r\n\r\n[mono-modal][mono-fullscreen] > [mono-panel-wrap] {\r\n padding: 0;\r\n}\r\n\r\n[mono-modal][mono-fullscreen] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: 100vw;\r\n max-width: 100dvw;\r\n max-height: 100vh;\r\n max-height: 100dvh;\r\n border-radius: 0;\r\n}\r\n\r\n/* A closed modal is hidden with `visibility: hidden`, which skips PAINT but not\r\n LAYOUT — so the panel and everything slotted into it kept generating boxes and\r\n being measured even for a modal the user never opened. That cost is paid at mount:\r\n `mono-modal.ts` builds the <body> portal in `createRenderRoot()`, moves the\r\n consumer's children into it, and forces a synchronous `performUpdate()` from\r\n `connectedCallback`. `content-visibility: hidden` drops the closed subtree\r\n entirely, so a heavy modal costs nothing until it is opened.\r\n\r\n Measured (Chromium, ~400-node panels, 10 modal+drawer pairs, 20k DOM nodes):\r\n layout objects: 12281 → 81 (−99.3%); with a single pair, 1237 → 18\r\n mount layout+style: 94.6ms → 14.9ms, and flat in the number of modals\r\n The trade, same as the accordion's: one open+close costs MORE (2.1ms → 8.0ms),\r\n because an opening panel is laid out from scratch instead of incrementally. Worth\r\n it — you mount once and toggle rarely — and `--mono-modal-duration: 0s` claws the\r\n toggle back if a body is heavy enough to notice.\r\n\r\n `allow-discrete` is what makes it safe to animate. Opening flips the property to\r\n `visible` at 0%, so the scale/opacity animation has something to composite;\r\n closing holds it `visible` until 100%, so the panel scales out instead of\r\n vanishing on the first frame.\r\n\r\n Gated behind @supports deliberately: `content-visibility … allow-discrete` inside\r\n the `transition` SHORTHAND is a parse error to a browser without the feature, and\r\n one bad entry drops the WHOLE declaration — which would take the modal's fade and\r\n scale with it. Inside the guard the shorthand is known to parse, so the list is\r\n restated in full. Browsers without support keep exactly the previous behaviour.\r\n\r\n Must stay ABOVE the reduced-motion block below: that block wins on `!important`,\r\n but @supports adds no specificity, so source order is what keeps it winning. */\r\n@supports (transition-behavior: allow-discrete) {\r\n :where([mono-modal] > [mono-panel-wrap]) > [mono-panel] {\r\n content-visibility: hidden;\r\n contain-intrinsic-size: 0;\r\n transition:\r\n opacity var(--_mono-modal-duration) var(--mono-ease),\r\n transform var(--_mono-modal-duration) var(--mono-ease),\r\n visibility 0s linear var(--_mono-modal-duration),\r\n content-visibility var(--_mono-modal-duration) allow-discrete;\r\n }\r\n\r\n [mono-modal][mono-open] > [mono-panel-wrap] > [mono-panel] {\r\n content-visibility: visible;\r\n }\r\n}\r\n\r\n/* Reduced motion */\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-modal] > [mono-overlay],\r\n [mono-modal] > [mono-panel-wrap] > [mono-panel] {\r\n transition: opacity 0.01s linear, visibility 0s linear !important;\r\n transform: none !important;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Auto full-screen (`auto-fullscreen` prop)\r\n =========================================\r\n\r\n Fill the screen at a Tailwind breakpoint and below. The boundaries are\r\n `<breakpoint> - 0.02px` so they match Tailwind's `max-*` variants exactly: at\r\n exactly 640px `sm:` applies, so auto-fullscreen must NOT.\r\n\r\n Two things to know before editing:\r\n\r\n 1. `!important` is required here, unlike `[mono-fullscreen]` above.\r\n `_panelSizeStyle()` writes `width`/`height`/`min-*`/`max-*` as INLINE styles\r\n whenever the consumer sets a sizing prop, and inline beats any selector —\r\n without it `<mono-modal auto-fullscreen width=\"720\">` would stay 720px on a\r\n phone. The `min-*` resets matter too: a `min-width` larger than `width` still\r\n wins.\r\n 2. The five near-identical blocks are unavoidable — a media query cannot be\r\n parameterised by an attribute or a custom property, so each breakpoint needs\r\n its own. Keep them in sync.\r\n*/\r\n\r\n@media (max-width: 639.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"sm\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"sm\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"md\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"md\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1023.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"lg\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"lg\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1279.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"xl\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"xl\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1535.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"2xl\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"2xl\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n/* ── Programmatic dialog (`controlMonoModal().dialog`) ─────────────────────────\r\n The compact question box the controller builds by code — upstream's\r\n `.alert-dialog`: the text centred, the actions centred under it, and a lighter\r\n scrim, because what the question is about should stay readable behind it.\r\n `mono-dialog` is set through `cssClassName` on the dialog's own modal, so an\r\n ordinary <mono-modal> is untouched. */\r\n[mono-modal][mono-dialog] {\r\n --_mono-modal-overlay-backdrop-filter: var(--mono-modal-overlay-backdrop-filter, none);\r\n --_mono-modal-overlay-bg: var(--mono-modal-overlay-bg,\r\n color-mix(in oklab, black 22%, transparent));\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .alert-dialog >> > * > header — grid\r\n place-items-center text-center sm:place-items-start sm:text-start\r\n DEVIATION: centred at EVERY width. This box is one question and two buttons —\r\n upstream's `sm:` left-align belongs to the icon+title+description layout its\r\n alert dialog builds, which the controller does not produce. */\r\n[mono-modal][mono-dialog] > [mono-panel-wrap] > [mono-panel] > [mono-body] {\r\n text-align: center;\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .alert-dialog >> &:is([data-size='sm']) > * > footer, > [data-size='sm'] > footer\r\n — grid grid-cols-2. The controller's dialog is that `sm` alert: its actions sit\r\n together under the question rather than trailing to the end. */\r\n[mono-modal][mono-dialog] > [mono-panel-wrap] > [mono-panel] > [mono-footer] {\r\n justify-content: center;\r\n flex-wrap: wrap;\r\n}\r\n\r\n/* The light build re-appends slotted nodes into a `[data-mono-slot]` outlet.\r\n Left inline, that outlet is ONE flex child, so the footer's gap and\r\n justification apply to IT rather than to the buttons inside it — while the\r\n shadow build's `<slot>` is `display: contents` per the UA sheet and the\r\n hand-written markup has no wrapper at all. Dissolving the outlet is what\r\n makes the three agree, and it is what a consumer writing\r\n `<button slot=\"footer\">` twice expects. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-footer]) > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* The captured footer lands in an inline `<span data-mono-slot=\"foot\">` outlet, so\r\n the buttons would otherwise sit in a LINE box — baseline-aligned, a solid button\r\n with an icon a few px lower than an outline one beside it, with line-height air\r\n underneath. The outlet becomes the flex row instead, and the actions wrapper\r\n dissolves into it. */\r\n[mono-modal][mono-dialog] > [mono-panel-wrap] > [mono-panel] > [mono-footer] > [data-mono-slot=\"foot\"] {\r\n display: flex;\r\n flex: 1 1 auto;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--_mono-modal-footer-gap);\r\n line-height: 1;\r\n}\r\n\r\n[mono-modal][mono-dialog] .mono-modal-dialog-actions {\r\n display: contents;\r\n}\r\n";
|
|
840
|
+
//#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\modal\modal.css?raw.js
|
|
841
|
+
var modal_css_raw_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-modal — a port of Basecoat's `.dialog` (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-modal size=\"lg\" color=\"success\" model-value title=\"Settings\">\r\n <div mono-modal mono-size=\"lg\" mono-color=\"success\" mono-open\r\n role=\"dialog\" aria-modal=\"true\">\r\n <div mono-overlay></div>\r\n <div mono-panel-wrap>\r\n <div mono-panel role=\"document\">\r\n <div mono-header>\r\n <div mono-heading>\r\n <div mono-title>Settings</div>\r\n <div mono-subtitle>Manage your account</div>\r\n </div>\r\n <button mono-close type=\"button\" aria-label=\"Close\">…</button>\r\n </div>\r\n <div mono-body>…</div>\r\n <div mono-footer>…</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-color])` = primary). The element writes them on its ROOT — the\r\n `<body>` portal in the light build, an inner root `<div>` in the shadow one —\r\n along with every state below. The old classes (`.mono-modal.md.primary.open`)\r\n are still emitted as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-modal] ≡ .dialog (the <dialog> itself) — DEVIATION: a fixed\r\n full-viewport wrapper, because this component predates\r\n `<dialog>` support and owns its own stacking through\r\n `composables/popup-stack`\r\n [mono-overlay] ≡ .dialog::backdrop (bg-black/10 backdrop-blur-xs) — the\r\n fill is `--mono-mode-backdrop`, a token, since a\r\n pseudo-element cannot be reached from a shadow sheet\r\n [mono-panel-wrap] ≡ EXTENSION (upstream centres the panel itself with\r\n `fixed top-1/2 left-1/2 -translate-1/2`; a flex wrap\r\n centres a DRAGGED panel correctly, which that cannot)\r\n [mono-panel] ≡ .dialog > * (bg-popover text-popover-foreground ring-1\r\n ring-foreground/10 rounded-xl p-6 gap-6 text-sm\r\n max-w-[calc(100%-2rem)] max-h-[calc(100%-2rem)]\r\n flex flex-col sm:max-w-md)\r\n [mono-header] ≡ .dialog > * > header (flex flex-col gap-2) — DEVIATION:\r\n a ROW, because the ✕ lives inside it (see below)\r\n [mono-heading] ≡ upstream's header column itself (flex flex-col gap-2)\r\n — the ✕'s row-mate; `slot=\"header\"` replaces it\r\n [mono-title] ≡ .dialog > * > header > h2 (leading-none font-medium)\r\n [mono-subtitle] ≡ .dialog > * > header > p (text-muted-foreground text-sm\r\n leading-normal)\r\n [mono-body] ≡ .dialog > * > section (flex-1)\r\n [mono-footer] ≡ .dialog > * > footer (flex flex-col-reverse gap-2,\r\n sm:flex-row sm:justify-end)\r\n [mono-close] ≡ .dialog > * > button (opacity-70 hover:opacity-100,\r\n svg size-4) — DEVIATION: in flow inside the head\r\n rather than `absolute top-4 end-4`, because the head is\r\n also the drag handle; a `slot=\"header\"` replaces only\r\n the heading column, never the ✕\r\n [mono-size] ≡ EXTENSION. Upstream's `data-size` is a WIDTH; ours is\r\n the content scale (padding, type, radius, close box).\r\n Width is its own prop — a compact `sm` can still be\r\n wide — and defaults to `--mono-container-md`, which is\r\n upstream's `sm:max-w-md`.\r\n [mono-color] ≡ EXTENSION (upstream's dialog has no colour)\r\n\r\n THE TINTED HEADER IS GONE. Upstream's dialog is one padded box: the panel\r\n carries `p-6` and `gap-6`, and header / section / footer are unpadded,\r\n unbordered, untinted regions inside it. The gradient head bar, the tinted\r\n footer and both divider rules went with it — `--mono-modal-header-bg` and\r\n `-foot-bg` remain as knobs, defaulting to `transparent`, so a consumer who\r\n wants the bar back sets those two.\r\n\r\n PART NAMES ARE PATH-SCOPED. `[mono-panel]`, `[mono-body]`, `[mono-title]` and\r\n `[mono-close]` are also dropdown's, card's and input's part names, and a modal\r\n BODY is where consumers put all three. Every rule here is written as an\r\n explicit child path from the root, with `:where()` keeping the resting weight\r\n at (0,1,0) so a `cssClass` utility still wins by source order.\r\n\r\n FLAVORS set `--mono-modal-{radius,padding,gap,ring-color,shadow,width,\r\n title-font,overlay-bg,overlay-backdrop-filter,close-*}` (+ the per-size\r\n forms); every fallback here is vega's value\r\n (`node scripts/basecoat-styles.mjs --varying \"dialog\"` prints the matrix).\r\n ========================================================================= */\r\n\r\nmono-modal {\r\n display: contents;\r\n}\r\n\r\n/* =========================================\r\n Root — the layer\r\n ========================================= */\r\n\r\n[mono-modal] {\r\n /* ── the six roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-modal-primary: var(--mono-modal-primary, var(--primary));\r\n --_mono-modal-secondary: var(--mono-modal-secondary, var(--secondary-foreground));\r\n --_mono-modal-success: var(--mono-modal-success, var(--success));\r\n --_mono-modal-danger: var(--mono-modal-danger, var(--destructive));\r\n --_mono-modal-warning: var(--mono-modal-warning, var(--warning));\r\n --_mono-modal-info: var(--mono-modal-info, var(--info));\r\n --_mono-modal-teal: var(--mono-modal-teal, var(--teal));\r\n --_mono-modal-purple: var(--mono-modal-purple, var(--purple));\r\n --_mono-modal-neutral: var(--mono-modal-neutral, var(--neutral));\r\n --_mono-modal-dark: var(--mono-modal-dark, var(--dark));\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-modal-accent: var(--mono-modal-accent, var(--_mono-modal-accent-preset, var(--_mono-modal-primary)));\r\n\r\n /* ── panel paint — `bg-popover text-popover-foreground ring-foreground/10` ── */\r\n --_mono-modal-bg: var(--mono-modal-bg, var(--mono-modal-surface, var(--popover)));\r\n --_mono-modal-text: var(--mono-modal-text, var(--popover-foreground));\r\n --_mono-modal-border: var(--mono-modal-border, var(--border));\r\n --_mono-modal-ring-width: var(--mono-modal-ring-width, var(--mono-border-width));\r\n --_mono-modal-ring-color: var(--mono-modal-ring-color,\r\n color-mix(in oklab, var(--foreground) 10%, transparent));\r\n --_mono-modal-shadow: var(--mono-modal-shadow, var(--mono-shadow-lg));\r\n /* a faint halo of the accent under the elevation — nothing until `color` is set */\r\n --_mono-modal-glow: var(--mono-modal-glow, 0 0 #0000);\r\n\r\n /* The tinted head / foot bars of the pre-port modal. Upstream has neither —\r\n its dialog is ONE padded box — so both default to nothing, and a consumer\r\n who wants the bar back sets the pair (and `-head-border` for the rule). */\r\n --_mono-modal-header-bg: var(--mono-modal-header-bg, var(--mono-modal-head-bg, transparent));\r\n --_mono-modal-footer-bg: var(--mono-modal-footer-bg, transparent);\r\n --_mono-modal-header-border: var(--mono-modal-header-border, transparent);\r\n --_mono-modal-footer-border: var(--mono-modal-footer-border, transparent);\r\n /* 0, not a transparent hairline: upstream has no divider, and a transparent\r\n one would still take a pixel of layout. Restoring the bar means setting the\r\n width with the colour. */\r\n --_mono-modal-header-border-width: var(--mono-modal-header-border-width, 0);\r\n --_mono-modal-footer-border-width: var(--mono-modal-footer-border-width, 0);\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .dialog > * — rounded-xl p-6 gap-6 text-sm */\r\n --_mono-modal-radius: var(--mono-modal-radius, var(--_mono-modal-radius-preset, var(--mono-modal-radius-md, var(--mono-radius-xl))));\r\n --_mono-modal-pad: var(--mono-modal-pad, var(--_mono-modal-pad-preset, var(--mono-modal-pad-md, calc(var(--mono-spacing) * 6))));\r\n --_mono-modal-gap: var(--mono-modal-gap, var(--_mono-modal-gap-preset, var(--mono-modal-gap-md, calc(var(--mono-spacing) * 6))));\r\n --_mono-modal-header-gap: var(--mono-modal-header-gap, var(--_mono-modal-header-gap-preset, var(--mono-modal-header-gap-md, calc(var(--mono-spacing) * 2))));\r\n --_mono-modal-footer-gap: var(--mono-modal-footer-gap, var(--_mono-modal-footer-gap-preset, var(--mono-modal-footer-gap-md, calc(var(--mono-spacing) * 2))));\r\n --_mono-modal-body-font: var(--mono-modal-body-font, var(--_mono-modal-body-font-preset, var(--mono-modal-body-font-md, var(--mono-text-sm))));\r\n --_mono-modal-body-line-height: var(--mono-modal-body-line-height, var(--_mono-modal-body-line-height-preset, var(--mono-text-sm--lh)));\r\n /* `leading-none font-medium`, at the panel's own size — four of the eight\r\n flavors bump it to `text-base` and sera to `text-lg`. */\r\n --_mono-modal-title-font: var(--mono-modal-title-font, var(--_mono-modal-title-font-preset, var(--mono-modal-title-font-md, var(--mono-text-sm))));\r\n --_mono-modal-title-weight: var(--mono-modal-title-weight, var(--mono-font-weight-medium));\r\n --_mono-modal-title-color: var(--mono-modal-title-color, var(--_mono-modal-text));\r\n /* the description line — `text-muted-foreground text-sm leading-normal`; the\r\n font follows the body's per-size step, which is `text-sm` at md */\r\n --_mono-modal-subtitle-font: var(--mono-modal-subtitle-font, var(--_mono-modal-body-font));\r\n --_mono-modal-subtitle-color: var(--mono-modal-subtitle-color, var(--muted-foreground));\r\n\r\n /* ── the close ✕ — `opacity-70 hover:opacity-100`, glyph `size-4` ───────── */\r\n --_mono-modal-close-size: var(--mono-modal-close-size, var(--_mono-modal-close-size-preset, var(--mono-modal-close-size-md, calc(var(--mono-spacing) * 7))));\r\n --_mono-modal-close-glyph: var(--mono-modal-close-glyph, var(--_mono-modal-close-glyph-preset, calc(var(--mono-spacing) * 4)));\r\n --_mono-modal-close-radius: var(--mono-modal-close-radius, var(--mono-radius-sm));\r\n --_mono-modal-close-bg: var(--mono-modal-close-bg, transparent);\r\n --_mono-modal-close-color: var(--mono-modal-close-color, var(--_mono-modal-text));\r\n --_mono-modal-close-opacity: var(--mono-modal-close-opacity, 0.7);\r\n --_mono-modal-close-hover-opacity: var(--mono-modal-close-hover-opacity, 1);\r\n --_mono-modal-close-hover-bg: var(--mono-modal-close-hover-bg, transparent);\r\n\r\n /* ── the backdrop — `bg-black/10 backdrop-blur-xs` ─────────────────────── */\r\n --_mono-modal-overlay-bg: var(--mono-modal-overlay-bg, var(--mono-mode-backdrop));\r\n /* Public so a flavor can drop the blur; a descendant rule would not reach the\r\n shadow build's overlay. */\r\n --_mono-modal-overlay-backdrop-filter: var(--mono-modal-overlay-backdrop-filter, blur(var(--mono-blur-xs)));\r\n\r\n --_mono-modal-z: var(--mono-modal-z, 600);\r\n\r\n /* `max-w-[calc(100%-2rem)] sm:max-w-md` — the width is a PROP here (a dialog's\r\n measure and its density are independent choices, which is why `size` does\r\n not touch it), so the default is upstream's `md` container. */\r\n --_mono-modal-width: var(--mono-modal-width, min(calc(100% - 2rem), var(--mono-container-md)));\r\n\r\n /* Open/close animation duration. One source of truth for the panel's opacity +\r\n transform AND the delayed `visibility` / `content-visibility` flips, which have\r\n to stay in lockstep with them — they used to be six hand-maintained `0.22s`\r\n literals. Set `--mono-modal-duration: 0s` for an instant, animation-free modal;\r\n worth doing when the modal body holds a lot of components, since that is what\r\n the open/close frames have to re-measure. */\r\n --_mono-modal-duration: var(--mono-modal-duration, var(--mono-duration-slow));\r\n /* The overlay keeps its own default so an explicit `--mono-modal-duration: 0s`\r\n does not leave the scrim fading on its own. */\r\n --_mono-modal-overlay-duration: var(--mono-modal-duration, var(--mono-duration-slow));\r\n\r\n /* Sized in VIEWPORT units, not `inset: 0`/`100%`. Both of those resolve against\r\n the initial containing block, which a horizontally-overflowing page inflates\r\n under mobile emulation (measured: 481x1041 on a 390x844 screen) — the panel\r\n then centres inside an oversized wrap and stops covering the screen. Viewport\r\n units stay correct there. `dvh`/`dvw` additionally track mobile browser chrome,\r\n so the `v*` line below is only the pre-2022 fallback. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n z-index: var(--_mono-modal-z);\r\n pointer-events: none;\r\n font-family: inherit;\r\n color: var(--_mono-modal-text);\r\n}\r\n\r\n[mono-modal],\r\n:where([mono-modal]) *,\r\n:where([mono-modal]) *::before,\r\n:where([mono-modal]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Sizes — EXTENSION: upstream's `data-size` is a width; this is the density\r\n ========================================= */\r\n\r\n[mono-modal][mono-size=\"xs\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-xs, var(--mono-radius-md));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-xs, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-xs, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-xs, var(--mono-spacing));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-xs, var(--mono-spacing));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-xs, var(--mono-text-xs));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-xs, var(--mono-text-xs));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-xs, calc(var(--mono-spacing) * 5));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 3);\r\n}\r\n\r\n[mono-modal][mono-size=\"sm\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-sm, var(--mono-radius-lg));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-sm, calc(var(--mono-spacing) * 4));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-sm, calc(var(--mono-spacing) * 4));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-sm, calc(var(--mono-spacing) * 1.5));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-sm, calc(var(--mono-spacing) * 2));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-sm, var(--mono-text-sm));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-sm, var(--mono-text-xs));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-xs--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-sm, calc(var(--mono-spacing) * 6));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 3.5);\r\n}\r\n\r\n[mono-modal][mono-size=\"lg\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-lg, var(--mono-radius-2xl));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-lg, calc(var(--mono-spacing) * 7));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-lg, calc(var(--mono-spacing) * 7));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-lg, calc(var(--mono-spacing) * 2.5));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-lg, calc(var(--mono-spacing) * 2.5));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-lg, var(--mono-text-base));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-lg, var(--mono-text-sm));\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-lg, calc(var(--mono-spacing) * 8));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 4.5);\r\n}\r\n\r\n[mono-modal][mono-size=\"xl\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-xl, var(--mono-radius-2xl));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-xl, calc(var(--mono-spacing) * 8));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-xl, calc(var(--mono-spacing) * 8));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-xl, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-xl, calc(var(--mono-spacing) * 3));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-xl, var(--mono-text-lg));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-xl, var(--mono-text-base));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-base--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-xl, calc(var(--mono-spacing) * 9));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 5);\r\n}\r\n\r\n[mono-modal][mono-size=\"xxl\"] {\r\n --_mono-modal-radius-preset: var(--mono-modal-radius-xxl, var(--mono-radius-4xl));\r\n --_mono-modal-pad-preset: var(--mono-modal-pad-xxl, calc(var(--mono-spacing) * 9));\r\n --_mono-modal-gap-preset: var(--mono-modal-gap-xxl, calc(var(--mono-spacing) * 9));\r\n --_mono-modal-header-gap-preset: var(--mono-modal-header-gap-xxl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-modal-footer-gap-preset: var(--mono-modal-footer-gap-xxl, calc(var(--mono-spacing) * 3.5));\r\n --_mono-modal-title-font-preset: var(--mono-modal-title-font-xxl, var(--mono-text-xl));\r\n --_mono-modal-body-font-preset: var(--mono-modal-body-font-xxl, var(--mono-text-lg));\r\n --_mono-modal-body-line-height-preset: var(--mono-text-lg--lh);\r\n --_mono-modal-close-size-preset: var(--mono-modal-close-size-xxl, calc(var(--mono-spacing) * 10));\r\n --_mono-modal-close-glyph-preset: calc(var(--mono-spacing) * 5.5);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the role tints the ring and whatever the consumer\r\n turns back on (the head bar, the close hover)\r\n ========================================= */\r\n\r\n[mono-modal][mono-color=\"primary\"] { --_mono-modal-accent-preset: var(--_mono-modal-primary); }\r\n[mono-modal][mono-color=\"secondary\"] { --_mono-modal-accent-preset: var(--_mono-modal-secondary); }\r\n[mono-modal][mono-color=\"success\"] { --_mono-modal-accent-preset: var(--_mono-modal-success); }\r\n[mono-modal][mono-color=\"danger\"] { --_mono-modal-accent-preset: var(--_mono-modal-danger); }\r\n[mono-modal][mono-color=\"warning\"] { --_mono-modal-accent-preset: var(--_mono-modal-warning); }\r\n[mono-modal][mono-color=\"info\"] { --_mono-modal-accent-preset: var(--_mono-modal-info); }\r\n[mono-modal][mono-color=\"teal\"] { --_mono-modal-accent-preset: var(--_mono-modal-teal); }\r\n[mono-modal][mono-color=\"purple\"] { --_mono-modal-accent-preset: var(--_mono-modal-purple); }\r\n[mono-modal][mono-color=\"neutral\"] { --_mono-modal-accent-preset: var(--_mono-modal-neutral); }\r\n[mono-modal][mono-color=\"dark\"] { --_mono-modal-accent-preset: var(--_mono-modal-dark); }\r\n\r\n/* An explicit `color` shows on the panel itself, not only in the ✕ hover: a\r\n thin line of the accent sits ON the ring and a faint halo of it under the\r\n elevation — \"bordered green, glowing green just a little\". Both live in the\r\n glow layer (first in the shadow list, so the translucent foreground/10 ring\r\n does not muddy the line, and a flavour's own `--mono-modal-ring-color` is\r\n left alone). Without `color` the layer is nothing. `--mono-modal-glow`\r\n replaces the whole layer; `--mono-modal-accent-ring` recolours the line. */\r\n[mono-modal][mono-color] {\r\n --_mono-modal-glow: var(--mono-modal-glow,\r\n 0 0 0 var(--_mono-modal-ring-width) var(--mono-modal-accent-ring, color-mix(in oklab, var(--_mono-modal-accent) 35%, var(--_mono-modal-border))),\r\n 0 0 24px -4px color-mix(in oklab, var(--_mono-modal-accent) 45%, transparent));\r\n}\r\n\r\n/* =========================================\r\n Overlay — `::backdrop`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog::backdrop, .alert-dialog::backdrop, .command-dialog::backdrop\r\n — bg-black/10 backdrop-blur-xs duration-100. A real `::backdrop` cannot be\r\n reached from a shadow sheet and cannot stack with this component's own layer\r\n manager, so it is an element — the fill is upstream's, through the mode token. */\r\n:where([mono-modal]) > [mono-overlay] {\r\n /* Viewport units, not `inset: 0` — see the note on the root. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n background: var(--_mono-modal-overlay-bg);\r\n opacity: 0;\r\n pointer-events: none;\r\n\r\n /* The blur is applied only while open; it used to be declared unconditionally with\r\n `opacity: 0` as the only thing hiding it. Hygiene rather than a measured win —\r\n `backdrop-filter` is a paint/composite cost, and the layout+style metrics used to\r\n validate the `content-visibility` change below cannot attribute anything to it\r\n either way. Kept because a filter on a never-shown full-viewport element is work\r\n the browser should never be asked to consider, and the change is free.\r\n\r\n Removal is DELAYED by the fade duration (the same idiom this file already uses\r\n for `visibility` below): drop it immediately and the backdrop snaps sharp while\r\n the scrim is still fading out. `backdrop-filter` is animatable, so a plain\r\n delayed transition does the job — no `allow-discrete` needed. */\r\n backdrop-filter: none;\r\n -webkit-backdrop-filter: none;\r\n transition:\r\n opacity var(--_mono-modal-overlay-duration) var(--mono-ease),\r\n backdrop-filter 0s linear var(--_mono-modal-overlay-duration),\r\n -webkit-backdrop-filter 0s linear var(--_mono-modal-overlay-duration);\r\n}\r\n\r\n[mono-modal][mono-open] > [mono-overlay] {\r\n opacity: 1;\r\n pointer-events: auto;\r\n backdrop-filter: var(--_mono-modal-overlay-backdrop-filter);\r\n -webkit-backdrop-filter: var(--_mono-modal-overlay-backdrop-filter);\r\n transition:\r\n opacity var(--_mono-modal-overlay-duration) var(--mono-ease),\r\n backdrop-filter 0s linear 0s,\r\n -webkit-backdrop-filter 0s linear 0s;\r\n}\r\n\r\n[mono-modal][mono-no-overlay] > [mono-overlay] {\r\n display: none;\r\n}\r\n\r\n/* Stacked modals: when another modal or drawer WITH an overlay is open above\r\n this one, hide this backdrop so dim layers don't compound — the topmost\r\n overlay alone dims everything beneath it. An `overlay=\"false\"` dialog above\r\n does not count, so this one keeps dimming the page. */\r\n[mono-modal][mono-open][mono-has-modal-above] > [mono-overlay] {\r\n opacity: 0;\r\n}\r\n\r\n/* =========================================\r\n Panel — `.dialog > *`\r\n ========================================= */\r\n\r\n/* EXTENSION — the centring box. Upstream centres the panel itself\r\n (`fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2`), which this\r\n component cannot: the drag offset is a `translate` too, and the two would\r\n fight. A flex wrap centres without spending the transform. */\r\n:where([mono-modal]) > [mono-panel-wrap] {\r\n /* Viewport units, not `inset: 0` — see the note on the root. This is the box\r\n the panel centres in, so an inflated one offsets the panel off-screen. */\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 1rem;\r\n pointer-events: none;\r\n z-index: calc(var(--_mono-modal-z) + 1);\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog, .alert-dialog >> > * — fixed z-50\r\n flex max-h-[calc(100%_-_2rem)] w-full flex-col transition-all outline-hidden */\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * — bg-popover text-popover-foreground\r\n ring-foreground/10 max-w-[calc(100%-2rem)] gap-6 rounded-xl p-6 text-sm ring-1\r\n duration-100 sm:max-w-md */\r\n:where([mono-modal] > [mono-panel-wrap]) > [mono-panel] {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--_mono-modal-gap);\r\n width: var(--_mono-modal-width);\r\n max-width: calc(100% - 2rem);\r\n max-height: calc(100vh - 2rem);\r\n max-height: calc(100dvh - 2rem);\r\n padding: var(--_mono-modal-pad);\r\n border-radius: var(--_mono-modal-radius);\r\n background: var(--_mono-modal-bg);\r\n color: var(--_mono-modal-text);\r\n box-shadow:\r\n var(--_mono-modal-glow),\r\n 0 0 0 var(--_mono-modal-ring-width) var(--_mono-modal-ring-color),\r\n var(--_mono-modal-shadow);\r\n overflow: hidden;\r\n outline: none;\r\n pointer-events: auto;\r\n\r\n /* Closed state: invisible (hides shadow halo) + scaled-down, which is\r\n upstream's `@starting-style` pair (`opacity-0` + `scale-95`) written as a\r\n class transition — a `<dialog>`'s discrete open/close is not available to a\r\n component that manages its own layer. The visibility flip is delayed on\r\n close so the scale-out animation plays first. */\r\n opacity: 0;\r\n transform: translate(var(--drag-x, 0px), var(--drag-y, 0px)) scale(0.95);\r\n visibility: hidden;\r\n transition:\r\n opacity var(--_mono-modal-duration) var(--mono-ease),\r\n transform var(--_mono-modal-duration) var(--mono-ease),\r\n visibility 0s linear var(--_mono-modal-duration);\r\n}\r\n\r\n[mono-modal][mono-open] > [mono-panel-wrap] > [mono-panel] {\r\n opacity: 1;\r\n transform: translate(var(--drag-x, 0px), var(--drag-y, 0px)) scale(1);\r\n visibility: visible;\r\n transition:\r\n opacity var(--_mono-modal-duration) var(--mono-ease),\r\n transform var(--_mono-modal-duration) var(--mono-ease),\r\n visibility 0s linear 0s;\r\n}\r\n\r\n/* Draggable: the head is the drag handle; suppress the transform transition while\r\n dragging so the panel tracks the pointer 1:1 and snaps instantly on drop. */\r\n[mono-modal][mono-draggable] > [mono-panel-wrap] > [mono-panel] > [mono-header] {\r\n cursor: move;\r\n touch-action: none;\r\n user-select: none;\r\n}\r\n\r\n[mono-modal][mono-draggable] > [mono-panel-wrap] > [mono-panel] > [mono-header] [mono-close] {\r\n cursor: pointer;\r\n}\r\n\r\n[mono-modal][mono-dragging] > [mono-panel-wrap] > [mono-panel] {\r\n transition: none;\r\n}\r\n\r\n/* =========================================\r\n Head — `> header`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > header — flex flex-col */\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * > header — gap-2\r\n DEVIATION: a ROW. Upstream's header is a column of title + description with the\r\n ✕ absolutely positioned beside it; ours holds the ✕ because the head is the\r\n drag handle. Upstream's column is `[mono-heading]` below, the ✕'s row-mate —\r\n and all a `slot=\"header\"` replaces. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-header] {\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n gap: var(--_mono-modal-header-gap);\r\n flex-shrink: 0;\r\n padding: var(--mono-modal-header-pad, 0);\r\n border-bottom: var(--_mono-modal-header-border-width) solid var(--_mono-modal-header-border);\r\n background: var(--_mono-modal-header-bg);\r\n}\r\n\r\n/* No subtitle: a lone title line sits centred beside the taller ✕ instead of\r\n riding its top edge. With a subtitle the head stays top-aligned. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-header][mono-no-subtitle] {\r\n align-items: center;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * > header > h2, .dialog > * > [data-title]\r\n — leading-none font-medium */\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > header — flex flex-col\r\n (+ vega's gap-2): the title / subtitle column, taking the row beside the ✕. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) > [mono-heading] {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--mono-modal-heading-gap, var(--_mono-modal-header-gap));\r\n}\r\n\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) [mono-title] {\r\n min-width: 0;\r\n font-size: var(--_mono-modal-title-font);\r\n font-weight: var(--_mono-modal-title-weight);\r\n line-height: var(--mono-leading-none, 1);\r\n color: var(--_mono-modal-title-color);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .dialog > * > header > p, .dialog > * > [data-description]\r\n — text-muted-foreground text-sm leading-normal */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) [mono-subtitle] {\r\n min-width: 0;\r\n font-size: var(--_mono-modal-subtitle-font);\r\n line-height: var(--mono-modal-subtitle-line-height, var(--mono-leading-normal));\r\n color: var(--_mono-modal-subtitle-color);\r\n}\r\n\r\n/* Empty regions. The light build omits them; the shadow build always renders\r\n them (its native `<slot>`s must exist to be scanned) and marks them\r\n [mono-empty]. The heading parts are matched as descendants because the shadow\r\n build nests them inside the `header` slot's fallback. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > :is([mono-header], [mono-footer])[mono-empty],\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) > [mono-heading][mono-empty],\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header] > [mono-heading]) :is([mono-title], [mono-subtitle])[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Close — `> button`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > :is(button, form[method='dialog'] > button)\r\n — inline-flex items-center justify-center opacity-70 transition-opacity\r\n hover:opacity-100 focus-visible:outline-hidden disabled:pointer-events-none\r\n DEVIATION: in flow inside the head rather than `absolute top-4 end-4` — see\r\n the header note above. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-header]) [mono-close] {\r\n flex-shrink: 0;\r\n /* stays at the end even when the heading column is empty (hidden) */\r\n margin-inline-start: auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-modal-close-size);\r\n height: var(--_mono-modal-close-size);\r\n padding: 0;\r\n border: none;\r\n border-radius: var(--_mono-modal-close-radius);\r\n background: var(--_mono-modal-close-bg);\r\n color: var(--_mono-modal-close-color);\r\n opacity: var(--_mono-modal-close-opacity);\r\n cursor: pointer;\r\n appearance: none;\r\n transition:\r\n opacity var(--mono-duration) var(--mono-ease),\r\n background-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-modal] [mono-close]:hover {\r\n opacity: var(--_mono-modal-close-hover-opacity);\r\n background: var(--_mono-modal-close-hover-bg);\r\n }\r\n}\r\n\r\n[mono-modal] [mono-close]:focus-visible {\r\n outline: none;\r\n box-shadow: 0 0 0 var(--mono-ring-width)\r\n color-mix(in oklab, var(--ring) var(--mono-ring-alpha), transparent);\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > :is(button, form[method='dialog'] > button) > svg:not([class*='size-'])\r\n — size-4 */\r\n[mono-modal] [mono-close] > :is(svg, span) {\r\n display: block;\r\n width: var(--_mono-modal-close-glyph);\r\n height: var(--_mono-modal-close-glyph);\r\n}\r\n\r\n/* =========================================\r\n Body — `> section`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > section — flex-1\r\n The panel's own `p-6` is the padding; `--mono-modal-body-pad` restores an\r\n inner one for a body that scrolls under a restored head bar. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-body] {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: var(--mono-modal-body-pad, 0);\r\n font-size: var(--_mono-modal-body-font);\r\n line-height: var(--_mono-modal-body-line-height);\r\n color: var(--_mono-modal-text);\r\n}\r\n\r\n/* =========================================\r\n Foot — `> footer`\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/dialog.css .dialog >> > * > footer\r\n — flex flex-col-reverse sm:flex-row sm:justify-end */\r\n/* basecoat@1.0.2 styles/vega.css .alert-dialog > * > footer, .dialog > * > footer — gap-2 */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel]) > [mono-footer] {\r\n display: flex;\r\n flex-direction: column-reverse;\r\n gap: var(--_mono-modal-footer-gap);\r\n flex-shrink: 0;\r\n margin: var(--mono-modal-footer-margin, 0);\r\n padding: var(--mono-modal-footer-pad, 0);\r\n border-top: var(--_mono-modal-footer-border-width) solid var(--_mono-modal-footer-border);\r\n border-end-start-radius: var(--mono-modal-footer-radius, 0);\r\n border-end-end-radius: var(--mono-modal-footer-radius, 0);\r\n background: var(--_mono-modal-footer-bg);\r\n}\r\n\r\n@media (width >= 40rem) {\r\n [mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-footer] {\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: flex-end;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Full screen — both width and height passed as \"100%\"\r\n ========================================= */\r\n\r\n[mono-modal][mono-fullscreen] > [mono-panel-wrap] {\r\n padding: 0;\r\n}\r\n\r\n[mono-modal][mono-fullscreen] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw;\r\n width: 100dvw;\r\n height: 100vh;\r\n height: 100dvh;\r\n max-width: 100vw;\r\n max-width: 100dvw;\r\n max-height: 100vh;\r\n max-height: 100dvh;\r\n border-radius: 0;\r\n}\r\n\r\n/* A closed modal is hidden with `visibility: hidden`, which skips PAINT but not\r\n LAYOUT — so the panel and everything slotted into it kept generating boxes and\r\n being measured even for a modal the user never opened. That cost is paid at mount:\r\n `mono-modal.ts` builds the <body> portal in `createRenderRoot()`, moves the\r\n consumer's children into it, and forces a synchronous `performUpdate()` from\r\n `connectedCallback`. `content-visibility: hidden` drops the closed subtree\r\n entirely, so a heavy modal costs nothing until it is opened.\r\n\r\n Measured (Chromium, ~400-node panels, 10 modal+drawer pairs, 20k DOM nodes):\r\n layout objects: 12281 → 81 (−99.3%); with a single pair, 1237 → 18\r\n mount layout+style: 94.6ms → 14.9ms, and flat in the number of modals\r\n The trade, same as the accordion's: one open+close costs MORE (2.1ms → 8.0ms),\r\n because an opening panel is laid out from scratch instead of incrementally. Worth\r\n it — you mount once and toggle rarely — and `--mono-modal-duration: 0s` claws the\r\n toggle back if a body is heavy enough to notice.\r\n\r\n `allow-discrete` is what makes it safe to animate. Opening flips the property to\r\n `visible` at 0%, so the scale/opacity animation has something to composite;\r\n closing holds it `visible` until 100%, so the panel scales out instead of\r\n vanishing on the first frame.\r\n\r\n Gated behind @supports deliberately: `content-visibility … allow-discrete` inside\r\n the `transition` SHORTHAND is a parse error to a browser without the feature, and\r\n one bad entry drops the WHOLE declaration — which would take the modal's fade and\r\n scale with it. Inside the guard the shorthand is known to parse, so the list is\r\n restated in full. Browsers without support keep exactly the previous behaviour.\r\n\r\n Must stay ABOVE the reduced-motion block below: that block wins on `!important`,\r\n but @supports adds no specificity, so source order is what keeps it winning. */\r\n@supports (transition-behavior: allow-discrete) {\r\n :where([mono-modal] > [mono-panel-wrap]) > [mono-panel] {\r\n content-visibility: hidden;\r\n contain-intrinsic-size: 0;\r\n transition:\r\n opacity var(--_mono-modal-duration) var(--mono-ease),\r\n transform var(--_mono-modal-duration) var(--mono-ease),\r\n visibility 0s linear var(--_mono-modal-duration),\r\n content-visibility var(--_mono-modal-duration) allow-discrete;\r\n }\r\n\r\n [mono-modal][mono-open] > [mono-panel-wrap] > [mono-panel] {\r\n content-visibility: visible;\r\n }\r\n}\r\n\r\n/* Reduced motion */\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-modal] > [mono-overlay],\r\n [mono-modal] > [mono-panel-wrap] > [mono-panel] {\r\n transition: opacity 0.01s linear, visibility 0s linear !important;\r\n transform: none !important;\r\n }\r\n}\r\n\r\n/* =========================================\r\n Auto full-screen (`auto-fullscreen` prop)\r\n =========================================\r\n\r\n Fill the screen at a Tailwind breakpoint and below. The boundaries are\r\n `<breakpoint> - 0.02px` so they match Tailwind's `max-*` variants exactly: at\r\n exactly 640px `sm:` applies, so auto-fullscreen must NOT.\r\n\r\n Two things to know before editing:\r\n\r\n 1. `!important` is required here, unlike `[mono-fullscreen]` above.\r\n `_panelSizeStyle()` writes `width`/`height`/`min-*`/`max-*` as INLINE styles\r\n whenever the consumer sets a sizing prop, and inline beats any selector —\r\n without it `<mono-modal auto-fullscreen width=\"720\">` would stay 720px on a\r\n phone. The `min-*` resets matter too: a `min-width` larger than `width` still\r\n wins.\r\n 2. The five near-identical blocks are unavoidable — a media query cannot be\r\n parameterised by an attribute or a custom property, so each breakpoint needs\r\n its own. Keep them in sync.\r\n*/\r\n\r\n@media (max-width: 639.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"sm\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"sm\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 767.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"md\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"md\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1023.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"lg\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"lg\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1279.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"xl\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"xl\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n@media (max-width: 1535.98px) {\r\n [mono-modal][mono-auto-fullscreen=\"2xl\"] > [mono-panel-wrap] {\r\n padding: 0;\r\n }\r\n\r\n [mono-modal][mono-auto-fullscreen=\"2xl\"] > [mono-panel-wrap] > [mono-panel] {\r\n width: 100vw !important;\r\n width: 100dvw !important;\r\n height: 100vh !important;\r\n height: 100dvh !important;\r\n min-width: 0 !important;\r\n min-height: 0 !important;\r\n max-width: 100vw !important;\r\n max-width: 100dvw !important;\r\n max-height: 100vh !important;\r\n max-height: 100dvh !important;\r\n border-radius: 0;\r\n }\r\n}\r\n\r\n/* ── Programmatic dialog (`controlMonoModal().dialog`) ─────────────────────────\r\n The compact question box the controller builds by code — upstream's\r\n `.alert-dialog`: the text centred, the actions centred under it, and a lighter\r\n scrim, because what the question is about should stay readable behind it.\r\n `mono-dialog` is set through `cssClassName` on the dialog's own modal, so an\r\n ordinary <mono-modal> is untouched. */\r\n[mono-modal][mono-dialog] {\r\n --_mono-modal-overlay-backdrop-filter: var(--mono-modal-overlay-backdrop-filter, none);\r\n --_mono-modal-overlay-bg: var(--mono-modal-overlay-bg,\r\n color-mix(in oklab, black 22%, transparent));\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .alert-dialog >> > * > header — grid\r\n place-items-center text-center sm:place-items-start sm:text-start\r\n DEVIATION: centred at EVERY width. This box is one question and two buttons —\r\n upstream's `sm:` left-align belongs to the icon+title+description layout its\r\n alert dialog builds, which the controller does not produce. */\r\n[mono-modal][mono-dialog] > [mono-panel-wrap] > [mono-panel] > [mono-body] {\r\n text-align: center;\r\n}\r\n\r\n/* basecoat@1.0.2 components/dialog.css .alert-dialog >> &:is([data-size='sm']) > * > footer, > [data-size='sm'] > footer\r\n — grid grid-cols-2. The controller's dialog is that `sm` alert: its actions sit\r\n together under the question rather than trailing to the end. */\r\n[mono-modal][mono-dialog] > [mono-panel-wrap] > [mono-panel] > [mono-footer] {\r\n justify-content: center;\r\n flex-wrap: wrap;\r\n}\r\n\r\n/* The light build re-appends slotted nodes into a `[data-mono-slot]` outlet.\r\n Left inline, that outlet is ONE flex child, so the footer's gap and\r\n justification apply to IT rather than to the buttons inside it — while the\r\n shadow build's `<slot>` is `display: contents` per the UA sheet and the\r\n hand-written markup has no wrapper at all. Dissolving the outlet is what\r\n makes the three agree, and it is what a consumer writing\r\n `<button slot=\"footer\">` twice expects. */\r\n:where([mono-modal] > [mono-panel-wrap] > [mono-panel] > [mono-footer]) > [data-mono-slot] {\r\n display: contents;\r\n}\r\n\r\n/* The captured footer lands in an inline `<span data-mono-slot=\"foot\">` outlet, so\r\n the buttons would otherwise sit in a LINE box — baseline-aligned, a solid button\r\n with an icon a few px lower than an outline one beside it, with line-height air\r\n underneath. The outlet becomes the flex row instead, and the actions wrapper\r\n dissolves into it. */\r\n[mono-modal][mono-dialog] > [mono-panel-wrap] > [mono-panel] > [mono-footer] > [data-mono-slot=\"foot\"] {\r\n display: flex;\r\n flex: 1 1 auto;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--_mono-modal-footer-gap);\r\n line-height: 1;\r\n}\r\n\r\n[mono-modal][mono-dialog] .mono-modal-dialog-actions {\r\n display: contents;\r\n}\r\n";
|
|
842
|
+
|
|
837
843
|
//#endregion
|
|
838
844
|
//#region src/components/modal/mono-modal.ts
|
|
839
|
-
|
|
845
|
+
let MonoModal = class MonoModal extends MonoModalCore(LitElement) {
|
|
840
846
|
constructor(..._args) {
|
|
841
847
|
super(..._args);
|
|
842
848
|
this._portal = null;
|
|
@@ -850,7 +856,7 @@ var MonoModal = class MonoModal extends MonoModalCore(LitElement) {
|
|
|
850
856
|
this._slotFooterAlias = [];
|
|
851
857
|
}
|
|
852
858
|
static {
|
|
853
|
-
this.styles = [unsafeCSS(
|
|
859
|
+
this.styles = [unsafeCSS(modal_css_raw_default)];
|
|
854
860
|
}
|
|
855
861
|
createRenderRoot() {
|
|
856
862
|
if (this._portal) return this._portal;
|
|
@@ -970,7 +976,7 @@ var MonoModal = class MonoModal extends MonoModalCore(LitElement) {
|
|
|
970
976
|
this._hasFootSlotState = this._slotFoot.length > 0;
|
|
971
977
|
this._hasBodySlotState = unslottedSeen && this._slotBody.length > 0;
|
|
972
978
|
for (const node of capturedSlotNodes) if (node.parentNode === this) this.removeChild(node);
|
|
973
|
-
guardHostTextContent(this, new Map([
|
|
979
|
+
guardHostTextContent(this, /* @__PURE__ */ new Map([
|
|
974
980
|
["head", this._slotHead],
|
|
975
981
|
["title", this._slotTitle],
|
|
976
982
|
["subtitle", this._slotSubtitle],
|
|
@@ -992,5 +998,6 @@ var MonoModal = class MonoModal extends MonoModalCore(LitElement) {
|
|
|
992
998
|
}
|
|
993
999
|
};
|
|
994
1000
|
MonoModal = __decorate([customElement("mono-modal")], MonoModal);
|
|
1001
|
+
|
|
995
1002
|
//#endregion
|
|
996
|
-
export { MonoModal, monoModal as controlMonoModal, monoModal };
|
|
1003
|
+
export { MonoModal, monoModal as controlMonoModal, monoModal };
|
package/dist/ui/nav.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { l as monoHostChildNodes } from "../mono-ui-
|
|
2
|
-
import { t as customElement } from "../mono-element-
|
|
3
|
-
import { r as booleanStringConverter, t as __decorate } from "../decorate-
|
|
4
|
-
import { i as guardHostTextContent, s as placeSlotNode } from "../light-slots-
|
|
5
|
-
import { n as cssPart, r as defineCssClassAliases, t as applyCssClass } from "../css-class-
|
|
6
|
-
import { a as validateColorProp, i as isThemeColorToken, n as colorClassToken, r as customColorStyle, t as CUSTOM_COLOR_CLASS } from "../color-
|
|
7
|
-
import { n as releaseLayoutVar, t as claimLayoutVar } from "../layout-var-
|
|
1
|
+
import { l as monoHostChildNodes } from "../mono-ui-BwUc0L6B.js";
|
|
2
|
+
import { t as customElement } from "../mono-element-C7vCschg.js";
|
|
3
|
+
import { r as booleanStringConverter, t as __decorate } from "../decorate-DbYFpi8R.js";
|
|
4
|
+
import { i as guardHostTextContent, s as placeSlotNode } from "../light-slots-DdDdZ6zs.js";
|
|
5
|
+
import { n as cssPart, r as defineCssClassAliases, t as applyCssClass } from "../css-class-B6Tc_MAx.js";
|
|
6
|
+
import { a as validateColorProp, i as isThemeColorToken, n as colorClassToken, r as customColorStyle, t as CUSTOM_COLOR_CLASS } from "../color-CEYYtRX-.js";
|
|
7
|
+
import { n as releaseLayoutVar, t as claimLayoutVar } from "../layout-var-BSBKY49k.js";
|
|
8
8
|
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
9
9
|
import { property, state } from "lit/decorators.js";
|
|
10
|
+
|
|
10
11
|
//#region src/components/nav/nav-utils.ts
|
|
11
|
-
|
|
12
|
+
const DENSITY_HEIGHTS = {
|
|
12
13
|
compact: 48,
|
|
13
14
|
comfortable: 56,
|
|
14
15
|
default: 64
|
|
@@ -44,6 +45,7 @@ function validateNavProps(props) {
|
|
|
44
45
|
].includes(props.variant)) errors.push(`Invalid variant: ${String(props.variant)}`);
|
|
45
46
|
return errors;
|
|
46
47
|
}
|
|
48
|
+
|
|
47
49
|
//#endregion
|
|
48
50
|
//#region src/components/nav/nav-core.ts
|
|
49
51
|
/**
|
|
@@ -57,7 +59,7 @@ function validateNavProps(props) {
|
|
|
57
59
|
* - the slot strategy — `renderSlot()` is a hook each wrapper overrides
|
|
58
60
|
* (light: empty, nodes are captured/placed; shadow: native `<slot>`).
|
|
59
61
|
*/
|
|
60
|
-
|
|
62
|
+
const MonoNavCore = (superClass) => {
|
|
61
63
|
class MonoNavCoreClass extends superClass {
|
|
62
64
|
constructor(...args) {
|
|
63
65
|
super(...args);
|
|
@@ -157,7 +159,8 @@ var MonoNavCore = (superClass) => {
|
|
|
157
159
|
* it has to serialize from THIS getter or it will wipe the colour.
|
|
158
160
|
*/
|
|
159
161
|
get _inlineRootStyle() {
|
|
160
|
-
|
|
162
|
+
const raw = isThemeColorToken(this.color) || this.color === "surface" ? "" : this.color;
|
|
163
|
+
return customColorStyle(raw, "nav");
|
|
161
164
|
}
|
|
162
165
|
/**
|
|
163
166
|
* The Basecoat styling attributes, mirroring the props one for one. A prop
|
|
@@ -220,19 +223,21 @@ var MonoNavCore = (superClass) => {
|
|
|
220
223
|
__decorate([property({ attribute: false })], MonoNavCoreClass.prototype, "cssClassName", void 0);
|
|
221
224
|
return MonoNavCoreClass;
|
|
222
225
|
};
|
|
226
|
+
|
|
223
227
|
//#endregion
|
|
224
|
-
//#region src
|
|
225
|
-
var nav_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-nav — the top app bar.\r\n\r\n Basecoat ships NO nav component. basecoat-css@1.0.2 has dialog, drawer,\r\n sidebar, tabs, dropdown-menu … and no header bar, so this is an EXTENSION:\r\n the structure is mono's own and every VALUE is drawn from the Basecoat token\r\n layer and from `.sidebar nav`, which is the other piece of app chrome and the\r\n one this bar sits beside. Where a rule has an upstream counterpart it is\r\n cited; everything else is ours.\r\n\r\n Styled by ATTRIBUTE, like the rest of the port — and the attributes mirror\r\n the element's props one for one, so hand-written markup reads like the Lit /\r\n Vue tag:\r\n\r\n <mono-nav density=\"compact\" color=\"primary\" variant=\"outlined\" extension>\r\n <header mono-nav mono-density=\"compact\" mono-color=\"primary\"\r\n mono-variant=\"outlined\" mono-has-extension role=\"banner\">\r\n <div mono-inner>\r\n <div mono-start>…</div>\r\n <div mono-center>…</div>\r\n <div mono-end>…</div>\r\n </div>\r\n <div mono-extension>…</div>\r\n </header>\r\n\r\n An absent attribute is the prop's default (`:not([mono-density])` =\r\n comfortable, `:not([mono-color])` = surface, `:not([mono-variant])` =\r\n elevated). `sticky` defaults to TRUE, so it is the NEGATIVE that says\r\n something: `mono-static` opts a bar out. The old classes\r\n (`.mono-nav.comfortable.surface.elevated.sticky`) are still emitted as inert\r\n hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map:\r\n [mono-nav] the <header> — the bar, and the var scope\r\n [mono-density=…] EXTENSION (compact / comfortable / default)\r\n [mono-color=…] EXTENSION (ten palette roles, `surface`, `custom`)\r\n [mono-variant=…] EXTENSION (elevated / flat / outlined)\r\n [mono-inner] the bar row\r\n [mono-start] / [mono-center] / [mono-end] the three regions\r\n [mono-extension] the optional second row\r\n\r\n COLOUR. `surface` (the default) leaves the bar unpainted: it takes\r\n `--sidebar` / `--sidebar-foreground` / `--sidebar-border`, exactly what\r\n upstream gives the sidebar's own chrome. Every other role PAINTS the bar in\r\n that role and inks it in the role's `-foreground` token, the way\r\n `.btn[data-variant='primary']` does — which is what finally retires the\r\n `--*-rgb` triples and the hand-rolled contrast maths the pre-port sheet\r\n needed. A literal `color` (\"#7c3aed\") still arrives inline from the component\r\n (`composables/color.ts`) as `mono-color=\"custom\"`.\r\n\r\n NO GRADIENTS, NO BLUR. The pre-port `surface` bar was a 96%-opaque\r\n `backdrop-filter: blur(12px)` pane and `elevated` was an accent-tinted glow.\r\n Both are gone: the bar is opaque and `elevated` is `--mono-shadow-sm`.\r\n `--mono-nav-backdrop-filter` brings the blur back for a page that wants it.\r\n\r\n DARK MODE comes free — every colour here resolves through a Basecoat token\r\n that already flips, and the alphas are mode-independent. No `.dark` rule can\r\n live in component CSS anyway: a selector crosses neither the custom-element\r\n host nor the shadow boundary.\r\n\r\n FLAVORS set `--mono-nav-{bar-height,pad-x,gap,extension-height,radius,shadow,\r\n font-size,…}` (+ the per-density forms). Every fallback here is the token\r\n layer's own value.\r\n ========================================================================= */\r\n\r\nmono-nav {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the bar\r\n ========================================= */\r\n\r\n[mono-nav] {\r\n /* ── the ten roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-nav-primary: var(--mono-nav-primary, var(--primary));\r\n --_mono-nav-secondary: var(--mono-nav-secondary, var(--secondary-foreground));\r\n --_mono-nav-success: var(--mono-nav-success, var(--success));\r\n --_mono-nav-danger: var(--mono-nav-danger, var(--destructive));\r\n --_mono-nav-warning: var(--mono-nav-warning, var(--warning));\r\n --_mono-nav-info: var(--mono-nav-info, var(--info));\r\n --_mono-nav-teal: var(--mono-nav-teal, var(--teal));\r\n --_mono-nav-purple: var(--mono-nav-purple, var(--purple));\r\n --_mono-nav-neutral: var(--mono-nav-neutral, var(--neutral));\r\n --_mono-nav-dark: var(--mono-nav-dark, var(--dark));\r\n\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-nav-accent: var(--mono-nav-accent, var(--_mono-nav-accent-preset, var(--_mono-nav-primary)));\r\n /* Ink for anything painted IN the accent. Each role points this at its own\r\n `-foreground` token, so a light role (warning, neutral) gets readable ink\r\n without a luminance calculation; a literal colour gets one written inline\r\n by the component. */\r\n --_mono-nav-on-accent: var(--mono-nav-on-accent, var(--_mono-nav-on-accent-preset, var(--primary-foreground)));\r\n\r\n /* ── the unpainted surface ───────────────────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav — bg-sidebar text-sidebar-foreground\r\n `--sidebar` IS `--card` in the token layer, so this is the card's surface\r\n under the name the one piece of upstream chrome actually uses. */\r\n --_mono-nav-surface: var(--mono-nav-surface, var(--sidebar));\r\n /* the `outlined` variant's bottom rule — a nav idiom with no card counterpart,\r\n so it takes the card's ring colour rather than inventing one */\r\n --_mono-nav-border: var(--mono-nav-border, var(--_mono-nav-ring-color));\r\n\r\n --_mono-nav-bg: var(--mono-nav-bg, var(--_mono-nav-bg-preset, var(--_mono-nav-surface)));\r\n --_mono-nav-text: var(--mono-nav-text, var(--_mono-nav-text-preset, var(--sidebar-foreground)));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 …:\r\n upstream's muted chrome ink is the bar ink at 70%, not a separate token. */\r\n --_mono-nav-text-soft: var(--mono-nav-text-soft, var(--_mono-nav-text-soft-preset, color-mix(in oklab, var(--_mono-nav-text) 70%, transparent)));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav [role=separator] — border-sidebar-border mx-2 */\r\n --_mono-nav-border-lite: var(--mono-nav-border-lite, var(--_mono-nav-border-lite-preset, var(--sidebar-border)));\r\n\r\n /* ── comfortable metrics live on the unqualified root ON PURPOSE ───────── */\r\n --_mono-nav-height: var(--mono-nav-bar-height, var(--_mono-nav-height-preset, var(--mono-nav-bar-height-comfortable, calc(var(--mono-spacing) * 14))));\r\n --_mono-nav-extension-height: var(--mono-nav-extension-height, var(--_mono-nav-extension-height-preset, var(--mono-nav-extension-height-comfortable, calc(var(--mono-spacing) * 11))));\r\n /* the card's own gutter — basecoat@1.0.2 styles/vega.css .card > header — gap-1 rounded-t-xl px-6 …\r\n The compact and default steps SCALE from this one, so a flavor moves all\r\n three gutters by setting `--mono-nav-pad-x-comfortable` alone. */\r\n --_mono-nav-pad-unit: var(--mono-nav-pad-x-comfortable, calc(var(--mono-spacing) * 6));\r\n --_mono-nav-pad-x: var(--mono-nav-pad-x, var(--_mono-nav-pad-x-preset, var(--_mono-nav-pad-unit)));\r\n --_mono-nav-gap: var(--mono-nav-gap, var(--_mono-nav-gap-preset, var(--mono-nav-gap-comfortable, calc(var(--mono-spacing) * 3))));\r\n --_mono-nav-font: var(--mono-nav-font, var(--_mono-nav-font-preset, var(--mono-nav-font-comfortable, var(--mono-text-sm))));\r\n --_mono-nav-extension-font: var(--mono-nav-extension-font, var(--_mono-nav-extension-font-preset, var(--mono-nav-extension-font-comfortable, var(--mono-text-sm))));\r\n\r\n /* ── chrome — THE NAV IS A CARD ─────────────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .card — ring-foreground/10 bg-card\r\n text-card-foreground overflow-hidden rounded-xl text-sm shadow-xs ring-1 …\r\n\r\n Basecoat has no nav, but it has a wide rectangular surface with an edge and\r\n an elevation, and that is exactly what a top bar is. So the bar's chrome\r\n tracks `.card` value for value — radius, ring, shadow, gutter and type —\r\n and every flavor's nav delta is its CARD delta (sera square and roomy, maia\r\n 2xl, luma 4xl with shadow-md, mira lg, lyra square and tight, rhea 3xl).\r\n Without this the eight styles all painted the same bar, which was the bug.\r\n\r\n The ring is drawn INSIDE the border box, as card.css draws it: an outside\r\n ring is the first pixel lost to any ancestor that clips, and a bar is\r\n usually flush against one. A full-bleed bar that wants no edge at all sets\r\n `--mono-nav-ring-width: 0`. */\r\n --_mono-nav-radius: var(--mono-nav-radius, var(--mono-radius-xl));\r\n --_mono-nav-ring-color: var(--mono-nav-ring-color, color-mix(in oklab, var(--foreground) 10%, transparent));\r\n --_mono-nav-ring-width: var(--mono-nav-ring-width, var(--mono-border-width));\r\n --_mono-nav-ring: inset 0 0 0 var(--_mono-nav-ring-width) var(--_mono-nav-ring-color);\r\n --_mono-nav-shadow: var(--mono-nav-shadow, var(--mono-shadow-xs));\r\n --_mono-nav-border-width: var(--mono-nav-border-width, var(--mono-border-width));\r\n --_mono-nav-backdrop-filter: var(--mono-nav-backdrop-filter, none);\r\n --_mono-nav-z: var(--mono-nav-z, 30);\r\n\r\n display: block;\r\n width: 100%;\r\n font-family: inherit;\r\n font-size: var(--_mono-nav-font);\r\n color: var(--_mono-nav-text);\r\n background: var(--_mono-nav-bg);\r\n border-radius: var(--_mono-nav-radius);\r\n border-bottom: var(--_mono-nav-border-width) solid transparent;\r\n backdrop-filter: var(--_mono-nav-backdrop-filter);\r\n -webkit-backdrop-filter: var(--_mono-nav-backdrop-filter);\r\n z-index: var(--_mono-nav-z);\r\n\r\n transition:\r\n background-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-nav],\r\n:where([mono-nav]) *,\r\n:where([mono-nav]) *::before,\r\n:where([mono-nav]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Density — EXTENSION: the bar's vertical rhythm\r\n ========================================= */\r\n\r\n[mono-nav][mono-density=\"compact\"] {\r\n --_mono-nav-height-preset: var(--mono-nav-bar-height-compact, calc(var(--mono-spacing) * 12));\r\n --_mono-nav-extension-height-preset: var(--mono-nav-extension-height-compact, calc(var(--mono-spacing) * 9));\r\n --_mono-nav-pad-x-preset: var(--mono-nav-pad-x-compact, calc(var(--_mono-nav-pad-unit) * 0.6667));\r\n --_mono-nav-gap-preset: var(--mono-nav-gap-compact, calc(var(--mono-spacing) * 2));\r\n --_mono-nav-font-preset: var(--mono-nav-font-compact, var(--mono-text-xs));\r\n --_mono-nav-extension-font-preset: var(--mono-nav-extension-font-compact, var(--mono-text-xs));\r\n}\r\n\r\n[mono-nav][mono-density=\"default\"] {\r\n --_mono-nav-height-preset: var(--mono-nav-bar-height-default, calc(var(--mono-spacing) * 16));\r\n --_mono-nav-extension-height-preset: var(--mono-nav-extension-height-default, calc(var(--mono-spacing) * 12));\r\n --_mono-nav-pad-x-preset: var(--mono-nav-pad-x-default, calc(var(--_mono-nav-pad-unit) * 1.3333));\r\n --_mono-nav-gap-preset: var(--mono-nav-gap-default, calc(var(--mono-spacing) * 3.5));\r\n --_mono-nav-font-preset: var(--mono-nav-font-default, var(--mono-text-base));\r\n --_mono-nav-extension-font-preset: var(--mono-nav-extension-font-default, var(--mono-text-sm));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: `surface` is the bar unpainted, every role paints it\r\n ========================================= */\r\n\r\n[mono-nav][mono-color=\"primary\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-primary);\r\n --_mono-nav-on-accent-preset: var(--primary-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"secondary\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-secondary);\r\n --_mono-nav-on-accent-preset: var(--secondary);\r\n}\r\n\r\n[mono-nav][mono-color=\"success\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-success);\r\n --_mono-nav-on-accent-preset: var(--success-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"danger\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-danger);\r\n --_mono-nav-on-accent-preset: var(--destructive-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"warning\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-warning);\r\n --_mono-nav-on-accent-preset: var(--warning-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"info\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-info);\r\n --_mono-nav-on-accent-preset: var(--info-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"teal\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-teal);\r\n --_mono-nav-on-accent-preset: var(--teal-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"purple\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-purple);\r\n --_mono-nav-on-accent-preset: var(--purple-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"neutral\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-neutral);\r\n --_mono-nav-on-accent-preset: var(--neutral-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"dark\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-dark);\r\n --_mono-nav-on-accent-preset: var(--dark-foreground);\r\n}\r\n\r\n/* A painted bar takes the role as its fill and the role's `-foreground` as its\r\n ink — the `.btn[data-variant='primary']` pattern, one level up. Every\r\n foreground on the bar is then mixed FROM that ink rather than from a literal\r\n white, so `warning` and `neutral` stay readable. `custom` is the marker for a\r\n literal `color`; its accent and ink arrive inline from the component. */\r\n[mono-nav]:is(\r\n [mono-color=\"primary\"],\r\n [mono-color=\"secondary\"],\r\n [mono-color=\"success\"],\r\n [mono-color=\"danger\"],\r\n [mono-color=\"warning\"],\r\n [mono-color=\"info\"],\r\n [mono-color=\"teal\"],\r\n [mono-color=\"purple\"],\r\n [mono-color=\"neutral\"],\r\n [mono-color=\"dark\"],\r\n [mono-color=\"custom\"]\r\n ) {\r\n --_mono-nav-bg-preset: var(--_mono-nav-accent);\r\n --_mono-nav-text-preset: var(--_mono-nav-on-accent);\r\n --_mono-nav-text-soft-preset: color-mix(in oklab, var(--_mono-nav-on-accent) 70%, transparent);\r\n --_mono-nav-border-lite-preset: color-mix(in oklab, var(--_mono-nav-on-accent) 20%, transparent);\r\n}\r\n\r\n/* =========================================\r\n Variants\r\n ========================================= */\r\n\r\n/* `elevated` is the default, so the unqualified root carries it — and it is the\r\n card exactly: the inset ring AND the elevation, in that order. */\r\n[mono-nav]:is(:not([mono-variant]), [mono-variant=\"elevated\"]) {\r\n box-shadow: var(--_mono-nav-ring), var(--_mono-nav-shadow);\r\n}\r\n\r\n/* `flat` drops both. */\r\n[mono-nav][mono-variant=\"flat\"] {\r\n box-shadow: none;\r\n border-bottom-color: transparent;\r\n}\r\n\r\n/* `outlined` trades the elevation for a bottom rule — the nav idiom, and the\r\n one piece of its chrome the card has no counterpart for. The ring stays, so\r\n an outlined bar still reads as the same surface. */\r\n[mono-nav][mono-variant=\"outlined\"] {\r\n box-shadow: var(--_mono-nav-ring);\r\n border-bottom-color: var(--_mono-nav-border);\r\n}\r\n\r\n/* =========================================\r\n Sticky\r\n -----------------------------------------------------------------------------\r\n `sticky` is ON by default, so the attribute that says something is the\r\n negative. In the light build the host `<mono-nav>` is what sits in the parent\r\n layout flow and the inner `<header>` only fills it, so the host is what has to\r\n stick — a sticky inner header has no scroll distance inside a host that\r\n shrink-wraps it (which is also why leaving the rule on both is harmless). In\r\n hand-written markup the `<header>` IS the element in flow, and the same rule\r\n does the work.\r\n\r\n The host reflects the prop (`converter` empty-attr === true, missing ===\r\n false), so `[sticky]` is the right selector there.\r\n ========================================= */\r\n\r\nmono-nav[sticky],\r\n[mono-nav]:not([mono-static]) {\r\n position: sticky;\r\n top: 0;\r\n z-index: var(--mono-nav-z, 30);\r\n}\r\n\r\n[mono-nav][mono-static] {\r\n position: static;\r\n}\r\n\r\n/* =========================================\r\n The bar row\r\n ========================================= */\r\n\r\n:where([mono-nav]) > [mono-inner] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n padding: 0 var(--_mono-nav-pad-x);\r\n height: var(--_mono-nav-height);\r\n min-height: var(--_mono-nav-height);\r\n width: 100%;\r\n}\r\n\r\n:where([mono-nav] > [mono-inner]) > [mono-start] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n flex-shrink: 0;\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-nav] > [mono-inner]) > [mono-center] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n/* `margin-left: auto` keeps the end region at the trailing edge even when the\r\n center is empty and collapsed. */\r\n:where([mono-nav] > [mono-inner]) > [mono-end] {\r\n display: flex;\r\n align-items: center;\r\n gap: calc(var(--_mono-nav-gap) * 0.7);\r\n flex-shrink: 0;\r\n margin-left: auto;\r\n}\r\n\r\n/* An empty region is NOT hidden.\r\n\r\n `:empty` cannot see across a shadow boundary: in the shadow build each region\r\n holds a <slot> ELEMENT, so the region is never `:empty` whether or not anything\r\n is assigned to it, and a <slot>'s own children are its fallback content rather\r\n than the assigned nodes — there is no selector for \"nothing was slotted here\".\r\n The light build WAS `:empty` in that case, so a bar with no center content laid\r\n out with one flex gap in the light build and two in the shadow one: 12px apart\r\n at max-content width, which is what a shrink-to-fit demo shows.\r\n\r\n Leaving every region in place is what makes the two builds agree. It costs\r\n nothing at a normal full-width bar — the center is `flex: 1` and eats the slack\r\n either way, and the end region is pinned by its own `margin-left: auto`. */\r\n\r\n/* =========================================\r\n Extension row\r\n ========================================= */\r\n\r\n:where([mono-nav]) > [mono-extension] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n padding: 0 var(--_mono-nav-pad-x);\r\n min-height: var(--_mono-nav-extension-height);\r\n border-top: var(--_mono-nav-border-width) solid var(--_mono-nav-border-lite);\r\n font-size: var(--_mono-nav-extension-font);\r\n}\r\n\r\n/* The element always renders the row so its slot target is stable; the root\r\n attribute is what turns it on. Hand-written markup that simply omits the row\r\n needs neither. */\r\n[mono-nav]:not([mono-has-extension]) > [mono-extension] {\r\n display: none;\r\n}\r\n\r\n/* A slotted control inherits the bar's face, not the UA's. */\r\n[mono-nav] :is(button, input, select, textarea) {\r\n font-family: inherit;\r\n}\r\n\r\n/* =========================================\r\n Responsive — a wide bar steps down a density on a narrow screen\r\n ========================================= */\r\n\r\n@media (max-width: 639.98px) {\r\n [mono-nav][mono-density=\"default\"] {\r\n --_mono-nav-height-preset: calc(var(--mono-spacing) * 14);\r\n --_mono-nav-pad-x-preset: calc(var(--mono-spacing) * 4);\r\n --_mono-nav-gap-preset: calc(var(--mono-spacing) * 2.5);\r\n }\r\n\r\n [mono-nav]:not([mono-density]) {\r\n --_mono-nav-height-preset: calc(var(--mono-spacing) * 12);\r\n --_mono-nav-pad-x-preset: calc(var(--mono-spacing) * 3.5);\r\n --_mono-nav-gap-preset: calc(var(--mono-spacing) * 2);\r\n }\r\n}\r\n\r\n/* =========================================\r\n Layout helper\r\n -----------------------------------------------------------------------------\r\n Consumers wrap their main content in this to pad around the nav (and the\r\n sidebar). The vars are written on `:root` by mono-nav and mono-sidebar\r\n themselves. Kept as a CLASS — it is a consumer-applied utility, not a part of\r\n this component — with the attribute form accepted for markup that would\r\n rather stay attributes all the way down.\r\n ========================================= */\r\n\r\n.mono-layout-content,\r\n[mono-layout-content] {\r\n padding-top: var(--mono-nav-height, 0);\r\n padding-left: var(--mono-sidebar-left-width, 0);\r\n padding-right: var(--mono-sidebar-right-width, 0);\r\n min-height: 100vh;\r\n min-height: 100dvh;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Reduced motion\r\n ========================================= */\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-nav] {\r\n transition: none;\r\n }\r\n}\r\n";
|
|
228
|
+
//#region \0raw:C:\Users\VCT-DEV\Desktop\libs\packages\helper\src\components\nav\nav.css?raw.js
|
|
229
|
+
var nav_css_raw_default = "/* @unocss-include */\r\n\r\n/* =========================================================================\r\n mono-nav — the top app bar.\r\n\r\n Basecoat ships NO nav component. basecoat-css@1.0.2 has dialog, drawer,\r\n sidebar, tabs, dropdown-menu … and no header bar, so this is an EXTENSION:\r\n the structure is mono's own and every VALUE is drawn from the Basecoat token\r\n layer and from `.sidebar nav`, which is the other piece of app chrome and the\r\n one this bar sits beside. Where a rule has an upstream counterpart it is\r\n cited; everything else is ours.\r\n\r\n Styled by ATTRIBUTE, like the rest of the port — and the attributes mirror\r\n the element's props one for one, so hand-written markup reads like the Lit /\r\n Vue tag:\r\n\r\n <mono-nav density=\"compact\" color=\"primary\" variant=\"outlined\" extension>\r\n <header mono-nav mono-density=\"compact\" mono-color=\"primary\"\r\n mono-variant=\"outlined\" mono-has-extension role=\"banner\">\r\n <div mono-inner>\r\n <div mono-start>…</div>\r\n <div mono-center>…</div>\r\n <div mono-end>…</div>\r\n </div>\r\n <div mono-extension>…</div>\r\n </header>\r\n\r\n An absent attribute is the prop's default (`:not([mono-density])` =\r\n comfortable, `:not([mono-color])` = surface, `:not([mono-variant])` =\r\n elevated). `sticky` defaults to TRUE, so it is the NEGATIVE that says\r\n something: `mono-static` opts a bar out. The old classes\r\n (`.mono-nav.comfortable.surface.elevated.sticky`) are still emitted as inert\r\n hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map:\r\n [mono-nav] the <header> — the bar, and the var scope\r\n [mono-density=…] EXTENSION (compact / comfortable / default)\r\n [mono-color=…] EXTENSION (ten palette roles, `surface`, `custom`)\r\n [mono-variant=…] EXTENSION (elevated / flat / outlined)\r\n [mono-inner] the bar row\r\n [mono-start] / [mono-center] / [mono-end] the three regions\r\n [mono-extension] the optional second row\r\n\r\n COLOUR. `surface` (the default) leaves the bar unpainted: it takes\r\n `--sidebar` / `--sidebar-foreground` / `--sidebar-border`, exactly what\r\n upstream gives the sidebar's own chrome. Every other role PAINTS the bar in\r\n that role and inks it in the role's `-foreground` token, the way\r\n `.btn[data-variant='primary']` does — which is what finally retires the\r\n `--*-rgb` triples and the hand-rolled contrast maths the pre-port sheet\r\n needed. A literal `color` (\"#7c3aed\") still arrives inline from the component\r\n (`composables/color.ts`) as `mono-color=\"custom\"`.\r\n\r\n NO GRADIENTS, NO BLUR. The pre-port `surface` bar was a 96%-opaque\r\n `backdrop-filter: blur(12px)` pane and `elevated` was an accent-tinted glow.\r\n Both are gone: the bar is opaque and `elevated` is `--mono-shadow-sm`.\r\n `--mono-nav-backdrop-filter` brings the blur back for a page that wants it.\r\n\r\n DARK MODE comes free — every colour here resolves through a Basecoat token\r\n that already flips, and the alphas are mode-independent. No `.dark` rule can\r\n live in component CSS anyway: a selector crosses neither the custom-element\r\n host nor the shadow boundary.\r\n\r\n FLAVORS set `--mono-nav-{bar-height,pad-x,gap,extension-height,radius,shadow,\r\n font-size,…}` (+ the per-density forms). Every fallback here is the token\r\n layer's own value.\r\n ========================================================================= */\r\n\r\nmono-nav {\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n Root — the bar\r\n ========================================= */\r\n\r\n[mono-nav] {\r\n /* ── the ten roles, each a public knob over a Basecoat token ───────────── */\r\n --_mono-nav-primary: var(--mono-nav-primary, var(--primary));\r\n --_mono-nav-secondary: var(--mono-nav-secondary, var(--secondary-foreground));\r\n --_mono-nav-success: var(--mono-nav-success, var(--success));\r\n --_mono-nav-danger: var(--mono-nav-danger, var(--destructive));\r\n --_mono-nav-warning: var(--mono-nav-warning, var(--warning));\r\n --_mono-nav-info: var(--mono-nav-info, var(--info));\r\n --_mono-nav-teal: var(--mono-nav-teal, var(--teal));\r\n --_mono-nav-purple: var(--mono-nav-purple, var(--purple));\r\n --_mono-nav-neutral: var(--mono-nav-neutral, var(--neutral));\r\n --_mono-nav-dark: var(--mono-nav-dark, var(--dark));\r\n\r\n /* the colour in play — `primary` unless a [mono-color] rule re-points it */\r\n --_mono-nav-accent: var(--mono-nav-accent, var(--_mono-nav-accent-preset, var(--_mono-nav-primary)));\r\n /* Ink for anything painted IN the accent. Each role points this at its own\r\n `-foreground` token, so a light role (warning, neutral) gets readable ink\r\n without a luminance calculation; a literal colour gets one written inline\r\n by the component. */\r\n --_mono-nav-on-accent: var(--mono-nav-on-accent, var(--_mono-nav-on-accent-preset, var(--primary-foreground)));\r\n\r\n /* ── the unpainted surface ───────────────────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .sidebar nav — bg-sidebar text-sidebar-foreground\r\n `--sidebar` IS `--card` in the token layer, so this is the card's surface\r\n under the name the one piece of upstream chrome actually uses. */\r\n --_mono-nav-surface: var(--mono-nav-surface, var(--sidebar));\r\n /* the `outlined` variant's bottom rule — a nav idiom with no card counterpart,\r\n so it takes the card's ring colour rather than inventing one */\r\n --_mono-nav-border: var(--mono-nav-border, var(--_mono-nav-ring-color));\r\n\r\n --_mono-nav-bg: var(--mono-nav-bg, var(--_mono-nav-bg-preset, var(--_mono-nav-surface)));\r\n --_mono-nav-text: var(--mono-nav-text, var(--_mono-nav-text-preset, var(--sidebar-foreground)));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav h3 — text-sidebar-foreground/70 …:\r\n upstream's muted chrome ink is the bar ink at 70%, not a separate token. */\r\n --_mono-nav-text-soft: var(--mono-nav-text-soft, var(--_mono-nav-text-soft-preset, color-mix(in oklab, var(--_mono-nav-text) 70%, transparent)));\r\n /* basecoat@1.0.2 styles/vega.css .sidebar nav [role=separator] — border-sidebar-border mx-2 */\r\n --_mono-nav-border-lite: var(--mono-nav-border-lite, var(--_mono-nav-border-lite-preset, var(--sidebar-border)));\r\n\r\n /* ── comfortable metrics live on the unqualified root ON PURPOSE ───────── */\r\n --_mono-nav-height: var(--mono-nav-bar-height, var(--_mono-nav-height-preset, var(--mono-nav-bar-height-comfortable, calc(var(--mono-spacing) * 14))));\r\n --_mono-nav-extension-height: var(--mono-nav-extension-height, var(--_mono-nav-extension-height-preset, var(--mono-nav-extension-height-comfortable, calc(var(--mono-spacing) * 11))));\r\n /* the card's own gutter — basecoat@1.0.2 styles/vega.css .card > header — gap-1 rounded-t-xl px-6 …\r\n The compact and default steps SCALE from this one, so a flavor moves all\r\n three gutters by setting `--mono-nav-pad-x-comfortable` alone. */\r\n --_mono-nav-pad-unit: var(--mono-nav-pad-x-comfortable, calc(var(--mono-spacing) * 6));\r\n --_mono-nav-pad-x: var(--mono-nav-pad-x, var(--_mono-nav-pad-x-preset, var(--_mono-nav-pad-unit)));\r\n --_mono-nav-gap: var(--mono-nav-gap, var(--_mono-nav-gap-preset, var(--mono-nav-gap-comfortable, calc(var(--mono-spacing) * 3))));\r\n --_mono-nav-font: var(--mono-nav-font, var(--_mono-nav-font-preset, var(--mono-nav-font-comfortable, var(--mono-text-sm))));\r\n --_mono-nav-extension-font: var(--mono-nav-extension-font, var(--_mono-nav-extension-font-preset, var(--mono-nav-extension-font-comfortable, var(--mono-text-sm))));\r\n\r\n /* ── chrome — THE NAV IS A CARD ─────────────────────────────────────────\r\n basecoat@1.0.2 styles/vega.css .card — ring-foreground/10 bg-card\r\n text-card-foreground overflow-hidden rounded-xl text-sm shadow-xs ring-1 …\r\n\r\n Basecoat has no nav, but it has a wide rectangular surface with an edge and\r\n an elevation, and that is exactly what a top bar is. So the bar's chrome\r\n tracks `.card` value for value — radius, ring, shadow, gutter and type —\r\n and every flavor's nav delta is its CARD delta (sera square and roomy, maia\r\n 2xl, luma 4xl with shadow-md, mira lg, lyra square and tight, rhea 3xl).\r\n Without this the eight styles all painted the same bar, which was the bug.\r\n\r\n The ring is drawn INSIDE the border box, as card.css draws it: an outside\r\n ring is the first pixel lost to any ancestor that clips, and a bar is\r\n usually flush against one. A full-bleed bar that wants no edge at all sets\r\n `--mono-nav-ring-width: 0`. */\r\n --_mono-nav-radius: var(--mono-nav-radius, var(--mono-radius-xl));\r\n --_mono-nav-ring-color: var(--mono-nav-ring-color, color-mix(in oklab, var(--foreground) 10%, transparent));\r\n --_mono-nav-ring-width: var(--mono-nav-ring-width, var(--mono-border-width));\r\n --_mono-nav-ring: inset 0 0 0 var(--_mono-nav-ring-width) var(--_mono-nav-ring-color);\r\n --_mono-nav-shadow: var(--mono-nav-shadow, var(--mono-shadow-xs));\r\n --_mono-nav-border-width: var(--mono-nav-border-width, var(--mono-border-width));\r\n --_mono-nav-backdrop-filter: var(--mono-nav-backdrop-filter, none);\r\n --_mono-nav-z: var(--mono-nav-z, 30);\r\n\r\n display: block;\r\n width: 100%;\r\n font-family: inherit;\r\n font-size: var(--_mono-nav-font);\r\n color: var(--_mono-nav-text);\r\n background: var(--_mono-nav-bg);\r\n border-radius: var(--_mono-nav-radius);\r\n border-bottom: var(--_mono-nav-border-width) solid transparent;\r\n backdrop-filter: var(--_mono-nav-backdrop-filter);\r\n -webkit-backdrop-filter: var(--_mono-nav-backdrop-filter);\r\n z-index: var(--_mono-nav-z);\r\n\r\n transition:\r\n background-color var(--mono-duration) var(--mono-ease),\r\n box-shadow var(--mono-duration) var(--mono-ease),\r\n border-color var(--mono-duration) var(--mono-ease);\r\n}\r\n\r\n[mono-nav],\r\n:where([mono-nav]) *,\r\n:where([mono-nav]) *::before,\r\n:where([mono-nav]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Density — EXTENSION: the bar's vertical rhythm\r\n ========================================= */\r\n\r\n[mono-nav][mono-density=\"compact\"] {\r\n --_mono-nav-height-preset: var(--mono-nav-bar-height-compact, calc(var(--mono-spacing) * 12));\r\n --_mono-nav-extension-height-preset: var(--mono-nav-extension-height-compact, calc(var(--mono-spacing) * 9));\r\n --_mono-nav-pad-x-preset: var(--mono-nav-pad-x-compact, calc(var(--_mono-nav-pad-unit) * 0.6667));\r\n --_mono-nav-gap-preset: var(--mono-nav-gap-compact, calc(var(--mono-spacing) * 2));\r\n --_mono-nav-font-preset: var(--mono-nav-font-compact, var(--mono-text-xs));\r\n --_mono-nav-extension-font-preset: var(--mono-nav-extension-font-compact, var(--mono-text-xs));\r\n}\r\n\r\n[mono-nav][mono-density=\"default\"] {\r\n --_mono-nav-height-preset: var(--mono-nav-bar-height-default, calc(var(--mono-spacing) * 16));\r\n --_mono-nav-extension-height-preset: var(--mono-nav-extension-height-default, calc(var(--mono-spacing) * 12));\r\n --_mono-nav-pad-x-preset: var(--mono-nav-pad-x-default, calc(var(--_mono-nav-pad-unit) * 1.3333));\r\n --_mono-nav-gap-preset: var(--mono-nav-gap-default, calc(var(--mono-spacing) * 3.5));\r\n --_mono-nav-font-preset: var(--mono-nav-font-default, var(--mono-text-base));\r\n --_mono-nav-extension-font-preset: var(--mono-nav-extension-font-default, var(--mono-text-sm));\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: `surface` is the bar unpainted, every role paints it\r\n ========================================= */\r\n\r\n[mono-nav][mono-color=\"primary\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-primary);\r\n --_mono-nav-on-accent-preset: var(--primary-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"secondary\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-secondary);\r\n --_mono-nav-on-accent-preset: var(--secondary);\r\n}\r\n\r\n[mono-nav][mono-color=\"success\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-success);\r\n --_mono-nav-on-accent-preset: var(--success-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"danger\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-danger);\r\n --_mono-nav-on-accent-preset: var(--destructive-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"warning\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-warning);\r\n --_mono-nav-on-accent-preset: var(--warning-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"info\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-info);\r\n --_mono-nav-on-accent-preset: var(--info-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"teal\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-teal);\r\n --_mono-nav-on-accent-preset: var(--teal-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"purple\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-purple);\r\n --_mono-nav-on-accent-preset: var(--purple-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"neutral\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-neutral);\r\n --_mono-nav-on-accent-preset: var(--neutral-foreground);\r\n}\r\n\r\n[mono-nav][mono-color=\"dark\"] {\r\n --_mono-nav-accent-preset: var(--_mono-nav-dark);\r\n --_mono-nav-on-accent-preset: var(--dark-foreground);\r\n}\r\n\r\n/* A painted bar takes the role as its fill and the role's `-foreground` as its\r\n ink — the `.btn[data-variant='primary']` pattern, one level up. Every\r\n foreground on the bar is then mixed FROM that ink rather than from a literal\r\n white, so `warning` and `neutral` stay readable. `custom` is the marker for a\r\n literal `color`; its accent and ink arrive inline from the component. */\r\n[mono-nav]:is(\r\n [mono-color=\"primary\"],\r\n [mono-color=\"secondary\"],\r\n [mono-color=\"success\"],\r\n [mono-color=\"danger\"],\r\n [mono-color=\"warning\"],\r\n [mono-color=\"info\"],\r\n [mono-color=\"teal\"],\r\n [mono-color=\"purple\"],\r\n [mono-color=\"neutral\"],\r\n [mono-color=\"dark\"],\r\n [mono-color=\"custom\"]\r\n ) {\r\n --_mono-nav-bg-preset: var(--_mono-nav-accent);\r\n --_mono-nav-text-preset: var(--_mono-nav-on-accent);\r\n --_mono-nav-text-soft-preset: color-mix(in oklab, var(--_mono-nav-on-accent) 70%, transparent);\r\n --_mono-nav-border-lite-preset: color-mix(in oklab, var(--_mono-nav-on-accent) 20%, transparent);\r\n}\r\n\r\n/* =========================================\r\n Variants\r\n ========================================= */\r\n\r\n/* `elevated` is the default, so the unqualified root carries it — and it is the\r\n card exactly: the inset ring AND the elevation, in that order. */\r\n[mono-nav]:is(:not([mono-variant]), [mono-variant=\"elevated\"]) {\r\n box-shadow: var(--_mono-nav-ring), var(--_mono-nav-shadow);\r\n}\r\n\r\n/* `flat` drops both. */\r\n[mono-nav][mono-variant=\"flat\"] {\r\n box-shadow: none;\r\n border-bottom-color: transparent;\r\n}\r\n\r\n/* `outlined` trades the elevation for a bottom rule — the nav idiom, and the\r\n one piece of its chrome the card has no counterpart for. The ring stays, so\r\n an outlined bar still reads as the same surface. */\r\n[mono-nav][mono-variant=\"outlined\"] {\r\n box-shadow: var(--_mono-nav-ring);\r\n border-bottom-color: var(--_mono-nav-border);\r\n}\r\n\r\n/* =========================================\r\n Sticky\r\n -----------------------------------------------------------------------------\r\n `sticky` is ON by default, so the attribute that says something is the\r\n negative. In the light build the host `<mono-nav>` is what sits in the parent\r\n layout flow and the inner `<header>` only fills it, so the host is what has to\r\n stick — a sticky inner header has no scroll distance inside a host that\r\n shrink-wraps it (which is also why leaving the rule on both is harmless). In\r\n hand-written markup the `<header>` IS the element in flow, and the same rule\r\n does the work.\r\n\r\n The host reflects the prop (`converter` empty-attr === true, missing ===\r\n false), so `[sticky]` is the right selector there.\r\n ========================================= */\r\n\r\nmono-nav[sticky],\r\n[mono-nav]:not([mono-static]) {\r\n position: sticky;\r\n top: 0;\r\n z-index: var(--mono-nav-z, 30);\r\n}\r\n\r\n[mono-nav][mono-static] {\r\n position: static;\r\n}\r\n\r\n/* =========================================\r\n The bar row\r\n ========================================= */\r\n\r\n:where([mono-nav]) > [mono-inner] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n padding: 0 var(--_mono-nav-pad-x);\r\n height: var(--_mono-nav-height);\r\n min-height: var(--_mono-nav-height);\r\n width: 100%;\r\n}\r\n\r\n:where([mono-nav] > [mono-inner]) > [mono-start] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n flex-shrink: 0;\r\n min-width: 0;\r\n}\r\n\r\n:where([mono-nav] > [mono-inner]) > [mono-center] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n/* `margin-left: auto` keeps the end region at the trailing edge even when the\r\n center is empty and collapsed. */\r\n:where([mono-nav] > [mono-inner]) > [mono-end] {\r\n display: flex;\r\n align-items: center;\r\n gap: calc(var(--_mono-nav-gap) * 0.7);\r\n flex-shrink: 0;\r\n margin-left: auto;\r\n}\r\n\r\n/* An empty region is NOT hidden.\r\n\r\n `:empty` cannot see across a shadow boundary: in the shadow build each region\r\n holds a <slot> ELEMENT, so the region is never `:empty` whether or not anything\r\n is assigned to it, and a <slot>'s own children are its fallback content rather\r\n than the assigned nodes — there is no selector for \"nothing was slotted here\".\r\n The light build WAS `:empty` in that case, so a bar with no center content laid\r\n out with one flex gap in the light build and two in the shadow one: 12px apart\r\n at max-content width, which is what a shrink-to-fit demo shows.\r\n\r\n Leaving every region in place is what makes the two builds agree. It costs\r\n nothing at a normal full-width bar — the center is `flex: 1` and eats the slack\r\n either way, and the end region is pinned by its own `margin-left: auto`. */\r\n\r\n/* =========================================\r\n Extension row\r\n ========================================= */\r\n\r\n:where([mono-nav]) > [mono-extension] {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--_mono-nav-gap);\r\n padding: 0 var(--_mono-nav-pad-x);\r\n min-height: var(--_mono-nav-extension-height);\r\n border-top: var(--_mono-nav-border-width) solid var(--_mono-nav-border-lite);\r\n font-size: var(--_mono-nav-extension-font);\r\n}\r\n\r\n/* The element always renders the row so its slot target is stable; the root\r\n attribute is what turns it on. Hand-written markup that simply omits the row\r\n needs neither. */\r\n[mono-nav]:not([mono-has-extension]) > [mono-extension] {\r\n display: none;\r\n}\r\n\r\n/* A slotted control inherits the bar's face, not the UA's. */\r\n[mono-nav] :is(button, input, select, textarea) {\r\n font-family: inherit;\r\n}\r\n\r\n/* =========================================\r\n Responsive — a wide bar steps down a density on a narrow screen\r\n ========================================= */\r\n\r\n@media (max-width: 639.98px) {\r\n [mono-nav][mono-density=\"default\"] {\r\n --_mono-nav-height-preset: calc(var(--mono-spacing) * 14);\r\n --_mono-nav-pad-x-preset: calc(var(--mono-spacing) * 4);\r\n --_mono-nav-gap-preset: calc(var(--mono-spacing) * 2.5);\r\n }\r\n\r\n [mono-nav]:not([mono-density]) {\r\n --_mono-nav-height-preset: calc(var(--mono-spacing) * 12);\r\n --_mono-nav-pad-x-preset: calc(var(--mono-spacing) * 3.5);\r\n --_mono-nav-gap-preset: calc(var(--mono-spacing) * 2);\r\n }\r\n}\r\n\r\n/* =========================================\r\n Layout helper\r\n -----------------------------------------------------------------------------\r\n Consumers wrap their main content in this to pad around the nav (and the\r\n sidebar). The vars are written on `:root` by mono-nav and mono-sidebar\r\n themselves. Kept as a CLASS — it is a consumer-applied utility, not a part of\r\n this component — with the attribute form accepted for markup that would\r\n rather stay attributes all the way down.\r\n ========================================= */\r\n\r\n.mono-layout-content,\r\n[mono-layout-content] {\r\n padding-top: var(--mono-nav-height, 0);\r\n padding-left: var(--mono-sidebar-left-width, 0);\r\n padding-right: var(--mono-sidebar-right-width, 0);\r\n min-height: 100vh;\r\n min-height: 100dvh;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* =========================================\r\n Reduced motion\r\n ========================================= */\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-nav] {\r\n transition: none;\r\n }\r\n}\r\n";
|
|
230
|
+
|
|
226
231
|
//#endregion
|
|
227
232
|
//#region src/components/nav/mono-nav.ts
|
|
228
|
-
|
|
233
|
+
let MonoNav = class MonoNav extends MonoNavCore(LitElement) {
|
|
229
234
|
constructor(..._args) {
|
|
230
235
|
super(..._args);
|
|
231
236
|
this._slotsCaptured = false;
|
|
232
237
|
this._slotNodes = /* @__PURE__ */ new Map();
|
|
233
238
|
}
|
|
234
239
|
static {
|
|
235
|
-
this.styles = [unsafeCSS(
|
|
240
|
+
this.styles = [unsafeCSS(nav_css_raw_default)];
|
|
236
241
|
}
|
|
237
242
|
createRenderRoot() {
|
|
238
243
|
return this;
|
|
@@ -291,5 +296,6 @@ var MonoNav = class MonoNav extends MonoNavCore(LitElement) {
|
|
|
291
296
|
};
|
|
292
297
|
__decorate([state()], MonoNav.prototype, "_slotsCaptured", void 0);
|
|
293
298
|
MonoNav = __decorate([customElement("mono-nav")], MonoNav);
|
|
299
|
+
|
|
294
300
|
//#endregion
|
|
295
|
-
export { MonoNav, generateNavRootClasses, getNavHeight, validateNavProps };
|
|
301
|
+
export { MonoNav, generateNavRootClasses, getNavHeight, validateNavProps };
|