@sbb-esta/lyne-elements 2.2.0 → 2.4.1

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 (392) hide show
  1. package/accordion.js +6 -6
  2. package/alert/alert-group.js +4 -4
  3. package/alert/alert.js +9 -9
  4. package/autocomplete/autocomplete-base-element.d.ts +1 -0
  5. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  6. package/autocomplete/autocomplete.d.ts.map +1 -1
  7. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  8. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  9. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  10. package/autocomplete-grid/autocomplete-grid-row.js +4 -4
  11. package/autocomplete-grid/autocomplete-grid.js +0 -1
  12. package/autocomplete.js +29 -29
  13. package/badge.css +31 -0
  14. package/breadcrumb/breadcrumb-group.js +4 -4
  15. package/breadcrumb/breadcrumb.js +19 -19
  16. package/button/accent-button-link.js +9 -9
  17. package/button/accent-button-static.js +6 -6
  18. package/button/accent-button.js +6 -6
  19. package/button/button-link.js +7 -7
  20. package/button/button-static.js +7 -7
  21. package/button/button.js +8 -8
  22. package/button/common/button-common.d.ts.map +1 -1
  23. package/button/common.js +1 -1
  24. package/button/mini-button-group.js +8 -8
  25. package/button/secondary-button-link.js +7 -7
  26. package/button/secondary-button-static.js +7 -7
  27. package/button/secondary-button.js +3 -3
  28. package/button/transparent-button-link.js +6 -6
  29. package/button/transparent-button-static.js +5 -5
  30. package/button/transparent-button.js +6 -6
  31. package/calendar/calendar.d.ts +55 -11
  32. package/calendar/calendar.d.ts.map +1 -1
  33. package/calendar.js +374 -224
  34. package/card/card-badge.js +9 -9
  35. package/card/card-button.js +5 -5
  36. package/card/card-link.js +7 -7
  37. package/card/card.js +1 -1
  38. package/card/common/card-action-common.d.ts.map +1 -1
  39. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  40. package/checkbox/checkbox-group.js +1 -1
  41. package/checkbox/checkbox-panel.js +16 -16
  42. package/checkbox/checkbox.js +15 -15
  43. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  44. package/checkbox/common.js +3 -3
  45. package/clock.js +8 -8
  46. package/container/container.js +4 -4
  47. package/core/base-elements.js +10 -10
  48. package/core/controllers/escapable-overlay-controller.d.ts +11 -0
  49. package/core/controllers/escapable-overlay-controller.d.ts.map +1 -0
  50. package/core/controllers.d.ts +1 -0
  51. package/core/controllers.d.ts.map +1 -1
  52. package/core/controllers.js +73 -47
  53. package/core/datetime/date-adapter.d.ts +4 -2
  54. package/core/datetime/date-adapter.d.ts.map +1 -1
  55. package/core/datetime/native-date-adapter.d.ts +1 -1
  56. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  57. package/core/datetime.js +51 -43
  58. package/core/decorators/date-converter.d.ts +8 -0
  59. package/core/decorators/date-converter.d.ts.map +1 -0
  60. package/core/decorators/date-only-type.d.ts +8 -0
  61. package/core/decorators/date-only-type.d.ts.map +1 -0
  62. package/core/decorators/get-override.d.ts.map +1 -1
  63. package/core/decorators/handle-distinct-change.d.ts.map +1 -1
  64. package/core/decorators/host-attributes.d.ts.map +1 -1
  65. package/core/decorators/slot-state.d.ts.map +1 -1
  66. package/core/decorators.d.ts +2 -0
  67. package/core/decorators.d.ts.map +1 -1
  68. package/core/decorators.js +52 -31
  69. package/core/dom/input-element.d.ts +1 -1
  70. package/core/dom/input-element.d.ts.map +1 -1
  71. package/core/dom.js +5 -5
  72. package/core/eventing/throttle.d.ts.map +1 -1
  73. package/core/eventing.js +4 -4
  74. package/core/i18n/i18n.d.ts +6 -0
  75. package/core/i18n/i18n.d.ts.map +1 -1
  76. package/core/i18n.js +106 -70
  77. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  78. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  79. package/core/mixins/form-associated-input-mixin.d.ts +25 -0
  80. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -0
  81. package/core/mixins/form-associated-mixin.d.ts +16 -0
  82. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  83. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  84. package/core/mixins/hydration-mixin.d.ts.map +1 -1
  85. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  86. package/core/mixins/negative-mixin.d.ts.map +1 -1
  87. package/core/mixins/panel-mixin.d.ts.map +1 -1
  88. package/core/mixins/required-mixin.d.ts.map +1 -1
  89. package/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  90. package/core/mixins.d.ts +1 -0
  91. package/core/mixins.d.ts.map +1 -1
  92. package/core/mixins.js +574 -295
  93. package/core/styles/badge.scss +3 -0
  94. package/core/styles/core.scss +3 -1
  95. package/core/styles/mixins/badge.scss +26 -1
  96. package/core/styles/mixins/font-face.scss +12 -12
  97. package/core/styles/mixins/link.scss +32 -8
  98. package/core/styles/standard-theme.scss +1 -0
  99. package/core/testing/mocha-extensions.d.ts.map +1 -1
  100. package/core/testing/wait-for-render.d.ts.map +1 -1
  101. package/core/testing.js +14 -14
  102. package/core.css +5 -5
  103. package/custom-elements.json +28284 -17221
  104. package/date-input/date-input.d.ts +67 -0
  105. package/date-input/date-input.d.ts.map +1 -0
  106. package/date-input.d.ts +2 -0
  107. package/date-input.d.ts.map +1 -0
  108. package/date-input.js +149 -0
  109. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  110. package/datepicker/common.js +49 -45
  111. package/datepicker/datepicker/datepicker.d.ts +16 -6
  112. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  113. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  114. package/datepicker/datepicker-toggle.js +43 -40
  115. package/datepicker/datepicker.js +94 -76
  116. package/development/alert/alert-group.js +1 -1
  117. package/development/alert/alert.js +1 -1
  118. package/development/autocomplete/autocomplete-base-element.d.ts +1 -0
  119. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  120. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  121. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
  122. package/development/autocomplete-grid/autocomplete-grid.js +1 -2
  123. package/development/autocomplete.js +10 -5
  124. package/development/breadcrumb/breadcrumb.js +5 -2
  125. package/development/button/common/button-common.d.ts.map +1 -1
  126. package/development/button/common.js +18 -14
  127. package/development/calendar/calendar.d.ts +55 -11
  128. package/development/calendar/calendar.d.ts.map +1 -1
  129. package/development/calendar.js +302 -88
  130. package/development/card/card.js +1 -1
  131. package/development/card/common/card-action-common.d.ts.map +1 -1
  132. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  133. package/development/checkbox/checkbox-group.js +2 -2
  134. package/development/checkbox/checkbox-panel.js +1 -1
  135. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  136. package/development/core/controllers/escapable-overlay-controller.d.ts +11 -0
  137. package/development/core/controllers/escapable-overlay-controller.d.ts.map +1 -0
  138. package/development/core/controllers.d.ts +1 -0
  139. package/development/core/controllers.d.ts.map +1 -1
  140. package/development/core/controllers.js +36 -1
  141. package/development/core/datetime/date-adapter.d.ts +4 -2
  142. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  143. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  144. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  145. package/development/core/datetime.js +14 -2
  146. package/development/core/decorators/date-converter.d.ts +8 -0
  147. package/development/core/decorators/date-converter.d.ts.map +1 -0
  148. package/development/core/decorators/date-only-type.d.ts +8 -0
  149. package/development/core/decorators/date-only-type.d.ts.map +1 -0
  150. package/development/core/decorators/get-override.d.ts.map +1 -1
  151. package/development/core/decorators/handle-distinct-change.d.ts.map +1 -1
  152. package/development/core/decorators/host-attributes.d.ts.map +1 -1
  153. package/development/core/decorators/slot-state.d.ts.map +1 -1
  154. package/development/core/decorators.d.ts +2 -0
  155. package/development/core/decorators.d.ts.map +1 -1
  156. package/development/core/decorators.js +23 -2
  157. package/development/core/dom/input-element.d.ts +1 -1
  158. package/development/core/dom/input-element.d.ts.map +1 -1
  159. package/development/core/dom.js +3 -3
  160. package/development/core/eventing/throttle.d.ts.map +1 -1
  161. package/development/core/i18n/i18n.d.ts +6 -0
  162. package/development/core/i18n/i18n.d.ts.map +1 -1
  163. package/development/core/i18n.js +43 -1
  164. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  165. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  166. package/development/core/mixins/form-associated-input-mixin.d.ts +25 -0
  167. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -0
  168. package/development/core/mixins/form-associated-mixin.d.ts +16 -0
  169. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  170. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  171. package/development/core/mixins/hydration-mixin.d.ts.map +1 -1
  172. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  173. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  174. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  175. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  176. package/development/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  177. package/development/core/mixins.d.ts +1 -0
  178. package/development/core/mixins.d.ts.map +1 -1
  179. package/development/core/mixins.js +460 -32
  180. package/development/core/testing/mocha-extensions.d.ts.map +1 -1
  181. package/development/core/testing/wait-for-render.d.ts.map +1 -1
  182. package/development/date-input/date-input.d.ts +67 -0
  183. package/development/date-input/date-input.d.ts.map +1 -0
  184. package/development/date-input.d.ts +2 -0
  185. package/development/date-input.d.ts.map +1 -0
  186. package/development/date-input.js +259 -0
  187. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  188. package/development/datepicker/common.js +11 -2
  189. package/development/datepicker/datepicker/datepicker.d.ts +16 -6
  190. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  191. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  192. package/development/datepicker/datepicker-toggle.js +13 -4
  193. package/development/datepicker/datepicker.js +65 -39
  194. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  195. package/development/dialog/dialog-title.js +1 -1
  196. package/development/dialog/dialog.js +3 -1
  197. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  198. package/development/expansion-panel/expansion-panel-header.js +1 -1
  199. package/development/expansion-panel/expansion-panel.js +3 -3
  200. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  201. package/development/file-selector/common.js +1 -1
  202. package/development/footer.js +1 -1
  203. package/development/form-field/form-field/form-field.d.ts +1 -1
  204. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  205. package/development/form-field/form-field.js +23 -14
  206. package/development/header/common/header-action-common.d.ts.map +1 -1
  207. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  208. package/development/icon/icon-request.d.ts.map +1 -1
  209. package/development/icon/icon-validate.d.ts.map +1 -1
  210. package/development/image.js +1 -1
  211. package/development/journey-header.js +1 -1
  212. package/development/link/common/block-link-common.d.ts.map +1 -1
  213. package/development/link/common/inline-link-common.d.ts.map +1 -1
  214. package/development/link/common/link-common.d.ts.map +1 -1
  215. package/development/link/common.js +19 -7
  216. package/development/link-list/common.js +1 -1
  217. package/development/map-container.js +1 -1
  218. package/development/menu/common/menu-action-common.d.ts +3 -0
  219. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  220. package/development/menu/common.js +35 -12
  221. package/development/menu/menu/menu.d.ts +1 -1
  222. package/development/menu/menu/menu.d.ts.map +1 -1
  223. package/development/menu/menu.js +5 -15
  224. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  225. package/development/navigation/navigation/navigation.d.ts +1 -3
  226. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  227. package/development/navigation/navigation-section.js +1 -1
  228. package/development/navigation/navigation.js +8 -21
  229. package/development/notification.js +1 -1
  230. package/development/overlay/overlay-base-element.d.ts +2 -2
  231. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  232. package/development/overlay/overlay.d.ts.map +1 -1
  233. package/development/overlay.js +7 -14
  234. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  235. package/development/popover/popover/popover.d.ts +1 -1
  236. package/development/popover/popover/popover.d.ts.map +1 -1
  237. package/development/popover/popover.js +5 -15
  238. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  239. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  240. package/development/radio-button/radio-button-group.js +2 -2
  241. package/development/radio-button/radio-button-panel.js +1 -1
  242. package/development/select/select.d.ts +6 -1
  243. package/development/select/select.d.ts.map +1 -1
  244. package/development/select.js +28 -6
  245. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  246. package/development/selection-expansion-panel.js +2 -2
  247. package/development/skiplink-list.js +1 -1
  248. package/development/slider.js +1 -1
  249. package/development/stepper/step/step.d.ts +0 -2
  250. package/development/stepper/step/step.d.ts.map +1 -1
  251. package/development/stepper/step.js +1 -16
  252. package/development/stepper/stepper/stepper.d.ts +11 -0
  253. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  254. package/development/stepper/stepper.js +30 -3
  255. package/development/tabs/tab-label.js +1 -1
  256. package/development/tag/tag/tag.d.ts +11 -0
  257. package/development/tag/tag/tag.d.ts.map +1 -1
  258. package/development/tag/tag-group/tag-group.d.ts +1 -1
  259. package/development/tag/tag-group/tag-group.d.ts.map +1 -1
  260. package/development/tag/tag-group.js +9 -3
  261. package/development/tag/tag.js +37 -10
  262. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  263. package/development/timetable-occupancy.js +1 -1
  264. package/development/toast.js +1 -1
  265. package/development/toggle/toggle/toggle.d.ts +25 -6
  266. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  267. package/development/toggle/toggle-option/toggle-option.d.ts +2 -6
  268. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  269. package/development/toggle/toggle-option.js +21 -39
  270. package/development/toggle/toggle.js +57 -39
  271. package/development/train/train-formation.js +1 -1
  272. package/development/train/train.js +1 -1
  273. package/development/visual-checkbox.js +1 -1
  274. package/dialog/dialog/dialog.d.ts.map +1 -1
  275. package/dialog/dialog-content.js +3 -3
  276. package/dialog/dialog-title.js +8 -8
  277. package/dialog/dialog.js +2 -2
  278. package/divider.js +12 -12
  279. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  280. package/expansion-panel/expansion-panel-header.js +1 -1
  281. package/expansion-panel/expansion-panel.js +2 -2
  282. package/file-selector/common/file-selector-common.d.ts.map +1 -1
  283. package/file-selector/common.js +9 -9
  284. package/file-selector/file-selector-dropzone.js +5 -5
  285. package/file-selector/file-selector.js +6 -6
  286. package/flip-card/flip-card-details.js +4 -4
  287. package/flip-card/flip-card-summary.js +9 -9
  288. package/font-characters-extension.css +3 -3
  289. package/footer.js +4 -4
  290. package/form-field/form-field/form-field.d.ts +1 -1
  291. package/form-field/form-field/form-field.d.ts.map +1 -1
  292. package/form-field/form-field.js +32 -24
  293. package/header/common/header-action-common.d.ts.map +1 -1
  294. package/header/header-button.js +5 -5
  295. package/header/header-link.js +5 -5
  296. package/icon/icon-name-mixin.d.ts.map +1 -1
  297. package/icon/icon-request.d.ts.map +1 -1
  298. package/icon/icon-validate.d.ts.map +1 -1
  299. package/icon.js +36 -36
  300. package/image.js +1 -1
  301. package/index.d.ts +2 -0
  302. package/index.js +2 -0
  303. package/journey-header.js +5 -5
  304. package/link/block-link-button.js +4 -4
  305. package/link/block-link-static.js +9 -9
  306. package/link/block-link.js +4 -4
  307. package/link/common/block-link-common.d.ts.map +1 -1
  308. package/link/common/inline-link-common.d.ts.map +1 -1
  309. package/link/common/link-common.d.ts.map +1 -1
  310. package/link/common.js +28 -28
  311. package/link/link-button.js +7 -7
  312. package/link/link-static.js +7 -7
  313. package/link/link.js +4 -4
  314. package/link-list/common.js +15 -15
  315. package/loading-indicator-circle.js +11 -11
  316. package/map-container.js +5 -5
  317. package/menu/common/menu-action-common.d.ts +3 -0
  318. package/menu/common/menu-action-common.d.ts.map +1 -1
  319. package/menu/common.js +34 -30
  320. package/menu/menu/menu.d.ts +1 -1
  321. package/menu/menu/menu.d.ts.map +1 -1
  322. package/menu/menu-button.js +8 -8
  323. package/menu/menu-link.js +6 -6
  324. package/menu/menu.js +29 -38
  325. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  326. package/navigation/navigation/navigation.d.ts +1 -3
  327. package/navigation/navigation/navigation.d.ts.map +1 -1
  328. package/navigation/navigation-button.js +4 -4
  329. package/navigation/navigation-link.js +7 -7
  330. package/navigation/navigation-list.js +4 -4
  331. package/navigation/navigation-marker.js +3 -3
  332. package/navigation/navigation-section.js +1 -1
  333. package/navigation/navigation.js +45 -54
  334. package/notification.js +18 -18
  335. package/option/optgroup.js +11 -11
  336. package/overlay/overlay-base-element.d.ts +2 -2
  337. package/overlay/overlay-base-element.d.ts.map +1 -1
  338. package/overlay/overlay.d.ts.map +1 -1
  339. package/overlay.js +57 -63
  340. package/package.json +11 -2
  341. package/paginator/common/paginator-common.d.ts.map +1 -1
  342. package/paginator/common.js +6 -6
  343. package/popover/popover/popover.d.ts +1 -1
  344. package/popover/popover/popover.d.ts.map +1 -1
  345. package/popover/popover.js +105 -114
  346. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  347. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  348. package/radio-button/radio-button-group.js +1 -1
  349. package/radio-button/radio-button-panel.js +6 -6
  350. package/screen-reader-only.js +5 -5
  351. package/select/select.d.ts +6 -1
  352. package/select/select.d.ts.map +1 -1
  353. package/select.js +52 -43
  354. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  355. package/selection-expansion-panel.js +1 -1
  356. package/skiplink-list.js +3 -3
  357. package/slider.js +13 -13
  358. package/standard-theme.css +37 -5
  359. package/status.js +3 -3
  360. package/stepper/step/step.d.ts +0 -2
  361. package/stepper/step/step.d.ts.map +1 -1
  362. package/stepper/step-label.js +4 -4
  363. package/stepper/step.js +24 -36
  364. package/stepper/stepper/stepper.d.ts +11 -0
  365. package/stepper/stepper/stepper.d.ts.map +1 -1
  366. package/stepper/stepper.js +59 -41
  367. package/table/table-wrapper.js +4 -4
  368. package/tabs/tab-group.js +24 -24
  369. package/tabs/tab-label.js +1 -1
  370. package/tabs/tab.js +4 -4
  371. package/tag/tag/tag.d.ts +11 -0
  372. package/tag/tag/tag.d.ts.map +1 -1
  373. package/tag/tag-group/tag-group.d.ts +1 -1
  374. package/tag/tag-group/tag-group.d.ts.map +1 -1
  375. package/tag/tag-group.js +34 -31
  376. package/tag/tag.js +60 -41
  377. package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  378. package/teaser-product/common.js +5 -5
  379. package/teaser-product/teaser-product-static.js +2 -2
  380. package/timetable-occupancy-icon.js +3 -3
  381. package/timetable-occupancy.js +6 -6
  382. package/toast.js +5 -5
  383. package/toggle/toggle/toggle.d.ts +25 -6
  384. package/toggle/toggle/toggle.d.ts.map +1 -1
  385. package/toggle/toggle-option/toggle-option.d.ts +2 -6
  386. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  387. package/toggle/toggle-option.js +44 -52
  388. package/toggle/toggle.js +103 -83
  389. package/toggle-check.js +5 -5
  390. package/train/train-formation.js +1 -1
  391. package/train/train.js +29 -29
  392. package/visual-checkbox.js +1 -1
