@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
package/hydrate/index.js CHANGED
@@ -10311,12 +10311,19 @@ class ActionSheet {
10311
10311
  if (isRadio) {
10312
10312
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10313
10313
  }
10314
+ /**
10315
+ * Cast to `SelectActionSheetButton` to access rich content
10316
+ * fields (`startContent`, `endContent`, `description`)
10317
+ * that are passed through from `ion-select` but not
10318
+ * part of the public `ActionSheetButton` interface.
10319
+ */
10320
+ const richButton = b;
10314
10321
  const optionLabelOptions = {
10315
10322
  id: buttonId,
10316
- label: b.text,
10317
- startContent: b.startContent,
10318
- endContent: b.endContent,
10319
- description: b.description,
10323
+ label: richButton.text,
10324
+ startContent: richButton.startContent,
10325
+ endContent: richButton.endContent,
10326
+ description: richButton.description,
10320
10327
  };
10321
10328
  return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), { 'action-sheet-selected': isActiveRadio }), onClick: () => {
10322
10329
  if (isRadio) {
@@ -10333,12 +10340,12 @@ class ActionSheet {
10333
10340
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10334
10341
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10335
10342
  const headerID = `action-sheet-${overlayIndex}-header`;
10336
- return (hAsync(Host, Object.assign({ key: '32d662676784385bf348708be6560929ca1599f8', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10343
+ return (hAsync(Host, Object.assign({ key: '8abe5fcc3941ca61ec313b4c47608c58c8eb2815', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10337
10344
  zIndex: `${20000 + this.overlayIndex}`,
10338
- }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '8b84d7292ffcf68138fff9cd0ec6455c91c9cd25', tappable: this.backdropDismiss }), hAsync("div", { key: '2a733b2adef42786bec7ce9c29a29d0935952430', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '1846b99afa26e30b6344e5a860300254e61f3692', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c6a5a986304767935a6de7e01b5ca3feddc2c0d0', class: "action-sheet-container" }, hAsync("div", { key: '467fdb1c8468ca25e733606e0b427ad3888885e3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: 'e06690113e9c4da1089bd3495c819f72d7505574', id: headerID, class: {
10345
+ }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '773948649ab8de68d0d683f5f0665c0fb94446db', tappable: this.backdropDismiss }), hAsync("div", { key: 'a107d07dc073c088da7059d2a96f393ae9a9e494', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '7a0468225a402e3ae72048d84abb48cdb940e8ca', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '6ba6a114547440c1e746a4fbba717954bfbe2a50', class: "action-sheet-container" }, hAsync("div", { key: '4d9c249bdcfc0ab981d187edd3d4b1397cc59f5a', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '325c63cf2a1b081d411b3c80b65fe403e9aaa298', id: headerID, class: {
10339
10346
  'action-sheet-title': true,
10340
10347
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10341
- } }, header, this.subHeader && hAsync("div", { key: 'b607fe7d470703d7b4f123413cf27487a5bb1bfe', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '35c91756085c12ab97239366350b800110381142', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: '803428a3d1a389b2dc4930cc46884dc2e2b137b0' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '38e86d26fa8fcd32d0ab13640b2701e458854542', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'bec1f332fcfa4b906d09dabae6c01bba1ef88460', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && hAsync("ion-ripple-effect", { key: 'b7cfbaa5a5e5aab0f2317e7bb019802ac4ed3481' })))))), hAsync("div", { key: 'c2527fc1383b7d9388ffbf6ab56461daf986a52d', tabindex: "0", "aria-hidden": "true" })));
10348
+ } }, header, this.subHeader && hAsync("div", { key: '0ef643a1d43ab6f95017b55fe07ddc00e9a0a2f0', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '4549b06fd306ccc029b8a8c9209dafa13e4af8e3', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cd33e2fed14ec36bce0c882449831fb8685c26ab' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '24717a96d90e806a1daddc78685d33afee6397ec', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '9b3162193520f3e10db8f0ca016d367787848126', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && hAsync("ion-ripple-effect", { key: '5f6e18c24164395393d4541de1fa60cd88e0f6ea' })))))), hAsync("div", { key: '78a306469aafada4158d434502ab02c8d1fed2d0', tabindex: "0", "aria-hidden": "true" })));
10342
10349
  }
10343
10350
  get el() { return getElement(this); }
10344
10351
  static get watchers() { return {
@@ -10812,25 +10819,7 @@ class Alert {
10812
10819
  this.inputType = inputTypes.values().next().value;
10813
10820
  this.processedInputs = inputs.map((i, index) => {
10814
10821
  var _a;
10815
- return ({
10816
- type: i.type || 'text',
10817
- name: i.name || `${index}`,
10818
- placeholder: i.placeholder || '',
10819
- value: i.value,
10820
- label: i.label,
10821
- checked: !!i.checked,
10822
- disabled: !!i.disabled,
10823
- id: i.id || `alert-input-${this.overlayIndex}-${index}`,
10824
- handler: i.handler,
10825
- min: i.min,
10826
- max: i.max,
10827
- cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
10828
- attributes: i.attributes || {},
10829
- tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
10830
- startContent: i.startContent,
10831
- endContent: i.endContent,
10832
- description: i.description,
10833
- });
10822
+ 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 });
10834
10823
  });
10835
10824
  }
10836
10825
  connectedCallback() {
@@ -11017,12 +11006,19 @@ class Alert {
11017
11006
  return null;
11018
11007
  }
11019
11008
  return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
11009
+ /**
11010
+ * Cast to `SelectAlertInput` to access rich content
11011
+ * fields (`startContent`, `endContent`, `description`)
11012
+ * that are passed through from `ion-select` but not
11013
+ * part of the public `AlertInput` interface.
11014
+ */
11015
+ const richInput = i;
11020
11016
  const optionLabelOptions = {
11021
- id: i.id,
11022
- label: i.label,
11023
- startContent: i.startContent,
11024
- endContent: i.endContent,
11025
- description: i.description,
11017
+ id: richInput.id,
11018
+ label: richInput.label,
11019
+ startContent: richInput.startContent,
11020
+ endContent: richInput.endContent,
11021
+ description: richInput.description,
11026
11022
  };
11027
11023
  return (hAsync("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 }) }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), theme === 'md' && hAsync("ion-ripple-effect", null)));
11028
11024
  })));
@@ -11033,12 +11029,19 @@ class Alert {
11033
11029
  return null;
11034
11030
  }
11035
11031
  return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
11032
+ /**
11033
+ * Cast to `SelectAlertInput` to access rich content
11034
+ * fields (`startContent`, `endContent`, `description`)
11035
+ * that are passed through from `ion-select` but not
11036
+ * part of the public `AlertInput` interface.
11037
+ */
11038
+ const richInput = i;
11036
11039
  const optionLabelOptions = {
11037
- id: i.id,
11038
- label: i.label,
11039
- startContent: i.startContent,
11040
- endContent: i.endContent,
11041
- description: i.description,
11040
+ id: richInput.id,
11041
+ label: richInput.label,
11042
+ startContent: richInput.startContent,
11043
+ endContent: richInput.endContent,
11044
+ description: richInput.description,
11042
11045
  };
11043
11046
  return (hAsync("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" }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
11044
11047
  })));
