@ionic/core 8.8.4-dev.11776178970.14763043 → 8.8.4-dev.11776184632.103b8351

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 (148) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-alert.js +1 -1
  3. package/components/ion-infinite-scroll-content.js +1 -1
  4. package/components/ion-loading.js +1 -1
  5. package/components/ion-range.js +1 -1
  6. package/components/ion-refresher-content.js +1 -1
  7. package/components/ion-select-modal.js +1 -1
  8. package/components/ion-select-option.js +1 -1
  9. package/components/ion-select-popover.js +1 -1
  10. package/components/ion-select.js +1 -1
  11. package/components/ion-skeleton-text.js +1 -1
  12. package/components/ion-spinner.js +1 -1
  13. package/components/ion-split-pane.js +1 -1
  14. package/components/ion-tab-bar.js +1 -1
  15. package/components/ion-tab-button.js +1 -1
  16. package/components/ion-tab.js +1 -1
  17. package/components/ion-tabs.js +1 -1
  18. package/components/ion-text.js +1 -1
  19. package/components/ion-textarea.js +1 -1
  20. package/components/ion-thumbnail.js +1 -1
  21. package/components/ion-title.js +1 -1
  22. package/components/ion-toast.js +1 -1
  23. package/components/ion-toggle.js +1 -1
  24. package/components/ion-toolbar.js +1 -1
  25. package/components/{p-C-_EGKki.js → p-B0orUoaV.js} +1 -1
  26. package/components/p-BDwab5EM.js +4 -0
  27. package/components/p-BjV_nNDy.js +4 -0
  28. package/components/p-C8Dne7pI.js +4 -0
  29. package/components/p-C9d4LXRu.js +4 -0
  30. package/components/p-CvoKp7OI.js +4 -0
  31. package/components/{p-CoarhFWH.js → p-ZRp3l6Dk.js} +1 -1
  32. package/components/{p-C2cZvGcF.js → p-qhBzWoOF.js} +1 -1
  33. package/dist/cjs/ion-action-sheet.cjs.entry.js +16 -8
  34. package/dist/cjs/ion-alert.cjs.entry.js +30 -8
  35. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  36. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-select-modal.cjs.entry.js +45 -26
  40. package/dist/cjs/ion-select_3.cjs.entry.js +176 -47
  41. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  44. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  45. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  49. package/dist/cjs/ionic.cjs.js +1 -1
  50. package/dist/cjs/loader.cjs.js +1 -1
  51. package/dist/cjs/select-option-render-qQf4xz8P.js +67 -0
  52. package/dist/collection/components/action-sheet/action-sheet.ionic.css +834 -0
  53. package/dist/collection/components/action-sheet/action-sheet.ios.css +84 -0
  54. package/dist/collection/components/action-sheet/action-sheet.js +14 -6
  55. package/dist/collection/components/action-sheet/action-sheet.md.css +84 -0
  56. package/dist/collection/components/alert/alert.ionic.css +1165 -0
  57. package/dist/collection/components/alert/alert.ios.css +83 -0
  58. package/dist/collection/components/alert/alert.js +28 -6
  59. package/dist/collection/components/alert/alert.md.css +83 -0
  60. package/dist/collection/components/range/range.ionic.css +6 -9
  61. package/dist/collection/components/select/select.ionic.css +31 -0
  62. package/dist/collection/components/select/select.ios.css +31 -0
  63. package/dist/collection/components/select/select.js +125 -14
  64. package/dist/collection/components/select/select.md.css +31 -0
  65. package/dist/collection/components/select-modal/select-modal.ionic.css +24 -0
  66. package/dist/collection/components/select-modal/select-modal.ios.css +77 -0
  67. package/dist/collection/components/select-modal/select-modal.js +42 -23
  68. package/dist/collection/components/select-modal/select-modal.md.css +80 -1
  69. package/dist/collection/components/select-option/select-option.js +21 -2
  70. package/dist/collection/components/select-popover/select-popover.ionic.css +489 -0
  71. package/dist/collection/components/select-popover/select-popover.ios.css +77 -0
  72. package/dist/collection/components/select-popover/select-popover.js +45 -26
  73. package/dist/collection/components/select-popover/select-popover.md.css +77 -0
  74. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  75. package/dist/collection/components/spinner/spinner.js +1 -1
  76. package/dist/collection/components/split-pane/split-pane.js +2 -2
  77. package/dist/collection/components/tab/tab.js +2 -2
  78. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  79. package/dist/collection/components/tab-button/tab-button.js +2 -2
  80. package/dist/collection/components/tabs/tabs.js +1 -1
  81. package/dist/collection/components/text/text.js +2 -2
  82. package/dist/collection/components/textarea/textarea.js +3 -3
  83. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  84. package/dist/collection/components/title/title.js +2 -2
  85. package/dist/collection/components/toast/toast.js +2 -2
  86. package/dist/collection/components/toggle/toggle.js +3 -3
  87. package/dist/collection/components/toolbar/toolbar.js +2 -2
  88. package/dist/collection/utils/select-option-render.js +62 -0
  89. package/dist/docs.json +139 -5
  90. package/dist/esm/ion-action-sheet.entry.js +16 -8
  91. package/dist/esm/ion-alert.entry.js +30 -8
  92. package/dist/esm/ion-app_8.entry.js +4 -4
  93. package/dist/esm/ion-avatar_3.entry.js +2 -2
  94. package/dist/esm/ion-item_8.entry.js +2 -2
  95. package/dist/esm/ion-range.entry.js +1 -1
  96. package/dist/esm/ion-select-modal.entry.js +45 -26
  97. package/dist/esm/ion-select_3.entry.js +177 -48
  98. package/dist/esm/ion-spinner.entry.js +1 -1
  99. package/dist/esm/ion-split-pane.entry.js +2 -2
  100. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  101. package/dist/esm/ion-tab_2.entry.js +3 -3
  102. package/dist/esm/ion-text.entry.js +2 -2
  103. package/dist/esm/ion-textarea.entry.js +3 -3
  104. package/dist/esm/ion-toast.entry.js +2 -2
  105. package/dist/esm/ion-toggle.entry.js +3 -3
  106. package/dist/esm/ionic.js +1 -1
  107. package/dist/esm/loader.js +1 -1
  108. package/dist/esm/select-option-render-BQUT9Aqa.js +65 -0
  109. package/dist/html.html-data.json +4 -0
  110. package/dist/ionic/ionic.esm.js +1 -1
  111. package/dist/ionic/{p-3bf01c2c.entry.js → p-26595044.entry.js} +1 -1
  112. package/dist/ionic/p-27edb91a.entry.js +4 -0
  113. package/dist/ionic/{p-e9d6ce67.entry.js → p-37f895a8.entry.js} +1 -1
  114. package/dist/ionic/p-38897781.entry.js +4 -0
  115. package/dist/ionic/p-63e09af5.entry.js +4 -0
  116. package/dist/ionic/{p-2bf931ae.entry.js → p-69033ad6.entry.js} +1 -1
  117. package/dist/ionic/p-6e0ce081.entry.js +4 -0
  118. package/dist/ionic/{p-cdfbe4cc.entry.js → p-71f28573.entry.js} +1 -1
  119. package/dist/ionic/{p-9b9b1450.entry.js → p-96ec9a10.entry.js} +1 -1
  120. package/dist/ionic/{p-49799a34.entry.js → p-9e71982e.entry.js} +1 -1
  121. package/dist/ionic/p-Dr3N4o63.js +4 -0
  122. package/dist/ionic/{p-bc5713f7.entry.js → p-a1c8ba8c.entry.js} +1 -1
  123. package/dist/ionic/p-a64ae62e.entry.js +4 -0
  124. package/dist/ionic/{p-91e242e4.entry.js → p-a94016be.entry.js} +1 -1
  125. package/dist/ionic/{p-6c8c37c2.entry.js → p-aa8c1e64.entry.js} +1 -1
  126. package/dist/ionic/{p-2193e875.entry.js → p-d2fe6791.entry.js} +1 -1
  127. package/dist/ionic/p-d45b911b.entry.js +4 -0
  128. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +4 -1
  129. package/dist/types/components/alert/alert-interface.d.ts +4 -1
  130. package/dist/types/components/select/select.d.ts +7 -0
  131. package/dist/types/components/select-modal/select-modal-interface.d.ts +4 -1
  132. package/dist/types/components/select-option/select-option.d.ts +4 -0
  133. package/dist/types/components/select-popover/select-popover-interface.d.ts +4 -1
  134. package/dist/types/components.d.ts +9 -0
  135. package/dist/types/utils/select-option-render.d.ts +26 -0
  136. package/hydrate/index.js +349 -116
  137. package/hydrate/index.mjs +349 -116
  138. package/package.json +1 -1
  139. package/components/p-BGHaEUgp.js +0 -4
  140. package/components/p-BR9Yxas9.js +0 -4
  141. package/components/p-Ch9P0ikq.js +0 -4
  142. package/components/p-iwGbwewM.js +0 -4
  143. package/dist/ionic/p-227744b8.entry.js +0 -4
  144. package/dist/ionic/p-4b0f5ffd.entry.js +0 -4
  145. package/dist/ionic/p-64341e32.entry.js +0 -4
  146. package/dist/ionic/p-6be2b2d3.entry.js +0 -4
  147. package/dist/ionic/p-9acd3fd3.entry.js +0 -4
  148. package/dist/ionic/p-a283aa4d.entry.js +0 -4
