@ukic/web-components 3.15.0 → 3.17.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.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +9 -5
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +8 -4
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +14 -6
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +18 -3
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +3 -3
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +2 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +18 -18
- package/dist/collection/components/ic-data-list/ic-data-list.css +1 -0
- package/dist/collection/components/ic-data-row/ic-data-row.css +2 -0
- package/dist/collection/components/ic-footer/ic-footer.js +29 -5
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.stories.js +31 -0
- package/dist/collection/components/ic-hero/ic-hero.css +0 -2
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
- package/dist/collection/components/ic-input-validation/ic-input-validation.css +2 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +17 -18
- package/dist/collection/components/ic-menu/ic-menu.css +8 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +12 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +2 -7
- package/dist/collection/components/ic-pagination/ic-pagination.js +28 -4
- package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
- package/dist/collection/components/ic-pagination/ic-pagination.stories.js +5 -3
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +7 -7
- package/dist/collection/components/ic-radio-group/ic-radio-group.css +6 -6
- package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +12 -12
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +60 -54
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +9 -5
- package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +8 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +19 -19
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +20 -20
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -21
- package/dist/collection/components/ic-tab-context/ic-tabs.stories.js +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +19 -19
- package/dist/collection/components/ic-toast/ic-toast.css +26 -1
- package/dist/collection/components/ic-toast/ic-toast.js +39 -5
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast/ic-toast.stories.js +21 -9
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +14 -14
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +52 -4
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +7 -7
- package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +11 -11
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +15 -15
- package/dist/collection/components/ic-typography/ic-typography.stories.js +1 -1
- package/dist/collection/patterns/top-nav-content-footer.stories.js +1 -1
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-data-list.js.map +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-footer.js +10 -5
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-menu2.js +1 -1
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-pagination.js +9 -4
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +10 -7
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +1 -1
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-toast.js +15 -6
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +21 -4
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/core/core.css +28 -6
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-082e0068.entry.js +2 -0
- package/dist/core/p-082e0068.entry.js.map +1 -0
- package/dist/core/p-3238389a.entry.js +2 -0
- package/dist/core/p-3238389a.entry.js.map +1 -0
- package/dist/core/p-33e35173.entry.js.map +1 -1
- package/dist/core/p-3636be4f.entry.js +2 -0
- package/dist/core/p-3636be4f.entry.js.map +1 -0
- package/dist/core/p-52c66bfe.entry.js +2 -0
- package/dist/core/p-52c66bfe.entry.js.map +1 -0
- package/dist/core/p-6ed48c46.entry.js +2 -0
- package/dist/core/p-6ed48c46.entry.js.map +1 -0
- package/dist/core/p-8abcc114.entry.js.map +1 -1
- package/dist/core/p-9c52ee48.entry.js +2 -0
- package/dist/core/p-9c52ee48.entry.js.map +1 -0
- package/dist/core/p-afbba548.entry.js +2 -0
- package/dist/core/p-afbba548.entry.js.map +1 -0
- package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
- package/dist/core/{p-0c4ceed9.entry.js → p-b59504f1.entry.js} +2 -2
- package/dist/core/p-b59504f1.entry.js.map +1 -0
- package/dist/core/p-b83a736d.entry.js +3 -0
- package/dist/core/p-b83a736d.entry.js.map +1 -0
- package/dist/core/{p-4bdeb62d.entry.js → p-bdda404b.entry.js} +2 -2
- package/dist/core/p-bdda404b.entry.js.map +1 -0
- package/dist/core/p-ca82850f.entry.js +2 -0
- package/dist/core/p-ca82850f.entry.js.map +1 -0
- package/dist/core/p-ffd0d9d1.entry.js.map +1 -1
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +9 -5
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +2 -2
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +1 -1
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +8 -4
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +9 -6
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +14 -6
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +18 -3
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-footer/ic-footer.d.ts +4 -0
- package/dist/types/components/ic-pagination/ic-pagination.d.ts +4 -0
- package/dist/types/components/ic-toast/ic-toast.d.ts +5 -1
- package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +5 -0
- package/dist/types/components.d.ts +25 -0
- package/hydrate/index.js +72 -33
- package/hydrate/index.mjs +72 -33
- package/package.json +24 -24
- package/vscode-data.json +23 -0
- package/dist/core/p-042cfc35.entry.js +0 -2
- package/dist/core/p-042cfc35.entry.js.map +0 -1
- package/dist/core/p-06c950a3.entry.js +0 -2
- package/dist/core/p-06c950a3.entry.js.map +0 -1
- package/dist/core/p-0c4ceed9.entry.js.map +0 -1
- package/dist/core/p-11d8a504.entry.js +0 -3
- package/dist/core/p-11d8a504.entry.js.map +0 -1
- package/dist/core/p-14d43f64.entry.js +0 -2
- package/dist/core/p-14d43f64.entry.js.map +0 -1
- package/dist/core/p-3680f22c.entry.js +0 -2
- package/dist/core/p-3680f22c.entry.js.map +0 -1
- package/dist/core/p-4bdeb62d.entry.js.map +0 -1
- package/dist/core/p-762ea31a.entry.js +0 -2
- package/dist/core/p-762ea31a.entry.js.map +0 -1
- package/dist/core/p-a5415f6c.entry.js +0 -2
- package/dist/core/p-a5415f6c.entry.js.map +0 -1
- package/dist/core/p-b3cb1e35.entry.js +0 -2
- package/dist/core/p-b3cb1e35.entry.js.map +0 -1
- package/dist/core/p-e7af1e2d.entry.js +0 -2
- package/dist/core/p-e7af1e2d.entry.js.map +0 -1
|
@@ -19,7 +19,7 @@ export default {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export const Default = {
|
|
22
|
-
render: (
|
|
22
|
+
render: () => html`
|
|
23
23
|
<ic-button id="button-1" onclick="buttonClick()"
|
|
24
24
|
>Show/Hide popover</ic-button
|
|
25
25
|
>
|
|
@@ -91,7 +91,7 @@ export const Default = {
|
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
export const MaxHeight = {
|
|
94
|
-
render: (
|
|
94
|
+
render: () => html`
|
|
95
95
|
<style>
|
|
96
96
|
ic-popover-menu {
|
|
97
97
|
--max-height: 100px;
|
|
@@ -158,7 +158,7 @@ export const MaxHeight = {
|
|
|
158
158
|
};
|
|
159
159
|
|
|
160
160
|
export const LeftPlacement = {
|
|
161
|
-
render: (
|
|
161
|
+
render: () => html`
|
|
162
162
|
<div style="margin-left: 1000px">
|
|
163
163
|
<ic-button id="button-1" onclick="buttonClick()"
|
|
164
164
|
>Show/Hide popover</ic-button
|
|
@@ -228,7 +228,7 @@ export const LeftPlacement = {
|
|
|
228
228
|
};
|
|
229
229
|
|
|
230
230
|
export const TopPlacement = {
|
|
231
|
-
render: (
|
|
231
|
+
render: () => html`
|
|
232
232
|
<div style="margin-top: 540px">
|
|
233
233
|
<ic-button id="button-1" onclick="buttonClick()"
|
|
234
234
|
>Show/Hide popover</ic-button
|
|
@@ -298,7 +298,7 @@ export const TopPlacement = {
|
|
|
298
298
|
};
|
|
299
299
|
|
|
300
300
|
export const MultiplePopoversOnPage = {
|
|
301
|
-
render: (
|
|
301
|
+
render: () =>
|
|
302
302
|
html` <ic-link href="/">Link1</ic-link>
|
|
303
303
|
<ic-button id="button-1" onclick="buttonClick(1)"
|
|
304
304
|
>Show/Hide popover</ic-button
|
|
@@ -429,7 +429,7 @@ export const MultiplePopoversOnPage = {
|
|
|
429
429
|
};
|
|
430
430
|
|
|
431
431
|
export const AutoOpening = {
|
|
432
|
-
render: (
|
|
432
|
+
render: () => html`
|
|
433
433
|
<ic-button id="button-1" onclick="buttonClick()"
|
|
434
434
|
>Show/Hide popover</ic-button
|
|
435
435
|
>
|
|
@@ -498,7 +498,7 @@ export const AutoOpening = {
|
|
|
498
498
|
};
|
|
499
499
|
|
|
500
500
|
export const PositioningStrategy = {
|
|
501
|
-
render: (
|
|
501
|
+
render: () => html`
|
|
502
502
|
<script>
|
|
503
503
|
var icPopovers = document.querySelectorAll("ic-popover-menu");
|
|
504
504
|
var icParentPopover = icPopovers[0];
|
|
@@ -452,11 +452,11 @@ video {
|
|
|
452
452
|
--ic-input-validation-error: var(--ic-radio-button-state-icon-error);
|
|
453
453
|
}
|
|
454
454
|
|
|
455
|
-
ic-input-label.error {
|
|
455
|
+
:host ic-input-label.error {
|
|
456
456
|
--ic-input-label-text-color: var(--ic-radio-button-input-field-label-error);
|
|
457
457
|
}
|
|
458
458
|
|
|
459
|
-
ic-input-label.disabled {
|
|
459
|
+
:host ic-input-label.disabled {
|
|
460
460
|
--ic-input-label-text-color: var(
|
|
461
461
|
--ic-radio-button-input-field-label-disabled
|
|
462
462
|
);
|
|
@@ -465,7 +465,7 @@ ic-input-label.disabled {
|
|
|
465
465
|
);
|
|
466
466
|
}
|
|
467
467
|
|
|
468
|
-
ic-input-validation.show-validation {
|
|
468
|
+
:host ic-input-validation.show-validation {
|
|
469
469
|
margin-top: var(--ic-space-sm);
|
|
470
470
|
}
|
|
471
471
|
|
|
@@ -473,8 +473,8 @@ ic-input-validation.show-validation {
|
|
|
473
473
|
margin-top: calc(var(--ic-space-sm) / 2);
|
|
474
474
|
}
|
|
475
475
|
|
|
476
|
-
ic-input-label:not(.with-helper) .ic-typography-label,
|
|
477
|
-
ic-input-label .helpertext {
|
|
476
|
+
:host ic-input-label:not(.with-helper) .ic-typography-label,
|
|
477
|
+
:host ic-input-label .helpertext {
|
|
478
478
|
margin-bottom: var(--ic-space-sm);
|
|
479
479
|
}
|
|
480
480
|
|
|
@@ -485,7 +485,7 @@ ic-input-label .helpertext {
|
|
|
485
485
|
margin-bottom: calc(var(--ic-space-sm) / 2);
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
ic-input-label .helpertext {
|
|
488
|
+
:host ic-input-label .helpertext {
|
|
489
489
|
display: block;
|
|
490
490
|
}
|
|
491
491
|
|
|
@@ -29,7 +29,7 @@ export default {
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export const Default = {
|
|
32
|
-
render: (
|
|
32
|
+
render: () => html`
|
|
33
33
|
<ic-radio-group label="This is a label" name="1">
|
|
34
34
|
<ic-radio-option
|
|
35
35
|
value="valueName1"
|
|
@@ -52,7 +52,7 @@ export const Default = {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
export const Horizontal = {
|
|
55
|
-
render: (
|
|
55
|
+
render: () => html`
|
|
56
56
|
<ic-radio-group
|
|
57
57
|
orientation="horizontal"
|
|
58
58
|
label="This should be horizontal"
|
|
@@ -90,7 +90,7 @@ export const Horizontal = {
|
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
export const Required = {
|
|
93
|
-
render: (
|
|
93
|
+
render: () => html`
|
|
94
94
|
<ic-radio-group label="This is a label" required name="1">
|
|
95
95
|
<ic-radio-option
|
|
96
96
|
value="valueName1"
|
|
@@ -113,7 +113,7 @@ export const Required = {
|
|
|
113
113
|
};
|
|
114
114
|
|
|
115
115
|
export const Disabled = {
|
|
116
|
-
render: (
|
|
116
|
+
render: () => html`
|
|
117
117
|
<ic-radio-group label="This is a label" name="1">
|
|
118
118
|
<ic-radio-option
|
|
119
119
|
value="valueName1"
|
|
@@ -143,7 +143,7 @@ export const Disabled = {
|
|
|
143
143
|
};
|
|
144
144
|
|
|
145
145
|
export const ConditionalDynamic = {
|
|
146
|
-
render: (
|
|
146
|
+
render: () => html`
|
|
147
147
|
<script>
|
|
148
148
|
function handleIcChange(ev) {
|
|
149
149
|
console.log(ev.detail.selectedOption);
|
|
@@ -214,7 +214,7 @@ export const ConditionalDynamic = {
|
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
export const ConditionalStatic = {
|
|
217
|
-
render: (
|
|
217
|
+
render: () => html`
|
|
218
218
|
<ic-radio-group label=" Conditional static" name="1">
|
|
219
219
|
<ic-radio-option value="valueName1" label="option1">
|
|
220
220
|
<ic-text-field
|
|
@@ -248,7 +248,7 @@ export const ConditionalStatic = {
|
|
|
248
248
|
};
|
|
249
249
|
|
|
250
250
|
export const HelperText = {
|
|
251
|
-
render: (
|
|
251
|
+
render: () => html`
|
|
252
252
|
<ic-radio-group
|
|
253
253
|
label="Pick Your Coffee"
|
|
254
254
|
name="1"
|
|
@@ -292,7 +292,7 @@ export const HelperText = {
|
|
|
292
292
|
};
|
|
293
293
|
|
|
294
294
|
export const Small = {
|
|
295
|
-
render: (
|
|
295
|
+
render: () => html`
|
|
296
296
|
<ic-radio-group label="This is a label" name="1" size="small">
|
|
297
297
|
<ic-radio-option
|
|
298
298
|
value="valueName1"
|
|
@@ -315,7 +315,7 @@ export const Small = {
|
|
|
315
315
|
};
|
|
316
316
|
|
|
317
317
|
export const Validation = {
|
|
318
|
-
render: (
|
|
318
|
+
render: () => html`
|
|
319
319
|
<ic-radio-group
|
|
320
320
|
label="This is a label"
|
|
321
321
|
name="1"
|
|
@@ -343,7 +343,7 @@ export const Validation = {
|
|
|
343
343
|
};
|
|
344
344
|
|
|
345
345
|
export const AriaLiveBehaviour = {
|
|
346
|
-
render: (
|
|
346
|
+
render: () =>
|
|
347
347
|
html`<ic-radio-group
|
|
348
348
|
id="field-1"
|
|
349
349
|
label="This is a label"
|
|
@@ -496,7 +496,7 @@ export const AriaLiveBehaviour = {
|
|
|
496
496
|
};
|
|
497
497
|
|
|
498
498
|
export const Form = {
|
|
499
|
-
render: (
|
|
499
|
+
render: () => html`
|
|
500
500
|
<form>
|
|
501
501
|
<ic-radio-group label="This is a label" name="1">
|
|
502
502
|
<ic-radio-option
|
|
@@ -528,7 +528,7 @@ export const Form = {
|
|
|
528
528
|
};
|
|
529
529
|
|
|
530
530
|
export const RTL = {
|
|
531
|
-
render: (
|
|
531
|
+
render: () => html`
|
|
532
532
|
<ic-radio-group label="This is a label" name="group1" dir="rtl">
|
|
533
533
|
<ic-radio-option value="valueName1" label="Default"></ic-radio-option>
|
|
534
534
|
<ic-radio-option
|
|
@@ -441,35 +441,34 @@ video {
|
|
|
441
441
|
}
|
|
442
442
|
|
|
443
443
|
|
|
444
|
-
|
|
444
|
+
:host {
|
|
445
445
|
display: flex;
|
|
446
446
|
flex-direction: column;
|
|
447
447
|
width: -moz-fit-content;
|
|
448
448
|
width: fit-content;
|
|
449
449
|
}
|
|
450
450
|
|
|
451
|
-
.additional-field-wrapper
|
|
451
|
+
:host .additional-field-wrapper-static::slotted([slot="additional-field"]) {
|
|
452
452
|
margin-top: calc(var(--ic-space-sm) / 2);
|
|
453
453
|
margin-left: var(--ic-space-xl);
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
/* The label turns grey when disabled */
|
|
457
|
-
|
|
458
|
-
|
|
457
|
+
:host(.ic-radio-option-disabled),
|
|
458
|
+
:host(.ic-radio-option-disabled) .radio-label {
|
|
459
459
|
--ic-typography-color: var(--ic-radio-button-text-option-disabled);
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
/* Focus states */
|
|
463
|
-
|
|
464
|
-
.container input:focus + span.checkmark,
|
|
465
|
-
.container:
|
|
466
|
-
.container
|
|
467
|
-
:host(:focus) .container input:checked + span.checkmark {
|
|
463
|
+
:host .radio-option-container input:focus + span.checkmark,
|
|
464
|
+
:host .radio-option-container:hover input:focus + span.checkmark,
|
|
465
|
+
:host .radio-option-container:active input:focus + span.checkmark,
|
|
466
|
+
:host(:focus) .radio-option-container input:checked + span.checkmark {
|
|
468
467
|
box-shadow: var(--ic-border-focus);
|
|
469
468
|
}
|
|
470
469
|
|
|
471
470
|
/* The container */
|
|
472
|
-
.container {
|
|
471
|
+
:host .radio-option-container {
|
|
473
472
|
display: grid;
|
|
474
473
|
grid-template-columns: min-content auto;
|
|
475
474
|
position: relative;
|
|
@@ -478,17 +477,17 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
478
477
|
margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);
|
|
479
478
|
}
|
|
480
479
|
|
|
481
|
-
.ic-radio-
|
|
480
|
+
:host(.ic-radio-option-small) .radio-option-container {
|
|
482
481
|
margin: 0 0 0 var(--ic-space-xxs);
|
|
483
482
|
}
|
|
484
483
|
|
|
485
|
-
.container.disabled,
|
|
486
|
-
.container.disabled input:disabled {
|
|
484
|
+
:host .radio-option-container.disabled,
|
|
485
|
+
:host .radio-option-container.disabled input:disabled {
|
|
487
486
|
cursor: default;
|
|
488
487
|
}
|
|
489
488
|
|
|
490
489
|
/* Hide the browser's default radio button */
|
|
491
|
-
.container input {
|
|
490
|
+
:host .radio-option-container input {
|
|
492
491
|
-webkit-appearance: none;
|
|
493
492
|
-moz-appearance: none;
|
|
494
493
|
appearance: none;
|
|
@@ -501,13 +500,13 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
501
500
|
border: none;
|
|
502
501
|
}
|
|
503
502
|
|
|
504
|
-
.ic-radio-
|
|
503
|
+
:host(.ic-radio-option-small) .radio-option-container input {
|
|
505
504
|
height: var(--ic-space-md);
|
|
506
505
|
width: var(--ic-space-md);
|
|
507
506
|
}
|
|
508
507
|
|
|
509
508
|
/* Create a custom radio button */
|
|
510
|
-
.checkmark {
|
|
509
|
+
:host .checkmark {
|
|
511
510
|
display: block;
|
|
512
511
|
position: relative;
|
|
513
512
|
top: 0;
|
|
@@ -521,84 +520,90 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
521
520
|
box-sizing: border-box;
|
|
522
521
|
}
|
|
523
522
|
|
|
524
|
-
.ic-radio-
|
|
523
|
+
:host(.ic-radio-option-small) .checkmark {
|
|
525
524
|
height: var(--ic-space-md);
|
|
526
525
|
width: var(--ic-space-md);
|
|
527
526
|
}
|
|
528
527
|
|
|
529
528
|
/* Show the indicator (dot/circle) when checked */
|
|
530
|
-
.container input:checked ~ .checkmark::after {
|
|
529
|
+
:host .radio-option-container input:checked ~ .checkmark::after {
|
|
531
530
|
display: inline-block;
|
|
532
531
|
}
|
|
533
532
|
|
|
534
533
|
/* On mouse-over, add a light blue background color */
|
|
535
|
-
.container:hover input ~ .checkmark {
|
|
534
|
+
:host .radio-option-container:hover input ~ .checkmark {
|
|
536
535
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);
|
|
537
536
|
border: var(--ic-border-width) solid var(--ic-radio-button-default-hover);
|
|
538
537
|
}
|
|
539
538
|
|
|
540
|
-
.container:hover input:checked ~ .checkmark {
|
|
539
|
+
:host .radio-option-container:hover input:checked ~ .checkmark {
|
|
541
540
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);
|
|
542
541
|
border: 0.125rem solid var(--ic-radio-button-default-hover);
|
|
543
542
|
}
|
|
544
543
|
|
|
545
|
-
|
|
544
|
+
:host
|
|
545
|
+
.radio-option-container:hover:not(.disabled)
|
|
546
|
+
input:checked
|
|
547
|
+
~ .checkmark::after {
|
|
546
548
|
background-color: var(--ic-radio-button-default-hover);
|
|
547
549
|
}
|
|
548
550
|
|
|
549
551
|
/* When pressed, adds the active colours */
|
|
550
|
-
.container:active input ~ .checkmark {
|
|
552
|
+
:host .radio-option-container:active input ~ .checkmark {
|
|
551
553
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);
|
|
552
554
|
border: var(--ic-border-width) solid var(--ic-radio-button-default-pressed);
|
|
553
555
|
}
|
|
554
556
|
|
|
555
557
|
/* When pressed, adds the active colours */
|
|
556
|
-
.container:active input:checked ~ .checkmark {
|
|
558
|
+
:host .radio-option-container:active input:checked ~ .checkmark {
|
|
557
559
|
border: 0.125rem solid var(--ic-radio-button-default-pressed);
|
|
558
560
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);
|
|
559
561
|
}
|
|
560
562
|
|
|
561
|
-
.ic-radio-
|
|
563
|
+
:host(.ic-radio-option-small)
|
|
564
|
+
.radio-option-container
|
|
565
|
+
input:checked
|
|
566
|
+
~ .checkmark {
|
|
562
567
|
border-width: var(--ic-space-1px);
|
|
563
568
|
}
|
|
564
569
|
|
|
565
570
|
/* When pressed and selected, adds the active colours */
|
|
566
|
-
.container:active input:checked ~ .checkmark::after {
|
|
571
|
+
:host .radio-option-container:active input:checked ~ .checkmark::after {
|
|
567
572
|
background-color: var(--ic-radio-button-default-pressed);
|
|
568
573
|
}
|
|
569
574
|
|
|
570
575
|
/* When the radio button is checked */
|
|
571
|
-
.container input:checked ~ .checkmark {
|
|
576
|
+
:host .radio-option-container input:checked ~ .checkmark {
|
|
572
577
|
border: 0.125rem solid var(--ic-radio-button-default-active);
|
|
573
578
|
}
|
|
574
579
|
|
|
575
580
|
/* When the radio button is checked and disabled */
|
|
576
|
-
.container input:checked:disabled ~ .checkmark {
|
|
581
|
+
:host .radio-option-container input:checked:disabled ~ .checkmark {
|
|
577
582
|
border: 0.125rem solid var(--ic-radio-button-border-disabled);
|
|
578
583
|
}
|
|
579
584
|
|
|
580
585
|
/* When the radio button is disabled */
|
|
581
|
-
.container input:disabled ~ .checkmark {
|
|
586
|
+
:host .radio-option-container input:disabled ~ .checkmark {
|
|
582
587
|
border: var(--ic-border-width) dashed var(--ic-radio-button-border-disabled);
|
|
583
588
|
}
|
|
584
589
|
|
|
585
590
|
/* When the radio button is disabled */
|
|
586
|
-
.container input:disabled ~ .checkmark::after {
|
|
591
|
+
:host .radio-option-container input:disabled ~ .checkmark::after {
|
|
587
592
|
background: var(--ic-radio-button-disabled);
|
|
588
593
|
}
|
|
589
594
|
|
|
590
595
|
/* On mouse-over inactive */
|
|
591
|
-
.container:hover input:disabled ~ .checkmark {
|
|
596
|
+
:host .radio-option-container:hover input:disabled ~ .checkmark {
|
|
592
597
|
box-shadow: none;
|
|
593
598
|
border: 0.125rem solid none;
|
|
594
599
|
}
|
|
595
600
|
|
|
596
|
-
.container:active input:disabled ~ .checkmark::after {
|
|
601
|
+
:host .radio-option-container:active input:disabled ~ .checkmark::after {
|
|
597
602
|
background-color: var(--ic-radio-button-disabled);
|
|
598
603
|
}
|
|
599
604
|
|
|
600
605
|
/* Style the indicator (dot/circle) */
|
|
601
|
-
.container .checkmark::after {
|
|
606
|
+
:host .radio-option-container .checkmark::after {
|
|
602
607
|
content: "";
|
|
603
608
|
position: absolute;
|
|
604
609
|
display: none;
|
|
@@ -610,7 +615,7 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
610
615
|
background: var(--ic-radio-button-default-active);
|
|
611
616
|
}
|
|
612
617
|
|
|
613
|
-
.ic-radio-
|
|
618
|
+
:host(.ic-radio-option-small) .radio-option-container .checkmark::after {
|
|
614
619
|
top: 50%;
|
|
615
620
|
left: 50%;
|
|
616
621
|
width: 0.625rem;
|
|
@@ -620,22 +625,22 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
620
625
|
transform: translate(-50%, -50%);
|
|
621
626
|
}
|
|
622
627
|
|
|
623
|
-
.radio-label {
|
|
628
|
+
:host .radio-label {
|
|
624
629
|
margin-left: var(--ic-space-md);
|
|
625
630
|
|
|
626
631
|
--ic-typography-color: var(--ic-radio-button-text-option);
|
|
627
632
|
}
|
|
628
633
|
|
|
629
|
-
.ic-radio-
|
|
634
|
+
:host(.ic-radio-option-small) .radio-label {
|
|
630
635
|
margin-left: var(--ic-space-xs);
|
|
631
636
|
}
|
|
632
637
|
|
|
633
|
-
.additional-field-wrapper {
|
|
638
|
+
:host .additional-field-wrapper-static {
|
|
634
639
|
margin-left: var(--ic-space-xs);
|
|
635
640
|
}
|
|
636
641
|
|
|
637
642
|
/* The line */
|
|
638
|
-
.branch-corner {
|
|
643
|
+
:host .branch-corner {
|
|
639
644
|
color: var(--ic-radio-button-required-bar);
|
|
640
645
|
height: var(--ic-space-md);
|
|
641
646
|
width: var(--ic-space-xl);
|
|
@@ -646,22 +651,22 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
646
651
|
}
|
|
647
652
|
|
|
648
653
|
/* The dynamic container */
|
|
649
|
-
.dynamic-container {
|
|
654
|
+
:host .dynamic-container {
|
|
650
655
|
display: flex;
|
|
651
656
|
position: relative;
|
|
652
657
|
margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-md);
|
|
653
658
|
gap: var(--ic-space-xs);
|
|
654
659
|
}
|
|
655
660
|
|
|
656
|
-
.ic-radio-
|
|
661
|
+
:host(.ic-radio-option-small) .dynamic-container {
|
|
657
662
|
margin-left: 12px;
|
|
658
663
|
}
|
|
659
664
|
|
|
660
|
-
.dynamic-container.hidden {
|
|
665
|
+
:host .dynamic-container.hidden {
|
|
661
666
|
display: none;
|
|
662
667
|
}
|
|
663
668
|
|
|
664
|
-
.dynamic-text {
|
|
669
|
+
:host .dynamic-text {
|
|
665
670
|
color: var(--ic-radio-button-required-text);
|
|
666
671
|
|
|
667
672
|
--ic-typography-color: var(--ic-radio-button-required-text);
|
|
@@ -672,7 +677,8 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
672
677
|
}
|
|
673
678
|
|
|
674
679
|
@media (max-width: 576px) {
|
|
675
|
-
ic-text-field
|
|
680
|
+
:host .additional-field-wrapper-dynamic::slotted(ic-text-field),
|
|
681
|
+
:host .additional-field-wrapper-static::slotted(ic-text-field) {
|
|
676
682
|
--input-width: 100%;
|
|
677
683
|
}
|
|
678
684
|
}
|
|
@@ -680,43 +686,43 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
680
686
|
@media (forced-colors: active) {
|
|
681
687
|
/* Styles here only apply to Forced Colors Mode */
|
|
682
688
|
|
|
683
|
-
.container input:checked ~ .checkmark,
|
|
684
|
-
.container:active input:checked ~ .checkmark {
|
|
689
|
+
:host .radio-option-container input:checked ~ .checkmark,
|
|
690
|
+
:host .radio-option-container:active input:checked ~ .checkmark {
|
|
685
691
|
border-color: Highlight;
|
|
686
692
|
}
|
|
687
693
|
|
|
688
|
-
.container input:checked ~ .checkmark::after,
|
|
689
|
-
.container:active input:checked ~ .checkmark::after {
|
|
694
|
+
:host .radio-option-container input:checked ~ .checkmark::after,
|
|
695
|
+
:host .radio-option-container:active input:checked ~ .checkmark::after {
|
|
690
696
|
background-color: Highlight;
|
|
691
697
|
}
|
|
692
698
|
|
|
693
|
-
.container input:disabled ~ .checkmark,
|
|
694
|
-
.container input:checked:disabled ~ .checkmark {
|
|
699
|
+
:host .radio-option-container input:disabled ~ .checkmark,
|
|
700
|
+
:host .radio-option-container input:checked:disabled ~ .checkmark {
|
|
695
701
|
border-color: GrayText;
|
|
696
702
|
}
|
|
697
703
|
|
|
698
|
-
.container input:disabled ~ .checkmark::after,
|
|
699
|
-
.container:active input:disabled ~ .checkmark::after {
|
|
704
|
+
:host .radio-option-container input:disabled ~ .checkmark::after,
|
|
705
|
+
:host .radio-option-container:active input:disabled ~ .checkmark::after {
|
|
700
706
|
background-color: GrayText;
|
|
701
707
|
}
|
|
702
708
|
}
|
|
703
709
|
|
|
704
710
|
/* Right to left */
|
|
705
|
-
input[type="radio"]:dir(rtl) {
|
|
711
|
+
:host input[type="radio"]:dir(rtl) {
|
|
706
712
|
right: 0;
|
|
707
713
|
}
|
|
708
714
|
|
|
709
|
-
.radio-label:dir(rtl) {
|
|
715
|
+
:host .radio-label:dir(rtl) {
|
|
710
716
|
padding-right: var(--ic-space-sm);
|
|
711
717
|
padding-left: 0;
|
|
712
718
|
}
|
|
713
719
|
|
|
714
|
-
.branch-corner:dir(rtl) {
|
|
720
|
+
:host .branch-corner:dir(rtl) {
|
|
715
721
|
border-radius: 0 0 0.188rem;
|
|
716
722
|
border-right: 0.125rem solid var(--ic-action-default);
|
|
717
723
|
border-left: none;
|
|
718
724
|
}
|
|
719
725
|
|
|
720
|
-
.dynamic-container:dir(rtl) {
|
|
726
|
+
:host .dynamic-container:dir(rtl) {
|
|
721
727
|
margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;
|
|
722
728
|
}
|
|
@@ -137,19 +137,23 @@ export class RadioOption {
|
|
|
137
137
|
return additionalField;
|
|
138
138
|
}
|
|
139
139
|
render() {
|
|
140
|
+
var _a, _b;
|
|
140
141
|
const { additionalFieldDisplay, disabled, dynamicText, form, groupLabel, handleClick, handleKeyDown, hasAdditionalField, label, name, selected, value, theme, } = this;
|
|
141
142
|
const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;
|
|
142
|
-
return (h(Host, { key: '
|
|
143
|
+
return (h(Host, { key: '0a7177993a68c85ed54198b8ee213811aa2e130a', onClick: handleClick, onKeyDown: handleKeyDown, class: {
|
|
143
144
|
["ic-radio-option-disabled"]: !!disabled,
|
|
144
145
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
145
|
-
|
|
146
|
+
["ic-radio-option-small"]: ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === "IC-RADIO-GROUP" &&
|
|
147
|
+
((_b = this.el.parentElement) === null || _b === void 0 ? void 0 : _b.className.includes("ic-radio-group-small")),
|
|
148
|
+
} }, h("div", { key: '64bac9a6440919352131dc732648034a90d7e92e', class: { "radio-option-container": true, disabled: !!disabled } }, h("div", { key: '419dc17817ca4c9945025268e0e00de83db01790' }, h("input", { key: '0885bab10d42cd69eda2e0d78702c6c2afcff615', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: 'df142dc79e23d240abd15f5088d703b6d388456b', class: "checkmark" })), h("ic-typography", { key: '4d5a779bbef4ccb65fbe7ebf6b3aeceafb9227e0', class: "radio-label", variant: "body" }, h("label", { key: '6d2778eb36c462f3c7fa25ed9ae5d8733b0fcb20', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '9772fd4d064854c3db492f430b90098eccd13701', class: {
|
|
146
149
|
"dynamic-container": true,
|
|
147
150
|
hidden: additionalFieldDisplay === "dynamic" && !selected,
|
|
148
|
-
} }, additionalFieldDisplay === "dynamic" && (h("div", { key: '
|
|
149
|
-
|
|
150
|
-
} }, h("slot", { key: '
|
|
151
|
+
} }, additionalFieldDisplay === "dynamic" && (h("div", { key: 'a237b8043bf912d5fb1be67014ae0bde41c5a2a4', class: "branch-corner" })), h("div", { key: '70524014fa4d75197460d321f47824ab20503806' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '2f652884ff6ac334fd6cb688e52d05d0bdabf3de', variant: "caption", role: "alert" }, h("p", { key: '36cc2915b063c8d85e61dd18a3c384460b996d4f', class: "dynamic-text" }, dynamicText))), h("div", { key: 'd8386ddb6c70fd7893544d3c6d1720b349bb378b', class: {
|
|
152
|
+
[`additional-field-wrapper-${additionalFieldDisplay}`]: true,
|
|
153
|
+
} }, h("slot", { key: 'f9b72315938873b57c52af87730ee72b24a413af', name: ADDITIONAL_FIELD })))))));
|
|
151
154
|
}
|
|
152
155
|
static get is() { return "ic-radio-option"; }
|
|
156
|
+
static get encapsulation() { return "scoped"; }
|
|
153
157
|
static get originalStyleUrls() {
|
|
154
158
|
return {
|
|
155
159
|
"$": ["ic-radio-option.css"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n additionalFieldDisplay === \"static\",\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n scoped: true,\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-radio-option-small\"]:\n this.el.parentElement?.tagName === \"IC-RADIO-GROUP\" &&\n this.el.parentElement?.className.includes(\"ic-radio-group-small\"),\n }}\n >\n <div class={{ \"radio-option-container\": true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n [`additional-field-wrapper-${additionalFieldDisplay}`]: true,\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -651,3 +651,11 @@ input[type="search"].truncate-value {
|
|
|
651
651
|
fill: GrayText;
|
|
652
652
|
}
|
|
653
653
|
}
|
|
654
|
+
|
|
655
|
+
/* Breakpoint value chosen as it's a small amount bigger than the search bar's default width */
|
|
656
|
+
@media screen AND (max-width: 22rem) {
|
|
657
|
+
.menu-container {
|
|
658
|
+
max-width: var(--menu-width, var(--input-width, 20rem));
|
|
659
|
+
width: 100%;
|
|
660
|
+
}
|
|
661
|
+
}
|