@roadtrip/components 3.26.0 → 3.28.0

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 (102) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/road-badge_14.cjs.entry.js +30 -10
  3. package/dist/cjs/road-badge_14.cjs.entry.js.map +1 -1
  4. package/dist/cjs/road-checkbox.cjs.entry.js +3 -2
  5. package/dist/cjs/road-checkbox.cjs.entry.js.map +1 -1
  6. package/dist/cjs/road-navbar-item.cjs.entry.js +12 -1
  7. package/dist/cjs/road-navbar-item.cjs.entry.js.map +1 -1
  8. package/dist/cjs/road-progress-indicator-horizontal.cjs.entry.js +1 -1
  9. package/dist/cjs/road-progress-indicator-horizontal.cjs.entry.js.map +1 -1
  10. package/dist/cjs/road-radio.cjs.entry.js +3 -2
  11. package/dist/cjs/road-radio.cjs.entry.js.map +1 -1
  12. package/dist/cjs/road-select-filter.cjs.entry.js +5 -0
  13. package/dist/cjs/road-select-filter.cjs.entry.js.map +1 -1
  14. package/dist/cjs/road-tab-button.cjs.entry.js +6 -4
  15. package/dist/cjs/road-tab-button.cjs.entry.js.map +1 -1
  16. package/dist/cjs/road-textarea.cjs.entry.js +1 -1
  17. package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
  18. package/dist/cjs/roadtrip.cjs.js +1 -1
  19. package/dist/collection/components/checkbox/checkbox.css +7 -2
  20. package/dist/collection/components/checkbox/checkbox.js +19 -1
  21. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  22. package/dist/collection/components/checkbox/checkbox.stories.js +5 -0
  23. package/dist/collection/components/input/input.js +1 -1
  24. package/dist/collection/components/input/input.js.map +1 -1
  25. package/dist/collection/components/input-group/input-group.css +58 -12
  26. package/dist/collection/components/input-group/input-group.js +55 -8
  27. package/dist/collection/components/input-group/input-group.js.map +1 -1
  28. package/dist/collection/components/input-group/input-group.stories.js +24 -14
  29. package/dist/collection/components/navbar-item/navbar-item.js +15 -1
  30. package/dist/collection/components/navbar-item/navbar-item.js.map +1 -1
  31. package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.css +24 -5
  32. package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.js +6 -6
  33. package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.js.map +1 -1
  34. package/dist/collection/components/progress-indicator-horizontal/progress-indicator-horizontal.stories.js +3 -3
  35. package/dist/collection/components/radio/radio.css +5 -0
  36. package/dist/collection/components/radio/radio.js +19 -1
  37. package/dist/collection/components/radio/radio.js.map +1 -1
  38. package/dist/collection/components/radio/radio.stories.js +5 -0
  39. package/dist/collection/components/select-filter/select-filter.js +5 -0
  40. package/dist/collection/components/select-filter/select-filter.js.map +1 -1
  41. package/dist/collection/components/tab-button/tab-button.css +16 -0
  42. package/dist/collection/components/tab-button/tab-button.js +23 -3
  43. package/dist/collection/components/tab-button/tab-button.js.map +1 -1
  44. package/dist/collection/components/textarea/textarea.css +2 -0
  45. package/dist/esm/loader.js +1 -1
  46. package/dist/esm/road-badge_14.entry.js +30 -10
  47. package/dist/esm/road-badge_14.entry.js.map +1 -1
  48. package/dist/esm/road-checkbox.entry.js +3 -2
  49. package/dist/esm/road-checkbox.entry.js.map +1 -1
  50. package/dist/esm/road-navbar-item.entry.js +12 -1
  51. package/dist/esm/road-navbar-item.entry.js.map +1 -1
  52. package/dist/esm/road-progress-indicator-horizontal.entry.js +1 -1
  53. package/dist/esm/road-progress-indicator-horizontal.entry.js.map +1 -1
  54. package/dist/esm/road-radio.entry.js +3 -2
  55. package/dist/esm/road-radio.entry.js.map +1 -1
  56. package/dist/esm/road-select-filter.entry.js +5 -0
  57. package/dist/esm/road-select-filter.entry.js.map +1 -1
  58. package/dist/esm/road-tab-button.entry.js +6 -4
  59. package/dist/esm/road-tab-button.entry.js.map +1 -1
  60. package/dist/esm/road-textarea.entry.js +1 -1
  61. package/dist/esm/road-textarea.entry.js.map +1 -1
  62. package/dist/esm/roadtrip.js +1 -1
  63. package/dist/html.html-data.json +27 -1
  64. package/dist/roadtrip/p-40ee0f8a.entry.js +2 -0
  65. package/dist/roadtrip/p-40ee0f8a.entry.js.map +1 -0
  66. package/dist/roadtrip/{p-0dbf612d.entry.js → p-49025654.entry.js} +2 -2
  67. package/dist/roadtrip/p-49025654.entry.js.map +1 -0
  68. package/dist/roadtrip/p-708f262a.entry.js +2 -0
  69. package/dist/roadtrip/p-708f262a.entry.js.map +1 -0
  70. package/dist/roadtrip/{p-9ff79904.entry.js → p-73a21ee9.entry.js} +2 -2
  71. package/dist/roadtrip/p-73a21ee9.entry.js.map +1 -0
  72. package/dist/roadtrip/p-ac7b2425.entry.js +2 -0
  73. package/dist/roadtrip/p-ac7b2425.entry.js.map +1 -0
  74. package/dist/roadtrip/p-b2c38586.entry.js +2 -0
  75. package/dist/roadtrip/p-b2c38586.entry.js.map +1 -0
  76. package/dist/roadtrip/{p-21b1569a.entry.js → p-c09f4088.entry.js} +2 -2
  77. package/dist/roadtrip/{p-21b1569a.entry.js.map → p-c09f4088.entry.js.map} +1 -1
  78. package/dist/roadtrip/p-f09d5d41.entry.js +2 -0
  79. package/dist/roadtrip/p-f09d5d41.entry.js.map +1 -0
  80. package/dist/roadtrip/roadtrip.esm.js +1 -1
  81. package/dist/roadtrip/roadtrip.esm.js.map +1 -1
  82. package/dist/types/components/checkbox/checkbox.d.ts +4 -0
  83. package/dist/types/components/input-group/input-group.d.ts +7 -1
  84. package/dist/types/components/navbar-item/navbar-item.d.ts +4 -0
  85. package/dist/types/components/progress-indicator-horizontal/progress-indicator-horizontal.d.ts +3 -3
  86. package/dist/types/components/radio/radio.d.ts +4 -0
  87. package/dist/types/components/tab-button/tab-button.d.ts +4 -0
  88. package/dist/types/components.d.ts +38 -6
  89. package/hydrate/index.js +68 -23
  90. package/package.json +1 -1
  91. package/dist/roadtrip/p-0dbf612d.entry.js.map +0 -1
  92. package/dist/roadtrip/p-254ba3c4.entry.js +0 -2
  93. package/dist/roadtrip/p-254ba3c4.entry.js.map +0 -1
  94. package/dist/roadtrip/p-48fad2ec.entry.js +0 -2
  95. package/dist/roadtrip/p-48fad2ec.entry.js.map +0 -1
  96. package/dist/roadtrip/p-76ccfc61.entry.js +0 -2
  97. package/dist/roadtrip/p-76ccfc61.entry.js.map +0 -1
  98. package/dist/roadtrip/p-98cd42c5.entry.js +0 -2
  99. package/dist/roadtrip/p-98cd42c5.entry.js.map +0 -1
  100. package/dist/roadtrip/p-9ff79904.entry.js.map +0 -1
  101. package/dist/roadtrip/p-e9f24444.entry.js +0 -2
  102. package/dist/roadtrip/p-e9f24444.entry.js.map +0 -1
