@ionic/core 8.8.4-dev.11776184632.103b8351 → 8.8.4-dev.11776186452.1cc0af05

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 (38) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-alert.js +1 -1
  3. package/components/ion-select-modal.js +1 -1
  4. package/components/ion-select-popover.js +1 -1
  5. package/components/ion-select.js +1 -1
  6. package/components/{p-C9d4LXRu.js → p-BObmvbuR.js} +1 -1
  7. package/components/p-Cm7hjN9B.js +4 -0
  8. package/components/{p-CvoKp7OI.js → p-DQY5lHUa.js} +1 -1
  9. package/components/{p-BjV_nNDy.js → p-D_uMZULz.js} +1 -1
  10. package/dist/cjs/ion-action-sheet.cjs.entry.js +14 -7
  11. package/dist/cjs/ion-alert.cjs.entry.js +27 -31
  12. package/dist/cjs/ion-select-modal.cjs.entry.js +23 -9
  13. package/dist/cjs/ion-select_3.cjs.entry.js +27 -13
  14. package/dist/collection/components/action-sheet/action-sheet.js +14 -7
  15. package/dist/collection/components/alert/alert.js +27 -31
  16. package/dist/collection/components/select/select.js +3 -3
  17. package/dist/collection/components/select-modal/select-modal.js +23 -9
  18. package/dist/collection/components/select-popover/select-popover.js +24 -10
  19. package/dist/docs.json +5 -5
  20. package/dist/esm/ion-action-sheet.entry.js +14 -7
  21. package/dist/esm/ion-alert.entry.js +27 -31
  22. package/dist/esm/ion-select-modal.entry.js +23 -9
  23. package/dist/esm/ion-select_3.entry.js +27 -13
  24. package/dist/ionic/ionic.esm.js +1 -1
  25. package/dist/ionic/{p-a64ae62e.entry.js → p-003b40fc.entry.js} +1 -1
  26. package/dist/ionic/{p-63e09af5.entry.js → p-35aa95dc.entry.js} +1 -1
  27. package/dist/ionic/{p-6e0ce081.entry.js → p-575061c0.entry.js} +1 -1
  28. package/dist/ionic/p-c3335fe0.entry.js +4 -0
  29. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +1 -4
  30. package/dist/types/components/alert/alert-interface.d.ts +1 -4
  31. package/dist/types/components/select/select-interface.d.ts +21 -0
  32. package/dist/types/components/select-modal/select-modal-interface.d.ts +1 -4
  33. package/dist/types/components/select-popover/select-popover-interface.d.ts +1 -4
  34. package/hydrate/index.js +91 -60
  35. package/hydrate/index.mjs +91 -60
  36. package/package.json +1 -1
  37. package/components/p-BDwab5EM.js +0 -4
  38. package/dist/ionic/p-d45b911b.entry.js +0 -4
@@ -173,25 +173,7 @@ export class Alert {
173
173
  this.inputType = inputTypes.values().next().value;
174
174
  this.processedInputs = inputs.map((i, index) => {
175
175
  var _a;
176
- return ({
177
- type: i.type || 'text',
178
- name: i.name || `${index}`,
179
- placeholder: i.placeholder || '',
180
- value: i.value,
181
- label: i.label,
182
- checked: !!i.checked,
183
- disabled: !!i.disabled,
184
- id: i.id || `alert-input-${this.overlayIndex}-${index}`,
185
- handler: i.handler,
186
- min: i.min,
187
- max: i.max,
188
- cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
189
- attributes: i.attributes || {},
190
- tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
191
- startContent: i.startContent,
192
- endContent: i.endContent,
193
- description: i.description,
194
- });
176
+ return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
195
177
  });
196
178
  }
197
179
  connectedCallback() {
@@ -380,12 +362,19 @@ export class Alert {
380
362
  return null;
381
363
  }
382
364
  return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
365
+ /**
366
+ * Cast to `SelectAlertInput` to access rich content
367
+ * fields (`startContent`, `endContent`, `description`)
368
+ * that are passed through from `ion-select` but not
369
+ * part of the public `AlertInput` interface.
370
+ */
371
+ const richInput = i;
383
372
  const optionLabelOptions = {
384
- id: i.id,
385
- label: i.label,
386
- startContent: i.startContent,
387
- endContent: i.endContent,
388
- description: i.description,
373
+ id: richInput.id,
374
+ label: richInput.label,
375
+ startContent: richInput.startContent,
376
+ endContent: richInput.endContent,
377
+ description: richInput.description,
389
378
  };
390
379
  return (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), theme === 'md' && h("ion-ripple-effect", null)));
391
380
  })));
@@ -396,12 +385,19 @@ export class Alert {
396
385
  return null;
397
386
  }
398
387
  return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
