@mono-lit/helper 0.0.0-stage → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +55 -0
- package/README.md +35 -3
- package/dist/breakpoints-CAbhDUht.js +84 -0
- package/dist/checkbox-Cqpie9Ap.js +4 -0
- package/dist/chip-DBUUa2eB.js +4 -0
- package/dist/chip-limits-BMoO31JM.js +213 -0
- package/dist/chip-strip-Cw3gyz0q.js +213 -0
- package/dist/color-DHYrfXsX.js +253 -0
- package/dist/css-class-BRKRzHx-.js +60 -0
- package/dist/css-size-DhHSVZJK.js +37 -0
- package/dist/data/theme/presets.json.d.ts +140 -0
- package/dist/data-source-controller-B_rgHCjw.js +241 -0
- package/dist/data-source-controller-Dbb4fd8I.js +241 -0
- package/dist/data-source-options-CP-X62Pa.js +535 -0
- package/dist/data-source-options-Jqj7LU3Z.js +537 -0
- package/dist/data-source-read-B4DGp6UQ.js +216 -0
- package/dist/data-source-read-DL88aH8t.js +217 -0
- package/dist/decorate-DEXtNagw.js +141 -0
- package/dist/element-props-CLB6yvbm.js +114 -0
- package/dist/esm-Ptok4SQZ.js +2026 -0
- package/dist/excel-CY6zGkcx.js +608 -0
- package/dist/excel-DopRbEMK.js +608 -0
- package/dist/export-BiGVyxt6.js +2302 -0
- package/dist/export.d.ts +1 -0
- package/dist/export.js +2302 -0
- package/dist/field-icons-DELrSdqJ.js +86 -0
- package/dist/field-path-C92eGLg3.js +251 -0
- package/dist/filter-builder-Bke3qOgJ.js +205 -0
- package/dist/filter-builder-CE4zE0V5.js +205 -0
- package/dist/filter-eval-DIfU2EAn.js +173 -0
- package/dist/filter-odata-C1vSGZaY.js +591 -0
- package/dist/form-control-core-B8d7k6vk.js +223 -0
- package/dist/form-control-core-eeRr0zLU.js +223 -0
- package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
- package/dist/icon-CJkTlmTb.js +55 -0
- package/dist/icon-dVhYJUIH.js +17 -0
- package/dist/import-BgJdkwBI.js +606 -0
- package/dist/import.d.ts +1 -0
- package/dist/import.js +606 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +16 -0
- package/dist/index.node-BIqEGehH.js +396 -0
- package/dist/index.node.d.ts +1 -0
- package/dist/index.node.js +16 -0
- package/dist/input-zGOULADt.js +4 -0
- package/dist/layout-var-CZnzMC0s.js +73 -0
- package/dist/light-slots-BVJwyg_2.js +244 -0
- package/dist/light-slots-DW1WgfgT.js +254 -0
- package/dist/markdown-DfqrfOJN.js +20146 -0
- package/dist/mono-button-simcTQdW.js +873 -0
- package/dist/mono-button.shadow-B_rKOY9N.js +784 -0
- package/dist/mono-data-chart-CEv29_NS.js +779 -0
- package/dist/mono-data-dropdown-Wnoke6zO.js +357 -0
- package/dist/mono-data-grid-CjkEqxgE.js +3913 -0
- package/dist/mono-data-grid-YjR3n9Ar.js +3915 -0
- package/dist/mono-element-B0kP_96P.js +232 -0
- package/dist/mono-event-Bi1qP9uN.js +129 -0
- package/dist/mono-form-controller-5PfsU4qa.js +409 -0
- package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
- package/dist/mono-ui-CPV7rrdo.js +358 -0
- package/dist/normalize-error-Gcgmgh5i.js +871 -0
- package/dist/notifier-CE4yxMUQ.js +88 -0
- package/dist/nuxt.d.ts +1 -0
- package/dist/nuxt.js +130 -0
- package/dist/popup-portal-BziRX1yG.js +465 -0
- package/dist/popup-stack-CEEMib__.js +189 -0
- package/dist/rate-limit-BBa2PO79.js +521 -0
- package/dist/reactive-D3EERqgO.js +47 -0
- package/dist/reactive-Di3mTMnV.js +1087 -0
- package/dist/search.d.ts +1 -0
- package/dist/search.js +97 -0
- package/dist/src/components/accordion/accordion-core.d.ts +62 -0
- package/dist/src/components/accordion/accordion-types.d.ts +62 -0
- package/dist/src/components/accordion/index.d.ts +3 -0
- package/dist/src/components/accordion/index.shadow.d.ts +5 -0
- package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
- package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
- package/dist/src/components/alert/alert-core.d.ts +46 -0
- package/dist/src/components/alert/alert-types.d.ts +44 -0
- package/dist/src/components/alert/index.d.ts +3 -0
- package/dist/src/components/alert/index.shadow.d.ts +5 -0
- package/dist/src/components/alert/mono-alert.d.ts +44 -0
- package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
- package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
- package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
- package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
- package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
- package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
- package/dist/src/components/breadcrumb/index.d.ts +6 -0
- package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
- package/dist/src/components/button/button-core.d.ts +90 -0
- package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
- package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
- package/dist/src/components/button/button-types.d.ts +219 -0
- package/dist/src/components/button/button-utils.d.ts +18 -0
- package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
- package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
- package/dist/src/components/button/index.d.ts +8 -0
- package/dist/src/components/button/index.shadow.d.ts +5 -0
- package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
- package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
- package/dist/src/components/button/mono-button.d.ts +123 -0
- package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
- package/dist/src/components/card/card-core.d.ts +75 -0
- package/dist/src/components/card/card-types.d.ts +137 -0
- package/dist/src/components/card/card-utils.d.ts +23 -0
- package/dist/src/components/card/index.d.ts +4 -0
- package/dist/src/components/card/index.shadow.d.ts +6 -0
- package/dist/src/components/card/mono-card.d.ts +56 -0
- package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
- package/dist/src/components/chart/chart-core.d.ts +43 -0
- package/dist/src/components/chart/chart-odata.d.ts +52 -0
- package/dist/src/components/chart/chart-types.d.ts +356 -0
- package/dist/src/components/chart/index.d.ts +8 -0
- package/dist/src/components/chart/index.shadow.d.ts +7 -0
- package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
- package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
- package/dist/src/components/chart/mono-chart.d.ts +30 -0
- package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
- package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
- package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
- package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
- package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
- package/dist/src/components/checkbox/index.d.ts +4 -0
- package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
- package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
- package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
- package/dist/src/components/chip/chip-core.d.ts +58 -0
- package/dist/src/components/chip/chip-types.d.ts +142 -0
- package/dist/src/components/chip/chip-utils.d.ts +24 -0
- package/dist/src/components/chip/index.d.ts +8 -0
- package/dist/src/components/chip/index.shadow.d.ts +6 -0
- package/dist/src/components/chip/mono-chip.d.ts +48 -0
- package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
- package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
- package/dist/src/components/date/date-core.d.ts +80 -0
- package/dist/src/components/date/date-types.d.ts +163 -0
- package/dist/src/components/date/index.d.ts +3 -0
- package/dist/src/components/date/index.shadow.d.ts +4 -0
- package/dist/src/components/date/mono-date.d.ts +22 -0
- package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
- package/dist/src/components/drawer/drawer-core.d.ts +99 -0
- package/dist/src/components/drawer/drawer-types.d.ts +153 -0
- package/dist/src/components/drawer/index.d.ts +3 -0
- package/dist/src/components/drawer/index.shadow.d.ts +4 -0
- package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
- package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
- package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
- package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
- package/dist/src/components/dropdown/index.d.ts +3 -0
- package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
- package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
- package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
- package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
- package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
- package/dist/src/components/dropdown-table/index.d.ts +5 -0
- package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
- package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
- package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
- package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
- package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
- package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
- package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
- package/dist/src/components/file-upload/index.d.ts +4 -0
- package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
- package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
- package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
- package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
- package/dist/src/components/filter/filter-builder.d.ts +23 -0
- package/dist/src/components/filter/filter-odata.d.ts +27 -0
- package/dist/src/components/filter/filter-operators.d.ts +13 -0
- package/dist/src/components/filter/filter-types.d.ts +253 -0
- package/dist/src/components/filter/index.d.ts +6 -0
- package/dist/src/components/filter/index.shadow.d.ts +7 -0
- package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
- package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
- package/dist/src/components/form/form-control-core.d.ts +37 -0
- package/dist/src/components/form/form-rules.d.ts +25 -0
- package/dist/src/components/form/form-types.d.ts +307 -0
- package/dist/src/components/form/index.d.ts +6 -0
- package/dist/src/components/form/mono-form-controller.d.ts +16 -0
- package/dist/src/components/input/index.d.ts +6 -0
- package/dist/src/components/input/index.shadow.d.ts +8 -0
- package/dist/src/components/input/input-core.d.ts +91 -0
- package/dist/src/components/input/input-format.d.ts +118 -0
- package/dist/src/components/input/input-types.d.ts +179 -0
- package/dist/src/components/input/input-utils.d.ts +10 -0
- package/dist/src/components/input/mono-input.d.ts +46 -0
- package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
- package/dist/src/components/menu/index.d.ts +6 -0
- package/dist/src/components/menu/index.shadow.d.ts +7 -0
- package/dist/src/components/menu/menu-core.d.ts +65 -0
- package/dist/src/components/menu/menu-render.d.ts +55 -0
- package/dist/src/components/menu/menu-types.d.ts +195 -0
- package/dist/src/components/menu/menu-utils.d.ts +53 -0
- package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
- package/dist/src/components/menu/mono-menu.d.ts +39 -0
- package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
- package/dist/src/components/modal/index.d.ts +4 -0
- package/dist/src/components/modal/index.shadow.d.ts +5 -0
- package/dist/src/components/modal/modal-core.d.ts +110 -0
- package/dist/src/components/modal/modal-types.d.ts +304 -0
- package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
- package/dist/src/components/modal/mono-modal.d.ts +45 -0
- package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
- package/dist/src/components/nav/index.d.ts +4 -0
- package/dist/src/components/nav/index.shadow.d.ts +6 -0
- package/dist/src/components/nav/mono-nav.d.ts +41 -0
- package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
- package/dist/src/components/nav/nav-core.d.ts +34 -0
- package/dist/src/components/nav/nav-types.d.ts +48 -0
- package/dist/src/components/nav/nav-utils.d.ts +12 -0
- package/dist/src/components/radio/index.d.ts +4 -0
- package/dist/src/components/radio/index.shadow.d.ts +5 -0
- package/dist/src/components/radio/mono-radio.d.ts +31 -0
- package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
- package/dist/src/components/radio/radio-core.d.ts +45 -0
- package/dist/src/components/radio/radio-types.d.ts +58 -0
- package/dist/src/components/radio/radio-utils.d.ts +12 -0
- package/dist/src/components/rich-text-editor/index.d.ts +5 -0
- package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
- package/dist/src/components/select/index.d.ts +4 -0
- package/dist/src/components/select/index.shadow.d.ts +5 -0
- package/dist/src/components/select/mono-select.d.ts +69 -0
- package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
- package/dist/src/components/select/select-core.d.ts +98 -0
- package/dist/src/components/select/select-types.d.ts +284 -0
- package/dist/src/components/select/select-utils.d.ts +7 -0
- package/dist/src/components/sidebar/index.d.ts +4 -0
- package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
- package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
- package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
- package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
- package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
- package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
- package/dist/src/components/switch/index.d.ts +4 -0
- package/dist/src/components/switch/index.shadow.d.ts +5 -0
- package/dist/src/components/switch/mono-switch.d.ts +31 -0
- package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
- package/dist/src/components/switch/switch-core.d.ts +49 -0
- package/dist/src/components/switch/switch-types.d.ts +64 -0
- package/dist/src/components/switch/switch-utils.d.ts +12 -0
- package/dist/src/components/table/array-source.d.ts +44 -0
- package/dist/src/components/table/date-filter-tree.d.ts +93 -0
- package/dist/src/components/table/grouping.d.ts +55 -0
- package/dist/src/components/table/index.d.ts +33 -0
- package/dist/src/components/table/index.shadow.d.ts +47 -0
- package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
- package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
- package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
- package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
- package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
- package/dist/src/components/table/mono-table-detail.d.ts +32 -0
- package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
- package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
- package/dist/src/components/table/mono-table-empty.d.ts +35 -0
- package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
- package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
- package/dist/src/components/table/mono-table-error.d.ts +28 -0
- package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
- package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
- package/dist/src/components/table/mono-table-info.d.ts +19 -0
- package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
- package/dist/src/components/table/mono-table-loading.d.ts +50 -0
- package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
- package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
- package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
- package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
- package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
- package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
- package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
- package/dist/src/components/table/mono-table-paging.d.ts +16 -0
- package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
- package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
- package/dist/src/components/table/mono-table-search.d.ts +34 -0
- package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
- package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
- package/dist/src/components/table/mono-table-sort.d.ts +38 -0
- package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
- package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
- package/dist/src/components/table/mono-table-summary.d.ts +24 -0
- package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
- package/dist/src/components/table/mono-table-th.d.ts +41 -0
- package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
- package/dist/src/components/table/store-group-source.d.ts +24 -0
- package/dist/src/components/table/table-controller-core.d.ts +40 -0
- package/dist/src/components/table/table-filter-icons.d.ts +3 -0
- package/dist/src/components/table/table-menu-core.d.ts +65 -0
- package/dist/src/components/table/table-overlay.d.ts +165 -0
- package/dist/src/components/table/table-sort-icons.d.ts +4 -0
- package/dist/src/components/table/table-sort-utils.d.ts +20 -0
- package/dist/src/components/table/table-types.d.ts +475 -0
- package/dist/src/components/tabs/index.d.ts +3 -0
- package/dist/src/components/tabs/index.shadow.d.ts +4 -0
- package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
- package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
- package/dist/src/components/tabs/tabs-core.d.ts +57 -0
- package/dist/src/components/tabs/tabs-types.d.ts +65 -0
- package/dist/src/components/tag-input/index.d.ts +4 -0
- package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
- package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
- package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
- package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
- package/dist/src/components/tag-input/tag-input-types.d.ts +420 -0
- package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
- package/dist/src/components/textarea/index.d.ts +4 -0
- package/dist/src/components/textarea/index.shadow.d.ts +5 -0
- package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
- package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
- package/dist/src/components/textarea/textarea-core.d.ts +60 -0
- package/dist/src/components/textarea/textarea-types.d.ts +131 -0
- package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
- package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
- package/dist/src/components/tooltip/index.d.ts +6 -0
- package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
- package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
- package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
- package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
- package/dist/src/composables/breakpoints.d.ts +59 -0
- package/dist/src/composables/chip-limits.d.ts +48 -0
- package/dist/src/composables/chip-strip.d.ts +93 -0
- package/dist/src/composables/color.d.ts +103 -0
- package/dist/src/composables/css-class.d.ts +27 -0
- package/dist/src/composables/css-size.d.ts +40 -0
- package/dist/src/composables/data-source-controller.d.ts +113 -0
- package/dist/src/composables/element-props.d.ts +46 -0
- package/dist/src/composables/field-icons.d.ts +15 -0
- package/dist/src/composables/hybird-prop.d.ts +79 -0
- package/dist/src/composables/hydration-flush.d.ts +34 -0
- package/dist/src/composables/icon.d.ts +17 -0
- package/dist/src/composables/layout-var.d.ts +34 -0
- package/dist/src/composables/light-slots.d.ts +133 -0
- package/dist/src/composables/mdi-glyphs.d.ts +4 -0
- package/dist/src/composables/mono-element.d.ts +9 -0
- package/dist/src/composables/mono-event.d.ts +55 -0
- package/dist/src/composables/mono-pending.d.ts +8 -0
- package/dist/src/composables/mono-skeleton.d.ts +193 -0
- package/dist/src/composables/mono-ui.d.ts +58 -0
- package/dist/src/composables/notifier.d.ts +46 -0
- package/dist/src/composables/popup-portal.d.ts +226 -0
- package/dist/src/composables/popup-stack.d.ts +70 -0
- package/dist/src/composables/rate-limit.d.ts +108 -0
- package/dist/src/composables/reactive.d.ts +53 -0
- package/dist/src/composables/shadow-css.d.ts +42 -0
- package/dist/src/composables/visibility.d.ts +36 -0
- package/dist/src/data/theme/index.d.ts +30 -0
- package/dist/src/data/theme/presets.d.ts +94 -0
- package/dist/src/entries/index.d.ts +2 -0
- package/dist/src/entries/index.node.d.ts +42 -0
- package/dist/src/entries/search.d.ts +3 -0
- package/dist/src/export/detail.d.ts +29 -0
- package/dist/src/export/download.d.ts +9 -0
- package/dist/src/export/excel/index.d.ts +27 -0
- package/dist/src/export/excel/nodes.d.ts +123 -0
- package/dist/src/export/expression.d.ts +36 -0
- package/dist/src/export/helpers.d.ts +6 -0
- package/dist/src/export/index.d.ts +13 -0
- package/dist/src/export/markdown.d.ts +52 -0
- package/dist/src/export/resolve-data.d.ts +31 -0
- package/dist/src/export/sentinel.d.ts +97 -0
- package/dist/src/export/sheet-name.d.ts +45 -0
- package/dist/src/export/styles.d.ts +33 -0
- package/dist/src/export/template.d.ts +10 -0
- package/dist/src/export/types.d.ts +259 -0
- package/dist/src/import/coerce.d.ts +38 -0
- package/dist/src/import/index.d.ts +16 -0
- package/dist/src/import/match.d.ts +54 -0
- package/dist/src/import/parse.d.ts +15 -0
- package/dist/src/import/types.d.ts +153 -0
- package/dist/src/nuxt/index.d.ts +94 -0
- package/dist/src/search/data-search.d.ts +207 -0
- package/dist/src/search/field-path.d.ts +107 -0
- package/dist/src/search/filter-eval.d.ts +30 -0
- package/dist/src/search/index.d.ts +22 -0
- package/dist/src/search/odata-search.d.ts +18 -0
- package/dist/src/search/search-expr.d.ts +160 -0
- package/dist/src/utils/data-source-apply.d.ts +97 -0
- package/dist/src/utils/data-source-options.d.ts +116 -0
- package/dist/src/utils/data-source-read.d.ts +85 -0
- package/dist/src/utils/data-source-summary.d.ts +55 -0
- package/dist/src/utils/normalize-error.d.ts +90 -0
- package/dist/src/vite/index.d.ts +48 -0
- package/dist/src/vite/mono-client-only.d.ts +35 -0
- package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
- package/dist/src/vite/shadow-manifest.d.ts +8 -0
- package/dist/styles-BIJ31TM4.js +20146 -0
- package/dist/tooltip-DQqNpqk2.js +795 -0
- package/dist/tooltip.d.ts +1 -0
- package/dist/tooltip.js +2 -0
- package/dist/ui/accordion.d.ts +1 -0
- package/dist/ui/accordion.js +466 -0
- package/dist/ui/alert.d.ts +1 -0
- package/dist/ui/alert.js +221 -0
- package/dist/ui/breadcrumb.d.ts +1 -0
- package/dist/ui/breadcrumb.js +902 -0
- package/dist/ui/button-dropdown.d.ts +1 -0
- package/dist/ui/button-dropdown.js +679 -0
- package/dist/ui/button.d.ts +1 -0
- package/dist/ui/button.js +63 -0
- package/dist/ui/card.d.ts +1 -0
- package/dist/ui/card.js +524 -0
- package/dist/ui/chart.d.ts +1 -0
- package/dist/ui/chart.js +885 -0
- package/dist/ui/checkbox.d.ts +1 -0
- package/dist/ui/checkbox.js +413 -0
- package/dist/ui/chip.d.ts +1 -0
- package/dist/ui/chip.js +558 -0
- package/dist/ui/date.d.ts +1 -0
- package/dist/ui/date.js +686 -0
- package/dist/ui/drawer.d.ts +1 -0
- package/dist/ui/drawer.js +901 -0
- package/dist/ui/dropdown-table.d.ts +1 -0
- package/dist/ui/dropdown-table.js +1291 -0
- package/dist/ui/dropdown.d.ts +1 -0
- package/dist/ui/dropdown.js +586 -0
- package/dist/ui/file-upload.d.ts +1 -0
- package/dist/ui/file-upload.js +688 -0
- package/dist/ui/filter.d.ts +1 -0
- package/dist/ui/filter.js +400 -0
- package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
- package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
- package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
- package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
- package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
- package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
- package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
- package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
- package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
- package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
- package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
- package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
- package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
- package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
- package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
- package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
- package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
- package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
- package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
- package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
- package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
- package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
- package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
- package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
- package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
- package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
- package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
- package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
- package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
- package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
- package/dist/ui/font/geist-mono.css +104 -0
- package/dist/ui/font/geist.css +168 -0
- package/dist/ui/font/inter.css +232 -0
- package/dist/ui/font/poppins.css +104 -0
- package/dist/ui/form.d.ts +1 -0
- package/dist/ui/form.js +3 -0
- package/dist/ui/index.css +21989 -0
- package/dist/ui/input.d.ts +1 -0
- package/dist/ui/input.js +1176 -0
- package/dist/ui/menu.d.ts +1 -0
- package/dist/ui/menu.js +1289 -0
- package/dist/ui/modal.d.ts +1 -0
- package/dist/ui/modal.js +996 -0
- package/dist/ui/nav.d.ts +1 -0
- package/dist/ui/nav.js +295 -0
- package/dist/ui/radio.d.ts +1 -0
- package/dist/ui/radio.js +379 -0
- package/dist/ui/rich-text-editor.d.ts +1 -0
- package/dist/ui/rich-text-editor.js +1338 -0
- package/dist/ui/select.d.ts +1 -0
- package/dist/ui/select.js +2200 -0
- package/dist/ui/shadow/accordion.js +442 -0
- package/dist/ui/shadow/alert.js +218 -0
- package/dist/ui/shadow/breadcrumb.js +919 -0
- package/dist/ui/shadow/button-dropdown.js +696 -0
- package/dist/ui/shadow/button.js +63 -0
- package/dist/ui/shadow/card.js +538 -0
- package/dist/ui/shadow/chart.js +1685 -0
- package/dist/ui/shadow/checkbox.js +457 -0
- package/dist/ui/shadow/chip.js +559 -0
- package/dist/ui/shadow/date.js +712 -0
- package/dist/ui/shadow/drawer.js +869 -0
- package/dist/ui/shadow/dropdown-table.js +1620 -0
- package/dist/ui/shadow/dropdown.js +547 -0
- package/dist/ui/shadow/file-upload.js +731 -0
- package/dist/ui/shadow/filter.js +402 -0
- package/dist/ui/shadow/input.js +1150 -0
- package/dist/ui/shadow/menu.js +899 -0
- package/dist/ui/shadow/modal.js +1194 -0
- package/dist/ui/shadow/nav.js +240 -0
- package/dist/ui/shadow/radio.js +408 -0
- package/dist/ui/shadow/rich-text-editor.js +1344 -0
- package/dist/ui/shadow/select.js +2167 -0
- package/dist/ui/shadow/sidebar.js +606 -0
- package/dist/ui/shadow/switch.js +428 -0
- package/dist/ui/shadow/table.js +4755 -0
- package/dist/ui/shadow/tabs.js +372 -0
- package/dist/ui/shadow/tag-input.js +2974 -0
- package/dist/ui/shadow/textarea.js +816 -0
- package/dist/ui/sidebar.d.ts +1 -0
- package/dist/ui/sidebar.js +659 -0
- package/dist/ui/switch.d.ts +1 -0
- package/dist/ui/switch.js +398 -0
- package/dist/ui/table.d.ts +1 -0
- package/dist/ui/table.js +4654 -0
- package/dist/ui/tabs.d.ts +1 -0
- package/dist/ui/tabs.js +379 -0
- package/dist/ui/tag-input.d.ts +1 -0
- package/dist/ui/tag-input.js +2947 -0
- package/dist/ui/textarea.d.ts +1 -0
- package/dist/ui/textarea.js +819 -0
- package/dist/ui/theme/legacy.css +293 -0
- package/dist/ui/theme/luma.css +743 -0
- package/dist/ui/theme/lyra.css +754 -0
- package/dist/ui/theme/maia.css +673 -0
- package/dist/ui/theme/mira.css +802 -0
- package/dist/ui/theme/nova.css +662 -0
- package/dist/ui/theme/one.css +699 -0
- package/dist/ui/theme/rhea.css +742 -0
- package/dist/ui/theme/sera.css +845 -0
- package/dist/ui/theme/tokens.css +261 -0
- package/dist/ui/theme/vega.css +467 -0
- package/dist/vite-C5iUK7so.js +329 -0
- package/dist/vite.d.ts +1 -0
- package/dist/vite.js +2 -0
- package/dist/vue.d.ts +282 -0
- package/package.json +411 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { t as MonoButton } from "../mono-button-simcTQdW.js";
|
|
2
|
+
//#region src/components/button/button-utils.ts
|
|
3
|
+
/**
|
|
4
|
+
* Generate badge CSS classes
|
|
5
|
+
*/
|
|
6
|
+
function generateBadgeClasses(badgeColor = "red") {
|
|
7
|
+
return `btn-badge bb-${badgeColor}`;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Process SVG icon content
|
|
11
|
+
*/
|
|
12
|
+
function processIconContent(icon) {
|
|
13
|
+
if (icon.startsWith("<svg")) return icon;
|
|
14
|
+
return icon;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validate button props
|
|
18
|
+
*/
|
|
19
|
+
function validateButtonProps(props) {
|
|
20
|
+
const validSizes = [
|
|
21
|
+
"xs",
|
|
22
|
+
"sm",
|
|
23
|
+
"md",
|
|
24
|
+
"lg",
|
|
25
|
+
"xl",
|
|
26
|
+
"xxl"
|
|
27
|
+
];
|
|
28
|
+
const validColors = [
|
|
29
|
+
"primary",
|
|
30
|
+
"secondary",
|
|
31
|
+
"success",
|
|
32
|
+
"danger",
|
|
33
|
+
"warning",
|
|
34
|
+
"info",
|
|
35
|
+
"teal",
|
|
36
|
+
"purple",
|
|
37
|
+
"dark",
|
|
38
|
+
"light"
|
|
39
|
+
];
|
|
40
|
+
const validVariants = [
|
|
41
|
+
"solid",
|
|
42
|
+
"outline",
|
|
43
|
+
"tonal",
|
|
44
|
+
"text"
|
|
45
|
+
];
|
|
46
|
+
const validRounded = [
|
|
47
|
+
"none",
|
|
48
|
+
"xs",
|
|
49
|
+
"sm",
|
|
50
|
+
"md",
|
|
51
|
+
"lg",
|
|
52
|
+
"xl",
|
|
53
|
+
"xxl",
|
|
54
|
+
"full"
|
|
55
|
+
];
|
|
56
|
+
if (props.size && !validSizes.includes(props.size)) return false;
|
|
57
|
+
if (props.color && !validColors.includes(props.color)) return false;
|
|
58
|
+
if (props.variant && !validVariants.includes(props.variant)) return false;
|
|
59
|
+
if (props.rounded && !validRounded.includes(props.rounded)) return false;
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
export { MonoButton, generateBadgeClasses, processIconContent, validateButtonProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
package/dist/ui/card.js
ADDED
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
import { t as customElement } from "../mono-element-B0kP_96P.js";
|
|
2
|
+
import { a as defineHybridPropAliases, i as defineHybridPropAlias, r as booleanStringConverter, t as __decorate } from "../decorate-DEXtNagw.js";
|
|
3
|
+
import { t as dispatchMonoEvent } from "../mono-event-Bi1qP9uN.js";
|
|
4
|
+
import { a as parkDetachedNodes, n as bucketHasContent, o as placeLightSlots, r as captureLightSlots } from "../light-slots-DW1WgfgT.js";
|
|
5
|
+
import { t as buildSizeStyle } from "../css-size-DhHSVZJK.js";
|
|
6
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
7
|
+
import { property, query, state } from "lit/decorators.js";
|
|
8
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
9
|
+
import { styleMap } from "lit/directives/style-map.js";
|
|
10
|
+
//#region src/components/card/card-core.ts
|
|
11
|
+
/**
|
|
12
|
+
* `MonoCardCore` — all render-mode-agnostic logic for `mono-card`: reactive
|
|
13
|
+
* props, hybrid aliases, the camelCase attribute fallbacks, slot-presence
|
|
14
|
+
* `@state`, class/getter computation, click/keyboard interactivity, and the
|
|
15
|
+
* imperative `focus/blur/click`. No `render()` — the light build keeps its
|
|
16
|
+
* `[data-mono-slot]` capture strategy and the shadow build uses native `<slot>`
|
|
17
|
+
* (each ships its own `render()`, mirroring `mono-input`).
|
|
18
|
+
*
|
|
19
|
+
* SSR-safe: no `document`/`window` access. `_cardElement` (`@query`) is lazy and
|
|
20
|
+
* `focus/blur/click` + the `HTMLAnchorElement` check only run client-side.
|
|
21
|
+
*/
|
|
22
|
+
var MonoCardCore = (superClass) => {
|
|
23
|
+
class MonoCardCoreClass extends superClass {
|
|
24
|
+
constructor(...args) {
|
|
25
|
+
super(...args);
|
|
26
|
+
this._hasMedia = false;
|
|
27
|
+
this._hasIcon = false;
|
|
28
|
+
this._hasTitle = false;
|
|
29
|
+
this._hasSubtitle = false;
|
|
30
|
+
this._hasHeaderSlot = false;
|
|
31
|
+
this._hasActions = false;
|
|
32
|
+
this._hasFooter = false;
|
|
33
|
+
this._hasDefault = false;
|
|
34
|
+
defineHybridPropAliases(this, [
|
|
35
|
+
"mediaPosition",
|
|
36
|
+
"headerDivider",
|
|
37
|
+
"footerDivider",
|
|
38
|
+
"ariaLabelText",
|
|
39
|
+
"cssClass",
|
|
40
|
+
"minWidth",
|
|
41
|
+
"maxWidth",
|
|
42
|
+
"minHeight",
|
|
43
|
+
"maxHeight"
|
|
44
|
+
]);
|
|
45
|
+
defineHybridPropAlias(this, "heading", "title");
|
|
46
|
+
defineHybridPropAlias(this, "subheading", "subtitle");
|
|
47
|
+
this.size = "md";
|
|
48
|
+
this.variant = "elevated";
|
|
49
|
+
this.color = "neutral";
|
|
50
|
+
this.mediaPosition = "top";
|
|
51
|
+
this.title = "";
|
|
52
|
+
this.subtitle = "";
|
|
53
|
+
this.bordered = false;
|
|
54
|
+
this.hoverable = false;
|
|
55
|
+
this.clickable = false;
|
|
56
|
+
this.selected = false;
|
|
57
|
+
this.disabled = false;
|
|
58
|
+
this.loading = false;
|
|
59
|
+
this.headerDivider = true;
|
|
60
|
+
this.footerDivider = true;
|
|
61
|
+
this.href = void 0;
|
|
62
|
+
this.target = void 0;
|
|
63
|
+
this.ariaLabelText = void 0;
|
|
64
|
+
this.cssClass = {};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Static camelCase HTML fallback.
|
|
68
|
+
*
|
|
69
|
+
* Browser converts:
|
|
70
|
+
* mediaPosition -> mediaposition
|
|
71
|
+
* headerDivider -> headerdivider
|
|
72
|
+
* footerDivider -> footerdivider
|
|
73
|
+
* ariaLabelText -> arialabeltext
|
|
74
|
+
*/
|
|
75
|
+
static get observedAttributes() {
|
|
76
|
+
return [
|
|
77
|
+
...super.observedAttributes ?? [],
|
|
78
|
+
"mediaposition",
|
|
79
|
+
"headerdivider",
|
|
80
|
+
"footerdivider",
|
|
81
|
+
"arialabeltext",
|
|
82
|
+
"arialabel",
|
|
83
|
+
"heading",
|
|
84
|
+
"subheading"
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
88
|
+
super.attributeChangedCallback(name, oldValue, newValue);
|
|
89
|
+
if (oldValue === newValue) return;
|
|
90
|
+
if (name === "mediaposition") {
|
|
91
|
+
this.mediaPosition = newValue ?? "top";
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (name === "headerdivider") {
|
|
95
|
+
this.headerDivider = this._toBoolean(newValue);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (name === "footerdivider") {
|
|
99
|
+
this.footerDivider = this._toBoolean(newValue);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (name === "arialabeltext" || name === "arialabel") {
|
|
103
|
+
this.ariaLabelText = newValue ?? void 0;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (name === "heading") {
|
|
107
|
+
this.title = newValue ?? "";
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (name === "subheading") this.subtitle = newValue ?? "";
|
|
111
|
+
}
|
|
112
|
+
_cls(base, key) {
|
|
113
|
+
const extra = this.cssClass?.[key];
|
|
114
|
+
return extra ? `${base} ${extra}` : base;
|
|
115
|
+
}
|
|
116
|
+
/** Inline sizing applied to the card root. */
|
|
117
|
+
_sizeStyle() {
|
|
118
|
+
return buildSizeStyle(this);
|
|
119
|
+
}
|
|
120
|
+
_toBoolean(value) {
|
|
121
|
+
if (typeof value === "boolean") return value;
|
|
122
|
+
if (typeof value === "string") {
|
|
123
|
+
const normalized = value.toLowerCase().trim();
|
|
124
|
+
return normalized === "" || normalized === "true";
|
|
125
|
+
}
|
|
126
|
+
return Boolean(value);
|
|
127
|
+
}
|
|
128
|
+
get _isInteractive() {
|
|
129
|
+
return Boolean(this.href) || this.clickable;
|
|
130
|
+
}
|
|
131
|
+
get _isDisabled() {
|
|
132
|
+
return this.disabled || this.loading;
|
|
133
|
+
}
|
|
134
|
+
get _hasHeader() {
|
|
135
|
+
return Boolean(this._hasIcon || this._hasTitle || this._hasSubtitle || this._hasHeaderSlot || this.title || this.subtitle);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The header shows a title with NO subtitle under it — drives `mono-no-subtitle`,
|
|
139
|
+
* which centres the icon chip and that lone title on one axis. With a subtitle
|
|
140
|
+
* the row stays top-aligned (icon level with the first line); a `slot="header"`
|
|
141
|
+
* owns its own layout, so it never counts.
|
|
142
|
+
*/
|
|
143
|
+
get _noSubtitle() {
|
|
144
|
+
return !this._hasHeaderSlot && !this._hasSubtitle && !this.subtitle;
|
|
145
|
+
}
|
|
146
|
+
get _cardClasses() {
|
|
147
|
+
const classes = ["mono-card"];
|
|
148
|
+
classes.push(this.size);
|
|
149
|
+
classes.push(this.variant);
|
|
150
|
+
classes.push(this.color);
|
|
151
|
+
if (this.rounded) classes.push(`rounded-${this.rounded}`);
|
|
152
|
+
if (this.bordered) classes.push("bordered");
|
|
153
|
+
if (this.hoverable) classes.push("hoverable");
|
|
154
|
+
if (this.clickable || this.href) classes.push("clickable");
|
|
155
|
+
if (this.selected) classes.push("selected");
|
|
156
|
+
if (this.disabled) classes.push("disabled");
|
|
157
|
+
if (this.loading) classes.push("loading");
|
|
158
|
+
if (!this.headerDivider) classes.push("no-header-divider");
|
|
159
|
+
if (!this.footerDivider) classes.push("no-footer-divider");
|
|
160
|
+
if (this._hasMedia) classes.push(`media-${this.mediaPosition}`);
|
|
161
|
+
if (this.cssClass?.root) classes.push(this.cssClass.root);
|
|
162
|
+
return classes.join(" ");
|
|
163
|
+
}
|
|
164
|
+
_emitClick(originalEvent) {
|
|
165
|
+
const detail = { originalEvent };
|
|
166
|
+
dispatchMonoEvent(this, "click", detail, { sourceEvent: originalEvent });
|
|
167
|
+
}
|
|
168
|
+
_handleClick(event) {
|
|
169
|
+
if (this._isDisabled) {
|
|
170
|
+
event.preventDefault();
|
|
171
|
+
event.stopPropagation();
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (!this._isInteractive) return;
|
|
175
|
+
this._emitClick(event);
|
|
176
|
+
}
|
|
177
|
+
_handleKeyDown(event) {
|
|
178
|
+
if (this._isDisabled || !this._isInteractive) return;
|
|
179
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
180
|
+
event.preventDefault();
|
|
181
|
+
if (this._cardElement) {
|
|
182
|
+
this._cardElement.click();
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
this._emitClick(event);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
focus() {
|
|
189
|
+
this._cardElement?.focus();
|
|
190
|
+
}
|
|
191
|
+
blur() {
|
|
192
|
+
this._cardElement?.blur();
|
|
193
|
+
}
|
|
194
|
+
click() {
|
|
195
|
+
this._cardElement?.click();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "size", void 0);
|
|
199
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "variant", void 0);
|
|
200
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "color", void 0);
|
|
201
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "rounded", void 0);
|
|
202
|
+
__decorate([property({
|
|
203
|
+
type: String,
|
|
204
|
+
attribute: "media-position"
|
|
205
|
+
})], MonoCardCoreClass.prototype, "mediaPosition", void 0);
|
|
206
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "title", void 0);
|
|
207
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "subtitle", void 0);
|
|
208
|
+
__decorate([property({
|
|
209
|
+
reflect: true,
|
|
210
|
+
converter: booleanStringConverter
|
|
211
|
+
})], MonoCardCoreClass.prototype, "bordered", void 0);
|
|
212
|
+
__decorate([property({
|
|
213
|
+
reflect: true,
|
|
214
|
+
converter: booleanStringConverter
|
|
215
|
+
})], MonoCardCoreClass.prototype, "hoverable", void 0);
|
|
216
|
+
__decorate([property({
|
|
217
|
+
reflect: true,
|
|
218
|
+
converter: booleanStringConverter
|
|
219
|
+
})], MonoCardCoreClass.prototype, "clickable", void 0);
|
|
220
|
+
__decorate([property({
|
|
221
|
+
reflect: true,
|
|
222
|
+
converter: booleanStringConverter
|
|
223
|
+
})], MonoCardCoreClass.prototype, "selected", void 0);
|
|
224
|
+
__decorate([property({
|
|
225
|
+
reflect: true,
|
|
226
|
+
converter: booleanStringConverter
|
|
227
|
+
})], MonoCardCoreClass.prototype, "disabled", void 0);
|
|
228
|
+
__decorate([property({
|
|
229
|
+
reflect: true,
|
|
230
|
+
converter: booleanStringConverter
|
|
231
|
+
})], MonoCardCoreClass.prototype, "loading", void 0);
|
|
232
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "width", void 0);
|
|
233
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "height", void 0);
|
|
234
|
+
__decorate([property({
|
|
235
|
+
type: String,
|
|
236
|
+
attribute: "min-width"
|
|
237
|
+
})], MonoCardCoreClass.prototype, "minWidth", void 0);
|
|
238
|
+
__decorate([property({
|
|
239
|
+
type: String,
|
|
240
|
+
attribute: "max-width"
|
|
241
|
+
})], MonoCardCoreClass.prototype, "maxWidth", void 0);
|
|
242
|
+
__decorate([property({
|
|
243
|
+
type: String,
|
|
244
|
+
attribute: "min-height"
|
|
245
|
+
})], MonoCardCoreClass.prototype, "minHeight", void 0);
|
|
246
|
+
__decorate([property({
|
|
247
|
+
type: String,
|
|
248
|
+
attribute: "max-height"
|
|
249
|
+
})], MonoCardCoreClass.prototype, "maxHeight", void 0);
|
|
250
|
+
__decorate([property({
|
|
251
|
+
attribute: "header-divider",
|
|
252
|
+
reflect: true,
|
|
253
|
+
converter: booleanStringConverter
|
|
254
|
+
})], MonoCardCoreClass.prototype, "headerDivider", void 0);
|
|
255
|
+
__decorate([property({
|
|
256
|
+
attribute: "footer-divider",
|
|
257
|
+
reflect: true,
|
|
258
|
+
converter: booleanStringConverter
|
|
259
|
+
})], MonoCardCoreClass.prototype, "footerDivider", void 0);
|
|
260
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "href", void 0);
|
|
261
|
+
__decorate([property({ type: String })], MonoCardCoreClass.prototype, "target", void 0);
|
|
262
|
+
__decorate([property({
|
|
263
|
+
type: String,
|
|
264
|
+
attribute: "aria-label-text"
|
|
265
|
+
})], MonoCardCoreClass.prototype, "ariaLabelText", void 0);
|
|
266
|
+
__decorate([property({ attribute: false })], MonoCardCoreClass.prototype, "cssClass", void 0);
|
|
267
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasMedia", void 0);
|
|
268
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasIcon", void 0);
|
|
269
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasTitle", void 0);
|
|
270
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasSubtitle", void 0);
|
|
271
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasHeaderSlot", void 0);
|
|
272
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasActions", void 0);
|
|
273
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasFooter", void 0);
|
|
274
|
+
__decorate([state()], MonoCardCoreClass.prototype, "_hasDefault", void 0);
|
|
275
|
+
__decorate([query(".mono-card")], MonoCardCoreClass.prototype, "_cardElement", void 0);
|
|
276
|
+
return MonoCardCoreClass;
|
|
277
|
+
};
|
|
278
|
+
//#endregion
|
|
279
|
+
//#region src/components/card/card.css?raw
|
|
280
|
+
var card_default = "/* =========================================================================\r\n mono-card — a port of Basecoat's `.card` (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-card size=\"sm\" variant=\"outlined\" color=\"primary\" title=\"Title\">\r\n <div mono-card mono-size=\"sm\" mono-variant=\"outlined\" mono-color=\"primary\">\r\n <div mono-header>\r\n <div mono-header-content><h3 mono-title>Title</h3></div>\r\n </div>\r\n <div mono-body><p>…</p></div>\r\n <div mono-footer>…</div>\r\n </div>\r\n\r\n An absent attribute is the prop's default (`:not([mono-size])` = md,\r\n `:not([mono-variant])` = elevated, `:not([mono-color])` = neutral). The element\r\n renders these attributes on its root (both builds) plus the STATES\r\n `mono-bordered` / `mono-hoverable` / `mono-clickable` / `mono-selected` /\r\n `mono-disabled` / `mono-loading`, and the negatives `mono-no-header-divider` /\r\n `mono-no-footer-divider` (both dividers default ON, so the attribute marks the\r\n exception). The old classes (`.mono-card.md.elevated.primary`) are still\r\n emitted as inert hooks until 2.0 but no rule here reads them.\r\n\r\n Selector map (ours ≡ upstream):\r\n [mono-card] ≡ .card (flex-col gap-6 py-6 rounded-xl bg-card text-card-foreground text-sm shadow-xs ring-1 ring-foreground/10 overflow-hidden)\r\n — the ring is drawn as an INSET box-shadow, see --_mono-card-edge-*\r\n [mono-card] > [mono-header] ≡ .card > header (grid auto-rows-min gap-1 px-6)\r\n [mono-title] ≡ .card > header > :is(h2, h3, [data-title], .card-title) (text-base font-medium leading-normal)\r\n [mono-subtitle] ≡ .card > header > :is(p, [data-description], .card-description) (text-sm text-muted-foreground)\r\n [mono-body] ≡ .card > section (px-6)\r\n [mono-footer] / [mono-actions] ≡ .card > footer (flex items-center px-6)\r\n [mono-size=\"sm\"] ≡ .card[data-size='sm'] (gap-4 py-4, px-4 on every region)\r\n [mono-size=\"xs|lg|xl|xxl\"] ≡ EXTENSION (the same ladder continued)\r\n [mono-variant=\"outlined\"] ≡ .card verbatim (the ring + shadow-xs)\r\n [mono-variant=\"elevated|flat|tonal|glass\"] ≡ EXTENSION (shadow-md / none / an accent tint / a blurred pane)\r\n [mono-color=\"…\"] ≡ EXTENSION (the ring and the title in the role's colour)\r\n [mono-media] ≡ .card [&>img:first-child]:rounded-t-xl — a full-bleed media band\r\n [mono-icon], [mono-loading], [mono-selected] ≡ EXTENSION\r\n\r\n `gradient` is GONE (variant and colour alike): the port drops every colour\r\n gradient. `--mono-card-gradient-*` are no-ops until 2.0.\r\n\r\n Specificity contract (same as the pre-port class sheet): a part's RESTING rule\r\n is exactly one attribute strong — `:where([mono-card]) [mono-body]` = (0,1,0)\r\n — so a utility class handed in through `cssClass` wins by source order, while\r\n prop and state rules stay heavier and win over it.\r\n\r\n Inner parts: [mono-media], [mono-header] > [mono-icon] / [mono-header-content]\r\n > [mono-title] / [mono-subtitle], [mono-body], [mono-actions], [mono-footer],\r\n [mono-loading] > [mono-spinner]. The shadow build renders every region and\r\n marks the empty ones [mono-empty]; this sheet hides them.\r\n\r\n FLAVORS set `--mono-card-{radius,shadow,ring-color,ring-width,padding-<size>,\r\n gap-<size>,title-font-<size>,…}` (the per-style `.card` deltas); every fallback\r\n here is vega's value (`node scripts/basecoat-styles.mjs --varying \"^\\.card\"`).\r\n ========================================================================= */\r\n\r\nmono-card {\r\n display: block;\r\n}\r\n\r\n[mono-card] {\r\n /* ── palette: each slot is a public knob over a Basecoat token ─────────── */\r\n --_mono-card-bg: var(--mono-card-bg, var(--card));\r\n --_mono-card-text: var(--mono-card-text, var(--card-foreground));\r\n --_mono-card-subtext: var(--mono-card-subtext, var(--muted-foreground));\r\n --_mono-card-accent: var(--mono-card-accent, var(--_mono-card-accent-preset, var(--neutral)));\r\n /* ring-1 ring-foreground/10 — Basecoat rings the card, it does not border it;\r\n `bordered` adds a real border on top (EXTENSION) */\r\n --_mono-card-ring-color: var(--mono-card-ring-color, color-mix(in oklab, var(--foreground) 10%, transparent));\r\n --_mono-card-ring-width: var(--mono-card-ring-width, var(--mono-border-width));\r\n --_mono-card-shadow: var(--mono-card-shadow, var(--mono-shadow-xs));\r\n --_mono-card-shadow-elevated: var(--mono-card-shadow-elevated, var(--mono-shadow-md));\r\n --_mono-card-shadow-hover: var(--mono-card-shadow-hover, var(--mono-shadow-lg));\r\n /* the ONE knob a prop also drives: `rounded` writes --_mono-card-radius-preset\r\n on the element, so a FLAVOR must write that same preset tier (an inherited\r\n preset loses to the element's own) while --mono-card-radius stays the\r\n consumer's override and wins over both */\r\n --_mono-card-radius: var(--mono-card-radius, var(--_mono-card-radius-preset, var(--mono-radius-xl)));\r\n --_mono-card-border-width: var(--mono-card-border-width, var(--mono-border-width));\r\n --_mono-card-border-color: var(--mono-card-border-color, var(--border));\r\n --_mono-card-divider-color: var(--mono-card-divider-color, var(--border));\r\n --_mono-card-focus-ring-color: var(--mono-card-focus-ring-color, var(--ring));\r\n --_mono-card-focus-ring-width: var(--mono-card-focus-ring-width, var(--mono-ring-width));\r\n --_mono-card-focus-ring-alpha: var(--mono-card-focus-ring-alpha, var(--mono-ring-alpha));\r\n\r\n /* ── md metrics live on the unqualified root ON PURPOSE ────────────────────\r\n basecoat@1.0.2 styles/vega.css .card — gap-6 py-6 text-sm; .card > header —\r\n gap-1 px-6; .card > section / > footer — px-6 */\r\n --_mono-card-padding: var(--mono-card-padding, var(--mono-card-padding-md, calc(var(--mono-spacing) * 6)));\r\n --_mono-card-gap: var(--mono-card-gap, var(--mono-card-gap-md, calc(var(--mono-spacing) * 6)));\r\n --_mono-card-header-gap: var(--mono-card-header-gap, var(--mono-card-header-gap-md, calc(var(--mono-spacing) * 1)));\r\n --_mono-card-actions-gap: var(--mono-card-actions-gap, var(--mono-card-actions-gap-md, calc(var(--mono-spacing) * 2)));\r\n --_mono-card-font: var(--mono-card-font, var(--mono-card-font-md, var(--mono-text-sm)));\r\n --_mono-card-title-font: var(--mono-card-title-font, var(--mono-card-title-font-md, var(--mono-text-base)));\r\n --_mono-card-subtitle-font: var(--mono-card-subtitle-font, var(--mono-card-subtitle-font-md, var(--mono-text-sm)));\r\n --_mono-card-icon-size: var(--mono-card-icon-size, var(--mono-card-icon-size-md, calc(var(--mono-spacing) * 9)));\r\n --_mono-card-icon-glyph: var(--mono-card-icon-glyph, 55%);\r\n\r\n /* The edge and the elevation are independent, so a variant can drop one\r\n without touching the other.\r\n\r\n DEVIATION from upstream: Basecoat draws the edge with `ring-1`, a box-shadow\r\n OUTSIDE the border box. That pixel is lost wherever the card is flush against\r\n anything that clips — a container with `overflow: hidden` (every demo stage),\r\n a horizontal scroller, or the viewport itself — which hid the left edge of a\r\n full-width card at most widths. The same hairline drawn INSIDE the box is\r\n unclippable: an INSET box-shadow, layered under the elevation. (It used to\r\n be an outline with a negative offset; an outline is rasterised as a stroke\r\n of its own, and on fractional display scales it landed one device pixel\r\n inside the background's edge, so the card read as a DOUBLE border. An inset\r\n shadow is part of the background's own box and cannot separate from it.)\r\n It paints under the descendants, so a full-bleed child must stop one\r\n edge-width short of the box, or cover it knowingly. */\r\n --_mono-card-edge-width: var(--_mono-card-ring-width);\r\n --_mono-card-edge-color: var(--_mono-card-ring-color);\r\n --_mono-card-elevation: var(--_mono-card-shadow);\r\n\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--_mono-card-gap);\r\n position: relative;\r\n min-width: 0;\r\n padding-block: var(--_mono-card-padding);\r\n overflow: hidden;\r\n border-radius: var(--_mono-card-radius);\r\n background-color: var(--_mono-card-bg);\r\n color: var(--_mono-card-text);\r\n font-family: inherit;\r\n font-size: var(--_mono-card-font);\r\n box-shadow:\r\n inset 0 0 0 var(--_mono-card-edge-width) var(--_mono-card-edge-color),\r\n var(--_mono-card-elevation);\r\n text-decoration: none;\r\n transition-property: background-color, border-color, box-shadow, transform, opacity;\r\n transition-timing-function: var(--mono-ease);\r\n transition-duration: var(--mono-duration);\r\n}\r\n\r\n[mono-card],\r\n:where([mono-card]) *,\r\n:where([mono-card]) *::before,\r\n:where([mono-card]) *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* The shadow build renders EVERY region up front (so DSD can project into them\r\n server-side) and marks the ones with nothing in them; the light build renders\r\n only what exists. Hiding them here is what keeps the two builds identical —\r\n and why the media rules below test `:not([mono-empty])`.\r\n\r\n NOT wrapped in `:where()`, unlike the other parts: a region rule such as\r\n `[mono-header] > [mono-icon]` is two attributes strong, so a zero-weight hide\r\n would tie and lose on source order — the icon box kept its 36px in the shadow\r\n build while the light one rendered nothing at all. */\r\n[mono-card] :is(\r\n [mono-media],\r\n [mono-header],\r\n [mono-icon],\r\n [mono-title],\r\n [mono-subtitle],\r\n [mono-body],\r\n [mono-actions],\r\n [mono-footer]\r\n)[mono-empty] {\r\n display: none;\r\n}\r\n\r\n/* =========================================\r\n Sizes — `sm` is upstream's data-size='sm'; the rest continue the ladder\r\n ========================================= */\r\n\r\n[mono-card][mono-size=\"xs\"] {\r\n --_mono-card-padding: var(--mono-card-padding, var(--mono-card-padding-xs, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-card-gap: var(--mono-card-gap, var(--mono-card-gap-xs, calc(var(--mono-spacing) * 2.5)));\r\n --_mono-card-font: var(--mono-card-font, var(--mono-card-font-xs, var(--mono-text-xs)));\r\n --_mono-card-title-font: var(--mono-card-title-font, var(--mono-card-title-font-xs, 0.8125rem));\r\n --_mono-card-subtitle-font: var(--mono-card-subtitle-font, var(--mono-card-subtitle-font-xs, var(--mono-text-xs)));\r\n --_mono-card-icon-size: var(--mono-card-icon-size, var(--mono-card-icon-size-xs, calc(var(--mono-spacing) * 6)));\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .card[data-size='sm'] — gap-4 py-4 (px-4 on every region) */\r\n[mono-card][mono-size=\"sm\"] {\r\n --_mono-card-padding: var(--mono-card-padding, var(--mono-card-padding-sm, calc(var(--mono-spacing) * 4)));\r\n --_mono-card-gap: var(--mono-card-gap, var(--mono-card-gap-sm, calc(var(--mono-spacing) * 4)));\r\n --_mono-card-font: var(--mono-card-font, var(--mono-card-font-sm, var(--mono-text-sm)));\r\n --_mono-card-title-font: var(--mono-card-title-font, var(--mono-card-title-font-sm, var(--mono-text-sm)));\r\n --_mono-card-subtitle-font: var(--mono-card-subtitle-font, var(--mono-card-subtitle-font-sm, var(--mono-text-sm)));\r\n --_mono-card-icon-size: var(--mono-card-icon-size, var(--mono-card-icon-size-sm, calc(var(--mono-spacing) * 7.5)));\r\n}\r\n\r\n[mono-card][mono-size=\"lg\"] {\r\n --_mono-card-padding: var(--mono-card-padding, var(--mono-card-padding-lg, calc(var(--mono-spacing) * 7)));\r\n --_mono-card-gap: var(--mono-card-gap, var(--mono-card-gap-lg, calc(var(--mono-spacing) * 7)));\r\n /* lg keeps md's body and subtitle type by DEFAULT, but still reads its own\r\n knobs — every step of the ladder has to be settable, or a flavor's value is\r\n silently inert (the theme lint catches that). */\r\n --_mono-card-font: var(--mono-card-font, var(--mono-card-font-lg, var(--mono-text-sm)));\r\n --_mono-card-subtitle-font: var(--mono-card-subtitle-font, var(--mono-card-subtitle-font-lg, var(--mono-text-sm)));\r\n --_mono-card-title-font: var(--mono-card-title-font, var(--mono-card-title-font-lg, var(--mono-text-lg)));\r\n --_mono-card-icon-size: var(--mono-card-icon-size, var(--mono-card-icon-size-lg, calc(var(--mono-spacing) * 10)));\r\n}\r\n\r\n[mono-card][mono-size=\"xl\"] {\r\n --_mono-card-padding: var(--mono-card-padding, var(--mono-card-padding-xl, calc(var(--mono-spacing) * 8)));\r\n --_mono-card-gap: var(--mono-card-gap, var(--mono-card-gap-xl, calc(var(--mono-spacing) * 8)));\r\n --_mono-card-font: var(--mono-card-font, var(--mono-card-font-xl, var(--mono-text-base)));\r\n --_mono-card-title-font: var(--mono-card-title-font, var(--mono-card-title-font-xl, var(--mono-text-xl)));\r\n --_mono-card-subtitle-font: var(--mono-card-subtitle-font, var(--mono-card-subtitle-font-xl, var(--mono-text-base)));\r\n --_mono-card-icon-size: var(--mono-card-icon-size, var(--mono-card-icon-size-xl, calc(var(--mono-spacing) * 11)));\r\n}\r\n\r\n[mono-card][mono-size=\"xxl\"] {\r\n --_mono-card-padding: var(--mono-card-padding, var(--mono-card-padding-xxl, calc(var(--mono-spacing) * 9)));\r\n --_mono-card-gap: var(--mono-card-gap, var(--mono-card-gap-xxl, calc(var(--mono-spacing) * 9)));\r\n --_mono-card-font: var(--mono-card-font, var(--mono-card-font-xxl, var(--mono-text-base)));\r\n --_mono-card-title-font: var(--mono-card-title-font, var(--mono-card-title-font-xxl, calc(var(--mono-text-xl) * 1.125)));\r\n --_mono-card-subtitle-font: var(--mono-card-subtitle-font, var(--mono-card-subtitle-font-xxl, var(--mono-text-lg)));\r\n --_mono-card-icon-size: var(--mono-card-icon-size, var(--mono-card-icon-size-xxl, calc(var(--mono-spacing) * 12)));\r\n}\r\n\r\n/* =========================================\r\n Corners — the library-wide radius scale\r\n ========================================= */\r\n\r\n[mono-card][mono-rounded=\"none\"] {\r\n --_mono-card-radius-preset: 0;\r\n}\r\n[mono-card][mono-rounded=\"xs\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-sm);\r\n}\r\n[mono-card][mono-rounded=\"sm\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-sm);\r\n}\r\n[mono-card][mono-rounded=\"md\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-md);\r\n}\r\n[mono-card][mono-rounded=\"lg\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-lg);\r\n}\r\n[mono-card][mono-rounded=\"xl\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-xl);\r\n}\r\n[mono-card][mono-rounded=\"xxl\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-2xl);\r\n}\r\n[mono-card][mono-rounded=\"full\"] {\r\n --_mono-card-radius-preset: var(--mono-radius-full);\r\n}\r\n\r\n/* =========================================\r\n Colours — EXTENSION: the ring and the title take the role's colour\r\n ========================================= */\r\n\r\n[mono-card][mono-color=\"primary\"] {\r\n --_mono-card-accent-preset: var(--primary);\r\n}\r\n[mono-card][mono-color=\"secondary\"] {\r\n --_mono-card-accent-preset: var(--secondary-foreground);\r\n}\r\n[mono-card][mono-color=\"success\"] {\r\n --_mono-card-accent-preset: var(--success);\r\n}\r\n[mono-card][mono-color=\"danger\"] {\r\n --_mono-card-accent-preset: var(--destructive);\r\n}\r\n[mono-card][mono-color=\"warning\"] {\r\n --_mono-card-accent-preset: var(--warning);\r\n}\r\n[mono-card][mono-color=\"info\"] {\r\n --_mono-card-accent-preset: var(--info);\r\n}\r\n[mono-card][mono-color=\"teal\"] {\r\n --_mono-card-accent-preset: var(--teal);\r\n}\r\n[mono-card][mono-color=\"purple\"] {\r\n --_mono-card-accent-preset: var(--purple);\r\n}\r\n[mono-card][mono-color=\"dark\"] {\r\n --_mono-card-accent-preset: var(--dark);\r\n}\r\n[mono-card][mono-color=\"neutral\"] {\r\n --_mono-card-accent-preset: var(--neutral);\r\n}\r\n[mono-card][mono-color=\"light\"] {\r\n --_mono-card-accent-preset: var(--muted-foreground);\r\n}\r\n\r\n/* =========================================\r\n Variants\r\n ========================================= */\r\n\r\n/* `outlined` IS upstream's `.card`: the ring and shadow-xs already on the root */\r\n[mono-card][mono-variant=\"outlined\"] {\r\n --_mono-card-ring-color: var(--mono-card-ring-color, color-mix(in oklab, var(--_mono-card-accent) 34%, transparent));\r\n}\r\n\r\n/* EXTENSION — a lifted card; the ring stays, the elevation grows */\r\n[mono-card]:is(:not([mono-variant]), [mono-variant=\"elevated\"]) {\r\n --_mono-card-elevation: var(--_mono-card-shadow-elevated);\r\n}\r\n\r\n/* EXTENSION — no elevation at all */\r\n[mono-card][mono-variant=\"flat\"] {\r\n --_mono-card-elevation: 0 0 #0000;\r\n}\r\n\r\n/* EXTENSION — an accent wash (flat tint, never a gradient) */\r\n[mono-card][mono-variant=\"tonal\"] {\r\n --_mono-card-elevation: 0 0 #0000;\r\n --_mono-card-ring-color: var(--mono-card-ring-color, color-mix(in oklab, var(--_mono-card-accent) 22%, transparent));\r\n background-color: color-mix(in oklab, var(--_mono-card-accent) var(--mono-mode-tint), var(--_mono-card-bg));\r\n}\r\n\r\n/* EXTENSION — a blurred pane over whatever is behind it */\r\n[mono-card][mono-variant=\"glass\"] {\r\n --_mono-card-elevation: var(--mono-shadow-lg);\r\n --_mono-card-ring-color: var(--mono-card-glass-border, color-mix(in oklab, var(--foreground) 12%, transparent));\r\n background-color: var(--mono-card-glass-bg, color-mix(in oklab, var(--card) 45%, transparent));\r\n backdrop-filter: blur(var(--mono-card-glass-blur, 12px));\r\n}\r\n\r\n/* =========================================\r\n States\r\n ========================================= */\r\n\r\n/* EXTENSION — a real border on top of the ring */\r\n[mono-card][mono-bordered] {\r\n border: var(--_mono-card-border-width) solid var(--_mono-card-border-color);\r\n}\r\n\r\n[mono-card][mono-clickable] {\r\n cursor: pointer;\r\n}\r\n\r\n@media (hover: hover) {\r\n [mono-card]:is([mono-hoverable], [mono-clickable]):not([mono-disabled]):hover {\r\n --_mono-card-elevation: var(--_mono-card-shadow-hover);\r\n }\r\n}\r\n\r\n/* EXTENSION — the chosen card, in the accent (Basecoat's own `has-[:checked]`\r\n treatment for a selectable label: primary/5 with a primary/30 edge) */\r\n[mono-card][mono-selected] {\r\n --_mono-card-edge-color: color-mix(in oklab, var(--_mono-card-accent) var(--mono-mode-checked-border), transparent);\r\n --_mono-card-edge-width: calc(var(--mono-border-width) * 2);\r\n background-color: color-mix(in oklab, var(--_mono-card-accent) var(--mono-mode-checked-bg), var(--_mono-card-bg));\r\n}\r\n\r\n[mono-card][mono-disabled] {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n pointer-events: none;\r\n}\r\n\r\n/* the focus ring is that same inside edge, recoloured and thickened — an\r\n outside ring would be clipped exactly where the resting one was */\r\n[mono-card]:focus-visible {\r\n --_mono-card-edge-width: var(--_mono-card-focus-ring-width);\r\n --_mono-card-edge-color: color-mix(in oklab, var(--_mono-card-focus-ring-color) var(--_mono-card-focus-ring-alpha), transparent);\r\n}\r\n\r\n/* =========================================\r\n Regions — every one of them is inset by the card's padding, which is how\r\n upstream does it (`px-6` per region, `py-6` on the card) so a media band can\r\n run full-bleed between them\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 components/card.css .card >> > header\r\n — grid auto-rows-min items-start (grid-cols-[1fr_auto] when an action is present) */\r\n/* basecoat@1.0.2 styles/vega.css .card > header — gap-1 px-6 */\r\n:where([mono-card]) > [mono-header] {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: var(--_mono-card-actions-gap);\r\n padding-inline: var(--_mono-card-padding);\r\n}\r\n\r\n/* No subtitle: the title is a single line beside a taller icon chip, so\r\n top-aligning pinned it to the chip's top edge. Centre the row instead.\r\n With a subtitle the row stays top-aligned (icon level with the title). */\r\n:where([mono-card]) > [mono-header][mono-no-subtitle] {\r\n align-items: center;\r\n}\r\n\r\n:where([mono-card]) > [mono-header] > [mono-header-content] {\r\n display: grid;\r\n align-content: start;\r\n gap: var(--_mono-card-header-gap);\r\n min-width: 0;\r\n flex: 1 1 auto;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .card > header > :is(h2, h3, [data-title], .card-title)\r\n — text-base leading-normal font-medium (upstream also sets `leading-none` in\r\n components/card.css; vega's `leading-normal` wins) */\r\n:where([mono-card]) [mono-title] {\r\n margin: 0;\r\n font-size: var(--_mono-card-title-font);\r\n line-height: var(--mono-card-title-line-height, var(--mono-leading-normal));\r\n font-weight: var(--mono-card-title-font-weight, var(--mono-font-weight-medium));\r\n letter-spacing: var(--mono-card-title-tracking, normal);\r\n text-transform: var(--mono-card-title-transform, none);\r\n color: var(--mono-card-title-color, var(--_mono-card-text));\r\n}\r\n\r\n/* the colour prop tints the title, nothing else — `color` is an accent, not a fill */\r\n[mono-card][mono-color]:not([mono-color=\"neutral\"]) [mono-title] {\r\n color: var(--mono-card-title-color, var(--_mono-card-accent));\r\n}\r\n\r\n/* A heading handed in as <h2>/<h3>/<p> brings its own margins and type, and a\r\n host page styles those tags too (`.vp-doc h3` is a class selector, so it beats\r\n any sane rule here). The card OWNS the header type — Basecoat's own\r\n `.card > header > :is(h2, h3, …)` does the same — so both twins are important:\r\n the light one to beat the page, the slotted one because an inner-tree rule\r\n cannot otherwise reach outer-tree content at all. */\r\n:where([mono-card]) :is([mono-title], [mono-subtitle]) > * {\r\n margin: 0 !important;\r\n font: inherit !important;\r\n letter-spacing: inherit !important;\r\n color: inherit !important;\r\n}\r\n\r\n:where([mono-card]) :is([mono-title], [mono-subtitle]) slot::slotted(*) {\r\n margin: 0 !important;\r\n font: inherit !important;\r\n letter-spacing: inherit !important;\r\n color: inherit !important;\r\n}\r\n\r\n[mono-card] :is(h1, h2, h3, h4, h5, h6, p, small)[mono-title] {\r\n margin: 0;\r\n font-size: var(--_mono-card-title-font);\r\n line-height: var(--mono-card-title-line-height, var(--mono-leading-normal));\r\n font-weight: var(--mono-card-title-font-weight, var(--mono-font-weight-medium));\r\n letter-spacing: var(--mono-card-title-tracking, normal);\r\n}\r\n\r\n[mono-card] :is(h1, h2, h3, h4, h5, h6, p, small)[mono-subtitle] {\r\n margin: 0;\r\n font-size: var(--_mono-card-subtitle-font);\r\n line-height: var(--mono-card-subtitle-line-height, var(--mono-leading-normal));\r\n font-weight: var(--mono-font-weight-normal);\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .card > header > :is(p, [data-description], .card-description)\r\n — text-muted-foreground text-sm */\r\n:where([mono-card]) [mono-subtitle] {\r\n margin: 0;\r\n font-size: var(--_mono-card-subtitle-font);\r\n line-height: var(--mono-card-subtitle-line-height, var(--mono-leading-normal));\r\n font-weight: var(--mono-font-weight-normal);\r\n color: var(--_mono-card-subtext);\r\n}\r\n\r\n/* EXTENSION — the header's leading glyph box */\r\n:where([mono-card]) > [mono-header] > [mono-icon] {\r\n flex: 0 0 auto;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--_mono-card-icon-size);\r\n height: var(--_mono-card-icon-size);\r\n border-radius: var(--mono-card-icon-radius, var(--mono-radius-md));\r\n line-height: 1;\r\n background-color: color-mix(in oklab, var(--_mono-card-accent) var(--mono-mode-tint), transparent);\r\n color: var(--_mono-card-accent);\r\n overflow: hidden;\r\n}\r\n\r\n/* `:not(slot)`: in the shadow build the region's only child IS a <slot>, a real\r\n element that this rule would size — and then `::slotted()` would size the\r\n glyph again, to 55% of that 55%. The glyph came out half the size of its light\r\n twin. */\r\n:where([mono-card]) > [mono-header] > [mono-icon] > *:not(slot) {\r\n display: block;\r\n width: var(--_mono-card-icon-glyph);\r\n height: var(--_mono-card-icon-glyph);\r\n}\r\n\r\n:where([mono-card]) > [mono-header] > [mono-icon] slot::slotted(*) {\r\n display: block !important;\r\n width: var(--_mono-card-icon-glyph) !important;\r\n height: var(--_mono-card-icon-glyph) !important;\r\n}\r\n\r\n/* basecoat@1.0.2 styles/vega.css .card > section — px-6 */\r\n:where([mono-card]) > [mono-body] {\r\n padding-inline: var(--_mono-card-padding);\r\n min-width: 0;\r\n}\r\n\r\n[mono-card] > :is(p, ul, ol, dl, blockquote)[mono-body] {\r\n margin-block: 0;\r\n}\r\n\r\n:where([mono-card]) > [mono-body]:empty {\r\n display: none;\r\n}\r\n\r\n/* The body's own children keep their block margins out of the card's rhythm —\r\n the card's `gap` is what spaces the regions, and content that wants paragraph\r\n spacing brings its own.\r\n\r\n ALL children, not just the first and last: in the shadow build `::slotted()`\r\n sees the HOST's child order, so `:first-child` there means \"first child of the\r\n card element\" — a body paragraph that follows a `slot=\"title\"` heading is not\r\n first, and kept the page's margins while its light twin did not.\r\n\r\n `!important` on the slotted twins is not a style choice: a `::slotted()` rule\r\n is an INNER-tree declaration, and a normal declaration from the outer tree (a\r\n page's `p { margin: … }`) beats it at any specificity. Marking it important\r\n inverts that order. The light twins need no such thing — they are ordinary\r\n descendant rules in the same tree as the page. */\r\n:where([mono-card]) > [mono-body] > * {\r\n margin-block: 0 !important;\r\n}\r\n\r\n:where([mono-card]) > [mono-body] slot::slotted(*) {\r\n margin-block: 0 !important;\r\n}\r\n\r\n/* basecoat@1.0.2 components/card.css .card >> > footer — flex items-center */\r\n/* basecoat@1.0.2 styles/vega.css .card > footer — rounded-b-xl px-6 [.border-t]:pt-6 */\r\n:where([mono-card]) > :is([mono-actions], [mono-footer]) {\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n gap: var(--_mono-card-actions-gap);\r\n padding-inline: var(--_mono-card-padding);\r\n}\r\n\r\n:where([mono-card]) > [mono-actions] {\r\n justify-content: flex-end;\r\n}\r\n\r\n/* the dividers: upstream's `[.border-b]:pb-6` idiom — a divided region pays the\r\n padding back on the divided edge. Both are ON by default, so the ATTRIBUTE\r\n marks the exception. */\r\n[mono-card]:not([mono-no-header-divider]) > [mono-header]:not([mono-empty]) {\r\n padding-bottom: var(--_mono-card-padding);\r\n border-bottom: var(--mono-border-width) solid var(--_mono-card-divider-color);\r\n}\r\n\r\n[mono-card]:not([mono-no-footer-divider]) > :is([mono-actions], [mono-footer]):not([mono-empty]) {\r\n padding-top: var(--_mono-card-padding);\r\n border-top: var(--mono-border-width) solid var(--_mono-card-divider-color);\r\n}\r\n\r\n/* =========================================\r\n Media — a full-bleed band; upstream gives the first/last child image the\r\n card's own corners and drops the padding on that edge\r\n ========================================= */\r\n\r\n/* basecoat@1.0.2 styles/vega.css .card\r\n — has-[>img:first-child]:pt-0 [&>img:first-child]:rounded-t-xl [&>img:last-child]:rounded-b-xl */\r\n:where([mono-card]) > [mono-media] {\r\n display: block;\r\n overflow: hidden;\r\n line-height: 0;\r\n}\r\n\r\n:where([mono-card]) > [mono-media] :is(img, picture, video, canvas, svg) {\r\n display: block;\r\n width: 100%;\r\n max-width: 100%;\r\n height: auto;\r\n object-fit: cover;\r\n}\r\n\r\n:where([mono-card]) > [mono-media] slot::slotted(:is(img, picture, video, canvas, svg)) {\r\n display: block !important;\r\n width: 100% !important;\r\n max-width: 100% !important;\r\n height: auto !important;\r\n object-fit: cover !important;\r\n}\r\n\r\n[mono-card]:has(> [mono-media]:not([mono-empty]):first-child) {\r\n padding-top: 0;\r\n}\r\n\r\n[mono-card]:has(> [mono-media]:not([mono-empty]):last-child) {\r\n padding-bottom: 0;\r\n}\r\n\r\n/* =========================================\r\n Loading — EXTENSION: a blurred veil with a spinner\r\n ========================================= */\r\n\r\n:where([mono-card]) > [mono-loading] {\r\n position: absolute;\r\n inset: 0;\r\n z-index: 2;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: var(--mono-card-loading-bg, color-mix(in oklab, var(--card) 58%, transparent));\r\n backdrop-filter: blur(var(--mono-card-loading-blur, 2px));\r\n}\r\n\r\n:where([mono-card]) [mono-spinner] {\r\n display: block;\r\n width: var(--mono-card-spinner-size, calc(var(--mono-spacing) * 5.5));\r\n height: var(--mono-card-spinner-size, calc(var(--mono-spacing) * 5.5));\r\n border: var(--mono-card-spinner-width, 2px) solid color-mix(in oklab, var(--_mono-card-accent) 25%, transparent);\r\n border-top-color: var(--_mono-card-accent);\r\n border-radius: var(--mono-radius-full);\r\n animation: mono-card-spin var(--mono-card-spinner-speed, 0.65s) linear infinite;\r\n}\r\n\r\n@keyframes mono-card-spin {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n [mono-card] {\r\n transition: none;\r\n }\r\n\r\n :where([mono-card]) [mono-spinner] {\r\n animation-duration: 2.4s;\r\n }\r\n}\r\n";
|
|
281
|
+
//#endregion
|
|
282
|
+
//#region src/components/card/mono-card.ts
|
|
283
|
+
/** Named regions the card lays out. The unnamed body is the fallback bucket. */
|
|
284
|
+
var CARD_NAMED_SLOTS = [
|
|
285
|
+
"media",
|
|
286
|
+
"icon",
|
|
287
|
+
"title",
|
|
288
|
+
"subtitle",
|
|
289
|
+
"header",
|
|
290
|
+
"actions",
|
|
291
|
+
"footer"
|
|
292
|
+
];
|
|
293
|
+
var MonoCard = class MonoCard extends MonoCardCore(LitElement) {
|
|
294
|
+
constructor(..._args) {
|
|
295
|
+
super(..._args);
|
|
296
|
+
this._slotsCaptured = false;
|
|
297
|
+
this._buckets = /* @__PURE__ */ new Map();
|
|
298
|
+
}
|
|
299
|
+
static {
|
|
300
|
+
this.styles = [unsafeCSS(card_default)];
|
|
301
|
+
}
|
|
302
|
+
createRenderRoot() {
|
|
303
|
+
return this;
|
|
304
|
+
}
|
|
305
|
+
_renderMedia() {
|
|
306
|
+
if (!this._hasMedia) return nothing;
|
|
307
|
+
return html`
|
|
308
|
+
<div class=${this._cls("mono-card-media", "media")} mono-media data-mono-slot="media"></div>
|
|
309
|
+
`;
|
|
310
|
+
}
|
|
311
|
+
_renderHeader() {
|
|
312
|
+
if (!this._hasHeader) return nothing;
|
|
313
|
+
return html`
|
|
314
|
+
<div
|
|
315
|
+
class=${this._cls("mono-card-header", "header")}
|
|
316
|
+
mono-header
|
|
317
|
+
?mono-no-subtitle=${this._noSubtitle}
|
|
318
|
+
>
|
|
319
|
+
${this._hasIcon && !this._hasHeaderSlot ? html`
|
|
320
|
+
<div class=${this._cls("card-icon", "icon")} mono-icon data-mono-slot="icon"></div>
|
|
321
|
+
` : nothing}
|
|
322
|
+
|
|
323
|
+
${this._hasHeaderSlot ? html`
|
|
324
|
+
<div
|
|
325
|
+
class=${this._cls("mono-card-header-content", "headerContent")}
|
|
326
|
+
mono-header-content
|
|
327
|
+
data-mono-slot="header"
|
|
328
|
+
></div>
|
|
329
|
+
` : html`
|
|
330
|
+
<div class=${this._cls("mono-card-header-content", "headerContent")} mono-header-content>
|
|
331
|
+
${this._hasTitle ? html`
|
|
332
|
+
<div class=${this._cls("card-title", "title")} mono-title data-mono-slot="title"></div>
|
|
333
|
+
` : this.title ? html`
|
|
334
|
+
<div class=${this._cls("card-title", "title")} mono-title>
|
|
335
|
+
${this.title}
|
|
336
|
+
</div>
|
|
337
|
+
` : nothing}
|
|
338
|
+
|
|
339
|
+
${this._hasSubtitle ? html`
|
|
340
|
+
<div class=${this._cls("card-subtitle", "subtitle")} mono-subtitle data-mono-slot="subtitle"></div>
|
|
341
|
+
` : this.subtitle ? html`
|
|
342
|
+
<div class=${this._cls("card-subtitle", "subtitle")} mono-subtitle>
|
|
343
|
+
${this.subtitle}
|
|
344
|
+
</div>
|
|
345
|
+
` : nothing}
|
|
346
|
+
</div>
|
|
347
|
+
`}
|
|
348
|
+
</div>
|
|
349
|
+
`;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* The body is the only region rendered unconditionally.
|
|
353
|
+
*
|
|
354
|
+
* It's the home for the fallback bucket, which holds the consumer framework's
|
|
355
|
+
* positional anchors. Those need a live parent even when the card starts with
|
|
356
|
+
* no visible body content — that's what lets a `v-if` flipping on later insert
|
|
357
|
+
* *inside* the card instead of beside it, and it stops Lit from ever destroying
|
|
358
|
+
* a container that holds the consumer's nodes. `.mono-card-body:empty` collapses
|
|
359
|
+
* it while it holds nothing but anchors.
|
|
360
|
+
*/
|
|
361
|
+
_renderBody() {
|
|
362
|
+
return html`
|
|
363
|
+
<div class=${this._cls("mono-card-body", "body")} mono-body data-mono-slot="default"></div>
|
|
364
|
+
`;
|
|
365
|
+
}
|
|
366
|
+
_renderActions() {
|
|
367
|
+
if (!this._hasActions) return nothing;
|
|
368
|
+
return html`
|
|
369
|
+
<div class=${this._cls("mono-card-actions", "actions")} mono-actions data-mono-slot="actions"></div>
|
|
370
|
+
`;
|
|
371
|
+
}
|
|
372
|
+
_renderFooter() {
|
|
373
|
+
if (!this._hasFooter) return nothing;
|
|
374
|
+
return html`
|
|
375
|
+
<div class=${this._cls("mono-card-footer", "footer")} mono-footer data-mono-slot="footer"></div>
|
|
376
|
+
`;
|
|
377
|
+
}
|
|
378
|
+
_renderLoading() {
|
|
379
|
+
if (!this.loading) return nothing;
|
|
380
|
+
return html`
|
|
381
|
+
<div class=${this._cls("mono-card-loading", "loading")} mono-loading>
|
|
382
|
+
<span class="mono-card-spinner" mono-spinner></span>
|
|
383
|
+
</div>
|
|
384
|
+
`;
|
|
385
|
+
}
|
|
386
|
+
_renderContent() {
|
|
387
|
+
const mediaTop = this.mediaPosition === "top";
|
|
388
|
+
const mediaBottom = this.mediaPosition === "bottom";
|
|
389
|
+
return html`
|
|
390
|
+
${mediaTop ? this._renderMedia() : nothing}
|
|
391
|
+
${this._renderHeader()}
|
|
392
|
+
${this._renderBody()}
|
|
393
|
+
${this._renderActions()}
|
|
394
|
+
${this._renderFooter()}
|
|
395
|
+
${mediaBottom ? this._renderMedia() : nothing}
|
|
396
|
+
${this._renderLoading()}
|
|
397
|
+
`;
|
|
398
|
+
}
|
|
399
|
+
render() {
|
|
400
|
+
const role = this._isInteractive ? "button" : "article";
|
|
401
|
+
const tabIndex = this._isInteractive && !this._isDisabled ? "0" : void 0;
|
|
402
|
+
if (this.href) return html`
|
|
403
|
+
<a
|
|
404
|
+
class=${this._cardClasses}
|
|
405
|
+
mono-card
|
|
406
|
+
mono-size=${this.size === "md" ? nothing : this.size}
|
|
407
|
+
mono-variant=${this.variant === "elevated" ? nothing : this.variant}
|
|
408
|
+
mono-color=${this.color === "neutral" ? nothing : this.color}
|
|
409
|
+
mono-rounded=${this.rounded ? this.rounded : nothing}
|
|
410
|
+
?mono-bordered=${this.bordered}
|
|
411
|
+
?mono-hoverable=${this.hoverable}
|
|
412
|
+
?mono-clickable=${this.clickable || !!this.href}
|
|
413
|
+
?mono-selected=${this.selected}
|
|
414
|
+
?mono-disabled=${this._isDisabled}
|
|
415
|
+
?mono-loading=${this.loading}
|
|
416
|
+
?mono-no-header-divider=${!this.headerDivider}
|
|
417
|
+
?mono-no-footer-divider=${!this.footerDivider}
|
|
418
|
+
style=${styleMap(this._sizeStyle())}
|
|
419
|
+
href=${this._isDisabled ? void 0 : ifDefined(this.href)}
|
|
420
|
+
target=${ifDefined(this.target)}
|
|
421
|
+
role=${role}
|
|
422
|
+
tabindex=${ifDefined(tabIndex)}
|
|
423
|
+
aria-label=${ifDefined(this.ariaLabelText)}
|
|
424
|
+
aria-disabled=${this._isDisabled ? "true" : "false"}
|
|
425
|
+
aria-busy=${this.loading ? "true" : "false"}
|
|
426
|
+
title=""
|
|
427
|
+
@click=${this._handleClick}
|
|
428
|
+
@keydown=${this._handleKeyDown}
|
|
429
|
+
>
|
|
430
|
+
${this._renderContent()}
|
|
431
|
+
</a>
|
|
432
|
+
`;
|
|
433
|
+
return html`
|
|
434
|
+
<div
|
|
435
|
+
class=${this._cardClasses}
|
|
436
|
+
mono-card
|
|
437
|
+
mono-size=${this.size === "md" ? nothing : this.size}
|
|
438
|
+
mono-variant=${this.variant === "elevated" ? nothing : this.variant}
|
|
439
|
+
mono-color=${this.color === "neutral" ? nothing : this.color}
|
|
440
|
+
mono-rounded=${this.rounded ? this.rounded : nothing}
|
|
441
|
+
?mono-bordered=${this.bordered}
|
|
442
|
+
?mono-hoverable=${this.hoverable}
|
|
443
|
+
?mono-clickable=${this.clickable || !!this.href}
|
|
444
|
+
?mono-selected=${this.selected}
|
|
445
|
+
?mono-disabled=${this._isDisabled}
|
|
446
|
+
?mono-loading=${this.loading}
|
|
447
|
+
?mono-no-header-divider=${!this.headerDivider}
|
|
448
|
+
?mono-no-footer-divider=${!this.footerDivider}
|
|
449
|
+
style=${styleMap(this._sizeStyle())}
|
|
450
|
+
role=${role}
|
|
451
|
+
tabindex=${ifDefined(tabIndex)}
|
|
452
|
+
aria-label=${ifDefined(this.ariaLabelText)}
|
|
453
|
+
aria-disabled=${this._isDisabled ? "true" : "false"}
|
|
454
|
+
aria-busy=${this.loading ? "true" : "false"}
|
|
455
|
+
title=""
|
|
456
|
+
@click=${this._handleClick}
|
|
457
|
+
@keydown=${this._handleKeyDown}
|
|
458
|
+
>
|
|
459
|
+
${this._renderContent()}
|
|
460
|
+
</div>
|
|
461
|
+
`;
|
|
462
|
+
}
|
|
463
|
+
connectedCallback() {
|
|
464
|
+
super.connectedCallback();
|
|
465
|
+
this._captureSlots();
|
|
466
|
+
if (this.isConnected) this.performUpdate();
|
|
467
|
+
}
|
|
468
|
+
_captureSlots() {
|
|
469
|
+
if (this._slotsCaptured) return;
|
|
470
|
+
this._slotsCaptured = true;
|
|
471
|
+
this._buckets = captureLightSlots(this, { names: CARD_NAMED_SLOTS });
|
|
472
|
+
this._hasMedia = bucketHasContent(this._buckets.get("media"));
|
|
473
|
+
this._hasIcon = bucketHasContent(this._buckets.get("icon"));
|
|
474
|
+
this._hasTitle = bucketHasContent(this._buckets.get("title"));
|
|
475
|
+
this._hasSubtitle = bucketHasContent(this._buckets.get("subtitle"));
|
|
476
|
+
this._hasHeaderSlot = bucketHasContent(this._buckets.get("header"));
|
|
477
|
+
this._hasActions = bucketHasContent(this._buckets.get("actions"));
|
|
478
|
+
this._hasFooter = bucketHasContent(this._buckets.get("footer"));
|
|
479
|
+
this._hasDefault = bucketHasContent(this._buckets.get("default"));
|
|
480
|
+
}
|
|
481
|
+
updated(changed) {
|
|
482
|
+
super.updated(changed);
|
|
483
|
+
placeLightSlots(this, this._buckets);
|
|
484
|
+
for (const nodes of this._buckets.values()) this._parked = parkDetachedNodes(this._parked, nodes);
|
|
485
|
+
}
|
|
486
|
+
};
|
|
487
|
+
MonoCard = __decorate([customElement("mono-card")], MonoCard);
|
|
488
|
+
//#endregion
|
|
489
|
+
//#region src/components/card/card-utils.ts
|
|
490
|
+
/**
|
|
491
|
+
* Validate card props
|
|
492
|
+
*/
|
|
493
|
+
function validateCardProps(props) {
|
|
494
|
+
const validVariants = [
|
|
495
|
+
"outlined",
|
|
496
|
+
"elevated",
|
|
497
|
+
"flat",
|
|
498
|
+
"tonal"
|
|
499
|
+
];
|
|
500
|
+
const validColors = [
|
|
501
|
+
"primary",
|
|
502
|
+
"secondary",
|
|
503
|
+
"success",
|
|
504
|
+
"danger",
|
|
505
|
+
"warning",
|
|
506
|
+
"info",
|
|
507
|
+
"neutral"
|
|
508
|
+
];
|
|
509
|
+
if (props.variant && !validVariants.includes(props.variant)) return false;
|
|
510
|
+
if (props.color && !validColors.includes(props.color)) return false;
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Generate ARIA attributes for accessibility
|
|
515
|
+
*/
|
|
516
|
+
function generateCardAttributes(clickable, hoverable, label) {
|
|
517
|
+
return {
|
|
518
|
+
"role": clickable ? "button" : "article",
|
|
519
|
+
"tabindex": clickable ? "0" : void 0,
|
|
520
|
+
"aria-label": label || void 0
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
//#endregion
|
|
524
|
+
export { MonoCard, generateCardAttributes, validateCardProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|