@@ -4,17 +4,18 @@
4
4
  import { r as registerInstance, h, i as forceUpdate, d as Host, g as getElement } from './index-Omi_TcwW.js';
5
5
  import { b as getIonMode } from './ionic-global-CAZb-5i-.js';
6
6
  import { s as safeCall } from './overlays-CvFHfO3y.js';
7
+ import { r as renderOptionLabel } from './select-option-render-BQUT9Aqa.js';
7
8
  import { h as hostContext, g as getClassMap } from './theme-DaJxRxSQ.js';
8
9
  import './helpers-Do7zwvM1.js';
9
10
  import './focus-visible-vXpMhGrs.js';
10
11
  import './framework-delegate-CjVwn_KZ.js';
11
12
  import './gesture-controller-BTEOs1at.js';
12
13
 
13
- const selectModalIonicCss = () => `.sc-ion-select-modal-ionic-h{height:100%}.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic::part(scroll),.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic [part~="scroll"]{--padding-bottom:var(--token-space-400, var(--token-scale-400, 16px))}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-item.ion-focused.sc-ion-select-modal-ionic::part(native)::after,ion-item.ion-focused.sc-ion-select-modal-ionic [part~="native"]::after{border:none}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~="label"]{font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc));--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-end:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-bottom:var(--token-space-1200, var(--token-scale-1200, 48px)) !important}ion-content.sc-ion-select-modal-ionic:has(.radio-checked) .ion-focused.sc-ion-select-modal-ionic:not(.item-radio-checked){--background-focused-opacity:1}`;
14
+ const selectModalIonicCss = () => `.sc-ion-select-modal-ionic-h{height:100%}.select-option-label.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-ionic{display:block}.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic::part(scroll),.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic [part~="scroll"]{--padding-bottom:var(--token-space-400, var(--token-scale-400, 16px))}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-item.ion-focused.sc-ion-select-modal-ionic::part(native)::after,ion-item.ion-focused.sc-ion-select-modal-ionic [part~="native"]::after{border:none}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~="label"]{font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc));--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-end:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-bottom:var(--token-space-1200, var(--token-scale-1200, 48px)) !important}ion-content.sc-ion-select-modal-ionic:has(.radio-checked) .ion-focused.sc-ion-select-modal-ionic:not(.item-radio-checked){--background-focused-opacity:1}.select-option-label.sc-ion-select-modal-ionic{gap:var(--token-space-300, var(--token-scale-300, 12px))}.select-option-description.sc-ion-select-modal-ionic{font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;color:var(--token-text-subtle, var(--token-primitives-neutral-1000, #3b3b3b));font-size:var(--token-font-size-350, 0.875rem)}`;
14
15
 