388
+ /**
389
+ * Cast to `SelectAlertInput` to access rich content
390
+ * fields (`startContent`, `endContent`, `description`)
391
+ * that are passed through from `ion-select` but not
392
+ * part of the public `AlertInput` interface.
393
+ */
394
+ const richInput = i;
399
395
  const optionLabelOptions = {
400
- id: i.id,
401
- label: i.label,
402
- startContent: i.startContent,
403
- endContent: i.endContent,
404
- description: i.description,
396
+ id: richInput.id,
397
+ label: richInput.label,
398
+ startContent: richInput.startContent,
399
+ endContent: richInput.endContent,
400
+ description: richInput.description,
405
401
  };
406
402
  return (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
407
403
  })));
@@ -463,9 +459,9 @@ export class Alert {
463
459
  * If neither are defined, do not set aria-labelledby.
464
460
  */
465
461
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
466
- return (h(Host, { key: '85f702e645f4a8cad73af4c9dd7af4f86f70d579', tabindex: "-1", style: {
462
+ return (h(Host, { key: '643939c4af9c1a68b60eea5724f8662f13bb3f72', tabindex: "-1", style: {
467
463
  zIndex: `${20000 + overlayIndex}`,
468
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: 'd862b41243d5d1cc22720356be2f6384cb82357e', tappable: this.backdropDismiss }), h("div", { key: '4c333dc639c03f51d43d8fe14fa3a87442f0edae', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '1bf38d8254a8275749def00ae89059126571250f', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '6314d4512d9e7c73c6157aeb836c6618194f7b9c', class: "alert-head" }, header && (h("h2", { key: 'bae3316beeecd6cd3973e047b33305b3e70a0edc', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '71909e6abaa42ed24e02db3f53ac4f33b1b12665', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a03827699204ae678411e83a72e7bf0af10201f5', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'd7bbd7c25bf453c329b5fbbd1a5fcddaf98def46', tabindex: "0", "aria-hidden": "true" })));
464
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '4780caec3fe71a8d5f2112b8b8726d5a7de91192', tappable: this.backdropDismiss }), h("div", { key: 'cc401fcade02bfc557820d31554d5e054da79b28', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '234caa09b6e0d224bdce0de0659dcdbd668cad91', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: 'c8c72cd019eace73b622f2510e533c281267c48a', class: "alert-head" }, header && (h("h2", { key: '0d95f68560dbb67721476d184df0d8654a07959c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '6444463a2aeef3f076b0bfdfeba4387ced177826', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a92d7b54567152b57a8ccab6840e851c8fe5a47b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '3ba2cdf15219f03123f6dd884eb7a4da38549c08', tabindex: "0", "aria-hidden": "true" })));
469
465
  }
470
466
  static get is() { return "ion-alert"; }
471
467
  static get encapsulation() { return "scoped"; }
@@ -945,7 +945,7 @@ export class Select {
945
945
  * TODO(FW-5592): Remove hasStartEndSlots condition
946
946
  */
947
947
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
948
- return (h(Host, { key: '3b96c1aab2242d6d5c78c264e619b4bd48a5d41c', onClick: this.onClick, class: createColorClasses(this.color, {
948
+ return (h(Host, { key: '460ec72063e2f484a1fd0d7605739f4cef2d8c87', onClick: this.onClick, class: createColorClasses(this.color, {
949
949
  [theme]: true,
950
950
  'in-item': inItem,
951
951
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -964,7 +964,7 @@ export class Select {
964
964
  [`select-shape-${shape}`]: shape !== undefined,
965
965
  [`select-label-placement-${labelPlacement}`]: true,
966
966
  [`select-size-${size}`]: size !== undefined,
967
- }) }, h("label", { key: '5d313940bd87d981d46ff8d463a68ba35ccb3285', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '6ae3e00ce2f93e72bd03cc25988660d2c98b1b22', class: "select-wrapper-inner", part: "inner" },
967
+ }) }, h("label", { key: 'a553837e266ce48e17687ee7ff4027f69a2eff1e', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e5071d8ee5e4078887ac27a192aa95553a9f487d', class: "select-wrapper-inner", part: "inner" },
968
968
  /**
969
969
  * For the ionic theme, we render the outline container here
970
970
  * instead of higher up, so it can be positioned relative to
@@ -974,7 +974,7 @@ export class Select {
974
974
  * <label> element, ensuring that clicking the label text
975
975
  * focuses the select.
976
976
  */
977
- theme === 'ionic' && fill === 'outline' && h("div", { key: 'f6ef2571b7512bdbfd9a891bb0c4965165eb8b0e', class: "select-outline" }), h("slot", { key: '6d31e8769453c6a6119c93602cabbc25a45aba03', name: "start" }), h("div", { key: 'c3c88a6e11ec1ea09c77b9a40a1be9335e99637a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '627ca905d4721fa0b12a2e9ca808e323a2b98e69', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '3fc203f66aad27caf9e3cc533c2a81242900bd78', class: "select-highlight" })), this.renderBottomContent()));
977
+ theme === 'ionic' && fill === 'outline' && h("div", { key: '04a19d0f8deff600f354c1e2682937884e8e3673', class: "select-outline" }), h("slot", { key: '51e50dccee39355a3ac78b615e4a7a71a371a744', name: "start" }), h("div", { key: '6bf71c54ee895db920d3f98ed7bc8869d9ea3874', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '2f9ebe8996ebfc8371116ec48ca4b750b8c42e43', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'cdf1742886c636270ada0b1e5c61faff40bacdc1', class: "select-highlight" })), this.renderBottomContent()));
978
978
  }
979
979
  static get is() { return "ion-select"; }
980
980
  static get encapsulation() { return "shadow"; }
@@ -62,12 +62,19 @@ export class SelectModal {
62
62
  renderRadioOptions() {
63
63
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
64
64
  return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
65
+ /**
66
+ * Cast to `SelectOverlayOption` to access rich content
67
+ * fields (`startContent`, `endContent`, `description`)
68
+ * that are passed through from `ion-select` but not
69
+ * part of the public `SelectModalOption` interface.
70
+ */
71
+ const richOption = option;
65
72
  const optionLabelOptions = {
66
73
  id: `modal-option-${index}`,
67
- label: option.text,
68
- startContent: option.startContent,
69
- endContent: option.endContent,
70
- description: option.description,
74
+ label: richOption.text,
75
+ startContent: richOption.startContent,
76
+ endContent: richOption.endContent,
77
+ description: richOption.description,
71
78
  };
72
79
  return (h("ion-item", { lines: "none", class: Object.assign({
73
80
  // TODO FW-4784
@@ -86,12 +93,19 @@ export class SelectModal {
86
93
  }
87
94
  renderCheckboxOptions() {
88
95
  return this.options.map((option, index) => {
96
+ /**
97
+ * Cast to `SelectOverlayOption` to access rich content
98
+ * fields (`startContent`, `endContent`, `description`)
99
+ * that are passed through from `ion-select` but not
100
+ * part of the public `SelectModalOption` interface.
101
+ */
102
+ const richOption = option;
89
103
  const optionLabelOptions = {
90
104
  id: `modal-option-${index}`,
91
- label: option.text,
92
- startContent: option.startContent,
93
- endContent: option.endContent,
94
- description: option.description,
105
+ label: richOption.text,
106
+ startContent: richOption.startContent,
107
+ endContent: richOption.endContent,
108
+ description: richOption.description,
95
109
  };
96
110
  return (h("ion-item", { class: Object.assign({
97
111
  // TODO FW-4784
@@ -105,7 +119,7 @@ export class SelectModal {
105
119
  });
106
120
  }
107
121
  render() {
108
- 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()))));
122
+ return (h(Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, h("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && h("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), h("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, h("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, h("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
109
123
  }
110
124
  static get is() { return "ion-select-modal"; }
111
125
  static get encapsulation() { return "scoped"; }
@@ -77,12 +77,19 @@ export class SelectPopover {
77
77
  }
78
78
  renderCheckboxOptions(options) {
79
79
  return options.map((option, index) => {
80
+ /**
81
+ * Cast to `SelectOverlayOption` to access rich content
82
+ * fields (`startContent`, `endContent`, `description`)
83
+ * that are passed through from `ion-select` but not
84
+ * part of the public `SelectPopoverOption` interface.
85
+ */
86
+ const richOption = option;
80
87
  const optionLabelOptions = {
81
88
  id: `popover-option-${index}`,
82
- label: option.text,
83
- startContent: option.startContent,
84
- endContent: option.endContent,
85
- description: option.description,
89
+ label: richOption.text,
90
+ startContent: richOption.startContent,
91
+ endContent: richOption.endContent,
92
+ description: richOption.description,
86
93
  };
87
94
  return (h("ion-item", { class: Object.assign({
88
95
  // TODO FW-4784
@@ -98,12 +105,19 @@ export class SelectPopover {
98
105
  renderRadioOptions(options) {
99
106
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
100
107
  return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
108
+ /**
109
+ * Cast to `SelectOverlayOption` to access rich content
110
+ * fields (`startContent`, `endContent`, `description`)
111
+ * that are passed through from `ion-select` but not
112
+ * part of the public `SelectPopoverOption` interface.
113
+ */
114
+ const richOption = option;
101
115
  const optionLabelOptions = {
102
116
  id: `popover-option-${index}`,
103
- label: option.text,
104
- startContent: option.startContent,
105
- endContent: option.endContent,
106
- description: option.description,
117
+ label: richOption.text,
118
+ startContent: richOption.startContent,
119
+ endContent: richOption.endContent,
120
+ description: richOption.description,
107
121
  };
108
122
  return (h("ion-item", { class: Object.assign({
109
123
  // TODO FW-4784
@@ -124,9 +138,9 @@ export class SelectPopover {
124
138
  const { header, message, options, subHeader } = this;
125
139
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
126
140
  const theme = getIonTheme(this);
127
- return (h(Host, { key: 'feca67a1e521063a57e23191c04736aa85c5655f', class: {
141
+ return (h(Host, { key: 'cf05dabe58fcd71a74ac46ab8cb3da7dd687068f', class: {
128
142
  [theme]: true,
129
- } }, h("ion-list", { key: '646ff6d365c10dd16017096adf9cfa5ff1f61c2e' }, header !== undefined && h("ion-list-header", { key: '059e91049e595eea5663fabb7f139f8ba37e5fec' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '9cd2924bc696361003cfe7122bd6cdb855fa1c77' }, h("ion-label", { key: '42c32787a86e4de9b98773652dcd7b269faf3da1', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'e27f78519af68e24130be3d4a166f351bb2b174b' }, subHeader), message !== undefined && h("p", { key: '6a3f45fc5f1d95c02ae37cba9741d2a7325971a4' }, message)))), this.renderOptions(options))));
143
+ } }, h("ion-list", { key: 'a8367a02dd063da5b55ab133ccfa914990e86023' }, header !== undefined && h("ion-list-header", { key: 'a5c1442720cc3e4a7c629f459c34d7a70f7ee913' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '282735c1127096b1b0bf85b3fd20f26fe4535849' }, h("ion-label", { key: '42aa5709d92f7d0232ef07d607cf4ef19f9ad633', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'f89fee59d120604bc141ec5cc0a872e9c46fd059' }, subHeader), message !== undefined && h("p", { key: '4778170bb58e781570c448d5d5d485b7ac2c9a7a' }, message)))), this.renderOptions(options))));
130
144
  }
131
145
  static get is() { return "ion-select-popover"; }
132
146
  static get encapsulation() { return "scoped"; }
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-04-14T16:39:35",
2
+ "timestamp": "2026-04-14T17:09:53",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.43.0",
@@ -46214,7 +46214,7 @@
46214
46214
  "path": "src/interface.d.ts"
46215
46215
  },
46216
46216
  "src/components/action-sheet/action-sheet-interface.ts::ActionSheetButton": {
46217
- "declaration": "export interface ActionSheetButton<T = any> {\n text?: string | HTMLElement;\n role?: LiteralUnion<'cancel' | 'destructive' | 'selected', string>;\n icon?: string;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n data?: T;\n /**\n * When `disabled` is `true` the action\n * sheet button will not be interactive. Note\n * that buttons with a 'cancel' role cannot\n * be disabled as that would make it difficult for\n * users to dismiss the action sheet.\n */\n disabled?: boolean;\n startContent?: HTMLElement;\n endContent?: HTMLElement;\n description?: string;\n}",
46217
+ "declaration": "export interface ActionSheetButton<T = any> {\n text?: string;\n role?: LiteralUnion<'cancel' | 'destructive' | 'selected', string>;\n icon?: string;\n cssClass?: string | string[];\n id?: string;\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n data?: T;\n /**\n * When `disabled` is `true` the action\n * sheet button will not be interactive. Note\n * that buttons with a 'cancel' role cannot\n * be disabled as that would make it difficult for\n * users to dismiss the action sheet.\n */\n disabled?: boolean;\n}",
46218
46218
  "docstring": "",
46219
46219
  "path": "src/components/action-sheet/action-sheet-interface.ts"
46220
46220
  },
@@ -46234,7 +46234,7 @@
46234
46234
  "path": "src/components/alert/alert-interface.ts"
46235
46235
  },
46236
46236
  "src/components/alert/alert-interface.ts::AlertInput": {
46237
- "declaration": "export interface AlertInput {\n type?: TextFieldTypes | 'checkbox' | 'radio' | 'textarea';\n name?: string;\n placeholder?: string;\n value?: any; // TODO(FW-2832): type\n /**\n * The label text to display next to the input, if the input type is `radio` or `checkbox`.\n */\n label?: string | HTMLElement;\n checked?: boolean;\n disabled?: boolean;\n id?: string;\n handler?: (input: AlertInput) => void;\n min?: string | number;\n max?: string | number;\n cssClass?: string | string[];\n attributes?: { [key: string]: any };\n tabindex?: number;\n startContent?: HTMLElement;\n endContent?: HTMLElement;\n description?: string;\n}",
46237
+ "declaration": "export interface AlertInput {\n type?: TextFieldTypes | 'checkbox' | 'radio' | 'textarea';\n name?: string;\n placeholder?: string;\n value?: any; // TODO(FW-2832): type\n /**\n * The label text to display next to the input, if the input type is `radio` or `checkbox`.\n */\n label?: string;\n checked?: boolean;\n disabled?: boolean;\n id?: string;\n handler?: (input: AlertInput) => void;\n min?: string | number;\n max?: string | number;\n cssClass?: string | string[];\n attributes?: { [key: string]: any };\n tabindex?: number;\n}",
46238
46238
  "docstring": "",
46239
46239
  "path": "src/components/alert/alert-interface.ts"
46240
46240
  },
@@ -46599,12 +46599,12 @@
46599
46599
  "path": "src/components/select/select-interface.ts"
46600
46600
  },
46601
46601
  "src/components/select-modal/select-modal-interface.ts::SelectModalOption": {
46602
- "declaration": "export interface SelectModalOption {\n text: string | HTMLElement;\n value: string;\n disabled: boolean;\n checked: boolean;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void | { [key: string]: any };\n startContent?: HTMLElement;\n endContent?: HTMLElement;\n description?: string;\n}",
46602
+ "declaration": "export interface SelectModalOption {\n text: string;\n value: string;\n disabled: boolean;\n checked: boolean;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void | { [key: string]: any };\n}",
46603
46603
  "docstring": "",
46604
46604
  "path": "src/components/select-modal/select-modal-interface.ts"
46605
46605
  },
46606
46606
  "src/components/select-popover/select-popover-interface.ts::SelectPopoverOption": {
46607
- "declaration": "export interface SelectPopoverOption {\n text: string | HTMLElement;\n value: string;\n disabled: boolean;\n checked: boolean;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void | { [key: string]: any };\n startContent?: HTMLElement;\n endContent?: HTMLElement;\n description?: string;\n}",
46607
+ "declaration": "export interface SelectPopoverOption {\n text: string;\n value: string;\n disabled: boolean;\n checked: boolean;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void | { [key: string]: any };\n}",
46608
46608
  "docstring": "",
46609
46609
  "path": "src/components/select-popover/select-popover-interface.ts"
46610
46610
  },
@@ -474,12 +474,19 @@ const ActionSheet = class {
474
474
  if (isRadio) {
475
475
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
476
476
  }
477
+ /**
478
+ * Cast to `SelectActionSheetButton` to access rich content
479
+ * fields (`startContent`, `endContent`, `description`)
480
+ * that are passed through from `ion-select` but not
481
+ * part of the public `ActionSheetButton` interface.
482
+ */
483
+ const richButton = b;
477
484
  const optionLabelOptions = {
478
485
  id: buttonId,
479
- label: b.text,
480
- startContent: b.startContent,
481
- endContent: b.endContent,
482
- description: b.description,
486
+ label: richButton.text,
487
+ startContent: richButton.startContent,
488
+ endContent: richButton.endContent,
489
+ description: richButton.description,
483
490
  };
484
491
  return (h("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass(b)), { 'action-sheet-selected': isActiveRadio }), onClick: () => {
485
492
  if (isRadio) {
@@ -496,12 +503,12 @@ const ActionSheet = class {
496
503
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
497
504
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
498
505
  const headerID = `action-sheet-${overlayIndex}-header`;
499
- return (h(Host, Object.assign({ key: '32d662676784385bf348708be6560929ca1599f8', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
506
+ return (h(Host, Object.assign({ key: '8abe5fcc3941ca61ec313b4c47608c58c8eb2815', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
500
507
  zIndex: `${20000 + this.overlayIndex}`,
501
- }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '8b84d7292ffcf68138fff9cd0ec6455c91c9cd25', tappable: this.backdropDismiss }), h("div", { key: '2a733b2adef42786bec7ce9c29a29d0935952430', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '1846b99afa26e30b6344e5a860300254e61f3692', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: 'c6a5a986304767935a6de7e01b5ca3feddc2c0d0', class: "action-sheet-container" }, h("div", { key: '467fdb1c8468ca25e733606e0b427ad3888885e3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: 'e06690113e9c4da1089bd3495c819f72d7505574', id: headerID, class: {
508
+ }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '773948649ab8de68d0d683f5f0665c0fb94446db', tappable: this.backdropDismiss }), h("div", { key: 'a107d07dc073c088da7059d2a96f393ae9a9e494', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '7a0468225a402e3ae72048d84abb48cdb940e8ca', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '6ba6a114547440c1e746a4fbba717954bfbe2a50', class: "action-sheet-container" }, h("div", { key: '4d9c249bdcfc0ab981d187edd3d4b1397cc59f5a', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: '325c63cf2a1b081d411b3c80b65fe403e9aaa298', id: headerID, class: {
502
509
  'action-sheet-title': true,
503
510
  'action-sheet-has-sub-title': this.subHeader !== undefined,
504
- } }, header, this.subHeader && h("div", { key: 'b607fe7d470703d7b4f123413cf27487a5bb1bfe', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: '35c91756085c12ab97239366350b800110381142', class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({ key: '803428a3d1a389b2dc4930cc46884dc2e2b137b0' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { key: '38e86d26fa8fcd32d0ab13640b2701e458854542', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: 'bec1f332fcfa4b906d09dabae6c01bba1ef88460', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && h("ion-ripple-effect", { key: 'b7cfbaa5a5e5aab0f2317e7bb019802ac4ed3481' })))))), h("div", { key: 'c2527fc1383b7d9388ffbf6ab56461daf986a52d', tabindex: "0", "aria-hidden": "true" })));
511
+ } }, header, this.subHeader && h("div", { key: '0ef643a1d43ab6f95017b55fe07ddc00e9a0a2f0', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: '4549b06fd306ccc029b8a8c9209dafa13e4af8e3', class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({ key: 'cd33e2fed14ec36bce0c882449831fb8685c26ab' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { key: '24717a96d90e806a1daddc78685d33afee6397ec', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: '9b3162193520f3e10db8f0ca016d367787848126', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && h("ion-ripple-effect", { key: '5f6e18c24164395393d4541de1fa60cd88e0f6ea' })))))), h("div", { key: '78a306469aafada4158d434502ab02c8d1fed2d0', tabindex: "0", "aria-hidden": "true" })));
505
512
  }
506
513
  get el() { return getElement(this); }
507
514
  static get watchers() { return {
@@ -269,25 +269,7 @@ const Alert = class {
269
269
  this.inputType = inputTypes.values().next().value;
270
270
  this.processedInputs = inputs.map((i, index) => {
271
271
  var _a;
272
- return ({
273
- type: i.type || 'text',
274
- name: i.name || `${index}`,
275
- placeholder: i.placeholder || '',
276
- value: i.value,
277
- label: i.label,
278
- checked: !!i.checked,
279
- disabled: !!i.disabled,
280
- id: i.id || `alert-input-${this.overlayIndex}-${index}`,
281
- handler: i.handler,
282
- min: i.min,
283
- max: i.max,
284
- cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
285
- attributes: i.attributes || {},
286
- tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
287
- startContent: i.startContent,
288
- endContent: i.endContent,
289
- description: i.description,
290
- });
272
+ return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
291
273
  });
292
274
  }
293
275
  connectedCallback() {
@@ -476,12 +458,19 @@ const Alert = class {
476
458
  return null;
477
459
  }
478
460
  return (h("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
461
+ /**
462
+ * Cast to `SelectAlertInput` to access rich content
463
+ * fields (`startContent`, `endContent`, `description`)
464
+ * that are passed through from `ion-select` but not
465
+ * part of the public `AlertInput` interface.
466
+ */
467
+ const richInput = i;
479
468
  const optionLabelOptions = {
480
- id: i.id,
481
- label: i.label,
482
- startContent: i.startContent,
483
- endContent: i.endContent,
484
- description: i.description,
469
+ id: richInput.id,
470
+ label: richInput.label,
471
+ startContent: richInput.startContent,
472
+ endContent: richInput.endContent,
473
+ description: richInput.description,
485
474
  };
486
475
  return (h("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-checkbox-icon" }, h("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), theme === 'md' && h("ion-ripple-effect", null)));
487
476
  })));
@@ -492,12 +481,19 @@ const Alert = class {
492
481
  return null;
493
482
  }
494
483
  return (h("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
484
+ /**
485
+ * Cast to `SelectAlertInput` to access rich content
486
+ * fields (`startContent`, `endContent`, `description`)
487
+ * that are passed through from `ion-select` but not
488
+ * part of the public `AlertInput` interface.
489
+ */
490
+ const richInput = i;
495
491
  const optionLabelOptions = {
496
- id: i.id,
497
- label: i.label,
498
- startContent: i.startContent,
499
- endContent: i.endContent,
500
- description: i.description,
492
+ id: richInput.id,
493
+ label: richInput.label,
494
+ startContent: richInput.startContent,
495
+ endContent: richInput.endContent,
496
+ description: richInput.description,
501
497
  };
502
498
  return (h("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, h("div", { class: "alert-button-inner" }, h("div", { class: "alert-radio-icon" }, h("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
503
499
  })));
@@ -559,9 +555,9 @@ const Alert = class {
559
555
  * If neither are defined, do not set aria-labelledby.
560
556
  */
561
557
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
562
- return (h(Host, { key: '85f702e645f4a8cad73af4c9dd7af4f86f70d579', tabindex: "-1", style: {
558
+ return (h(Host, { key: '643939c4af9c1a68b60eea5724f8662f13bb3f72', tabindex: "-1", style: {
563
559
  zIndex: `${20000 + overlayIndex}`,
564
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: 'd862b41243d5d1cc22720356be2f6384cb82357e', tappable: this.backdropDismiss }), h("div", { key: '4c333dc639c03f51d43d8fe14fa3a87442f0edae', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '1bf38d8254a8275749def00ae89059126571250f', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '6314d4512d9e7c73c6157aeb836c6618194f7b9c', class: "alert-head" }, header && (h("h2", { key: 'bae3316beeecd6cd3973e047b33305b3e70a0edc', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '71909e6abaa42ed24e02db3f53ac4f33b1b12665', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a03827699204ae678411e83a72e7bf0af10201f5', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'd7bbd7c25bf453c329b5fbbd1a5fcddaf98def46', tabindex: "0", "aria-hidden": "true" })));
560
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '4780caec3fe71a8d5f2112b8b8726d5a7de91192', tappable: this.backdropDismiss }), h("div", { key: 'cc401fcade02bfc557820d31554d5e054da79b28', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '234caa09b6e0d224bdce0de0659dcdbd668cad91', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: 'c8c72cd019eace73b622f2510e533c281267c48a', class: "alert-head" }, header && (h("h2", { key: '0d95f68560dbb67721476d184df0d8654a07959c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '6444463a2aeef3f076b0bfdfeba4387ced177826', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a92d7b54567152b57a8ccab6840e851c8fe5a47b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '3ba2cdf15219f03123f6dd884eb7a4da38549c08', tabindex: "0", "aria-hidden": "true" })));
565
561
  }
566
562
  get el() { return getElement(this); }
567
563
  static get watchers() { return {
@@ -74,12 +74,19 @@ const SelectModal = class {
74
74
  renderRadioOptions() {
75
75
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
76
76
  return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
77
+ /**
78
+ * Cast to `SelectOverlayOption` to access rich content
79
+ * fields (`startContent`, `endContent`, `description`)
80
+ * that are passed through from `ion-select` but not
81
+ * part of the public `SelectModalOption` interface.
82
+ */
83
+ const richOption = option;
77
84
  const optionLabelOptions = {
78
85
  id: `modal-option-${index}`,
79
- label: option.text,
80
- startContent: option.startContent,
81
- endContent: option.endContent,
82
- description: option.description,
86
+ label: richOption.text,
87
+ startContent: richOption.startContent,
88
+ endContent: richOption.endContent,
89
+ description: richOption.description,
83
90
  };
84
91
  return (h("ion-item", { lines: "none", class: Object.assign({
85
92
  // TODO FW-4784
@@ -98,12 +105,19 @@ const SelectModal = class {
98
105
  }
99
106
  renderCheckboxOptions() {
100
107
  return this.options.map((option, index) => {
108
+ /**
109
+ * Cast to `SelectOverlayOption` to access rich content
110
+ * fields (`startContent`, `endContent`, `description`)
111
+ * that are passed through from `ion-select` but not
112
+ * part of the public `SelectModalOption` interface.
113
+ */
114
+ const richOption = option;
101
115
  const optionLabelOptions = {
102
116
  id: `modal-option-${index}`,
103
- label: option.text,
104
- startContent: option.startContent,
105
- endContent: option.endContent,
106
- description: option.description,
117
+ label: richOption.text,
118
+ startContent: richOption.startContent,
119
+ endContent: richOption.endContent,
120
+ description: richOption.description,
107
121
  };
108
122
  return (h("ion-item", { class: Object.assign({
109
123
  // TODO FW-4784
@@ -117,7 +131,7 @@ const SelectModal = class {
117
131
  });
118
132
  }
119
133
  render() {
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()))));
134
+ return (h(Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, h("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && h("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), h("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, h("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), h("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, h("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
121
135
  }
122
136
  get el() { return getElement(this); }
123
137
  };
@@ -895,7 +895,7 @@ const Select = class {
895
895
  * TODO(FW-5592): Remove hasStartEndSlots condition
896
896
  */
897
897
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
898
- return (h(Host, { key: '3b96c1aab2242d6d5c78c264e619b4bd48a5d41c', onClick: this.onClick, class: createColorClasses(this.color, {
898
+ return (h(Host, { key: '460ec72063e2f484a1fd0d7605739f4cef2d8c87', onClick: this.onClick, class: createColorClasses(this.color, {
899
899
  [theme]: true,
900
900
  'in-item': inItem,
901
901
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -914,7 +914,7 @@ const Select = class {
914
914
  [`select-shape-${shape}`]: shape !== undefined,
915
915
  [`select-label-placement-${labelPlacement}`]: true,
916
916
  [`select-size-${size}`]: size !== undefined,
917
- }) }, h("label", { key: '5d313940bd87d981d46ff8d463a68ba35ccb3285', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '6ae3e00ce2f93e72bd03cc25988660d2c98b1b22', class: "select-wrapper-inner", part: "inner" },
917
+ }) }, h("label", { key: 'a553837e266ce48e17687ee7ff4027f69a2eff1e', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'e5071d8ee5e4078887ac27a192aa95553a9f487d', class: "select-wrapper-inner", part: "inner" },
918
918
  /**
919
919
  * For the ionic theme, we render the outline container here
920
920
  * instead of higher up, so it can be positioned relative to
@@ -924,7 +924,7 @@ const Select = class {
924
924
  * <label> element, ensuring that clicking the label text
925
925
  * focuses the select.
926
926
  */
927
- theme === 'ionic' && fill === 'outline' && h("div", { key: 'f6ef2571b7512bdbfd9a891bb0c4965165eb8b0e', class: "select-outline" }), h("slot", { key: '6d31e8769453c6a6119c93602cabbc25a45aba03', name: "start" }), h("div", { key: 'c3c88a6e11ec1ea09c77b9a40a1be9335e99637a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '627ca905d4721fa0b12a2e9ca808e323a2b98e69', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '3fc203f66aad27caf9e3cc533c2a81242900bd78', class: "select-highlight" })), this.renderBottomContent()));
927
+ theme === 'ionic' && fill === 'outline' && h("div", { key: '04a19d0f8deff600f354c1e2682937884e8e3673', class: "select-outline" }), h("slot", { key: '51e50dccee39355a3ac78b615e4a7a71a371a744', name: "start" }), h("div", { key: '6bf71c54ee895db920d3f98ed7bc8869d9ea3874', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '2f9ebe8996ebfc8371116ec48ca4b750b8c42e43', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'cdf1742886c636270ada0b1e5c61faff40bacdc1', class: "select-highlight" })), this.renderBottomContent()));
928
928
  }
929
929
  get el() { return getElement(this); }
930
930
  static get watchers() { return {
@@ -1151,12 +1151,19 @@ const SelectPopover = class {
1151
1151
  }
1152
1152
  renderCheckboxOptions(options) {
1153
1153
  return options.map((option, index) => {
1154
+ /**
1155
+ * Cast to `SelectOverlayOption` to access rich content
1156
+ * fields (`startContent`, `endContent`, `description`)
1157
+ * that are passed through from `ion-select` but not
1158
+ * part of the public `SelectPopoverOption` interface.
1159
+ */
1160
+ const richOption = option;
1154
1161
  const optionLabelOptions = {
1155
1162
  id: `popover-option-${index}`,
1156
- label: option.text,
1157
- startContent: option.startContent,
1158
- endContent: option.endContent,
1159
- description: option.description,
1163
+ label: richOption.text,
1164
+ startContent: richOption.startContent,
1165
+ endContent: richOption.endContent,
1166
+ description: richOption.description,
1160
1167
  };
1161
1168
  return (h("ion-item", { class: Object.assign({
1162
1169
  // TODO FW-4784
@@ -1172,12 +1179,19 @@ const SelectPopover = class {
1172
1179
  renderRadioOptions(options) {
1173
1180
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
1174
1181
  return (h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
1182
+ /**
1183
+ * Cast to `SelectOverlayOption` to access rich content
1184
+ * fields (`startContent`, `endContent`, `description`)
1185
+ * that are passed through from `ion-select` but not
1186
+ * part of the public `SelectPopoverOption` interface.
1187
+ */
1188
+ const richOption = option;
1175
1189
  const optionLabelOptions = {
1176
1190
  id: `popover-option-${index}`,
1177
- label: option.text,
1178
- startContent: option.startContent,
1179
- endContent: option.endContent,
1180
- description: option.description,
1191
+ label: richOption.text,
1192
+ startContent: richOption.startContent,
1193
+ endContent: richOption.endContent,
1194
+ description: richOption.description,
1181
1195
  };
1182
1196
  return (h("ion-item", { class: Object.assign({
1183
1197
  // TODO FW-4784
@@ -1198,9 +1212,9 @@ const SelectPopover = class {
1198
1212
  const { header, message, options, subHeader } = this;
1199
1213
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
1200
1214
  const theme = getIonTheme(this);
1201
- return (h(Host, { key: 'feca67a1e521063a57e23191c04736aa85c5655f', class: {
1215
+ return (h(Host, { key: 'cf05dabe58fcd71a74ac46ab8cb3da7dd687068f', class: {
1202
1216
  [theme]: true,
1203
- } }, h("ion-list", { key: '646ff6d365c10dd16017096adf9cfa5ff1f61c2e' }, header !== undefined && h("ion-list-header", { key: '059e91049e595eea5663fabb7f139f8ba37e5fec' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '9cd2924bc696361003cfe7122bd6cdb855fa1c77' }, h("ion-label", { key: '42c32787a86e4de9b98773652dcd7b269faf3da1', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'e27f78519af68e24130be3d4a166f351bb2b174b' }, subHeader), message !== undefined && h("p", { key: '6a3f45fc5f1d95c02ae37cba9741d2a7325971a4' }, message)))), this.renderOptions(options))));
1217
+ } }, h("ion-list", { key: 'a8367a02dd063da5b55ab133ccfa914990e86023' }, header !== undefined && h("ion-list-header", { key: 'a5c1442720cc3e4a7c629f459c34d7a70f7ee913' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '282735c1127096b1b0bf85b3fd20f26fe4535849' }, h("ion-label", { key: '42aa5709d92f7d0232ef07d607cf4ef19f9ad633', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'f89fee59d120604bc141ec5cc0a872e9c46fd059' }, subHeader), message !== undefined && h("p", { key: '4778170bb58e781570c448d5d5d485b7ac2c9a7a' }, message)))), this.renderOptions(options))));
1204
1218
  }
1205
1219
  get el() { return getElement(this); }
1206
1220
  };