@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
@@ -1 +0,0 @@
1
- {"version":3,"names":["icRadioGroupCss","IcRadioGroupStyle0","RadioGroup","constructor","hostRef","this","resizeObserver","ADDITIONAL_FIELD","RADIO_HORIZONTAL","RADIO_VERTICAL","checkedValue","selectedChild","disabled","hideLabel","orientation","required","size","validationAriaLive","validationStatus","validationText","theme","runResizeObserver","ResizeObserver","checkOrientation","observe","el","handleKeyDown","event","additionalFields","Array","from","querySelectorAll","activeEl","document","activeElement","length","radioOptions","map","slotHasContent","stopPropagation","key","getNextItemToSelect","click","preventDefault","currentItem","movingDown","numRadios","nextItem","addSlotChangeListener","_a","radioContainer","addEventListener","setRadioOptions","setFirstRadioOptionTabIndex","value","setTabIndex","children","filter","tagName","forEach","radioOption","index","selected","name","groupLabel","label","initialOrientation","undefined","currentOrientation","watchDisabledHandler","newValue","removeDisabledFalse","orientationChangeHandler","watchThemeHandler","disconnectedCallback","disconnect","_b","removeEventListener","componentWillLoad","componentDidLoad","checkResizeObserver","onComponentRequiredPropUndefined","prop","propName","selectHandler","detail","target","selectedOption","parentElement","icChange","emit","radio","textFieldValue","querySelector","changeHandler","findIndex","totalWidth","isArray","clientWidth","i","arr","render","helperText","showValidation","hasValidationStatus","h","Host","onKeyDown","class","role","id","slot","horizontal","ref","ariaLiveMode","status","message"],"sources":["src/components/ic-radio-group/ic-radio-group.css?tag=ic-radio-group&encapsulation=shadow","src/components/ic-radio-group/ic-radio-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --ic-input-label-text-color: var(--ic-radio-button-input-field-label);\n --ic-input-label-helper-text-color: var(\n --ic-radio-button-input-field-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-radio-button-state-text);\n --ic-input-validation-error: var(--ic-radio-button-state-icon-error);\n}\n\nic-input-label.error {\n --ic-input-label-text-color: var(--ic-radio-button-input-field-label-error);\n}\n\nic-input-label.disabled {\n --ic-input-label-text-color: var(\n --ic-radio-button-input-field-label-disabled\n );\n --ic-input-label-helper-text-color: var(\n --ic-radio-button-input-field-subtitle-disabled\n );\n}\n\nic-input-validation.show-validation {\n margin-top: var(--ic-space-sm);\n}\n\n:host(.ic-radio-group-small) ic-input-validation.show-validation {\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\nic-input-label:not(.with-helper) .ic-typography-label,\nic-input-label .helpertext {\n margin-bottom: var(--ic-space-sm);\n}\n\n:host(.ic-radio-group-small)\n ic-input-label:not(.with-helper)\n .ic-typography-label,\n:host(.ic-radio-group-small) ic-input-label .helpertext {\n margin-bottom: calc(var(--ic-space-sm) / 2);\n}\n\nic-input-label .helpertext {\n display: block;\n}\n\n:host .radio-buttons-container {\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-xxs);\n}\n\n:host(.ic-radio-group-small) .radio-buttons-container {\n gap: var(--ic-space-xxxs);\n}\n\n:host .radio-buttons-container.horizontal {\n display: flex;\n flex-direction: row;\n gap: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-radio-group-small) .radio-buttons-container.horizontal {\n gap: var(--ic-space-xl);\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n hasValidationStatus,\n slotHasContent,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n checkResizeObserver,\n} from \"../../utils/helpers\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcOrientation,\n IcSizesNoLarge,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-radio-group.types\";\n\n/**\n * @slot helper-text - Content is set as the helper text for the radio group.\n */\n@Component({\n tag: \"ic-radio-group\",\n styleUrl: \"ic-radio-group.css\",\n shadow: true,\n})\nexport class RadioGroup {\n private radioContainer?: HTMLDivElement;\n private radioOptions: HTMLIcRadioOptionElement[];\n private resizeObserver: ResizeObserver | null = null;\n private ADDITIONAL_FIELD = \"additional-field\";\n private RADIO_HORIZONTAL: IcOrientation = \"horizontal\";\n private RADIO_VERTICAL: IcOrientation = \"vertical\";\n\n @Element() el: HTMLIcRadioGroupElement;\n\n @State() checkedValue: string = \"\";\n @State() currentOrientation: IcOrientation;\n @State() initialOrientation: IcOrientation;\n @State() selectedChild: number = -1;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n @Watch(\"disabled\")\n watchDisabledHandler(newValue: boolean): void {\n this.radioOptions.forEach(\n (radioOption) => (radioOption.disabled = newValue)\n );\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The label for the radio group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the radio group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n /**\n * The orientation of the radio buttons in the radio group. If there are more than two radio buttons in a radio group or either of the radio buttons use the `additional-field` slot, then the orientation will always be vertical.\n */\n @Prop() orientation?: IcOrientation = \"vertical\";\n\n /**\n * If `true`, the radio group will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * The size of the radio group component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n @Watch(\"orientation\")\n orientationChangeHandler(): void {\n this.initialOrientation = this.orientation!;\n this.checkOrientation();\n }\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 @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n this.radioOptions.forEach((radioOption) => (radioOption.theme = newValue));\n }\n\n /**\n * Emitted when a user selects a radio.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n this.radioContainer?.removeEventListener(\n \"slotchange\",\n this.setRadioOptions\n );\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n this.orientationChangeHandler();\n this.currentOrientation = this.initialOrientation;\n }\n\n componentDidLoad(): void {\n this.setRadioOptions();\n checkResizeObserver(this.runResizeObserver);\n this.addSlotChangeListener();\n\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Radio Group\"\n );\n\n this.watchThemeHandler(this.theme!);\n }\n\n @Listen(\"icCheck\")\n selectHandler({ detail, target }: CustomEvent<IcValueEventDetail>): void {\n const selectedOption = target as HTMLIcRadioOptionElement;\n if (selectedOption.parentElement === this.el) {\n this.checkedValue = detail.value as string;\n this.icChange.emit({\n value: this.checkedValue,\n selectedOption: {\n radio: selectedOption,\n textFieldValue: selectedOption?.querySelector(\"ic-text-field\")?.value,\n },\n });\n\n if (this.radioOptions !== undefined) {\n this.radioOptions.forEach((radioOption, index) => {\n radioOption.selected = selectedOption === radioOption;\n if (radioOption.selected) {\n this.selectedChild = index;\n }\n });\n this.setFirstRadioOptionTabIndex(this.selectedChild > 0 ? -1 : 0);\n }\n }\n }\n\n @Listen(\"icSelectedChange\")\n changeHandler(): void {\n const selectedOption = this.radioOptions?.findIndex(\n (radioOption) => radioOption.selected\n );\n if (selectedOption < 0) {\n this.setFirstRadioOptionTabIndex(0);\n this.selectedChild = selectedOption;\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkOrientation();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkOrientation() {\n if (this.initialOrientation === this.RADIO_HORIZONTAL) {\n let totalWidth = 0;\n if (Array.isArray(this.radioOptions) && this.radioOptions.length > 0) {\n this.radioOptions.forEach(({ clientWidth }, i, arr) => {\n totalWidth += clientWidth;\n if (i < arr.length - 1) totalWidth += 40;\n });\n } else {\n totalWidth = 0;\n }\n\n if (this.initialOrientation == this.RADIO_HORIZONTAL) {\n if (\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (slotHasContent(this.radioOptions[0], this.ADDITIONAL_FIELD) ||\n slotHasContent(this.radioOptions[1], this.ADDITIONAL_FIELD))))\n ) {\n this.currentOrientation = this.RADIO_VERTICAL;\n } else {\n if (this.radioContainer) {\n if (totalWidth >= this.radioContainer.clientWidth) {\n this.currentOrientation = this.RADIO_VERTICAL;\n } else if (totalWidth < this.radioContainer.clientWidth) {\n this.currentOrientation = this.RADIO_HORIZONTAL;\n }\n }\n }\n }\n }\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n const additionalFields = Array.from(\n this.el.querySelectorAll<HTMLElement>(\n 'ic-text-field[slot=\"additional-field\"]'\n )\n );\n const activeEl = document.activeElement;\n if (\n additionalFields.length > 0 &&\n this.radioOptions.map((el) =>\n slotHasContent(el, this.ADDITIONAL_FIELD)\n ) &&\n additionalFields.map((el) => el == activeEl)\n ) {\n return;\n }\n\n event.stopPropagation();\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, true)\n ].click();\n event.preventDefault();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, false)\n ].click();\n event.preventDefault();\n }\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numRadios = this.radioOptions.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n //check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numRadios;\n } else if (nextItem > numRadios) {\n nextItem = 0;\n }\n\n //if next item is disabled then find next\n if (this.radioOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n\n return nextItem;\n };\n\n private addSlotChangeListener = () => {\n this.radioContainer?.addEventListener(\"slotchange\", this.setRadioOptions);\n };\n\n private setFirstRadioOptionTabIndex = (value: number) => {\n this.radioOptions[0].setTabIndex(value);\n };\n\n private setRadioOptions = () => {\n this.selectedChild = -1;\n this.checkedValue = \"\";\n this.radioOptions = Array.from(this.el.children).filter(\n (el) => el.tagName === \"IC-RADIO-OPTION\"\n ) as HTMLIcRadioOptionElement[];\n if (this.radioOptions.length > 0) {\n this.radioOptions.forEach((radioOption, index) => {\n if (!radioOption.selected) {\n radioOption.selected = this.checkedValue === radioOption.value;\n }\n radioOption.name = this.name;\n radioOption.groupLabel = this.label;\n if (radioOption.selected) {\n this.selectedChild = index;\n this.checkedValue = radioOption.value;\n }\n if (this.disabled) {\n radioOption.disabled = true;\n }\n });\n this.setFirstRadioOptionTabIndex(this.selectedChild > 0 ? -1 : 0);\n\n if (\n this.initialOrientation === this.RADIO_HORIZONTAL &&\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (slotHasContent(this.radioOptions[0], this.ADDITIONAL_FIELD) ||\n slotHasContent(this.radioOptions[1], this.ADDITIONAL_FIELD))))\n ) {\n this.currentOrientation = this.RADIO_VERTICAL;\n }\n }\n };\n\n render() {\n const {\n currentOrientation,\n disabled,\n handleKeyDown,\n helperText,\n hideLabel,\n label,\n required,\n size,\n validationAriaLive,\n validationStatus,\n validationText,\n theme,\n } = this;\n\n const showValidation = hasValidationStatus(validationStatus, disabled);\n\n return (\n <Host\n onKeyDown={handleKeyDown}\n class={{\n \"ic-radio-group-small\": size === \"small\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <fieldset\n role=\"radiogroup\"\n id={this.name}\n aria-required={`${required}`}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{\n [`${validationStatus}`]: true,\n [\"disabled\"]: !!disabled,\n }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n </legend>\n )}\n <div\n class={{\n \"radio-buttons-container\": true,\n horizontal: currentOrientation === this.RADIO_HORIZONTAL,\n }}\n ref={(el) => (this.radioContainer = el)}\n >\n <slot></slot>\n </div>\n </fieldset>\n <ic-input-validation\n class={{\n \"show-validation\": showValidation,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n ></ic-input-validation>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}