scb-wc 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/README.md +194 -164
  2. package/all.js +91 -5
  3. package/blazor/CustomEvents.cs +83 -0
  4. package/blazor/ScbBlazorInteropBase.cs +4460 -1663
  5. package/blazor/scb-blazor-bridge.js +6827 -2517
  6. package/blazor/wrappers/ScbAccordion.razor +50 -0
  7. package/blazor/wrappers/ScbAppBar.razor +95 -0
  8. package/blazor/wrappers/ScbBreadcrumb.razor +59 -0
  9. package/blazor/wrappers/ScbCalendar.razor +100 -0
  10. package/blazor/wrappers/ScbCalendarCard.razor +189 -0
  11. package/blazor/wrappers/ScbCheckbox.razor +92 -0
  12. package/blazor/wrappers/ScbCollapse.razor +76 -0
  13. package/blazor/wrappers/ScbCookiesConsent.razor +106 -0
  14. package/blazor/wrappers/ScbDatepicker.razor +77 -0
  15. package/blazor/wrappers/ScbDialog.razor +72 -0
  16. package/blazor/wrappers/ScbDrawer.razor +64 -0
  17. package/blazor/wrappers/ScbDropZone.razor +168 -0
  18. package/blazor/wrappers/ScbDropdown.razor +76 -0
  19. package/blazor/wrappers/ScbHorizontalScroller.razor +137 -0
  20. package/blazor/wrappers/ScbList.razor +77 -0
  21. package/blazor/wrappers/ScbMenu.razor +71 -0
  22. package/blazor/wrappers/ScbNav.razor +92 -0
  23. package/blazor/wrappers/ScbNotificationCard.razor +122 -0
  24. package/blazor/wrappers/ScbOptionsMenu.razor +88 -0
  25. package/blazor/wrappers/ScbPagination.razor +80 -0
  26. package/blazor/wrappers/ScbRadioGroup.razor +94 -0
  27. package/blazor/wrappers/ScbSearch.razor +83 -0
  28. package/blazor/wrappers/ScbSegmentedButton.razor +85 -0
  29. package/blazor/wrappers/ScbSelect.razor +79 -0
  30. package/blazor/wrappers/ScbSlider.razor +96 -0
  31. package/blazor/wrappers/ScbSnackbar.razor +93 -0
  32. package/blazor/wrappers/ScbSwitch.razor +92 -0
  33. package/blazor/wrappers/ScbTable.razor +67 -0
  34. package/blazor/wrappers/ScbTableAdvanced.razor +78 -0
  35. package/blazor/wrappers/ScbTabs.razor +55 -0
  36. package/blazor/wrappers/ScbTextfield.razor +104 -0
  37. package/blazor/wrappers/ScbTooltip.razor +88 -0
  38. package/blazor/wrappers/ScbViz.razor +142 -0
  39. package/demo-data-preview.svg +12 -0
  40. package/dummy.png +0 -0
  41. package/fonts/inter/files/inter-latin-wght-italic.woff2 +0 -0
  42. package/fonts/inter/files/inter-latin-wght-normal.woff2 +0 -0
  43. package/fonts/material-symbols-outlined/files/material-symbols-outlined-latin-wght-normal.woff2 +0 -0
  44. package/index.js +91 -1
  45. package/mvc/components/all.js +90 -1
  46. package/mvc/components/scb-accordion/scb-accordion-item.js +211 -0
  47. package/mvc/components/scb-accordion/scb-accordion.js +44 -0
  48. package/mvc/components/scb-app-bar/scb-app-bar.js +166 -0
  49. package/mvc/components/scb-avatar/scb-avatar.js +111 -0
  50. package/mvc/components/scb-badge/scb-badge.js +80 -0
  51. package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +14 -0
  52. package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +96 -0
  53. package/mvc/components/scb-button/scb-button.js +268 -0
  54. package/mvc/components/scb-calendar/scb-calendar-event.js +6 -0
  55. package/mvc/components/scb-calendar/scb-calendar.js +168 -0
  56. package/mvc/components/scb-calendar-card/scb-calendar-card.js +346 -0
  57. package/mvc/components/scb-card/scb-card.js +761 -0
  58. package/mvc/components/scb-checkbox/scb-checkbox-group.js +33 -0
  59. package/mvc/components/scb-checkbox/scb-checkbox.js +140 -0
  60. package/mvc/components/scb-chevron/scb-chevron.js +121 -0
  61. package/mvc/components/scb-chip/scb-chip.js +66 -0
  62. package/mvc/components/scb-collapse/scb-collapse.js +89 -0
  63. package/mvc/components/scb-cookies-consent/scb-cookies-consent.js +78 -0
  64. package/mvc/components/scb-datepicker/scb-datepicker.js +296 -0
  65. package/mvc/components/scb-dialog/scb-dialog.js +265 -0
  66. package/mvc/components/scb-divider/scb-divider.js +69 -0
  67. package/mvc/components/scb-drawer/scb-drawer.js +128 -0
  68. package/mvc/components/scb-drop-zone/scb-drop-zone.js +555 -0
  69. package/mvc/components/scb-dropdown/scb-dropdown.js +306 -0
  70. package/mvc/components/scb-fab/scb-fab.js +108 -0
  71. package/mvc/components/scb-fact-card/scb-fact-card-content.js +46 -0
  72. package/mvc/components/scb-fact-card/scb-fact-card.js +226 -0
  73. package/mvc/components/scb-footer/scb-footer-section.js +3 -0
  74. package/mvc/components/scb-footer/scb-footer.js +210 -0
  75. package/mvc/components/scb-gallery-grid/scb-gallery-grid.js +131 -0
  76. package/mvc/components/scb-grid/scb-grid-item.js +11 -0
  77. package/mvc/components/scb-grid/scb-grid.js +98 -0
  78. package/mvc/components/scb-grid/scb-stack.js +33 -0
  79. package/mvc/components/scb-header/scb-header-menu-group.js +1 -0
  80. package/mvc/components/scb-header/scb-header-menu-item.js +5 -0
  81. package/mvc/components/scb-header/scb-header-tab.js +5 -0
  82. package/mvc/components/scb-header/scb-header-utility.js +1 -0
  83. package/mvc/components/scb-header/scb-header.js +681 -0
  84. package/mvc/components/scb-horizontal-scroller/scb-horizontal-scroller.js +196 -0
  85. package/mvc/components/scb-icon-button/scb-icon-button.js +171 -0
  86. package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +212 -0
  87. package/mvc/components/scb-link/scb-link.js +61 -0
  88. package/mvc/components/scb-list/scb-list-item.js +153 -0
  89. package/mvc/components/scb-list/scb-list.js +26 -0
  90. package/mvc/components/scb-menu/scb-menu-item.js +205 -0
  91. package/mvc/components/scb-menu/scb-menu-section.js +42 -0
  92. package/mvc/components/scb-menu/scb-menu.js +81 -0
  93. package/mvc/components/scb-menu/scb-sub-menu.js +10 -0
  94. package/mvc/components/scb-nav/scb-nav-item.js +28 -0
  95. package/mvc/components/scb-nav/scb-nav.js +104 -0
  96. package/mvc/components/scb-notification-card/scb-notification-card.js +358 -0
  97. package/mvc/components/scb-options-menu/scb-options-menu-item.js +66 -0
  98. package/mvc/components/scb-options-menu/scb-options-menu.js +88 -0
  99. package/mvc/components/scb-options-menu/scb-options-sub-menu.js +34 -0
  100. package/mvc/components/scb-overlay/scb-overlay.js +49 -0
  101. package/mvc/components/scb-pagination/scb-pagination.js +312 -0
  102. package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +87 -0
  103. package/mvc/components/scb-progress-stepper/scb-progress-step.js +147 -0
  104. package/mvc/components/scb-progress-stepper/scb-progress-stepper.js +62 -0
  105. package/mvc/components/scb-radio-button/scb-radio-button.js +132 -0
  106. package/mvc/components/scb-radio-button/scb-radio-group.js +43 -0
  107. package/mvc/components/scb-scrollspy/scb-scrollspy.js +79 -0
  108. package/mvc/components/scb-search/scb-search.js +292 -0
  109. package/mvc/components/scb-segmented-button/scb-segmented-button.js +32 -0
  110. package/mvc/components/scb-segmented-button/scb-segmented-item.js +74 -0
  111. package/mvc/components/scb-select/scb-select-option.js +61 -0
  112. package/mvc/components/scb-select/scb-select.js +284 -0
  113. package/mvc/components/scb-skeleton/scb-skeleton.js +38 -0
  114. package/mvc/components/scb-slider/scb-slider.js +27 -0
  115. package/mvc/components/scb-snackbar/scb-snackbar.js +128 -0
  116. package/mvc/components/scb-status-pill/scb-status-pill.js +45 -0
  117. package/mvc/components/scb-stepper/scb-step.js +239 -0
  118. package/mvc/components/scb-stepper/scb-stepper.js +139 -0
  119. package/mvc/components/scb-switch/scb-switch.js +59 -0
  120. package/mvc/components/scb-table/scb-table.js +51 -0
  121. package/mvc/components/scb-table-advanced/scb-table-advanced.js +76 -0
  122. package/mvc/components/scb-tabs/scb-primary-tab.js +6 -0
  123. package/mvc/components/scb-tabs/scb-secondary-tab.js +6 -0
  124. package/mvc/components/scb-tabs/scb-tabs.js +28 -0
  125. package/mvc/components/scb-textfield/scb-textfield.js +595 -0
  126. package/mvc/components/scb-toc/scb-toc-item.js +303 -0
  127. package/mvc/components/scb-toc/scb-toc.js +19 -0
  128. package/mvc/components/scb-tooltip/scb-tooltip.js +196 -0
  129. package/mvc/components/scb-vignette/scb-vignette.js +37 -0
  130. package/mvc/components/scb-viz/scb-viz-actions-runtime.js +2 -0
  131. package/mvc/components/scb-viz/scb-viz-print-runtime.js +98 -0
  132. package/mvc/components/scb-viz/scb-viz-series-differentiation-registry.js +1 -0
  133. package/mvc/components/scb-viz/scb-viz-series-differentiation-runtime.js +1 -0
  134. package/mvc/components/scb-viz/scb-viz-table-runtime.js +1 -0
  135. package/mvc/components/scb-viz/scb-viz.js +1140 -0
  136. package/mvc/fonts/inter/files/inter-latin-wght-italic.woff2 +0 -0
  137. package/mvc/fonts/inter/files/inter-latin-wght-normal.woff2 +0 -0
  138. package/mvc/fonts/material-symbols-outlined/files/material-symbols-outlined-latin-wght-normal.woff2 +0 -0
  139. package/mvc/scb-blazor-bridge.js +6827 -2517
  140. package/mvc/scb-logo.svg +20 -20
  141. package/mvc/scb-typography.css +1 -1
  142. package/mvc/scb-wc.css +3 -2
  143. package/mvc/scb.svg +13 -13
  144. package/mvc/vendor/assertClassBrand.js +1 -0
  145. package/mvc/vendor/classPrivateFieldGet2.js +1 -0
  146. package/mvc/vendor/decorate.js +1 -0
  147. package/mvc/vendor/preload-helper.js +1 -0
  148. package/mvc/vendor/vendor-lit.js +1 -0
  149. package/mvc/vendor/vendor-material.js +364 -0
  150. package/mvc/vendor/vendor.js +4 -0
  151. package/package.json +420 -77
  152. package/scb-accordion/scb-accordion-item.js +340 -0
  153. package/scb-accordion/scb-accordion.js +151 -0
  154. package/scb-app-bar/scb-app-bar.js +317 -0
  155. package/scb-avatar/scb-avatar.js +197 -0
  156. package/scb-badge/scb-badge.js +165 -0
  157. package/scb-breadcrumb/scb-breadcrumb-item.js +62 -0
  158. package/scb-breadcrumb/scb-breadcrumb.js +255 -0
  159. package/scb-button/scb-button.js +398 -0
  160. package/scb-calendar/scb-calendar-event.js +48 -0
  161. package/scb-calendar/scb-calendar.js +700 -0
  162. package/scb-calendar-card/scb-calendar-card.js +505 -0
  163. package/scb-card/scb-card.js +1231 -0
  164. package/scb-checkbox/scb-checkbox-group.js +104 -0
  165. package/scb-checkbox/scb-checkbox.js +316 -0
  166. package/scb-chevron/scb-chevron.js +144 -0
  167. package/scb-chip/scb-chip.js +234 -0
  168. package/scb-collapse/scb-collapse.js +231 -0
  169. package/scb-cookies-consent/scb-cookies-consent.js +164 -0
  170. package/scb-datepicker/scb-datepicker.js +470 -0
  171. package/scb-dialog/scb-dialog.js +574 -0
  172. package/scb-divider/scb-divider.js +119 -0
  173. package/scb-drawer/scb-drawer.js +297 -0
  174. package/scb-drop-zone/scb-drop-zone.js +965 -0
  175. package/scb-dropdown/scb-dropdown.js +598 -0
  176. package/scb-fab/scb-fab.js +190 -0
  177. package/scb-fact-card/scb-fact-card-content.js +82 -0
  178. package/scb-fact-card/scb-fact-card.js +376 -0
  179. package/scb-footer/scb-footer-section.js +23 -0
  180. package/scb-footer/scb-footer.js +343 -0
  181. package/scb-gallery-grid/scb-gallery-grid.js +242 -0
  182. package/scb-grid/scb-grid-item.js +81 -0
  183. package/scb-grid/scb-grid.js +200 -0
  184. package/scb-grid/scb-stack.js +120 -0
  185. package/scb-header/scb-header-menu-group.js +21 -0
  186. package/scb-header/scb-header-menu-item.js +22 -0
  187. package/scb-header/scb-header-tab.js +25 -0
  188. package/scb-header/scb-header-utility.js +27 -0
  189. package/scb-header/scb-header.js +1358 -0
  190. package/scb-horizontal-scroller/scb-horizontal-scroller.js +353 -0
  191. package/scb-icon-button/scb-icon-button.js +335 -0
  192. package/scb-keyfigure-card/scb-keyfigure-card.js +340 -0
  193. package/scb-link/scb-link.js +136 -0
  194. package/scb-list/scb-list-item.js +297 -0
  195. package/scb-list/scb-list.js +119 -0
  196. package/scb-menu/scb-menu-item.js +330 -0
  197. package/scb-menu/scb-menu-section.js +60 -0
  198. package/scb-menu/scb-menu.js +154 -0
  199. package/scb-menu/scb-sub-menu.js +36 -0
  200. package/scb-nav/scb-nav-item.js +96 -0
  201. package/scb-nav/scb-nav.js +263 -0
  202. package/scb-notification-card/scb-notification-card.js +479 -0
  203. package/scb-options-menu/scb-options-menu-item.js +218 -0
  204. package/scb-options-menu/scb-options-menu.js +237 -0
  205. package/scb-options-menu/scb-options-sub-menu.js +69 -0
  206. package/scb-overlay/scb-overlay.js +144 -0
  207. package/scb-pagination/scb-pagination.js +438 -0
  208. package/scb-progress-indicator/scb-progress-indicator.js +199 -0
  209. package/scb-progress-stepper/scb-progress-step.js +213 -0
  210. package/scb-progress-stepper/scb-progress-stepper.js +132 -0
  211. package/scb-radio-button/scb-radio-button.js +249 -0
  212. package/scb-radio-button/scb-radio-group.js +216 -0
  213. package/scb-scrollspy/scb-scrollspy.js +670 -0
  214. package/scb-search/scb-search.js +643 -0
  215. package/scb-segmented-button/scb-segmented-button.js +215 -0
  216. package/scb-segmented-button/scb-segmented-item.js +133 -0
  217. package/scb-select/scb-select-option.js +88 -0
  218. package/scb-select/scb-select.js +517 -0
  219. package/scb-skeleton/scb-skeleton.js +92 -0
  220. package/scb-slider/scb-slider.js +98 -0
  221. package/scb-snackbar/scb-snackbar.js +223 -0
  222. package/scb-status-pill/scb-status-pill.js +100 -0
  223. package/scb-stepper/scb-step.js +311 -0
  224. package/scb-stepper/scb-stepper.js +325 -0
  225. package/scb-switch/scb-switch.js +182 -0
  226. package/scb-table/scb-table.js +202 -0
  227. package/scb-table-advanced/scb-table-advanced.js +327 -0
  228. package/scb-tabs/scb-primary-tab.js +68 -0
  229. package/scb-tabs/scb-secondary-tab.js +68 -0
  230. package/scb-tabs/scb-tabs.js +100 -0
  231. package/scb-test-components/index.d.ts +90 -0
  232. package/scb-test-components/scb-accordion/scb-accordion-item.d.ts +39 -0
  233. package/scb-test-components/scb-accordion/scb-accordion.d.ts +27 -0
  234. package/scb-test-components/scb-app-bar/scb-app-bar.d.ts +25 -0
  235. package/scb-test-components/scb-avatar/scb-avatar.d.ts +37 -0
  236. package/scb-test-components/scb-badge/scb-badge.d.ts +28 -0
  237. package/scb-test-components/scb-breadcrumb/scb-breadcrumb-item.d.ts +15 -0
  238. package/scb-test-components/scb-breadcrumb/scb-breadcrumb.d.ts +27 -0
  239. package/scb-test-components/scb-button/scb-button.d.ts +40 -0
  240. package/scb-test-components/scb-calendar/scb-calendar-event.d.ts +15 -0
  241. package/scb-test-components/scb-calendar/scb-calendar.d.ts +77 -0
  242. package/scb-test-components/scb-calendar-card/scb-calendar-card.d.ts +45 -0
  243. package/scb-test-components/scb-card/scb-card.d.ts +101 -0
  244. package/scb-test-components/scb-checkbox/scb-checkbox-group.d.ts +23 -0
  245. package/scb-test-components/scb-checkbox/scb-checkbox.d.ts +52 -0
  246. package/scb-test-components/scb-chevron/scb-chevron.d.ts +13 -0
  247. package/scb-test-components/scb-chip/scb-chip.d.ts +61 -0
  248. package/scb-test-components/scb-collapse/scb-collapse.d.ts +29 -0
  249. package/scb-test-components/scb-cookies-consent/scb-cookies-consent.d.ts +23 -0
  250. package/scb-test-components/scb-datepicker/scb-datepicker.d.ts +39 -0
  251. package/scb-test-components/scb-dialog/scb-dialog.d.ts +72 -0
  252. package/scb-test-components/scb-divider/scb-divider.d.ts +34 -0
  253. package/scb-test-components/scb-drawer/scb-drawer.d.ts +72 -0
  254. package/scb-test-components/scb-drop-zone/scb-drop-zone.d.ts +143 -0
  255. package/scb-test-components/scb-dropdown/scb-dropdown.d.ts +70 -0
  256. package/scb-test-components/scb-fab/scb-fab.d.ts +42 -0
  257. package/scb-test-components/scb-fact-card/scb-fact-card-content.d.ts +15 -0
  258. package/scb-test-components/scb-fact-card/scb-fact-card.d.ts +49 -0
  259. package/scb-test-components/scb-footer/scb-footer-section.d.ts +20 -0
  260. package/scb-test-components/scb-footer/scb-footer.d.ts +31 -0
  261. package/scb-test-components/scb-gallery-grid/scb-gallery-grid.d.ts +20 -0
  262. package/scb-test-components/scb-grid/scb-grid-item.d.ts +32 -0
  263. package/scb-test-components/scb-grid/scb-grid.d.ts +36 -0
  264. package/scb-test-components/scb-grid/scb-stack.d.ts +32 -0
  265. package/scb-test-components/scb-header/scb-header-menu-group.d.ts +12 -0
  266. package/scb-test-components/scb-header/scb-header-menu-item.d.ts +13 -0
  267. package/scb-test-components/scb-header/scb-header-tab.d.ts +13 -0
  268. package/scb-test-components/scb-header/scb-header-utility.d.ts +14 -0
  269. package/scb-test-components/scb-header/scb-header.d.ts +132 -0
  270. package/scb-test-components/scb-horizontal-scroller/scb-horizontal-scroller.d.ts +47 -0
  271. package/scb-test-components/scb-icon-button/scb-icon-button.d.ts +76 -0
  272. package/scb-test-components/scb-keyfigure-card/scb-keyfigure-card.d.ts +46 -0
  273. package/scb-test-components/scb-link/scb-link.d.ts +25 -0
  274. package/scb-test-components/scb-list/scb-list-item.d.ts +38 -0
  275. package/scb-test-components/scb-list/scb-list.d.ts +26 -0
  276. package/scb-test-components/scb-menu/scb-menu-item.d.ts +52 -0
  277. package/scb-test-components/scb-menu/scb-menu-section.d.ts +11 -0
  278. package/scb-test-components/scb-menu/scb-menu.d.ts +25 -0
  279. package/scb-test-components/scb-menu/scb-sub-menu.d.ts +14 -0
  280. package/scb-test-components/scb-nav/scb-nav-item.d.ts +20 -0
  281. package/scb-test-components/scb-nav/scb-nav.d.ts +50 -0
  282. package/scb-test-components/scb-notification-card/scb-notification-card.d.ts +46 -0
  283. package/scb-test-components/scb-options-menu/scb-options-menu-item.d.ts +29 -0
  284. package/scb-test-components/scb-options-menu/scb-options-menu.d.ts +35 -0
  285. package/scb-test-components/scb-options-menu/scb-options-sub-menu.d.ts +11 -0
  286. package/scb-test-components/scb-overlay/scb-overlay.d.ts +24 -0
  287. package/scb-test-components/scb-pagination/scb-pagination.d.ts +36 -0
  288. package/scb-test-components/scb-progress-indicator/scb-progress-indicator.d.ts +28 -0
  289. package/scb-test-components/scb-progress-stepper/scb-progress-step.d.ts +21 -0
  290. package/scb-test-components/scb-progress-stepper/scb-progress-stepper.d.ts +22 -0
  291. package/scb-test-components/scb-radio-button/scb-radio-button.d.ts +26 -0
  292. package/scb-test-components/scb-radio-button/scb-radio-group.d.ts +49 -0
  293. package/scb-test-components/scb-scrollspy/scb-scrollspy.d.ts +217 -0
  294. package/scb-test-components/scb-search/scb-search.d.ts +96 -0
  295. package/scb-test-components/scb-segmented-button/scb-segmented-button.d.ts +80 -0
  296. package/scb-test-components/scb-segmented-button/scb-segmented-item.d.ts +21 -0
  297. package/scb-test-components/scb-select/scb-select-option.d.ts +16 -0
  298. package/scb-test-components/scb-select/scb-select.d.ts +62 -0
  299. package/scb-test-components/scb-skeleton/scb-skeleton.d.ts +25 -0
  300. package/scb-test-components/scb-slider/scb-slider.d.ts +28 -0
  301. package/scb-test-components/scb-snackbar/scb-snackbar.d.ts +24 -0
  302. package/scb-test-components/scb-status-pill/scb-status-pill.d.ts +22 -0
  303. package/scb-test-components/scb-stepper/scb-step.d.ts +22 -0
  304. package/scb-test-components/scb-stepper/scb-stepper.d.ts +47 -0
  305. package/scb-test-components/scb-switch/scb-switch.d.ts +52 -0
  306. package/scb-test-components/scb-table/scb-table.d.ts +24 -0
  307. package/scb-test-components/scb-table-advanced/scb-table-advanced.d.ts +39 -0
  308. package/scb-test-components/scb-tabs/scb-primary-tab.d.ts +15 -0
  309. package/scb-test-components/scb-tabs/scb-secondary-tab.d.ts +15 -0
  310. package/scb-test-components/scb-tabs/scb-tabs.d.ts +21 -0
  311. package/scb-test-components/scb-textfield/scb-textfield.d.ts +75 -0
  312. package/scb-test-components/scb-toc/scb-toc-item.d.ts +38 -0
  313. package/scb-test-components/scb-toc/scb-toc.d.ts +27 -0
  314. package/scb-test-components/scb-tooltip/scb-tooltip.d.ts +51 -0
  315. package/scb-test-components/scb-vignette/scb-vignette.d.ts +20 -0
  316. package/scb-test-components/scb-viz/scb-viz-actions-runtime.d.ts +26 -0
  317. package/scb-test-components/scb-viz/scb-viz-print-runtime.d.ts +27 -0
  318. package/scb-test-components/scb-viz/scb-viz-series-differentiation-registry.d.ts +21 -0
  319. package/scb-test-components/scb-viz/scb-viz-series-differentiation-runtime.d.ts +42 -0
  320. package/scb-test-components/scb-viz/scb-viz-table-runtime.d.ts +28 -0
  321. package/scb-test-components/scb-viz/scb-viz.d.ts +207 -0
  322. package/scb-textfield/scb-textfield.js +827 -0
  323. package/scb-toc/scb-toc-item.js +477 -0
  324. package/scb-toc/scb-toc.js +101 -0
  325. package/scb-tooltip/scb-tooltip.js +402 -0
  326. package/scb-typography.css +1 -1
  327. package/scb-vignette/scb-vignette.js +88 -0
  328. package/scb-viz/scb-viz-actions-runtime.js +143 -0
  329. package/scb-viz/scb-viz-print-runtime.js +121 -0
  330. package/scb-viz/scb-viz-series-differentiation-registry.js +117 -0
  331. package/scb-viz/scb-viz-series-differentiation-runtime.js +126 -0
  332. package/scb-viz/scb-viz-table-runtime.js +86 -0
  333. package/scb-viz/scb-viz.js +2195 -0
  334. package/scb-wc-selfhost.css +29 -0
  335. package/scb-wc.bundle.js +12893 -1099
  336. package/scb-wc.css +3 -2
  337. package/scb-wc.d.ts +180 -0
  338. package/index.d.ts +0 -0
  339. package/mvc/components/index.js +0 -1