@@ -50,6 +50,10 @@ export declare class NavbarItem {
50
50
  /** @internal */
51
51
  roadNavbarItemClick: EventEmitter;
52
52
  onNavbarChanged(ev: CustomEvent): void;
53
+ /**
54
+ * Watch for changes to `selected` and move focus to this element if `selected` is true.
55
+ */
56
+ handleSelectedChange(newValue: boolean): void;
53
57
  private selectTab;
54
58
  private onKeyUp;
55
59
  private onClick;
@@ -21,15 +21,15 @@ export declare class Stepper {
21
21
  /**
22
22
  * The color of the first step.
23
23
  */
24
- stateFirstStep?: 'default' | 'current' | 'comleted';
24
+ stateFirstStep?: 'default' | 'current' | 'comleted' | 'in-progress';
25
25
  /**
26
26
  * The color of the second step.
27
27
  */
28
- stateSecondStep?: 'default' | 'current' | 'comleted';
28
+ stateSecondStep?: 'default' | 'current' | 'comleted' | 'in-progress';
29
29
  /**
30
30
  * The color of the third step.
31
31
  */
32
- stateThirdStep?: 'default' | 'current' | 'comleted';
32
+ stateThirdStep?: 'default' | 'current' | 'comleted' | 'in-progress';
33
33
  /**
34
34
  * The url of the first step.
35
35
  */
@@ -31,6 +31,10 @@ export declare class Radio {
31
31
  * Label for the field
32
32
  */
33
33
  label: string;
34
+ /**
35
+ * Secondary Label for the field
36
+ */
37
+ secondaryLabel?: string;
34
38
  /**
35
39
  * If `true`, the label and the radio are inverse and spaced
36
40
  */
@@ -32,6 +32,10 @@ export declare class TabButton {
32
32
  * The selected tab component
33
33
  */
34
34
  selected: boolean;
35
+ /**
36
+ * The disabled tab
37
+ */
38
+ disabled: boolean;
35
39
  /**
36
40
  * A tab id must be provided for each `road-tab`. It's used internally to reference
37
41
  */
@@ -343,6 +343,10 @@ export namespace Components {
343
343
  * If `true`, the user must fill in a value before submitting a form.
344
344
  */
345
345
  "required": boolean;
346
+ /**
347
+ * Secondary Label for the field
348
+ */
349
+ "secondaryLabel"?: string;
346
350
  /**
347
351
  * Value the form will get
348
352
  */
@@ -778,6 +782,10 @@ export namespace Components {
778
782
  "value"?: string | number | null;
779
783
  }
780
784
  interface RoadInputGroup {
785
+ /**
786
+ * Disables the entire input group and propagates the state to children.
787
+ */
788
+ "disabled": boolean;
781
789
  }
782
790
  interface RoadItem {
783
791
  /**
@@ -1027,15 +1035,15 @@ export namespace Components {
1027
1035
  /**
1028
1036
  * The color of the first step.
1029
1037
  */
1030
- "stateFirstStep"?: 'default' | 'current' | 'comleted';
1038
+ "stateFirstStep"?: 'default' | 'current' | 'comleted' | 'in-progress';
1031
1039
  /**
1032
1040
  * The color of the second step.
1033
1041
  */
1034
- "stateSecondStep"?: 'default' | 'current' | 'comleted';
1042
+ "stateSecondStep"?: 'default' | 'current' | 'comleted' | 'in-progress';
1035
1043
  /**
1036
1044
  * The color of the third step.
1037
1045
  */
1038
- "stateThirdStep"?: 'default' | 'current' | 'comleted';
1046
+ "stateThirdStep"?: 'default' | 'current' | 'comleted' | 'in-progress';
1039
1047
  /**
1040
1048
  * The url of the first step.
1041
1049
  */
@@ -1094,6 +1102,10 @@ export namespace Components {
1094
1102
  * If `true`, the user must fill in a value before submitting a form.
1095
1103
  */
1096
1104
  "required": boolean;
1105
+ /**
1106
+ * Secondary Label for the field
1107
+ */
1108
+ "secondaryLabel"?: string;
1097
1109
  /**
1098
1110
  * Value the form will get
1099
1111
  */
@@ -1402,6 +1414,10 @@ export namespace Components {
1402
1414
  "selectedTab"?: string;
1403
1415
  }
1404
1416
  interface RoadTabButton {
1417
+ /**
1418
+ * The disabled tab
1419
+ */
1420
+ "disabled": boolean;
1405
1421
  /**
1406
1422
  * This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want).
1407
1423
  */
@@ -3283,6 +3299,10 @@ declare namespace LocalJSX {
3283
3299
  * If `true`, the user must fill in a value before submitting a form.
3284
3300
  */
3285
3301
  "required"?: boolean;
3302
+ /**
3303
+ * Secondary Label for the field
3304
+ */
3305
+ "secondaryLabel"?: string;
3286
3306
  /**
3287
3307
  * Value the form will get
3288
3308
  */
@@ -3747,6 +3767,10 @@ declare namespace LocalJSX {
3747
3767
  "value"?: string | number | null;
3748
3768
  }
3749
3769
  interface RoadInputGroup {
3770
+ /**
3771
+ * Disables the entire input group and propagates the state to children.
3772
+ */
3773
+ "disabled"?: boolean;
3750
3774
  }
3751
3775
  interface RoadItem {
3752
3776
  /**
@@ -4023,15 +4047,15 @@ declare namespace LocalJSX {
4023
4047
  /**
4024
4048
  * The color of the first step.
4025
4049
  */
4026
- "stateFirstStep"?: 'default' | 'current' | 'comleted';
4050
+ "stateFirstStep"?: 'default' | 'current' | 'comleted' | 'in-progress';
4027
4051
  /**
4028
4052
  * The color of the second step.
4029
4053
  */
4030
- "stateSecondStep"?: 'default' | 'current' | 'comleted';
4054
+ "stateSecondStep"?: 'default' | 'current' | 'comleted' | 'in-progress';
4031
4055
  /**
4032
4056
  * The color of the third step.
4033
4057
  */
4034
- "stateThirdStep"?: 'default' | 'current' | 'comleted';
4058
+ "stateThirdStep"?: 'default' | 'current' | 'comleted' | 'in-progress';
4035
4059
  /**
4036
4060
  * The url of the first step.
4037
4061
  */
@@ -4098,6 +4122,10 @@ declare namespace LocalJSX {
4098
4122
  * If `true`, the user must fill in a value before submitting a form.
4099
4123
  */
4100
4124
  "required"?: boolean;
4125
+ /**
4126
+ * Secondary Label for the field
4127
+ */
4128
+ "secondaryLabel"?: string;
4101
4129
  /**
4102
4130
  * Value the form will get
4103
4131
  */
@@ -4444,6 +4472,10 @@ declare namespace LocalJSX {
4444
4472
  "selectedTab"?: string;
4445
4473
  }
4446
4474
  interface RoadTabButton {
4475
+ /**
4476
+ * The disabled tab
4477
+ */
4478
+ "disabled"?: boolean;
4447
4479
  /**
4448
4480
  * This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want).
4449
4481
  */
package/hydrate/index.js CHANGED
@@ -5830,7 +5830,7 @@ const navigationAddLess = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria
5830
5830
  const navigationAddMoreSolid = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria-hidden="true" ><path d="M49.87 30.19H34.19V14.51h-4v15.68H14.51v4h15.68v15.68h4V34.19h15.68v-4Z"/></svg>';
5831
5831
  const navigationChevron = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria-hidden="true" ><path d="M28.121 46.121 26 44l11.44-11.44L26 21.121 28.121 19l13.561 13.56Z"/></svg>';
5832
5832
  const navigationClose = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria-hidden="true" ><path d="m19 20.767 1.768-1.768 25 25L44 45.767z"/><path d="m19 44 25-25 1.768 1.768-25 25z"/></svg>';
5833
- const starHalfColor = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria-hidden="true" ><path d="M32 47.425V6.5l7.514 17.755 19.17 1.637L44.152 38.61l4.384 18.89Z"/><path d="M32 47.425 15.461 57.5l4.387-18.89L5.316 25.892l19.165-1.637L32 6.5Z" fill="var(--warning, rgb(252, 183, 49))"/></svg>';
5833
+ const starHalfColor = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria-hidden="true" ><path d="M32 47.425V6.5l7.514 17.755 19.17 1.637L44.152 38.61l4.384 18.89Z"/><path d="M32 47.425 15.461 57.5l4.387-18.89L5.316 25.892l19.165-1.637L32 6.5Z" fill="var(--road-warning-icon, rgb(234, 157, 19))"/></svg>';
5834
5834
  const star = 'data:image/svg+xml;utf8,<svg viewBox="0 0 64 64" aria-hidden="true" ><path d="M32 47.425V6.5l7.514 17.755 19.17 1.637L44.152 38.61l4.384 18.89Zm0 0L15.461 57.5l4.387-18.89L5.316 25.892l19.165-1.637L32 6.5Z"/></svg>';
5835
5835
 
5836
5836
  // @ts-ignore
@@ -13270,7 +13270,7 @@ class CarouselItem {
13270
13270
  }; }
13271
13271
  }
13272
13272
 
13273
- const checkboxCss = ".sc-road-checkbox-h{position:relative;display:block;margin-bottom:1.5rem;font-family:var(--road-font, sans-serif);font-size:var(--road-font-size-16);line-height:1.5;color:var(--road-on-surface)}.form-check-input.sc-road-checkbox{position:absolute;z-index:-1;opacity:0}.form-check-label.sc-road-checkbox{position:relative;display:inline-flex;margin:0;cursor:pointer;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.form-check-label.sc-road-checkbox::before{box-sizing:border-box;display:block;flex-shrink:0;width:1.25rem;height:1.25rem;margin:0 0.75rem 0 0;content:\"\";background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;transition:border 0.2s ease-in-out, background 0.2s ease-in-out}.form-check-icon.sc-road-checkbox{position:absolute;top:0;left:0;box-sizing:border-box;display:block;width:1.25rem;height:1.25rem;color:var(--road-primary-contrast);opacity:0;transition:opacity 0.2s ease-in-out}@media (hover: hover){.form-check-input.sc-road-checkbox:not(:disabled)~.form-check-label.sc-road-checkbox:hover::before{border-color:var(--road-input-surface-variant)}.form-check-input.sc-road-checkbox:not(:disabled):checked~.form-check-label.sc-road-checkbox:hover::before,.form-check-input.sc-road-checkbox:not(:disabled):indeterminate~.form-check-label.sc-road-checkbox:hover::before{background:var(--road-input-surface-variant)}}.form-check-input.sc-road-checkbox:checked~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox,.form-check-input.sc-road-checkbox:indeterminate~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox{opacity:1}.form-check-input.sc-road-checkbox:checked~.form-check-label.sc-road-checkbox::before,.form-check-input.sc-road-checkbox:indeterminate~.form-check-label.sc-road-checkbox::before{background:var(--road-input-surface);border-color:var(--road-input-surface)}.form-check-input.focus-visible.sc-road-checkbox~.form-check-label.sc-road-checkbox::before{box-shadow:0 0 0 0.125rem var(--road-grey-000), 0 0 0 0.1875rem var(--road-primary-700)}.form-check-input.focus-visible.sc-road-checkbox:checked~.form-check-label.sc-road-checkbox::before,.form-check-input.focus-visible.sc-road-checkbox:indeterminate~.form-check-label.sc-road-checkbox::before{background:var(--road-input-surface-variant);border-color:var(--road-input-surface-variant)}.form-check-input.sc-road-checkbox:disabled~.form-check-label.sc-road-checkbox,.form-check-input[readonly].sc-road-checkbox~.form-check-label.sc-road-checkbox{cursor:not-allowed}.form-check-input.sc-road-checkbox:disabled~.form-check-label.sc-road-checkbox::before,.form-check-input[readonly].sc-road-checkbox~.form-check-label.sc-road-checkbox::before{background:var(--road-surface-disabled);border:none}.form-check-input.sc-road-checkbox:disabled~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox,.form-check-input[readonly].sc-road-checkbox~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox{fill:var(--road-on-surface-disabled)}.invalid-feedback.sc-road-checkbox{display:none;flex:0 0 100%;width:100%;margin-top:0.5rem;font-size:var(--road-font-size-12);color:var(--road-danger-default)}.form-check-input.is-invalid.sc-road-checkbox~.form-check-label.sc-road-checkbox::before,.was-validated.sc-road-checkbox .form-check-input.sc-road-checkbox:invalid~.form-check-label.sc-road-checkbox::before{border-color:var(--road-danger-outline)}.form-check-input.is-invalid.sc-road-checkbox~.invalid-feedback.sc-road-checkbox,.was-validated.sc-road-checkbox .form-check-input.sc-road-checkbox:invalid~.invalid-feedback.sc-road-checkbox{display:block}.form-checkbox-inverse.sc-road-checkbox{display:flex;flex-direction:row-reverse;justify-content:space-between}.form-checkbox-inverse.sc-road-checkbox::before{margin:0 0 0 1rem}.form-checkbox-inverse.sc-road-checkbox .form-check-icon.sc-road-checkbox{right:0;left:auto}.helper.sc-road-checkbox{margin-top:0.5rem;font-size:0.75rem;color:var(--road-grey-500)}";
13273
+ const checkboxCss = ".sc-road-checkbox-h{position:relative;display:block;margin-bottom:1.5rem;font-family:var(--road-font, sans-serif);font-size:var(--road-font-size-16);line-height:1.5;color:var(--road-on-surface)}.form-check-input.sc-road-checkbox{position:absolute;z-index:-1;opacity:0}.form-check-label.sc-road-checkbox{position:relative;display:inline-flex;margin:0;cursor:pointer;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.form-check-label.sc-road-checkbox::before{box-sizing:border-box;display:block;flex-shrink:0;width:1.25rem;height:1.25rem;margin:0 0.75rem 0 0;content:\"\";background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;transition:border 0.2s ease-in-out, background 0.2s ease-in-out}.form-check-label-span.sc-road-checkbox{color:var(--road-on-surface-weak)}.form-check-icon.sc-road-checkbox{position:absolute;top:0;left:0;box-sizing:border-box;display:block;width:1.25rem;height:1.25rem;color:var(--road-primary-contrast);opacity:0;transition:opacity 0.2s ease-in-out}@media (hover: hover){.form-check-input.sc-road-checkbox:not(:disabled)~.form-check-label.sc-road-checkbox:hover::before{border-color:var(--road-input-surface-variant)}.form-check-input.sc-road-checkbox:not(:disabled):checked~.form-check-label.sc-road-checkbox:hover::before,.form-check-input.sc-road-checkbox:not(:disabled):indeterminate~.form-check-label.sc-road-checkbox:hover::before{background:var(--road-input-surface-variant)}}.form-check-input.sc-road-checkbox:checked~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox,.form-check-input.sc-road-checkbox:indeterminate~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox{opacity:1}.form-check-input.sc-road-checkbox:checked~.form-check-label.sc-road-checkbox::before,.form-check-input.sc-road-checkbox:indeterminate~.form-check-label.sc-road-checkbox::before{background:var(--road-input-surface);border-color:var(--road-input-surface)}.form-check-input.focus-visible.sc-road-checkbox~.form-check-label.sc-road-checkbox::before{box-shadow:0 0 0 0.125rem var(--road-grey-000), 0 0 0 0.1875rem var(--road-primary-700)}.form-check-input.focus-visible.sc-road-checkbox:checked~.form-check-label.sc-road-checkbox::before,.form-check-input.focus-visible.sc-road-checkbox:indeterminate~.form-check-label.sc-road-checkbox::before{background:var(--road-input-surface-variant);border-color:var(--road-input-surface-variant)}.form-check-input.sc-road-checkbox:disabled~.form-check-label.sc-road-checkbox,.form-check-input[readonly].sc-road-checkbox~.form-check-label.sc-road-checkbox{cursor:not-allowed}.form-check-input.sc-road-checkbox:disabled~.form-check-label.sc-road-checkbox::before,.form-check-input[readonly].sc-road-checkbox~.form-check-label.sc-road-checkbox::before{background:var(--road-surface-disabled);border:none}.form-check-input.sc-road-checkbox:disabled~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox,.form-check-input[readonly].sc-road-checkbox~.form-check-label.sc-road-checkbox .form-check-icon.sc-road-checkbox{fill:var(--road-on-surface-disabled)}.invalid-feedback.sc-road-checkbox{display:none;flex:0 0 100%;width:100%;margin-top:0.5rem;font-size:var(--road-font-size-12);color:var(--road-danger-default)}.form-check-input.is-invalid.sc-road-checkbox~.form-check-label.sc-road-checkbox::before,.was-validated.sc-road-checkbox .form-check-input.sc-road-checkbox:invalid~.form-check-label.sc-road-checkbox::before{border-color:var(--road-danger-outline)}.form-check-input.is-invalid.sc-road-checkbox~.invalid-feedback.sc-road-checkbox,.was-validated.sc-road-checkbox .form-check-input.sc-road-checkbox:invalid~.invalid-feedback.sc-road-checkbox{display:block}.form-checkbox-inverse.sc-road-checkbox{display:flex;flex-direction:row-reverse;justify-content:space-between}.form-checkbox-inverse.sc-road-checkbox::before{margin:0 0 0 1rem}.form-checkbox-inverse.sc-road-checkbox .form-check-icon.sc-road-checkbox{right:0;left:auto}.helper.sc-road-checkbox{margin-top:0.5rem;margin-left:2rem;font-size:var(--road-font-size-14);color:var(--road-on-surface-weak)}";
13274
13274
 
13275
13275
  /**
13276
13276
  * @slot - Adding additional elements next to the label (e.g. number of items in filters).
@@ -13304,6 +13304,7 @@ class Checkbox {
13304
13304
  this.disabled = false;
13305
13305
  this.value = 'on';
13306
13306
  this.label = `${this.checkboxId}-label`;
13307
+ this.secondaryLabel = undefined;
13307
13308
  this.inverse = false;
13308
13309
  this.error = undefined;
13309
13310
  this.helper = undefined;
@@ -13322,7 +13323,7 @@ class Checkbox {
13322
13323
  const labelId = this.checkboxId + '-label';
13323
13324
  const inverseClass = this.inverse && 'form-checkbox-inverse';
13324
13325
  const isInvalidClass = this.error !== undefined && !this.checked && this.error !== '' ? 'is-invalid' : '';
13325
- return (hAsync(Host, null, hAsync("input", { class: `form-check-input ${isInvalidClass}`, type: "checkbox", id: this.checkboxId, name: this.name, required: this.required, disabled: this.disabled, indeterminate: this.indeterminate, checked: this.checked, value: this.value, "aria-checked": `${this.checked}`, "aria-disabled": this.disabled ? 'true' : null, "aria-labelledby": labelId, onClick: this.onClick, onFocus: this.onFocus, onBlur: this.onBlur }), hAsync("label", { class: `form-check-label ${inverseClass}`, id: labelId, htmlFor: this.checkboxId }, hAsync("div", null, this.label, hAsync("slot", null)), this.checked && !this.indeterminate && hAsync("road-icon", { class: "form-check-icon", icon: checkWide }), this.indeterminate && hAsync("road-icon", { class: "form-check-icon", icon: navigationAddLess })), this.error && this.error !== '' && hAsync("p", { class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && hAsync("p", { class: "helper" }, this.helper)));
13326
+ return (hAsync(Host, null, hAsync("input", { class: `form-check-input ${isInvalidClass}`, type: "checkbox", id: this.checkboxId, name: this.name, required: this.required, disabled: this.disabled, indeterminate: this.indeterminate, checked: this.checked, value: this.value, "aria-checked": `${this.checked}`, "aria-disabled": this.disabled ? 'true' : null, "aria-labelledby": labelId, onClick: this.onClick, onFocus: this.onFocus, onBlur: this.onBlur }), hAsync("label", { class: `form-check-label ${inverseClass}`, id: labelId, htmlFor: this.checkboxId }, hAsync("div", null, this.label, " ", hAsync("span", { class: "form-check-label-span" }, this.secondaryLabel), hAsync("slot", null)), this.checked && !this.indeterminate && hAsync("road-icon", { class: "form-check-icon", icon: checkWide }), this.indeterminate && hAsync("road-icon", { class: "form-check-icon", icon: navigationAddLess })), this.error && this.error !== '' && hAsync("p", { class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && hAsync("p", { class: "helper" }, this.helper)));
13326
13327
  }
13327
13328
  static get watchers() { return {
13328
13329
  "checked": ["checkedChanged"]
@@ -13340,6 +13341,7 @@ class Checkbox {
13340
13341
  "disabled": [4],
13341
13342
  "value": [1],
13342
13343
  "label": [1],
13344
+ "secondaryLabel": [1, "secondary-label"],
13343
13345
  "inverse": [4],
13344
13346
  "error": [1],
13345
13347
  "helper": [1]
@@ -31801,7 +31803,7 @@ class Input {
31801
31803
  render() {
31802
31804
  const value = this.getValue();
31803
31805
  const labelId = this.inputId + '-label';
31804
- const hasValueClass = this.value !== '' ? 'has-value' : '';
31806
+ const hasValueClass = this.value !== '' && this.value !== null ? 'has-value' : '';
31805
31807
  const lessLabelClass = this.label !== '' ? '' : 'less-label';
31806
31808
  const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';
31807
31809
  return (hAsync(Host, { "aria-disabled": this.disabled ? 'true' : null, class: this.sizes && `input-${this.sizes}`, value: value }, hAsync("input", { class: `form-control ${hasValueClass} ${isInvalidClass} ${lessLabelClass}`, id: this.inputId, "aria-disabled": this.disabled ? 'true' : null, "aria-labelledby": labelId, disabled: this.disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, enterKeyHint: this.enterkeyhint, autoFocus: this.autofocus, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyUp: (event) => this.enforceMinMax(event.target), "data-cy": 'road-input' }), hAsync("label", { class: "form-label", id: labelId, htmlFor: this.inputId }, this.label), this.error && this.error !== '' && hAsync("p", { class: "invalid-feedback" }, hAsync("road-icon", { slot: "start", name: "alert-error-solid", "aria-hidden": "true", size: "sm" }), this.error), this.helper && this.helper !== '' && hAsync("p", { class: "helper" }, this.helper), this.type && this.type == 'password' && hAsync("slot", { name: "checklistPassword" })));
@@ -31850,7 +31852,7 @@ class Input {
31850
31852
  }
31851
31853
  let inputIds = 0;
31852
31854
 
31853
- const inputGroupCss = "/*!@:host*/.sc-road-input-group-h{display:block}/*!@.input-group*/.input-group.sc-road-input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%;font-family:var(--road-font, sans-serif)}/*!@::slotted(road-input),\n::slotted(input),\n::slotted(textarea),\n::slotted(road-select)*/.sc-road-input-group-s>road-input,.sc-road-input-group-s>input,.sc-road-input-group-s>textarea,.sc-road-input-group-s>road-select{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}/*!@::slotted([slot=\"prepend\"])*/.sc-road-input-group-s>[slot=\"prepend\"]{margin-right:-3px;border-color:var(--road-input-outline);border-right-color:transparent;border-top-right-radius:0;border-bottom-right-radius:0}/*!@::slotted([slot=\"append\"])*/.sc-road-input-group-s>[slot=\"append\"]{margin-left:-0.25rem;border-color:var(--road-input-outline);border-left-width:0}@media (hover: hover){/*!@.input-group:not(.is-disabled):hover ::slotted([slot=\"prepend\"])*/.input-group:not(.is-disabled):hover .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-input-outline-variant);border-right-color:transparent}/*!@.input-group:not(.is-disabled):hover ::slotted([slot=\"append\"])*/.input-group:not(.is-disabled):hover .sc-road-input-group-s>[slot=\"append\"]{border-color:var(--road-input-outline-variant);border-left-color:transparent}/*!@:host(.phone-number-group) .input-group:not(.is-disabled):hover ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group:not(.is-disabled):hover .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-input-outline-variant)}}/*!@.input-group:focus-within ::slotted([slot=\"prepend\"])*/.input-group:focus-within .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-input-outline-variant);border-right-color:transparent}/*!@:host(.phone-number-group) .input-group:focus-within ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group:focus-within .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-input-outline-variant);border-right-color:transparent}/*!@.input-group:focus-within ::slotted([slot=\"append\"])*/.input-group:focus-within .sc-road-input-group-s>[slot=\"append\"]{border-color:var(--road-input-outline-variant);border-left-color:transparent}/*!@.input-group-prepend,\n.input-group-append*/.input-group-prepend.sc-road-input-group,.input-group-append.sc-road-input-group{display:flex;height:3rem}/*!@::slotted(road-button)*/.sc-road-input-group-s>road-button{--padding-start:0.5rem;--padding-end:0.5rem;position:relative;z-index:2;min-width:3rem;margin:0;font-size:var(--road-font-size-14)}/*!@.input-group-prepend*/.input-group-prepend.sc-road-input-group{z-index:1;order:-1}/*!@.input-group-prepend ~ .form-label*/.input-group-prepend.sc-road-input-group~.form-label.sc-road-input-group{left:calc(3rem + 1px)}/*!@.input-group-append*/.input-group-append.sc-road-input-group{position:relative;z-index:1;border-radius:0 0.25rem 0.25rem 0}/*!@::slotted(label)*/.sc-road-input-group-s>label{display:flex;align-items:center;padding:0 0.5rem;margin-bottom:0;color:var(--road-on-surface);text-align:center;white-space:nowrap;cursor:text;background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@::slotted(road-input:not(:first-child)),\n::slotted(road-select:not(:first-child))*/.sc-road-input-group-s>road-input:not(:first-child),.sc-road-input-group-s>road-select:not(:first-child){border-radius:0}/*!@.input-group-append ::slotted([slot=\"append\"])*/.input-group-append .sc-road-input-group-s>[slot=\"append\"]{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}/*!@.input-group-prepend ::slotted([slot=\"prepend\"])*/.input-group-prepend .sc-road-input-group-s>[slot=\"prepend\"]{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}/*!@:host(.phone-number-group) .input-group-prepend ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group-prepend .sc-road-input-group-s>[slot=\"prepend\"]{border-right:1px solid var(--road-input-outline);border-top-right-radius:0;border-bottom-right-radius:0}/*!@.input-group-prepend ::slotted(label)*/.input-group-prepend .sc-road-input-group-s>label{margin-right:calc(-1rem + 1px)}/*!@.input-group-append ::slotted(road-button)*/.input-group-append .sc-road-input-group-s>road-button{background-color:var(--road-surface)}/*!@.size-xl .input-group-prepend,\n.size-xl .input-group-append*/.size-xl.sc-road-input-group .input-group-prepend.sc-road-input-group,.size-xl.sc-road-input-group .input-group-append.sc-road-input-group{height:3.5rem}/*!@.size-xl ::slotted(road-button)*/.size-xl .sc-road-input-group-s>road-button{height:3.5rem}/*!@.input-group.is-invalid ::slotted([slot=\"append\"]),\n.input-group.is-invalid ::slotted([slot=\"prepend\"])*/.input-group.is-invalid .sc-road-input-group-s>[slot=\"append\"],.input-group.is-invalid.sc-road-input-group-s>[slot=\"prepend\"],.input-group.is-invalid .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-danger-outline)}/*!@:host(.phone-number-group) .input-group.is-invalid ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group.is-invalid.sc-road-input-group-s>[slot=\"prepend\"],.input-group.is-invalid .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-danger-outline)}/*!@.input-group.is-disabled ::slotted([slot=\"append\"]),\n.input-group.is-disabled ::slotted([slot=\"prepend\"])*/.input-group.is-disabled .sc-road-input-group-s>[slot=\"append\"],.input-group.is-disabled.sc-road-input-group-s>[slot=\"prepend\"],.input-group.is-disabled .sc-road-input-group-s>[slot=\"prepend\"]{cursor:not-allowed;background:#e4e5e9}/*!@.is-disabled ::slotted(road-button)*/.is-disabled .sc-road-input-group-s>road-button{opacity:1}";
31855
+ const inputGroupCss = "/*!@:host*/.sc-road-input-group-h{display:block}/*!@.input-group*/.input-group.sc-road-input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%;font-family:var(--road-font, sans-serif)}/*!@::slotted(road-input),\n::slotted(input),\n::slotted(textarea),\n::slotted(road-select)*/.sc-road-input-group-s>road-input,.sc-road-input-group-s>input,.sc-road-input-group-s>textarea,.sc-road-input-group-s>road-select{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}/*!@::slotted([slot=\"prepend\"])*/.sc-road-input-group-s>[slot=\"prepend\"]{margin-right:-3px;border-color:var(--road-input-outline);border-right-color:transparent;border-top-right-radius:0;border-bottom-right-radius:0}/*!@::slotted([slot=\"append\"])*/.sc-road-input-group-s>[slot=\"append\"]{margin-left:-0.25rem;border-color:var(--road-input-outline);border-left-width:0}@media (hover: hover){/*!@.input-group:not(.is-disabled):hover ::slotted([slot=\"prepend\"])*/.input-group:not(.is-disabled):hover .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-input-outline-variant);border-right-color:transparent}/*!@.input-group:not(.is-disabled):hover ::slotted([slot=\"append\"])*/.input-group:not(.is-disabled):hover .sc-road-input-group-s>[slot=\"append\"]{border-color:var(--road-input-outline-variant);border-left-color:transparent}/*!@:host(.phone-number-group) .input-group:not(.is-disabled):hover ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group:not(.is-disabled):hover .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-input-outline-variant)}}/*!@.input-group:focus-within ::slotted([slot=\"prepend\"]),\n:host(.phone-number-group) .input-group:focus-within ::slotted([slot=\"prepend\"])*/.input-group:focus-within .sc-road-input-group-s>[slot=\"prepend\"],.sc-road-input-group-h.phone-number-group .input-group:focus-within.sc-road-input-group-s>[slot=\"prepend\"],.sc-road-input-group-h.phone-number-group .input-group:focus-within .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-grey-0);border-width:2px;border-right-color:transparent;outline:none}/*!@.input-group:focus-within ::slotted([slot=\"append\"])*/.input-group:focus-within .sc-road-input-group-s>[slot=\"append\"]{border-color:var(--road-grey-0);border-width:2px;border-left-color:transparent;outline:none}/*!@.input-group:focus-within ::slotted(road-input):focus-visible*/.input-group:focus-within .sc-road-input-group-s>road-input:focus-visible{border-color:var(--road-grey-0);border-width:2px;outline:none}/*!@.input-group-prepend,\n.input-group-append*/.input-group-prepend.sc-road-input-group,.input-group-append.sc-road-input-group{display:flex;height:3rem}/*!@::slotted(road-button)*/.sc-road-input-group-s>road-button{--padding-start:0.5rem;--padding-end:0.5rem;position:relative;z-index:2;min-width:3rem;margin:0;font-size:var(--road-font-size-14)}/*!@.input-group-prepend*/.input-group-prepend.sc-road-input-group{z-index:1;order:-1}/*!@.input-group-prepend ~ .form-label*/.input-group-prepend.sc-road-input-group~.form-label.sc-road-input-group{left:calc(3rem + 1px)}/*!@.input-group-append*/.input-group-append.sc-road-input-group{position:relative;z-index:1;border-radius:0 0.25rem 0.25rem 0}/*!@::slotted(label)*/.sc-road-input-group-s>label{display:flex;align-items:center;padding:0 0.5rem;margin-bottom:0;color:var(--road-on-surface);text-align:center;white-space:nowrap;cursor:text;background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@::slotted(road-label)*/.sc-road-input-group-s>road-label{display:flex;align-items:center;padding:0 0.5rem;margin-bottom:0;color:var(--road-on-surface);text-align:center;white-space:nowrap;cursor:text;background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@::slotted(road-input:not(:first-child)),\n::slotted(road-select:not(:first-child))*/.sc-road-input-group-s>road-input:not(:first-child),.sc-road-input-group-s>road-select:not(:first-child){border-radius:0}/*!@.input-group-append ::slotted([slot=\"append\"])*/.input-group-append .sc-road-input-group-s>[slot=\"append\"]{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}/*!@.input-group-prepend ::slotted([slot=\"prepend\"])*/.input-group-prepend .sc-road-input-group-s>[slot=\"prepend\"]{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}/*!@:host(.phone-number-group) .input-group-prepend ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group-prepend .sc-road-input-group-s>[slot=\"prepend\"]{border-right:1px solid var(--road-input-outline);border-top-right-radius:0;border-bottom-right-radius:0}/*!@.input-group-prepend ::slotted(label)*/.input-group-prepend .sc-road-input-group-s>label{margin-right:calc(-1rem + 1px)}/*!@.input-group-append ::slotted(road-button)*/.input-group-append .sc-road-input-group-s>road-button{background-color:var(--road-surface)}/*!@.size-xl .input-group-prepend,\n.size-xl .input-group-append*/.size-xl.sc-road-input-group .input-group-prepend.sc-road-input-group,.size-xl.sc-road-input-group .input-group-append.sc-road-input-group{height:3.5rem}/*!@.size-xl ::slotted(road-button)*/.size-xl .sc-road-input-group-s>road-button{height:3.5rem}/*!@.input-group.is-invalid ::slotted([slot=\"append\"]),\n.input-group.is-invalid ::slotted([slot=\"prepend\"])*/.input-group.is-invalid .sc-road-input-group-s>[slot=\"append\"],.input-group.is-invalid.sc-road-input-group-s>[slot=\"prepend\"],.input-group.is-invalid .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-danger-outline)}/*!@:host(.phone-number-group) .input-group.is-invalid ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h.phone-number-group .input-group.is-invalid.sc-road-input-group-s>[slot=\"prepend\"],.input-group.is-invalid .sc-road-input-group-s>[slot=\"prepend\"]{border-color:var(--road-danger-outline)}/*!@:host([disabled])*/[disabled].sc-road-input-group-h{cursor:not-allowed}/*!@:host([disabled]) .input-group*/[disabled].sc-road-input-group-h .input-group.sc-road-input-group{pointer-events:none}/*!@:host([disabled]) ::slotted([slot=\"append\"]),\n:host([disabled]) ::slotted([slot=\"prepend\"])*/.sc-road-input-group-h[disabled] .sc-road-input-group-s>[slot=\"append\"],.sc-road-input-group-h[disabled].sc-road-input-group-s>[slot=\"prepend\"],.sc-road-input-group-h[disabled] .sc-road-input-group-s>[slot=\"prepend\"]{color:var(--road-on-surface-disabled);cursor:not-allowed;background:#e4e5e9}/*!@:host([disabled]) ::slotted([slot=\"append\"] road-icon),\n:host([disabled]) ::slotted([slot=\"prepend\"] road-icon)*/.sc-road-input-group-h[disabled] .sc-road-input-group-s>[slot=\"append\"] road-icon,.sc-road-input-group-h[disabled].sc-road-input-group-s>[slot=\"prepend\"],.sc-road-input-group-h[disabled].sc-road-input-group-s>[slot=\"prepend\"] road-icon,.sc-road-input-group-h[disabled] .sc-road-input-group-s>[slot=\"prepend\"] road-icon{color:var(--road-on-surface-disabled)}/*!@:host([disabled]) road-icon*/[disabled].sc-road-input-group-h road-icon.sc-road-input-group{color:var(--road-on-surface-disabled)}";
31854
31856
 
31855
31857
  /**
31856
31858
  * @slot prepend - Add icon or button before the field.
@@ -31860,25 +31862,47 @@ const inputGroupCss = "/*!@:host*/.sc-road-input-group-h{display:block}/*!@.inpu
31860
31862
  class InputGroup {
31861
31863
  constructor(hostRef) {
31862
31864
  registerInstance(this, hostRef);
31865
+ this.disabled = false;
31863
31866
  }
31864
- componentDidLoad() {
31865
- var _a;
31866
- if (this.el.querySelector("road-input[disabled]")) {
31867
- (_a = this.el.querySelector("road-button")) === null || _a === void 0 ? void 0 : _a.setAttribute('disabled', "");
31868
- }
31867
+ /** Watches for changes in the `disabled` prop and updates child elements. */
31868
+ handleDisabledChange(newValue) {
31869
+ this.updateDisabledState(newValue);
31870
+ }
31871
+ /** Applies or removes the `disabled` attribute to/from children. */
31872
+ updateDisabledState(isDisabled) {
31873
+ const children = this.el.querySelectorAll('road-input, road-button, road-select');
31874
+ children.forEach(child => {
31875
+ if (isDisabled) {
31876
+ child.setAttribute('disabled', '');
31877
+ }
31878
+ else {
31879
+ child.removeAttribute('disabled');
31880
+ }
31881
+ });
31882
+ }
31883
+ componentWillLoad() {
31884
+ // Ensure the initial state of `disabled` is applied before render.
31885
+ this.updateDisabledState(this.disabled);
31869
31886
  }
31870
31887
  render() {
31871
- const errorClass = this.el.querySelector("road-input[error]") ? 'is-invalid' : '';
31872
- const disabledClass = this.el.querySelector("road-input[disabled]") ? 'is-disabled' : '';
31873
- const sizeClass = this.el.querySelector("road-input[sizes]") ? `size-${this.el.querySelector("road-input").sizes}` : '';
31888
+ const errorClass = this.el.querySelector('road-input[error]') ? 'is-invalid' : '';
31889
+ const sizeClass = this.el.querySelector('road-input[sizes]')
31890
+ ? `size-${this.el.querySelector('road-input').sizes}`
31891
+ : '';
31892
+ const disabledClass = this.disabled ? 'is-disabled' : '';
31874
31893
  return (hAsync("div", { class: `input-group ${errorClass} ${disabledClass} ${sizeClass}` }, hAsync("div", { class: "input-group-prepend" }, hAsync("slot", { name: "prepend" })), hAsync("slot", null), hAsync("div", { class: "input-group-append" }, hAsync("slot", { name: "append" }))));
31875
31894
  }
31876
31895
  get el() { return getElement(this); }
31896
+ static get watchers() { return {
31897
+ "disabled": ["handleDisabledChange"]
31898
+ }; }
31877
31899
  static get style() { return inputGroupCss; }
31878
31900
  static get cmpMeta() { return {
31879
31901
  "$flags$": 9,
31880
31902
  "$tagName$": "road-input-group",
31881
- "$members$": undefined,
31903
+ "$members$": {
31904
+ "disabled": [4]
31905
+ },
31882
31906
  "$listeners$": undefined,
31883
31907
  "$lazyBundleId$": "-",
31884
31908
  "$attrsToReflect$": []
@@ -32177,6 +32201,14 @@ class NavbarItem {
32177
32201
  onNavbarChanged(ev) {
32178
32202
  this.selected = this.tab === ev.detail.tab;
32179
32203
  }
32204
+ /**
32205
+ * Watch for changes to `selected` and move focus to this element if `selected` is true.
32206
+ */
32207
+ handleSelectedChange(newValue) {
32208
+ if (newValue) {
32209
+ this.el.focus();
32210
+ }
32211
+ }
32180
32212
  selectTab(ev) {
32181
32213
  if (this.tab !== undefined) {
32182
32214
  if (!this.disabled) {
@@ -32204,13 +32236,16 @@ class NavbarItem {
32204
32236
  rel,
32205
32237
  target,
32206
32238
  };
32207
- return (hAsync(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "menu", tabindex: "0", "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `navbar-item-${tab}` : null, disabled: disabled, class: {
32239
+ return (hAsync(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "menuitem", tabindex: "0", "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `navbar-item-${tab}` : null, disabled: disabled, class: {
32208
32240
  'navbar-item': true,
32209
32241
  'tab-selected': selected,
32210
32242
  'tab-disabled': disabled,
32211
32243
  } }, hAsync("a", Object.assign({}, attrs, { tabIndex: -1, class: "button-native", part: "native" }), hAsync("span", { class: "button-inner" }, hAsync("slot", null)))));
32212
32244
  }
32213
32245
  get el() { return getElement(this); }
32246
+ static get watchers() { return {
32247
+ "selected": ["handleSelectedChange"]
32248
+ }; }
32214
32249
  static get style() { return navbarItemCss; }
32215
32250
  static get cmpMeta() { return {
32216
32251
  "$flags$": 9,
@@ -32503,7 +32538,7 @@ class ProgressTrackerItem {
32503
32538
  }; }
32504
32539
  }
32505
32540
 
32506
- const radioCss = ".sc-road-radio-h{position:relative;display:block;margin-bottom:1.5rem;font-family:var(--road-font, sans-serif);font-size:var(--road-body-medium);line-height:1.5;color:var(--road-on-surface)}.form-radio-inline.sc-road-radio-h{display:inline-flex;flex-wrap:wrap;align-items:center;margin-right:1.5rem;margin-bottom:0}.form-radio-input.sc-road-radio{position:absolute;z-index:-1;width:20px;height:20px;opacity:0}.form-radio-input.sc-road-radio:disabled{z-index:1;width:100%;cursor:not-allowed}.form-radio-label.sc-road-radio{position:relative;display:inline-flex;align-items:flex-start;margin:0;cursor:pointer;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.form-radio-label.sc-road-radio::before{box-sizing:border-box;display:block;flex-shrink:0;width:1.25rem;height:1.25rem;margin:0.1rem 0.75rem 0 0;content:\"\";background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:50%;transition:border-color 0.2s ease-in-out}.form-radio-label.sc-road-radio::after{position:absolute;top:0.285rem;left:0.1875rem;box-sizing:border-box;display:block;width:0.875rem;height:0.875rem;content:\"\";background:var(--road-grey-60);border:none;border-radius:50%;transition:background 0.2s ease-in-out, transform 0.2s ease-in-out;transform:scale(0);transform-origin:50% 50%}@media (hover: hover){.form-radio-input.sc-road-radio~.form-radio-label.sc-road-radio:hover::before{border-color:var(--road-input-surface)}.form-radio-input.sc-road-radio:checked~.form-radio-label.sc-road-radio:hover::after{background:var(--road-input-surface-variant)}}.form-radio-input.sc-road-radio:checked~.form-radio-label.sc-road-radio::after{background:var(--road-input-surface);opacity:1;transform:scale(1)}.form-radio-input.focus-visible.sc-road-radio~.form-radio-label.sc-road-radio::before{box-shadow:0 0 0 0.125rem var(--road-grey-100-new), 0 0 0 0.1875rem var(--road-input-outline-variant)}.form-radio-input.focus-visible.sc-road-radio:checked~.form-radio-label.sc-road-radio::after{background:var(--road-primary-700)}.form-radio-input.sc-road-radio:disabled~.form-radio-label.sc-road-radio,.form-radio-input[readonly].sc-road-radio~.form-radio-label.sc-road-radio{cursor:not-allowed}.form-radio-input.sc-road-radio:disabled~.form-radio-label.sc-road-radio::before,.form-radio-input[readonly].sc-road-radio~.form-radio-label.sc-road-radio::before{background:var(--road-on-surface-disabled);border:none}.form-radio-input.sc-road-radio:disabled~.form-radio-label.sc-road-radio::after,.form-radio-input[readonly].sc-road-radio~.form-radio-label.sc-road-radio::after{background:var(--road-grey-60)}.form-radio-input.is-invalid.sc-road-radio~.form-radio-label.sc-road-radio::before{border-color:var(--road-danger-outline)}.form-radio-inverse.sc-road-radio{display:flex;flex-direction:row-reverse;justify-content:space-between}.form-radio-inverse.sc-road-radio::before{margin:0 0 0 1rem}.form-radio-inverse.sc-road-radio::after{right:0.1875rem;left:auto}";
32541
+ const radioCss = ".sc-road-radio-h{position:relative;display:block;margin-bottom:1.5rem;font-family:var(--road-font, sans-serif);font-size:var(--road-body-medium);line-height:1.5;color:var(--road-on-surface)}.form-radio-inline.sc-road-radio-h{display:inline-flex;flex-wrap:wrap;align-items:center;margin-right:1.5rem;margin-bottom:0}.form-radio-input.sc-road-radio{position:absolute;z-index:-1;width:20px;height:20px;opacity:0}.form-radio-input.sc-road-radio:disabled{z-index:1;width:100%;cursor:not-allowed}.form-radio-label.sc-road-radio{position:relative;display:inline-flex;align-items:flex-start;margin:0;cursor:pointer;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.form-radio-label.sc-road-radio::before{box-sizing:border-box;display:block;flex-shrink:0;width:1.25rem;height:1.25rem;margin:0.1rem 0.75rem 0 0;content:\"\";background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:50%;transition:border-color 0.2s ease-in-out}.form-radio-label-span.sc-road-radio{margin-left:var(--road-spacing-02);color:var(--road-on-surface-weak)}.form-radio-label.sc-road-radio::after{position:absolute;top:0.285rem;left:0.1875rem;box-sizing:border-box;display:block;width:0.875rem;height:0.875rem;content:\"\";background:var(--road-grey-60);border:none;border-radius:50%;transition:background 0.2s ease-in-out, transform 0.2s ease-in-out;transform:scale(0);transform-origin:50% 50%}@media (hover: hover){.form-radio-input.sc-road-radio~.form-radio-label.sc-road-radio:hover::before{border-color:var(--road-input-surface)}.form-radio-input.sc-road-radio:checked~.form-radio-label.sc-road-radio:hover::after{background:var(--road-input-surface-variant)}}.form-radio-input.sc-road-radio:checked~.form-radio-label.sc-road-radio::after{background:var(--road-input-surface);opacity:1;transform:scale(1)}.form-radio-input.focus-visible.sc-road-radio~.form-radio-label.sc-road-radio::before{box-shadow:0 0 0 0.125rem var(--road-grey-100-new), 0 0 0 0.1875rem var(--road-input-outline-variant)}.form-radio-input.focus-visible.sc-road-radio:checked~.form-radio-label.sc-road-radio::after{background:var(--road-primary-700)}.form-radio-input.sc-road-radio:disabled~.form-radio-label.sc-road-radio,.form-radio-input[readonly].sc-road-radio~.form-radio-label.sc-road-radio{cursor:not-allowed}.form-radio-input.sc-road-radio:disabled~.form-radio-label.sc-road-radio::before,.form-radio-input[readonly].sc-road-radio~.form-radio-label.sc-road-radio::before{background:var(--road-on-surface-disabled);border:none}.form-radio-input.sc-road-radio:disabled~.form-radio-label.sc-road-radio::after,.form-radio-input[readonly].sc-road-radio~.form-radio-label.sc-road-radio::after{background:var(--road-grey-60)}.form-radio-input.is-invalid.sc-road-radio~.form-radio-label.sc-road-radio::before{border-color:var(--road-danger-outline)}.form-radio-inverse.sc-road-radio{display:flex;flex-direction:row-reverse;justify-content:space-between}.form-radio-inverse.sc-road-radio::before{margin:0 0 0 1rem}.form-radio-inverse.sc-road-radio::after{right:0.1875rem;left:auto}";
32507
32542
 
32508
32543
  class Radio {
32509
32544
  constructor(hostRef) {
@@ -32533,6 +32568,7 @@ class Radio {
32533
32568
  this.disabled = false;
32534
32569
  this.value = undefined;
32535
32570
  this.label = `${this.radioId}-label`;
32571
+ this.secondaryLabel = undefined;
32536
32572
  this.inverse = false;
32537
32573
  this.error = undefined;
32538
32574
  this.helper = undefined;
@@ -32561,7 +32597,7 @@ class Radio {
32561
32597
  const inverseClass = this.inverse && 'form-radio-inverse';
32562
32598
  const isInvalidClass = this.error ? 'is-invalid' : '';
32563
32599
  const inlineClass = this.inline ? 'form-radio-inline' : '';
32564
- return (hAsync(Host, { class: `form-radio ${inlineClass}` }, hAsync("input", { class: `form-radio-input ${isInvalidClass}`, type: "radio", id: this.radioId, name: this.name, required: this.required, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null, checked: this.checked, "aria-checked": `${this.checked}`, "aria-labelledby": labelId, value: this.value, onFocus: this.onFocus, onBlur: this.onBlur }), hAsync("label", { class: `form-radio-label ${inverseClass}`, id: labelId, htmlFor: this.radioId }, this.label)));
32600
+ return (hAsync(Host, { class: `form-radio ${inlineClass}` }, hAsync("input", { class: `form-radio-input ${isInvalidClass}`, type: "radio", id: this.radioId, name: this.name, required: this.required, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null, checked: this.checked, "aria-checked": `${this.checked}`, "aria-labelledby": labelId, value: this.value, onFocus: this.onFocus, onBlur: this.onBlur }), hAsync("label", { class: `form-radio-label ${inverseClass}`, id: labelId, htmlFor: this.radioId }, this.label, " ", hAsync("span", { class: "form-radio-label-span" }, this.secondaryLabel))));
32565
32601
  }
32566
32602
  get el() { return getElement(this); }
32567
32603
  static get style() { return radioCss; }
@@ -32575,6 +32611,7 @@ class Radio {
32575
32611
  "disabled": [4],
32576
32612
  "value": [8],
32577
32613
  "label": [1],
32614
+ "secondaryLabel": [1, "secondary-label"],
32578
32615
  "inverse": [4],
32579
32616
  "error": [4],
32580
32617
  "helper": [1],
@@ -36409,6 +36446,11 @@ class SelectFilter {
36409
36446
  this.onClick(activeOption.item.value, activeOption.item.label);
36410
36447
  }
36411
36448
  }
36449
+ else if (event.key === 'Escape') {
36450
+ event.preventDefault();
36451
+ this.isOpen = false;
36452
+ this.isActive = false;
36453
+ }
36412
36454
  }
36413
36455
  }
36414
36456
  get filteredOptions() {
@@ -36489,7 +36531,7 @@ class Spinner {
36489
36531
  }; }
36490
36532
  }
36491
36533
 
36492
- const progressIndicatorHorizontalCss = "/*!@:host*/.sc-road-progress-indicator-horizontal-h{display:block}/*!@.progress-indicator-horizontal*/.progress-indicator-horizontal.sc-road-progress-indicator-horizontal{display:flex;padding-left:0;margin:0;font-family:var(--road-font);line-height:1.5;list-style:none}/*!@.progress-indicator-horizontal.progress-indicator-horizontal-header*/.progress-indicator-horizontal.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal{background-color:var(--road-header-surface)}/*!@.progress-indicator-horizontal-item*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal{display:flex;flex:1;flex-direction:column;text-align:center}/*!@.progress-indicator-horizontal-item:last-child*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:last-child{margin-top:0.125rem}/*!@.progress-indicator-horizontal-item:not(:last-child)::after*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(:last-child)::after{position:relative;top:0.8rem;left:calc(50% + 12px);order:-1;width:calc(100% - 24px);height:2px;content:\"\";background:var(--road-surface-disabled)}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-item:not(:last-child)::after*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(:last-child)::after{position:relative;top:0.8rem;left:calc(50% + 12px);order:-1;width:calc(100% - 24px);height:2px;content:\"\";background:var(--road-header-surface-disabled)}/*!@.progress-indicator-horizontal-item:not(.completed) .progress-indicator-horizontal-link*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(.completed) .progress-indicator-horizontal-link.sc-road-progress-indicator-horizontal{cursor:not-allowed}/*!@.progress-indicator-horizontal-link*/.progress-indicator-horizontal-link.sc-road-progress-indicator-horizontal{z-index:1;display:flex;flex-direction:column;align-items:center;text-decoration:none}/*!@.progress-indicator-horizontal-icon*/.progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:var(--road-font-size-12);font-weight:700;color:var(--road-on-surface-disabled);background:var(--road-surface-disabled);border-radius:50%;fill:currentColor}/*!@::slotted([slot=\"progress-indicator-horizontal-icon\"]) road-icon*/.sc-road-progress-indicator-horizontal-s>[slot=\"progress-indicator-horizontal-icon\"] road-icon{color:currentColor}/*!@.progress-indicator-horizontal-header ::slotted([slot=\"progress-indicator-horizontal-icon\"]) road-icon*/.progress-indicator-horizontal-header .sc-road-progress-indicator-horizontal-s>[slot=\"progress-indicator-horizontal-icon\"] road-icon{color:currentColor}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-icon*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:var(--road-font-size-12);font-weight:700;color:var(--road-on-header-surface-disabled);background:var(--road-header-surface-disabled);border-radius:50%;fill:currentColor}/*!@.progress-indicator-horizontal-title*/.progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{display:block;margin-top:0.25rem;font-size:var(--road-body-small);font-weight:700;color:var(--road-on-surface-disabled)}/*!@.progress-indicator-horizontal-title span*/.progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal span.sc-road-progress-indicator-horizontal{display:block;font-size:var(--road-body-small);font-weight:400;color:var(--road-on-surface-weak)}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-title*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{display:block;margin-top:0.25rem;font-size:var(--road-body-small);font-weight:700;color:var(--road-on-header-surface-disabled)}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-title span*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal span.sc-road-progress-indicator-horizontal{display:block;font-size:var(--road-body-small);font-weight:400;color:var(--road-on-header-surface-weak)}/*!@.completed:not(:last-child)::after*/.completed.sc-road-progress-indicator-horizontal:not(:last-child)::after{background:var(--road-primary)}/*!@.progress-indicator-horizontal-header .completed:not(:last-child)::after*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .completed.sc-road-progress-indicator-horizontal:not(:last-child)::after{background:var(--road-header-badge)}/*!@.current .progress-indicator-horizontal-icon*/.current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{color:var(--road-on-primary);background:var(--road-primary);border:0}/*!@.completed .progress-indicator-horizontal-icon*/.completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{width:calc(1.5rem - 4px);height:calc(1.5rem - 4px);color:var(--road-primary);background:var(--road-surface);border:2px solid var(--road-primary)}/*!@.progress-indicator-horizontal-header .completed .progress-indicator-horizontal-icon*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{color:var(--road-header-badge);background:none;border:2px solid var(--road-header-badge)}/*!@.progress-indicator-horizontal-header .current .progress-indicator-horizontal-icon*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{width:calc(1.5rem);height:calc(1.5rem);color:var(--road-on-header-badge);background:var(--road-header-badge);border:0}/*!@.current .progress-indicator-horizontal-title,\n.completed .progress-indicator-horizontal-title*/.current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal,.completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{font-weight:700;color:var(--road-on-surface)}/*!@.progress-indicator-horizontal-header .current .progress-indicator-horizontal-title,\n.progress-indicator-horizontal-header .completed .progress-indicator-horizontal-title*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal,.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{font-weight:700;color:var(--road-on-header-surface)}";
36534
+ const progressIndicatorHorizontalCss = "/*!@:host*/.sc-road-progress-indicator-horizontal-h{display:block}/*!@.progress-indicator-horizontal*/.progress-indicator-horizontal.sc-road-progress-indicator-horizontal{display:flex;padding-left:0;margin:0;font-family:var(--road-font);line-height:1.5;list-style:none}/*!@.progress-indicator-horizontal.progress-indicator-horizontal-header*/.progress-indicator-horizontal.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal{background-color:var(--road-header-surface)}/*!@.progress-indicator-horizontal-item*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal{display:flex;flex:1;flex-direction:column;text-align:center}/*!@.progress-indicator-horizontal-item:last-child*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:last-child{margin-top:0.125rem}/*!@.progress-indicator-horizontal-item:not(:last-child)::after*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(:last-child)::after{position:relative;top:0.8rem;left:calc(50% + 12px);order:-1;width:calc(100% - 24px);height:2px;content:\"\";background:var(--road-surface-disabled)}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-item:not(:last-child)::after*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(:last-child)::after{position:relative;top:0.8rem;left:calc(50% + 12px);order:-1;width:calc(100% - 24px);height:2px;content:\"\";background:var(--road-header-surface-disabled)}/*!@.progress-indicator-horizontal-item:not(.completed) .progress-indicator-horizontal-link*/.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(.completed) .progress-indicator-horizontal-link.sc-road-progress-indicator-horizontal{cursor:not-allowed}/*!@.progress-indicator-horizontal-link*/.progress-indicator-horizontal-link.sc-road-progress-indicator-horizontal{z-index:1;display:flex;flex-direction:column;align-items:center;text-decoration:none}/*!@.progress-indicator-horizontal-icon*/.progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:var(--road-font-size-12);font-weight:700;color:var(--road-on-surface-disabled);background:var(--road-surface-disabled);border-radius:50%;fill:currentColor}/*!@::slotted([slot=\"progress-indicator-horizontal-icon\"]) road-icon*/.sc-road-progress-indicator-horizontal-s>[slot=\"progress-indicator-horizontal-icon\"] road-icon{color:currentColor}/*!@.progress-indicator-horizontal-header ::slotted([slot=\"progress-indicator-horizontal-icon\"]) road-icon*/.progress-indicator-horizontal-header .sc-road-progress-indicator-horizontal-s>[slot=\"progress-indicator-horizontal-icon\"] road-icon{color:currentColor}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-icon*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:var(--road-font-size-12);font-weight:700;color:var(--road-on-header-surface-disabled);background:var(--road-header-surface-disabled);border-radius:50%;fill:currentColor}/*!@.progress-indicator-horizontal-title*/.progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{display:block;margin-top:0.25rem;font-size:var(--road-body-small);font-weight:700;color:var(--road-on-surface-disabled)}/*!@.progress-indicator-horizontal-title span*/.progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal span.sc-road-progress-indicator-horizontal{display:block;font-size:var(--road-body-small);font-weight:400;color:var(--road-on-surface-weak)}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-title*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{display:block;margin-top:0.25rem;font-size:var(--road-body-small);font-weight:700;color:var(--road-on-header-surface-disabled)}/*!@.progress-indicator-horizontal-header .progress-indicator-horizontal-title span*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal span.sc-road-progress-indicator-horizontal{display:block;font-size:var(--road-body-small);font-weight:400;color:var(--road-on-header-surface-weak)}/*!@.completed:not(:last-child)::after*/.completed.sc-road-progress-indicator-horizontal:not(:last-child)::after{background:var(--road-primary)}/*!@.progress-indicator-horizontal-header .completed:not(:last-child)::after,\n.progress-indicator-horizontal-header .in-progress:not(:last-child)::after*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .completed.sc-road-progress-indicator-horizontal:not(:last-child)::after,.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .in-progress.sc-road-progress-indicator-horizontal:not(:last-child)::after{background:var(--road-header-badge)}/*!@.current .progress-indicator-horizontal-icon*/.current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{color:var(--road-on-primary);background:var(--road-primary);border:0}/*!@.completed .progress-indicator-horizontal-icon,\n.in-progress .progress-indicator-horizontal-icon*/.completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal,.in-progress.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{width:calc(1.5rem - 4px);height:calc(1.5rem - 4px);color:var(--road-primary);background:var(--road-surface);border:2px solid var(--road-primary)}/*!@.progress-indicator-horizontal-header .completed .progress-indicator-horizontal-icon,\n.progress-indicator-horizontal-header .in-progress .progress-indicator-horizontal-icon*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal,.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .in-progress.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{color:var(--road-header-badge);background:none;border:2px solid var(--road-header-badge)}/*!@.progress-indicator-horizontal-header .current .progress-indicator-horizontal-icon*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-icon.sc-road-progress-indicator-horizontal{width:calc(1.5rem);height:calc(1.5rem);color:var(--road-on-header-badge);background:var(--road-header-badge);border:0}/*!@.current .progress-indicator-horizontal-title,\n.completed .progress-indicator-horizontal-title,\n.in-progress .progress-indicator-horizontal-title*/.current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal,.completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal,.in-progress.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{font-weight:700;color:var(--road-on-surface)}/*!@.progress-indicator-horizontal-header .current .progress-indicator-horizontal-title,\n.progress-indicator-horizontal-header .completed .progress-indicator-horizontal-title,\n.progress-indicator-horizontal-header .in-progress .progress-indicator-horizontal-title*/.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .current.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal,.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .completed.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal,.progress-indicator-horizontal-header.sc-road-progress-indicator-horizontal .in-progress.sc-road-progress-indicator-horizontal .progress-indicator-horizontal-title.sc-road-progress-indicator-horizontal{font-weight:700;color:var(--road-on-header-surface)}/*!@.in-progress.progress-indicator-horizontal-item:not(:last-child)::before*/.in-progress.progress-indicator-horizontal-item.sc-road-progress-indicator-horizontal:not(:last-child)::before{position:relative;top:0.93rem;left:calc(50% + 12px);order:-1;width:calc(50% - 24px);height:2px;content:\"\";background:var(--road-primary)}";
36493
36535
 
36494
36536
  /**
36495
36537
  * @slot progress-indicator-horizontal-icon - if the state of the step 1 is completed add
@@ -36727,7 +36769,7 @@ class TabBar {
36727
36769
  }; }
36728
36770
  }
36729
36771
 
36730
- const tabButtonCss = "/*!@:host*/.sc-road-tab-button-h{box-sizing:border-box;font-weight:700;color:var(--tab-color);outline:0;transition:background 0.15s ease-in-out}/*!@:host(.tab-secondary)*/.tab-secondary.sc-road-tab-button-h{--tab-underline-selected:var(--road-secondary-600)}/*!@:host(.tab-selected)*/.tab-selected.sc-road-tab-button-h{color:var(--tab-color-selected)}/*!@:host(.tab-selected) ::slotted(road-icon)*/.sc-road-tab-button-h.tab-selected .sc-road-tab-button-s>road-icon{color:var(--tab-color-selected)}/*!@:host(.tab-selected) .button-native::after*/.tab-selected.sc-road-tab-button-h .button-native.sc-road-tab-button::after{background:var(--tab-underline-selected);opacity:1;transform:none}/*!@:host(:hover)*/.sc-road-tab-button-h:hover{background:var(--tab-background-hover)}/*!@:host(.focus-visible)*/.focus-visible.sc-road-tab-button-h{background:var(--tab-background-focused);outline:auto}/*!@.button-native*/.button-native.sc-road-tab-button{position:relative;box-sizing:border-box;display:flex;flex-direction:inherit;align-items:inherit;justify-content:inherit;width:100%;height:100%;min-height:3.5rem;padding:0.75rem var(--padding-end, 1.5rem) 0.75rem var(--padding-start, 1.5rem);margin:0;overflow:hidden;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;color:inherit;text-align:inherit;text-decoration:none;text-indent:inherit;text-overflow:inherit;text-transform:inherit;letter-spacing:inherit;white-space:inherit;cursor:pointer;background:transparent;-webkit-user-drag:none;border-color:initial;border-style:initial;border-width:0;border-radius:inherit;border-image:initial;outline:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@.button-native::after*/.button-native.sc-road-tab-button::after{position:absolute;bottom:0;left:0;display:block;width:100%;height:2px;content:\"\";opacity:0;transition:transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transform:scaleX(0);transform-origin:center}/*!@.button-inner*/.button-inner.sc-road-tab-button{position:relative;z-index:1;display:flex;flex-flow:inherit;align-items:center;justify-content:center;width:100%;height:100%}/*!@:host ::slotted(road-icon)*/.sc-road-tab-button-h .sc-road-tab-button-s>road-icon{color:var(--tab-color)}/*!@:host(.tab-layout-icon-start) ::slotted(road-icon)*/.sc-road-tab-button-h.tab-layout-icon-start .sc-road-tab-button-s>road-icon{margin-right:0.5rem}/*!@:host(.tab-layout-icon-top) .button-inner*/.tab-layout-icon-top.sc-road-tab-button-h .button-inner.sc-road-tab-button{flex-direction:column}/*!@:host ::slotted(road-label)*/.sc-road-tab-button-h .sc-road-tab-button-s>road-label{display:-webkit-box;max-width:12.5rem;overflow:hidden;font-size:1rem;color:var(--road-on-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;text-align:center;text-overflow:ellipsis;white-space:inherit}/*!@:host(.tab-layout-icon-top) ::slotted(road-label)*/.sc-road-tab-button-h.tab-layout-icon-top .sc-road-tab-button-s>road-label{margin-top:0.25rem;font-size:1rem}";
36772
+ const tabButtonCss = "/*!@:host*/.sc-road-tab-button-h{box-sizing:border-box;font-weight:700;color:var(--tab-color);outline:0;transition:background 0.15s ease-in-out}/*!@:host(.tab-secondary)*/.tab-secondary.sc-road-tab-button-h{--tab-underline-selected:var(--road-secondary-600)}/*!@:host(.tab-selected)*/.tab-selected.sc-road-tab-button-h{color:var(--tab-color-selected)}/*!@:host(.tab-selected) ::slotted(road-icon)*/.sc-road-tab-button-h.tab-selected .sc-road-tab-button-s>road-icon{color:var(--tab-color-selected)}/*!@:host(.tab-selected) .button-native::after*/.tab-selected.sc-road-tab-button-h .button-native.sc-road-tab-button::after{background:var(--tab-underline-selected);opacity:1;transform:none}/*!@:host(:hover)*/.sc-road-tab-button-h:hover{background:var(--tab-background-hover)}/*!@:host(.focus-visible)*/.focus-visible.sc-road-tab-button-h{background:var(--tab-background-focused);outline:auto}/*!@:host(.tab-disabled)*/.tab-disabled.sc-road-tab-button-h{background:var(--road-surface-disabled)}/*!@:host(.tab-disabled) .button-native*/.tab-disabled.sc-road-tab-button-h .button-native.sc-road-tab-button{cursor:not-allowed}/*!@:host(.tab-disabled) ::slotted(road-label)*/.sc-road-tab-button-h.tab-disabled .sc-road-tab-button-s>road-label{color:var(--road-on-surface-disabled)}/*!@.button-native*/.button-native.sc-road-tab-button{position:relative;box-sizing:border-box;display:flex;flex-direction:inherit;align-items:inherit;justify-content:inherit;width:100%;height:100%;min-height:3.5rem;padding:0.75rem var(--padding-end, 1.5rem) 0.75rem var(--padding-start, 1.5rem);margin:0;overflow:hidden;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;color:inherit;text-align:inherit;text-decoration:none;text-indent:inherit;text-overflow:inherit;text-transform:inherit;letter-spacing:inherit;white-space:inherit;cursor:pointer;background:transparent;-webkit-user-drag:none;border-color:initial;border-style:initial;border-width:0;border-radius:inherit;border-image:initial;outline:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@.button-native::after*/.button-native.sc-road-tab-button::after{position:absolute;bottom:0;left:0;display:block;width:100%;height:2px;content:\"\";opacity:0;transition:transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);transform:scaleX(0);transform-origin:center}/*!@.button-inner*/.button-inner.sc-road-tab-button{position:relative;z-index:1;display:flex;flex-flow:inherit;align-items:center;justify-content:center;width:100%;height:100%}/*!@:host ::slotted(road-icon)*/.sc-road-tab-button-h .sc-road-tab-button-s>road-icon{color:var(--tab-color)}/*!@:host(.tab-layout-icon-start) ::slotted(road-icon)*/.sc-road-tab-button-h.tab-layout-icon-start .sc-road-tab-button-s>road-icon{margin-right:0.5rem}/*!@:host(.tab-layout-icon-top) .button-inner*/.tab-layout-icon-top.sc-road-tab-button-h .button-inner.sc-road-tab-button{flex-direction:column}/*!@:host ::slotted(road-label)*/.sc-road-tab-button-h .sc-road-tab-button-s>road-label{display:-webkit-box;max-width:12.5rem;overflow:hidden;font-size:1rem;color:var(--road-on-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;text-align:center;text-overflow:ellipsis;white-space:inherit}/*!@:host(.tab-layout-icon-top) ::slotted(road-label)*/.sc-road-tab-button-h.tab-layout-icon-top .sc-road-tab-button-s>road-label{margin-top:0.25rem;font-size:1rem}";
36731
36773
 
36732
36774
  /**
36733
36775
  * @slot - Content of the tab-button, it should be road-icon and road-label elements.
@@ -36752,6 +36794,7 @@ class TabButton {
36752
36794
  this.rel = undefined;
36753
36795
  this.layout = 'icon-start';
36754
36796
  this.selected = false;
36797
+ this.disabled = false;
36755
36798
  this.tab = undefined;
36756
36799
  this.target = undefined;
36757
36800
  }
@@ -36791,20 +36834,21 @@ class TabButton {
36791
36834
  return 0;
36792
36835
  }
36793
36836
  render() {
36794
- const { hasIcon, hasLabel, tabIndex, href, rel, target, layout, selected, tab } = this;
36837
+ const { hasIcon, hasLabel, tabIndex, href, rel, target, layout, selected, tab, disabled } = this;
36795
36838
  const attrs = {
36796
36839
  download: this.download,
36797
- href,
36840
+ href: !disabled ? href : undefined,
36798
36841
  rel,
36799
36842
  target,
36800
36843
  };
36801
- return (hAsync(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: "tab", tabindex: tabIndex, "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
36844
+ return (hAsync(Host, { onClick: (ev) => !disabled && this.onClick(ev), onKeyup: (ev) => !disabled && this.onKeyUp(ev), role: "tab", tabindex: disabled ? -1 : tabIndex, "aria-selected": selected ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
36802
36845
  'tab-selected': selected,
36803
36846
  'tab-has-label': hasLabel,
36804
36847
  'tab-has-icon': hasIcon,
36805
36848
  'tab-has-label-only': hasLabel && !hasIcon,
36806
36849
  'tab-has-icon-only': hasIcon && !hasLabel,
36807
36850
  [`tab-layout-${layout}`]: true,
36851
+ 'tab-disabled': disabled, // Classe CSS pour les styles désactivés
36808
36852
  } }, hAsync("a", Object.assign({}, attrs, { tabIndex: -1, class: "button-native", part: "native" }), hAsync("span", { class: "button-inner" }, hAsync("slot", null)))));
36809
36853
  }
36810
36854
  get el() { return getElement(this); }
@@ -36818,6 +36862,7 @@ class TabButton {
36818
36862
  "rel": [1],
36819
36863
  "layout": [1],
36820
36864
  "selected": [1028],
36865
+ "disabled": [1028],
36821
36866
  "tab": [1],
36822
36867
  "target": [1]
36823
36868
  },
@@ -37165,7 +37210,7 @@ class Text {
37165
37210
  }; }
37166
37211
  }
37167
37212
 
37168
- const textareaCss = ".sc-road-textarea-h{position:relative;display:block;margin-bottom:1rem;font-family:var(--road-font, sans-serif);color:var(--road-on-surface)}.form-control.sc-road-textarea{box-sizing:border-box;display:block;width:100%;height:3rem;padding:0.75rem 1rem 0;margin:0;font-size:var(--road-body-medium);color:var(--road-on-surface);background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;box-shadow:none;appearance:none}.form-control.sc-road-textarea::placeholder{color:var(--road-on-surface-extra-weak);opacity:1}@media (hover: hover){.form-control.sc-road-textarea:not(:disabled):hover{border-color:var(--road-input-outline-variant)}}.form-control.sc-road-textarea:focus~.form-label.sc-road-textarea,.form-control[required].sc-road-textarea:valid~.form-label.sc-road-textarea,.form-control.has-value.sc-road-textarea~.form-label.sc-road-textarea{transform:scale(0.625) translateY(-0.625rem)}.form-control.sc-road-textarea:placeholder-shown~.form-label.sc-road-textarea{transform:scale(0.625) translateY(-0.625rem)}.form-control.sc-road-textarea:-ms-input-placeholder~.form-label.sc-road-textarea{transform:scale(0.625) translateY(-0.625rem)}.form-control.sc-road-textarea:not(:disabled):focus{border-color:var(--road-input-outline-variant)}.form-control.sc-road-textarea:disabled,.form-control[readonly].sc-road-textarea{color:var(--road-on-surface-weak);cursor:not-allowed;background:var(--road-surface-disabled);opacity:1}.textarea-control.sc-road-textarea{height:auto;padding-top:1rem;padding-bottom:0.5rem;line-height:1.5}.textarea-control.no-resize.sc-road-textarea{resize:none}.form-label.sc-road-textarea{position:absolute;top:0.75rem;left:1rem;display:block;font-size:var(--road-body-medium);line-height:1.5;color:var(--road-on-surface-weak);pointer-events:none;transition:transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;transform-origin:0 0}.input-xl.sc-road-textarea-h{--height:3.5rem}.input-xl.sc-road-textarea-h .form-control.sc-road-textarea{padding:1.5rem 1rem 0.5rem}.input-xl.sc-road-textarea-h .form-label.sc-road-textarea{top:1rem}.input-xl.sc-road-textarea-h .form-control.sc-road-textarea:focus~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control[required].sc-road-textarea:valid~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control.has-value.sc-road-textarea~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control[type=\"date\"].sc-road-textarea~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control[type=\"time\"].sc-road-textarea~.form-label.sc-road-textarea{transform:scale(0.75) translateY(-0.625rem)}.input-xl.sc-road-textarea-h .form-control.sc-road-textarea:placeholder-shown~.form-label.sc-road-textarea{transform:scale(0.75) translateY(-0.625rem)}.invalid-feedback.sc-road-textarea{display:none;width:100%;margin-top:0.5rem;font-size:var(--road-helper-medium);color:var(--road-on-danger-surface)}.form-control.is-invalid.sc-road-textarea,.was-validated.sc-road-textarea .form-control.sc-road-textarea:invalid{border-color:var(--road-danger-outline)}.form-control.is-invalid.sc-road-textarea~.invalid-feedback.sc-road-textarea,.was-validated.sc-road-textarea .form-control.sc-road-textarea:invalid~.invalid-feedback.sc-road-textarea{display:block}.helper.sc-road-textarea{margin-top:0.5rem;font-size:var(--road-helper-medium);color:var(--road-on-surface-weak)}";
37213
+ const textareaCss = ".sc-road-textarea-h{position:relative;display:block;margin-bottom:1rem;font-family:var(--road-font, sans-serif);color:var(--road-on-surface)}.form-control.sc-road-textarea{box-sizing:border-box;display:block;width:100%;height:3rem;padding:0.75rem 1rem 0;margin:0;font-size:var(--road-body-medium);color:var(--road-on-surface);background:var(--road-surface);border:1px solid var(--road-input-outline);border-radius:0.25rem;box-shadow:none;appearance:none}.form-control.sc-road-textarea::placeholder{color:var(--road-on-surface-extra-weak);opacity:1}@media (hover: hover){.form-control.sc-road-textarea:not(:disabled):hover{border-color:var(--road-input-outline-variant)}}.form-control.sc-road-textarea:focus~.form-label.sc-road-textarea,.form-control[required].sc-road-textarea:valid~.form-label.sc-road-textarea,.form-control.has-value.sc-road-textarea~.form-label.sc-road-textarea{transform:scale(0.625) translateY(-0.625rem)}.form-control.sc-road-textarea:placeholder-shown~.form-label.sc-road-textarea{transform:scale(0.625) translateY(-0.625rem)}.form-control.sc-road-textarea:-ms-input-placeholder~.form-label.sc-road-textarea{transform:scale(0.625) translateY(-0.625rem)}.form-control.sc-road-textarea:not(:disabled):focus{border-color:var(--road-input-outline-variant)}.form-control.sc-road-textarea:disabled,.form-control[readonly].sc-road-textarea{color:var(--road-on-surface-weak);cursor:not-allowed;background:var(--road-surface-disabled);opacity:1}.textarea-control.sc-road-textarea{height:auto;padding-top:1rem;padding-bottom:0.5rem;line-height:1.5}.textarea-control.no-resize.sc-road-textarea{resize:none}.form-label.sc-road-textarea{position:absolute;top:0.75rem;left:1rem;display:block;font-size:var(--road-body-medium);line-height:1.5;color:var(--road-on-surface-weak);pointer-events:none;transition:transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;transform-origin:0 0}.input-xl.sc-road-textarea-h{--height:3.5rem}.input-xl.sc-road-textarea-h .form-control.sc-road-textarea{padding:1.5rem 1rem 0.5rem}.input-xl.sc-road-textarea-h .form-label.sc-road-textarea{top:1rem}.input-xl.sc-road-textarea-h .form-control.sc-road-textarea:focus~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control[required].sc-road-textarea:valid~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control.has-value.sc-road-textarea~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control[type=\"date\"].sc-road-textarea~.form-label.sc-road-textarea,.input-xl.sc-road-textarea-h .form-control[type=\"time\"].sc-road-textarea~.form-label.sc-road-textarea{width:100vw;transform:scale(0.75) translateY(-0.625rem)}.input-xl.sc-road-textarea-h .form-control.sc-road-textarea:placeholder-shown~.form-label.sc-road-textarea{width:100vw;transform:scale(0.75) translateY(-0.625rem)}.invalid-feedback.sc-road-textarea{display:none;width:100%;margin-top:0.5rem;font-size:var(--road-helper-medium);color:var(--road-on-danger-surface)}.form-control.is-invalid.sc-road-textarea,.was-validated.sc-road-textarea .form-control.sc-road-textarea:invalid{border-color:var(--road-danger-outline)}.form-control.is-invalid.sc-road-textarea~.invalid-feedback.sc-road-textarea,.was-validated.sc-road-textarea .form-control.sc-road-textarea:invalid~.invalid-feedback.sc-road-textarea{display:block}.helper.sc-road-textarea{margin-top:0.5rem;font-size:var(--road-helper-medium);color:var(--road-on-surface-weak)}";
37169
37214
 
37170
37215
  class Textarea {
37171
37216
  constructor(hostRef) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roadtrip/components",
3
- "version": "3.26.0",
3
+ "version": "3.28.0",
4
4
  "description": "Web Component library for Roadtrip Design System",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://gitlab.com/mobivia-design/roadtrip/components",