@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.
Files changed (187) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-footer.cjs.entry.js +9 -5
  6. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-pagination.cjs.entry.js +8 -4
  17. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
  21. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-toast.cjs.entry.js +14 -6
  25. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +18 -3
  27. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/collection/components/ic-button/ic-button.stories.js +3 -3
  30. package/dist/collection/components/ic-checkbox/ic-checkbox.css +2 -0
  31. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +18 -18
  32. package/dist/collection/components/ic-data-list/ic-data-list.css +1 -0
  33. package/dist/collection/components/ic-data-row/ic-data-row.css +2 -0
  34. package/dist/collection/components/ic-footer/ic-footer.js +29 -5
  35. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  36. package/dist/collection/components/ic-footer/ic-footer.stories.js +31 -0
  37. package/dist/collection/components/ic-hero/ic-hero.css +0 -2
  38. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
  39. package/dist/collection/components/ic-input-validation/ic-input-validation.css +2 -1
  40. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +17 -18
  41. package/dist/collection/components/ic-menu/ic-menu.css +8 -0
  42. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +12 -0
  43. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +2 -7
  44. package/dist/collection/components/ic-pagination/ic-pagination.js +28 -4
  45. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  46. package/dist/collection/components/ic-pagination/ic-pagination.stories.js +5 -3
  47. package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +7 -7
  48. package/dist/collection/components/ic-radio-group/ic-radio-group.css +6 -6
  49. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +12 -12
  50. package/dist/collection/components/ic-radio-option/ic-radio-option.css +60 -54
  51. package/dist/collection/components/ic-radio-option/ic-radio-option.js +9 -5
  52. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  53. package/dist/collection/components/ic-search-bar/ic-search-bar.css +8 -0
  54. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +19 -19
  55. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +20 -20
  56. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -21
  57. package/dist/collection/components/ic-tab-context/ic-tabs.stories.js +1 -1
  58. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +19 -19
  59. package/dist/collection/components/ic-toast/ic-toast.css +26 -1
  60. package/dist/collection/components/ic-toast/ic-toast.js +39 -5
  61. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  62. package/dist/collection/components/ic-toast/ic-toast.stories.js +21 -9
  63. package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +14 -14
  64. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +52 -4
  65. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  66. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +7 -7
  67. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +11 -11
  68. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +15 -15
  69. package/dist/collection/components/ic-typography/ic-typography.stories.js +1 -1
  70. package/dist/collection/patterns/top-nav-content-footer.stories.js +1 -1
  71. package/dist/components/ic-checkbox.js.map +1 -1
  72. package/dist/components/ic-data-list.js.map +1 -1
  73. package/dist/components/ic-data-row.js.map +1 -1
  74. package/dist/components/ic-footer.js +10 -5
  75. package/dist/components/ic-footer.js.map +1 -1
  76. package/dist/components/ic-hero.js.map +1 -1
  77. package/dist/components/ic-input-component-container2.js +1 -1
  78. package/dist/components/ic-input-component-container2.js.map +1 -1
  79. package/dist/components/ic-input-validation2.js +1 -1
  80. package/dist/components/ic-input-validation2.js.map +1 -1
  81. package/dist/components/ic-menu2.js +1 -1
  82. package/dist/components/ic-menu2.js.map +1 -1
  83. package/dist/components/ic-navigation-group.js +1 -1
  84. package/dist/components/ic-navigation-group.js.map +1 -1
  85. package/dist/components/ic-navigation-item.js +1 -1
  86. package/dist/components/ic-navigation-item.js.map +1 -1
  87. package/dist/components/ic-pagination.js +9 -4
  88. package/dist/components/ic-pagination.js.map +1 -1
  89. package/dist/components/ic-popover-menu.js.map +1 -1
  90. package/dist/components/ic-radio-group.js +1 -1
  91. package/dist/components/ic-radio-group.js.map +1 -1
  92. package/dist/components/ic-radio-option.js +10 -7
  93. package/dist/components/ic-radio-option.js.map +1 -1
  94. package/dist/components/ic-search-bar.js +1 -1
  95. package/dist/components/ic-search-bar.js.map +1 -1
  96. package/dist/components/ic-side-navigation.js.map +1 -1
  97. package/dist/components/ic-skeleton.js.map +1 -1
  98. package/dist/components/ic-toast.js +15 -6
  99. package/dist/components/ic-toast.js.map +1 -1
  100. package/dist/components/ic-toggle-button-group.js +21 -4
  101. package/dist/components/ic-toggle-button-group.js.map +1 -1
  102. package/dist/core/core.css +28 -6
  103. package/dist/core/core.esm.js +1 -1
  104. package/dist/core/core.esm.js.map +1 -1
  105. package/dist/core/p-082e0068.entry.js +2 -0
  106. package/dist/core/p-082e0068.entry.js.map +1 -0
  107. package/dist/core/p-3238389a.entry.js +2 -0
  108. package/dist/core/p-3238389a.entry.js.map +1 -0
  109. package/dist/core/p-33e35173.entry.js.map +1 -1
  110. package/dist/core/p-3636be4f.entry.js +2 -0
  111. package/dist/core/p-3636be4f.entry.js.map +1 -0
  112. package/dist/core/p-52c66bfe.entry.js +2 -0
  113. package/dist/core/p-52c66bfe.entry.js.map +1 -0
  114. package/dist/core/p-6ed48c46.entry.js +2 -0
  115. package/dist/core/p-6ed48c46.entry.js.map +1 -0
  116. package/dist/core/p-8abcc114.entry.js.map +1 -1
  117. package/dist/core/p-9c52ee48.entry.js +2 -0
  118. package/dist/core/p-9c52ee48.entry.js.map +1 -0
  119. package/dist/core/p-afbba548.entry.js +2 -0
  120. package/dist/core/p-afbba548.entry.js.map +1 -0
  121. package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
  122. package/dist/core/{p-0c4ceed9.entry.js → p-b59504f1.entry.js} +2 -2
  123. package/dist/core/p-b59504f1.entry.js.map +1 -0
  124. package/dist/core/p-b83a736d.entry.js +3 -0
  125. package/dist/core/p-b83a736d.entry.js.map +1 -0
  126. package/dist/core/{p-4bdeb62d.entry.js → p-bdda404b.entry.js} +2 -2
  127. package/dist/core/p-bdda404b.entry.js.map +1 -0
  128. package/dist/core/p-ca82850f.entry.js +2 -0
  129. package/dist/core/p-ca82850f.entry.js.map +1 -0
  130. package/dist/core/p-ffd0d9d1.entry.js.map +1 -1
  131. package/dist/esm/core.js +1 -1
  132. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  133. package/dist/esm/ic-data-list.entry.js.map +1 -1
  134. package/dist/esm/ic-data-row.entry.js.map +1 -1
  135. package/dist/esm/ic-footer.entry.js +9 -5
  136. package/dist/esm/ic-footer.entry.js.map +1 -1
  137. package/dist/esm/ic-hero.entry.js.map +1 -1
  138. package/dist/esm/ic-input-component-container_3.entry.js +2 -2
  139. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  140. package/dist/esm/ic-input-label_2.entry.js +1 -1
  141. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  142. package/dist/esm/ic-navigation-group.entry.js +1 -1
  143. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  144. package/dist/esm/ic-navigation-item.entry.js +1 -1
  145. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  146. package/dist/esm/ic-pagination.entry.js +8 -4
  147. package/dist/esm/ic-pagination.entry.js.map +1 -1
  148. package/dist/esm/ic-radio-group.entry.js +1 -1
  149. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  150. package/dist/esm/ic-radio-option.entry.js +9 -6
  151. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  152. package/dist/esm/ic-search-bar.entry.js +1 -1
  153. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  154. package/dist/esm/ic-toast.entry.js +14 -6
  155. package/dist/esm/ic-toast.entry.js.map +1 -1
  156. package/dist/esm/ic-toggle-button-group.entry.js +18 -3
  157. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  158. package/dist/esm/loader.js +1 -1
  159. package/dist/types/components/ic-footer/ic-footer.d.ts +4 -0
  160. package/dist/types/components/ic-pagination/ic-pagination.d.ts +4 -0
  161. package/dist/types/components/ic-toast/ic-toast.d.ts +5 -1
  162. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +5 -0
  163. package/dist/types/components.d.ts +25 -0
  164. package/hydrate/index.js +72 -33
  165. package/hydrate/index.mjs +72 -33
  166. package/package.json +24 -24
  167. package/vscode-data.json +23 -0
  168. package/dist/core/p-042cfc35.entry.js +0 -2
  169. package/dist/core/p-042cfc35.entry.js.map +0 -1
  170. package/dist/core/p-06c950a3.entry.js +0 -2
  171. package/dist/core/p-06c950a3.entry.js.map +0 -1
  172. package/dist/core/p-0c4ceed9.entry.js.map +0 -1
  173. package/dist/core/p-11d8a504.entry.js +0 -3
  174. package/dist/core/p-11d8a504.entry.js.map +0 -1
  175. package/dist/core/p-14d43f64.entry.js +0 -2
  176. package/dist/core/p-14d43f64.entry.js.map +0 -1
  177. package/dist/core/p-3680f22c.entry.js +0 -2
  178. package/dist/core/p-3680f22c.entry.js.map +0 -1
  179. package/dist/core/p-4bdeb62d.entry.js.map +0 -1
  180. package/dist/core/p-762ea31a.entry.js +0 -2
  181. package/dist/core/p-762ea31a.entry.js.map +0 -1
  182. package/dist/core/p-a5415f6c.entry.js +0 -2
  183. package/dist/core/p-a5415f6c.entry.js.map +0 -1
  184. package/dist/core/p-b3cb1e35.entry.js +0 -2
  185. package/dist/core/p-b3cb1e35.entry.js.map +0 -1
  186. package/dist/core/p-e7af1e2d.entry.js +0 -2
  187. 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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) =>
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) => html`
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: (args) =>
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: (args) => html`
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: (args) => html`
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
- ic-radio-option {
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 [slot="additional-field"] {
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
- ic-radio-option.ic-radio-option-disabled,
458
- ic-radio-option.ic-radio-option-disabled .radio-label {
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:hover input:focus + span.checkmark,
466
- .container:active input:focus + span.checkmark,
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-group-small .container {
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-group-small .container input {
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-group-small .checkmark {
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
- .container:hover:not(.disabled) input:checked ~ .checkmark::after {
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-group-small .container input:checked ~ .checkmark {
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-group-small .container .checkmark::after {
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-group-small .radio-label {
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-group-small .dynamic-container {
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: '3d233946c372788a34128912099c47d6858d7ea9', onClick: handleClick, onKeyDown: handleKeyDown, class: {
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
- } }, h("div", { key: 'e932a0827c6b0620522f9f3df3f5a06316098949', class: { container: true, disabled: !!disabled } }, h("div", { key: '64eeea95469af9831655f56701e2332255bf6669' }, h("input", { key: '32f7a8840d8a14a89f1a79b9c61890e0e2fe23a0', 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: '6cbea9714c51eb75b7be07a509049f0c330ffca5', class: "checkmark" })), h("ic-typography", { key: '55164cf8d231d449267b74389f9d7cd8193ab6db', class: "radio-label", variant: "body" }, h("label", { key: '54014827aa5c16641bc3fa864974382bf0715335', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '5f3e1054494365c3fafdfd421bed64523307406b', class: {
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: 'd9c292dd502569650dcf327a3e48716cde723593', class: "branch-corner" })), h("div", { key: '3994230df8af7e9c5215646a1c5c3d5687961637' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '0b92403d743c4517ca099586a2845e71d528c329', variant: "caption", role: "alert" }, h("p", { key: '0b689ea686ff2cb08b27858920a2f0548c197aa7', class: "dynamic-text" }, dynamicText))), h("div", { key: '7e023eb75b14dd0a75acbe5321ecd676de0a67d4', class: {
149
- "additional-field-wrapper": additionalFieldDisplay === "static",
150
- } }, h("slot", { key: 'b3f82b1650ef67a732b35a32c5088745f31d1f31', name: ADDITIONAL_FIELD })))))));
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":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,OAAO,EACP,KAAK,EAEL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C;;GAEG;AAMH,MAAM,OAAO,WAAW;IALxB;QAMU,sBAAiB,GAAW,EAAE,CAAC;QAC/B,uBAAkB,GAAY,KAAK,CAAC;QAEpC,cAAS,GAAG,KAAK,CAAC;QAI1B;;WAEG;QACsB,2BAAsB,GAC7C,QAAQ,CAAC;QAEX;;WAEG;QACK,aAAQ,GAAa,KAAK,CAAC;QAMnC;;WAEG;QACK,gBAAW,GAAY,4CAA4C,CAAC;QAsB5E;;WAEG;QACK,UAAK,GAAiB,SAAS,CAAC;QAOxC;;WAEG;QACqC,aAAQ,GAAa,KAAK,CAAC;QAC1D,sBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;QA4GnC,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;;YAC1C,MAAM,sBAAsB,GAAI,KAAK,CAAC,MAAkB,CAAC,OAAO,CAC9D,4GAA4G,CAC7G,CAAC;YAEF,IACE,CAAC,IAAI,CAAC,QAAQ;gBACd,CAAC,CAAC,sBAAsB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,EAC/D,CAAC;gBACD,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;oBAC7B,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,kBAAkB,EAAE,0CAAE,KAAK,KAAI,IAAI,CAAC,iBAAiB,CAAC;gBAC1E,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC/C,MAAM,0BAA0B,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAEvE,IACE,IAAI,CAAC,kBAAkB,EAAE,IAAI,QAAQ,CAAC,aAAa;gBACnD,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EACvE,CAAC;gBACD,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAS,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACzC,CAAC,CAAC;KAiFH;IA/QC,oBAAoB;QAClB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IA4CD,oBAAoB;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAOD,WAAW,CAAC,EAAmC;QAC7C,IACE,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAC9D,EAAE,CAAC,MAAkC,CACtC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAOD,oBAAoB;QAClB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,iBAAiB;QACf,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;QAEpC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEpD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,cAAc,CACf,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,sBAAsB,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAGD,2BAA2B,CAAC,KAAqC;QAC/D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,WAAW,CAAC,KAAa;;QAC7B,MAAA,IAAI,CAAC,YAAY,0CAAE,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,kBAAkB;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAC3C,wCAAwC,CACf,CAAC;QAC5B,IAAI,eAAe;YAAE,eAAe,CAAC,WAAW,GAAG,KAAK,CAAC;QACzD,OAAO,eAAe,CAAC;IACzB,CAAC;IA2CD,MAAM;;QACJ,MAAM,EACJ,sBAAsB,EACtB,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,GACN,GAAG,IAAI,CAAC;QAET,MAAM,EAAE,GAAG,mBAAmB,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;QAE5E,OAAO,CACL,EAAC,IAAI,qDACH,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE;gBACL,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,QAAQ;gBACxC,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;gBAC1C,CAAC,uBAAuB,CAAC,EACvB,CAAA,MAAA,IAAI,CAAC,EAAE,CAAC,aAAa,0CAAE,OAAO,MAAK,gBAAgB;qBACnD,MAAA,IAAI,CAAC,EAAE,CAAC,aAAa,0CAAE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;aACpE;YAED,4DAAK,KAAK,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAClE;oBACE,8DACE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAC/B,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACrC,IAAI,EAAE,IAAI,GACH;oBACT,6DAAM,KAAK,EAAC,WAAW,GAAQ,CAC3B;gBACN,sEAAe,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM;oBAC/C,8DAAO,OAAO,EAAE,EAAE,IAAG,KAAK,CAAS,CACrB,CACZ;YACL,kBAAkB,IAAI,CACrB,4DACE,KAAK,EAAE;oBACL,mBAAmB,EAAE,IAAI;oBACzB,MAAM,EAAE,sBAAsB,KAAK,SAAS,IAAI,CAAC,QAAQ;iBAC1D;gBAEA,sBAAsB,KAAK,SAAS,IAAI,CACvC,4DAAK,KAAK,EAAC,eAAe,GAAO,CAClC;gBACD;oBACG,sBAAsB,KAAK,SAAS,IAAI,CACvC,sEAAe,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO;wBAC3C,0DAAG,KAAK,EAAC,cAAc,IAAE,WAAW,CAAK,CAC3B,CACjB;oBACD,4DACE,KAAK,EAAE;4BACL,CAAC,4BAA4B,sBAAsB,EAAE,CAAC,EAAE,IAAI;yBAC7D;wBAED,6DAAM,IAAI,EAAE,gBAAgB,GAAS,CACjC,CACF,CACF,CACP,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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
+ }