@roadtrip/components 3.34.0 → 3.36.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 (187) hide show
  1. package/dist/cjs/index-bf8a763e.js.map +1 -1
  2. package/dist/cjs/index-fee0103c.js +4 -0
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/road-badge_14.cjs.entry.js +2 -2
  5. package/dist/cjs/road-radio-card.cjs.entry.js +73 -0
  6. package/dist/cjs/road-radio-card.cjs.entry.js.map +1 -0
  7. package/dist/cjs/road-radio-group.cjs.entry.js +8 -1
  8. package/dist/cjs/road-radio-group.cjs.entry.js.map +1 -1
  9. package/dist/cjs/road-range.cjs.entry.js +2 -2
  10. package/dist/cjs/road-rating.cjs.entry.js +1 -1
  11. package/dist/cjs/road-segmented-button-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/road-segmented-button.cjs.entry.js +2 -2
  13. package/dist/cjs/road-segmented-buttons.cjs.entry.js +1 -1
  14. package/dist/cjs/road-select-filter.cjs.entry.js +2 -2
  15. package/dist/cjs/road-select.cjs.entry.js +1 -1
  16. package/dist/cjs/road-skeleton.cjs.entry.js +1 -1
  17. package/dist/cjs/road-spinner.cjs.entry.js +1 -1
  18. package/dist/cjs/road-switch.cjs.entry.js +2 -2
  19. package/dist/cjs/road-tab-bar.cjs.entry.js +2 -2
  20. package/dist/cjs/road-tab-button.cjs.entry.js +2 -2
  21. package/dist/cjs/road-tab.cjs.entry.js +2 -2
  22. package/dist/cjs/road-table.cjs.entry.js +1 -1
  23. package/dist/cjs/road-tabs.cjs.entry.js +1 -1
  24. package/dist/cjs/road-tag.cjs.entry.js +1 -1
  25. package/dist/cjs/road-text.cjs.entry.js +1 -1
  26. package/dist/cjs/road-textarea.cjs.entry.js +2 -2
  27. package/dist/cjs/road-textarea.cjs.entry.js.map +1 -1
  28. package/dist/cjs/road-toast.cjs.entry.js +1 -1
  29. package/dist/cjs/road-toggle.cjs.entry.js +2 -2
  30. package/dist/cjs/road-toolbar-title-page.cjs.entry.js +1 -1
  31. package/dist/cjs/road-toolbar-title.cjs.entry.js +1 -1
  32. package/dist/cjs/road-toolbar-v2.cjs.entry.js +1 -1
  33. package/dist/cjs/road-tooltip.cjs.entry.js +3 -3
  34. package/dist/cjs/roadtrip.cjs.js +1 -1
  35. package/dist/collection/collection-manifest.json +1 -0
  36. package/dist/collection/components/icon/svg/baby-seat-outline.svg +1 -0
  37. package/dist/collection/components/icon/svg/flag-luxembourg-color.svg +1 -1
  38. package/dist/collection/components/icon/svg/vehicle-cover-outline.svg +1 -0
  39. package/dist/collection/components/radio-card/radio-card.css +234 -0
  40. package/dist/collection/components/radio-card/radio-card.js +253 -0
  41. package/dist/collection/components/radio-card/radio-card.js.map +1 -0
  42. package/dist/collection/components/radio-card/radio-card.stories.js +90 -0
  43. package/dist/collection/components/radio-group/radio-group.js +8 -1
  44. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  45. package/dist/collection/components/range/range.js +2 -2
  46. package/dist/collection/components/rating/rating.js +1 -1
  47. package/dist/collection/components/row/row.js +1 -1
  48. package/dist/collection/components/segmented-button/segmented-button.js +2 -2
  49. package/dist/collection/components/segmented-button-bar/segmented-button-bar.js +1 -1
  50. package/dist/collection/components/segmented-buttons/segmented-buttons.js +1 -1
  51. package/dist/collection/components/select/select.js +1 -1
  52. package/dist/collection/components/select-filter/select-filter.js +2 -2
  53. package/dist/collection/components/skeleton/skeleton.js +1 -1
  54. package/dist/collection/components/spinner/spinner.js +1 -1
  55. package/dist/collection/components/switch/switch.js +2 -2
  56. package/dist/collection/components/tab/tab.js +2 -2
  57. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  58. package/dist/collection/components/tab-button/tab-button.js +2 -2
  59. package/dist/collection/components/table/table.js +1 -1
  60. package/dist/collection/components/tabs/tabs.js +1 -1
  61. package/dist/collection/components/tag/tag.js +1 -1
  62. package/dist/collection/components/text/text.js +1 -1
  63. package/dist/collection/components/textarea/textarea.css +5 -2
  64. package/dist/collection/components/textarea/textarea.js +1 -1
  65. package/dist/collection/components/toast/toast.js +1 -1
  66. package/dist/collection/components/toggle/toggle.js +2 -2
  67. package/dist/collection/components/toolbar/toolbar.js +1 -1
  68. package/dist/collection/components/toolbar-title/toolbar-title.js +1 -1
  69. package/dist/collection/components/toolbar-title-page/toolbar-title-page.js +1 -1
  70. package/dist/collection/components/toolbar-v2/toolbar-v2.js +1 -1
  71. package/dist/collection/components/tooltip/tooltip.js +3 -3
  72. package/dist/esm/index-8dc34f94.js +4 -0
  73. package/dist/esm/index-f1358629.js.map +1 -1
  74. package/dist/esm/loader.js +1 -1
  75. package/dist/esm/road-badge_14.entry.js +2 -2
  76. package/dist/esm/road-radio-card.entry.js +69 -0
  77. package/dist/esm/road-radio-card.entry.js.map +1 -0
  78. package/dist/esm/road-radio-group.entry.js +8 -1
  79. package/dist/esm/road-radio-group.entry.js.map +1 -1
  80. package/dist/esm/road-range.entry.js +2 -2
  81. package/dist/esm/road-rating.entry.js +1 -1
  82. package/dist/esm/road-segmented-button-bar.entry.js +1 -1
  83. package/dist/esm/road-segmented-button.entry.js +2 -2
  84. package/dist/esm/road-segmented-buttons.entry.js +1 -1
  85. package/dist/esm/road-select-filter.entry.js +2 -2
  86. package/dist/esm/road-select.entry.js +1 -1
  87. package/dist/esm/road-skeleton.entry.js +1 -1
  88. package/dist/esm/road-spinner.entry.js +1 -1
  89. package/dist/esm/road-switch.entry.js +2 -2
  90. package/dist/esm/road-tab-bar.entry.js +2 -2
  91. package/dist/esm/road-tab-button.entry.js +2 -2
  92. package/dist/esm/road-tab.entry.js +2 -2
  93. package/dist/esm/road-table.entry.js +1 -1
  94. package/dist/esm/road-tabs.entry.js +1 -1
  95. package/dist/esm/road-tag.entry.js +1 -1
  96. package/dist/esm/road-text.entry.js +1 -1
  97. package/dist/esm/road-textarea.entry.js +2 -2
  98. package/dist/esm/road-textarea.entry.js.map +1 -1
  99. package/dist/esm/road-toast.entry.js +1 -1
  100. package/dist/esm/road-toggle.entry.js +2 -2
  101. package/dist/esm/road-toolbar-title-page.entry.js +1 -1
  102. package/dist/esm/road-toolbar-title.entry.js +1 -1
  103. package/dist/esm/road-toolbar-v2.entry.js +1 -1
  104. package/dist/esm/road-tooltip.entry.js +3 -3
  105. package/dist/esm/roadtrip.js +1 -1
  106. package/dist/html.html-data.json +39 -0
  107. package/dist/icons/icons.svg +1 -1
  108. package/dist/icons/index.d.ts +2 -0
  109. package/dist/icons/index.js +2 -0
  110. package/dist/roadtrip/{p-78e6204e.entry.js → p-02a6e387.entry.js} +2 -2
  111. package/dist/roadtrip/{p-cb8924ee.entry.js → p-0b847a5d.entry.js} +2 -2
  112. package/dist/roadtrip/{p-4765c524.entry.js → p-0dce3168.entry.js} +2 -2
  113. package/dist/roadtrip/{p-061f6889.entry.js → p-1ca62c28.entry.js} +2 -2
  114. package/dist/roadtrip/{p-df897815.entry.js → p-355fcb74.entry.js} +2 -2
  115. package/dist/roadtrip/p-4a0711c8.entry.js +2 -0
  116. package/dist/roadtrip/p-4a0711c8.entry.js.map +1 -0
  117. package/dist/roadtrip/{p-4329a5ff.entry.js → p-4b1ac843.entry.js} +2 -2
  118. package/dist/roadtrip/{p-38fd91b3.entry.js → p-56f18548.entry.js} +2 -2
  119. package/dist/roadtrip/{p-ab550b59.entry.js → p-5f2a4cd5.entry.js} +2 -2
  120. package/dist/roadtrip/{p-f9ba8499.entry.js → p-5f6255ea.entry.js} +2 -2
  121. package/dist/roadtrip/{p-5ed9e829.entry.js → p-6cde1247.entry.js} +2 -2
  122. package/dist/roadtrip/{p-0de7b85d.entry.js → p-6e65c377.entry.js} +2 -2
  123. package/dist/roadtrip/p-6ef0a03b.entry.js +2 -0
  124. package/dist/roadtrip/{p-6fb0f8b8.entry.js.map → p-6ef0a03b.entry.js.map} +1 -1
  125. package/dist/roadtrip/{p-c4d3dda1.entry.js → p-780de42a.entry.js} +2 -2
  126. package/dist/roadtrip/p-80344aa2.entry.js +2 -0
  127. package/dist/roadtrip/p-80344aa2.entry.js.map +1 -0
  128. package/dist/roadtrip/{p-ebada9f6.entry.js → p-b0203787.entry.js} +2 -2
  129. package/dist/roadtrip/{p-7e1e110f.entry.js → p-c01aaf61.entry.js} +2 -2
  130. package/dist/roadtrip/{p-3aa617b1.entry.js → p-c09d87da.entry.js} +2 -2
  131. package/dist/roadtrip/p-cd1e078c.entry.js +2 -0
  132. package/dist/roadtrip/p-cd436a46.entry.js +2 -0
  133. package/dist/roadtrip/{p-93272a9d.entry.js.map → p-cd436a46.entry.js.map} +1 -1
  134. package/dist/roadtrip/p-d9cbd0b9.entry.js +2 -0
  135. package/dist/roadtrip/p-d9cbd0b9.entry.js.map +1 -0
  136. package/dist/roadtrip/{p-e82c8ca0.entry.js → p-da0e9f4e.entry.js} +2 -2
  137. package/dist/roadtrip/p-db82e012.js.map +1 -1
  138. package/dist/roadtrip/{p-e8bcf7a0.entry.js → p-df2f066e.entry.js} +2 -2
  139. package/dist/roadtrip/{p-dc9509b1.entry.js → p-dfc0d1c5.entry.js} +2 -2
  140. package/dist/roadtrip/{p-fafcecb2.entry.js → p-edfb6a90.entry.js} +2 -2
  141. package/dist/roadtrip/{p-7a7b1fb6.entry.js → p-f91b8ee7.entry.js} +2 -2
  142. package/dist/roadtrip/p-fb33aa91.entry.js +2 -0
  143. package/dist/roadtrip/roadtrip.css +1 -1
  144. package/dist/roadtrip/roadtrip.esm.js +1 -1
  145. package/dist/roadtrip/roadtrip.esm.js.map +1 -1
  146. package/dist/roadtrip/svg/baby-seat-outline.svg +1 -0
  147. package/dist/roadtrip/svg/flag-luxembourg-color.svg +1 -1
  148. package/dist/roadtrip/svg/vehicle-cover-outline.svg +1 -0
  149. package/dist/types/components/radio-card/radio-card.d.ts +25 -0
  150. package/dist/types/components/radio-group/radio-group.d.ts +1 -0
  151. package/dist/types/components.d.ts +45 -0
  152. package/hydrate/index.js +126 -38
  153. package/hydrate/index.mjs +126 -38
  154. package/icons/icons.svg +1 -1
  155. package/icons/index.d.ts +2 -0
  156. package/icons/index.js +2 -0
  157. package/package.json +1 -1
  158. package/dist/roadtrip/p-2f89b651.entry.js +0 -2
  159. package/dist/roadtrip/p-2f89b651.entry.js.map +0 -1
  160. package/dist/roadtrip/p-41bab704.entry.js +0 -2
  161. package/dist/roadtrip/p-6fb0f8b8.entry.js +0 -2
  162. package/dist/roadtrip/p-93272a9d.entry.js +0 -2
  163. package/dist/roadtrip/p-97245610.entry.js +0 -2
  164. package/dist/roadtrip/p-ce386f80.entry.js +0 -2
  165. package/dist/roadtrip/p-ce386f80.entry.js.map +0 -1
  166. /package/dist/roadtrip/{p-78e6204e.entry.js.map → p-02a6e387.entry.js.map} +0 -0
  167. /package/dist/roadtrip/{p-cb8924ee.entry.js.map → p-0b847a5d.entry.js.map} +0 -0
  168. /package/dist/roadtrip/{p-4765c524.entry.js.map → p-0dce3168.entry.js.map} +0 -0
  169. /package/dist/roadtrip/{p-061f6889.entry.js.map → p-1ca62c28.entry.js.map} +0 -0
  170. /package/dist/roadtrip/{p-df897815.entry.js.map → p-355fcb74.entry.js.map} +0 -0
  171. /package/dist/roadtrip/{p-4329a5ff.entry.js.map → p-4b1ac843.entry.js.map} +0 -0
  172. /package/dist/roadtrip/{p-38fd91b3.entry.js.map → p-56f18548.entry.js.map} +0 -0
  173. /package/dist/roadtrip/{p-ab550b59.entry.js.map → p-5f2a4cd5.entry.js.map} +0 -0
  174. /package/dist/roadtrip/{p-f9ba8499.entry.js.map → p-5f6255ea.entry.js.map} +0 -0
  175. /package/dist/roadtrip/{p-5ed9e829.entry.js.map → p-6cde1247.entry.js.map} +0 -0
  176. /package/dist/roadtrip/{p-0de7b85d.entry.js.map → p-6e65c377.entry.js.map} +0 -0
  177. /package/dist/roadtrip/{p-c4d3dda1.entry.js.map → p-780de42a.entry.js.map} +0 -0
  178. /package/dist/roadtrip/{p-ebada9f6.entry.js.map → p-b0203787.entry.js.map} +0 -0
  179. /package/dist/roadtrip/{p-7e1e110f.entry.js.map → p-c01aaf61.entry.js.map} +0 -0
  180. /package/dist/roadtrip/{p-3aa617b1.entry.js.map → p-c09d87da.entry.js.map} +0 -0
  181. /package/dist/roadtrip/{p-97245610.entry.js.map → p-cd1e078c.entry.js.map} +0 -0
  182. /package/dist/roadtrip/{p-e82c8ca0.entry.js.map → p-da0e9f4e.entry.js.map} +0 -0
  183. /package/dist/roadtrip/{p-e8bcf7a0.entry.js.map → p-df2f066e.entry.js.map} +0 -0
  184. /package/dist/roadtrip/{p-dc9509b1.entry.js.map → p-dfc0d1c5.entry.js.map} +0 -0
  185. /package/dist/roadtrip/{p-fafcecb2.entry.js.map → p-edfb6a90.entry.js.map} +0 -0
  186. /package/dist/roadtrip/{p-7a7b1fb6.entry.js.map → p-f91b8ee7.entry.js.map} +0 -0
  187. /package/dist/roadtrip/{p-41bab704.entry.js.map → p-fb33aa91.entry.js.map} +0 -0
