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.
Files changed (451) hide show
  1. package/README.md +204 -164
  2. package/all.js +91 -5
  3. package/bin/scb-wc.mjs +141 -0
  4. package/blazor/CustomEvents.cs +83 -0
  5. package/blazor/ScbBlazorInteropBase.cs +4460 -1674
  6. package/blazor/scb-blazor-bridge.js +6827 -2805
  7. package/blazor/wrappers/ScbAccordion.razor +50 -0
  8. package/blazor/wrappers/ScbAppBar.razor +95 -0
  9. package/blazor/wrappers/ScbBreadcrumb.razor +59 -0
  10. package/blazor/wrappers/ScbCalendar.razor +100 -0
  11. package/blazor/wrappers/ScbCalendarCard.razor +189 -0
  12. package/blazor/wrappers/ScbCheckbox.razor +92 -0
  13. package/blazor/wrappers/ScbCollapse.razor +76 -0
  14. package/blazor/wrappers/ScbCookiesConsent.razor +106 -0
  15. package/blazor/wrappers/ScbDatepicker.razor +77 -0
  16. package/blazor/wrappers/ScbDialog.razor +72 -0
  17. package/blazor/wrappers/ScbDrawer.razor +64 -0
  18. package/blazor/wrappers/ScbDropZone.razor +168 -0
  19. package/blazor/wrappers/ScbDropdown.razor +76 -0
  20. package/blazor/wrappers/ScbHorizontalScroller.razor +137 -0
  21. package/blazor/wrappers/ScbList.razor +77 -0
  22. package/blazor/wrappers/ScbMenu.razor +71 -0
  23. package/blazor/wrappers/ScbNav.razor +92 -0
  24. package/blazor/wrappers/ScbNotificationCard.razor +122 -0
  25. package/blazor/wrappers/ScbOptionsMenu.razor +88 -0
  26. package/blazor/wrappers/ScbPagination.razor +80 -0
  27. package/blazor/wrappers/ScbRadioGroup.razor +94 -0
  28. package/blazor/wrappers/ScbSearch.razor +83 -0
  29. package/blazor/wrappers/ScbSegmentedButton.razor +85 -0
  30. package/blazor/wrappers/ScbSelect.razor +79 -0
  31. package/blazor/wrappers/ScbSlider.razor +96 -0
  32. package/blazor/wrappers/ScbSnackbar.razor +93 -0
  33. package/blazor/wrappers/ScbSwitch.razor +92 -0
  34. package/blazor/wrappers/ScbTable.razor +67 -0
  35. package/blazor/wrappers/ScbTableAdvanced.razor +78 -0
  36. package/blazor/wrappers/ScbTabs.razor +55 -0
  37. package/blazor/wrappers/ScbTextfield.razor +104 -0
  38. package/blazor/wrappers/ScbTooltip.razor +88 -0
  39. package/blazor/wrappers/ScbViz.razor +142 -0
  40. package/demo-data-preview.svg +12 -0
  41. package/dummy.png +0 -0
  42. package/fonts/inter/files/inter-latin-wght-italic.woff2 +0 -0
  43. package/fonts/inter/files/inter-latin-wght-normal.woff2 +0 -0
  44. package/fonts/material-symbols-outlined/files/material-symbols-outlined-latin-wght-normal.woff2 +0 -0
  45. package/index.js +88 -1
  46. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-accordion/scb-accordion-item.js +211 -0
  47. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-accordion/scb-accordion.js +44 -0
  48. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-app-bar/scb-app-bar.js +166 -0
  49. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-avatar/scb-avatar.js +111 -0
  50. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-badge/scb-badge.js +80 -0
  51. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-breadcrumb/scb-breadcrumb-item.js +14 -0
  52. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-breadcrumb/scb-breadcrumb.js +96 -0
  53. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-button/scb-button.js +268 -0
  54. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-calendar/scb-calendar-event.js +6 -0
  55. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-calendar/scb-calendar.js +168 -0
  56. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-calendar-card/scb-calendar-card.js +346 -0
  57. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-card/scb-card.js +761 -0
  58. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-checkbox/scb-checkbox-group.js +33 -0
  59. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-checkbox/scb-checkbox.js +140 -0
  60. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-chevron/scb-chevron.js +121 -0
  61. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-chip/scb-chip.js +66 -0
  62. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-collapse/scb-collapse.js +89 -0
  63. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-cookies-consent/scb-cookies-consent.js +78 -0
  64. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-datepicker/scb-datepicker.js +296 -0
  65. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-dialog/scb-dialog.js +265 -0
  66. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-divider/scb-divider.js +69 -0
  67. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-drawer/scb-drawer.js +128 -0
  68. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-drop-zone/scb-drop-zone.js +555 -0
  69. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-dropdown/scb-dropdown.js +306 -0
  70. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-fab/scb-fab.js +108 -0
  71. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-fact-card/scb-fact-card-content.js +46 -0
  72. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-fact-card/scb-fact-card.js +226 -0
  73. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-footer/scb-footer-section.js +3 -0
  74. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-footer/scb-footer.js +210 -0
  75. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-gallery-grid/scb-gallery-grid.js +131 -0
  76. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-grid/scb-grid-item.js +11 -0
  77. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-grid/scb-grid.js +98 -0
  78. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-grid/scb-stack.js +33 -0
  79. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-menu-group.js +1 -0
  80. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-menu-item.js +5 -0
  81. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-tab.js +5 -0
  82. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header-utility.js +1 -0
  83. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-header/scb-header.js +681 -0
  84. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-horizontal-scroller/scb-horizontal-scroller.js +196 -0
  85. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-icon-button/scb-icon-button.js +171 -0
  86. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-keyfigure-card/scb-keyfigure-card.js +212 -0
  87. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-link/scb-link.js +61 -0
  88. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-list/scb-list-item.js +153 -0
  89. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-list/scb-list.js +26 -0
  90. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-menu-item.js +205 -0
  91. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-menu-section.js +42 -0
  92. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-menu.js +81 -0
  93. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-menu/scb-sub-menu.js +10 -0
  94. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-nav/scb-nav-item.js +28 -0
  95. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-nav/scb-nav.js +104 -0
  96. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-notification-card/scb-notification-card.js +358 -0
  97. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-options-menu/scb-options-menu-item.js +66 -0
  98. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-options-menu/scb-options-menu.js +88 -0
  99. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-options-menu/scb-options-sub-menu.js +34 -0
  100. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-overlay/scb-overlay.js +49 -0
  101. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-pagination/scb-pagination.js +312 -0
  102. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-progress-indicator/scb-progress-indicator.js +87 -0
  103. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-progress-stepper/scb-progress-step.js +147 -0
  104. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-progress-stepper/scb-progress-stepper.js +62 -0
  105. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-radio-button/scb-radio-button.js +132 -0
  106. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-radio-button/scb-radio-group.js +43 -0
  107. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-scrollspy/scb-scrollspy.js +79 -0
  108. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-search/scb-search.js +292 -0
  109. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-segmented-button/scb-segmented-button.js +32 -0
  110. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-segmented-button/scb-segmented-item.js +74 -0
  111. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-select/scb-select-option.js +61 -0
  112. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-select/scb-select.js +284 -0
  113. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-skeleton/scb-skeleton.js +38 -0
  114. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-slider/scb-slider.js +27 -0
  115. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-snackbar/scb-snackbar.js +128 -0
  116. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-status-pill/scb-status-pill.js +45 -0
  117. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-stepper/scb-step.js +239 -0
  118. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-stepper/scb-stepper.js +139 -0
  119. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-switch/scb-switch.js +59 -0
  120. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-table/scb-table.js +51 -0
  121. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-table-advanced/scb-table-advanced.js +76 -0
  122. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tabs/scb-primary-tab.js +6 -0
  123. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tabs/scb-secondary-tab.js +6 -0
  124. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tabs/scb-tabs.js +28 -0
  125. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-textfield/scb-textfield.js +595 -0
  126. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-toc/scb-toc-item.js +303 -0
  127. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-toc/scb-toc.js +19 -0
  128. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-tooltip/scb-tooltip.js +196 -0
  129. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-vignette/scb-vignette.js +37 -0
  130. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-actions-runtime.js +2 -0
  131. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-print-runtime.js +98 -0
  132. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-series-differentiation-registry.js +1 -0
  133. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-series-differentiation-runtime.js +1 -0
  134. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz-table-runtime.js +1 -0
  135. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-test-components/scb-viz/scb-viz.js +1140 -0
  136. package/mvc/components/all.js +177 -1
  137. package/mvc/components/scb-accordion/scb-accordion-item.js +1 -0
  138. package/mvc/components/scb-accordion/scb-accordion.js +1 -0
  139. package/mvc/components/scb-app-bar/scb-app-bar.js +1 -0
  140. package/mvc/components/scb-avatar/scb-avatar.js +1 -0
  141. package/mvc/components/scb-badge/scb-badge.js +1 -0
  142. package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +1 -0
  143. package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +1 -0
  144. package/mvc/components/scb-button/scb-button.js +1 -0
  145. package/mvc/components/scb-calendar/scb-calendar-event.js +1 -0
  146. package/mvc/components/scb-calendar/scb-calendar.js +1 -0
  147. package/mvc/components/scb-calendar-card/scb-calendar-card.js +1 -0
  148. package/mvc/components/scb-card/scb-card.js +1 -0
  149. package/mvc/components/scb-checkbox/scb-checkbox-group.js +1 -0
  150. package/mvc/components/scb-checkbox/scb-checkbox.js +1 -0
  151. package/mvc/components/scb-chip/scb-chip.js +1 -0
  152. package/mvc/components/scb-collapse/scb-collapse.js +1 -0
  153. package/mvc/components/scb-cookies-consent/scb-cookies-consent.js +1 -0
  154. package/mvc/components/scb-dialog/scb-dialog.js +1 -0
  155. package/mvc/components/scb-divider/scb-divider.js +1 -0
  156. package/mvc/components/scb-drawer/scb-drawer.js +1 -0
  157. package/mvc/components/scb-drop-zone/scb-drop-zone.js +1 -0
  158. package/mvc/components/scb-dropdown/scb-dropdown.js +1 -0
  159. package/mvc/components/scb-fab/scb-fab.js +1 -0
  160. package/mvc/components/scb-fact-card/scb-fact-card-content.js +1 -0
  161. package/mvc/components/scb-fact-card/scb-fact-card.js +1 -0
  162. package/mvc/components/scb-footer/scb-footer-section.js +1 -0
  163. package/mvc/components/scb-footer/scb-footer.js +1 -0
  164. package/mvc/components/scb-gallery-grid/scb-gallery-grid.js +1 -0
  165. package/mvc/components/scb-grid/scb-grid-item.js +1 -0
  166. package/mvc/components/scb-grid/scb-grid.js +1 -0
  167. package/mvc/components/scb-grid/scb-stack.js +1 -0
  168. package/mvc/components/scb-header/scb-header-menu-group.js +1 -0
  169. package/mvc/components/scb-header/scb-header-menu-item.js +1 -0
  170. package/mvc/components/scb-header/scb-header-tab.js +1 -0
  171. package/mvc/components/scb-header/scb-header-utility.js +1 -0
  172. package/mvc/components/scb-header/scb-header.js +1 -0
  173. package/mvc/components/scb-horizontal-scroller/scb-horizontal-scroller.js +1 -0
  174. package/mvc/components/scb-icon-button/scb-icon-button.js +1 -0
  175. package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +1 -0
  176. package/mvc/components/scb-link/scb-link.js +1 -0
  177. package/mvc/components/scb-list/scb-list-item.js +1 -0
  178. package/mvc/components/scb-list/scb-list.js +1 -0
  179. package/mvc/components/scb-menu/scb-menu-item.js +1 -0
  180. package/mvc/components/scb-menu/scb-menu-section.js +1 -0
  181. package/mvc/components/scb-menu/scb-menu.js +1 -0
  182. package/mvc/components/scb-menu/scb-sub-menu.js +1 -0
  183. package/mvc/components/scb-nav/scb-nav-item.js +1 -0
  184. package/mvc/components/scb-nav/scb-nav.js +1 -0
  185. package/mvc/components/scb-notification-card/scb-notification-card.js +1 -0
  186. package/mvc/components/scb-options-menu/scb-options-menu-item.js +1 -0
  187. package/mvc/components/scb-options-menu/scb-options-menu.js +1 -0
  188. package/mvc/components/scb-options-menu/scb-options-sub-menu.js +1 -0
  189. package/mvc/components/scb-overlay/scb-overlay.js +1 -0
  190. package/mvc/components/scb-pagination/scb-pagination.js +1 -0
  191. package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +1 -0
  192. package/mvc/components/scb-progress-stepper/scb-progress-step.js +1 -0
  193. package/mvc/components/scb-progress-stepper/scb-progress-stepper.js +1 -0
  194. package/mvc/components/scb-radio-button/scb-radio-button.js +1 -0
  195. package/mvc/components/scb-radio-button/scb-radio-group.js +1 -0
  196. package/mvc/components/scb-scrollspy/scb-scrollspy.js +1 -0
  197. package/mvc/components/scb-search/scb-search.js +1 -0
  198. package/mvc/components/scb-segmented-button/scb-segmented-button.js +1 -0
  199. package/mvc/components/scb-segmented-button/scb-segmented-item.js +1 -0
  200. package/mvc/components/scb-select/scb-select-option.js +1 -0
  201. package/mvc/components/scb-select/scb-select.js +1 -0
  202. package/mvc/components/scb-skeleton/scb-skeleton.js +1 -0
  203. package/mvc/components/scb-slider/scb-slider.js +1 -0
  204. package/mvc/components/scb-snackbar/scb-snackbar.js +1 -0
  205. package/mvc/components/scb-status-pill/scb-status-pill.js +1 -0
  206. package/mvc/components/scb-stepper/scb-step.js +1 -0
  207. package/mvc/components/scb-stepper/scb-stepper.js +1 -0
  208. package/mvc/components/scb-switch/scb-switch.js +1 -0
  209. package/mvc/components/scb-table/scb-table.js +1 -0
  210. package/mvc/components/scb-table-advanced/scb-table-advanced.js +1 -0
  211. package/mvc/components/scb-tabs/scb-primary-tab.js +1 -0
  212. package/mvc/components/scb-tabs/scb-secondary-tab.js +1 -0
  213. package/mvc/components/scb-tabs/scb-tabs.js +1 -0
  214. package/mvc/components/scb-textfield/scb-textfield.js +1 -0
  215. package/mvc/components/scb-toc/scb-toc-item.js +1 -0
  216. package/mvc/components/scb-toc/scb-toc.js +1 -0
  217. package/mvc/components/scb-tooltip/scb-tooltip.js +1 -0
  218. package/mvc/components/scb-viz/scb-viz-actions-runtime.js +1 -0
  219. package/mvc/components/scb-viz/scb-viz-print-runtime.js +1 -0
  220. package/mvc/components/scb-viz/scb-viz-series-differentiation-registry.js +1 -0
  221. package/mvc/components/scb-viz/scb-viz-series-differentiation-runtime.js +1 -0
  222. package/mvc/components/scb-viz/scb-viz-table-runtime.js +1 -0
  223. package/mvc/components/scb-viz/scb-viz.js +1 -0
  224. package/mvc/fonts/inter/files/inter-latin-wght-italic.woff2 +0 -0
  225. package/mvc/fonts/inter/files/inter-latin-wght-normal.woff2 +0 -0
  226. package/mvc/fonts/material-symbols-outlined/files/material-symbols-outlined-latin-wght-normal.woff2 +0 -0
  227. package/mvc/scb-blazor-bridge.js +6827 -2805
  228. package/mvc/scb-logo.svg +20 -20
  229. package/mvc/scb-typography.css +1 -1
  230. package/mvc/scb-wc.css +3 -2
  231. package/mvc/scb.svg +13 -13
  232. package/mvc/vendor/assertClassBrand.js +1 -0
  233. package/mvc/vendor/classPrivateFieldGet2.js +1 -0
  234. package/mvc/vendor/decorate.js +1 -0
  235. package/mvc/vendor/preload-helper.js +1 -0
  236. package/mvc/vendor/vendor-lit.js +1 -0
  237. package/mvc/vendor/vendor-material.js +364 -0
  238. package/mvc/vendor/vendor.js +4 -0
  239. package/package.json +429 -77
  240. package/scb-accordion/scb-accordion-item.js +340 -0
  241. package/scb-accordion/scb-accordion.js +151 -0
  242. package/scb-app-bar/scb-app-bar.js +317 -0
  243. package/scb-avatar/scb-avatar.js +197 -0
  244. package/scb-badge/scb-badge.js +165 -0
  245. package/scb-breadcrumb/scb-breadcrumb-item.js +62 -0
  246. package/scb-breadcrumb/scb-breadcrumb.js +255 -0
  247. package/scb-button/scb-button.js +398 -0
  248. package/scb-calendar/scb-calendar-event.js +48 -0
  249. package/scb-calendar/scb-calendar.js +700 -0
  250. package/scb-calendar-card/scb-calendar-card.js +505 -0
  251. package/scb-card/scb-card.js +1231 -0
  252. package/scb-checkbox/scb-checkbox-group.js +104 -0
  253. package/scb-checkbox/scb-checkbox.js +316 -0
  254. package/scb-chevron/scb-chevron.js +143 -0
  255. package/scb-chip/scb-chip.js +234 -0
  256. package/scb-collapse/scb-collapse.js +231 -0
  257. package/scb-cookies-consent/scb-cookies-consent.js +164 -0
  258. package/scb-datepicker/scb-datepicker.js +469 -0
  259. package/scb-dialog/scb-dialog.js +574 -0
  260. package/scb-divider/scb-divider.js +119 -0
  261. package/scb-drawer/scb-drawer.js +297 -0
  262. package/scb-drop-zone/scb-drop-zone.js +965 -0
  263. package/scb-dropdown/scb-dropdown.js +598 -0
  264. package/scb-fab/scb-fab.js +190 -0
  265. package/scb-fact-card/scb-fact-card-content.js +82 -0
  266. package/scb-fact-card/scb-fact-card.js +376 -0
  267. package/scb-footer/scb-footer-section.js +23 -0
  268. package/scb-footer/scb-footer.js +343 -0
  269. package/scb-gallery-grid/scb-gallery-grid.js +242 -0
  270. package/scb-grid/scb-grid-item.js +81 -0
  271. package/scb-grid/scb-grid.js +200 -0
  272. package/scb-grid/scb-stack.js +120 -0
  273. package/scb-header/scb-header-menu-group.js +21 -0
  274. package/scb-header/scb-header-menu-item.js +22 -0
  275. package/scb-header/scb-header-tab.js +25 -0
  276. package/scb-header/scb-header-utility.js +27 -0
  277. package/scb-header/scb-header.js +1358 -0
  278. package/scb-horizontal-scroller/scb-horizontal-scroller.js +353 -0
  279. package/scb-icon-button/scb-icon-button.js +335 -0
  280. package/scb-keyfigure-card/scb-keyfigure-card.js +340 -0
  281. package/scb-link/scb-link.js +136 -0
  282. package/scb-list/scb-list-item.js +297 -0
  283. package/scb-list/scb-list.js +119 -0
  284. package/scb-menu/scb-menu-item.js +330 -0
  285. package/scb-menu/scb-menu-section.js +60 -0
  286. package/scb-menu/scb-menu.js +154 -0
  287. package/scb-menu/scb-sub-menu.js +36 -0
  288. package/scb-nav/scb-nav-item.js +96 -0
  289. package/scb-nav/scb-nav.js +263 -0
  290. package/scb-notification-card/scb-notification-card.js +479 -0
  291. package/scb-options-menu/scb-options-menu-item.js +218 -0
  292. package/scb-options-menu/scb-options-menu.js +237 -0
  293. package/scb-options-menu/scb-options-sub-menu.js +69 -0
  294. package/scb-overlay/scb-overlay.js +144 -0
  295. package/scb-pagination/scb-pagination.js +438 -0
  296. package/scb-progress-indicator/scb-progress-indicator.js +199 -0
  297. package/scb-progress-stepper/scb-progress-step.js +213 -0
  298. package/scb-progress-stepper/scb-progress-stepper.js +132 -0
  299. package/scb-radio-button/scb-radio-button.js +249 -0
  300. package/scb-radio-button/scb-radio-group.js +216 -0
  301. package/scb-scrollspy/scb-scrollspy.js +670 -0
  302. package/scb-search/scb-search.js +643 -0
  303. package/scb-segmented-button/scb-segmented-button.js +215 -0
  304. package/scb-segmented-button/scb-segmented-item.js +133 -0
  305. package/scb-select/scb-select-option.js +88 -0
  306. package/scb-select/scb-select.js +517 -0
  307. package/scb-skeleton/scb-skeleton.js +92 -0
  308. package/scb-slider/scb-slider.js +98 -0
  309. package/scb-snackbar/scb-snackbar.js +223 -0
  310. package/scb-status-pill/scb-status-pill.js +100 -0
  311. package/scb-stepper/scb-step.js +311 -0
  312. package/scb-stepper/scb-stepper.js +325 -0
  313. package/scb-switch/scb-switch.js +182 -0
  314. package/scb-table/scb-table.js +202 -0
  315. package/scb-table-advanced/scb-table-advanced.js +327 -0
  316. package/scb-tabs/scb-primary-tab.js +68 -0
  317. package/scb-tabs/scb-secondary-tab.js +68 -0
  318. package/scb-tabs/scb-tabs.js +100 -0
  319. package/scb-test-components/index.d.ts +90 -0
  320. package/scb-test-components/scb-accordion/scb-accordion-item.d.ts +39 -0
  321. package/scb-test-components/scb-accordion/scb-accordion.d.ts +27 -0
  322. package/scb-test-components/scb-app-bar/scb-app-bar.d.ts +25 -0
  323. package/scb-test-components/scb-avatar/scb-avatar.d.ts +37 -0
  324. package/scb-test-components/scb-badge/scb-badge.d.ts +28 -0
  325. package/scb-test-components/scb-breadcrumb/scb-breadcrumb-item.d.ts +15 -0
  326. package/scb-test-components/scb-breadcrumb/scb-breadcrumb.d.ts +27 -0
  327. package/scb-test-components/scb-button/scb-button.d.ts +40 -0
  328. package/scb-test-components/scb-calendar/scb-calendar-event.d.ts +15 -0
  329. package/scb-test-components/scb-calendar/scb-calendar.d.ts +77 -0
  330. package/scb-test-components/scb-calendar-card/scb-calendar-card.d.ts +45 -0
  331. package/scb-test-components/scb-card/scb-card.d.ts +101 -0
  332. package/scb-test-components/scb-checkbox/scb-checkbox-group.d.ts +23 -0
  333. package/scb-test-components/scb-checkbox/scb-checkbox.d.ts +52 -0
  334. package/scb-test-components/scb-chevron/scb-chevron.d.ts +13 -0
  335. package/scb-test-components/scb-chip/scb-chip.d.ts +61 -0
  336. package/scb-test-components/scb-collapse/scb-collapse.d.ts +29 -0
  337. package/scb-test-components/scb-cookies-consent/scb-cookies-consent.d.ts +23 -0
  338. package/scb-test-components/scb-datepicker/scb-datepicker.d.ts +39 -0
  339. package/scb-test-components/scb-dialog/scb-dialog.d.ts +72 -0
  340. package/scb-test-components/scb-divider/scb-divider.d.ts +34 -0
  341. package/scb-test-components/scb-drawer/scb-drawer.d.ts +72 -0
  342. package/scb-test-components/scb-drop-zone/scb-drop-zone.d.ts +143 -0
  343. package/scb-test-components/scb-dropdown/scb-dropdown.d.ts +70 -0
  344. package/scb-test-components/scb-fab/scb-fab.d.ts +42 -0
  345. package/scb-test-components/scb-fact-card/scb-fact-card-content.d.ts +15 -0
  346. package/scb-test-components/scb-fact-card/scb-fact-card.d.ts +49 -0
  347. package/scb-test-components/scb-footer/scb-footer-section.d.ts +20 -0
  348. package/scb-test-components/scb-footer/scb-footer.d.ts +31 -0
  349. package/scb-test-components/scb-gallery-grid/scb-gallery-grid.d.ts +20 -0
  350. package/scb-test-components/scb-grid/scb-grid-item.d.ts +32 -0
  351. package/scb-test-components/scb-grid/scb-grid.d.ts +36 -0
  352. package/scb-test-components/scb-grid/scb-stack.d.ts +32 -0
  353. package/scb-test-components/scb-header/scb-header-menu-group.d.ts +12 -0
  354. package/scb-test-components/scb-header/scb-header-menu-item.d.ts +13 -0
  355. package/scb-test-components/scb-header/scb-header-tab.d.ts +13 -0
  356. package/scb-test-components/scb-header/scb-header-utility.d.ts +14 -0
  357. package/scb-test-components/scb-header/scb-header.d.ts +132 -0
  358. package/scb-test-components/scb-horizontal-scroller/scb-horizontal-scroller.d.ts +47 -0
  359. package/scb-test-components/scb-icon-button/scb-icon-button.d.ts +76 -0
  360. package/scb-test-components/scb-keyfigure-card/scb-keyfigure-card.d.ts +46 -0
  361. package/scb-test-components/scb-link/scb-link.d.ts +25 -0
  362. package/scb-test-components/scb-list/scb-list-item.d.ts +38 -0
  363. package/scb-test-components/scb-list/scb-list.d.ts +26 -0
  364. package/scb-test-components/scb-menu/scb-menu-item.d.ts +52 -0
  365. package/scb-test-components/scb-menu/scb-menu-section.d.ts +11 -0
  366. package/scb-test-components/scb-menu/scb-menu.d.ts +25 -0
  367. package/scb-test-components/scb-menu/scb-sub-menu.d.ts +14 -0
  368. package/scb-test-components/scb-nav/scb-nav-item.d.ts +20 -0
  369. package/scb-test-components/scb-nav/scb-nav.d.ts +50 -0
  370. package/scb-test-components/scb-notification-card/scb-notification-card.d.ts +46 -0
  371. package/scb-test-components/scb-options-menu/scb-options-menu-item.d.ts +29 -0
  372. package/scb-test-components/scb-options-menu/scb-options-menu.d.ts +35 -0
  373. package/scb-test-components/scb-options-menu/scb-options-sub-menu.d.ts +11 -0
  374. package/scb-test-components/scb-overlay/scb-overlay.d.ts +24 -0
  375. package/scb-test-components/scb-pagination/scb-pagination.d.ts +36 -0
  376. package/scb-test-components/scb-progress-indicator/scb-progress-indicator.d.ts +28 -0
  377. package/scb-test-components/scb-progress-stepper/scb-progress-step.d.ts +21 -0
  378. package/scb-test-components/scb-progress-stepper/scb-progress-stepper.d.ts +22 -0
  379. package/scb-test-components/scb-radio-button/scb-radio-button.d.ts +26 -0
  380. package/scb-test-components/scb-radio-button/scb-radio-group.d.ts +49 -0
  381. package/scb-test-components/scb-scrollspy/scb-scrollspy.d.ts +217 -0
  382. package/scb-test-components/scb-search/scb-search.d.ts +96 -0
  383. package/scb-test-components/scb-segmented-button/scb-segmented-button.d.ts +80 -0
  384. package/scb-test-components/scb-segmented-button/scb-segmented-item.d.ts +21 -0
  385. package/scb-test-components/scb-select/scb-select-option.d.ts +16 -0
  386. package/scb-test-components/scb-select/scb-select.d.ts +62 -0
  387. package/scb-test-components/scb-skeleton/scb-skeleton.d.ts +25 -0
  388. package/scb-test-components/scb-slider/scb-slider.d.ts +28 -0
  389. package/scb-test-components/scb-snackbar/scb-snackbar.d.ts +24 -0
  390. package/scb-test-components/scb-status-pill/scb-status-pill.d.ts +22 -0
  391. package/scb-test-components/scb-stepper/scb-step.d.ts +22 -0
  392. package/scb-test-components/scb-stepper/scb-stepper.d.ts +47 -0
  393. package/scb-test-components/scb-switch/scb-switch.d.ts +52 -0
  394. package/scb-test-components/scb-table/scb-table.d.ts +24 -0
  395. package/scb-test-components/scb-table-advanced/scb-table-advanced.d.ts +39 -0
  396. package/scb-test-components/scb-tabs/scb-primary-tab.d.ts +15 -0
  397. package/scb-test-components/scb-tabs/scb-secondary-tab.d.ts +15 -0
  398. package/scb-test-components/scb-tabs/scb-tabs.d.ts +21 -0
  399. package/scb-test-components/scb-textfield/scb-textfield.d.ts +75 -0
  400. package/scb-test-components/scb-toc/scb-toc-item.d.ts +38 -0
  401. package/scb-test-components/scb-toc/scb-toc.d.ts +27 -0
  402. package/scb-test-components/scb-tooltip/scb-tooltip.d.ts +51 -0
  403. package/scb-test-components/scb-vignette/scb-vignette.d.ts +20 -0
  404. package/scb-test-components/scb-viz/scb-viz-actions-runtime.d.ts +26 -0
  405. package/scb-test-components/scb-viz/scb-viz-print-runtime.d.ts +27 -0
  406. package/scb-test-components/scb-viz/scb-viz-series-differentiation-registry.d.ts +21 -0
  407. package/scb-test-components/scb-viz/scb-viz-series-differentiation-runtime.d.ts +42 -0
  408. package/scb-test-components/scb-viz/scb-viz-table-runtime.d.ts +28 -0
  409. package/scb-test-components/scb-viz/scb-viz.d.ts +207 -0
  410. package/scb-textfield/scb-textfield.js +827 -0
  411. package/scb-toc/scb-toc-item.js +477 -0
  412. package/scb-toc/scb-toc.js +101 -0
  413. package/scb-tooltip/scb-tooltip.js +402 -0
  414. package/scb-typography.css +1 -1
  415. package/scb-vignette/scb-vignette.js +87 -0
  416. package/scb-viz/scb-viz-actions-runtime.js +143 -0
  417. package/scb-viz/scb-viz-print-runtime.js +121 -0
  418. package/scb-viz/scb-viz-series-differentiation-registry.js +117 -0
  419. package/scb-viz/scb-viz-series-differentiation-runtime.js +126 -0
  420. package/scb-viz/scb-viz-table-runtime.js +86 -0
  421. package/scb-viz/scb-viz.js +2195 -0
  422. package/scb-wc-public-entry/index.d.ts +87 -0
  423. package/scb-wc-selfhost.css +29 -0
  424. package/scb-wc.bundle.js +12893 -1099
  425. package/scb-wc.css +3 -2
  426. package/scb-wc.d.ts +174 -0
  427. package/starters/blazor/Components/App.razor +34 -0
  428. package/starters/blazor/Components/Layout/MainLayout.razor +39 -0
  429. package/starters/blazor/Components/Pages/Home.razor +80 -0
  430. package/starters/blazor/Components/Routes.razor +14 -0
  431. package/starters/blazor/Components/_Imports.razor +10 -0
  432. package/starters/blazor/Program.cs +23 -0
  433. package/starters/blazor/README.md +28 -0
  434. package/starters/blazor/ScbStarterApp.csproj +7 -0
  435. package/starters/blazor/dot-gitignore +3 -0
  436. package/starters/blazor/package.json +14 -0
  437. package/starters/blazor/wwwroot/app.css +54 -0
  438. package/starters/html/README.md +23 -0
  439. package/starters/html/dot-gitignore +2 -0
  440. package/starters/html/index.html +12 -0
  441. package/starters/html/main.js +135 -0
  442. package/starters/html/package.json +16 -0
  443. package/starters/react/README.md +24 -0
  444. package/starters/react/dot-gitignore +2 -0
  445. package/starters/react/index.html +12 -0
  446. package/starters/react/package.json +19 -0
  447. package/starters/react/src/App.jsx +118 -0
  448. package/starters/react/src/main.jsx +29 -0
  449. package/starters/react/vite.config.js +6 -0
  450. package/index.d.ts +0 -0
  451. 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
