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,598 @@
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
+ import "../scb-chevron/scb-chevron.js";
3
+ import "../scb-button/scb-button.js";
4
+ import "../scb-options-menu/scb-options-menu.js";
5
+ import { LitElement as t, css as n, html as r, nothing as i } from "lit";
6
+ import { customElement as a, property as o, query as s } from "lit/decorators.js";
7
+ import "@material/web/focus/md-focus-ring.js";
8
+ import "@material/web/icon/icon.js";
9
+ (() => {
10
+ if (typeof window > "u" || typeof document > "u" || !("customElements" in window) || document.head.querySelector("style[data-scb-dropdown-pre-upgrade]")) return;
11
+ let e = document.createElement("style");
12
+ e.setAttribute("data-scb-dropdown-pre-upgrade", ""), e.textContent = "\n scb-dropdown:not(:defined) {\n display: inline-block;\n position: relative;\n overflow: visible;\n\n margin-block-start: var(--scb-dropdown-spacing-block-start, 0);\n margin-block-end: var(--scb-dropdown-spacing-block-end, 0);\n margin-inline-start: var(--scb-dropdown-spacing-inline-start, 0);\n margin-inline-end: var(--scb-dropdown-spacing-inline-end, 0);\n\n min-block-size: var(--scb-dropdown-pre-control-size, 48px);\n visibility: hidden;\n }\n\n scb-dropdown[as-tab]:not(:defined) {\n display: inline-flex;\n align-items: stretch;\n min-block-size: var(--scb-dropdown-pre-tab-size, var(--scb-dropdown-pre-control-size, 48px));\n }\n\n scb-dropdown:not(:defined) > * {\n display: none;\n }\n ", document.head.appendChild(e);
13
+ let t = (e) => {
14
+ let t = String(e ?? "").trim();
15
+ if (t) return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
16
+ }, n = (e) => {
17
+ let n = t(e.getAttribute("spacing")), r = t(e.getAttribute("spacing-top")) ?? n, i = t(e.getAttribute("spacing-bottom")) ?? n, a = t(e.getAttribute("spacing-left")), o = t(e.getAttribute("spacing-right"));
18
+ r ? e.style.setProperty("--scb-dropdown-spacing-block-start", r) : e.style.removeProperty("--scb-dropdown-spacing-block-start"), i ? e.style.setProperty("--scb-dropdown-spacing-block-end", i) : e.style.removeProperty("--scb-dropdown-spacing-block-end"), a ? e.style.setProperty("--scb-dropdown-spacing-inline-start", a) : e.style.removeProperty("--scb-dropdown-spacing-inline-start"), o ? e.style.setProperty("--scb-dropdown-spacing-inline-end", o) : e.style.removeProperty("--scb-dropdown-spacing-inline-end");
19
+ };
20
+ document.querySelectorAll("scb-dropdown").forEach(n);
21
+ let r = new MutationObserver((e) => {
22
+ for (let t of e) {
23
+ if (t.type === "attributes") {
24
+ let e = t.target;
25
+ e instanceof HTMLElement && e.tagName.toLowerCase() === "scb-dropdown" && n(e);
26
+ continue;
27
+ }
28
+ if (t.type === "childList") {
29
+ let e = [...Array.from(t.addedNodes), ...Array.from(t.removedNodes)];
30
+ for (let t of e) if (t instanceof HTMLElement) {
31
+ if (t.tagName.toLowerCase() === "scb-dropdown") {
32
+ n(t);
33
+ continue;
34
+ }
35
+ t.querySelectorAll?.("scb-dropdown").forEach((e) => {
36
+ e instanceof HTMLElement && n(e);
37
+ });
38
+ }
39
+ }
40
+ }
41
+ });
42
+ r.observe(document.documentElement, {
43
+ subtree: !0,
44
+ childList: !0,
45
+ attributes: !0,
46
+ attributeFilter: [
47
+ "spacing",
48
+ "spacing-top",
49
+ "spacing-bottom",
50
+ "spacing-left",
51
+ "spacing-right"
52
+ ]
53
+ }), customElements.whenDefined("scb-dropdown").then(() => {
54
+ r.disconnect();
55
+ });
56
+ })();
57
+ var c = class extends t {
58
+ constructor(...e) {
59
+ super(...e), this.label = "Dropdown", this.variant = "filled", this.size = "medium", this.open = !1, this.disabled = !1, this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this.menuGap = "3", this.width = null, this.minWidth = null, this.maxWidth = null, this.dataIndex = null, this.ariaCurrent = null, this._slottedMenuEl = null, this._openSettledTimer = null, this._menuCloseTimer = null, this._panelResizeObserver = null, this._panelHeightSyncRaf = null, this._onDocumentClickBound = (e) => {
60
+ if (!this.open) return;
61
+ let t = e.composedPath(), n = t.find((e) => e instanceof HTMLElement && e.tagName.toLowerCase() === "scb-dropdown");
62
+ if (n && n !== this) {
63
+ this.open = !1;
64
+ return;
65
+ }
66
+ t.includes(this) || (this.open = !1);
67
+ }, this._onDocumentKeydownBound = (e) => {
68
+ this.open && e.key === "Escape" && (this.open = !1);
69
+ }, this._onSlottedMenuOpen = () => {
70
+ this.open ||= !0;
71
+ }, this._onSlottedMenuClose = () => {
72
+ this.open &&= !1;
73
+ }, this._onSlotChange = () => {
74
+ this._syncSlottedMenu(), this._applyPanelSizing(), this._applyInertByOpen(), this.requestUpdate();
75
+ }, this._onTriggerClick = (e) => {
76
+ this.hasAttribute("as-tab") || e.stopPropagation(), !this.disabled && (this.open = !this.open);
77
+ };
78
+ }
79
+ static {
80
+ this.styles = n`
81
+ :host {
82
+ display: inline-block;
83
+ position: relative;
84
+ overflow: visible;
85
+
86
+ margin-block-start: var(--scb-dropdown-spacing-block-start, 0);
87
+ margin-block-end: var(--scb-dropdown-spacing-block-end, 0);
88
+ margin-inline-start: var(--scb-dropdown-spacing-inline-start, 0);
89
+ margin-inline-end: var(--scb-dropdown-spacing-inline-end, 0);
90
+
91
+ --scb-dropdown-transition-duration: var(--motion-duration-short, 150ms);
92
+ --scb-dropdown-transition-easing: var(
93
+ --motion-easing-emphasized-accelerate,
94
+ var(--motion-easing-emphasized, cubic-bezier(.69,.16,.2,.98))
95
+ );
96
+ }
97
+
98
+ :host([open]) {
99
+ --scb-dropdown-transition-easing: var(
100
+ --motion-easing-emphasized-decelerate,
101
+ var(--motion-easing-standard, cubic-bezier(.69,.16,.2,.98))
102
+ );
103
+ }
104
+
105
+ .panel {
106
+ position: absolute;
107
+ inset-inline-start: 0;
108
+ inset-block-start: calc(100% + var(--scb-dropdown-panel-gap, var(--spacing-3, 8px)));
109
+ z-index: var(--scb-dropdown-z-index, 1000);
110
+ pointer-events: none;
111
+ }
112
+
113
+ :host([open]) .panel {
114
+ pointer-events: auto;
115
+ }
116
+
117
+ .panel-surface {
118
+ width: 100%;
119
+ max-width: var(--scb-dropdown-panel-max-width, 600px);
120
+ background: var(--md-sys-color-surface-container-lowest);
121
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.30), 0 2px 6px 2px rgba(0, 0, 0, 0.15);
122
+ border-radius: var(--md-sys-shape-corner-extra-small);
123
+ padding: var(--spacing-4, 12px);
124
+ opacity: 0;
125
+ max-height: var(--scb-dropdown-panel-current-max-height, 0px);
126
+ transition:
127
+ max-height var(--scb-dropdown-transition-duration) var(--scb-dropdown-transition-easing),
128
+ opacity var(--scb-dropdown-transition-duration) var(--scb-dropdown-transition-easing);
129
+ overflow: hidden;
130
+ }
131
+
132
+ :host([as-tab]) {
133
+ display: inline-flex;
134
+ align-items: stretch;
135
+
136
+ --scb-dropdown-tab-font-family: var(
137
+ --md-sys-typescale-title-small-font,
138
+ var(--brand-font, Inter)
139
+ );
140
+ --scb-dropdown-tab-font-size: var(--md-sys-typescale-title-small-size, 1rem);
141
+ --scb-dropdown-tab-line-height: var(
142
+ --md-sys-typescale-title-small-line-height,
143
+ 1.5rem
144
+ );
145
+ --scb-dropdown-tab-font-weight: var(--md-sys-typescale-title-small-weight, 500);
146
+ --scb-dropdown-tab-letter-spacing: var(
147
+ --md-sys-typescale-title-small-tracking,
148
+ 0
149
+ );
150
+ --scb-dropdown-tab-icon-size: var(--icon-size-small, 20px);
151
+ }
152
+
153
+ :host([as-tab][size='small']) {
154
+ --scb-dropdown-tab-font-family: var(
155
+ --md-sys-typescale-label-small-font,
156
+ var(--brand-font, Inter)
157
+ );
158
+ --scb-dropdown-tab-font-size: var(--md-sys-typescale-label-small-size, 0.875rem);
159
+ --scb-dropdown-tab-line-height: var(
160
+ --md-sys-typescale-label-small-line-height,
161
+ 1.25rem
162
+ );
163
+ --scb-dropdown-tab-font-weight: var(--md-sys-typescale-label-small-weight, 500);
164
+ --scb-dropdown-tab-letter-spacing: var(
165
+ --md-sys-typescale-label-small-tracking,
166
+ 0
167
+ );
168
+ --scb-dropdown-tab-icon-size: var(--icon-size-small, 20px);
169
+ }
170
+
171
+ :host([as-tab][size='large']) {
172
+ --scb-dropdown-tab-font-family: var(
173
+ --md-sys-typescale-title-medium-font,
174
+ var(--brand-font, Inter)
175
+ );
176
+ --scb-dropdown-tab-font-size: var(--md-sys-typescale-title-medium-size, 1.125rem);
177
+ --scb-dropdown-tab-line-height: var(
178
+ --md-sys-typescale-title-medium-line-height,
179
+ 1.625rem
180
+ );
181
+ --scb-dropdown-tab-font-weight: var(--md-sys-typescale-title-medium-weight, 500);
182
+ --scb-dropdown-tab-letter-spacing: var(
183
+ --md-sys-typescale-title-medium-tracking,
184
+ 0
185
+ );
186
+ --scb-dropdown-tab-icon-size: var(--icon-size-medium, 24px);
187
+ }
188
+
189
+ :host([as-tab]) .tab-wrap {
190
+ position: relative;
191
+ display: inline-flex;
192
+ align-items: stretch;
193
+ }
194
+
195
+ :host([as-tab]) .tab-wrap md-focus-ring {
196
+ position: absolute;
197
+ inset-block: var(--spacing-1, 2px);
198
+ inset-inline: var(--spacing-neg-2, -4px);
199
+ pointer-events: none;
200
+ display: none;
201
+ border-radius: 5px;
202
+ }
203
+
204
+ :host([as-tab]) .tab-link {
205
+ position: relative;
206
+ display: inline-flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ padding-block: var(--spacing-4, 12px);
210
+ padding: 0;
211
+ border: none;
212
+ background: none;
213
+ text-decoration: none;
214
+ cursor: pointer;
215
+ font-family: var(--scb-dropdown-tab-font-family);
216
+ font-size: var(--scb-dropdown-tab-font-size);
217
+ line-height: var(--scb-dropdown-tab-line-height);
218
+ font-weight: var(--scb-dropdown-tab-font-weight);
219
+ letter-spacing: var(--scb-dropdown-tab-letter-spacing);
220
+ color: var(--md-sys-color-on-surface);
221
+ white-space: nowrap;
222
+ border-radius: 0;
223
+ outline: none;
224
+ gap: var(--spacing-3, 8px);
225
+ }
226
+
227
+ :host([as-tab]) .tab-link[aria-current='page'] {
228
+ color: var(--md-sys-color-primary);
229
+ }
230
+
231
+ :host([as-tab]) .tab-link::after {
232
+ content: '';
233
+ position: absolute;
234
+ left: 0;
235
+ right: 0;
236
+ bottom: 0;
237
+ height: 3px;
238
+ border-radius: 999px 999px 0 0;
239
+ background-color: transparent;
240
+ }
241
+
242
+ :host([as-tab]) .tab-link[aria-current='page']::after {
243
+ background-color: var(--md-sys-color-primary);
244
+ }
245
+
246
+ :host([as-tab]) .tab-link:focus-visible + md-focus-ring {
247
+ display: block;
248
+ }
249
+
250
+ :host([as-tab]) scb-chevron.chevron {
251
+ width: var(
252
+ --scb-dropdown-tab-icon-size,
253
+ var(--icon-size-small, 20px)
254
+ );
255
+ height: var(
256
+ --scb-dropdown-tab-icon-size,
257
+ var(--icon-size-small, 20px)
258
+ );
259
+ }
260
+
261
+
262
+ :host([open]) .panel-surface {
263
+ opacity: 1;
264
+ }
265
+
266
+ .panel-inner {
267
+ overflow: hidden;
268
+ }
269
+
270
+ :host([open][data-open-settled]) .panel-surface {
271
+ overflow: visible;
272
+ }
273
+
274
+ :host([open][data-open-settled]) .panel-inner {
275
+ overflow: visible;
276
+ }
277
+
278
+ .panel.has-menu .panel-surface {
279
+ background: transparent;
280
+ box-shadow: none;
281
+ padding: 0;
282
+ max-height: none;
283
+ opacity: 1;
284
+ transition: none;
285
+ overflow: visible;
286
+ }
287
+
288
+ .panel.has-menu .panel-inner {
289
+ overflow: visible;
290
+ }
291
+
292
+ ::slotted(scb-options-menu) {
293
+ position: static !important;
294
+ transform: none !important;
295
+ width: fit-content;
296
+ }
297
+
298
+ ::slotted(scb-menu) {
299
+ padding: 0;
300
+ background: var(--md-sys-color-surface-container-lowest);
301
+ }
302
+
303
+ ::slotted(scb-checkbox) {
304
+ display: block;
305
+ padding-right: var(--spacing-4, 12px);
306
+ }
307
+
308
+ ::slotted(scb-radio-button) {
309
+ display: block;
310
+ padding-right: var(--spacing-4, 12px);
311
+ }
312
+
313
+ @media (prefers-reduced-motion: reduce) {
314
+ .panel-surface {
315
+ transition: none;
316
+ }
317
+ }
318
+ `;
319
+ }
320
+ connectedCallback() {
321
+ super.connectedCallback(), document.addEventListener("click", this._onDocumentClickBound, !0), document.addEventListener("keydown", this._onDocumentKeydownBound);
322
+ }
323
+ disconnectedCallback() {
324
+ document.removeEventListener("click", this._onDocumentClickBound, !0), document.removeEventListener("keydown", this._onDocumentKeydownBound), this._detachSlottedMenuListeners(), this._panelResizeObserver &&= (this._panelResizeObserver.disconnect(), null), this._panelHeightSyncRaf !== null && (window.cancelAnimationFrame(this._panelHeightSyncRaf), this._panelHeightSyncRaf = null), this._openSettledTimer !== null && (window.clearTimeout(this._openSettledTimer), this._openSettledTimer = null), this._menuCloseTimer !== null && (window.clearTimeout(this._menuCloseTimer), this._menuCloseTimer = null), super.disconnectedCallback();
325
+ }
326
+ firstUpdated(e) {
327
+ super.firstUpdated(e), this._syncSlottedMenu(), this._applyPanelVars(), this._applyPanelSizing(), this._applyChevronState(), this._applyInertByOpen(), this._setupPanelResizeObserver(), this._syncPanelMaxHeightByOpen(), this._syncOverflowVisibilityByOpen();
328
+ }
329
+ updated(e) {
330
+ super.updated(e), e.has("menuGap") && this._applyPanelVars(), (e.has("width") || e.has("minWidth") || e.has("maxWidth")) && this._applyPanelSizing(), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this._applySpacing(), e.has("open") && (this.open || this._closeAllSubMenus(), this._syncSlottedMenuOpen(), this._applyChevronState(), this._applyInertByOpen(), this._syncPanelMaxHeightByOpen(), this._syncOverflowVisibilityByOpen(), this.dispatchEvent(new CustomEvent("openchange", {
331
+ bubbles: !0,
332
+ composed: !0,
333
+ detail: { open: this.open }
334
+ })));
335
+ }
336
+ _applyPanelVars() {
337
+ if (this.menuGap == null || String(this.menuGap).trim() === "") {
338
+ this.style.removeProperty("--scb-dropdown-panel-gap");
339
+ return;
340
+ }
341
+ this.style.setProperty("--scb-dropdown-panel-gap", this._mapSpacingToken(this.menuGap));
342
+ }
343
+ _applyPanelSizing() {
344
+ let e = this.renderRoot.querySelector(".panel-surface");
345
+ e && (this.width && String(this.width).trim() !== "" ? e.style.inlineSize = this.width : e.style.removeProperty("inline-size"), this.minWidth && String(this.minWidth).trim() !== "" ? e.style.minInlineSize = this.minWidth : e.style.removeProperty("min-inline-size"), this.maxWidth && String(this.maxWidth).trim() !== "" ? e.style.maxInlineSize = this.maxWidth : e.style.removeProperty("max-inline-size")), this._slottedMenuEl && (this.width && String(this.width).trim() !== "" ? this._slottedMenuEl.style.inlineSize = this.width : this._slottedMenuEl.style.removeProperty("inline-size"), this.minWidth && String(this.minWidth).trim() !== "" ? this._slottedMenuEl.style.minInlineSize = this.minWidth : this._slottedMenuEl.style.removeProperty("min-inline-size"), this.maxWidth && String(this.maxWidth).trim() !== "" ? this._slottedMenuEl.style.maxInlineSize = this.maxWidth : this._slottedMenuEl.style.removeProperty("max-inline-size")), this._schedulePanelHeightSync();
346
+ }
347
+ _setupPanelResizeObserver() {
348
+ if (this._panelResizeObserver || typeof ResizeObserver > "u") return;
349
+ let e = this._panelInnerEl;
350
+ e && (this._panelResizeObserver = new ResizeObserver(() => {
351
+ this._schedulePanelHeightSync();
352
+ }), this._panelResizeObserver.observe(e));
353
+ }
354
+ _schedulePanelHeightSync() {
355
+ this._panelHeightSyncRaf === null && (this._panelHeightSyncRaf = window.requestAnimationFrame(() => {
356
+ this._panelHeightSyncRaf = null, this._syncPanelMaxHeightByOpen();
357
+ }));
358
+ }
359
+ _syncPanelMaxHeightByOpen() {
360
+ let e = this._panelSurfaceEl;
361
+ if (!e) return;
362
+ if (this._slottedMenuEl) {
363
+ e.style.removeProperty("--scb-dropdown-panel-current-max-height");
364
+ return;
365
+ }
366
+ if (!this.open) {
367
+ e.style.setProperty("--scb-dropdown-panel-current-max-height", "0px");
368
+ return;
369
+ }
370
+ let t = this._panelInnerEl;
371
+ if (!t) return;
372
+ let n = `${Math.ceil(t.scrollHeight)}px`;
373
+ e.style.getPropertyValue("--scb-dropdown-panel-current-max-height").trim() !== n && e.style.setProperty("--scb-dropdown-panel-current-max-height", n);
374
+ }
375
+ _mapSpacingToken(e) {
376
+ let t = String(e).trim();
377
+ return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
378
+ }
379
+ _mapHostSpacingToken(e) {
380
+ if (!e) return;
381
+ let t = String(e).trim();
382
+ if (t) return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
383
+ }
384
+ _applySpacing() {
385
+ let e = this._mapHostSpacingToken(this.spacing), t = this._mapHostSpacingToken(this.spacingTop) ?? e, n = this._mapHostSpacingToken(this.spacingBottom) ?? e, r = this._mapHostSpacingToken(this.spacingLeft), i = this._mapHostSpacingToken(this.spacingRight);
386
+ t ? this.style.setProperty("--scb-dropdown-spacing-block-start", t) : this.style.removeProperty("--scb-dropdown-spacing-block-start"), n ? this.style.setProperty("--scb-dropdown-spacing-block-end", n) : this.style.removeProperty("--scb-dropdown-spacing-block-end"), r ? this.style.setProperty("--scb-dropdown-spacing-inline-start", r) : this.style.removeProperty("--scb-dropdown-spacing-inline-start"), i ? this.style.setProperty("--scb-dropdown-spacing-inline-end", i) : this.style.removeProperty("--scb-dropdown-spacing-inline-end");
387
+ }
388
+ _syncSlottedMenu() {
389
+ let e = (this._slotEl?.assignedElements({ flatten: !0 }) ?? []).find((e) => e.tagName.toLowerCase() === "scb-options-menu");
390
+ if (e === this._slottedMenuEl) {
391
+ this._syncSlottedMenuOpen();
392
+ return;
393
+ }
394
+ this._detachSlottedMenuListeners(), this._slottedMenuEl = e ?? null, this._slottedMenuEl && (this._slottedMenuEl.addEventListener("open", this._onSlottedMenuOpen), this._slottedMenuEl.addEventListener("close", this._onSlottedMenuClose), this._syncSlottedMenuOpen());
395
+ }
396
+ _detachSlottedMenuListeners() {
397
+ this._slottedMenuEl && (this._slottedMenuEl.removeEventListener("open", this._onSlottedMenuOpen), this._slottedMenuEl.removeEventListener("close", this._onSlottedMenuClose));
398
+ }
399
+ _syncSlottedMenuOpen() {
400
+ if (!this._slottedMenuEl) return;
401
+ if (this._menuCloseTimer !== null && (window.clearTimeout(this._menuCloseTimer), this._menuCloseTimer = null), this.open) {
402
+ this._slottedMenuEl.open = !0;
403
+ return;
404
+ }
405
+ let e = this._getPanelTransitionMs();
406
+ if (e <= 0) {
407
+ this._slottedMenuEl.open = !1;
408
+ return;
409
+ }
410
+ this._menuCloseTimer = window.setTimeout(() => {
411
+ this._menuCloseTimer = null, !this.open && this._slottedMenuEl && (this._slottedMenuEl.open = !1);
412
+ }, e);
413
+ }
414
+ _syncOverflowVisibilityByOpen() {
415
+ if (this._openSettledTimer !== null && (window.clearTimeout(this._openSettledTimer), this._openSettledTimer = null), this.removeAttribute("data-open-settled"), !this.open) return;
416
+ let e = this.renderRoot.querySelector(".panel-surface");
417
+ if (!e) {
418
+ this.setAttribute("data-open-settled", "");
419
+ return;
420
+ }
421
+ let t = this._getTransitionMs(e);
422
+ if (t <= 0) {
423
+ this.setAttribute("data-open-settled", "");
424
+ return;
425
+ }
426
+ this._openSettledTimer = window.setTimeout(() => {
427
+ this._openSettledTimer = null, this.open && this.setAttribute("data-open-settled", "");
428
+ }, t);
429
+ }
430
+ _getPanelTransitionMs() {
431
+ let e = this.renderRoot.querySelector(".panel-surface");
432
+ return e ? this._getTransitionMs(e) : 0;
433
+ }
434
+ _getTransitionMs(e) {
435
+ let t = getComputedStyle(e), n = t.transitionDuration.split(",").map((e) => e.trim()), r = t.transitionDelay.split(",").map((e) => e.trim()), i = (e) => {
436
+ let t = parseFloat(e);
437
+ return Number.isFinite(t) ? e.endsWith("ms") ? t : e.endsWith("s") ? t * 1e3 : t : 0;
438
+ }, a = Math.max(n.length, r.length), o = 0;
439
+ for (let e = 0; e < a; e += 1) {
440
+ let t = i(n[e] ?? n[n.length - 1] ?? "0s"), a = i(r[e] ?? r[r.length - 1] ?? "0s");
441
+ o = Math.max(o, t + a);
442
+ }
443
+ return Math.ceil(o);
444
+ }
445
+ _applyInertByOpen() {
446
+ let e = this.renderRoot.querySelector(".panel");
447
+ e && (this.open ? (e.removeAttribute("inert"), e.setAttribute("aria-hidden", "false"), this._restoreTabIndexesIfNeeded()) : (e.setAttribute("inert", ""), e.setAttribute("aria-hidden", "true"), this._removeTabIndexesIfNeeded()));
448
+ }
449
+ _supportsInert() {
450
+ return "inert" in HTMLElement.prototype;
451
+ }
452
+ _collectFocusableFromSlot() {
453
+ let e = this._slotEl;
454
+ if (!e) return [];
455
+ let t = e.assignedElements({ flatten: !0 }), n = [], r = (e) => {
456
+ e instanceof HTMLElement && e.matches("a,button,input,select,textarea,[tabindex]") && n.push(e);
457
+ };
458
+ return t.forEach((e) => {
459
+ r(e), e.querySelectorAll?.("a,button,input,select,textarea,[tabindex]").forEach((e) => r(e));
460
+ }), n;
461
+ }
462
+ _removeTabIndexesIfNeeded() {
463
+ this._supportsInert() || this._collectFocusableFromSlot().forEach((e) => {
464
+ let t = e.getAttribute("tabindex");
465
+ t !== null && e.setAttribute("data-scb-prev-tabindex", t), e.setAttribute("tabindex", "-1");
466
+ });
467
+ }
468
+ _restoreTabIndexesIfNeeded() {
469
+ this._supportsInert() || this._collectFocusableFromSlot().forEach((e) => {
470
+ let t = e.getAttribute("data-scb-prev-tabindex");
471
+ t === null ? e.removeAttribute("tabindex") : (e.setAttribute("tabindex", t), e.removeAttribute("data-scb-prev-tabindex"));
472
+ });
473
+ }
474
+ _closeAllSubMenus() {
475
+ let e = this.querySelectorAll("scb-options-sub-menu");
476
+ for (let t of e) t.removeAttribute("open");
477
+ }
478
+ focus(e) {
479
+ let t = this._triggerEl;
480
+ if (t?.focus) {
481
+ t.focus(e);
482
+ return;
483
+ }
484
+ super.focus(e);
485
+ }
486
+ _applyChevronState() {
487
+ if (this.hasAttribute("as-tab")) return;
488
+ let e = this._ensureTriggerChevronEl();
489
+ e && (e.open = this.open);
490
+ }
491
+ _ensureTriggerChevronEl() {
492
+ let e = this._triggerEl;
493
+ if (e?.tagName?.toLowerCase?.() !== "scb-button") return null;
494
+ let t = e?.shadowRoot;
495
+ if (!t) return null;
496
+ let n = t.querySelector("scb-chevron[slot=\"icon\"]");
497
+ if (n) return n;
498
+ let r = t.querySelector("md-icon[slot=\"icon\"]") ?? t.querySelector("md-icon");
499
+ if (!r) return null;
500
+ let i = document.createElement("scb-chevron");
501
+ i.setAttribute("slot", "icon"), i.setAttribute("aria-hidden", "true"), i.classList.add("chevron");
502
+ let a = getComputedStyle(r).fontSize;
503
+ return a && i.style.setProperty("--scb-chevron-size", a), r.replaceWith(i), i;
504
+ }
505
+ render() {
506
+ let e = !!this._slottedMenuEl, t = this.hasAttribute("as-tab"), n = this.dataIndex, a = this.ariaCurrent === "page" ? "page" : i;
507
+ return r`
508
+ ${t ? r`
509
+ <div class="tab-wrap">
510
+ <button
511
+ type="button"
512
+ class="tab-link"
513
+ data-scb-dropdown-trigger
514
+ ?disabled=${this.disabled}
515
+ aria-haspopup="menu"
516
+ aria-expanded=${String(this.open)}
517
+ data-index=${n ?? i}
518
+ aria-current=${a}
519
+ @click=${this._onTriggerClick}
520
+ >
521
+ ${this.label}
522
+ <scb-chevron class="chevron" .open=${this.open}></scb-chevron>
523
+ </button>
524
+ <md-focus-ring></md-focus-ring>
525
+ </div>
526
+ ` : r`
527
+ <scb-button
528
+ data-scb-dropdown-trigger
529
+ label=${this.label}
530
+ variant=${this.variant}
531
+ size=${this.size}
532
+ icon="keyboard_arrow_down"
533
+ ?trailing-icon=${!0}
534
+ ?disabled=${this.disabled}
535
+ @click=${this._onTriggerClick}
536
+ ></scb-button>
537
+ `}
538
+
539
+ <div
540
+ class="panel ${e ? "has-menu" : ""}"
541
+ ?inert=${!this.open}
542
+ aria-hidden=${this.open ? "false" : "true"}
543
+ >
544
+ <div class="panel-surface">
545
+ <div class="panel-inner">
546
+ <slot @slotchange=${this._onSlotChange}></slot>
547
+ </div>
548
+ </div>
549
+ </div>
550
+ `;
551
+ }
552
+ };
553
+ e([o({ type: String })], c.prototype, "label", void 0), e([o({ type: String })], c.prototype, "variant", void 0), e([o({
554
+ type: String,
555
+ reflect: !0
556
+ })], c.prototype, "size", void 0), e([o({
557
+ type: Boolean,
558
+ reflect: !0
559
+ })], c.prototype, "open", void 0), e([o({
560
+ type: Boolean,
561
+ reflect: !0
562
+ })], c.prototype, "disabled", void 0), e([o({
563
+ type: String,
564
+ reflect: !0
565
+ })], c.prototype, "spacing", void 0), e([o({
566
+ type: String,
567
+ attribute: "spacing-top",
568
+ reflect: !0
569
+ })], c.prototype, "spacingTop", void 0), e([o({
570
+ type: String,
571
+ attribute: "spacing-bottom",
572
+ reflect: !0
573
+ })], c.prototype, "spacingBottom", void 0), e([o({
574
+ type: String,
575
+ attribute: "spacing-left",
576
+ reflect: !0
577
+ })], c.prototype, "spacingLeft", void 0), e([o({
578
+ type: String,
579
+ attribute: "spacing-right",
580
+ reflect: !0
581
+ })], c.prototype, "spacingRight", void 0), e([o({
582
+ type: String,
583
+ attribute: "menu-gap"
584
+ })], c.prototype, "menuGap", void 0), e([o({ type: String })], c.prototype, "width", void 0), e([o({
585
+ type: String,
586
+ attribute: "min-width"
587
+ })], c.prototype, "minWidth", void 0), e([o({
588
+ type: String,
589
+ attribute: "max-width"
590
+ })], c.prototype, "maxWidth", void 0), e([o({
591
+ type: String,
592
+ attribute: "data-index"
593
+ })], c.prototype, "dataIndex", void 0), e([o({
594
+ type: String,
595
+ attribute: "aria-current"
596
+ })], c.prototype, "ariaCurrent", void 0), e([s("[data-scb-dropdown-trigger]")], c.prototype, "_triggerEl", void 0), e([s("slot")], c.prototype, "_slotEl", void 0), e([s(".panel-surface")], c.prototype, "_panelSurfaceEl", void 0), e([s(".panel-inner")], c.prototype, "_panelInnerEl", void 0), c = e([a("scb-dropdown")], c);
597
+ //#endregion
598
+ export { c as ScbDropdown };