15
- const selectModalIosCss = () => `.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
16
+ const selectModalIosCss = () => `.sc-ion-select-modal-ios-h{height:100%}.select-option-label.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-ios{display:block}.select-option-label.sc-ion-select-modal-ios{gap:12px}.select-option-description.sc-ion-select-modal-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
16
17
 
17
- const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
18
+ const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}.select-option-label.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-md{display:block}.select-option-label.sc-ion-select-modal-md{gap:12px}.select-option-description.sc-ion-select-modal-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
18
19
 
19
20
  const SelectModal = class {
20
21
  constructor(hostRef) {
@@ -72,33 +73,51 @@ const SelectModal = class {
72
73
  }
73
74
  renderRadioOptions() {
74
75
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
75
- return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (h("ion-item", { lines: "none", class: Object.assign({
76
- // TODO FW-4784
77
- 'item-radio-checked': option.value === checked
78
- }, getClassMap(option.cssClass)) }, h("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
79
- if (ev.key === ' ') {
80
- /**
81
- * Selecting a radio option with keyboard navigation,
82
- * either through the Enter or Space keys, should
83
- * dismiss the modal.
84
- */
85
- this.closeModal();
86
- }
87
- } }, option.text))))));
76
+ return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
77
+ const optionLabelOptions = {
78
+ id: `modal-option-${index}`,
79
+ label: option.text,
80
+ startContent: option.startContent,
81
+ endContent: option.endContent,
82
+ description: option.description,
83
+ };
84
+ return (h("ion-item", { lines: "none", class: Object.assign({
85
+ // TODO FW-4784
86
+ 'item-radio-checked': option.value === checked
87
+ }, getClassMap(option.cssClass)) }, h("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
88
+ if (ev.key === ' ') {
89
+ /**
90
+ * Selecting a radio option with keyboard navigation,
91
+ * either through the Enter or Space keys, should
92
+ * dismiss the modal.
93
+ */
94
+ this.closeModal();
95
+ }
96
+ } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
97
+ })));
88
98
  }