@@ -0,0 +1,253 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import "./../../utils/polyfill";
3
+ export class RadioCard {
4
+ constructor() {
5
+ this.disabled = false;
6
+ this.selected = false;
7
+ this.inline = true;
8
+ this.isSelected = false;
9
+ this.onFocus = () => {
10
+ this.roadfocus.emit();
11
+ };
12
+ this.onBlur = () => {
13
+ this.roadblur.emit();
14
+ };
15
+ this.onClick = () => {
16
+ var _a;
17
+ if (this.disabled)
18
+ return;
19
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.click();
20
+ this.roadchange.emit(this.value);
21
+ window.dispatchEvent(new CustomEvent('road-radio-selected', {
22
+ detail: {
23
+ name: this.name,
24
+ value: this.value,
25
+ },
26
+ }));
27
+ };
28
+ this.onRadioSelected = (event) => {
29
+ const { name, value } = event.detail;
30
+ if (name === this.name) {
31
+ this.isSelected = value === this.value;
32
+ }
33
+ };
34
+ }
35
+ componentWillLoad() {
36
+ this.radioId = `road-radio-${RadioCard.idCounter++}`;
37
+ if (!this.name) {
38
+ this.name = this.radioId;
39
+ }
40
+ if (!this.label) {
41
+ this.label = `${this.radioId}-label`;
42
+ }
43
+ }
44
+ handleRadioSelected(event) {
45
+ this.onRadioSelected(event);
46
+ }
47
+ render() {
48
+ const labelId = `${this.radioId}-label`;
49
+ const inlineClass = this.inline ? 'form-radio-inline' : '';
50
+ const selectedClass = this.isSelected || this.selected ? 'radio-card-selected' : '';
51
+ const disabledClass = this.disabled ? 'radio-card-disabled' : '';
52
+ return (h(Host, { key: '92d10e0e857fa618b651d09d684760345ebcab09', class: `form-radio ${inlineClass}` }, h("div", { key: 'fcdabc5a9f337d8bd1e8a1bf7f3918bd65fa3b61', class: `radio-card ${selectedClass} ${disabledClass}`, onClick: this.onClick }, h("input", { key: 'cab960932990c7b41e248fd45e11f05f0ba946ad', ref: el => this.inputEl = el, class: "form-radio-input", type: "radio", id: this.radioId, name: this.name, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : undefined, checked: this.isSelected || this.selected, "aria-labelledby": labelId, value: this.value, onFocus: this.onFocus, onBlur: this.onBlur, onChange: () => { } }), h("label", { key: '9fbd563bb0d0ceb76374f8fdd961a0ae945cfd3b', class: "form-radio-label", htmlFor: this.radioId, id: labelId }, h("div", { key: 'a66f46c0b7d566492eb791a14a1dc5f37fe1d98c', class: "slot-wrapper" }, h("slot", { key: '2571e75dc92853a6f14ddb8c7c829ce4d3537ae5' }))))));
53
+ }
54
+ static get is() { return "road-radio-card"; }
55
+ static get encapsulation() { return "scoped"; }
56
+ static get originalStyleUrls() {
57
+ return {
58
+ "$": ["radio-card.css"]
59
+ };
60
+ }
61
+ static get styleUrls() {
62
+ return {
63
+ "$": ["radio-card.css"]
64
+ };
65
+ }
66
+ static get properties() {
67
+ return {
68
+ "name": {
69
+ "type": "string",
70
+ "mutable": false,
71
+ "complexType": {
72
+ "original": "string",
73
+ "resolved": "string | undefined",
74
+ "references": {}
75
+ },
76
+ "required": false,
77
+ "optional": true,
78
+ "docs": {
79
+ "tags": [],
80
+ "text": ""
81
+ },
82
+ "getter": false,
83
+ "setter": false,
84
+ "attribute": "name",
85
+ "reflect": false
86
+ },
87
+ "disabled": {
88
+ "type": "boolean",
89
+ "mutable": false,
90
+ "complexType": {
91
+ "original": "boolean",
92
+ "resolved": "boolean",
93
+ "references": {}
94
+ },
95
+ "required": false,
96
+ "optional": false,
97
+ "docs": {
98
+ "tags": [],
99
+ "text": ""
100
+ },
101
+ "getter": false,
102
+ "setter": false,
103
+ "attribute": "disabled",
104
+ "reflect": false,
105
+ "defaultValue": "false"
106
+ },
107
+ "selected": {
108
+ "type": "boolean",
109
+ "mutable": false,
110
+ "complexType": {
111
+ "original": "boolean",
112
+ "resolved": "boolean",
113
+ "references": {}
114
+ },
115
+ "required": false,
116
+ "optional": false,
117
+ "docs": {
118
+ "tags": [],
119
+ "text": ""
120
+ },
121
+ "getter": false,
122
+ "setter": false,
123
+ "attribute": "selected",
124
+ "reflect": false,
125
+ "defaultValue": "false"
126
+ },
127
+ "value": {
128
+ "type": "any",
129
+ "mutable": false,
130
+ "complexType": {
131
+ "original": "any | null",
132
+ "resolved": "any",
133
+ "references": {}
134
+ },
135
+ "required": false,
136
+ "optional": true,
137
+ "docs": {
138
+ "tags": [],
139
+ "text": ""
140
+ },
141
+ "getter": false,
142
+ "setter": false,
143
+ "attribute": "value",
144
+ "reflect": false
145
+ },
146
+ "label": {
147
+ "type": "string",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "string",
151
+ "resolved": "string | undefined",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": true,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": ""
159
+ },
160
+ "getter": false,
161
+ "setter": false,
162
+ "attribute": "label",
163
+ "reflect": false
164
+ },
165
+ "inline": {
166
+ "type": "boolean",
167
+ "mutable": false,
168
+ "complexType": {
169
+ "original": "boolean",
170
+ "resolved": "boolean",
171
+ "references": {}
172
+ },
173
+ "required": false,
174
+ "optional": false,
175
+ "docs": {
176
+ "tags": [],
177
+ "text": ""
178
+ },
179
+ "getter": false,
180
+ "setter": false,
181
+ "attribute": "inline",
182
+ "reflect": false,
183
+ "defaultValue": "true"
184
+ }
185
+ };
186
+ }
187
+ static get states() {
188
+ return {
189
+ "isSelected": {},
190
+ "radioId": {}
191
+ };
192
+ }
193
+ static get events() {
194
+ return [{
195
+ "method": "roadfocus",
196
+ "name": "roadfocus",
197
+ "bubbles": true,
198
+ "cancelable": true,
199
+ "composed": true,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": ""
203
+ },
204
+ "complexType": {
205
+ "original": "void",
206
+ "resolved": "void",
207
+ "references": {}
208
+ }
209
+ }, {
210
+ "method": "roadblur",
211
+ "name": "roadblur",
212
+ "bubbles": true,
213
+ "cancelable": true,
214
+ "composed": true,
215
+ "docs": {
216
+ "tags": [],
217
+ "text": ""
218
+ },
219
+ "complexType": {
220
+ "original": "void",
221
+ "resolved": "void",
222
+ "references": {}
223
+ }
224
+ }, {
225
+ "method": "roadchange",
226
+ "name": "roadchange",
227
+ "bubbles": true,
228
+ "cancelable": true,
229
+ "composed": true,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": ""
233
+ },
234
+ "complexType": {
235
+ "original": "any",
236
+ "resolved": "any",
237
+ "references": {}
238
+ }
239
+ }];
240
+ }
241
+ static get elementRef() { return "el"; }
242
+ static get listeners() {
243
+ return [{
244
+ "name": "road-radio-selected",
245
+ "method": "handleRadioSelected",
246
+ "target": "window",
247
+ "capture": false,
248
+ "passive": false
249
+ }];
250
+ }
251
+ }
252
+ RadioCard.idCounter = 0;
253
+ //# sourceMappingURL=radio-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-card.js","sourceRoot":"","sources":["../../../src/components/radio-card/radio-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Listen,\n} from '@stencil/core';\nimport './../../utils/polyfill';\n\n\n@Component({\n tag: 'road-radio-card',\n styleUrl: 'radio-card.css',\n scoped: true,\n})\nexport class RadioCard {\n private inputEl?: HTMLInputElement;\n\n @Element() el!: HTMLRoadRadioCardElement;\n\n private static idCounter = 0;\n\n @Prop() name?: string;\n @Prop() disabled: boolean = false;\n @Prop() selected: boolean = false;\n @Prop() value?: any | null;\n @Prop() label?: string;\n @Prop() inline: boolean = true;\n\n @State() isSelected: boolean = false;\n @State() radioId!: string;\n\n @Event() roadfocus!: EventEmitter<void>;\n \n @Event() roadblur!: EventEmitter<void>;\n @Event() roadchange!: EventEmitter<any>;\n\n componentWillLoad() {\n this.radioId = `road-radio-${RadioCard.idCounter++}`;\n if (!this.name) {\n this.name = this.radioId;\n }\n if (!this.label) {\n this.label = `${this.radioId}-label`;\n }\n }\n\n private onFocus = () => {\n this.roadfocus.emit();\n };\n\n private onBlur = () => {\n this.roadblur.emit();\n };\n\n private onClick = () => {\n if (this.disabled) return;\n\n this.inputEl?.click();\n this.roadchange.emit(this.value);\n\n window.dispatchEvent(new CustomEvent('road-radio-selected', {\n detail: {\n name: this.name,\n value: this.value,\n },\n }));\n };\n\n private onRadioSelected = (event: CustomEvent) => {\n const { name, value } = event.detail;\n\n if (name === this.name) {\n this.isSelected = value === this.value;\n }\n };\n\n @Listen('road-radio-selected', { target: 'window' })\n handleRadioSelected(event: CustomEvent) {\n this.onRadioSelected(event);\n }\n\n render() {\n const labelId = `${this.radioId}-label`;\n const inlineClass = this.inline ? 'form-radio-inline' : '';\n const selectedClass = this.isSelected || this.selected ? 'radio-card-selected' : '';\n const disabledClass = this.disabled ? 'radio-card-disabled' : '';\n\n return (\n <Host class={`form-radio ${inlineClass}`}>\n <div class={`radio-card ${selectedClass} ${disabledClass}`} onClick={this.onClick}>\n <input\n ref={el => this.inputEl = el}\n class=\"form-radio-input\"\n type=\"radio\"\n id={this.radioId}\n name={this.name}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : undefined}\n checked={this.isSelected || this.selected}\n aria-labelledby={labelId}\n value={this.value}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={() => {}}\n />\n <label class=\"form-radio-label\" htmlFor={this.radioId} id={labelId}>\n <div class=\"slot-wrapper\">\n <slot />\n </div>\n </label>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,90 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
3
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
4
+
5
+ export default {
6
+ title: 'Forms/Radio Card',
7
+ component: 'road-radio-card',
8
+ subcomponents: {
9
+ 'road-radio-group': 'road-radio-group',
10
+ },
11
+ parameters: {
12
+ actions: {
13
+ handles: ['roadblur', 'roadfocus'],
14
+ },
15
+ docs: {
16
+ description: {
17
+ component: 'A radio is used in a `radio-group`. It allows a user to select at most one radio button from a set.',
18
+ },
19
+ },
20
+ },
21
+ };
22
+
23
+ export const Playground = (args) => html`
24
+ <road-radio-group
25
+ name=${ifDefined(args.name)}
26
+ label="Label of radio group"
27
+ .asterisk=${args.asterisk}
28
+ @roadchange=${(event) => args.roadchange?.(event.detail.value)}
29
+ >
30
+ <road-radio-card
31
+ .disabled=${args.disabled}
32
+ .selected=${args.selected}
33
+ label=${ifDefined(args.label)}
34
+ value=${ifDefined(args.value)}
35
+ radio-id=${ifDefined(args['radio-id'])}
36
+ >
37
+ ${unsafeHTML(args.slotContent)}
38
+ </road-radio-card>
39
+ </road-radio-group>
40
+ `;
41
+
42
+ Playground.args = {
43
+ disabled: false,
44
+ selected: false,
45
+ label: 'Label',
46
+ value: 'on',
47
+ asterisk: false,
48
+ name: 'radio-group-name',
49
+ 'radio-id': '',
50
+ slotContent: `<span>Contenu dans la card</span>`,
51
+ };
52
+
53
+ Playground.argTypes = {
54
+ disabled: { control: 'boolean' },
55
+ selected: { control: 'boolean' },
56
+ asterisk: { control: 'boolean' },
57
+ label: { control: 'text' },
58
+ value: { control: 'text' },
59
+ name: { control: 'text' },
60
+ 'radio-id': { control: 'text' },
61
+ slotContent: {
62
+ control: 'text',
63
+ name: 'Slot Content',
64
+ description: 'HTML content rendered inside the radio card',
65
+ },
66
+ roadblur: {
67
+ action: 'roadblur',
68
+ description: "Emitted when the radio button loses focus.",
69
+ table: {
70
+ category: 'Events',
71
+ type: { summary: 'CustomEvent' },
72
+ },
73
+ },
74
+ roadfocus: {
75
+ action: 'roadfocus',
76
+ description: "Emitted when the radio button has focus.",
77
+ table: {
78
+ category: 'Events',
79
+ type: { summary: 'CustomEvent' },
80
+ },
81
+ },
82
+ roadchange: {
83
+ action: 'roadchange',
84
+ description: "Emitted when the value has changed.",
85
+ table: {
86
+ category: 'Events',
87
+ type: { summary: 'CustomEvent' },
88
+ },
89
+ },
90
+ };
@@ -40,9 +40,16 @@ export class RadioGroup {
40
40
  };
