scb-wc 0.1.3 → 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 -1674
  5. package/blazor/scb-blazor-bridge.js +6827 -2805
  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 -2805
  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,28 @@
1
+ import{l as g}from"../../vendor/vendor-material.js";import{b as y,g as v,h as c}from"../../vendor/vendor.js";import"../../vendor/vendor-lit.js";import{t as n}from"../../vendor/decorate.js";import{n as u,t as o}from"../../vendor/assertClassBrand.js";import"./scb-primary-tab.js";import"./scb-secondary-tab.js";(function(){try{var a=typeof globalThis<"u"?globalThis:window;if(!a.__scb_ce_guard_installed__){a.__scb_ce_guard_installed__=!0;var t=customElements.define.bind(customElements);customElements.define=function(s,r,p){try{customElements.get(s)||t(s,r,p)}catch(h){var b=String(h||"");if(b.indexOf("already been used")===-1&&b.indexOf("NotSupportedError")===-1)throw h}}}}catch{}})();var i,d,e=(i=new WeakSet,d=class extends g{constructor(...t){super(...t),u(this,i),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=s=>{if(!s.composed&&!this._isDispatching){s.stopPropagation(),this._isDispatching=!0;const r=s.target.activeTabIndex;this.dispatchEvent(new CustomEvent("change",{detail:{activeTabIndex:r},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("tabschange",{detail:{activeTabIndex:r},bubbles:!0,composed:!0})),this._isDispatching=!1}}}connectedCallback(){super.connectedCallback(),this.setAttribute("role","tablist")}firstUpdated(t){super.firstUpdated(t),this.addEventListener("change",this._onChange),o(i,this,m).call(this)}updated(t){super.updated(t),(t.has("spacing")||t.has("spacingTop")||t.has("spacingBottom")||t.has("spacingLeft")||t.has("spacingRight"))&&o(i,this,m).call(this)}},d.styles=[...g.styles,y`
2
+ :host {
3
+ /*Containerfärg */
4
+ --md-primary-tab-container-color: var(--md-sys-color-surface);
5
+ --md-secondary-tab-container-color: var(--md-sys-color-surface);
6
+
7
+ /* Text- och ikonfärger */
8
+ --md-primary-tab-label-text-color: var(--md-sys-color-on-surface-variant);
9
+ --md-secondary-tab-label-text-color: var(--md-sys-color-on-surface-variant);
10
+ --md-primary-tab-active-label-text-color: var(--md-sys-color-on-surface);
11
+ --md-secondary-tab-active-label-text-color: var(--md-sys-color-on-surface);
12
+
13
+ /* Indikator och divider */
14
+ --md-primary-tab-active-indicator-color: var(--md-sys-color-primary);
15
+ --md-primary-tab-divider-color: var(--md-sys-color-outline-variant);
16
+ --md-secondary-tab-divider-color: var(--md-sys-color-outline-variant);
17
+
18
+ /* State layers (hover/press) */
19
+ --md-primary-tab-hover-state-layer-color: var(--md-sys-color-on-surface);
20
+ --md-secondary-tab-hover-state-layer-color: var(--md-sys-color-on-surface);
21
+
22
+ /* Vertikalt avstånd styrs av spacing-attributen via CSS-variabler */
23
+ margin-block-start: var(--scb-tabs-spacing-block-start, 0);
24
+ margin-block-end: var(--scb-tabs-spacing-block-end, 0);
25
+ margin-inline-start: var(--scb-tabs-spacing-inline-start, 0);
26
+ margin-inline-end: var(--scb-tabs-spacing-inline-end, 0);
27
+ }
28
+ `],d);function m(){const a=o(i,this,l).call(this,this.spacing),t=o(i,this,l).call(this,this.spacingTop)??a,s=o(i,this,l).call(this,this.spacingBottom)??a,r=o(i,this,l).call(this,this.spacingLeft),p=o(i,this,l).call(this,this.spacingRight);t?this.style.setProperty("--scb-tabs-spacing-block-start",t):this.style.removeProperty("--scb-tabs-spacing-block-start"),s?this.style.setProperty("--scb-tabs-spacing-block-end",s):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"),p?this.style.setProperty("--scb-tabs-spacing-inline-end",p):this.style.removeProperty("--scb-tabs-spacing-inline-end")}function l(a){if(!a)return;const t=String(a).trim();if(t)return/^\d+$/.test(t)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(t,10)))})`:t}n([c({type:String,reflect:!0,attribute:"aria-label"})],e.prototype,"ariaLabel",void 0);n([c({type:String,reflect:!0})],e.prototype,"spacing",void 0);n([c({type:String,attribute:"spacing-top",reflect:!0})],e.prototype,"spacingTop",void 0);n([c({type:String,attribute:"spacing-bottom",reflect:!0})],e.prototype,"spacingBottom",void 0);n([c({type:String,attribute:"spacing-left",reflect:!0})],e.prototype,"spacingLeft",void 0);n([c({type:String,attribute:"spacing-right",reflect:!0})],e.prototype,"spacingRight",void 0);e=n([v("scb-tabs")],e);
@@ -0,0 +1,595 @@
1
+ import"../../vendor/vendor-material.js";import{_,b as w,g as $,h as d,m as k,y as o}from"../../vendor/vendor.js";import"../../vendor/vendor-lit.js";import{t as r}from"../../vendor/decorate.js";import{n as z,t as a}from"../../vendor/assertClassBrand.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-datepicker/scb-datepicker.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(i,n,c){try{customElements.get(i)||e(i,n,c)}catch(b){var p=String(b||"");if(p.indexOf("already been used")===-1&&p.indexOf("NotSupportedError")===-1)throw b}}}}catch{}})();var s,u,l=(s=new WeakSet,u=class extends _{constructor(){super(),z(this,s),this._internals=null,this._inputFocused=!1,this._kbShouldShowRing=!1,this._onGlobalKeydown=e=>{e.key==="Tab"&&(this._kbShouldShowRing=!0,this._inputFocused&&a(s,this,g).call(this))},this._onGlobalPointerDown=()=>{this._kbShouldShowRing=!1,this._inputFocused&&a(s,this,g).call(this)},this._hasRenderedOnce=!1,this._boundField=null,this._onFieldInput=()=>{const e=this._boundField;if(!e)return;const i=e;if(this.value=i.value,this._internals){const n=this.disabled?null:this.value;this._internals.setFormValue(n)}a(s,this,f).call(this),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("onValueChanged",{detail:{value:this.value},bubbles:!0,composed:!0}))},this._onFieldChange=()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))},this._onFieldSelect=()=>{this.dispatchEvent(new Event("select",{bubbles:!0,composed:!0}))},this._onFieldFocus=()=>{this._inputFocused=!0,a(s,this,g).call(this)},this._onFieldBlur=()=>{this._inputFocused=!1,a(s,this,g).call(this)},this.type="text",this.label="",this.supportingText="",this.errorText="",this.leadingIcon="",this.name="",this.pattern="",this.value="",this.underLabel="",this.error=!1,this.disabled=!1,this.required=!1,this.size="large",this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this._form=null,this._formSubmitHandler=null,this._formResetHandler=null,this._initialValue="",this._inputId="",this._showDatepicker=!1,this._toggleDatepicker=()=>{this._showDatepicker=!this._showDatepicker},this._onDateSelected=e=>{if(this.value=e.detail.value,this._showDatepicker=!1,this._internals){const i=this.disabled?null:this.value;this._internals.setFormValue(i)}a(s,this,f).call(this),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("onValueChanged",{detail:{value:this.value},bubbles:!0,composed:!0}))},"attachInternals"in this&&(this._internals=this.attachInternals())}_syncDensityForSize(){this.size==="extra-small"?this.setAttribute("data-density","-5"):this.size==="small"?this.setAttribute("data-density","-4"):this.size==="medium"?this.setAttribute("data-density","-2"):this.removeAttribute("data-density")}render(){const e=this.leadingIcon?o`<md-icon class="scb-textfield-icon">${this.leadingIcon}</md-icon>`:null,i=this.error?o`<md-icon class="scb-textfield-error-icon" aria-hidden="true">error</md-icon>`:null;this.underLabel=this.error?this.errorText||"Ogiltig inmatning.":this.supportingText,this.value=this.value||"";const n=this.underLabel?`${this._inputId}-supporting-text`:void 0,c=this.type==="search"&&this.value?o`
2
+ <button
3
+ type="button"
4
+ class="scb-textfield-clear"
5
+ @click=${this._onClearClick}
6
+ aria-label="Rensa fält"
7
+ >
8
+ <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
9
+ <circle
10
+ cx="12"
11
+ cy="12"
12
+ r="10"
13
+ fill="none"
14
+ stroke="currentColor"
15
+ stroke-width="2"
16
+ ></circle>
17
+ <line
18
+ x1="8"
19
+ y1="8"
20
+ x2="16"
21
+ y2="16"
22
+ stroke="currentColor"
23
+ stroke-width="2"
24
+ ></line>
25
+ <line
26
+ x1="16"
27
+ y1="8"
28
+ x2="8"
29
+ y2="16"
30
+ stroke="currentColor"
31
+ stroke-width="2"
32
+ ></line>
33
+ </svg>
34
+ </button>
35
+ `:null;return this.type==="textarea"?o`
36
+ <label
37
+ class="scb-textfield-label ${this.underLabel?"":"scb-textfield-label--without-supporting"}"
38
+ for="${this._inputId}"
39
+ >
40
+ ${this.label}
41
+ </label>
42
+ ${this.underLabel?o`
43
+ <span class="scb-textfield-supporting-text" id="${this._inputId}-supporting-text">
44
+ ${this.underLabel}
45
+ </span>
46
+ `:null}
47
+ <div class="scb-textfield-wrapper">
48
+ <div class="ripple-wrapper">
49
+ <textarea
50
+ class="scb-textfield"
51
+ .value=${this.value}
52
+ ?disabled=${this.disabled}
53
+ name="${this.name}"
54
+ id="${this._inputId}"
55
+ ?required=${this.required}
56
+ aria-invalid=${this.error?"true":"false"}
57
+ aria-describedby=${n}
58
+ ></textarea>
59
+ <md-ripple></md-ripple>
60
+ <md-focus-ring class="input-ring"></md-focus-ring>
61
+ </div>
62
+ </div>
63
+ `:this.type==="date"?o`
64
+ <label
65
+ class="scb-textfield-label ${this.underLabel?"":"scb-textfield-label--without-supporting"}"
66
+ for="${this._inputId}"
67
+ >
68
+ ${this.label}
69
+ </label>
70
+ ${this.underLabel?o`
71
+ <span class="scb-textfield-supporting-text" id="${this._inputId}-supporting-text">
72
+ ${this.underLabel}
73
+ </span>
74
+ `:null}
75
+ <div class="scb-textfield-wrapper">
76
+ ${e}
77
+ <div class="ripple-wrapper">
78
+ <input
79
+ class="scb-textfield${this.error?" has-error-icon":""}"
80
+ .value=${this.value}
81
+ type="text"
82
+ name="${this.name}"
83
+ id="${this._inputId}"
84
+ ?disabled=${this.disabled}
85
+ ?required=${this.required}
86
+ aria-invalid=${this.error?"true":"false"}
87
+ aria-describedby=${n}
88
+ readonly
89
+ @focus=${this._toggleDatepicker}
90
+ @click=${this._toggleDatepicker}
91
+ />
92
+ <md-ripple></md-ripple>
93
+ <md-focus-ring class="input-ring"></md-focus-ring>
94
+ </div>
95
+ ${this.error?i:o`
96
+ <scb-icon-button
97
+ class="scb-textfield-datepicker-button"
98
+ icon="calendar_today"
99
+ size=${this.size}
100
+ @click=${this._toggleDatepicker}
101
+ aria-label="Välj datum"
102
+ ></scb-icon-button>
103
+ `}
104
+ <scb-datepicker
105
+ .selectedValue=${this.value}
106
+ .open=${this._showDatepicker}
107
+ @date-selected=${this._onDateSelected}
108
+ ></scb-datepicker>
109
+ </div>
110
+ `:this.type==="datetime-local"?o`
111
+ <label
112
+ class="scb-textfield-label ${this.underLabel?"":"scb-textfield-label--without-supporting"}"
113
+ for="${this._inputId}"
114
+ >
115
+ ${this.label}
116
+ </label>
117
+ ${this.underLabel?o`
118
+ <span class="scb-textfield-supporting-text" id="${this._inputId}-supporting-text">
119
+ ${this.underLabel}
120
+ </span>
121
+ `:null}
122
+ <div class="scb-textfield-wrapper" style="position:relative;">
123
+ ${e}
124
+ <div class="ripple-wrapper">
125
+ <input
126
+ class="scb-textfield${this.error?" has-error-icon":""}"
127
+ .value=${this.value}
128
+ type="text"
129
+ name="${this.name}"
130
+ id="${this._inputId}"
131
+ ?disabled=${this.disabled}
132
+ ?required=${this.required}
133
+ aria-invalid=${this.error?"true":"false"}
134
+ aria-describedby=${n}
135
+ readonly
136
+ @focus=${this._toggleDatepicker}
137
+ @click=${this._toggleDatepicker}
138
+ />
139
+
140
+ <md-ripple></md-ripple>
141
+ <md-focus-ring class="input-ring"></md-focus-ring>
142
+ </div>
143
+
144
+ ${this.error?i:o`
145
+ <scb-icon-button
146
+ class="scb-textfield-datepicker-button"
147
+ icon="calendar_today"
148
+ size=${this.size}
149
+ @click=${this._toggleDatepicker}
150
+ aria-label="Välj datum"
151
+ ></scb-icon-button>
152
+ `}
153
+ <scb-datepicker
154
+ variant="datetime-local"
155
+ .selectedValue=${this.value}
156
+ .open=${this._showDatepicker}
157
+ @date-selected=${this._onDateSelected}
158
+ ></scb-datepicker>
159
+ </div>
160
+ `:this.type==="time"?o`
161
+ <label
162
+ class="scb-textfield-label ${this.underLabel?"":"scb-textfield-label--without-supporting"}"
163
+ for="${this._inputId}"
164
+ >
165
+ ${this.label}
166
+ </label>
167
+ ${this.underLabel?o`
168
+ <span class="scb-textfield-supporting-text" id="${this._inputId}-supporting-text">
169
+ ${this.underLabel}
170
+ </span>
171
+ `:null}
172
+ <div class="scb-textfield-wrapper">
173
+ ${e}
174
+ <div class="ripple-wrapper">
175
+ <input
176
+ class="scb-textfield${this.error?" has-error-icon":""}"
177
+ .value=${this.value}
178
+ type="time"
179
+ name="${this.name}"
180
+ id="${this._inputId}"
181
+ ?disabled=${this.disabled}
182
+ ?required=${this.required}
183
+ aria-invalid=${this.error?"true":"false"}
184
+ aria-describedby=${n}
185
+ @input=${p=>{const b=p.target;if(this.value=b.value,this._internals){const y=this.disabled?null:this.value;this._internals.setFormValue(y)}a(s,this,f).call(this),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("onValueChanged",{detail:{value:this.value},bubbles:!0,composed:!0}))}}
186
+ />
187
+ ${i}
188
+ <md-ripple></md-ripple>
189
+ <md-focus-ring class="input-ring"></md-focus-ring>
190
+ </div>
191
+ </div>
192
+ `:o`
193
+ <label
194
+ class="scb-textfield-label ${this.underLabel?"":"scb-textfield-label--without-supporting"}"
195
+ for="${this._inputId}"
196
+ >
197
+ ${this.label}
198
+ </label>
199
+ ${this.underLabel?o`
200
+ <span class="scb-textfield-supporting-text" id="${this._inputId}-supporting-text">
201
+ ${this.underLabel}
202
+ </span>
203
+ `:null}
204
+ <div class="scb-textfield-wrapper">
205
+ ${e}
206
+ <div class="ripple-wrapper">
207
+ <input
208
+ class="scb-textfield${this.error?" has-error-icon":""}"
209
+ .value=${this.value}
210
+ type="${this.type}"
211
+ name="${this.name}"
212
+ id="${this._inputId}"
213
+ ?disabled=${this.disabled}
214
+ ?required=${this.required}
215
+ aria-invalid=${this.error?"true":"false"}
216
+ aria-describedby=${n}
217
+ />
218
+ ${c}
219
+ ${i}
220
+ <md-ripple></md-ripple>
221
+ <md-focus-ring class="input-ring"></md-focus-ring>
222
+ </div>
223
+ </div>
224
+ `}firstUpdated(e){super.firstUpdated(e),this._initialValue=this.value,this._internals&&this.value&&this._internals.setFormValue(this.value),a(s,this,m).call(this),a(s,this,x).call(this)}updated(e){if(super.updated(e),this.toggleAttribute("aria-disabled",this.disabled),e.has("size")&&this._syncDensityForSize(),this._internals&&(e.has("value")||e.has("disabled"))){const i=this.disabled?null:this.value;this._internals.setFormValue(i)}e.has("type")&&(a(s,this,m).call(this),this._hasRenderedOnce&&a(s,this,S).call(this)),(e.has("spacing")||e.has("spacingTop")||e.has("spacingBottom")||e.has("spacingLeft")||e.has("spacingRight"))&&a(s,this,x).call(this),this._hasRenderedOnce=!0}formDisabledCallback(e){this.disabled=e}connectedCallback(){super.connectedCallback(),this._syncDensityForSize(),this._inputId=this.id||`scb-textfield-${Math.random().toString(36).substr(2,9)}`,this._formSubmitHandler=e=>{this.reportValidity()||(e.preventDefault(),e.stopPropagation())},this._form=this.closest("form"),this._form&&(this._form.addEventListener("submit",this._formSubmitHandler,!0),this._formResetHandler=()=>{this.value=this._initialValue;const e=this.shadowRoot?.querySelector(".scb-textfield");e&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&(e.value=this._initialValue),this.error=!1},this._form.addEventListener("reset",this._formResetHandler,!0)),window.addEventListener("keydown",this._onGlobalKeydown,!0),window.addEventListener("pointerdown",this._onGlobalPointerDown,!0)}disconnectedCallback(){super.disconnectedCallback(),this._form&&this._formSubmitHandler&&(this._form.removeEventListener("submit",this._formSubmitHandler,!0),this._formResetHandler&&this._form.removeEventListener("reset",this._formResetHandler,!0)),a(s,this,v).call(this),window.removeEventListener("keydown",this._onGlobalKeydown,!0),window.removeEventListener("pointerdown",this._onGlobalPointerDown,!0)}reportValidity(){return a(s,this,f).call(this,!0)}_onClearClick(){const e=this.shadowRoot?.querySelector(".scb-textfield");if(e&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)){if(e.value="",this.value="",this._internals){const i=this.disabled?null:this.value;this._internals.setFormValue(i),this._internals.setValidity({})}this.error=!1,e.setCustomValidity(""),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("onValueChanged",{detail:{value:this.value},bubbles:!0,composed:!0})),e.focus()}}},u.formAssociated=!0,u.styles=[w`
225
+ :host {
226
+ --scb-textfield-number-max-width: 280px;
227
+ --scb-textfield-text-max-width: 400px;
228
+ --scb-textfield-search-max-width: 600px;
229
+ --scb-textfield-email-max-width: 400px;
230
+ --scb-textfield-password-max-width: 400px;
231
+ --scb-textfield-tel-max-width: 400px;
232
+ --scb-textfield-url-max-width: 400px;
233
+ --scb-textfield-textarea-max-width: 600px;
234
+ font-family: var(--brand-font);
235
+ color: var(--md-sys-color-on-surface);
236
+
237
+ /* Avstånd till omgivande innehåll styrs av spacing-attributen via CSS-variabler */
238
+ margin-block-start: var(--scb-textfield-spacing-block-start, 0);
239
+ margin-block-end: var(--scb-textfield-spacing-block-end, 0);
240
+
241
+ margin-inline-start: var(--scb-textfield-spacing-inline-start, 0);
242
+ margin-inline-end: var(--scb-textfield-spacing-inline-end, 0);
243
+ -webkit-tap-highlight-color: transparent;
244
+
245
+ --scb-textfield-padding-x: var(--spacing-5);
246
+ --scb-textfield-padding-y: var(--spacing-2);
247
+ --scb-textfield-min-height: 56px;
248
+
249
+ --scb-textfield-font-size: var(--md-sys-typescale-body-large-size);
250
+ --scb-textfield-line-height: var(--md-sys-typescale-body-large-line-height);
251
+
252
+ --scb-textfield-label-font-size: var(--md-sys-typescale-label-medium-size);
253
+ --scb-textfield-label-line-height: var(--md-sys-typescale-label-medium-line-height);
254
+ --scb-textfield-label-letter-spacing: var(--md-sys-typescale-label-medium-tracking);
255
+
256
+ --scb-textfield-supporting-font-size: var(--md-sys-typescale-body-medium-size);
257
+ --scb-textfield-supporting-line-height: var(--md-sys-typescale-body-medium-line-height);
258
+ --scb-textfield-supporting-letter-spacing: var(--md-sys-typescale-body-medium-tracking);
259
+ --scb-textfield-label-gap: var(--spacing-3);
260
+
261
+ --scb-textfield-leading-inset: var(--spacing-4);
262
+ --scb-textfield-leading-icon-size: var(--icon-size-medium, 24px);
263
+ --scb-textfield-leading-gap: var(--spacing-4);
264
+ --scb-textfield-leading-padding: calc(
265
+ var(--scb-textfield-leading-inset) +
266
+ var(--scb-textfield-leading-icon-size) +
267
+ var(--scb-textfield-leading-gap)
268
+ );
269
+
270
+ --scb-textfield-trailing-inset: var(--spacing-4);
271
+ --scb-textfield-trailing-icon-size: var(--icon-size-medium, 24px);
272
+ --scb-textfield-trailing-gap: var(--spacing-3);
273
+ --scb-textfield-trailing-action-size: var(--scale-11, 48px);
274
+ --scb-textfield-trailing-reserved: calc(
275
+ var(--scb-textfield-trailing-inset) +
276
+ var(--scb-textfield-trailing-action-size) +
277
+ var(--spacing-2)
278
+ );
279
+ }
280
+
281
+ :host([size='medium']) {
282
+ --scb-textfield-padding-x: var(--spacing-4);
283
+ --scb-textfield-padding-y: var(--spacing-3);
284
+ --scb-textfield-min-height: 48px;
285
+
286
+ --scb-textfield-font-size: var(--md-sys-typescale-body-medium-size);
287
+ --scb-textfield-line-height: var(--md-sys-typescale-body-medium-line-height);
288
+
289
+ --scb-textfield-label-font-size: var(--md-sys-typescale-label-small-size);
290
+ --scb-textfield-label-line-height: var(--md-sys-typescale-label-small-line-height);
291
+ --scb-textfield-label-letter-spacing: var(--md-sys-typescale-label-small-tracking);
292
+
293
+ --scb-textfield-supporting-font-size: var(--md-sys-typescale-body-small-size);
294
+ --scb-textfield-supporting-line-height: var(--md-sys-typescale-body-small-line-height);
295
+ --scb-textfield-supporting-letter-spacing: var(--md-sys-typescale-body-small-tracking);
296
+
297
+ --scb-textfield-leading-inset: var(--spacing-3);
298
+ --scb-textfield-leading-icon-size: var(--icon-size-small, 20px);
299
+ --scb-textfield-leading-gap: var(--spacing-5);
300
+
301
+ --scb-textfield-trailing-inset: var(--spacing-3);
302
+ --scb-textfield-trailing-icon-size: var(--icon-size-small, 20px);
303
+ --scb-textfield-trailing-gap: var(--spacing-3);
304
+ --scb-textfield-trailing-action-size: var(--scale-10, 40px);
305
+ }
306
+
307
+ :host([size='small']) {
308
+ --scb-textfield-padding-x: var(--spacing-4);
309
+ --scb-textfield-padding-y: var(--spacing-3);
310
+ --scb-textfield-min-height: 40px;
311
+
312
+ --scb-textfield-font-size: var(--md-sys-typescale-body-small-size);
313
+ --scb-textfield-line-height: var(--md-sys-typescale-body-small-line-height);
314
+
315
+ --scb-textfield-label-font-size: var(--md-sys-typescale-label-small-size);
316
+ --scb-textfield-label-line-height: var(--md-sys-typescale-label-small-line-height);
317
+ --scb-textfield-label-letter-spacing: var(--md-sys-typescale-label-small-tracking);
318
+
319
+ --scb-textfield-supporting-font-size: var(--md-sys-typescale-body-small-size);
320
+ --scb-textfield-supporting-line-height: var(--md-sys-typescale-body-small-line-height);
321
+ --scb-textfield-supporting-letter-spacing: var(--md-sys-typescale-body-small-tracking);
322
+
323
+ --scb-textfield-leading-inset: var(--spacing-3);
324
+ --scb-textfield-leading-icon-size: var(--icon-size-small, 20px);
325
+ --scb-textfield-leading-gap: var(--spacing-5);
326
+
327
+ --scb-textfield-trailing-inset: var(--spacing-3);
328
+ --scb-textfield-trailing-icon-size: var(--icon-size-small, 20px);
329
+ --scb-textfield-trailing-gap: var(--spacing-3);
330
+ --scb-textfield-trailing-action-size: var(--scale-09, 36px);
331
+ }
332
+
333
+ :host([size='extra-small']) {
334
+ --scb-textfield-padding-x: var(--spacing-3);
335
+ --scb-textfield-padding-y: var(--spacing-2);
336
+ --scb-textfield-min-height: 32px;
337
+
338
+ --scb-textfield-font-size: var(--md-sys-typescale-body-small-size);
339
+ --scb-textfield-line-height: var(--md-sys-typescale-body-small-line-height);
340
+
341
+ --scb-textfield-label-font-size: var(--md-sys-typescale-label-small-size);
342
+ --scb-textfield-label-line-height: var(--md-sys-typescale-label-small-line-height);
343
+ --scb-textfield-label-letter-spacing: var(--md-sys-typescale-label-small-tracking);
344
+
345
+ --scb-textfield-supporting-font-size: var(--md-sys-typescale-body-small-size);
346
+ --scb-textfield-supporting-line-height: var(--md-sys-typescale-body-small-line-height);
347
+ --scb-textfield-supporting-letter-spacing: var(--md-sys-typescale-body-small-tracking);
348
+
349
+ --scb-textfield-leading-inset: var(--spacing-3);
350
+ --scb-textfield-leading-icon-size: var(--icon-size-extra-small, 16px);
351
+ --scb-textfield-leading-gap: var(--spacing-4);
352
+
353
+ --scb-textfield-trailing-inset: var(--spacing-3);
354
+ --scb-textfield-trailing-icon-size: var(--icon-size-extra-small, 16px);
355
+ --scb-textfield-trailing-gap: var(--spacing-2);
356
+ --scb-textfield-trailing-action-size: var(--scale-08, 32px);
357
+ }
358
+
359
+ :host([type='number']) {
360
+ --scb-textfield-max-width: var(--scb-textfield-number-max-width);
361
+ }
362
+ :host([type='text']) {
363
+ --scb-textfield-max-width: var(--scb-textfield-text-max-width);
364
+ }
365
+ :host([type='date']) {
366
+ --scb-textfield-max-width: var(--scb-textfield-text-max-width);
367
+ }
368
+ :host([type='datetime-local']) {
369
+ --scb-textfield-max-width: var(--scb-textfield-text-max-width);
370
+ }
371
+ :host([type='search']) {
372
+ --scb-textfield-max-width: var(--scb-textfield-search-max-width);
373
+ }
374
+ :host([type='email']) {
375
+ --scb-textfield-max-width: var(--scb-textfield-email-max-width);
376
+ }
377
+ :host([type='password']) {
378
+ --scb-textfield-max-width: var(--scb-textfield-password-max-width);
379
+ }
380
+ :host([type='tel']) {
381
+ --scb-textfield-max-width: var(--scb-textfield-tel-max-width);
382
+ }
383
+ :host([type='url']) {
384
+ --scb-textfield-max-width: var(--scb-textfield-url-max-width);
385
+ }
386
+ :host([type='textarea']) {
387
+ --scb-textfield-max-width: var(--scb-textfield-textarea-max-width);
388
+ }
389
+ :host([type='date']) {
390
+ --scb-textfield-max-width: var(--scb-textfield-text-max-width);
391
+ }
392
+ :host([type='time']) {
393
+ --scb-textfield-max-width: var(--scb-textfield-text-max-width);
394
+ }
395
+ input[type='time']::-webkit-calendar-picker-indicator {
396
+ display: none;
397
+ background: none;
398
+ }
399
+
400
+ :host {
401
+ display: flex;
402
+ flex-direction: column;
403
+ max-width: var(--scb-textfield-max-width);
404
+ }
405
+
406
+ :host([error]) .scb-textfield-supporting-text {
407
+ color: var(--md-sys-color-error);
408
+ }
409
+ :host([error]) .scb-textfield {
410
+ border-color: var(--md-sys-color-error);
411
+ }
412
+ :host([error]) .scb-textfield:focus-visible {
413
+ border-color: var(--md-sys-color-error);
414
+ box-shadow: inset 0 0 0 2px var(--md-sys-color-error);
415
+ }
416
+
417
+ :host([disabled]) {
418
+ opacity: 0.38;
419
+ cursor: default;
420
+ }
421
+
422
+ .scb-textfield-label {
423
+ display: block;
424
+ font-size: var(--scb-textfield-label-font-size);
425
+ font-weight: var(--weight-semibold);
426
+ line-height: var(--scb-textfield-label-line-height);
427
+ letter-spacing: var(--scb-textfield-label-letter-spacing);
428
+ }
429
+
430
+ .scb-textfield-label--without-supporting {
431
+ margin-bottom: var(--scb-textfield-label-gap);
432
+ }
433
+
434
+ .scb-textfield-supporting-text {
435
+ display: block;
436
+ font-size: var(--scb-textfield-supporting-font-size);
437
+ line-height: var(--scb-textfield-supporting-line-height);
438
+ letter-spacing: var(--scb-textfield-supporting-letter-spacing);
439
+ margin-bottom: var(--scb-textfield-label-gap);
440
+ color: var(--md-sys-color-on-surface-variant);
441
+ }
442
+
443
+ .scb-textfield {
444
+ padding: var(--scb-textfield-padding-y) var(--scb-textfield-padding-x);
445
+ min-height: var(--scb-textfield-min-height);
446
+ border: 1px solid var(--md-sys-color-outline);
447
+ border-radius: var(--md-sys-shape-corner-small);
448
+ font-size: var(--scb-textfield-font-size);
449
+ font-family: var(--brand-font);
450
+ line-height: var(--scb-textfield-line-height);
451
+ width: 100%;
452
+ box-sizing: border-box;
453
+ background-color: transparent;
454
+ color: var(--md-sys-color-on-surface);
455
+ position: relative;
456
+ z-index: 1;
457
+ }
458
+
459
+ :host([type='search']) .scb-textfield {
460
+ padding-right: var(--scb-textfield-trailing-reserved);
461
+ }
462
+
463
+ :host([type='date']) .scb-textfield {
464
+ padding-right: var(--scb-textfield-trailing-reserved);
465
+ }
466
+
467
+ md-icon + .ripple-wrapper > .scb-textfield {
468
+ padding-left: var(--scb-textfield-leading-padding);
469
+ }
470
+
471
+ .scb-textfield-icon {
472
+ position: absolute;
473
+ left: var(--scb-textfield-leading-inset);
474
+ top: 50%;
475
+ transform: translateY(-50%);
476
+ pointer-events: none;
477
+ font-size: var(--scb-textfield-leading-icon-size);
478
+ z-index: 2;
479
+ }
480
+
481
+ .scb-textfield:focus-visible {
482
+ outline: none;
483
+ border-color: var(--md-sys-color-primary);
484
+ box-shadow: inset 0 0 0 2px var(--md-sys-color-primary);
485
+ border: 1px solid var(--md-sys-color-primary);
486
+ }
487
+
488
+ .scb-textfield-wrapper {
489
+ position: relative;
490
+ width: 100%;
491
+ }
492
+
493
+ /* Wrapper som bär ripple och md-focus-ring */
494
+ .ripple-wrapper {
495
+ position: relative;
496
+ width: 100%;
497
+ }
498
+
499
+ md-focus-ring.input-ring {
500
+ position: absolute;
501
+ inset: 0;
502
+ pointer-events: none;
503
+ display: none;
504
+ border-radius: var(--md-sys-shape-corner-small);
505
+ z-index: 3;
506
+ }
507
+
508
+ .ripple-wrapper[data-kb-focus='true'] md-focus-ring.input-ring {
509
+ display: block;
510
+ }
511
+
512
+ md-ripple {
513
+ border-radius: var(--md-sys-shape-corner-small);
514
+ position: absolute;
515
+ inset: 0;
516
+ z-index: 0;
517
+ pointer-events: none;
518
+ --md-ripple-hover-color: transparent;
519
+ --md-ripple-hover-opacity: 0;
520
+ }
521
+
522
+ input[type='search']::-webkit-search-cancel-button {
523
+ appearance: none;
524
+ display: none;
525
+ }
526
+
527
+ .scb-textfield-error-icon {
528
+ position: absolute;
529
+ right: var(--scb-textfield-trailing-inset);
530
+ top: 50%;
531
+ transform: translateY(-50%);
532
+ pointer-events: none;
533
+ font-size: var(--scb-textfield-trailing-icon-size);
534
+ color: var(--md-sys-color-error);
535
+ z-index: 2;
536
+ }
537
+
538
+ .scb-textfield.has-error-icon {
539
+ padding-right: calc(
540
+ var(--scb-textfield-trailing-inset) +
541
+ var(--scb-textfield-trailing-icon-size) +
542
+ var(--scb-textfield-trailing-gap)
543
+ );
544
+ }
545
+
546
+ /* Clear-knappen: samma box-storlek som error-ikon (var(--scale-06)).
547
+ Ligger längst till höger när det inte är fel.
548
+ När error=true flyttas den åt vänster så att error-ikon hamnar till höger. */
549
+ .scb-textfield-clear {
550
+ position: absolute;
551
+ right: var(--scb-textfield-trailing-inset);
552
+ top: 50%;
553
+ transform: translateY(-50%);
554
+ width: var(--scb-textfield-trailing-icon-size);
555
+ height: var(--scb-textfield-trailing-icon-size);
556
+ padding: 0;
557
+ margin: 0;
558
+ border: none;
559
+ background: none;
560
+ display: inline-flex;
561
+ align-items: center;
562
+ justify-content: center;
563
+ cursor: pointer;
564
+ color: var(--md-sys-color-on-surface);
565
+ z-index: 2;
566
+ }
567
+
568
+ :host([error]) .scb-textfield-clear {
569
+ right: calc(
570
+ var(--scb-textfield-trailing-inset) +
571
+ var(--scb-textfield-trailing-icon-size) +
572
+ var(--spacing-2)
573
+ );
574
+ }
575
+
576
+ .scb-textfield-clear:focus-visible {
577
+ outline: 2px solid var(--md-sys-color-primary);
578
+ outline-offset: 2px;
579
+ }
580
+
581
+ .scb-textfield-clear svg {
582
+ width: 100%;
583
+ height: 100%;
584
+ display: block;
585
+ }
586
+
587
+ /* Datumknappen ovanför input/ripple */
588
+ .scb-textfield-datepicker-button {
589
+ position: absolute;
590
+ right: var(--scb-textfield-trailing-inset);
591
+ top: 50%;
592
+ transform: translateY(-50%);
593
+ z-index: 4;
594
+ }
595
+ `],u);function x(){const t=a(s,this,h).call(this,this.spacing),e=a(s,this,h).call(this,this.spacingTop)??t,i=a(s,this,h).call(this,this.spacingBottom)??t,n=a(s,this,h).call(this,this.spacingLeft),c=a(s,this,h).call(this,this.spacingRight);e?this.style.setProperty("--scb-textfield-spacing-block-start",e):this.style.removeProperty("--scb-textfield-spacing-block-start"),i?this.style.setProperty("--scb-textfield-spacing-block-end",i):this.style.removeProperty("--scb-textfield-spacing-block-end"),n?this.style.setProperty("--scb-textfield-spacing-inline-start",n):this.style.removeProperty("--scb-textfield-spacing-inline-start"),c?this.style.setProperty("--scb-textfield-spacing-inline-end",c):this.style.removeProperty("--scb-textfield-spacing-inline-end")}function h(t){if(!t)return;const e=String(t).trim();if(e)return/^\d+$/.test(e)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(e,10)))})`:e}function f(t=!1){const e=this.shadowRoot?.querySelector(".scb-textfield");if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement))return!0;const i=this.errorText||"Ogiltig inmatning.";let n="";if(e.setCustomValidity(""),this.required&&!e.value)n=i,e.setCustomValidity(n);else if(this.pattern&&e.value)try{new RegExp(this.pattern).test(e.value)||(n=i,e.setCustomValidity(n))}catch{e.setCustomValidity("")}const c=t?e.reportValidity():e.checkValidity();if(this.error=!c,this._internals)if(c)this._internals.setValidity({});else{const p=n||e.validationMessage||i;this._internals.setValidity({customError:!0},p,e)}return c}function m(){const t=this.shadowRoot?.querySelector(".scb-textfield");t&&(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&this._boundField!==t&&(a(s,this,v).call(this),this._boundField=t,this.type!=="time"&&t.addEventListener("input",this._onFieldInput),t.addEventListener("change",this._onFieldChange),t.addEventListener("select",this._onFieldSelect),t.addEventListener("focus",this._onFieldFocus),t.addEventListener("blur",this._onFieldBlur))}function v(){const t=this._boundField;t&&(t.removeEventListener("input",this._onFieldInput),t.removeEventListener("change",this._onFieldChange),t.removeEventListener("select",this._onFieldSelect),t.removeEventListener("focus",this._onFieldFocus),t.removeEventListener("blur",this._onFieldBlur),this._boundField=null)}function S(){this._showDatepicker=!1;const t=this.shadowRoot?.querySelector(".scb-textfield");if(t&&(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&(t.value="",t.setCustomValidity("")),this.value="",this.error=!1,this._internals){const e=this.disabled?null:"";this._internals.setFormValue(e),this._internals.setValidity({})}}function g(){const t=this.renderRoot?.querySelector(".ripple-wrapper");t&&(this._inputFocused&&this._kbShouldShowRing?t.setAttribute("data-kb-focus","true"):t.removeAttribute("data-kb-focus"))}r([d({type:String,reflect:!0})],l.prototype,"type",void 0);r([d({type:String})],l.prototype,"label",void 0);r([d({type:String,attribute:"supporting-text"})],l.prototype,"supportingText",void 0);r([d({type:String,attribute:"error-text"})],l.prototype,"errorText",void 0);r([d({type:String,attribute:"leading-icon"})],l.prototype,"leadingIcon",void 0);r([d({type:String})],l.prototype,"name",void 0);r([d({type:String})],l.prototype,"pattern",void 0);r([d({type:String,attribute:"value"})],l.prototype,"value",void 0);r([d({type:String})],l.prototype,"underLabel",void 0);r([d({type:Boolean,reflect:!0})],l.prototype,"error",void 0);r([d({type:Boolean,reflect:!0})],l.prototype,"disabled",void 0);r([d({type:Boolean,reflect:!0})],l.prototype,"required",void 0);r([d({type:String,reflect:!0})],l.prototype,"size",void 0);r([d({type:String,reflect:!0})],l.prototype,"spacing",void 0);r([d({type:String,attribute:"spacing-top",reflect:!0})],l.prototype,"spacingTop",void 0);r([d({type:String,attribute:"spacing-bottom",reflect:!0})],l.prototype,"spacingBottom",void 0);r([d({type:String,attribute:"spacing-left",reflect:!0})],l.prototype,"spacingLeft",void 0);r([d({type:String,attribute:"spacing-right",reflect:!0})],l.prototype,"spacingRight",void 0);r([k()],l.prototype,"_showDatepicker",void 0);l=r([$("scb-textfield")],l);