89
99
  renderCheckboxOptions() {
90
- return this.options.map((option) => (h("ion-item", { class: Object.assign({
91
- // TODO FW-4784
92
- 'item-checkbox-checked': option.checked
93
- }, getClassMap(option.cssClass)) }, h("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
94
- this.setChecked(ev);
95
- this.callOptionHandler(ev);
96
- // TODO FW-4784
97
- forceUpdate(this);
98
- } }, option.text))));
100
+ return this.options.map((option, index) => {
101
+ const optionLabelOptions = {
102
+ id: `modal-option-${index}`,
103
+ label: option.text,
104
+ startContent: option.startContent,
105
+ endContent: option.endContent,
106
+ description: option.description,
107
+ };
108
+ return (h("ion-item", { class: Object.assign({
109
+ // TODO FW-4784
110
+ 'item-checkbox-checked': option.checked
111
+ }, getClassMap(option.cssClass)) }, h("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
112
+ this.setChecked(ev);
113
+ this.callOptionHandler(ev);
114
+ // TODO FW-4784
115
+ forceUpdate(this);
116
+ } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
117
+ });
99
118
  }
100
119
  render() {
101
- return (h(Host, { key: 'c0218aa9ebcbe9d70a6cc1ed8d005ca656e163d3', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '4698d7442befa17e449655b2f9439001298991a0' }, h("ion-toolbar", { key: 'd0f1d3418f8fdbfdf12fef752f6be4939e70eb79' }, this.header !== undefined && h("ion-title", { key: '2916c22b3a42635e503fa0a0c916b32909999761' }, this.header), h("ion-buttons", { key: 'e93827fc49edd8ac04100e7df8a2a5144d257c19', slot: "end" }, h("ion-button", { key: '0b46828d67d5b4864f40fcbf082ae24797099fb9', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '8460ad9ce425ad0b25b603d0cd42c58b68ca63ee' }, h("ion-list", { key: 'c48ea90af6f36a44102a8852267bd7f6f82f9598' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
120
+ return (h(Host, { key: '18730fa65652d7f4889222d085b96324df5938fa', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: 'f919ce66062f36b0826f4fbd51a34563971d7fc5' }, h("ion-toolbar", { key: 'd60bb24925145dde45493cae446e581b9aadefab' }, this.header !== undefined && h("ion-title", { key: 'fd26f906b8bd3e05233576f4c568eefcdb25f5de' }, this.header), h("ion-buttons", { key: 'b3683b2d7e75ba63b7271da71849e905a37337b5', slot: "end" }, h("ion-button", { key: '40a26fc0f05119538b0522276d6e798ce8e18c77', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '7c61146a953ebf2280564a02f1fa57c50f4b62bc' }, h("ion-list", { key: '4d6742ae8bd030d60ea2cd5686f445063ba1e9a5' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
102
121
  }
103
122
  get el() { return getElement(this); }
104
123
  };