@@ -0,0 +1,327 @@
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
+ import "../scb-icon-button/scb-icon-button.js";
3
+ import "../scb-search/scb-search.js";
4
+ import "../scb-pagination/scb-pagination.js";
5
+ import { LitElement as t, css as n, html as r } from "lit";
6
+ import { customElement as i, property as a } from "lit/decorators.js";
7
+ //#region src/scb-test-components/scb-table-advanced/scb-table-advanced.ts
8
+ var o = class extends t {
9
+ constructor(...e) {
10
+ super(...e), this.searchTerm = "", this.pagination = !1, this.filteringSearch = !1, this.noScroll = !1, this.pageSize = 10, this.currentPage = 1, this.totalRows = 0, this._sortedColumn = null, this._sortDirection = "asc", this._filteredRows = null, this._tbodyObserver = null, this._observedTbody = null, this._pendingTableRefresh = !1, this._suppressTbodyObserver = !1, this._onSlotChange = () => {
11
+ this._attachTbodyObserver(), this._refreshFromTableContent();
12
+ }, this._onPaginationChange = (e) => {
13
+ let t = e.detail;
14
+ t && typeof t.page == "number" && this._changePage(t.page);
15
+ };
16
+ }
17
+ static {
18
+ this.styles = n`
19
+ :host {
20
+ display: block;
21
+ color: var(--md-sys-color-on-surface);
22
+ font-family: var(--brand, Inter);
23
+ --scb-background-row: var(--md-sys-color-surface);
24
+ }
25
+ scb-search{
26
+ max-width: 400px;
27
+ }
28
+ .scb-table-scroll-wrapper {
29
+ width: 100%;
30
+ overflow-x: auto;
31
+ overflow-y: auto;
32
+ max-width: 100%;
33
+ padding-bottom: 24px;
34
+ /* Optional: set max-height if you want vertical scroll */
35
+ }
36
+ .scb-table-scroll-wrapper::-webkit-scrollbar {
37
+ border-radius: var(--md-sys-shape-corner-large);
38
+ height: 8px;
39
+ width: 10px;
40
+ }
41
+ .scb-table-scroll-wrapper::-webkit-scrollbar-thumb {
42
+ background: var(--md-sys-color-on-surface);
43
+ border-radius: var(--md-sys-shape-corner-large);
44
+ cursor: pointer;
45
+ }
46
+ .scb-table-scroll-wrapper::-webkit-scrollbar-track {
47
+ background: var(--md-sys-color-secondary-container);
48
+ border-radius: var(--md-sys-shape-corner-large);
49
+ }
50
+ ::slotted(table) {
51
+ border-collapse: collapse;
52
+ border-spacing: 0;
53
+ border-radius: 24px;
54
+ min-width: 100%;
55
+ overflow: hidden;
56
+ /* Remove overflow: hidden to allow scroll */
57
+ }
58
+ .pagination {
59
+ margin-top: 16px;
60
+ display: flex;
61
+ justify-self: center;
62
+ }
63
+ ::slotted(th) .scb-sort-icon {
64
+ pointer-events: none;
65
+ }
66
+ ::slotted(th:hover) .scb-sort-icon {
67
+ pointer-events: auto;
68
+ }
69
+ `;
70
+ }
71
+ disconnectedCallback() {
72
+ super.disconnectedCallback(), this._disconnectTbodyObserver();
73
+ }
74
+ attributeChangedCallback(e, t, n) {
75
+ if (super.attributeChangedCallback(e, t, n), t !== n) {
76
+ if (e === "searchterm") {
77
+ queueMicrotask(() => {
78
+ this.isConnected && this._filterTable();
79
+ });
80
+ return;
81
+ }
82
+ if (e === "currentpage") {
83
+ queueMicrotask(() => {
84
+ this.isConnected && this._paginateTable();
85
+ });
86
+ return;
87
+ }
88
+ (e === "page-size" || e === "with-filtering-search" || e === "with-pagination") && this._scheduleTableRefresh();
89
+ }
90
+ }
91
+ render() {
92
+ let e = Math.ceil(this.totalRows / this.pageSize);
93
+ return r`
94
+ ${this.filteringSearch ? r`
95
+ <div style="margin-bottom: 12px;">
96
+ <scb-search
97
+ value=${this.searchTerm}
98
+ @input=${(e) => this._onSearchInput(e)}
99
+ />
100
+ </div>
101
+ ` : ""}
102
+ ${this.noScroll ? r`<slot @slotchange=${this._onSlotChange}></slot>` : r`
103
+ <div class="scb-table-scroll-wrapper">
104
+ <slot @slotchange=${this._onSlotChange}></slot>
105
+ </div>
106
+ `}
107
+ <div class="pagination">
108
+ ${this.pagination && e > 1 ? r`
109
+ <scb-pagination
110
+ .page=${this.currentPage}
111
+ .totalPages=${e}
112
+ @page-change=${this._onPaginationChange}
113
+ variant="icon"
114
+ ></scb-pagination>
115
+ ` : ""}
116
+ </div>
117
+ `;
118
+ }
119
+ _onSearchInput(e) {
120
+ let t = e.target.value;
121
+ this.searchTerm = t, this._filterTable(), this.dispatchEvent(new CustomEvent("tableadvancedchange", {
122
+ detail: {
123
+ searchTerm: this.searchTerm,
124
+ currentPage: this.currentPage
125
+ },
126
+ bubbles: !0,
127
+ composed: !0
128
+ }));
129
+ }
130
+ _filterTable() {
131
+ let e = this.shadowRoot.querySelector("slot");
132
+ if (!e) return;
133
+ let t = e.assignedNodes({ flatten: !0 }), n = null;
134
+ if (t.forEach((e) => {
135
+ if (e.nodeType === Node.ELEMENT_NODE) {
136
+ let t = e.querySelector("tbody");
137
+ t && (n = t);
138
+ }
139
+ }), !n) return;
140
+ let r = n, i = Array.from(r.querySelectorAll("tr")), a = this.searchTerm.trim().toLowerCase();
141
+ if (!a) this._filteredRows = null, i.forEach((e) => e.style.display = ""), this._updateTotalRows(), this._ensureCurrentPageWithinBounds(), this.pagination && this._paginateTable(), this._sortedColumn !== null && this._sortTable(this._sortedColumn, this._sortDirection);
142
+ else {
143
+ this._filteredRows = i.filter((e) => (e.textContent?.toLowerCase() ?? "").includes(a)), i.forEach((e) => e.style.display = "none");
144
+ let e = this._filteredRows;
145
+ this._sortedColumn !== null && (e = [...e], e.sort((e, t) => {
146
+ let n = e.children[this._sortedColumn]?.textContent?.trim() ?? "", r = t.children[this._sortedColumn]?.textContent?.trim() ?? "", i = Date.parse(n.replace(/\s+/g, " ")), a = Date.parse(r.replace(/\s+/g, " "));
147
+ if (!isNaN(i) && !isNaN(a)) return this._sortDirection === "asc" ? i - a : a - i;
148
+ let o = parseFloat(n.replace(",", ".")), s = parseFloat(r.replace(",", "."));
149
+ if (!isNaN(o) && !isNaN(s)) return this._sortDirection === "asc" ? o - s : s - o;
150
+ let c = n.localeCompare(r, "sv");
151
+ return this._sortDirection === "asc" ? c : -c;
152
+ }), this._filteredRows = e), this.totalRows = this._filteredRows.length, this._ensureCurrentPageWithinBounds(), this.pagination ? this._paginateTable() : this._filteredRows.forEach((e) => e.style.display = "");
153
+ }
154
+ }
155
+ firstUpdated() {
156
+ let e = this.shadowRoot.querySelector("slot");
157
+ e && (e.addEventListener("slotchange", () => this._attachThListeners()), this._attachThListeners(), this._attachTbodyObserver(), this._refreshFromTableContent());
158
+ }
159
+ updated(e) {
160
+ super.updated(e), (e.has("searchTerm") || e.has("currentPage") || e.has("pageSize") || e.has("filteringSearch") || e.has("pagination")) && this.updateComplete.then(() => {
161
+ this.isConnected && this._refreshFromTableContent();
162
+ });
163
+ }
164
+ _disconnectTbodyObserver() {
165
+ this._tbodyObserver &&= (this._tbodyObserver.disconnect(), null), this._observedTbody = null;
166
+ }
167
+ _attachTbodyObserver() {
168
+ let e = this._getTbody();
169
+ if (!e) {
170
+ this._disconnectTbodyObserver();
171
+ return;
172
+ }
173
+ this._observedTbody !== e && (this._disconnectTbodyObserver(), this._observedTbody = e, this._tbodyObserver = new MutationObserver(() => {
174
+ this._suppressTbodyObserver || this._scheduleTableRefresh();
175
+ }), this._tbodyObserver.observe(e, {
176
+ childList: !0,
177
+ subtree: !0,
178
+ characterData: !0
179
+ }));
180
+ }
181
+ _scheduleTableRefresh() {
182
+ this._pendingTableRefresh || (this._pendingTableRefresh = !0, queueMicrotask(() => {
183
+ this._pendingTableRefresh = !1, this._refreshFromTableContent();
184
+ }));
185
+ }
186
+ _refreshFromTableContent() {
187
+ if (this._attachTbodyObserver(), this.filteringSearch) {
188
+ this._filterTable();
189
+ return;
190
+ }
191
+ if (this._updateTotalRows(), this._ensureCurrentPageWithinBounds(), this._sortedColumn !== null) {
192
+ this._sortTable(this._sortedColumn, this._sortDirection);
193
+ return;
194
+ }
195
+ this.pagination && this._paginateTable();
196
+ }
197
+ _ensureCurrentPageWithinBounds() {
198
+ let e = Math.max(1, Math.ceil(this.totalRows / this.pageSize)), t = Math.min(Math.max(1, this.currentPage), e);
199
+ t !== this.currentPage && (this.currentPage = t);
200
+ }
201
+ _getTbody() {
202
+ let e = this.shadowRoot.querySelector("slot");
203
+ if (!e) return null;
204
+ let t = e.assignedNodes({ flatten: !0 });
205
+ for (let e of t) if (e.nodeType === Node.ELEMENT_NODE) {
206
+ let t = e.querySelector("tbody");
207
+ if (t) return t;
208
+ }
209
+ return null;
210
+ }
211
+ _attachThListeners() {
212
+ let e = this.shadowRoot.querySelector("slot");
213
+ if (!e) return;
214
+ let t = e.assignedNodes({ flatten: !0 }), n = [], r = [], i = [];
215
+ t.forEach((e) => {
216
+ e.nodeType === Node.ELEMENT_NODE && (n.push(...e.querySelectorAll("th")), r.push(...e.querySelectorAll("td")), i.push(...e.querySelectorAll("tr")));
217
+ }), n.forEach((e, t) => {
218
+ e.style.textAlign = "left", e.style.padding = "16px 0px 16px 32px", e.style.position = "relative", e.style.backgroundColor = "var(--md-sys-color-surface)", e.style.fontFamily = "var(--md-sys-typescale-label-medium-font)", e.style.fontSize = "var(--md-sys-typescale-label-medium-size)", e.style.lineHeight = "var(--md-sys-typescale-label-medium-line-height)", e.style.fontWeight = "var(--md-sys-typescale-label-medium-weight)", e.style.letterSpacing = "var(--md-sys-typescale-label-medium-tracking)", e.style.verticalAlign = "bottom";
219
+ let n = e.firstChild;
220
+ if (n && n.nodeType === Node.TEXT_NODE && n.textContent?.trim() || n && n.nodeType === Node.ELEMENT_NODE && n.tagName.toLowerCase() !== "p") {
221
+ let i = document.createElement("p");
222
+ i.textContent = n.textContent ? n.textContent.trim() : "", i.style.margin = "0", e.replaceChild(i, n), e.querySelectorAll("scb-icon-button.scb-sort-icon").forEach((e) => e.remove());
223
+ let a = document.createElement("scb-icon-button");
224
+ a.className = "scb-sort-icon", a.onclick = () => this._onThClick(t), a.setAttribute("variant", "standard"), a.setAttribute("size", "small"), this._sortedColumn === t ? (a.setAttribute("variant", "filled-tonal"), a.setAttribute("icon", this._sortDirection === "asc" ? "arrow_downward" : "arrow_upward")) : (a.setAttribute("icon", "swap_horiz"), a.style.transform += " rotate(90deg)", a.style.alignSelf = "end");
225
+ var r = document.createElement("div");
226
+ r.style.display = "flex", r.style.gap = "8px", r.style.flexWrap = "nowrap", r.style.alignItems = "center", r.appendChild(i), r.appendChild(a), e.appendChild(r);
227
+ }
228
+ }), r.forEach((e) => {
229
+ e.style.padding = "16px 0px 16px 32px", e.style.textAlign = "left", e.style.borderTop = "1px solid var(--md-sys-color-outline-variant)", e.style.verticalAlign = "text-top", e.style.backgroundColor = "var(--md-sys-color-surface)", e.style.fontFamily = "var(--md-sys-typescale-body-medium-font)", e.style.fontSize = "var(--md-sys-typescale-body-medium-size)", e.style.lineHeight = "var(--md-sys-typescale-body-medium-line-height)", e.style.fontWeight = "var(--md-sys-typescale-body-medium-weight)", e.style.letterSpacing = "var(--md-sys-typescale-body-medium-tracking)";
230
+ }), i.forEach((e, t) => {
231
+ t % 2 == 1 && e.querySelectorAll("td").forEach((e) => {
232
+ e.style.backgroundColor = "var(--scb-background-row)";
233
+ });
234
+ let n = e.querySelectorAll("th");
235
+ n.length > 0 && n.forEach((e, t) => {
236
+ t === 0 && (e.style.paddingLeft = "24px"), t === n.length - 1 ? e.style.paddingRight = "24px" : e.style.paddingRight = "";
237
+ });
238
+ let r = e.querySelectorAll("td");
239
+ r.length > 0 && r.forEach((e, t) => {
240
+ t === 0 && (e.style.paddingLeft = "24px"), t === r.length - 1 ? e.style.paddingRight = "24px" : e.style.paddingRight = "";
241
+ });
242
+ }), this.pagination && this._paginateTable();
243
+ }
244
+ _onThClick(e) {
245
+ this._sortedColumn === e ? this._sortDirection = this._sortDirection === "asc" ? "desc" : "asc" : (this._sortedColumn = e, this._sortDirection = "asc"), this._sortTable(e, this._sortDirection), this._attachThListeners();
246
+ }
247
+ _sortTable(e, t) {
248
+ let n = this.shadowRoot.querySelector("slot");
249
+ if (!n) return;
250
+ let r = n.assignedNodes({ flatten: !0 }), i = null;
251
+ if (r.forEach((e) => {
252
+ if (e.nodeType === Node.ELEMENT_NODE) {
253
+ let t = e.querySelector("tbody");
254
+ t && (i = t);
255
+ }
256
+ }), !i) return;
257
+ let a;
258
+ a = this._filteredRows ? [...this._filteredRows] : Array.from(i.querySelectorAll("tr")), a.sort((n, r) => {
259
+ let i = n.children[e]?.textContent?.trim() ?? "", a = r.children[e]?.textContent?.trim() ?? "", o = Date.parse(i.replace(/\s+/g, " ")), s = Date.parse(a.replace(/\s+/g, " "));
260
+ if (!isNaN(o) && !isNaN(s)) return t === "asc" ? o - s : s - o;
261
+ let c = parseFloat(i.replace(",", ".")), l = parseFloat(a.replace(",", "."));
262
+ if (!isNaN(c) && !isNaN(l)) return t === "asc" ? c - l : l - c;
263
+ let u = i.localeCompare(a, "sv");
264
+ return t === "asc" ? u : -u;
265
+ });
266
+ let o = this._tbodyObserver !== null;
267
+ o && this._disconnectTbodyObserver();
268
+ try {
269
+ a.forEach((e) => i.appendChild(e));
270
+ } finally {
271
+ o && this._attachTbodyObserver();
272
+ }
273
+ this._filteredRows && (this._filteredRows = a, this.totalRows = this._filteredRows.length), this.pagination && this._paginateTable();
274
+ }
275
+ _updateTotalRows() {
276
+ let e = this.shadowRoot.querySelector("slot");
277
+ if (!e) return;
278
+ let t = e.assignedNodes({ flatten: !0 }), n = null;
279
+ t.forEach((e) => {
280
+ if (e.nodeType === Node.ELEMENT_NODE) {
281
+ let t = e.querySelector("tbody");
282
+ t && (n = t);
283
+ }
284
+ }), n && (this.totalRows = n.querySelectorAll("tr").length, this._ensureCurrentPageWithinBounds());
285
+ }
286
+ _paginateTable() {
287
+ let e = this.shadowRoot.querySelector("slot");
288
+ if (!e) return;
289
+ let t = e.assignedNodes({ flatten: !0 }), n = null;
290
+ if (t.forEach((e) => {
291
+ if (e.nodeType === Node.ELEMENT_NODE) {
292
+ let t = e.querySelector("tbody");
293
+ t && (n = t);
294
+ }
295
+ }), !n) return;
296
+ let r;
297
+ r = this._filteredRows ? this._filteredRows : Array.from(n.querySelectorAll("tr")), Array.from(n.querySelectorAll("tr")).forEach((e) => e.style.display = "none");
298
+ let i = (this.currentPage - 1) * this.pageSize, a = i + this.pageSize;
299
+ r.slice(i, a).forEach((e) => e.style.display = "");
300
+ }
301
+ _changePage(e) {
302
+ let t = Math.ceil(this.totalRows / this.pageSize);
303
+ e < 1 || e > t || (this.currentPage = e, this._paginateTable(), this.dispatchEvent(new CustomEvent("tableadvancedchange", {
304
+ detail: {
305
+ searchTerm: this.searchTerm,
306
+ currentPage: this.currentPage
307
+ },
308
+ bubbles: !0,
309
+ composed: !0
310
+ })), this.requestUpdate());
311
+ }
312
+ };
313
+ e([a({ type: String })], o.prototype, "searchTerm", void 0), e([a({
314
+ type: Boolean,
315
+ attribute: "with-pagination"
316
+ })], o.prototype, "pagination", void 0), e([a({
317
+ type: Boolean,
318
+ attribute: "with-filtering-search"
319
+ })], o.prototype, "filteringSearch", void 0), e([a({
320
+ type: Boolean,
321
+ attribute: "no-scroll"
322
+ })], o.prototype, "noScroll", void 0), e([a({
323
+ type: Number,
324
+ attribute: "page-size"
325
+ })], o.prototype, "pageSize", void 0), e([a({ type: Number })], o.prototype, "currentPage", void 0), e([a({ type: Number })], o.prototype, "totalRows", void 0), o = e([i("scb-table-advanced")], o);
326
+ //#endregion
327
+ export { o as ScbTableAdvanced };
@@ -0,0 +1,68 @@
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
+ import { css as t } from "lit";
3
+ import { customElement as n, property as r } from "lit/decorators.js";
4
+ import "@material/web/icon/icon.js";
5
+ import { MdPrimaryTab as i } from "@material/web/tabs/primary-tab.js";
6
+ //#region src/scb-test-components/scb-tabs/scb-primary-tab.ts
7
+ var a = class extends i {
8
+ constructor(...e) {
9
+ super(...e), this.iconOnly = !1, this.inlineIcon = !1, this._onActivate = () => {
10
+ let e = this.textContent?.trim() ?? "";
11
+ this.dispatchEvent(new CustomEvent("activate", {
12
+ detail: { label: e },
13
+ bubbles: !0,
14
+ composed: !0
15
+ }));
16
+ };
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback(), this.setAttribute("role", "tab");
20
+ }
21
+ get icon() {
22
+ return this._icon;
23
+ }
24
+ set icon(e) {
25
+ let t = this._icon;
26
+ t !== e && (this._icon = e, this.requestUpdate("icon", t), this.updateIconSlot());
27
+ }
28
+ firstUpdated(e) {
29
+ super.firstUpdated(e), this.addEventListener("click", this._onActivate), this._icon && this.updateIconSlot();
30
+ }
31
+ updated() {
32
+ if (super.updated(), this.setAttribute("aria-selected", this.active ? "true" : "false"), this.iconOnly && !this.hasAttribute("aria-label")) {
33
+ let e = this.textContent?.trim() ?? "";
34
+ e && this.setAttribute("aria-label", e);
35
+ }
36
+ }
37
+ static {
38
+ this.styles = [...i.styles, t`
39
+ /* Icon-only: dölj textslot */
40
+ :host([icon-only]) slot:not([name='icon']) {
41
+ display: none;
42
+ }
43
+ `];
44
+ }
45
+ updateIconSlot() {
46
+ let e = this.querySelector("md-icon[slot=\"icon\"]");
47
+ if (!this._icon) {
48
+ e?.remove();
49
+ return;
50
+ }
51
+ if (e) e.textContent = this._icon;
52
+ else {
53
+ let e = document.createElement("md-icon");
54
+ e.setAttribute("slot", "icon"), e.textContent = this._icon, this.appendChild(e);
55
+ }
56
+ }
57
+ };
58
+ e([r({ type: String })], a.prototype, "icon", null), e([r({
59
+ type: Boolean,
60
+ reflect: !0,
61
+ attribute: "icon-only"
62
+ })], a.prototype, "iconOnly", void 0), e([r({
63
+ type: Boolean,
64
+ reflect: !0,
65
+ attribute: "inline-icon"
66
+ })], a.prototype, "inlineIcon", void 0), a = e([n("scb-primary-tab")], a);
67
+ //#endregion
68
+ export { a as ScbPrimaryTab };
@@ -0,0 +1,68 @@
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
+ import { css as t } from "lit";
3
+ import { customElement as n, property as r } from "lit/decorators.js";
4
+ import "@material/web/icon/icon.js";
5
+ import { MdSecondaryTab as i } from "@material/web/tabs/secondary-tab.js";
6
+ //#region src/scb-test-components/scb-tabs/scb-secondary-tab.ts
7
+ var a = class extends i {
8
+ constructor(...e) {
9
+ super(...e), this.iconOnly = !1, this._onActivate = () => {
10
+ let e = this.textContent?.trim() ?? "";
11
+ this.dispatchEvent(new CustomEvent("activate", {
12
+ detail: { label: e },
13
+ bubbles: !0,
14
+ composed: !0
15
+ }));
16
+ };
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback(), this.setAttribute("role", "tab");
20
+ }
21
+ get icon() {
22
+ return this._icon;
23
+ }
24
+ set icon(e) {
25
+ let t = this._icon;
26
+ t !== e && (this._icon = e, this.requestUpdate("icon", t), this.updateIconSlot());
27
+ }
28
+ firstUpdated(e) {
29
+ if (super.firstUpdated(e), this.iconOnly && !this.hasAttribute("aria-label")) {
30
+ let e = this.textContent?.trim() ?? "";
31
+ e && this.setAttribute("aria-label", e);
32
+ }
33
+ this.addEventListener("click", this._onActivate), this._icon && this.updateIconSlot();
34
+ }
35
+ updated() {
36
+ if (super.updated(), this.iconOnly && !this.hasAttribute("aria-label")) {
37
+ let e = this.textContent?.trim() ?? "";
38
+ e && this.setAttribute("aria-label", e);
39
+ }
40
+ }
41
+ static {
42
+ this.styles = [...i.styles, t`
43
+ /* Icon-only: göm all text utom slot="icon" */
44
+ :host([icon-only]) slot:not([name='icon']) {
45
+ display: none;
46
+ }
47
+ `];
48
+ }
49
+ updateIconSlot() {
50
+ let e = this.querySelector("md-icon[slot=\"icon\"]");
51
+ if (!this._icon) {
52
+ e?.remove();
53
+ return;
54
+ }
55
+ if (e) e.textContent = this._icon;
56
+ else {
57
+ let e = document.createElement("md-icon");
58
+ e.setAttribute("slot", "icon"), e.textContent = this._icon, this.appendChild(e);
59
+ }
60
+ }
61
+ };
62
+ e([r({ type: String })], a.prototype, "icon", null), e([r({
63
+ type: Boolean,
64
+ reflect: !0,
65
+ attribute: "icon-only"
66
+ })], a.prototype, "iconOnly", void 0), a = e([n("scb-secondary-tab")], a);
67
+ //#endregion
68
+ export { a as ScbSecondaryTab };
@@ -0,0 +1,100 @@
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
+ import "./scb-primary-tab.js";
3
+ import "./scb-secondary-tab.js";
4
+ import { css as t } from "lit";
5
+ import { customElement as n, property as r } from "lit/decorators.js";
6
+ import { MdTabs as i } from "@material/web/tabs/tabs.js";
7
+ //#region src/scb-test-components/scb-tabs/scb-tabs.ts
8
+ var a = class extends i {
9
+ constructor(...e) {
10
+ super(...e), this.ariaLabel = "", this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this._isDispatching = !1, this._onChange = (e) => {
11
+ if (!e.composed && !this._isDispatching) {
12
+ e.stopPropagation(), this._isDispatching = !0;
13
+ let t = e.target.activeTabIndex;
14
+ this.dispatchEvent(new CustomEvent("change", {
15
+ detail: { activeTabIndex: t },
16
+ bubbles: !0,
17
+ composed: !0
18
+ })), this.dispatchEvent(new CustomEvent("tabschange", {
19
+ detail: { activeTabIndex: t },
20
+ bubbles: !0,
21
+ composed: !0
22
+ })), this._isDispatching = !1;
23
+ }
24
+ };
25
+ }
26
+ static {
27
+ this.styles = [...i.styles, t`
28
+ :host {
29
+ /*Containerfärg */
30
+ --md-primary-tab-container-color: var(--md-sys-color-surface);
31
+ --md-secondary-tab-container-color: var(--md-sys-color-surface);
32
+
33
+ /* Text- och ikonfärger */
34
+ --md-primary-tab-label-text-color: var(--md-sys-color-on-surface-variant);
35
+ --md-secondary-tab-label-text-color: var(--md-sys-color-on-surface-variant);
36
+ --md-primary-tab-active-label-text-color: var(--md-sys-color-on-surface);
37
+ --md-secondary-tab-active-label-text-color: var(--md-sys-color-on-surface);
38
+
39
+ /* Indikator och divider */
40
+ --md-primary-tab-active-indicator-color: var(--md-sys-color-primary);
41
+ --md-primary-tab-divider-color: var(--md-sys-color-outline-variant);
42
+ --md-secondary-tab-divider-color: var(--md-sys-color-outline-variant);
43
+
44
+ /* State layers (hover/press) */
45
+ --md-primary-tab-hover-state-layer-color: var(--md-sys-color-on-surface);
46
+ --md-secondary-tab-hover-state-layer-color: var(--md-sys-color-on-surface);
47
+
48
+ /* Vertikalt avstånd styrs av spacing-attributen via CSS-variabler */
49
+ margin-block-start: var(--scb-tabs-spacing-block-start, 0);
50
+ margin-block-end: var(--scb-tabs-spacing-block-end, 0);
51
+ margin-inline-start: var(--scb-tabs-spacing-inline-start, 0);
52
+ margin-inline-end: var(--scb-tabs-spacing-inline-end, 0);
53
+ }
54
+ `];
55
+ }
56
+ connectedCallback() {
57
+ super.connectedCallback(), this.setAttribute("role", "tablist");
58
+ }
59
+ firstUpdated(e) {
60
+ super.firstUpdated(e), this.addEventListener("change", this._onChange), this.#e();
61
+ }
62
+ updated(e) {
63
+ super.updated(e), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this.#e();
64
+ }
65
+ #e() {
66
+ let e = this.#t(this.spacing), t = this.#t(this.spacingTop) ?? e, n = this.#t(this.spacingBottom) ?? e, r = this.#t(this.spacingLeft), i = this.#t(this.spacingRight);
67
+ t ? this.style.setProperty("--scb-tabs-spacing-block-start", t) : this.style.removeProperty("--scb-tabs-spacing-block-start"), n ? this.style.setProperty("--scb-tabs-spacing-block-end", n) : this.style.removeProperty("--scb-tabs-spacing-block-end"), r ? this.style.setProperty("--scb-tabs-spacing-inline-start", r) : this.style.removeProperty("--scb-tabs-spacing-inline-start"), i ? this.style.setProperty("--scb-tabs-spacing-inline-end", i) : this.style.removeProperty("--scb-tabs-spacing-inline-end");
68
+ }
69
+ #t(e) {
70
+ if (!e) return;
71
+ let t = String(e).trim();
72
+ if (t) return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
73
+ }
74
+ };
75
+ e([r({
76
+ type: String,
77
+ reflect: !0,
78
+ attribute: "aria-label"
79
+ })], a.prototype, "ariaLabel", void 0), e([r({
80
+ type: String,
81
+ reflect: !0
82
+ })], a.prototype, "spacing", void 0), e([r({
83
+ type: String,
84
+ attribute: "spacing-top",
85
+ reflect: !0
86
+ })], a.prototype, "spacingTop", void 0), e([r({
87
+ type: String,
88
+ attribute: "spacing-bottom",
89
+ reflect: !0
90
+ })], a.prototype, "spacingBottom", void 0), e([r({
91
+ type: String,
92
+ attribute: "spacing-left",
93
+ reflect: !0
94
+ })], a.prototype, "spacingLeft", void 0), e([r({
95
+ type: String,
96
+ attribute: "spacing-right",
97
+ reflect: !0
98
+ })], a.prototype, "spacingRight", void 0), a = e([n("scb-tabs")], a);
99
+ //#endregion
100
+ export { a as ScbTabs };
@@ -0,0 +1,90 @@
1
+ export * from './scb-accordion/scb-accordion-item';
2
+ export * from './scb-accordion/scb-accordion';
3
+ export * from './scb-app-bar/scb-app-bar';
4
+ export * from './scb-avatar/scb-avatar';
5
+ export * from './scb-badge/scb-badge';
6
+ export * from './scb-breadcrumb/scb-breadcrumb-item';
7
+ export * from './scb-breadcrumb/scb-breadcrumb';
8
+ export * from './scb-button/scb-button';
9
+ export * from './scb-calendar/scb-calendar-event';
10
+ export * from './scb-calendar/scb-calendar';
11
+ export * from './scb-calendar-card/scb-calendar-card';
12
+ export * from './scb-card/scb-card';
13
+ export * from './scb-checkbox/scb-checkbox-group';
14
+ export * from './scb-checkbox/scb-checkbox';
15
+ export * from './scb-chevron/scb-chevron';
16
+ export * from './scb-chip/scb-chip';
17
+ export * from './scb-collapse/scb-collapse';
18
+ export * from './scb-cookies-consent/scb-cookies-consent';
19
+ export * from './scb-datepicker/scb-datepicker';
20
+ export * from './scb-dialog/scb-dialog';
21
+ export * from './scb-divider/scb-divider';
22
+ export * from './scb-drawer/scb-drawer';
23
+ export * from './scb-drop-zone/scb-drop-zone';
24
+ export * from './scb-dropdown/scb-dropdown';
25
+ export * from './scb-fab/scb-fab';
26
+ export * from './scb-fact-card/scb-fact-card-content';
27
+ export * from './scb-fact-card/scb-fact-card';
28
+ export * from './scb-footer/scb-footer-section';
29
+ export * from './scb-footer/scb-footer';
30
+ export * from './scb-gallery-grid/scb-gallery-grid';
31
+ export * from './scb-grid/scb-grid-item';
32
+ export * from './scb-grid/scb-grid';
33
+ export * from './scb-grid/scb-stack';
34
+ export * from './scb-header/scb-header-menu-group';
35
+ export * from './scb-header/scb-header-menu-item';
36
+ export * from './scb-header/scb-header-tab';
37
+ export * from './scb-header/scb-header-utility';
38
+ export * from './scb-header/scb-header';
39
+ export * from './scb-horizontal-scroller/scb-horizontal-scroller';
40
+ export * from './scb-icon-button/scb-icon-button';
41
+ export * from './scb-keyfigure-card/scb-keyfigure-card';
42
+ export * from './scb-link/scb-link';
43
+ export * from './scb-list/scb-list-item';
44
+ export * from './scb-list/scb-list';
45
+ export * from './scb-menu/scb-menu-item';
46
+ export * from './scb-menu/scb-menu-section';
47
+ export * from './scb-menu/scb-menu';
48
+ export * from './scb-menu/scb-sub-menu';
49
+ export * from './scb-nav/scb-nav-item';
50
+ export * from './scb-nav/scb-nav';
51
+ export * from './scb-notification-card/scb-notification-card';
52
+ export * from './scb-options-menu/scb-options-menu-item';
53
+ export * from './scb-options-menu/scb-options-menu';
54
+ export * from './scb-options-menu/scb-options-sub-menu';
55
+ export * from './scb-overlay/scb-overlay';
56
+ export * from './scb-pagination/scb-pagination';
57
+ export * from './scb-progress-indicator/scb-progress-indicator';
58
+ export * from './scb-progress-stepper/scb-progress-step';
59
+ export * from './scb-progress-stepper/scb-progress-stepper';
60
+ export * from './scb-radio-button/scb-radio-button';
61
+ export * from './scb-radio-button/scb-radio-group';
62
+ export * from './scb-scrollspy/scb-scrollspy';
63
+ export * from './scb-search/scb-search';
64
+ export * from './scb-segmented-button/scb-segmented-button';
65
+ export * from './scb-segmented-button/scb-segmented-item';
66
+ export * from './scb-select/scb-select-option';
67
+ export * from './scb-select/scb-select';
68
+ export * from './scb-skeleton/scb-skeleton';
69
+ export * from './scb-slider/scb-slider';
70
+ export * from './scb-snackbar/scb-snackbar';
71
+ export * from './scb-status-pill/scb-status-pill';
72
+ export * from './scb-stepper/scb-step';
73
+ export * from './scb-stepper/scb-stepper';
74
+ export * from './scb-switch/scb-switch';
75
+ export * from './scb-table/scb-table';
76
+ export * from './scb-table-advanced/scb-table-advanced';
77
+ export * from './scb-tabs/scb-primary-tab';
78
+ export * from './scb-tabs/scb-secondary-tab';
79
+ export * from './scb-tabs/scb-tabs';
80
+ export * from './scb-textfield/scb-textfield';
81
+ export * from './scb-toc/scb-toc-item';
82
+ export * from './scb-toc/scb-toc';
83
+ export * from './scb-tooltip/scb-tooltip';
84
+ export * from './scb-vignette/scb-vignette';
85
+ export * from './scb-viz/scb-viz-actions-runtime';
86
+ export * from './scb-viz/scb-viz-print-runtime';
87
+ export * from './scb-viz/scb-viz-series-differentiation-registry';
88
+ export * from './scb-viz/scb-viz-series-differentiation-runtime';
89
+ export * from './scb-viz/scb-viz-table-runtime';
90
+ export * from './scb-viz/scb-viz';