41
41
  }
42
42
  valueChanged(value) {
43
+ this.updateRadios();
43
44
  this.roadchange.emit({ value });
44
45
  this.roadChange.emit({ value });
45
46
  }
47
+ updateRadios() {
48
+ const radios = this.el.querySelectorAll('road-radio-card');
49
+ radios.forEach(radio => {
50
+ radio.checked = (radio.getAttribute('value') === this.value);
51
+ });
52
+ }
46
53
  errorChanged() {
47
54
  if (this.error !== undefined && this.error !== '') {
48
55
  this.el.querySelectorAll('road-radio').forEach(item => item.error = true);
@@ -59,7 +66,7 @@ export class RadioGroup {
59
66
  render() {
60
67
  const labelId = `${this.radioGroupId}-label`;
61
68
  const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';
62
- return (h(Host, { key: '4bdcce655bfa14696ea85dc3bebf8cb0211d872b', role: "radiogroup", class: `form-group ${isInvalidClass}`, "aria-label": this.ariaLabel, onClick: this.onClick }, this.label && h("p", { key: '7882a85ab9d9e4be07b7ae08ec986d1cd3073951', class: "text-content", id: labelId }, this.label, " ", this.asterisk && h("span", { key: 'c5d121db534b7e207aa4b60c8c9534399ed2edf7', class: "asterisk" }, "*")), h("slot", { key: 'e4fb2070693e91af8772c8d2ed556b6c6b09bda7' }), this.error && this.error !== '' && h("p", { key: '361cfc55ad976730645f88e1a3b0d75da7d34a5f', class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && h("p", { key: '2e6c420d699283ef203e264995a06b514ce9da7a', class: "helper" }, this.helper)));
69
+ return (h(Host, { key: 'c0b1fc909fda6bc68c01adf993b30807f18a0486', role: "radiogroup", class: `form-group ${isInvalidClass}`, "aria-label": this.ariaLabel, onClick: this.onClick }, this.label && h("p", { key: 'f23d2998fd001549361d2540a9af9fac62e0754e', class: "text-content", id: labelId }, this.label, " ", this.asterisk && h("span", { key: '299ccd95c783db7768589f92db60ba14b3c1026e', class: "asterisk" }, "*")), h("slot", { key: '8ab9f52912fab8c99c610b4ffb2f7f316d9c8e21' }), this.error && this.error !== '' && h("p", { key: '9ff0060878567d4b45487f5986e46d57a11c2876', class: "invalid-feedback" }, this.error), this.helper && this.helper !== '' && h("p", { key: 'd081883688e4279ec03663cf595a555f7e9e8304', class: "helper" }, this.helper)));
63
70
  }
64
71
  static get is() { return "road-radio-group"; }
65
72
  static get encapsulation() { return "scoped"; }
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\n/**\n * @slot - Used to add multiple radio components.\n */\n\n@Component({\n tag: 'road-radio-group',\n styleUrl: 'radio-group.css',\n scoped: true,\n})\nexport class RadioGroup {\n\n @Element() el!: HTMLRoadRadioGroupElement;\n\n /**\n * The id of checkbox\n */\n @Prop() radioGroupId: string = `road-radio-group-${radioGroupIds++}`;\n\n /**\n * If `true`, the radios can be deselected.\n */\n @Prop() allowEmptySelection = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.radioGroupId;\n\n /**\n * the value of the radio group.\n */\n @Prop({ mutable: true }) value?: any | null;\n\n /**\n * Label for the field\n */\n @Prop() label?: string;\n\n /**\n * add an asterisk to the label of the field\n */\n @Prop() asterisk?: boolean = false;\n\n /**\n * Label for the field\n */\n @Prop({reflect: true}) ariaLabel: string = `${this.radioGroupId}-label`;\n\n /**\n * Error message for the radio group\n */\n @Prop({ mutable: true }) error?: string;\n\n /**\n * Helper message for the radio group\n */\n @Prop() helper?: string;\n\n @Watch('value')\n valueChanged(value: any | undefined) {\n this.roadchange.emit({ value });\n this.roadChange.emit({ value });\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() roadchange!: EventEmitter<{\n value: string | undefined | null\n }>;\n /** @internal */\n @Event() roadChange!: EventEmitter<{\n value: string | undefined | null\n }>;\n\n private onClick = (ev: Event) => {\n const selectedRadio = ev.target && (ev.target as HTMLElement).closest('road-radio');\n if (selectedRadio) {\n const currentValue = this.value;\n const newValue = (selectedRadio as HTMLRoadRadioElement).value;\n if (newValue !== currentValue) {\n this.value = newValue;\n } else if (this.allowEmptySelection) {\n this.value = undefined;\n }\n this.error = undefined;\n }\n };\n\n @Watch('error')\n errorChanged() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n } else {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = false);\n }\n }\n\n componentWillLoad() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n }\n }\n\n render() {\n const labelId = `${this.radioGroupId}-label`;\n const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';\n\n return (\n <Host\n role=\"radiogroup\"\n class={`form-group ${isInvalidClass}`}\n aria-label={this.ariaLabel}\n onClick={this.onClick}\n >\n {this.label && <p class=\"text-content\" id={labelId}>{this.label} {this.asterisk && <span class=\"asterisk\">*</span>}</p>}\n <slot/>\n {this.error && this.error !== '' && <p class=\"invalid-feedback\">{this.error}</p>}\n {this.helper && this.helper !== '' && <p class=\"helper\">{this.helper}</p>}\n </Host>\n );\n }\n}\n\nlet radioGroupIds = 0;\n"]}
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\n\n/**\n * @slot - Used to add multiple radio components.\n */\n\n@Component({\n tag: 'road-radio-group',\n styleUrl: 'radio-group.css',\n scoped: true,\n})\nexport class RadioGroup {\n\n @Element() el!: HTMLRoadRadioGroupElement;\n\n /**\n * The id of checkbox\n */\n @Prop() radioGroupId: string = `road-radio-group-${radioGroupIds++}`;\n\n /**\n * If `true`, the radios can be deselected.\n */\n @Prop() allowEmptySelection = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.radioGroupId;\n\n /**\n * the value of the radio group.\n */\n @Prop({ mutable: true }) value?: any | null;\n\n /**\n * Label for the field\n */\n @Prop() label?: string;\n\n /**\n * add an asterisk to the label of the field\n */\n @Prop() asterisk?: boolean = false;\n\n /**\n * Label for the field\n */\n @Prop({reflect: true}) ariaLabel: string = `${this.radioGroupId}-label`;\n\n /**\n * Error message for the radio group\n */\n @Prop({ mutable: true }) error?: string;\n\n /**\n * Helper message for the radio group\n */\n @Prop() helper?: string;\n\n @Watch('value')\n valueChanged(value: any | undefined) {\n this.updateRadios();\n this.roadchange.emit({ value });\n this.roadChange.emit({ value });\n }\n \n private updateRadios() {\n const radios = this.el.querySelectorAll('road-radio-card');\n radios.forEach(radio => {\n (radio as any).checked = (radio.getAttribute('value') === this.value);\n });\n }\n \n\n /**\n * Emitted when the value has changed.\n */\n @Event() roadchange!: EventEmitter<{\n value: string | undefined | null\n }>;\n /** @internal */\n @Event() roadChange!: EventEmitter<{\n value: string | undefined | null\n }>;\n\n private onClick = (ev: Event) => {\n const selectedRadio = ev.target && (ev.target as HTMLElement).closest('road-radio');\n if (selectedRadio) {\n const currentValue = this.value;\n const newValue = (selectedRadio as HTMLRoadRadioElement).value;\n if (newValue !== currentValue) {\n this.value = newValue;\n } else if (this.allowEmptySelection) {\n this.value = undefined;\n }\n this.error = undefined;\n }\n };\n\n @Watch('error')\n errorChanged() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n } else {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = false);\n }\n }\n\n componentWillLoad() {\n if (this.error !== undefined && this.error !== '') {\n this.el.querySelectorAll('road-radio').forEach(item => item.error = true);\n }\n }\n\n render() {\n const labelId = `${this.radioGroupId}-label`;\n const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';\n\n return (\n <Host\n role=\"radiogroup\"\n class={`form-group ${isInvalidClass}`}\n aria-label={this.ariaLabel}\n onClick={this.onClick}\n >\n {this.label && <p class=\"text-content\" id={labelId}>{this.label} {this.asterisk && <span class=\"asterisk\">*</span>}</p>}\n <slot/>\n {this.error && this.error !== '' && <p class=\"invalid-feedback\">{this.error}</p>}\n {this.helper && this.helper !== '' && <p class=\"helper\">{this.helper}</p>}\n </Host>\n );\n }\n}\n\nlet radioGroupIds = 0;\n"]}
@@ -95,14 +95,14 @@ export class Range {
95
95
  render() {
96
96
  const value = this.getValue();
97
97
  const datalist = this.showLabels !== undefined ? `tickmarks` : "";
98
- return (h(Host, { key: 'b9bf2e10c86f928712def9dd10e123bf6bd62d46', tabindex: "0", class: { disabled: this.disabled } }, h("div", { key: '9e6c1bac87a60accb176f416726a63319f1e00a2', class: "form-group d-flex align-items-end" }, this.showTick && (h("road-icon", { key: '0c9947463651c065b386fb126a646f39359f32cd', icon: navigationAddLessSolid, class: "mr-8", size: "sm" })), h("div", { key: 'f792239e07e2fb7c7a5c8c6b6629e199ce24d560', class: "form-range", style: {
98
+ return (h(Host, { key: 'f1486d106b3d7013b3e6b1d99d646c70127dbbdd', tabindex: "0", class: { disabled: this.disabled } }, h("div", { key: 'fd44d0ce903ba469fc2142a19b049676fddd2005', class: "form-group d-flex align-items-end" }, this.showTick && (h("road-icon", { key: '723c5da5321440524ffb5cf69ed2d71196996541', icon: navigationAddLessSolid, class: "mr-8", size: "sm" })), h("div", { key: '4653394e0dcfa7d452236f57bd2052ac9928007f', class: "form-range", style: {
99
99
  "--min": this.min,
100
100
  "--max": this.max,
101
101
  "--value": value,
102
102
  "--background-color": this.disabled
103
103
  ? "var(--road-surface-disabled)"
104
104
  : "initial",
105
- } }, this.showValue && h("output", { key: '7468eb63d48e3dd4add1dbdb72b4a29eaa6644ea' }), this.showLabels && h("slot", { key: '77d9511bc01e48d1cef2f577fdb5d6d2782d756b', name: "datalist" }), h("input", { key: 'dcba864aaaf01686c7205b33f49f0437aff45efc', type: "range", class: "form-range-input", id: this.rangeId, min: this.min, max: this.max, value: value, onInput: this.onInput, list: datalist, "aria-label": "Valeur", tabindex: "0", disabled: this.disabled }), h("label", { key: 'a524dd016f0236cfc053e415a118fed7960515ea', class: "form-range-label" }, "Valeur"), h("div", { key: 'ca307d8df415ed2a77b7774791387f5bd6ab5d14', class: "form-range-progress" })), this.showTick && (h("road-icon", { key: 'f2a35383d6cbae76a337b78b53cd9ffa15a7daef', icon: navigationAddMoreSolid, class: "ml-8", size: "sm" })))));
105
+ } }, this.showValue && h("output", { key: '2d3504f149aeba0bca77b7a7d03ac3fb9f3267b1' }), this.showLabels && h("slot", { key: '45c91307a659459919e67f022766bf98189a4511', name: "datalist" }), h("input", { key: '0cc864289e5c44b2dac2521af90b00dfa1d0625c', type: "range", class: "form-range-input", id: this.rangeId, min: this.min, max: this.max, value: value, onInput: this.onInput, list: datalist, "aria-label": "Valeur", tabindex: "0", disabled: this.disabled }), h("label", { key: '97c50d5a81be438d34f23223ef1e5acdafcbc1b2', class: "form-range-label" }, "Valeur"), h("div", { key: '92568d77bdbb044f66f0f5557ba81673836bd433', class: "form-range-progress" })), this.showTick && (h("road-icon", { key: '2587580ec2c19de6d2cf799e4a39bd02c555d19a', icon: navigationAddMoreSolid, class: "ml-8", size: "sm" })))));
106
106
  }
107
107
  static get is() { return "road-range"; }
108
108
  static get encapsulation() { return "scoped"; }
@@ -37,7 +37,7 @@ export class Rating {
37
37
  const sizeRatingStarsClass = this.size !== undefined ? `rating-stars rating-stars--${this.size}` : 'rating-stars';
38
38
  const sizeRatingNumberClass = this.size !== undefined ? `rating-number rating-number--${this.size}` : 'rating-number';
39
39
  const readOnly = this.readonly == true ? `readonly` : '';
40
- return (h(Host, { key: '3384a50bdc4f0dc8d992ca8160dbe77a8c6ed891' }, h("div", { key: 'f905f3c7c16744d6bd8c34c31e2bec493169b71f', class: `${sizeRatingStarsClass}` }, [...Array(rate)].map(() => h("road-icon", { icon: star, size: "sm", color: "warning" })), [...Array(rateDecimale)].map(() => h("road-icon", { icon: starHalfColor, size: "sm", class: "rating-star" })), [...Array(5 - rate - rateDecimale)].map(() => h("road-icon", { icon: star, size: "sm", class: "rating-star" }))), this.readonly == false && this.showreviews && h("a", { key: '3f973733bb91d8243a84d4b12708a69921858fff', class: `${sizeRatingNumberClass}`, href: this.url }, "(", this.reviews, this.reviewsText && ` ${this.reviewsText}`, ")"), this.readonly == true && this.showreviews && h("road-label", { key: '66f1c7954279baba6b9be9e40af220f77c42cd8f', class: `${sizeRatingNumberClass} ${readOnly}` }, "(", this.reviews, this.reviewsText && ` ${this.reviewsText}`, ")")));
40
+ return (h(Host, { key: '85efd8ef2ccfcecd3740e72a5ba7ce4760e0d9d6' }, h("div", { key: 'eab49904c7777e7f760d8ea79d970a76f0e1e32d', class: `${sizeRatingStarsClass}` }, [...Array(rate)].map(() => h("road-icon", { icon: star, size: "sm", color: "warning" })), [...Array(rateDecimale)].map(() => h("road-icon", { icon: starHalfColor, size: "sm", class: "rating-star" })), [...Array(5 - rate - rateDecimale)].map(() => h("road-icon", { icon: star, size: "sm", class: "rating-star" }))), this.readonly == false && this.showreviews && h("a", { key: 'd63c93743802e7fd5cb49c972bc39802eb6ee586', class: `${sizeRatingNumberClass}`, href: this.url }, "(", this.reviews, this.reviewsText && ` ${this.reviewsText}`, ")"), this.readonly == true && this.showreviews && h("road-label", { key: '57ca56a99dfa88b79b242a6b1ab92c08596bd0a8', class: `${sizeRatingNumberClass} ${readOnly}` }, "(", this.reviews, this.reviewsText && ` ${this.reviewsText}`, ")")));
41
41
  }
42
42
  static get is() { return "road-rating"; }
43
43
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class Row {
6
6
  render() {
7
- return (h(Host, { key: '4d56e5a10387b76a5b9848b29b66b5d1893c1b39' }, h("slot", { key: 'ba686ef7958ff67384c6ca8d88767f1dd55e9f5a' })));
7
+ return (h(Host, { key: '6ee0a00bc04c580a827d19c99ec3e818d6def582' }, h("slot", { key: '6ad15bc804554c3e72dec334b40d7d28e277e92f' })));
8
8
  }
9
9
  static get is() { return "road-row"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -52,10 +52,10 @@ export class SegmentedButton {
52
52
  render() {
53
53
  const { tabIndex, selected, tab } = this;
54
54
  const sizeClass = this.size !== undefined ? `btn-${this.size}` : '';
55
- return (h(Host, { key: 'ea3ccb61b3e95bb8b266e1e47ecbd5a795a78f62', onClick: this.onClick, onKeyup: this.onKeyUp, role: "tab", tabindex: tabIndex, "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
55
+ return (h(Host, { key: '6433591d09a54719de64718201a2a51ad79ae28b', onClick: this.onClick, onKeyup: this.onKeyUp, role: "tab", tabindex: tabIndex, "aria-selected": selected ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
56
56
  'tab-selected': selected,
57
57
  [`${sizeClass}`]: true,
58
- } }, h("span", { key: 'f32414ad539917d0266447d41411eae0cd1f5926', tabIndex: -1, class: "button-native", part: "native", "aria-hidden": "true" }, h("slot", { key: '2a6270a073b709201505490b242e9b2425745779' }))));
58
+ } }, h("span", { key: 'f3e0bf769c686b17171afe0130ac5e4736aa2ff4', tabIndex: -1, class: "button-native", part: "native", "aria-hidden": "true" }, h("slot", { key: '496201687fa4e9138d1a817215c4c90255f7232c' }))));
59
59
  }
60
60
  static get is() { return "road-segmented-button"; }
61
61
  static get encapsulation() { return "shadow"; }
@@ -18,7 +18,7 @@ export class ButtonBar {
18
18
  this.selectedTabChanged();
19
19
  }
20
20
  render() {
21
- return (h(Host, { key: '2427e30d3c49f36fcf017f1312d92b46b92e5f13', role: "tablist" }, h("slot", { key: '7e058b2ec325091ec5e30f0db30d893547e13e49' })));
21
+ return (h(Host, { key: 'afd642615f117aadf941aa07e1006b87bc7af6ee', role: "tablist" }, h("slot", { key: '331b574bb64568dc247cd9789232d4dffebec937' })));
22
22
  }
23
23
  static get is() { return "road-segmented-button-bar"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -86,7 +86,7 @@ export class Tabs {
86
86
  return Array.from(this.el.querySelectorAll('road-tab'));
87
87
  }
88
88
  render() {
89
- return (h(Host, { key: 'dc63c94596a53cd134f9327dd7fafcf70b94486b', onRoadSegmentedButtonClick: this.onTabClicked }, h("slot", { key: 'cd32b915b40f0d0ae2a5bd377a68f9ce4e41d363', name: "top" }), h("slot", { key: 'cfb4c62f06a98490ca37f27038737174641c8d4d' })));
89
+ return (h(Host, { key: '0fe1c4ddf4b2d269ed66c456e411263d8de29c3f', onRoadSegmentedButtonClick: this.onTabClicked }, h("slot", { key: 'da756417993e0157ed3a7a4dda96abcdfc3d6c05', name: "top" }), h("slot", { key: '37678b31b482735d1a1cc5ed2c37f4a8d4d7ee4b' })));
90
90
  }
91
91
  static get is() { return "road-segmented-buttons"; }
92
92
  static get encapsulation() { return "shadow"; }
@@ -92,7 +92,7 @@ export class Select {
92
92
  const labelId = this.selectId + '-label';
93
93
  const hasValueClass = this.value && this.value !== '' ? 'has-value' : '';
94
94
  const isInvalidClass = this.error !== undefined && this.error !== '' ? 'is-invalid' : '';
95
- return (h(Host, { key: 'd4d455ace814f7a19cb9e683fb103f43b6d4783b', class: this.sizes && `select-${this.sizes}` }, h("select", { key: '4432e042ced51b80b81832e8495e1dd060fc7952', class: `form-select ${hasValueClass} ${isInvalidClass}`, id: this.selectId, "aria-disabled": this.disabled ? 'true' : null, autoFocus: this.autofocus, disabled: this.disabled, name: this.name, required: this.required, size: this.size, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur }, h("option", { key: '2244f8e581db9229442d60fff809e07ade736091', selected: !this.value, disabled: true, hidden: true, style: { display: 'none' }, value: "" }), this.options && this.options.map(option => (h("option", { value: option.value, selected: this.value !== null && option.value == this.value }, option.label)))), h("label", { key: '72d9295f23671d0113b3b12f61aa13448d6f80f0', class: "form-select-label", id: labelId, htmlFor: this.selectId }, this.label), this.error && this.error !== '' && h("p", { key: 'b97bd0875b474013c3824f9fdb87390262e9f144', class: "invalid-feedback" }, this.error)));
95
+ return (h(Host, { key: 'f587a8414c05e32346f937765d28bce047615a39', class: this.sizes && `select-${this.sizes}` }, h("select", { key: 'e7b292e72914e7dacf0291609a0cb1d65eb0a3fa', class: `form-select ${hasValueClass} ${isInvalidClass}`, id: this.selectId, "aria-disabled": this.disabled ? 'true' : null, autoFocus: this.autofocus, disabled: this.disabled, name: this.name, required: this.required, size: this.size, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur }, h("option", { key: '24d8ce15efedece915747955ae8a0842e5578e54', selected: !this.value, disabled: true, hidden: true, style: { display: 'none' }, value: "" }), this.options && this.options.map(option => (h("option", { value: option.value, selected: this.value !== null && option.value == this.value }, option.label)))), h("label", { key: '128f0f39050595aac1833f642b2742429a4c96cd', class: "form-select-label", id: labelId, htmlFor: this.selectId }, this.label), this.error && this.error !== '' && h("p", { key: '94fffc12a2be58bf311b4588ead8fa0331e0c3ca', class: "invalid-feedback" }, this.error)));
96
96
  }
97
97
  static get is() { return "road-select"; }
98
98
  static get encapsulation() { return "scoped"; }
@@ -107,8 +107,8 @@ export class SelectFilter {
107
107
  const options = this.filteredOptions;
108
108
  const isActive = this.isActive ? 'true' : 'false';
109
109
  const notActive = this.isActive ? '' : 'not-active';
110
- return (h(Host, { key: 'fff9f64f26850281576ed7de2e8104fad18862f9', "is-active": isActive }, h("slot", { key: 'a66b13f411768a00e0d45ed9801a84f3b2684f75' }), this.isOpen &&
111
- h("ul", { key: '5230013f47dccc082c73abfb8474a0791a7e992b', class: `${notActive} select-filter-list`, role: "listbox", onMouseLeave: this.handleMouseLeave }, options.map((option, idx) => (h("li", { class: `select-filter-item ${this.activeIndex === idx ? 'active' : ''}`, role: "option", "aria-selected": this.activeIndex === idx ? 'true' : 'false', onClick: () => this.handleOptionClick(option.item.value, option.item.label.replace(/(<([^>]+)>)/gi, "")), onMouseOver: () => this.handleOptionMouseOver(idx), innerHTML: option.item.label, tabindex: this.activeIndex === idx ? 0 : -1 }))))));
110
+ return (h(Host, { key: 'ff1cb375e4108fbfe44f307ad6d00be4fec03430', "is-active": isActive }, h("slot", { key: '987d24b1f5ad17ef8a0e83e3165d1e137bf4d6e5' }), this.isOpen &&
111
+ h("ul", { key: '41e10aed226c8131e4313ea33da1ea6c79969b80', class: `${notActive} select-filter-list`, role: "listbox", onMouseLeave: this.handleMouseLeave }, options.map((option, idx) => (h("li", { class: `select-filter-item ${this.activeIndex === idx ? 'active' : ''}`, role: "option", "aria-selected": this.activeIndex === idx ? 'true' : 'false', onClick: () => this.handleOptionClick(option.item.value, option.item.label.replace(/(<([^>]+)>)/gi, "")), onMouseOver: () => this.handleOptionMouseOver(idx), innerHTML: option.item.label, tabindex: this.activeIndex === idx ? 0 : -1 }))))));
112
112
  }
113
113
  static get is() { return "road-select-filter"; }
114
114
  static get encapsulation() { return "scoped"; }
@@ -1,7 +1,7 @@
1
1
  import { h } from "@stencil/core";
2
2
  export class Skeleton {
3
3
  render() {
4
- return (h("span", { key: '03bd8098ff469f17744141c229b9b3ad863b0124' }, "\u00A0"));
4
+ return (h("span", { key: 'cf58a469e049fce0303bf49ec1c86233b1b4e305' }, "\u00A0"));
5
5
  }
6
6
  static get is() { return "road-skeleton"; }
7
7
  static get encapsulation() { return "shadow"; }
@@ -13,7 +13,7 @@ export class Spinner {
13
13
  render() {
14
14
  const sizeClass = this.size !== undefined ? `spinner spinner--${this.size}` : 'spinner';
15
15
  const colorClass = this.size !== undefined ? `spinner-circle spinner-circle--${this.color}` : 'spinner-circle';
16
- return (h("svg", { key: '5ad4972d7d49afc0c31aa2771c10361cee7f7a25', class: `${sizeClass}`, viewBox: "25 25 50 50" }, h("circle", { key: '842b8a3563edc3ada7f2450e0ef9724c9141bfa0', class: `${colorClass}`, cx: "50", cy: "50", r: "20" })));
16
+ return (h("svg", { key: '3e1e5094311da649229f7fa9b3bc7b12d5251cda', class: `${sizeClass}`, viewBox: "25 25 50 50" }, h("circle", { key: '6257e336cdf32cfa80973f4466eb9adcbf7fa239', class: `${colorClass}`, cx: "50", cy: "50", r: "20" })));
17
17
  }
18
18
  static get is() { return "road-spinner"; }
19
19
  static get encapsulation() { return "shadow"; }
@@ -70,11 +70,11 @@ export class Switch {
70
70
  }
71
71
  render() {
72
72
  const labelId = this.switchId + '-label';
73
- const textLabel = h("label", { key: '54f56dec9c84250081ebfadd296e7d7488a31175', class: "form-switch-label", id: labelId, htmlFor: this.switchId }, this.label);
73
+ const textLabel = h("label", { key: 'a94f02e2edb416513ef6285b89c221a8fe1d5884', class: "form-switch-label", id: labelId, htmlFor: this.switchId }, this.label);
74
74
  const colorClass = this.color !== undefined ? 'form-switch-' + this.color : '';
75
75
  const isSpacedClass = this.isSpaced && 'form-switch-spaced';
76
76
  const rightSwitchClass = this.hasLeftLabel ? 'form-switch-right' : '';
77
- return (h(Host, { key: 'd4c7bbfdcda90e98bb16805048d9f121fe3bf5dc' }, h("input", { key: '46041634cfc030ef1abefa55946672b744d941ec', class: "form-switch-input", type: "checkbox", id: this.switchId, name: this.name, checked: this.checked, disabled: this.disabled, 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 }), h("label", { key: '280bce0f99cd8c0b16c5dbb45bb6ae4facbac82f', class: `form-switch-label ${isSpacedClass} ${colorClass}`, htmlFor: this.switchId }, this.hasLeftLabel && textLabel, h("div", { key: 'fa649be434996ef636b323481027f48ea755d16d', class: `form-switch-lever ${rightSwitchClass}`, "data-off": this.off, "data-on": this.on }), this.hasLeftLabel ? '' : textLabel)));
77
+ return (h(Host, { key: '5f93e9f0cd857f38d2f70152774b2ae0239ed342' }, h("input", { key: '42528718ca88666d428048a7477ac9ba611f12aa', class: "form-switch-input", type: "checkbox", id: this.switchId, name: this.name, checked: this.checked, disabled: this.disabled, 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 }), h("label", { key: '0d5c0ef117c9235387e47b628c9036c3844cb9be', class: `form-switch-label ${isSpacedClass} ${colorClass}`, htmlFor: this.switchId }, this.hasLeftLabel && textLabel, h("div", { key: '0d16ade7abfe28bae3f7d756b89799aa737dd653', class: `form-switch-lever ${rightSwitchClass}`, "data-off": this.off, "data-on": this.on }), this.hasLeftLabel ? '' : textLabel)));
78
78
  }
79
79
  static get is() { return "road-switch"; }
80
80
  static get encapsulation() { return "scoped"; }
@@ -21,9 +21,9 @@ export class Tab {
21
21
  }
22
22
  render() {
23
23
  const { tab, active } = this;
24
- return (h(Host, { key: 'be0ce5a323e835e0e17bcfc23c010876518f705f', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
24
+ return (h(Host, { key: '4559e255fa71417fe4fcd713b91c2186d55653c0', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
25
25
  'tab-hidden': !active,
26
- } }, h("slot", { key: 'b3e5f1b7811c480cbf5971293c95a244354d37b1' })));
26
+ } }, h("slot", { key: '3ec299696cf719bf911fe0c27befb34d8de3afcd' })));
27
27
  }
28
28
  static get is() { return "road-tab"; }
29
29
  static get encapsulation() { return "shadow"; }
@@ -36,11 +36,11 @@ export class TabBar {
36
36
  }
37
37
  render() {
38
38
  const { expand, center, secondary } = this;
39
- return (h(Host, { key: '5b37e3605410e8cbb5a953216957bd49ed348949', role: "tablist", class: {
39
+ return (h(Host, { key: '793bbb41d74e6e4dd0a7a5ee67b418fd59f61c7c', role: "tablist", class: {
40
40
  'tab-expand': expand,
41
41
  'tab-center': center,
42
42
  'tab-secondary': secondary,
43
- } }, h("slot", { key: '40f8b74647a678eae3e772d67fdef3e285c91250' })));
43
+ } }, h("slot", { key: '4e2713a1a01ed7fcd8503a8231223d2793e8f808' })));
44
44
  }
45
45
  static get is() { return "road-tab-bar"; }
46
46
  static get encapsulation() { return "shadow"; }
@@ -71,7 +71,7 @@ export class TabButton {
71
71
  rel,
72
72
  target,
73
73
  };
74
- return (h(Host, { key: 'd75aef7fd1d24c4d510b81110769176be7c94b86', 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: {
74
+ return (h(Host, { key: '4766bf5988d063443b6a7958fe1c18ab20b4392d', 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: {
75
75
  'tab-selected': selected,
76
76
  'tab-has-label': hasLabel,
77
77
  'tab-has-icon': hasIcon,
@@ -79,7 +79,7 @@ export class TabButton {
79
79
  'tab-has-icon-only': hasIcon && !hasLabel,
80
80
  [`tab-layout-${layout}`]: true,
81
81
  'tab-disabled': disabled, // Classe CSS pour les styles désactivés
82
- } }, h("a", Object.assign({ key: '0674b22edd491c00bd4b748bd3db998dcb16a550' }, attrs, { tabIndex: -1, class: "button-native", part: "native" }), h("span", { key: '3c8fb23151939c48dd4239240385a995daed93e8', class: "button-inner" }, h("slot", { key: 'df8b3f6c3087b0f7ced5f6cb38733c9ee50db760' })))));
82
+ } }, h("a", Object.assign({ key: 'f11c00761d9057129770874f321f3afaa18a53e0' }, attrs, { tabIndex: -1, class: "button-native", part: "native" }), h("span", { key: '51c886bf60aa0544124c0e2cb19b20d9e0bb720e', class: "button-inner" }, h("slot", { key: '6f7d6d16789eb4db922fd3b49cbbe2df68fc71a1' })))));
83
83
  }
84
84
  static get is() { return "road-tab-button"; }
85
85
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { h } from "@stencil/core";
4
4
  */
5
5
  export class Table {
6
6
  render() {
7
- return (h("slot", { key: 'e732734d32731bf220436443f306c3a57b3da9b4' }));
7
+ return (h("slot", { key: '82316326496fee8116dbdc08996a51aa46848cfe' }));
8
8
  }
9
9
  static get is() { return "road-table"; }
10
10
  static get encapsulation() { return "scoped"; }