scb-wc 0.1.3 → 0.1.5
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/README.md +204 -164
- package/all.js +91 -5
- package/bin/scb-wc.mjs +141 -0
- package/blazor/CustomEvents.cs +83 -0
- package/blazor/ScbBlazorInteropBase.cs +4460 -1674
- package/blazor/scb-blazor-bridge.js +6827 -2805
- package/blazor/wrappers/ScbAccordion.razor +50 -0
- package/blazor/wrappers/ScbAppBar.razor +95 -0
- package/blazor/wrappers/ScbBreadcrumb.razor +59 -0
- package/blazor/wrappers/ScbCalendar.razor +100 -0
- package/blazor/wrappers/ScbCalendarCard.razor +189 -0
- package/blazor/wrappers/ScbCheckbox.razor +92 -0
- package/blazor/wrappers/ScbCollapse.razor +76 -0
- package/blazor/wrappers/ScbCookiesConsent.razor +106 -0
- package/blazor/wrappers/ScbDatepicker.razor +77 -0
- package/blazor/wrappers/ScbDialog.razor +72 -0
- package/blazor/wrappers/ScbDrawer.razor +64 -0
- package/blazor/wrappers/ScbDropZone.razor +168 -0
- package/blazor/wrappers/ScbDropdown.razor +76 -0
- package/blazor/wrappers/ScbHorizontalScroller.razor +137 -0
- package/blazor/wrappers/ScbList.razor +77 -0
- package/blazor/wrappers/ScbMenu.razor +71 -0
- package/blazor/wrappers/ScbNav.razor +92 -0
- package/blazor/wrappers/ScbNotificationCard.razor +122 -0
- package/blazor/wrappers/ScbOptionsMenu.razor +88 -0
- package/blazor/wrappers/ScbPagination.razor +80 -0
- package/blazor/wrappers/ScbRadioGroup.razor +94 -0
- package/blazor/wrappers/ScbSearch.razor +83 -0
- package/blazor/wrappers/ScbSegmentedButton.razor +85 -0
- package/blazor/wrappers/ScbSelect.razor +79 -0
- package/blazor/wrappers/ScbSlider.razor +96 -0
- package/blazor/wrappers/ScbSnackbar.razor +93 -0
- package/blazor/wrappers/ScbSwitch.razor +92 -0
- package/blazor/wrappers/ScbTable.razor +67 -0
- package/blazor/wrappers/ScbTableAdvanced.razor +78 -0
- package/blazor/wrappers/ScbTabs.razor +55 -0
- package/blazor/wrappers/ScbTextfield.razor +104 -0
- package/blazor/wrappers/ScbTooltip.razor +88 -0
- package/blazor/wrappers/ScbViz.razor +142 -0
- package/demo-data-preview.svg +12 -0
- package/dummy.png +0 -0
- package/fonts/inter/files/inter-latin-wght-italic.woff2 +0 -0
- package/fonts/inter/files/inter-latin-wght-normal.woff2 +0 -0
- package/fonts/material-symbols-outlined/files/material-symbols-outlined-latin-wght-normal.woff2 +0 -0
- package/index.js +88 -1
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-accordion/scb-accordion-item.js +211 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-accordion/scb-accordion.js +44 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-app-bar/scb-app-bar.js +166 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-avatar/scb-avatar.js +111 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-badge/scb-badge.js +80 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-breadcrumb/scb-breadcrumb-item.js +14 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-breadcrumb/scb-breadcrumb.js +96 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-button/scb-button.js +268 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-calendar/scb-calendar-event.js +6 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-calendar/scb-calendar.js +168 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-calendar-card/scb-calendar-card.js +346 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-card/scb-card.js +761 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-checkbox/scb-checkbox-group.js +33 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-checkbox/scb-checkbox.js +140 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-chevron/scb-chevron.js +121 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-chip/scb-chip.js +66 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-collapse/scb-collapse.js +89 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-cookies-consent/scb-cookies-consent.js +78 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-datepicker/scb-datepicker.js +296 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-dialog/scb-dialog.js +265 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-divider/scb-divider.js +69 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-drawer/scb-drawer.js +128 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-drop-zone/scb-drop-zone.js +555 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-dropdown/scb-dropdown.js +306 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-fab/scb-fab.js +108 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-fact-card/scb-fact-card-content.js +46 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-fact-card/scb-fact-card.js +226 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-footer/scb-footer-section.js +3 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-footer/scb-footer.js +210 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-gallery-grid/scb-gallery-grid.js +131 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-grid/scb-grid-item.js +11 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-grid/scb-grid.js +98 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-grid/scb-stack.js +33 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-menu-group.js +1 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-menu-item.js +5 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-tab.js +5 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-utility.js +1 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header.js +681 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-horizontal-scroller/scb-horizontal-scroller.js +196 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-icon-button/scb-icon-button.js +171 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-keyfigure-card/scb-keyfigure-card.js +212 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-link/scb-link.js +61 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-list/scb-list-item.js +153 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-list/scb-list.js +26 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-menu-item.js +205 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-menu-section.js +42 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-menu.js +81 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-sub-menu.js +10 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-nav/scb-nav-item.js +28 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-nav/scb-nav.js +104 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-notification-card/scb-notification-card.js +358 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-options-menu/scb-options-menu-item.js +66 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-options-menu/scb-options-menu.js +88 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-options-menu/scb-options-sub-menu.js +34 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-overlay/scb-overlay.js +49 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-pagination/scb-pagination.js +312 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-progress-indicator/scb-progress-indicator.js +87 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-progress-stepper/scb-progress-step.js +147 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-progress-stepper/scb-progress-stepper.js +62 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-radio-button/scb-radio-button.js +132 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-radio-button/scb-radio-group.js +43 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-scrollspy/scb-scrollspy.js +79 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-search/scb-search.js +292 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-segmented-button/scb-segmented-button.js +32 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-segmented-button/scb-segmented-item.js +74 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-select/scb-select-option.js +61 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-select/scb-select.js +284 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-skeleton/scb-skeleton.js +38 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-slider/scb-slider.js +27 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-snackbar/scb-snackbar.js +128 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-status-pill/scb-status-pill.js +45 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-stepper/scb-step.js +239 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-stepper/scb-stepper.js +139 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-switch/scb-switch.js +59 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-table/scb-table.js +51 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-table-advanced/scb-table-advanced.js +76 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tabs/scb-primary-tab.js +6 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tabs/scb-secondary-tab.js +6 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tabs/scb-tabs.js +28 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-textfield/scb-textfield.js +595 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-toc/scb-toc-item.js +303 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-toc/scb-toc.js +19 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tooltip/scb-tooltip.js +196 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-vignette/scb-vignette.js +37 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-actions-runtime.js +2 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-print-runtime.js +98 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-series-differentiation-registry.js +1 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-series-differentiation-runtime.js +1 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-table-runtime.js +1 -0
- package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz.js +1140 -0
- package/mvc/components/all.js +177 -1
- package/mvc/components/scb-accordion/scb-accordion-item.js +1 -0
- package/mvc/components/scb-accordion/scb-accordion.js +1 -0
- package/mvc/components/scb-app-bar/scb-app-bar.js +1 -0
- package/mvc/components/scb-avatar/scb-avatar.js +1 -0
- package/mvc/components/scb-badge/scb-badge.js +1 -0
- package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +1 -0
- package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +1 -0
- package/mvc/components/scb-button/scb-button.js +1 -0
- package/mvc/components/scb-calendar/scb-calendar-event.js +1 -0
- package/mvc/components/scb-calendar/scb-calendar.js +1 -0
- package/mvc/components/scb-calendar-card/scb-calendar-card.js +1 -0
- package/mvc/components/scb-card/scb-card.js +1 -0
- package/mvc/components/scb-checkbox/scb-checkbox-group.js +1 -0
- package/mvc/components/scb-checkbox/scb-checkbox.js +1 -0
- package/mvc/components/scb-chip/scb-chip.js +1 -0
- package/mvc/components/scb-collapse/scb-collapse.js +1 -0
- package/mvc/components/scb-cookies-consent/scb-cookies-consent.js +1 -0
- package/mvc/components/scb-dialog/scb-dialog.js +1 -0
- package/mvc/components/scb-divider/scb-divider.js +1 -0
- package/mvc/components/scb-drawer/scb-drawer.js +1 -0
- package/mvc/components/scb-drop-zone/scb-drop-zone.js +1 -0
- package/mvc/components/scb-dropdown/scb-dropdown.js +1 -0
- package/mvc/components/scb-fab/scb-fab.js +1 -0
- package/mvc/components/scb-fact-card/scb-fact-card-content.js +1 -0
- package/mvc/components/scb-fact-card/scb-fact-card.js +1 -0
- package/mvc/components/scb-footer/scb-footer-section.js +1 -0
- package/mvc/components/scb-footer/scb-footer.js +1 -0
- package/mvc/components/scb-gallery-grid/scb-gallery-grid.js +1 -0
- package/mvc/components/scb-grid/scb-grid-item.js +1 -0
- package/mvc/components/scb-grid/scb-grid.js +1 -0
- package/mvc/components/scb-grid/scb-stack.js +1 -0
- package/mvc/components/scb-header/scb-header-menu-group.js +1 -0
- package/mvc/components/scb-header/scb-header-menu-item.js +1 -0
- package/mvc/components/scb-header/scb-header-tab.js +1 -0
- package/mvc/components/scb-header/scb-header-utility.js +1 -0
- package/mvc/components/scb-header/scb-header.js +1 -0
- package/mvc/components/scb-horizontal-scroller/scb-horizontal-scroller.js +1 -0
- package/mvc/components/scb-icon-button/scb-icon-button.js +1 -0
- package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +1 -0
- package/mvc/components/scb-link/scb-link.js +1 -0
- package/mvc/components/scb-list/scb-list-item.js +1 -0
- package/mvc/components/scb-list/scb-list.js +1 -0
- package/mvc/components/scb-menu/scb-menu-item.js +1 -0
- package/mvc/components/scb-menu/scb-menu-section.js +1 -0
- package/mvc/components/scb-menu/scb-menu.js +1 -0
- package/mvc/components/scb-menu/scb-sub-menu.js +1 -0
- package/mvc/components/scb-nav/scb-nav-item.js +1 -0
- package/mvc/components/scb-nav/scb-nav.js +1 -0
- package/mvc/components/scb-notification-card/scb-notification-card.js +1 -0
- package/mvc/components/scb-options-menu/scb-options-menu-item.js +1 -0
- package/mvc/components/scb-options-menu/scb-options-menu.js +1 -0
- package/mvc/components/scb-options-menu/scb-options-sub-menu.js +1 -0
- package/mvc/components/scb-overlay/scb-overlay.js +1 -0
- package/mvc/components/scb-pagination/scb-pagination.js +1 -0
- package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +1 -0
- package/mvc/components/scb-progress-stepper/scb-progress-step.js +1 -0
- package/mvc/components/scb-progress-stepper/scb-progress-stepper.js +1 -0
- package/mvc/components/scb-radio-button/scb-radio-button.js +1 -0
- package/mvc/components/scb-radio-button/scb-radio-group.js +1 -0
- package/mvc/components/scb-scrollspy/scb-scrollspy.js +1 -0
- package/mvc/components/scb-search/scb-search.js +1 -0
- package/mvc/components/scb-segmented-button/scb-segmented-button.js +1 -0
- package/mvc/components/scb-segmented-button/scb-segmented-item.js +1 -0
- package/mvc/components/scb-select/scb-select-option.js +1 -0
- package/mvc/components/scb-select/scb-select.js +1 -0
- package/mvc/components/scb-skeleton/scb-skeleton.js +1 -0
- package/mvc/components/scb-slider/scb-slider.js +1 -0
- package/mvc/components/scb-snackbar/scb-snackbar.js +1 -0
- package/mvc/components/scb-status-pill/scb-status-pill.js +1 -0
- package/mvc/components/scb-stepper/scb-step.js +1 -0
- package/mvc/components/scb-stepper/scb-stepper.js +1 -0
- package/mvc/components/scb-switch/scb-switch.js +1 -0
- package/mvc/components/scb-table/scb-table.js +1 -0
- package/mvc/components/scb-table-advanced/scb-table-advanced.js +1 -0
- package/mvc/components/scb-tabs/scb-primary-tab.js +1 -0
- package/mvc/components/scb-tabs/scb-secondary-tab.js +1 -0
- package/mvc/components/scb-tabs/scb-tabs.js +1 -0
- package/mvc/components/scb-textfield/scb-textfield.js +1 -0
- package/mvc/components/scb-toc/scb-toc-item.js +1 -0
- package/mvc/components/scb-toc/scb-toc.js +1 -0
- package/mvc/components/scb-tooltip/scb-tooltip.js +1 -0
- package/mvc/components/scb-viz/scb-viz-actions-runtime.js +1 -0
- package/mvc/components/scb-viz/scb-viz-print-runtime.js +1 -0
- package/mvc/components/scb-viz/scb-viz-series-differentiation-registry.js +1 -0
- package/mvc/components/scb-viz/scb-viz-series-differentiation-runtime.js +1 -0
- package/mvc/components/scb-viz/scb-viz-table-runtime.js +1 -0
- package/mvc/components/scb-viz/scb-viz.js +1 -0
- package/mvc/fonts/inter/files/inter-latin-wght-italic.woff2 +0 -0
- package/mvc/fonts/inter/files/inter-latin-wght-normal.woff2 +0 -0
- package/mvc/fonts/material-symbols-outlined/files/material-symbols-outlined-latin-wght-normal.woff2 +0 -0
- package/mvc/scb-blazor-bridge.js +6827 -2805
- package/mvc/scb-logo.svg +20 -20
- package/mvc/scb-typography.css +1 -1
- package/mvc/scb-wc.css +3 -2
- package/mvc/scb.svg +13 -13
- package/mvc/vendor/assertClassBrand.js +1 -0
- package/mvc/vendor/classPrivateFieldGet2.js +1 -0
- package/mvc/vendor/decorate.js +1 -0
- package/mvc/vendor/preload-helper.js +1 -0
- package/mvc/vendor/vendor-lit.js +1 -0
- package/mvc/vendor/vendor-material.js +364 -0
- package/mvc/vendor/vendor.js +4 -0
- package/package.json +429 -77
- package/scb-accordion/scb-accordion-item.js +340 -0
- package/scb-accordion/scb-accordion.js +151 -0
- package/scb-app-bar/scb-app-bar.js +317 -0
- package/scb-avatar/scb-avatar.js +197 -0
- package/scb-badge/scb-badge.js +165 -0
- package/scb-breadcrumb/scb-breadcrumb-item.js +62 -0
- package/scb-breadcrumb/scb-breadcrumb.js +255 -0
- package/scb-button/scb-button.js +398 -0
- package/scb-calendar/scb-calendar-event.js +48 -0
- package/scb-calendar/scb-calendar.js +700 -0
- package/scb-calendar-card/scb-calendar-card.js +505 -0
- package/scb-card/scb-card.js +1231 -0
- package/scb-checkbox/scb-checkbox-group.js +104 -0
- package/scb-checkbox/scb-checkbox.js +316 -0
- package/scb-chevron/scb-chevron.js +143 -0
- package/scb-chip/scb-chip.js +234 -0
- package/scb-collapse/scb-collapse.js +231 -0
- package/scb-cookies-consent/scb-cookies-consent.js +164 -0
- package/scb-datepicker/scb-datepicker.js +469 -0
- package/scb-dialog/scb-dialog.js +574 -0
- package/scb-divider/scb-divider.js +119 -0
- package/scb-drawer/scb-drawer.js +297 -0
- package/scb-drop-zone/scb-drop-zone.js +965 -0
- package/scb-dropdown/scb-dropdown.js +598 -0
- package/scb-fab/scb-fab.js +190 -0
- package/scb-fact-card/scb-fact-card-content.js +82 -0
- package/scb-fact-card/scb-fact-card.js +376 -0
- package/scb-footer/scb-footer-section.js +23 -0
- package/scb-footer/scb-footer.js +343 -0
- package/scb-gallery-grid/scb-gallery-grid.js +242 -0
- package/scb-grid/scb-grid-item.js +81 -0
- package/scb-grid/scb-grid.js +200 -0
- package/scb-grid/scb-stack.js +120 -0
- package/scb-header/scb-header-menu-group.js +21 -0
- package/scb-header/scb-header-menu-item.js +22 -0
- package/scb-header/scb-header-tab.js +25 -0
- package/scb-header/scb-header-utility.js +27 -0
- package/scb-header/scb-header.js +1358 -0
- package/scb-horizontal-scroller/scb-horizontal-scroller.js +353 -0
- package/scb-icon-button/scb-icon-button.js +335 -0
- package/scb-keyfigure-card/scb-keyfigure-card.js +340 -0
- package/scb-link/scb-link.js +136 -0
- package/scb-list/scb-list-item.js +297 -0
- package/scb-list/scb-list.js +119 -0
- package/scb-menu/scb-menu-item.js +330 -0
- package/scb-menu/scb-menu-section.js +60 -0
- package/scb-menu/scb-menu.js +154 -0
- package/scb-menu/scb-sub-menu.js +36 -0
- package/scb-nav/scb-nav-item.js +96 -0
- package/scb-nav/scb-nav.js +263 -0
- package/scb-notification-card/scb-notification-card.js +479 -0
- package/scb-options-menu/scb-options-menu-item.js +218 -0
- package/scb-options-menu/scb-options-menu.js +237 -0
- package/scb-options-menu/scb-options-sub-menu.js +69 -0
- package/scb-overlay/scb-overlay.js +144 -0
- package/scb-pagination/scb-pagination.js +438 -0
- package/scb-progress-indicator/scb-progress-indicator.js +199 -0
- package/scb-progress-stepper/scb-progress-step.js +213 -0
- package/scb-progress-stepper/scb-progress-stepper.js +132 -0
- package/scb-radio-button/scb-radio-button.js +249 -0
- package/scb-radio-button/scb-radio-group.js +216 -0
- package/scb-scrollspy/scb-scrollspy.js +670 -0
- package/scb-search/scb-search.js +643 -0
- package/scb-segmented-button/scb-segmented-button.js +215 -0
- package/scb-segmented-button/scb-segmented-item.js +133 -0
- package/scb-select/scb-select-option.js +88 -0
- package/scb-select/scb-select.js +517 -0
- package/scb-skeleton/scb-skeleton.js +92 -0
- package/scb-slider/scb-slider.js +98 -0
- package/scb-snackbar/scb-snackbar.js +223 -0
- package/scb-status-pill/scb-status-pill.js +100 -0
- package/scb-stepper/scb-step.js +311 -0
- package/scb-stepper/scb-stepper.js +325 -0
- package/scb-switch/scb-switch.js +182 -0
- package/scb-table/scb-table.js +202 -0
- package/scb-table-advanced/scb-table-advanced.js +327 -0
- package/scb-tabs/scb-primary-tab.js +68 -0
- package/scb-tabs/scb-secondary-tab.js +68 -0
- package/scb-tabs/scb-tabs.js +100 -0
- package/scb-test-components/index.d.ts +90 -0
- package/scb-test-components/scb-accordion/scb-accordion-item.d.ts +39 -0
- package/scb-test-components/scb-accordion/scb-accordion.d.ts +27 -0
- package/scb-test-components/scb-app-bar/scb-app-bar.d.ts +25 -0
- package/scb-test-components/scb-avatar/scb-avatar.d.ts +37 -0
- package/scb-test-components/scb-badge/scb-badge.d.ts +28 -0
- package/scb-test-components/scb-breadcrumb/scb-breadcrumb-item.d.ts +15 -0
- package/scb-test-components/scb-breadcrumb/scb-breadcrumb.d.ts +27 -0
- package/scb-test-components/scb-button/scb-button.d.ts +40 -0
- package/scb-test-components/scb-calendar/scb-calendar-event.d.ts +15 -0
- package/scb-test-components/scb-calendar/scb-calendar.d.ts +77 -0
- package/scb-test-components/scb-calendar-card/scb-calendar-card.d.ts +45 -0
- package/scb-test-components/scb-card/scb-card.d.ts +101 -0
- package/scb-test-components/scb-checkbox/scb-checkbox-group.d.ts +23 -0
- package/scb-test-components/scb-checkbox/scb-checkbox.d.ts +52 -0
- package/scb-test-components/scb-chevron/scb-chevron.d.ts +13 -0
- package/scb-test-components/scb-chip/scb-chip.d.ts +61 -0
- package/scb-test-components/scb-collapse/scb-collapse.d.ts +29 -0
- package/scb-test-components/scb-cookies-consent/scb-cookies-consent.d.ts +23 -0
- package/scb-test-components/scb-datepicker/scb-datepicker.d.ts +39 -0
- package/scb-test-components/scb-dialog/scb-dialog.d.ts +72 -0
- package/scb-test-components/scb-divider/scb-divider.d.ts +34 -0
- package/scb-test-components/scb-drawer/scb-drawer.d.ts +72 -0
- package/scb-test-components/scb-drop-zone/scb-drop-zone.d.ts +143 -0
- package/scb-test-components/scb-dropdown/scb-dropdown.d.ts +70 -0
- package/scb-test-components/scb-fab/scb-fab.d.ts +42 -0
- package/scb-test-components/scb-fact-card/scb-fact-card-content.d.ts +15 -0
- package/scb-test-components/scb-fact-card/scb-fact-card.d.ts +49 -0
- package/scb-test-components/scb-footer/scb-footer-section.d.ts +20 -0
- package/scb-test-components/scb-footer/scb-footer.d.ts +31 -0
- package/scb-test-components/scb-gallery-grid/scb-gallery-grid.d.ts +20 -0
- package/scb-test-components/scb-grid/scb-grid-item.d.ts +32 -0
- package/scb-test-components/scb-grid/scb-grid.d.ts +36 -0
- package/scb-test-components/scb-grid/scb-stack.d.ts +32 -0
- package/scb-test-components/scb-header/scb-header-menu-group.d.ts +12 -0
- package/scb-test-components/scb-header/scb-header-menu-item.d.ts +13 -0
- package/scb-test-components/scb-header/scb-header-tab.d.ts +13 -0
- package/scb-test-components/scb-header/scb-header-utility.d.ts +14 -0
- package/scb-test-components/scb-header/scb-header.d.ts +132 -0
- package/scb-test-components/scb-horizontal-scroller/scb-horizontal-scroller.d.ts +47 -0
- package/scb-test-components/scb-icon-button/scb-icon-button.d.ts +76 -0
- package/scb-test-components/scb-keyfigure-card/scb-keyfigure-card.d.ts +46 -0
- package/scb-test-components/scb-link/scb-link.d.ts +25 -0
- package/scb-test-components/scb-list/scb-list-item.d.ts +38 -0
- package/scb-test-components/scb-list/scb-list.d.ts +26 -0
- package/scb-test-components/scb-menu/scb-menu-item.d.ts +52 -0
- package/scb-test-components/scb-menu/scb-menu-section.d.ts +11 -0
- package/scb-test-components/scb-menu/scb-menu.d.ts +25 -0
- package/scb-test-components/scb-menu/scb-sub-menu.d.ts +14 -0
- package/scb-test-components/scb-nav/scb-nav-item.d.ts +20 -0
- package/scb-test-components/scb-nav/scb-nav.d.ts +50 -0
- package/scb-test-components/scb-notification-card/scb-notification-card.d.ts +46 -0
- package/scb-test-components/scb-options-menu/scb-options-menu-item.d.ts +29 -0
- package/scb-test-components/scb-options-menu/scb-options-menu.d.ts +35 -0
- package/scb-test-components/scb-options-menu/scb-options-sub-menu.d.ts +11 -0
- package/scb-test-components/scb-overlay/scb-overlay.d.ts +24 -0
- package/scb-test-components/scb-pagination/scb-pagination.d.ts +36 -0
- package/scb-test-components/scb-progress-indicator/scb-progress-indicator.d.ts +28 -0
- package/scb-test-components/scb-progress-stepper/scb-progress-step.d.ts +21 -0
- package/scb-test-components/scb-progress-stepper/scb-progress-stepper.d.ts +22 -0
- package/scb-test-components/scb-radio-button/scb-radio-button.d.ts +26 -0
- package/scb-test-components/scb-radio-button/scb-radio-group.d.ts +49 -0
- package/scb-test-components/scb-scrollspy/scb-scrollspy.d.ts +217 -0
- package/scb-test-components/scb-search/scb-search.d.ts +96 -0
- package/scb-test-components/scb-segmented-button/scb-segmented-button.d.ts +80 -0
- package/scb-test-components/scb-segmented-button/scb-segmented-item.d.ts +21 -0
- package/scb-test-components/scb-select/scb-select-option.d.ts +16 -0
- package/scb-test-components/scb-select/scb-select.d.ts +62 -0
- package/scb-test-components/scb-skeleton/scb-skeleton.d.ts +25 -0
- package/scb-test-components/scb-slider/scb-slider.d.ts +28 -0
- package/scb-test-components/scb-snackbar/scb-snackbar.d.ts +24 -0
- package/scb-test-components/scb-status-pill/scb-status-pill.d.ts +22 -0
- package/scb-test-components/scb-stepper/scb-step.d.ts +22 -0
- package/scb-test-components/scb-stepper/scb-stepper.d.ts +47 -0
- package/scb-test-components/scb-switch/scb-switch.d.ts +52 -0
- package/scb-test-components/scb-table/scb-table.d.ts +24 -0
- package/scb-test-components/scb-table-advanced/scb-table-advanced.d.ts +39 -0
- package/scb-test-components/scb-tabs/scb-primary-tab.d.ts +15 -0
- package/scb-test-components/scb-tabs/scb-secondary-tab.d.ts +15 -0
- package/scb-test-components/scb-tabs/scb-tabs.d.ts +21 -0
- package/scb-test-components/scb-textfield/scb-textfield.d.ts +75 -0
- package/scb-test-components/scb-toc/scb-toc-item.d.ts +38 -0
- package/scb-test-components/scb-toc/scb-toc.d.ts +27 -0
- package/scb-test-components/scb-tooltip/scb-tooltip.d.ts +51 -0
- package/scb-test-components/scb-vignette/scb-vignette.d.ts +20 -0
- package/scb-test-components/scb-viz/scb-viz-actions-runtime.d.ts +26 -0
- package/scb-test-components/scb-viz/scb-viz-print-runtime.d.ts +27 -0
- package/scb-test-components/scb-viz/scb-viz-series-differentiation-registry.d.ts +21 -0
- package/scb-test-components/scb-viz/scb-viz-series-differentiation-runtime.d.ts +42 -0
- package/scb-test-components/scb-viz/scb-viz-table-runtime.d.ts +28 -0
- package/scb-test-components/scb-viz/scb-viz.d.ts +207 -0
- package/scb-textfield/scb-textfield.js +827 -0
- package/scb-toc/scb-toc-item.js +477 -0
- package/scb-toc/scb-toc.js +101 -0
- package/scb-tooltip/scb-tooltip.js +402 -0
- package/scb-typography.css +1 -1
- package/scb-vignette/scb-vignette.js +87 -0
- package/scb-viz/scb-viz-actions-runtime.js +143 -0
- package/scb-viz/scb-viz-print-runtime.js +121 -0
- package/scb-viz/scb-viz-series-differentiation-registry.js +117 -0
- package/scb-viz/scb-viz-series-differentiation-runtime.js +126 -0
- package/scb-viz/scb-viz-table-runtime.js +86 -0
- package/scb-viz/scb-viz.js +2195 -0
- package/scb-wc-public-entry/index.d.ts +87 -0
- package/scb-wc-selfhost.css +29 -0
- package/scb-wc.bundle.js +12893 -1099
- package/scb-wc.css +3 -2
- package/scb-wc.d.ts +174 -0
- package/starters/blazor/Components/App.razor +34 -0
- package/starters/blazor/Components/Layout/MainLayout.razor +39 -0
- package/starters/blazor/Components/Pages/Home.razor +80 -0
- package/starters/blazor/Components/Routes.razor +14 -0
- package/starters/blazor/Components/_Imports.razor +10 -0
- package/starters/blazor/Program.cs +23 -0
- package/starters/blazor/README.md +28 -0
- package/starters/blazor/ScbStarterApp.csproj +7 -0
- package/starters/blazor/dot-gitignore +3 -0
- package/starters/blazor/package.json +14 -0
- package/starters/blazor/wwwroot/app.css +54 -0
- package/starters/html/README.md +23 -0
- package/starters/html/dot-gitignore +2 -0
- package/starters/html/index.html +12 -0
- package/starters/html/main.js +135 -0
- package/starters/html/package.json +16 -0
- package/starters/react/README.md +24 -0
- package/starters/react/dot-gitignore +2 -0
- package/starters/react/index.html +12 -0
- package/starters/react/package.json +19 -0
- package/starters/react/src/App.jsx +118 -0
- package/starters/react/src/main.jsx +29 -0
- package/starters/react/vite.config.js +6 -0
- package/index.d.ts +0 -0
- package/mvc/components/index.js +0 -1
package/README.md
CHANGED
|
@@ -1,164 +1,204 @@
|
|
|
1
|
-
# Om SCB Web Components
|
|
2
|
-
|
|
3
|
-
SCB Web Components finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
|
|
4
|
-
|
|
5
|
-
Komponenterna bygger på:
|
|
6
|
-
- [Lit](https://lit.dev/)
|
|
7
|
-
- [Material Web Components](https://material-web.dev/about/intro/)
|
|
8
|
-
|
|
9
|
-
## Storybook och dokumentation (internt)
|
|
10
|
-
|
|
11
|
-
Produktionskomponenterna dokumenteras och demonstreras i Storybook på SCB:s interna adress:
|
|
12
|
-
|
|
13
|
-
- Prod: https://webcomponents.scb.intra
|
|
14
|
-
|
|
15
|
-
Testkomponenterna finns på:
|
|
16
|
-
|
|
17
|
-
- Test: https://webcomponentstest.scb.intra
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Kom igång
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
import 'scb-wc/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
1
|
+
# Om SCB Web Components
|
|
2
|
+
|
|
3
|
+
SCB Web Components finns för att underlätta skapandet av enhetliga, tillgängliga och användbara webbapplikationer.
|
|
4
|
+
|
|
5
|
+
Komponenterna bygger på:
|
|
6
|
+
- [Lit](https://lit.dev/)
|
|
7
|
+
- [Material Web Components](https://material-web.dev/about/intro/)
|
|
8
|
+
|
|
9
|
+
## Storybook och dokumentation (internt)
|
|
10
|
+
|
|
11
|
+
Produktionskomponenterna dokumenteras och demonstreras i Storybook på SCB:s interna adress:
|
|
12
|
+
|
|
13
|
+
- Prod: https://webcomponents.scb.intra
|
|
14
|
+
|
|
15
|
+
Testkomponenterna finns på:
|
|
16
|
+
|
|
17
|
+
- Test: https://webcomponentstest.scb.intra
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Kom igång
|
|
22
|
+
|
|
23
|
+
Rekommenderad startväg:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npx scb-wc init html my-app
|
|
27
|
+
npx scb-wc init react my-react-app
|
|
28
|
+
npx scb-wc init blazor my-blazor-app
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Det skapar en liten starterapp med:
|
|
32
|
+
- `scb-header`
|
|
33
|
+
- `scb-footer`
|
|
34
|
+
- `scb-grid`
|
|
35
|
+
- några vanliga komponenter
|
|
36
|
+
|
|
37
|
+
Välj sedan den starter som ligger närmast din app och kör `npm install` i den nya mappen.
|
|
38
|
+
|
|
39
|
+
Om du redan har en app med `package.json`, kör kommandon i den mappen och installera paketet:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
npm install scb-wc
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Alternativ 1: Använd som ES‑moduler (t.ex. i React, Vue, SPA)
|
|
48
|
+
|
|
49
|
+
Importera CSS och de komponenter du använder (bäst för tree‑shaking):
|
|
50
|
+
|
|
51
|
+
```js
|
|
52
|
+
// Global CSS + tokens (måste bara importeras en gång)
|
|
53
|
+
import 'scb-wc/scb-wc.css';
|
|
54
|
+
import 'scb-wc/scb-typography.css';
|
|
55
|
+
|
|
56
|
+
// Enskilda web components
|
|
57
|
+
import 'scb-wc/scb-button';
|
|
58
|
+
import 'scb-wc/scb-accordion';
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Vill du ladda allt finns en samlingsfil (inte rekommenderat i större appar):
|
|
62
|
+
|
|
63
|
+
```js
|
|
64
|
+
// Global CSS + tokens (måste bara importeras en gång)
|
|
65
|
+
import 'scb-wc/scb-wc.css';
|
|
66
|
+
import 'scb-wc/scb-typography.css';
|
|
67
|
+
import 'scb-wc/all';
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Självhosta fonter (Inter + Material Symbols)
|
|
71
|
+
|
|
72
|
+
Som standard laddas fonterna från Google Fonts via `scb-wc.css`.
|
|
73
|
+
Vill du selfhosta kan du istället importera:
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
import 'scb-wc/scb-wc-selfhost.css';
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Då används paketets egna fontfiler under `node_modules/scb-wc/fonts/`.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Alternativ 2: Använd i MVC/MPA via `<script type="module">`
|
|
84
|
+
|
|
85
|
+
Det här läget använder den färdig‑splittrade **MVC‑ESM**‑builden som följer med paketet under:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
node_modules/scb-wc/mvc/
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 2.1) Rekommenderat: ett npm‑script för att kopiera UI‑filer
|
|
92
|
+
|
|
93
|
+
Lägg till i din apps `package.json`:
|
|
94
|
+
|
|
95
|
+
```jsonc
|
|
96
|
+
{
|
|
97
|
+
"scripts": {
|
|
98
|
+
"ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\""
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Kör sedan:
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
npm run ui:install
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Det kopierar hela `node_modules/scb-wc/mvc/` till `wwwroot/ui/` i din applikation (komponenter, vendor och CSS).
|
|
110
|
+
|
|
111
|
+
### 2.2) Ladda filer i din layout (Razor, .cshtml, klassisk MVC)
|
|
112
|
+
|
|
113
|
+
Du kan byta till `~/ui/scb-wc-selfhost.css` om du vill selfhosta fonterna (mappen `ui/fonts/` kopieras av `ui:install`).
|
|
114
|
+
|
|
115
|
+
```html
|
|
116
|
+
<!-- Lägg helst i <head> -->
|
|
117
|
+
<link rel="stylesheet" href="~/ui/scb-wc.css" />
|
|
118
|
+
<link rel="stylesheet" href="~/ui/scb-typography.css" />
|
|
119
|
+
|
|
120
|
+
<!-- Ladda ENDAST de komponenter du använder på sidan, gärna precis före </body> -->
|
|
121
|
+
<script type="module" src="~/ui/components/scb-link/scb-link.js"></script>
|
|
122
|
+
<script type="module" src="~/ui/components/scb-button/scb-button.js"></script>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 2.3) CI/CD‑exempel
|
|
126
|
+
|
|
127
|
+
Kör samma script i din pipeline:
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
steps:
|
|
131
|
+
- script: npm ci
|
|
132
|
+
- script: npm run ui:install
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Behöver du en annan webbrotsökväg (t.ex. om din `wwwroot` ligger någon annanstans) kan du ange flaggan:
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
- script: npm run ui:install --ui_wwwroot=../wwwroot
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Alternativ 3: Bundlad version (IIFE) för äldre miljöer
|
|
144
|
+
|
|
145
|
+
Om ESM inte stöds kan du använda den bundlade varianten från paketroten.
|
|
146
|
+
Flytta följande två filer från `node_modules/scb-wc` och använd dem i applikationen:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
node_modules/scb-wc/scb-wc.bundle.js
|
|
150
|
+
node_modules/scb-wc/scb-wc.css
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
```html
|
|
154
|
+
<link rel="stylesheet" href="scb-wc.css">
|
|
155
|
+
<link rel="stylesheet" href="scb-typography.css" />
|
|
156
|
+
<script src="scb-wc.bundle.js"></script>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
> **Obs:** Blanda inte MVC‑ESM och IIFE på samma sida.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Alternativ 4: Blazor (Server och WebAssembly)
|
|
164
|
+
|
|
165
|
+
SCB Web Components fungerar även i Blazor‑appar när du vill använda samma komponenter i både MVC/MPA och Blazor.
|
|
166
|
+
|
|
167
|
+
Grundprincipen är:
|
|
168
|
+
|
|
169
|
+
1. Använd MVC‑ESM‑builden (`node_modules/scb-wc/mvc`) och kopiera den till `wwwroot/ui` med `ui:install`.
|
|
170
|
+
2. Ladda `scb-blazor-bridge.js` från `wwwroot/ui` i din Blazor‑layout.
|
|
171
|
+
3. Lägg till (eller återanvänd) `ScbBlazorInteropBase` i din lösning.
|
|
172
|
+
|
|
173
|
+
### 4.1) Script i Blazor-projektets `package.json`
|
|
174
|
+
|
|
175
|
+
Lägg till ett script som kopierar interop-filen från `node_modules` till ditt projekt (till exempel mappen `ScbBlazor`). Utöver `ui:install`-scriptet från MVC-exemplet ovan. Så att det till exempel blir så här i din `package.json`:
|
|
176
|
+
|
|
177
|
+
```jsonc
|
|
178
|
+
{
|
|
179
|
+
"scripts": {
|
|
180
|
+
"ui:install": "node -e \"const fs=require('fs'),p=require('path');const src=p.resolve('node_modules/scb-wc/mvc');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const start=process.env.INIT_CWD||process.cwd();const ov=process.env.npm_config_ui_wwwroot;function findBase(){if(ov){return p.isAbsolute(ov)?ov:p.resolve(start,ov);}let d=start;while(true){const cand=p.join(d,'wwwroot');if(fs.existsSync(cand)) return cand;const up=p.dirname(d);if(up===d) return p.resolve(start,'wwwroot');d=up;}}const base=findBase();const dst=p.resolve(base,'ui');fs.rmSync(dst,{recursive:true,force:true});fs.mkdirSync(base,{recursive:true});fs.cpSync(src,dst,{recursive:true});console.log('Kopierade '+src+' → '+dst);\"",
|
|
181
|
+
"ui:blazor:interop": "node -e \"const fs=require('fs'),p=require('path');const start=process.env.INIT_CWD||process.cwd();const src=p.resolve('node_modules/scb-wc/blazor/ScbBlazorInteropBase.cs');if(!fs.existsSync(src)){console.error('Hittar inte '+src+'. Har du kört npm install scb-wc?');process.exit(1);}const dst=p.resolve(start,'ScbBlazor/ScbBlazorInteropBase.cs');fs.mkdirSync(p.dirname(dst),{recursive:true});fs.copyFileSync(src,dst);console.log('Kopierade '+src+' → '+dst);\""
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Exempel på layout:
|
|
187
|
+
|
|
188
|
+
```html
|
|
189
|
+
<link rel="stylesheet" href="~/ui/scb-wc.css" />
|
|
190
|
+
<link rel="stylesheet" href="~/ui/scb-typography.css" />
|
|
191
|
+
|
|
192
|
+
<script type="module" src="~/ui/scb-blazor-bridge.js"></script>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
`ScbBlazorInteropBase` kan återanvändas mellan projekt som använder både `scb-wc@latest` och `scb-wc@next`.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Viktigt
|
|
200
|
+
|
|
201
|
+
- `scb-wc@latest` är produktionskanalen. Använd `scb-wc@next` för komponenter under utveckling och experiment.
|
|
202
|
+
- **Kör kommandon i mappen med din `package.json`.** Placeringen av `package.json` styr standardmål för `ui:install` (rot → `wwwroot/ui`, `ClientApp/` → använd `--ui_wwwroot=../wwwroot`).
|
|
203
|
+
- **Blanda inte MVC‑ESM och IIFE på samma sida.** Välj en distributionsform per sida/app.
|
|
204
|
+
- **Blazor:** Se till att `scb-blazor-bridge.js` laddas efter att komponent‑JS:et finns på sidan, och att `ScbBlazorInteropBase` inte dupliceras i flera namespaces i samma lösning.
|
package/all.js
CHANGED
|
@@ -1,6 +1,92 @@
|
|
|
1
|
-
import './
|
|
2
|
-
import './blazor/scb-blazor-bridge.js';
|
|
1
|
+
import './_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js';
|
|
3
2
|
import './index.js';
|
|
4
|
-
import './
|
|
5
|
-
import './
|
|
6
|
-
import './
|
|
3
|
+
import './scb-accordion/scb-accordion-item.js';
|
|
4
|
+
import './scb-accordion/scb-accordion.js';
|
|
5
|
+
import './scb-app-bar/scb-app-bar.js';
|
|
6
|
+
import './scb-avatar/scb-avatar.js';
|
|
7
|
+
import './scb-badge/scb-badge.js';
|
|
8
|
+
import './scb-breadcrumb/scb-breadcrumb-item.js';
|
|
9
|
+
import './scb-breadcrumb/scb-breadcrumb.js';
|
|
10
|
+
import './scb-button/scb-button.js';
|
|
11
|
+
import './scb-calendar/scb-calendar-event.js';
|
|
12
|
+
import './scb-calendar/scb-calendar.js';
|
|
13
|
+
import './scb-calendar-card/scb-calendar-card.js';
|
|
14
|
+
import './scb-card/scb-card.js';
|
|
15
|
+
import './scb-checkbox/scb-checkbox-group.js';
|
|
16
|
+
import './scb-checkbox/scb-checkbox.js';
|
|
17
|
+
import './scb-chevron/scb-chevron.js';
|
|
18
|
+
import './scb-chip/scb-chip.js';
|
|
19
|
+
import './scb-collapse/scb-collapse.js';
|
|
20
|
+
import './scb-cookies-consent/scb-cookies-consent.js';
|
|
21
|
+
import './scb-datepicker/scb-datepicker.js';
|
|
22
|
+
import './scb-dialog/scb-dialog.js';
|
|
23
|
+
import './scb-divider/scb-divider.js';
|
|
24
|
+
import './scb-drawer/scb-drawer.js';
|
|
25
|
+
import './scb-drop-zone/scb-drop-zone.js';
|
|
26
|
+
import './scb-dropdown/scb-dropdown.js';
|
|
27
|
+
import './scb-fab/scb-fab.js';
|
|
28
|
+
import './scb-fact-card/scb-fact-card-content.js';
|
|
29
|
+
import './scb-fact-card/scb-fact-card.js';
|
|
30
|
+
import './scb-footer/scb-footer-section.js';
|
|
31
|
+
import './scb-footer/scb-footer.js';
|
|
32
|
+
import './scb-gallery-grid/scb-gallery-grid.js';
|
|
33
|
+
import './scb-grid/scb-grid-item.js';
|
|
34
|
+
import './scb-grid/scb-grid.js';
|
|
35
|
+
import './scb-grid/scb-stack.js';
|
|
36
|
+
import './scb-header/scb-header-menu-group.js';
|
|
37
|
+
import './scb-header/scb-header-menu-item.js';
|
|
38
|
+
import './scb-header/scb-header-tab.js';
|
|
39
|
+
import './scb-header/scb-header-utility.js';
|
|
40
|
+
import './scb-header/scb-header.js';
|
|
41
|
+
import './scb-horizontal-scroller/scb-horizontal-scroller.js';
|
|
42
|
+
import './scb-icon-button/scb-icon-button.js';
|
|
43
|
+
import './scb-keyfigure-card/scb-keyfigure-card.js';
|
|
44
|
+
import './scb-link/scb-link.js';
|
|
45
|
+
import './scb-list/scb-list-item.js';
|
|
46
|
+
import './scb-list/scb-list.js';
|
|
47
|
+
import './scb-menu/scb-menu-item.js';
|
|
48
|
+
import './scb-menu/scb-menu-section.js';
|
|
49
|
+
import './scb-menu/scb-menu.js';
|
|
50
|
+
import './scb-menu/scb-sub-menu.js';
|
|
51
|
+
import './scb-nav/scb-nav-item.js';
|
|
52
|
+
import './scb-nav/scb-nav.js';
|
|
53
|
+
import './scb-notification-card/scb-notification-card.js';
|
|
54
|
+
import './scb-options-menu/scb-options-menu-item.js';
|
|
55
|
+
import './scb-options-menu/scb-options-menu.js';
|
|
56
|
+
import './scb-options-menu/scb-options-sub-menu.js';
|
|
57
|
+
import './scb-overlay/scb-overlay.js';
|
|
58
|
+
import './scb-pagination/scb-pagination.js';
|
|
59
|
+
import './scb-progress-indicator/scb-progress-indicator.js';
|
|
60
|
+
import './scb-progress-stepper/scb-progress-step.js';
|
|
61
|
+
import './scb-progress-stepper/scb-progress-stepper.js';
|
|
62
|
+
import './scb-radio-button/scb-radio-button.js';
|
|
63
|
+
import './scb-radio-button/scb-radio-group.js';
|
|
64
|
+
import './scb-scrollspy/scb-scrollspy.js';
|
|
65
|
+
import './scb-search/scb-search.js';
|
|
66
|
+
import './scb-segmented-button/scb-segmented-button.js';
|
|
67
|
+
import './scb-segmented-button/scb-segmented-item.js';
|
|
68
|
+
import './scb-select/scb-select-option.js';
|
|
69
|
+
import './scb-select/scb-select.js';
|
|
70
|
+
import './scb-skeleton/scb-skeleton.js';
|
|
71
|
+
import './scb-slider/scb-slider.js';
|
|
72
|
+
import './scb-snackbar/scb-snackbar.js';
|
|
73
|
+
import './scb-status-pill/scb-status-pill.js';
|
|
74
|
+
import './scb-stepper/scb-step.js';
|
|
75
|
+
import './scb-stepper/scb-stepper.js';
|
|
76
|
+
import './scb-switch/scb-switch.js';
|
|
77
|
+
import './scb-table/scb-table.js';
|
|
78
|
+
import './scb-table-advanced/scb-table-advanced.js';
|
|
79
|
+
import './scb-tabs/scb-primary-tab.js';
|
|
80
|
+
import './scb-tabs/scb-secondary-tab.js';
|
|
81
|
+
import './scb-tabs/scb-tabs.js';
|
|
82
|
+
import './scb-textfield/scb-textfield.js';
|
|
83
|
+
import './scb-toc/scb-toc-item.js';
|
|
84
|
+
import './scb-toc/scb-toc.js';
|
|
85
|
+
import './scb-tooltip/scb-tooltip.js';
|
|
86
|
+
import './scb-vignette/scb-vignette.js';
|
|
87
|
+
import './scb-viz/scb-viz-actions-runtime.js';
|
|
88
|
+
import './scb-viz/scb-viz-print-runtime.js';
|
|
89
|
+
import './scb-viz/scb-viz-series-differentiation-registry.js';
|
|
90
|
+
import './scb-viz/scb-viz-series-differentiation-runtime.js';
|
|
91
|
+
import './scb-viz/scb-viz-table-runtime.js';
|
|
92
|
+
import './scb-viz/scb-viz.js';
|
package/bin/scb-wc.mjs
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = path.dirname(__filename);
|
|
9
|
+
const packageRoot = path.resolve(__dirname, '..');
|
|
10
|
+
const packageJson = JSON.parse(
|
|
11
|
+
fs.readFileSync(path.join(packageRoot, 'package.json'), 'utf8'),
|
|
12
|
+
);
|
|
13
|
+
const startersRoot = path.join(packageRoot, 'starters');
|
|
14
|
+
|
|
15
|
+
const usage = `
|
|
16
|
+
SCB Web Components
|
|
17
|
+
|
|
18
|
+
Användning:
|
|
19
|
+
npx scb-wc init <html|react|blazor> [mapp]
|
|
20
|
+
|
|
21
|
+
Exempel:
|
|
22
|
+
npx scb-wc init html my-app
|
|
23
|
+
npx scb-wc init react my-react-app
|
|
24
|
+
npx scb-wc init blazor my-blazor-app
|
|
25
|
+
`.trim();
|
|
26
|
+
|
|
27
|
+
const textExtensions = new Set([
|
|
28
|
+
'.css',
|
|
29
|
+
'.cs',
|
|
30
|
+
'.csproj',
|
|
31
|
+
'.html',
|
|
32
|
+
'.js',
|
|
33
|
+
'.json',
|
|
34
|
+
'.jsx',
|
|
35
|
+
'.md',
|
|
36
|
+
'.razor',
|
|
37
|
+
'.txt',
|
|
38
|
+
]);
|
|
39
|
+
|
|
40
|
+
function fail(message) {
|
|
41
|
+
console.error(`\n${message}\n`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function renameTemplateEntry(name) {
|
|
46
|
+
return name.startsWith('dot-') ? `.${name.slice(4)}` : name;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function ensureTargetIsCreatable(targetDir) {
|
|
50
|
+
if (!fs.existsSync(targetDir)) return;
|
|
51
|
+
const entries = fs.readdirSync(targetDir);
|
|
52
|
+
if (entries.length > 0) {
|
|
53
|
+
fail(`Mappen ${targetDir} finns redan och är inte tom.`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function copyTemplateDir(sourceDir, targetDir) {
|
|
58
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
59
|
+
|
|
60
|
+
for (const entry of fs.readdirSync(sourceDir, { withFileTypes: true })) {
|
|
61
|
+
const from = path.join(sourceDir, entry.name);
|
|
62
|
+
const to = path.join(targetDir, renameTemplateEntry(entry.name));
|
|
63
|
+
|
|
64
|
+
if (entry.isDirectory()) {
|
|
65
|
+
copyTemplateDir(from, to);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
fs.mkdirSync(path.dirname(to), { recursive: true });
|
|
70
|
+
fs.copyFileSync(from, to);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function replacePlaceholders(rootDir, replacements) {
|
|
75
|
+
const walk = (currentDir) => {
|
|
76
|
+
for (const entry of fs.readdirSync(currentDir, { withFileTypes: true })) {
|
|
77
|
+
const fullPath = path.join(currentDir, entry.name);
|
|
78
|
+
|
|
79
|
+
if (entry.isDirectory()) {
|
|
80
|
+
walk(fullPath);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const ext = path.extname(entry.name);
|
|
85
|
+
if (!textExtensions.has(ext)) continue;
|
|
86
|
+
|
|
87
|
+
let contents = fs.readFileSync(fullPath, 'utf8');
|
|
88
|
+
for (const [placeholder, value] of Object.entries(replacements)) {
|
|
89
|
+
contents = contents.replaceAll(placeholder, value);
|
|
90
|
+
}
|
|
91
|
+
fs.writeFileSync(fullPath, contents, 'utf8');
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
walk(rootDir);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const [, , command, template, maybeTargetDir] = process.argv;
|
|
99
|
+
|
|
100
|
+
if (!command || command === '--help' || command === '-h') {
|
|
101
|
+
console.log(usage);
|
|
102
|
+
process.exit(0);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (command !== 'init') {
|
|
106
|
+
fail(`Okänt kommando: ${command}\n\n${usage}`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (!template || !['html', 'react', 'blazor'].includes(template)) {
|
|
110
|
+
fail(`Välj en starter: html, react eller blazor.\n\n${usage}`);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const targetDir = path.resolve(process.cwd(), maybeTargetDir || `${template}-starter`);
|
|
114
|
+
const sourceDir = path.join(startersRoot, template);
|
|
115
|
+
|
|
116
|
+
if (!fs.existsSync(sourceDir)) {
|
|
117
|
+
fail(`Hittar inte startermallen för ${template}.`);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
ensureTargetIsCreatable(targetDir);
|
|
121
|
+
copyTemplateDir(sourceDir, targetDir);
|
|
122
|
+
replacePlaceholders(targetDir, {
|
|
123
|
+
'__SCB_WC_PACKAGE_NAME__': packageJson.name,
|
|
124
|
+
'__SCB_WC_VERSION__': packageJson.version,
|
|
125
|
+
'__STARTER_NAME__': path.basename(targetDir),
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
console.log(`\nSkapade ${template}-starter i ${targetDir}\n`);
|
|
129
|
+
|
|
130
|
+
if (template === 'blazor') {
|
|
131
|
+
console.log('Nästa steg:');
|
|
132
|
+
console.log(` 1. cd ${targetDir}`);
|
|
133
|
+
console.log(' 2. npm install');
|
|
134
|
+
console.log(' 3. npm run ui:setup');
|
|
135
|
+
console.log(' 4. dotnet run');
|
|
136
|
+
} else {
|
|
137
|
+
console.log('Nästa steg:');
|
|
138
|
+
console.log(` 1. cd ${targetDir}`);
|
|
139
|
+
console.log(' 2. npm install');
|
|
140
|
+
console.log(' 3. npm run dev');
|
|
141
|
+
}
|