- > **Obs:** Kör alla kommandon i mappen där din `package.json` ligger.
24
- > Har du ingen? Kör `npm init -y` i projektroten (eller annan lämplig mapp).
25
-
26
- Installera paketet:
27
-
28
- ```sh
29
- npm install scb-wc
30
- ```
31
-
32
- ---
33
-
34
- ## Alternativ 1: Använd som ES‑moduler (t.ex. i React, Vue, SPA)
35
-
36
- Importera CSS och de komponenter du använder (bäst för tree‑shaking):
37
-
38
- ```js
39
- // Global CSS + tokens (måste bara importeras en gång)
40
- import 'scb-wc/scb-wc.css';
41
- import 'scb-wc/scb-typography.css';
42
-
43
- // Enskilda web components
44
- import 'scb-wc/scb-button';
45
- import 'scb-wc/scb-accordion';
46
- ```
47
-
48
- Vill du ladda allt finns en samlingsfil (inte rekommenderat i större appar):
49
-
50
- ```js
51
- import 'scb-wc/scb-wc.css';
52
- import 'scb-wc/scb-typography.css';
53
- import 'scb-wc/all';
54
- ```
55
-
56
- ---
57
-
58
- ## Alternativ 2: Använd i MVC/MPA via `<script type="module">`
59
-
60
- Det här läget använder den färdig‑splittrade **MVC‑ESM**‑builden som följer med paketet under:
61
-
62
- ```text
63
- node_modules/scb-wc/mvc/
64
- ```
65
-
66
- ### 2.1) Rekommenderat: ett npm‑script för att kopiera UI‑filer
67
-
68
- Lägg till i din apps `package.json`:
69
-
70
- ```jsonc
71
- {
72
- "scripts": {
73
- "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);\""
74
- }
75
- }
76
- ```
77
-
78
- Kör sedan:
79
-
80
- ```sh
81
- npm run ui:install
82
- ```
83
-
84
- Det kopierar hela `node_modules/scb-wc/mvc/` till `wwwroot/ui/` i din applikation (komponenter, vendor och CSS).
85
-
86
- ### 2.2) Ladda filer i din layout (Razor, .cshtml, klassisk MVC)
87
-
88
- ```html
89
- <!-- Lägg helst i <head> -->
90
- <link rel="stylesheet" href="~/ui/scb-wc.css" />
91
- <link rel="stylesheet" href="~/ui/scb-typography.css" />
92
-
93
- <!-- Ladda ENDAST de komponenter du använder på sidan, gärna precis före </body> -->
94
- <script type="module" src="~/ui/components/scb-link/scb-link.js"></script>
95
- <script type="module" src="~/ui/components/scb-button/scb-button.js"></script>
96
- ```
97
-
98
- ### 2.3) CI/CD‑exempel
99
-
100
- Kör samma script i din pipeline:
101
-
102
- ```yaml
103
- steps:
104
- - script: npm ci
105
- - script: npm run ui:install
106
- ```
107
-
108
- Behöver du en annan webbrotsökväg (t.ex. om din `wwwroot` ligger någon annanstans) kan du ange flaggan:
109
-
110
- ```yaml
111
- - script: npm run ui:install --ui_wwwroot=../wwwroot
112
- ```
113
-
114
- ---
115
-
116
- ## Alternativ 3: Bundlad version (IIFE) för äldre miljöer
117
-
118
- Om ESM inte stöds kan du använda den bundlade varianten från paketroten.
119
- Flytta följande två filer från `node_modules/scb-wc` och använd dem i applikationen:
120
-
121
- ```text
122
- node_modules/scb-wc/scb-wc.bundle.js
123
- node_modules/scb-wc/scb-wc.css
124
- ```
125
-
126
- ```html
127
- <link rel="stylesheet" href="scb-wc.css">
128
- <link rel="stylesheet" href="scb-typography.css" />
129
- <script src="scb-wc.bundle.js"></script>
130
- ```
131
-
132
- > **Obs:** Blanda inte MVC‑ESM och IIFE på samma sida.
133
-
134
- ---
135
-
136
- ## Alternativ 4: Blazor (Server och WebAssembly)
137
-
138
- SCB Web Components fungerar även i Blazor‑appar när du vill använda samma komponenter i både MVC/MPA och Blazor.
139
-
140
- Grundprincipen är:
141
-
142
- 1. Använd MVC‑ESM‑builden (`node_modules/scb-wc/mvc`) och kopiera den till `wwwroot/ui` med `ui:install`.
143
- 2. Ladda `scb-blazor-bridge.js` från `wwwroot/ui` i din Blazor‑layout.
144
- 3. Lägg till (eller återanvänd) `ScbBlazorInteropBase` i din lösning.
145
-
146
- Exempel layout:
147
-
148
- ```html
149
- <link rel="stylesheet" href="~/ui/scb-wc.css" />
150
- <link rel="stylesheet" href="~/ui/scb-typography.css" />
151
-
152
- <script type="module" src="~/ui/scb-blazor-bridge.js"></script>
153
- ```
154
-
155
- `ScbBlazorInteropBase` kan återanvändas mellan projekt som använder både `scb-wc` och `scb-wc-test`.
156
-
157
- ---
158
-
159
- ## Viktigt
160
-
161
- - `scb-wc` är produktionspaketet. Använd `scb-wc-test` för komponenter under utveckling och experiment.
162
- - **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`).
163
- - **Blanda inte MVC‑ESM och IIFE på samma sida.** Välj en distributionsform per sida/app.
164
- - **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.
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 './all.js';
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 './mvc/components/all.js';
5
- import './mvc/components/index.js';
6
- import './mvc/scb-blazor-bridge.js';
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
+ }