@@ -0,0 +1,3 @@
1
+ @use './mixins/badge';
2
+
3
+ @include badge.badge-attribute;
@@ -75,7 +75,9 @@ sbb-form-field {
75
75
  -webkit-text-fill-color: var(--sbb-color-granite);
76
76
  }
77
77
 
78
- &[floating-label] :where(input, textarea)::placeholder {
78
+ &[floating-label] :where(input, textarea)::placeholder,
79
+ // This covers the placeholder of the sbb-date-input
80
+ &[floating-label] sbb-date-input::after {
79
81
  color: transparent;
80
82
  -webkit-text-fill-color: transparent;
81
83
 
@@ -10,5 +10,30 @@
10
10
  border-radius: var(--sbb-border-radius-infinity);
11
11
  background-color: var(--sbb-color-red);
12
12
  color: var(--sbb-color-white);
13
- min-width: fit-content;
13
+ min-width: var(--sbb-spacing-fixed-4x);
14
+ max-height: var(--sbb-spacing-fixed-4x);
15
+ }
16
+
17
+ @mixin badge-attribute {
18
+ [sbb-badge] {
19
+ --sbb-badge-position-offset: calc(var(--sbb-spacing-fixed-2x) * -1);
20
+
21
+ position: relative;
22
+
23
+ &::after {
24
+ @include badge;
25
+
26
+ content: attr(sbb-badge);
27
+ position: absolute;
28
+ inset-block-start: var(--sbb-badge-position-offset);
29
+ }
30
+
31
+ &:where([sbb-badge-position='before'])::after {
32
+ inset-inline-start: var(--sbb-badge-position-offset);
33
+ }
34
+
35
+ &:where(:not([sbb-badge-position]), [sbb-badge-position='after'])::after {
36
+ inset-inline-end: var(--sbb-badge-position-offset);
37
+ }
38
+ }
14
39
  }
@@ -2,8 +2,8 @@
2
2
  @font-face {
3
3
  font-family: SBB;
4
4
  src:
5
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff2') format('woff2'),
6
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff') format('woff');
5
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff2') format('woff2'),
6
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff') format('woff');
7
7
  font-display: fallback;
8
8
  font-weight: 400;
9
9
  }
@@ -11,8 +11,8 @@
11
11
  @font-face {
12
12
  font-family: SBB;
13
13
  src:
14
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff2') format('woff2'),
15
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff') format('woff');
14
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff2') format('woff2'),
15
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff') format('woff');
16
16
  font-display: swap;
17
17
  font-weight: 700;
18
18
  }
@@ -20,8 +20,8 @@
20
20
  @font-face {
21
21
  font-family: SBB;
22
22
  src:
23
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff2') format('woff2'),
24
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff') format('woff');
23
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff2') format('woff2'),
24
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff') format('woff');
25
25
  font-display: swap;
26
26
  font-weight: 300;
27
27
  }
@@ -31,8 +31,8 @@
31
31
  @font-face {
32
32
  font-family: SBB;
33
33
  src:
34
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Roman.woff2') format('woff2'),
35
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Roman.woff') format('woff');
34
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Roman.woff2') format('woff2'),
35
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Roman.woff') format('woff');
36
36
  font-display: fallback;
37
37
  font-weight: 400;
38
38
  }
@@ -40,8 +40,8 @@
40
40
  @font-face {
41
41
  font-family: SBB;
42
42
  src:
43
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Bold.woff2') format('woff2'),
44
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Bold.woff') format('woff');
43
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Bold.woff2') format('woff2'),
44
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Bold.woff') format('woff');
45
45
  font-display: swap;
46
46
  font-weight: 700;
47
47
  }
@@ -49,8 +49,8 @@
49
49
  @font-face {
50
50
  font-family: SBB;
51
51
  src:
52
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Light.woff2') format('woff2'),
53
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Light.woff') format('woff');
52
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Light.woff2') format('woff2'),
53
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Light.woff') format('woff');
54
54
  font-display: swap;
55
55
  font-weight: 300;
56
56
  }
@@ -1,30 +1,46 @@
1
1
  @use './typo';
2
2
  @use './a11y';
3
3
  @use '../core/mediaqueries';
4
+ @use '../core/functions';
4
5
 
5
- @mixin block-link-variables {
6
- --sbb-link-color-normal: var(--sbb-color-granite);
6
+ @mixin link-common-variables {
7
7
  --sbb-link-color-hover: var(--sbb-color-red125);
8
8
  --sbb-link-color-active: var(--sbb-color-red150);
9
+ --sbb-link-text-decoration-color: color-mix(in srgb, currentcolor 80%, white);
10
+ --sbb-link-text-decoration-color-hover: currentcolor;
11
+ }
12
+
13
+ @mixin link-common-variables--negative {
14
+ --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
15
+ --sbb-link-text-decoration-color: color-mix(in srgb, currentcolor 80%, black);
16
+ --sbb-link-text-decoration-color-hover: currentcolor;
17
+ }
18
+
19
+ @mixin block-link-variables {
20
+ @include link-common-variables;
21
+
22
+ --sbb-link-color-normal: var(--sbb-color-granite);
9
23
  }
10
24
 
11
25
  @mixin block-link-variables--negative {
26
+ @include link-common-variables--negative;
27
+
12
28
  --sbb-link-color-normal: var(--sbb-color-white);
13
29
  --sbb-link-color-hover: var(--sbb-color-cloud);
14
30
  --sbb-link-color-active: var(--sbb-color-silver);
15
- --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
16
31
  }
17
32
 
18
33
  @mixin link-variables {
34
+ @include link-common-variables;
35
+
19
36
  --sbb-link-color-normal: inherit;
20
- --sbb-link-color-hover: var(--sbb-color-red125);
21
- --sbb-link-color-active: var(--sbb-color-red150);
22
37
  }
23
38
 
24
39
  @mixin link-variables--negative {
40
+ @include link-common-variables--negative;
41
+
25
42
  --sbb-link-color-hover: var(--sbb-color-graphite);
26
43
  --sbb-link-color-active: var(--sbb-color-metal);
27
- --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
28
44
  }
29
45
 
30
46
  @mixin link-variables--button {
@@ -37,7 +53,12 @@
37
53
 
38
54
  @mixin link-base {
39
55
  color: var(--sbb-link-color-normal);
40
- text-decoration: var(--sbb-link-text-decoration, underline);
56
+
57
+ // TODO: rename --sbb-link-text-decoration variable to --sbb-link-text-decoration-line
58
+ text-decoration-line: var(--sbb-link-text-decoration, underline);
59
+ text-decoration-color: var(--sbb-link-text-decoration-color);
60
+ text-decoration-thickness: #{functions.px-to-rem-build(1)};
61
+ text-underline-offset: 0.3125em; // 5px
41
62
  user-select: none;
42
63
 
43
64
  @include a11y.if-forced-colors {
@@ -57,7 +78,10 @@
57
78
  @mixin link-hover-rules {
58
79
  @include mediaqueries.hover-mq($hover: true) {
59
80
  color: var(--sbb-link-color-hover);
60
- text-decoration: var(--sbb-link-hover-text-decoration, underline);
81
+
82
+ // TODO: rename --sbb-link-hover-text-decoration variable to --sbb-link-text-decoration-line-hover
83
+ text-decoration-line: var(--sbb-link-hover-text-decoration, underline);
84
+ text-decoration-color: var(--sbb-link-text-decoration-color-hover);
61
85
  }
62
86
  }
63
87
 
@@ -4,6 +4,7 @@
4
4
  @use './core';
5
5
  @use './typography';
6
6
  @use './a11y';
7
+ @use './badge';
7
8
  @use './animation';
8
9
  @use './image';
9
10
  @use './layout';
@@ -1 +1 @@
1
- {"version":3,"file":"mocha-extensions.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/mocha-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,UAAU,cACV,OAAO,SACX,MAAM,MACT,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KACxB,KAAK,GAAG,IAIV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,cAAe,OAAO,SAAS,MAAM,OAAO,IAAI,KAAG,IAAI,GAAG,IAI5E,CAAC"}
1
+ {"version":3,"file":"mocha-extensions.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/mocha-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,WAAW,OAAO,EAClB,OAAO,MAAM,EACb,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KACxB,KAAK,GAAG,IAIV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,WAAW,OAAO,EAAE,OAAO,MAAM,EAAE,KAAK,IAAI,KAAG,IAAI,GAAG,IAI5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-render.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/wait-for-render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YACnB,OAAO,KACf,OAAO,IAAI,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAE5D,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,CAAC,SAAS,WAAW,GAAG,gBAAgB,yCAElC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,CAAC,CAeX,CAAC"}
1
+ {"version":3,"file":"wait-for-render.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/wait-for-render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,KACf,OAAO,IAAI,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAE5D,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,CAAC,SAAS,WAAW,GAAG,gBAAgB,GAAG,WAAW,GAAG,gBAAgB,EAEzE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,CAAC,CAeX,CAAC"}
package/core/testing.js CHANGED
@@ -27,14 +27,14 @@ class p {
27
27
  return this._promiseEventMap.get(e).promise;
28
28
  {
29
29
  let r, s;
30
- const o = {
30
+ const n = {
31
31
  promise: new Promise((a, l) => {
32
32
  r = a, s = l;
33
33
  }),
34
34
  resolve: r,
35
35
  reject: s
36
36
  };
37
- return this._promiseEventMap.set(e, o), this._wrapPromiseWithTimeout(o, e, i);
37
+ return this._promiseEventMap.set(e, n), this._wrapPromiseWithTimeout(n, e, i);
38
38
  }
39
39
  }
40
40
  _wrapPromiseWithTimeout(e, i, r) {
@@ -62,11 +62,11 @@ function w(t) {
62
62
  async function f(t, e = 30, i = 2 * 1e3) {
63
63
  const r = /* @__PURE__ */ new Date();
64
64
  let s = 0;
65
- function n() {
65
+ function o() {
66
66
  return s++, t();
67
67
  }
68
- for (; !await n() && r.getTime() + i >= (/* @__PURE__ */ new Date()).getTime(); )
69
- await new Promise((o) => setTimeout(o, e));
68
+ for (; !await o() && r.getTime() + i >= (/* @__PURE__ */ new Date()).getTime(); )
69
+ await new Promise((n) => setTimeout(n, e));
70
70
  return r.getTime() + i < (/* @__PURE__ */ new Date()).getTime() ? Promise.reject(`waitForCondition timeout: ${t.toString()}, attempts: ${s}, start: ${r.getTime()}, end: ${(/* @__PURE__ */ new Date()).getTime()}`) : Promise.resolve(!0);
71
71
  }
72
72
  async function _(t, e = 2 * 1e3) {
@@ -74,25 +74,25 @@ async function _(t, e = 2 * 1e3) {
74
74
  const i = t.localName === "sbb-image" ? ((r = t.shadowRoot) == null ? void 0 : r.querySelector(".sbb-image__img")) ?? null : t;
75
75
  if (!i)
76
76
  throw new Error("img tag not found");
77
- t.complete ? await i.decode() : await new Promise((s, n) => {
78
- const o = setTimeout(() => n("image loading timeout"), e);
77
+ t.complete ? await i.decode() : await new Promise((s, o) => {
78
+ const n = setTimeout(() => o("image loading timeout"), e);
79
79
  t.addEventListener("load", () => {
80
- clearTimeout(o), i.decode().then(() => {
80
+ clearTimeout(n), i.decode().then(() => {
81
81
  m && t.localName === "sbb-image" ? setTimeout(s, 100) : s();
82
82
  });
83
83
  }), t.addEventListener("error", () => {
84
- clearTimeout(o), n("image error");
84
+ clearTimeout(n), o("image error");
85
85
  });
86
86
  });
87
87
  }
88
88
  const c = (t) => !!t.updateComplete, u = Promise.resolve(), h = async (t) => {
89
89
  var r, s;
90
90
  const e = await t;
91
- (s = (r = e.parentElement ?? e).querySelectorAll) == null || s.call(r, "[defer-hydration]").forEach((n) => n.removeAttribute("defer-hydration"));
92
- const i = [e, ...e.querySelectorAll("*")].filter(c).map((n) => [
93
- n.updateComplete,
94
- n.hydrationComplete ?? u,
95
- h(n.renderRoot)
91
+ (s = (r = e.parentElement ?? e).querySelectorAll) == null || s.call(r, "[defer-hydration]").forEach((o) => o.removeAttribute("defer-hydration"));
92
+ const i = [e, ...e.querySelectorAll("*")].filter(c).map((o) => [
93
+ o.updateComplete,
94
+ o.hydrationComplete ?? u,
95
+ h(o.renderRoot)
96
96
  ]).flat(1 / 0);
97
97
  return await Promise.all(i), e;
98
98
  };
package/core.css CHANGED
@@ -1128,19 +1128,19 @@
1128
1128
 
1129
1129
  @font-face {
1130
1130
  font-family: SBB;
1131
- src: url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff") format("woff");
1131
+ src: url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff") format("woff");
1132
1132
  font-display: fallback;
1133
1133
  font-weight: 400;
1134
1134
  }
1135
1135
  @font-face {
1136
1136
  font-family: SBB;
1137
- src: url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff") format("woff");
1137
+ src: url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff") format("woff");
1138
1138
  font-display: swap;
1139
1139
  font-weight: 700;
1140
1140
  }
1141
1141
  @font-face {
1142
1142
  font-family: SBB;
1143
- src: url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff") format("woff");
1143
+ src: url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff") format("woff");
1144
1144
  font-display: swap;
1145
1145
  font-weight: 300;
1146
1146
  }
@@ -1163,12 +1163,12 @@ sbb-form-field :where(input, textarea):disabled::placeholder {
1163
1163
  color: var(--sbb-color-granite);
1164
1164
  -webkit-text-fill-color: var(--sbb-color-granite);
1165
1165
  }
1166
- sbb-form-field[floating-label] :where(input, textarea)::placeholder {
1166
+ sbb-form-field[floating-label] :where(input, textarea)::placeholder, sbb-form-field[floating-label] sbb-date-input::after {
1167
1167
  color: transparent;
1168
1168
  -webkit-text-fill-color: transparent;
1169
1169
  }
1170
1170
  @media (forced-colors: active) {
1171
- sbb-form-field[floating-label] :where(input, textarea)::placeholder {
1171
+ sbb-form-field[floating-label] :where(input, textarea)::placeholder, sbb-form-field[floating-label] sbb-date-input::after {
1172
1172
  color: Canvas;
1173
1173
  -webkit-text-fill-color: Canvas;
1174
1174
  }