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,700 @@
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-list/scb-list.js";
4
+ import "./scb-calendar-event.js";
5
+ import "../scb-dialog/scb-dialog.js";
6
+ import { LitElement as t, css as n, html as r } from "lit";
7
+ import { customElement as i, property as a } from "lit/decorators.js";
8
+ import "@material/web/focus/md-focus-ring.js";
9
+ //#region src/scb-test-components/scb-calendar/scb-calendar.ts
10
+ var o = class extends t {
11
+ constructor(...e) {
12
+ super(...e), this._lastActiveDay = null, this.lang = "sv", this.disableWeekend = !1, this.publicHolidays = !0, this.displayYear = (/* @__PURE__ */ new Date()).getFullYear(), this.displayMonth = (/* @__PURE__ */ new Date()).getMonth() + 1, this.selectedDate = "", this.eventsJson = void 0, this._eventsFromJson = null, this._eventsJsonLast = void 0, this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this._mutationObserver = null, this._syncingDisplay = !1, this._onCalendarKeyDown = (e) => {
13
+ let t = Array.from(this.shadowRoot?.querySelectorAll(".calendar-day.has-event") ?? []), n = this.shadowRoot?.activeElement, r = n && t.includes(n) ? n : document.activeElement, i = t.indexOf(r);
14
+ if (i === -1) return;
15
+ let a = i, o = this.disableWeekend ? 5 : 7;
16
+ switch (e.key) {
17
+ case "ArrowRight":
18
+ a = i + 1 < t.length ? i + 1 : i;
19
+ break;
20
+ case "ArrowLeft":
21
+ a = i - 1 >= 0 ? i - 1 : i;
22
+ break;
23
+ case "ArrowDown":
24
+ a = i + o < t.length ? i + o : i;
25
+ break;
26
+ case "ArrowUp":
27
+ a = i - o >= 0 ? i - o : i;
28
+ break;
29
+ default: return;
30
+ }
31
+ a !== i && (e.preventDefault(), t[a].focus());
32
+ }, this._onEventChanged = () => {
33
+ this.requestUpdate();
34
+ }, this._today = /* @__PURE__ */ new Date(), this._current = /* @__PURE__ */ new Date(), this._popupEvent = null, this._handleDialogClose = () => {
35
+ this._popupEvent = null, this.requestUpdate(), this._restoreDayFocus();
36
+ }, this._restoreDayFocus = () => {
37
+ this._lastActiveDay && setTimeout(() => {
38
+ this._lastActiveDay?.focus(), this._lastActiveDay = null;
39
+ }, 0);
40
+ }, this._easterDateCalculated = {};
41
+ }
42
+ get value() {
43
+ return this.selectedDate;
44
+ }
45
+ set value(e) {
46
+ let t = (e ?? "") + "";
47
+ t !== this.selectedDate && (this.selectedDate = t);
48
+ }
49
+ static get observedAttributes() {
50
+ return [...super.observedAttributes ?? [], "value"];
51
+ }
52
+ attributeChangedCallback(e, t, n) {
53
+ super.attributeChangedCallback(e, t, n), e === "value" && (this.value = n ?? "");
54
+ }
55
+ static {
56
+ this.styles = n`
57
+ :host {
58
+ display: block;
59
+ margin-block-start: var(--scb-calendar-spacing-block-start, 0);
60
+ margin-block-end: var(--scb-calendar-spacing-block-end, 0);
61
+ margin-inline-start: var(--scb-calendar-spacing-inline-start, 0);
62
+ margin-inline-end: var(--scb-calendar-spacing-inline-end, 0);
63
+ border: 1px solid var(--md-sys-color-outline-variant);
64
+ padding: var(--spacing-5);
65
+ border-radius: var(--md-sys-shape-corner-large);
66
+ background: var(--md-sys-color-surface);
67
+ font-family: var(--brand-font);
68
+ }
69
+ .calendar-header {
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: space-between;
73
+ margin-bottom: var(--spacing-5);
74
+ border-bottom: 1px solid rgb(224, 224, 224);
75
+ padding-bottom: var(--spacing-3);
76
+ }
77
+ .calendar-grid {
78
+ display: grid;
79
+ gap: var(--spacing-2);
80
+ margin-bottom: var(--spacing-2);
81
+ grid-template-columns: repeat(7, 1fr);
82
+ }
83
+ :host([disable-weekend]) .calendar-grid {
84
+ grid-template-columns: repeat(5, 1fr);
85
+ }
86
+ .calendar-grid-days{
87
+ font-weight: 600;
88
+ margin-bottom: var(--spacing-5);
89
+ }
90
+ .calendar-weeks {
91
+ display: grid;
92
+ grid-auto-rows: 1fr;
93
+ }
94
+ .calendar-titles-wrapper{
95
+ display: grid;
96
+ gap: var(--spacing-2);
97
+ }
98
+ .calendar-day {
99
+ border-radius: 6px;
100
+ min-height: 50px;
101
+ display: flex;
102
+ padding: var(--spacing-3);
103
+ box-sizing: border-box;
104
+ overflow: hidden;
105
+ gap: var(--spacing-3);
106
+ border: 1px solid var(--md-sys-color-outline-variant, #e0e0e0);
107
+ flex-direction: column;
108
+ }
109
+ .calendar-day--holiday {
110
+ background: var(--md-sys-color-error-container);
111
+ }
112
+ .calendar-day.has-event:focus {
113
+ outline: none;
114
+ }
115
+ md-focus-ring {
116
+ border-radius: 6px;
117
+ }
118
+ .calendar-day--other {
119
+ color: light-dark(var(--n-40), var(--n-70));
120
+ }
121
+ .calendar-day--other .calendar-day-event-title {
122
+ color: inherit;
123
+ }
124
+ .calendar-day--other .calendar-day-number {
125
+ font-weight: var(--weight-regular);
126
+ }
127
+ .calendar-day-number {
128
+ font-size: var(--md-sys-typescale-label-small-size);
129
+ line-height: var(--md-sys-typescale-label-small-line-height); /* vissa tabeller i Figma visar 21 */
130
+ font-weight: var(--md-sys-typescale-label-small-weight);
131
+ letter-spacing: var(--md-sys-typescale-label-small-tracking);
132
+ display: flex;
133
+ gap: 8px;
134
+ }
135
+ .calendar-day-event-title {
136
+ font-size: 12px;
137
+ color: var(--md-sys-color-primary);
138
+ white-space: nowrap;
139
+ overflow: hidden;
140
+ text-overflow: ellipsis;
141
+ display: block;
142
+ width: 100%;
143
+ }
144
+ .calendar-day-holiday-name{
145
+ color: var(--md-sys-color-on-error-container);
146
+ font-weight: var(--md-sys-typescale-body-medium-weight);
147
+ font-size: 12px;
148
+ white-space: nowrap;
149
+ overflow: hidden;
150
+ text-overflow: ellipsis;
151
+ display: block;
152
+ width: 100%;
153
+ }
154
+ .calendar-day.today {
155
+ background: var(--md-sys-color-secondary-container);
156
+
157
+ }
158
+ .calendar-day.has-event {
159
+ cursor: pointer;
160
+ position: relative;
161
+ border: 1px solid var(--md-sys-color-primary);
162
+ }
163
+
164
+ .event-popup-list{
165
+ display: flex;
166
+ flex-direction: column;
167
+ gap: var(--spacing-4);
168
+ }
169
+
170
+ `;
171
+ }
172
+ connectedCallback() {
173
+ super.connectedCallback(), this.#e();
174
+ let e = Number(this.displayYear), t = Number(this.displayMonth);
175
+ !Number.isNaN(e) && !Number.isNaN(t) && t >= 1 && t <= 12 && (this._current = new Date(e, t - 1, 1)), this._syncDisplayFromCurrent(!1), this.addEventListener("change", this._onEventChanged), this._mutationObserver = new MutationObserver(() => {
176
+ this.requestUpdate();
177
+ }), this._mutationObserver.observe(this, { childList: !0 }), this.addEventListener("keydown", this._onCalendarKeyDown);
178
+ }
179
+ disconnectedCallback() {
180
+ this.removeEventListener("change", this._onEventChanged), super.disconnectedCallback(), this._mutationObserver &&= (this._mutationObserver.disconnect(), null), this.removeEventListener("keydown", this._onCalendarKeyDown);
181
+ }
182
+ mapSpacingToken(e) {
183
+ if (!e) return;
184
+ let t = String(e).trim();
185
+ if (t) return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
186
+ }
187
+ #e() {
188
+ let e = this.mapSpacingToken(this.spacing), t = this.mapSpacingToken(this.spacingTop) ?? e, n = this.mapSpacingToken(this.spacingBottom) ?? e, r = this.mapSpacingToken(this.spacingLeft), i = this.mapSpacingToken(this.spacingRight);
189
+ t ? this.style.setProperty("--scb-calendar-spacing-block-start", t) : this.style.removeProperty("--scb-calendar-spacing-block-start"), n ? this.style.setProperty("--scb-calendar-spacing-block-end", n) : this.style.removeProperty("--scb-calendar-spacing-block-end"), r ? this.style.setProperty("--scb-calendar-spacing-inline-start", r) : this.style.removeProperty("--scb-calendar-spacing-inline-start"), i ? this.style.setProperty("--scb-calendar-spacing-inline-end", i) : this.style.removeProperty("--scb-calendar-spacing-inline-end");
190
+ }
191
+ updated(e) {
192
+ if (super.updated?.(e), e.has("eventsJson") && (this._eventsJsonLast = void 0, this._eventsFromJson = null), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this.#e(), !this._syncingDisplay && (e.has("displayYear") || e.has("displayMonth"))) {
193
+ let e = Number(this.displayYear), t = Number(this.displayMonth);
194
+ if (!Number.isNaN(e) && !Number.isNaN(t) && t >= 1 && t <= 12) {
195
+ let n = this._current.getFullYear(), r = this._current.getMonth() + 1;
196
+ (n !== e || r !== t) && (this._current = new Date(e, t - 1, 1), this._dispatchMonthChange(e, t), this.requestUpdate());
197
+ }
198
+ }
199
+ }
200
+ _ensureEventsFromJson() {
201
+ let e = (this.eventsJson ?? "").trim();
202
+ if (!e) {
203
+ this._eventsFromJson = null, this._eventsJsonLast = e;
204
+ return;
205
+ }
206
+ if (!(this._eventsJsonLast === e && this._eventsFromJson !== null)) {
207
+ this._eventsJsonLast = e;
208
+ try {
209
+ let t = JSON.parse(e);
210
+ Array.isArray(t) ? this._eventsFromJson = t : this._eventsFromJson = [];
211
+ } catch {
212
+ this._eventsFromJson = [];
213
+ }
214
+ }
215
+ }
216
+ _getEventInputs() {
217
+ return Array.isArray(this.events) ? this.events : (this._ensureEventsFromJson(), this._eventsFromJson === null ? null : this._eventsFromJson);
218
+ }
219
+ _normalizeEventInput(e) {
220
+ let t = e.title ?? "", n = e.description ?? "", r = e.href ?? "", i = e.startDate ?? e["start-date"] ?? e.start ?? e.date ?? "", a = e.endDate ?? e["end-date"] ?? e.end ?? "";
221
+ return {
222
+ title: t + "",
223
+ description: n ? n + "" : void 0,
224
+ href: r ? r + "" : void 0,
225
+ start: i ? i + "" : void 0,
226
+ end: a ? a + "" : void 0
227
+ };
228
+ }
229
+ _toLocalEventDate(e, t) {
230
+ let n = (e ?? "").trim();
231
+ if (!n) return null;
232
+ if (!n.includes("T")) {
233
+ let e = n.split("-").map((e) => Number(e));
234
+ if (e.length !== 3 || e.some((e) => Number.isNaN(e))) return null;
235
+ let [r, i, a] = e;
236
+ return t ? new Date(r, i - 1, a, 23, 59, 59, 999) : new Date(r, i - 1, a, 0, 0, 0, 0);
237
+ }
238
+ let r = new Date(n);
239
+ return Number.isNaN(r.getTime()) ? null : r;
240
+ }
241
+ _toDateKey(e) {
242
+ return `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
243
+ }
244
+ _buildEventMapFromInputs(e) {
245
+ let t = /* @__PURE__ */ new Map();
246
+ for (let n of e) {
247
+ let e = this._normalizeEventInput(n), r = e.start || "", i = e.end || "";
248
+ if (!(!r || !e.title)) if (r && i) {
249
+ let n = this._toLocalEventDate(r, !1), a = this._toLocalEventDate(i, !0);
250
+ if (!n || !a) continue;
251
+ if (a < n) {
252
+ let n = r.split("T")[0], a = t.get(n) || [];
253
+ a.push({
254
+ title: e.title,
255
+ description: e.description,
256
+ href: e.href,
257
+ start: r,
258
+ end: i
259
+ }), t.set(n, a);
260
+ continue;
261
+ }
262
+ for (let o = new Date(n); o <= a; o.setDate(o.getDate() + 1)) {
263
+ let n = this._toDateKey(o), a = t.get(n) || [];
264
+ a.push({
265
+ title: e.title,
266
+ description: e.description,
267
+ href: e.href,
268
+ start: r,
269
+ end: i
270
+ }), t.set(n, a);
271
+ }
272
+ } else {
273
+ let n = r.split("T")[0], i = t.get(n) || [];
274
+ i.push({
275
+ title: e.title,
276
+ description: e.description,
277
+ href: e.href,
278
+ start: r
279
+ }), t.set(n, i);
280
+ }
281
+ }
282
+ return t;
283
+ }
284
+ _buildEventMapFromChildren() {
285
+ let e = Array.from(this.querySelectorAll("scb-calendar-event")), t = /* @__PURE__ */ new Map();
286
+ for (let n of e) {
287
+ let e = n, r = (e.startDate ?? e.date ?? "") + "" || n.getAttribute("start-date") || n.getAttribute("date") || "", i = (e.endDate ?? "") + "" || n.getAttribute("end-date") || "";
288
+ if (r && i) {
289
+ let a = this._toLocalEventDate(r, !1), o = this._toLocalEventDate(i, !0);
290
+ if (!a || !o) continue;
291
+ if (o < a) {
292
+ let a = r.split("T")[0], o = t.get(a) || [];
293
+ o.push({
294
+ title: n.title ?? "",
295
+ description: n.description,
296
+ href: e.href || n.getAttribute("href") || void 0,
297
+ start: r,
298
+ end: i
299
+ }), t.set(a, o);
300
+ continue;
301
+ }
302
+ for (let s = new Date(a); s <= o; s.setDate(s.getDate() + 1)) {
303
+ let a = this._toDateKey(s), o = t.get(a) || [];
304
+ o.push({
305
+ title: n.title ?? "",
306
+ description: n.description,
307
+ href: e.href || n.getAttribute("href") || void 0,
308
+ start: r,
309
+ end: i
310
+ }), t.set(a, o);
311
+ }
312
+ } else if (r && n.title) {
313
+ let i = r.split("T")[0], a = t.get(i) || [];
314
+ a.push({
315
+ title: n.title,
316
+ description: n.description,
317
+ href: e.href || n.getAttribute("href") || void 0,
318
+ start: r
319
+ }), t.set(i, a);
320
+ }
321
+ }
322
+ return t;
323
+ }
324
+ _syncDisplayFromCurrent(e = !0) {
325
+ let t = this._current.getFullYear(), n = this._current.getMonth() + 1;
326
+ this._syncingDisplay = !0;
327
+ try {
328
+ this.displayYear = t, this.displayMonth = n;
329
+ } finally {
330
+ this._syncingDisplay = !1;
331
+ }
332
+ e && this._dispatchMonthChange(t, n);
333
+ }
334
+ _dispatchMonthChange(e, t) {
335
+ let n = {
336
+ displayYear: e,
337
+ displayMonth: t
338
+ };
339
+ this.dispatchEvent(new CustomEvent("scb-calendar-month-change", {
340
+ bubbles: !0,
341
+ composed: !0,
342
+ detail: n
343
+ })), this.dispatchEvent(new CustomEvent("scbcalendarmonthchange", {
344
+ bubbles: !0,
345
+ composed: !0,
346
+ detail: n
347
+ }));
348
+ }
349
+ _dispatchSelect(e) {
350
+ let t = { selectedDate: e };
351
+ this.dispatchEvent(new CustomEvent("scb-calendar-select", {
352
+ bubbles: !0,
353
+ composed: !0,
354
+ detail: t
355
+ })), this.dispatchEvent(new CustomEvent("scbcalendarselect", {
356
+ bubbles: !0,
357
+ composed: !0,
358
+ detail: t
359
+ }));
360
+ }
361
+ _daysInMonth(e, t) {
362
+ return new Date(e, t + 1, 0).getDate();
363
+ }
364
+ _firstDayOfWeek(e, t) {
365
+ let n = new Date(e, t, 1).getDay();
366
+ return n === 0 ? 6 : n - 1;
367
+ }
368
+ _prevMonth() {
369
+ this._current = new Date(this._current.getFullYear(), this._current.getMonth() - 1, 1), this.selectedDate = "", this._popupEvent = null, this._syncDisplayFromCurrent(), this.requestUpdate();
370
+ }
371
+ _nextMonth() {
372
+ this._current = new Date(this._current.getFullYear(), this._current.getMonth() + 1, 1), this.selectedDate = "", this._popupEvent = null, this._syncDisplayFromCurrent(), this.requestUpdate();
373
+ }
374
+ _showEventPopup(e) {
375
+ this._popupEvent = e, this.selectedDate = e.date, this._dispatchSelect(e.date), this._lastActiveDay = this.shadowRoot?.activeElement || document.activeElement, this.requestUpdate(), this.updateComplete.then(() => {
376
+ let e = this.shadowRoot?.querySelector("scb-dialog");
377
+ e && (document.activeElement && (e.__lastTriggerEl = document.activeElement), requestAnimationFrame(() => {
378
+ requestAnimationFrame(() => {
379
+ e.open = !0;
380
+ });
381
+ }), e.addEventListener("close", this._handleDialogClose, { once: !0 }));
382
+ });
383
+ }
384
+ _addDays(e, t) {
385
+ let n = new Date(e.valueOf());
386
+ return n.setDate(n.getDate() + t), n;
387
+ }
388
+ _easterDay(e) {
389
+ if (this._easterDateCalculated["Ar" + e] !== void 0) return new Date(this._easterDateCalculated["Ar" + e]);
390
+ let t = e;
391
+ t < 100 && (t += 1900), t < 1950 && (t += 100);
392
+ let n = t % 19, r = t % 4, i = t % 7, a = (19 * n + 24) % 30, o = (2 * r + 4 * i + 6 * a + 5) % 7, s = 22 + a + o, c = 0;
393
+ s == 57 && (s -= 7), s == 56 && a == 28 && o == 6 && n > 10 && (s -= 7), s > 31 ? (s -= 31, c = 4) : c = 3;
394
+ let l = new Date(t, c - 1, s);
395
+ return this._easterDateCalculated["Ar" + e] = l, new Date(this._easterDateCalculated["Ar" + e]);
396
+ }
397
+ _swedishHolidayName(e) {
398
+ let t = e.getMonth();
399
+ if (t === 1 || t === 6 || t === 7 || t === 8) return null;
400
+ let n = e.getMonth() + 1, r = e.getDate(), i = e.getFullYear(), a = this._easterDay(i), o = this.lang === "en", s = [
401
+ [
402
+ "Nyårsdagen",
403
+ "New Year's Day",
404
+ n === 1 && r === 1
405
+ ],
406
+ [
407
+ "Trettondedag jul",
408
+ "Epiphany",
409
+ n === 1 && r === 6
410
+ ],
411
+ [
412
+ "Långfredag",
413
+ "Good Friday",
414
+ +e == +this._addDays(a, -2)
415
+ ],
416
+ [
417
+ "Påskdagen",
418
+ "Easter Sunday",
419
+ +e == +a
420
+ ],
421
+ [
422
+ "Annandag påsk",
423
+ "Easter Monday",
424
+ +e == +this._addDays(a, 1)
425
+ ],
426
+ [
427
+ "Kristi himmelsfärdsdag",
428
+ "Ascension Day",
429
+ +e == +this._addDays(a, 39)
430
+ ],
431
+ [
432
+ "Pingstdagen",
433
+ "Pentecost",
434
+ +e == +this._addDays(a, 50) && i < 2005
435
+ ],
436
+ [
437
+ "Första maj",
438
+ "May Day",
439
+ n === 5 && r === 1
440
+ ],
441
+ [
442
+ "Nationaldagen",
443
+ "National Day",
444
+ n === 6 && r === 6 && i >= 2005
445
+ ],
446
+ [
447
+ "Midsommarafton",
448
+ "Midsummer's Eve",
449
+ n === 6 && r >= 19 && r <= 25 && e.getDay() === 5
450
+ ],
451
+ [
452
+ "Midsommardagen",
453
+ "Midsummer's Day",
454
+ n === 6 && r >= 20 && r <= 26 && e.getDay() === 6
455
+ ],
456
+ [
457
+ "Julafton",
458
+ "Christmas Eve",
459
+ n === 12 && r === 24
460
+ ],
461
+ [
462
+ "Juldagen",
463
+ "Christmas Day",
464
+ n === 12 && r === 25
465
+ ],
466
+ [
467
+ "Annandag jul",
468
+ "Boxing Day",
469
+ n === 12 && r === 26
470
+ ],
471
+ [
472
+ "Alla helgons dag",
473
+ "All Saints' Day",
474
+ n === 10 && r >= 31 && e.getDay() === 6 || n === 11 && r <= 6 && e.getDay() === 6
475
+ ]
476
+ ];
477
+ for (let e of s) {
478
+ let [t, n, r] = e;
479
+ if (r) return o ? n : t;
480
+ }
481
+ return null;
482
+ }
483
+ render() {
484
+ let e = this._current.getFullYear(), t = this._current.getMonth(), n = this._daysInMonth(e, t), i = this._firstDayOfWeek(e, t), a = this._today, o = this.lang === "en", s = o ? [
485
+ "January",
486
+ "February",
487
+ "March",
488
+ "April",
489
+ "May",
490
+ "June",
491
+ "July",
492
+ "August",
493
+ "September",
494
+ "October",
495
+ "November",
496
+ "December"
497
+ ] : [
498
+ "Januari",
499
+ "Februari",
500
+ "Mars",
501
+ "April",
502
+ "Maj",
503
+ "Juni",
504
+ "Juli",
505
+ "Augusti",
506
+ "September",
507
+ "Oktober",
508
+ "November",
509
+ "December"
510
+ ], c = o ? [
511
+ "Mon",
512
+ "Tue",
513
+ "Wed",
514
+ "Thu",
515
+ "Fri",
516
+ "Sat",
517
+ "Sun"
518
+ ] : [
519
+ "Mån",
520
+ "Tis",
521
+ "Ons",
522
+ "Tor",
523
+ "Fre",
524
+ "Lör",
525
+ "Sön"
526
+ ];
527
+ this.disableWeekend && (c = c.slice(0, 5));
528
+ let l = this._getEventInputs(), u = l ? this._buildEventMapFromInputs(l) : this._buildEventMapFromChildren(), d = [], f = 1;
529
+ for (let s = 0; s < 6; s++) {
530
+ let c = [], l = this.disableWeekend ? [
531
+ 0,
532
+ 1,
533
+ 2,
534
+ 3,
535
+ 4
536
+ ] : [
537
+ 0,
538
+ 1,
539
+ 2,
540
+ 3,
541
+ 4,
542
+ 5,
543
+ 6
544
+ ], p = f;
545
+ for (let d = 0; d < l.length; d++) {
546
+ let f = l[d];
547
+ if (s === 0 && f < i) {
548
+ if (!this.disableWeekend || f < 5) {
549
+ let n = t === 0 ? 11 : t - 1, a = t === 0 ? e - 1 : e, o = this._daysInMonth(a, n) - (i - f - 1);
550
+ c.push(r`
551
+ <div class="calendar-day calendar-day--other">
552
+ <span class="calendar-day-number">${o}</span>
553
+ </div>
554
+ `);
555
+ }
556
+ } else if (p > n) c.push(r`<div></div>`);
557
+ else {
558
+ let i = new Date(e, t, p);
559
+ if (this.disableWeekend) for (; i.getDay() === 0 || i.getDay() === 6;) p++, i = new Date(e, t, p);
560
+ if (p > n) {
561
+ c.push(r`<div></div>`);
562
+ continue;
563
+ }
564
+ let s = a.getFullYear() === e && a.getMonth() === t && a.getDate() === p, l = `${e}-${String(t + 1).padStart(2, "0")}-${String(p).padStart(2, "0")}`, d = new Date(e, t, p), f = !1, m = null;
565
+ this.publicHolidays && (m = this._swedishHolidayName(d), f = !!m);
566
+ let h = u.get(l) || [];
567
+ h = [...h].sort((e, t) => {
568
+ let n = e.start && l === e.start.split("T")[0] ? e.start : e.end && l === e.end.split("T")[0] ? e.end : "", r = t.start && l === t.start.split("T")[0] ? t.start : t.end && t.end.split("T")[0] ? t.end : "", i = n && n.includes("T"), a = r && r.includes("T");
569
+ return i && a ? n.localeCompare(r) : i ? -1 : a ? 1 : e.title.localeCompare(t.title);
570
+ });
571
+ let g = [...h].map((e) => {
572
+ let t = "", n = "";
573
+ if (e.start && e.end) {
574
+ let r = e.start.split("T")[0], i = e.end.split("T")[0];
575
+ l === r && l === i && e.start.includes("T") && e.end.includes("T") ? t = e.start.split("T")[1].substring(0, 5) + "–" + e.end.split("T")[1].substring(0, 5) : l === r && e.start.includes("T") ? t = e.start.split("T")[1].substring(0, 5) : l === i && e.end.includes("T") && r !== i ? (t = e.end.split("T")[1].substring(0, 5), n = o ? "cont. " : "fort. ") : l === i && e.end.includes("T") ? t = e.end.split("T")[1].substring(0, 5) : l !== r && (t = "", n = o ? "cont. " : "fort. ");
576
+ } else e.start && e.start.includes("T") && (t = e.start.split("T")[1].substring(0, 5));
577
+ return {
578
+ ...e,
579
+ time: t,
580
+ prefix: n
581
+ };
582
+ });
583
+ c.push(r`
584
+ <div
585
+ class="calendar-day${s ? " today" : ""}${h.length ? " has-event" : ""}${f ? " calendar-day--holiday" : ""}"
586
+ tabindex=${h.length ? "0" : void 0}
587
+ @click=${h.length ? (() => this._showEventPopup({
588
+ date: l,
589
+ events: h
590
+ })) : null}
591
+ @keydown=${h.length ? ((e) => {
592
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this._showEventPopup({
593
+ date: l,
594
+ events: h
595
+ }));
596
+ }) : null}
597
+ title=${m || (h.length === 1 ? h[0].title : h.length > 1 ? h.map((e) => e.title).join(", ") : "")}
598
+ role=${h.length ? "button" : void 0}
599
+ aria-label=${m || (h.length ? h.length === 1 ? h[0].title : h.map((e) => e.title).join(", ") : void 0)}
600
+ >
601
+ <md-focus-ring inward></md-focus-ring>
602
+ <span class="calendar-day-number">${p} ${m ? r`<span class="calendar-day-holiday-name">${m}</span>` : ""}</span>
603
+ <div class="calendar-titles-wrapper">
604
+ ${g.map((e) => r`<span class="calendar-day-event-title">${e.prefix || ""}${e.title}</span>`)}
605
+ </div>
606
+ </div>
607
+ `), p++;
608
+ }
609
+ }
610
+ if (f = p, d.push(r`<div class="calendar-grid">${c}</div>`), f > n) break;
611
+ }
612
+ return r`
613
+ <div class="calendar-header">
614
+ <scb-icon-button @click=${this._prevMonth} icon="chevron_left" aria-label="${o ? "Previous month" : "Föregående månad"}"></scb-icon-button>
615
+ <span>${s[t]} ${e}</span>
616
+ <scb-icon-button @click=${this._nextMonth} icon="chevron_right" aria-label="${o ? "Next month" : "Nästa månad"}"></scb-icon-button>
617
+ </div>
618
+ <div class="calendar-grid calendar-grid-days">
619
+ ${c.map((e) => r`<div>${e}</div>`)}
620
+ </div>
621
+ <div class="calendar-weeks">
622
+ ${d}
623
+ </div>
624
+ ${this._popupEvent && Array.isArray(this._popupEvent.events) ? r`
625
+ <scb-dialog variant="floating" open label="${o ? "Events" : "Händelser"} ${this._popupEvent.date}">
626
+ <scb-list>
627
+ ${[...this._popupEvent.events].sort((e, t) => {
628
+ let n = e.start && e.start.includes("T") ? e.start : e.end && e.end.includes("T") ? e.end : "", r = t.start && t.start.includes("T") ? t.start : t.end && t.end.includes("T") ? t.end : "", i = n && n.includes("T"), a = r && r.includes("T");
629
+ return i && a ? n.localeCompare(r) : i ? -1 : a ? 1 : e.title.localeCompare(t.title);
630
+ }).map((e) => {
631
+ let t = this._popupEvent?.date ?? "", n = "", i = "", a = "";
632
+ if (e.start && e.end) {
633
+ let r = e.start.split("T")[0], s = e.end.split("T")[0];
634
+ r === s && e.start.includes("T") && e.end.includes("T") ? n = e.start.split("T")[1].substring(0, 5) + " – " + e.end.split("T")[1].substring(0, 5) : t === r && e.start.includes("T") && (n = "Start: " + e.start.split("T")[1].substring(0, 5) + (o ? " (Extended event) " : " (Flerdagsevenemang) ")), t === s && e.end.includes("T") && r !== s && (a = (o ? "End: " : "Slut: ") + e.end.split("T")[1].substring(0, 5)), t !== r && (i = o ? "cont. " : "fort. ");
635
+ } else e.start && e.start.includes("T") && (n = e.start.split("T")[1].substring(0, 5));
636
+ return e.href ? r`
637
+ <scb-list-item
638
+ type="link"
639
+ item-href="${e.href}"
640
+ label="${i}${e.title}"
641
+ supporting-text="${e.description ? e.description : ""}"
642
+ overline="${n || ""}${a || ""}"
643
+ >
644
+ </scb-list-item>` : r`
645
+ <scb-list-item
646
+ label="${i}${e.title}"
647
+ supporting-text="${e.description ? e.description : ""}"
648
+ overline="${n || ""}${a || ""}"
649
+ >
650
+ </scb-list-item>`;
651
+ })}
652
+ </scb-list>
653
+ </scb-dialog>
654
+ ` : ""}
655
+ `;
656
+ }
657
+ };
658
+ e([a({ type: String })], o.prototype, "lang", void 0), e([a({
659
+ type: Boolean,
660
+ attribute: "disable-weekend"
661
+ })], o.prototype, "disableWeekend", void 0), e([a({
662
+ type: Boolean,
663
+ attribute: "public-holidays"
664
+ })], o.prototype, "publicHolidays", void 0), e([a({
665
+ type: Number,
666
+ attribute: "display-year",
667
+ reflect: !0
668
+ })], o.prototype, "displayYear", void 0), e([a({
669
+ type: Number,
670
+ attribute: "display-month",
671
+ reflect: !0
672
+ })], o.prototype, "displayMonth", void 0), e([a({
673
+ type: String,
674
+ attribute: "selected-date",
675
+ reflect: !0
676
+ })], o.prototype, "selectedDate", void 0), e([a({ attribute: !1 })], o.prototype, "events", void 0), e([a({
677
+ type: String,
678
+ attribute: "events-json"
679
+ })], o.prototype, "eventsJson", void 0), e([a({
680
+ type: String,
681
+ reflect: !0
682
+ })], o.prototype, "spacing", void 0), e([a({
683
+ type: String,
684
+ attribute: "spacing-top",
685
+ reflect: !0
686
+ })], o.prototype, "spacingTop", void 0), e([a({
687
+ type: String,
688
+ attribute: "spacing-bottom",
689
+ reflect: !0
690
+ })], o.prototype, "spacingBottom", void 0), e([a({
691
+ type: String,
692
+ attribute: "spacing-left",
693
+ reflect: !0
694
+ })], o.prototype, "spacingLeft", void 0), e([a({
695
+ type: String,
696
+ attribute: "spacing-right",
697
+ reflect: !0
698
+ })], o.prototype, "spacingRight", void 0), o = e([i("scb-calendar")], o);
699
+ //#endregion
700
+ export { o as ScbCalendar };