@@ -11100,9 +11103,9 @@ class Alert {
11100
11103
  * If neither are defined, do not set aria-labelledby.
11101
11104
  */
11102
11105
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
11103
- return (hAsync(Host, { key: '85f702e645f4a8cad73af4c9dd7af4f86f70d579', tabindex: "-1", style: {
11106
+ return (hAsync(Host, { key: '643939c4af9c1a68b60eea5724f8662f13bb3f72', tabindex: "-1", style: {
11104
11107
  zIndex: `${20000 + overlayIndex}`,
11105
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'd862b41243d5d1cc22720356be2f6384cb82357e', tappable: this.backdropDismiss }), hAsync("div", { key: '4c333dc639c03f51d43d8fe14fa3a87442f0edae', tabindex: "0", "aria-hidden": "true" }), hAsync("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), hAsync("div", { key: '6314d4512d9e7c73c6157aeb836c6618194f7b9c', class: "alert-head" }, header && (hAsync("h2", { key: 'bae3316beeecd6cd3973e047b33305b3e70a0edc', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '71909e6abaa42ed24e02db3f53ac4f33b1b12665', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'a03827699204ae678411e83a72e7bf0af10201f5', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'd7bbd7c25bf453c329b5fbbd1a5fcddaf98def46', tabindex: "0", "aria-hidden": "true" })));
11108
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '4780caec3fe71a8d5f2112b8b8726d5a7de91192', tappable: this.backdropDismiss }), hAsync("div", { key: 'cc401fcade02bfc557820d31554d5e054da79b28', tabindex: "0", "aria-hidden": "true" }), hAsync("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), hAsync("div", { key: 'c8c72cd019eace73b622f2510e533c281267c48a', class: "alert-head" }, header && (hAsync("h2", { key: '0d95f68560dbb67721476d184df0d8654a07959c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '6444463a2aeef3f076b0bfdfeba4387ced177826', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'a92d7b54567152b57a8ccab6840e851c8fe5a47b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '3ba2cdf15219f03123f6dd884eb7a4da38549c08', tabindex: "0", "aria-hidden": "true" })));
11106
11109
  }
11107
11110
  get el() { return getElement(this); }
11108
11111
  static get watchers() { return {
@@ -39299,7 +39302,7 @@ class Select {
39299
39302
  * TODO(FW-5592): Remove hasStartEndSlots condition
39300
39303
  */
39301
39304
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
39302
- return (hAsync(Host, { key: '3b96c1aab2242d6d5c78c264e619b4bd48a5d41c', onClick: this.onClick, class: createColorClasses$1(this.color, {
39305
+ return (hAsync(Host, { key: '460ec72063e2f484a1fd0d7605739f4cef2d8c87', onClick: this.onClick, class: createColorClasses$1(this.color, {
39303
39306
  [theme]: true,
39304
39307
  'in-item': inItem,
39305
39308
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -39318,7 +39321,7 @@ class Select {
39318
39321
  [`select-shape-${shape}`]: shape !== undefined,
39319
39322
  [`select-label-placement-${labelPlacement}`]: true,
39320
39323
  [`select-size-${size}`]: size !== undefined,
39321
- }) }, hAsync("label", { key: '5d313940bd87d981d46ff8d463a68ba35ccb3285', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '6ae3e00ce2f93e72bd03cc25988660d2c98b1b22', class: "select-wrapper-inner", part: "inner" },
39324
+ }) }, hAsync("label", { key: 'a553837e266ce48e17687ee7ff4027f69a2eff1e', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'e5071d8ee5e4078887ac27a192aa95553a9f487d', class: "select-wrapper-inner", part: "inner" },
39322
39325
  /**
39323
39326
  * For the ionic theme, we render the outline container here
39324
39327
  * instead of higher up, so it can be positioned relative to
@@ -39328,7 +39331,7 @@ class Select {
39328
39331
  * <label> element, ensuring that clicking the label text
39329
39332
  * focuses the select.
39330
39333
  */
39331
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'f6ef2571b7512bdbfd9a891bb0c4965165eb8b0e', class: "select-outline" }), hAsync("slot", { key: '6d31e8769453c6a6119c93602cabbc25a45aba03', name: "start" }), hAsync("div", { key: 'c3c88a6e11ec1ea09c77b9a40a1be9335e99637a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '627ca905d4721fa0b12a2e9ca808e323a2b98e69', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '3fc203f66aad27caf9e3cc533c2a81242900bd78', class: "select-highlight" })), this.renderBottomContent()));
39334
+ theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '04a19d0f8deff600f354c1e2682937884e8e3673', class: "select-outline" }), hAsync("slot", { key: '51e50dccee39355a3ac78b615e4a7a71a371a744', name: "start" }), hAsync("div", { key: '6bf71c54ee895db920d3f98ed7bc8869d9ea3874', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '2f9ebe8996ebfc8371116ec48ca4b750b8c42e43', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'cdf1742886c636270ada0b1e5c61faff40bacdc1', class: "select-highlight" })), this.renderBottomContent()));
39332
39335
  }
39333
39336
  get el() { return getElement(this); }
39334
39337
  static get watchers() { return {
@@ -39561,12 +39564,19 @@ class SelectModal {
39561
39564
  renderRadioOptions() {
39562
39565
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
39563
39566
  return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
39567
+ /**
39568
+ * Cast to `SelectOverlayOption` to access rich content
39569
+ * fields (`startContent`, `endContent`, `description`)
39570
+ * that are passed through from `ion-select` but not
39571
+ * part of the public `SelectModalOption` interface.
39572
+ */
39573
+ const richOption = option;
39564
39574
  const optionLabelOptions = {
39565
39575
  id: `modal-option-${index}`,
39566
- label: option.text,
39567
- startContent: option.startContent,
39568
- endContent: option.endContent,
39569
- description: option.description,
39576
+ label: richOption.text,
39577
+ startContent: richOption.startContent,
39578
+ endContent: richOption.endContent,
39579
+ description: richOption.description,
39570
39580
  };
39571
39581
  return (hAsync("ion-item", { lines: "none", class: Object.assign({
39572
39582
  // TODO FW-4784
@@ -39585,12 +39595,19 @@ class SelectModal {
39585
39595
  }
39586
39596
  renderCheckboxOptions() {
39587
39597
  return this.options.map((option, index) => {
39598
+ /**
39599
+ * Cast to `SelectOverlayOption` to access rich content
39600
+ * fields (`startContent`, `endContent`, `description`)
39601
+ * that are passed through from `ion-select` but not
39602
+ * part of the public `SelectModalOption` interface.
39603
+ */
39604
+ const richOption = option;
39588
39605
  const optionLabelOptions = {
39589
39606
  id: `modal-option-${index}`,
39590
- label: option.text,
39591
- startContent: option.startContent,
39592
- endContent: option.endContent,
39593
- description: option.description,
39607
+ label: richOption.text,
39608
+ startContent: richOption.startContent,
39609
+ endContent: richOption.endContent,
39610
+ description: richOption.description,
39594
39611
  };
39595
39612
  return (hAsync("ion-item", { class: Object.assign({
39596
39613
  // TODO FW-4784
@@ -39602,7 +39619,7 @@ class SelectModal {
39602
39619
  });
39603
39620
  }
39604
39621
  render() {
39605
- return (hAsync(Host, { key: '18730fa65652d7f4889222d085b96324df5938fa', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: 'f919ce66062f36b0826f4fbd51a34563971d7fc5' }, hAsync("ion-toolbar", { key: 'd60bb24925145dde45493cae446e581b9aadefab' }, this.header !== undefined && hAsync("ion-title", { key: 'fd26f906b8bd3e05233576f4c568eefcdb25f5de' }, this.header), hAsync("ion-buttons", { key: 'b3683b2d7e75ba63b7271da71849e905a37337b5', slot: "end" }, hAsync("ion-button", { key: '40a26fc0f05119538b0522276d6e798ce8e18c77', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '7c61146a953ebf2280564a02f1fa57c50f4b62bc' }, hAsync("ion-list", { key: '4d6742ae8bd030d60ea2cd5686f445063ba1e9a5' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
39622
+ return (hAsync(Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, hAsync("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && hAsync("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), hAsync("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, hAsync("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, hAsync("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
39606
39623
  }
39607
39624
  get el() { return getElement(this); }
39608
39625
  static get style() { return {
@@ -39741,12 +39758,19 @@ class SelectPopover {
39741
39758
  }
39742
39759
  renderCheckboxOptions(options) {
39743
39760
  return options.map((option, index) => {
39761
+ /**
39762
+ * Cast to `SelectOverlayOption` to access rich content
39763
+ * fields (`startContent`, `endContent`, `description`)
39764
+ * that are passed through from `ion-select` but not
39765
+ * part of the public `SelectPopoverOption` interface.
39766
+ */
39767
+ const richOption = option;
39744
39768
  const optionLabelOptions = {
39745
39769
  id: `popover-option-${index}`,
39746
- label: option.text,
39747
- startContent: option.startContent,
39748
- endContent: option.endContent,
39749
- description: option.description,
39770
+ label: richOption.text,
39771
+ startContent: richOption.startContent,
39772
+ endContent: richOption.endContent,
39773
+ description: richOption.description,
39750
39774
  };
39751
39775
  return (hAsync("ion-item", { class: Object.assign({
39752
39776
  // TODO FW-4784
@@ -39760,12 +39784,19 @@ class SelectPopover {
39760
39784
  renderRadioOptions(options) {
39761
39785
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
39762
39786
  return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
39787
+ /**
39788
+ * Cast to `SelectOverlayOption` to access rich content
39789
+ * fields (`startContent`, `endContent`, `description`)
39790
+ * that are passed through from `ion-select` but not
39791
+ * part of the public `SelectPopoverOption` interface.
39792
+ */
39793
+ const richOption = option;
39763
39794
  const optionLabelOptions = {
39764
39795
  id: `popover-option-${index}`,
39765
- label: option.text,
39766
- startContent: option.startContent,
39767
- endContent: option.endContent,
39768
- description: option.description,
39796
+ label: richOption.text,
39797
+ startContent: richOption.startContent,
39798
+ endContent: richOption.endContent,
39799
+ description: richOption.description,
39769
39800
  };
39770
39801
  return (hAsync("ion-item", { class: Object.assign({
39771
39802
  // TODO FW-4784
@@ -39786,9 +39817,9 @@ class SelectPopover {
39786
39817
  const { header, message, options, subHeader } = this;
39787
39818
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
39788
39819
  const theme = getIonTheme(this);
39789
- return (hAsync(Host, { key: 'feca67a1e521063a57e23191c04736aa85c5655f', class: {
39820
+ return (hAsync(Host, { key: 'cf05dabe58fcd71a74ac46ab8cb3da7dd687068f', class: {
39790
39821
  [theme]: true,
39791
- } }, hAsync("ion-list", { key: '646ff6d365c10dd16017096adf9cfa5ff1f61c2e' }, header !== undefined && hAsync("ion-list-header", { key: '059e91049e595eea5663fabb7f139f8ba37e5fec' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '9cd2924bc696361003cfe7122bd6cdb855fa1c77' }, hAsync("ion-label", { key: '42c32787a86e4de9b98773652dcd7b269faf3da1', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'e27f78519af68e24130be3d4a166f351bb2b174b' }, subHeader), message !== undefined && hAsync("p", { key: '6a3f45fc5f1d95c02ae37cba9741d2a7325971a4' }, message)))), this.renderOptions(options))));
39822
+ } }, hAsync("ion-list", { key: 'a8367a02dd063da5b55ab133ccfa914990e86023' }, header !== undefined && hAsync("ion-list-header", { key: 'a5c1442720cc3e4a7c629f459c34d7a70f7ee913' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '282735c1127096b1b0bf85b3fd20f26fe4535849' }, hAsync("ion-label", { key: '42aa5709d92f7d0232ef07d607cf4ef19f9ad633', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'f89fee59d120604bc141ec5cc0a872e9c46fd059' }, subHeader), message !== undefined && hAsync("p", { key: '4778170bb58e781570c448d5d5d485b7ac2c9a7a' }, message)))), this.renderOptions(options))));
39792
39823
  }
39793
39824
  get el() { return getElement(this); }
39794
39825
  static get style() { return {
package/hydrate/index.mjs CHANGED
@@ -10309,12 +10309,19 @@ class ActionSheet {
10309
10309
  if (isRadio) {
10310
10310
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10311
10311
  }
10312
+ /**
10313
+ * Cast to `SelectActionSheetButton` to access rich content
10314
+ * fields (`startContent`, `endContent`, `description`)
10315
+ * that are passed through from `ion-select` but not
10316
+ * part of the public `ActionSheetButton` interface.
10317
+ */
10318
+ const richButton = b;
10312
10319
  const optionLabelOptions = {
10313
10320
  id: buttonId,
10314
- label: b.text,
10315
- startContent: b.startContent,
10316
- endContent: b.endContent,
10317
- description: b.description,
10321
+ label: richButton.text,
10322
+ startContent: richButton.startContent,
10323
+ endContent: richButton.endContent,
10324
+ description: richButton.description,
10318
10325
  };
10319
10326
  return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), { 'action-sheet-selected': isActiveRadio }), onClick: () => {
10320
10327
  if (isRadio) {
@@ -10331,12 +10338,12 @@ class ActionSheet {
10331
10338
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10332
10339
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10333
10340
  const headerID = `action-sheet-${overlayIndex}-header`;
10334
- return (hAsync(Host, Object.assign({ key: '32d662676784385bf348708be6560929ca1599f8', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10341
+ return (hAsync(Host, Object.assign({ key: '8abe5fcc3941ca61ec313b4c47608c58c8eb2815', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10335
10342
  zIndex: `${20000 + this.overlayIndex}`,
10336
- }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '8b84d7292ffcf68138fff9cd0ec6455c91c9cd25', tappable: this.backdropDismiss }), hAsync("div", { key: '2a733b2adef42786bec7ce9c29a29d0935952430', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '1846b99afa26e30b6344e5a860300254e61f3692', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c6a5a986304767935a6de7e01b5ca3feddc2c0d0', class: "action-sheet-container" }, hAsync("div", { key: '467fdb1c8468ca25e733606e0b427ad3888885e3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: 'e06690113e9c4da1089bd3495c819f72d7505574', id: headerID, class: {
10343
+ }, class: Object.assign(Object.assign({ [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '773948649ab8de68d0d683f5f0665c0fb94446db', tappable: this.backdropDismiss }), hAsync("div", { key: 'a107d07dc073c088da7059d2a96f393ae9a9e494', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '7a0468225a402e3ae72048d84abb48cdb940e8ca', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '6ba6a114547440c1e746a4fbba717954bfbe2a50', class: "action-sheet-container" }, hAsync("div", { key: '4d9c249bdcfc0ab981d187edd3d4b1397cc59f5a', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '325c63cf2a1b081d411b3c80b65fe403e9aaa298', id: headerID, class: {
10337
10344
  'action-sheet-title': true,
10338
10345
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10339
- } }, header, this.subHeader && hAsync("div", { key: 'b607fe7d470703d7b4f123413cf27487a5bb1bfe', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '35c91756085c12ab97239366350b800110381142', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: '803428a3d1a389b2dc4930cc46884dc2e2b137b0' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '38e86d26fa8fcd32d0ab13640b2701e458854542', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'bec1f332fcfa4b906d09dabae6c01bba1ef88460', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && hAsync("ion-ripple-effect", { key: 'b7cfbaa5a5e5aab0f2317e7bb019802ac4ed3481' })))))), hAsync("div", { key: 'c2527fc1383b7d9388ffbf6ab56461daf986a52d', tabindex: "0", "aria-hidden": "true" })));
10346
+ } }, header, this.subHeader && hAsync("div", { key: '0ef643a1d43ab6f95017b55fe07ddc00e9a0a2f0', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '4549b06fd306ccc029b8a8c9209dafa13e4af8e3', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cd33e2fed14ec36bce0c882449831fb8685c26ab' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '24717a96d90e806a1daddc78685d33afee6397ec', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '9b3162193520f3e10db8f0ca016d367787848126', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), theme === 'md' && hAsync("ion-ripple-effect", { key: '5f6e18c24164395393d4541de1fa60cd88e0f6ea' })))))), hAsync("div", { key: '78a306469aafada4158d434502ab02c8d1fed2d0', tabindex: "0", "aria-hidden": "true" })));
10340
10347
  }
10341
10348
  get el() { return getElement(this); }
10342
10349
  static get watchers() { return {
@@ -10810,25 +10817,7 @@ class Alert {
10810
10817
  this.inputType = inputTypes.values().next().value;
10811
10818
  this.processedInputs = inputs.map((i, index) => {
10812
10819
  var _a;
10813
- return ({
10814
- type: i.type || 'text',
10815
- name: i.name || `${index}`,
10816
- placeholder: i.placeholder || '',
10817
- value: i.value,
10818
- label: i.label,
10819
- checked: !!i.checked,
10820
- disabled: !!i.disabled,
10821
- id: i.id || `alert-input-${this.overlayIndex}-${index}`,
10822
- handler: i.handler,
10823
- min: i.min,
10824
- max: i.max,
10825
- cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
10826
- attributes: i.attributes || {},
10827
- tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
10828
- startContent: i.startContent,
10829
- endContent: i.endContent,
10830
- description: i.description,
10831
- });
10820
+ 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 });
10832
10821
  });
10833
10822
  }
10834
10823
  connectedCallback() {
@@ -11015,12 +11004,19 @@ class Alert {
11015
11004
  return null;
11016
11005
  }
11017
11006
  return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
11007
+ /**
11008
+ * Cast to `SelectAlertInput` to access rich content
11009
+ * fields (`startContent`, `endContent`, `description`)
11010
+ * that are passed through from `ion-select` but not
11011
+ * part of the public `AlertInput` interface.
11012
+ */
11013
+ const richInput = i;
11018
11014
  const optionLabelOptions = {
11019
- id: i.id,
11020
- label: i.label,
11021
- startContent: i.startContent,
11022
- endContent: i.endContent,
11023
- description: i.description,
11015
+ id: richInput.id,
11016
+ label: richInput.label,
11017
+ startContent: richInput.startContent,
11018
+ endContent: richInput.endContent,
11019
+ description: richInput.description,
11024
11020
  };
11025
11021
  return (hAsync("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 }) }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), theme === 'md' && hAsync("ion-ripple-effect", null)));
11026
11022
  })));
@@ -11031,12 +11027,19 @@ class Alert {
11031
11027
  return null;
11032
11028
  }
11033
11029
  return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
11030
+ /**
11031
+ * Cast to `SelectAlertInput` to access rich content
11032
+ * fields (`startContent`, `endContent`, `description`)
11033
+ * that are passed through from `ion-select` but not
11034
+ * part of the public `AlertInput` interface.
11035
+ */
11036
+ const richInput = i;
11034
11037
  const optionLabelOptions = {
11035
- id: i.id,
11036
- label: i.label,
11037
- startContent: i.startContent,
11038
- endContent: i.endContent,
11039
- description: i.description,
11038
+ id: richInput.id,
11039
+ label: richInput.label,
11040
+ startContent: richInput.startContent,
11041
+ endContent: richInput.endContent,
11042
+ description: richInput.description,
11040
11043
  };
11041
11044
  return (hAsync("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" }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
11042
11045
  })));
@@ -11098,9 +11101,9 @@ class Alert {
11098
11101
  * If neither are defined, do not set aria-labelledby.
11099
11102
  */
11100
11103
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
11101
- return (hAsync(Host, { key: '85f702e645f4a8cad73af4c9dd7af4f86f70d579', tabindex: "-1", style: {
11104
+ return (hAsync(Host, { key: '643939c4af9c1a68b60eea5724f8662f13bb3f72', tabindex: "-1", style: {
11102
11105
  zIndex: `${20000 + overlayIndex}`,
11103
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'd862b41243d5d1cc22720356be2f6384cb82357e', tappable: this.backdropDismiss }), hAsync("div", { key: '4c333dc639c03f51d43d8fe14fa3a87442f0edae', tabindex: "0", "aria-hidden": "true" }), hAsync("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), hAsync("div", { key: '6314d4512d9e7c73c6157aeb836c6618194f7b9c', class: "alert-head" }, header && (hAsync("h2", { key: 'bae3316beeecd6cd3973e047b33305b3e70a0edc', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '71909e6abaa42ed24e02db3f53ac4f33b1b12665', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'a03827699204ae678411e83a72e7bf0af10201f5', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'd7bbd7c25bf453c329b5fbbd1a5fcddaf98def46', tabindex: "0", "aria-hidden": "true" })));
11106
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '4780caec3fe71a8d5f2112b8b8726d5a7de91192', tappable: this.backdropDismiss }), hAsync("div", { key: 'cc401fcade02bfc557820d31554d5e054da79b28', tabindex: "0", "aria-hidden": "true" }), hAsync("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), hAsync("div", { key: 'c8c72cd019eace73b622f2510e533c281267c48a', class: "alert-head" }, header && (hAsync("h2", { key: '0d95f68560dbb67721476d184df0d8654a07959c', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '6444463a2aeef3f076b0bfdfeba4387ced177826', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'a92d7b54567152b57a8ccab6840e851c8fe5a47b', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '3ba2cdf15219f03123f6dd884eb7a4da38549c08', tabindex: "0", "aria-hidden": "true" })));
11104
11107
  }
11105
11108
  get el() { return getElement(this); }
11106
11109
  static get watchers() { return {
@@ -39297,7 +39300,7 @@ class Select {
39297
39300
  * TODO(FW-5592): Remove hasStartEndSlots condition
39298
39301
  */
39299
39302
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
39300
- return (hAsync(Host, { key: '3b96c1aab2242d6d5c78c264e619b4bd48a5d41c', onClick: this.onClick, class: createColorClasses$1(this.color, {
39303
+ return (hAsync(Host, { key: '460ec72063e2f484a1fd0d7605739f4cef2d8c87', onClick: this.onClick, class: createColorClasses$1(this.color, {
39301
39304
  [theme]: true,
39302
39305
  'in-item': inItem,
39303
39306
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -39316,7 +39319,7 @@ class Select {
39316
39319
  [`select-shape-${shape}`]: shape !== undefined,
39317
39320
  [`select-label-placement-${labelPlacement}`]: true,
39318
39321
  [`select-size-${size}`]: size !== undefined,
39319
- }) }, hAsync("label", { key: '5d313940bd87d981d46ff8d463a68ba35ccb3285', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '6ae3e00ce2f93e72bd03cc25988660d2c98b1b22', class: "select-wrapper-inner", part: "inner" },
39322
+ }) }, hAsync("label", { key: 'a553837e266ce48e17687ee7ff4027f69a2eff1e', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'e5071d8ee5e4078887ac27a192aa95553a9f487d', class: "select-wrapper-inner", part: "inner" },
39320
39323
  /**
39321
39324
  * For the ionic theme, we render the outline container here
39322
39325
  * instead of higher up, so it can be positioned relative to
@@ -39326,7 +39329,7 @@ class Select {
39326
39329
  * <label> element, ensuring that clicking the label text
39327
39330
  * focuses the select.
39328
39331
  */
39329
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'f6ef2571b7512bdbfd9a891bb0c4965165eb8b0e', class: "select-outline" }), hAsync("slot", { key: '6d31e8769453c6a6119c93602cabbc25a45aba03', name: "start" }), hAsync("div", { key: 'c3c88a6e11ec1ea09c77b9a40a1be9335e99637a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '627ca905d4721fa0b12a2e9ca808e323a2b98e69', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '3fc203f66aad27caf9e3cc533c2a81242900bd78', class: "select-highlight" })), this.renderBottomContent()));
39332
+ theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '04a19d0f8deff600f354c1e2682937884e8e3673', class: "select-outline" }), hAsync("slot", { key: '51e50dccee39355a3ac78b615e4a7a71a371a744', name: "start" }), hAsync("div", { key: '6bf71c54ee895db920d3f98ed7bc8869d9ea3874', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '2f9ebe8996ebfc8371116ec48ca4b750b8c42e43', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'cdf1742886c636270ada0b1e5c61faff40bacdc1', class: "select-highlight" })), this.renderBottomContent()));
39330
39333
  }
39331
39334
  get el() { return getElement(this); }
39332
39335
  static get watchers() { return {
@@ -39559,12 +39562,19 @@ class SelectModal {
39559
39562
  renderRadioOptions() {
39560
39563
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
39561
39564
  return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
39565
+ /**
39566
+ * Cast to `SelectOverlayOption` to access rich content
39567
+ * fields (`startContent`, `endContent`, `description`)
39568
+ * that are passed through from `ion-select` but not
39569
+ * part of the public `SelectModalOption` interface.
39570
+ */
39571
+ const richOption = option;
39562
39572
  const optionLabelOptions = {
39563
39573
  id: `modal-option-${index}`,
39564
- label: option.text,
39565
- startContent: option.startContent,
39566
- endContent: option.endContent,
39567
- description: option.description,
39574
+ label: richOption.text,
39575
+ startContent: richOption.startContent,
39576
+ endContent: richOption.endContent,
39577
+ description: richOption.description,
39568
39578
  };
39569
39579
  return (hAsync("ion-item", { lines: "none", class: Object.assign({
39570
39580
  // TODO FW-4784
@@ -39583,12 +39593,19 @@ class SelectModal {
39583
39593
  }
39584
39594
  renderCheckboxOptions() {
39585
39595
  return this.options.map((option, index) => {
39596
+ /**
39597
+ * Cast to `SelectOverlayOption` to access rich content
39598
+ * fields (`startContent`, `endContent`, `description`)
39599
+ * that are passed through from `ion-select` but not
39600
+ * part of the public `SelectModalOption` interface.
39601
+ */
39602
+ const richOption = option;
39586
39603
  const optionLabelOptions = {
39587
39604
  id: `modal-option-${index}`,
39588
- label: option.text,
39589
- startContent: option.startContent,
39590
- endContent: option.endContent,
39591
- description: option.description,
39605
+ label: richOption.text,
39606
+ startContent: richOption.startContent,
39607
+ endContent: richOption.endContent,
39608
+ description: richOption.description,
39592
39609
  };
39593
39610
  return (hAsync("ion-item", { class: Object.assign({
39594
39611
  // TODO FW-4784
@@ -39600,7 +39617,7 @@ class SelectModal {
39600
39617
  });
39601
39618
  }
39602
39619
  render() {
39603
- return (hAsync(Host, { key: '18730fa65652d7f4889222d085b96324df5938fa', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: 'f919ce66062f36b0826f4fbd51a34563971d7fc5' }, hAsync("ion-toolbar", { key: 'd60bb24925145dde45493cae446e581b9aadefab' }, this.header !== undefined && hAsync("ion-title", { key: 'fd26f906b8bd3e05233576f4c568eefcdb25f5de' }, this.header), hAsync("ion-buttons", { key: 'b3683b2d7e75ba63b7271da71849e905a37337b5', slot: "end" }, hAsync("ion-button", { key: '40a26fc0f05119538b0522276d6e798ce8e18c77', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '7c61146a953ebf2280564a02f1fa57c50f4b62bc' }, hAsync("ion-list", { key: '4d6742ae8bd030d60ea2cd5686f445063ba1e9a5' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
39620
+ return (hAsync(Host, { key: '3fa77e7726ef4b7678cc2ea910e2e09b03ef7cbe', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: '141c87f6f2c0de5e3b614fb616402d2e26276829' }, hAsync("ion-toolbar", { key: '3a44e1c42eb4b48e313a234540ad4f71a1fe7d05' }, this.header !== undefined && hAsync("ion-title", { key: '418d57b29f25eb88a5a1cd9ccbdf73f34f75408a' }, this.header), hAsync("ion-buttons", { key: '7e37ad754da093d86acb758583acf47b9960fba1', slot: "end" }, hAsync("ion-button", { key: '5ac2c7d9bbc345f575319c141f0f6d7acdc4921e', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '4d397a2f668220839e58611da686a2eed94d4135' }, hAsync("ion-list", { key: 'e3e870e4a060af0d475ba8b8263b0eeb4158bac8' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
39604
39621
  }
39605
39622
  get el() { return getElement(this); }
39606
39623
  static get style() { return {
@@ -39739,12 +39756,19 @@ class SelectPopover {
39739
39756
  }
39740
39757
  renderCheckboxOptions(options) {
39741
39758
  return options.map((option, index) => {
39759
+ /**
39760
+ * Cast to `SelectOverlayOption` to access rich content
39761
+ * fields (`startContent`, `endContent`, `description`)
39762
+ * that are passed through from `ion-select` but not
39763
+ * part of the public `SelectPopoverOption` interface.
39764
+ */
39765
+ const richOption = option;
39742
39766
  const optionLabelOptions = {
39743
39767
  id: `popover-option-${index}`,
39744
- label: option.text,
39745
- startContent: option.startContent,
39746
- endContent: option.endContent,
39747
- description: option.description,
39768
+ label: richOption.text,
39769
+ startContent: richOption.startContent,
39770
+ endContent: richOption.endContent,
39771
+ description: richOption.description,
39748
39772
  };
39749
39773
  return (hAsync("ion-item", { class: Object.assign({
39750
39774
  // TODO FW-4784
@@ -39758,12 +39782,19 @@ class SelectPopover {
39758
39782
  renderRadioOptions(options) {
39759
39783
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
39760
39784
  return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
39785
+ /**
39786
+ * Cast to `SelectOverlayOption` to access rich content
39787
+ * fields (`startContent`, `endContent`, `description`)
39788
+ * that are passed through from `ion-select` but not
39789
+ * part of the public `SelectPopoverOption` interface.
39790
+ */
39791
+ const richOption = option;
39761
39792
  const optionLabelOptions = {
39762
39793
  id: `popover-option-${index}`,
39763
- label: option.text,
39764
- startContent: option.startContent,
39765
- endContent: option.endContent,
39766
- description: option.description,
39794
+ label: richOption.text,
39795
+ startContent: richOption.startContent,
39796
+ endContent: richOption.endContent,
39797
+ description: richOption.description,
39767
39798
  };
39768
39799
  return (hAsync("ion-item", { class: Object.assign({
39769
39800
  // TODO FW-4784
@@ -39784,9 +39815,9 @@ class SelectPopover {
39784
39815
  const { header, message, options, subHeader } = this;
39785
39816
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
39786
39817
  const theme = getIonTheme(this);
39787
- return (hAsync(Host, { key: 'feca67a1e521063a57e23191c04736aa85c5655f', class: {
39818
+ return (hAsync(Host, { key: 'cf05dabe58fcd71a74ac46ab8cb3da7dd687068f', class: {
39788
39819
  [theme]: true,
39789
- } }, hAsync("ion-list", { key: '646ff6d365c10dd16017096adf9cfa5ff1f61c2e' }, header !== undefined && hAsync("ion-list-header", { key: '059e91049e595eea5663fabb7f139f8ba37e5fec' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '9cd2924bc696361003cfe7122bd6cdb855fa1c77' }, hAsync("ion-label", { key: '42c32787a86e4de9b98773652dcd7b269faf3da1', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'e27f78519af68e24130be3d4a166f351bb2b174b' }, subHeader), message !== undefined && hAsync("p", { key: '6a3f45fc5f1d95c02ae37cba9741d2a7325971a4' }, message)))), this.renderOptions(options))));
39820
+ } }, hAsync("ion-list", { key: 'a8367a02dd063da5b55ab133ccfa914990e86023' }, header !== undefined && hAsync("ion-list-header", { key: 'a5c1442720cc3e4a7c629f459c34d7a70f7ee913' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '282735c1127096b1b0bf85b3fd20f26fe4535849' }, hAsync("ion-label", { key: '42aa5709d92f7d0232ef07d607cf4ef19f9ad633', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'f89fee59d120604bc141ec5cc0a872e9c46fd059' }, subHeader), message !== undefined && hAsync("p", { key: '4778170bb58e781570c448d5d5d485b7ac2c9a7a' }, message)))), this.renderOptions(options))));
39790
39821
  }
39791
39822
  get el() { return getElement(this); }
39792
39823
  static get style() { return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.8.4-dev.11776184632.103b8351",
3
+ "version": "8.8.4-dev.11776186452.1cc0af05",
4
4
  "description": "Base components for Ionic",
5
5
  "engines": {
6
6
  "node": ">= 16"