@ionic/core 8.2.2-dev.11717796763.1aa87d5c → 8.2.2-dev.11718204308.11b678e2

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 (81) hide show
  1. package/components/checkbox.js +1 -1
  2. package/components/ion-back-button.js +12 -17
  3. package/components/ion-searchbar.js +16 -33
  4. package/components/item.js +1 -1
  5. package/css/core.css.map +1 -1
  6. package/css/display.css.map +1 -1
  7. package/css/float-elements.css.map +1 -1
  8. package/css/global.bundle.css.map +1 -1
  9. package/css/ionic/bundle.ionic.css +1 -1
  10. package/css/ionic/bundle.ionic.css.map +1 -1
  11. package/css/ionic/core.ionic.css +1 -1
  12. package/css/ionic/core.ionic.css.map +1 -1
  13. package/css/ionic/global.bundle.ionic.css +1 -1
  14. package/css/ionic/global.bundle.ionic.css.map +1 -1
  15. package/css/ionic/link.ionic.css.map +1 -1
  16. package/css/ionic/structure.ionic.css.map +1 -1
  17. package/css/ionic/typography.ionic.css +1 -1
  18. package/css/ionic/typography.ionic.css.map +1 -1
  19. package/css/ionic/utils.bundle.ionic.css +1 -1
  20. package/css/ionic/utils.bundle.ionic.css.map +1 -1
  21. package/css/ionic.bundle.css.map +1 -1
  22. package/css/padding.css.map +1 -1
  23. package/css/structure.css.map +1 -1
  24. package/css/text-alignment.css.map +1 -1
  25. package/css/text-transformation.css.map +1 -1
  26. package/css/typography.css.map +1 -1
  27. package/css/utils.bundle.css.map +1 -1
  28. package/dist/cjs/ion-back-button.cjs.entry.js +12 -17
  29. package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-searchbar.cjs.entry.js +16 -33
  32. package/dist/collection/components/back-button/back-button.js +12 -17
  33. package/dist/collection/components/checkbox/checkbox.ionic.css +95 -202
  34. package/dist/collection/components/input/input.js +1 -1
  35. package/dist/collection/components/item/item.ionic.css +32 -0
  36. package/dist/collection/components/item/test/disabled/item.e2e.js +1 -1
  37. package/dist/collection/components/item/test/states/item.e2e.js +1 -1
  38. package/dist/collection/components/nav/nav.js +1 -1
  39. package/dist/collection/components/router/router.js +2 -2
  40. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  41. package/dist/collection/components/searchbar/searchbar.js +17 -33
  42. package/dist/collection/index.js +0 -1
  43. package/dist/docs.json +30 -90
  44. package/dist/esm/ion-back-button.entry.js +12 -17
  45. package/dist/esm/ion-checkbox.entry.js +1 -1
  46. package/dist/esm/ion-item_8.entry.js +1 -1
  47. package/dist/esm/ion-searchbar.entry.js +16 -33
  48. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  49. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  50. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  51. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  52. package/dist/fonts/Inter-VariableFont_slnt,wght.ttf +0 -0
  53. package/dist/html.html-data.json +14 -14
  54. package/dist/ionic/ionic.esm.js +1 -1
  55. package/dist/ionic/p-12c07c03.system.entry.js +4 -0
  56. package/dist/ionic/p-2fdc82b4.entry.js +4 -0
  57. package/dist/ionic/p-30b49657.system.entry.js +4 -0
  58. package/dist/ionic/p-3c6eae03.system.entry.js +4 -0
  59. package/dist/ionic/p-7b590e46.system.js +1 -1
  60. package/dist/ionic/p-89efe86f.entry.js +4 -0
  61. package/dist/ionic/p-bedf240b.entry.js +4 -0
  62. package/dist/ionic/p-cce8c245.entry.js +4 -0
  63. package/dist/ionic/p-cdc9a11c.system.entry.js +4 -0
  64. package/dist/types/index.d.ts +0 -1
  65. package/dist/types/utils/platform.d.ts +2 -2
  66. package/hydrate/index.js +30 -52
  67. package/package.json +1 -2
  68. package/components/ghost-duotone.js +0 -6
  69. package/dist/cjs/ghost-duotone-cd930d5c.js +0 -8
  70. package/dist/esm/ghost-duotone-157f18b8.js +0 -6
  71. package/dist/esm-es5/ghost-duotone-157f18b8.js +0 -4
  72. package/dist/ionic/p-1a5d178f.entry.js +0 -4
  73. package/dist/ionic/p-22388c4d.entry.js +0 -4
  74. package/dist/ionic/p-25732faa.system.entry.js +0 -4
  75. package/dist/ionic/p-2efee8e9.entry.js +0 -4
  76. package/dist/ionic/p-3c93f058.system.entry.js +0 -4
  77. package/dist/ionic/p-3df9b7f5.js +0 -4
  78. package/dist/ionic/p-5436c152.system.entry.js +0 -4
  79. package/dist/ionic/p-5b5f7a34.entry.js +0 -4
  80. package/dist/ionic/p-b8ce15f6.system.entry.js +0 -4
  81. package/dist/ionic/p-c859a8da.system.js +0 -4
@@ -6,15 +6,12 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-7f6ce0b7.js');
9
- const ghostDuotone = require('./ghost-duotone-cd930d5c.js');
10
9
  const helpers = require('./helpers-afaa9001.js');
11
10
  const dir = require('./dir-94c21456.js');
12
11
  const theme = require('./theme-d1c573d2.js');
13
12
  const index$1 = require('./index-073c7cdc.js');
14
13
  const ionicGlobal = require('./ionic-global-2bd379ad.js');
15
14
 
16
- const backspaceSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTYsNDBINjguNTNhMTYuMDgsMTYuMDgsMCwwLDAtMTMuNzIsNy43N0w5LjE0LDEyMy44OGE4LDgsMCwwLDAsMCw4LjI0bDQ1LjY3LDc2LjExQTE2LjA4LDE2LjA4LDAsMCwwLDY4LjUzLDIxNkgyMTZhMTYsMTYsMCwwLDAsMTYtMTZWNTZBMTYsMTYsMCwwLDAsMjE2LDQwWk02MS42NywyMDQuMTIsNjguNTMsMjAwaDBaTTIxNiwyMDBINjguNTNsLTQzLjItNzIsNDMuMi03MkgyMTZaTTEwNi4zNCwxNDYuMzQsMTI0LjY5LDEyOGwtMTguMzUtMTguMzRhOCw4LDAsMCwxLDExLjMyLTExLjMyTDEzNiwxMTYuNjlsMTguMzQtMTguMzVhOCw4LDAsMCwxLDExLjMyLDExLjMyTDE0Ny4zMSwxMjhsMTguMzUsMTguMzRhOCw4LDAsMCwxLTExLjMyLDExLjMyTDEzNiwxMzkuMzFsLTE4LjM0LDE4LjM1YTgsOCwwLDAsMS0xMS4zMi0xMS4zMloiLz48L3N2Zz4=';
17
-
18
15
  const ionicSearchbarMdCss = ".sc-ion-searchbar-ionic-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-ionic-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic,.ion-color.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic,.ion-color.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic{color:inherit}.searchbar-search-icon.sc-ion-searchbar-ionic{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ionic{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ionic{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;border-radius:var(--border-radius);display:block;width:100%;min-height:inherit;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ionic::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ionic::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ionic>div.sc-ion-searchbar-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ionic:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic{display:block}.searchbar-disabled.sc-ion-searchbar-ionic-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-ionic-h{--background:var(--ion-background-color, #fff);--border-radius:2px;--box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);--cancel-button-color:var(--ion-color-step-900, var(--ion-text-color-step-100, #1a1a1a));--clear-button-color:initial;--color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--icon-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;background:inherit}.searchbar-search-icon.sc-ion-searchbar-ionic{top:11px;width:1.3125rem;height:1.3125rem}.searchbar-search-icon.sc-ion-searchbar-ionic{inset-inline-start:16px}.searchbar-cancel-button.sc-ion-searchbar-ionic{top:0;background-color:transparent;font-size:1.5em}.searchbar-cancel-button.sc-ion-searchbar-ionic{inset-inline-start:9px}.searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-cancel-button.sc-ion-searchbar-ionic{position:absolute}.searchbar-search-icon.ion-activated.sc-ion-searchbar-ionic,.searchbar-cancel-button.ion-activated.sc-ion-searchbar-ionic{background-color:transparent}.searchbar-input.sc-ion-searchbar-ionic{-webkit-padding-start:3.4375rem;padding-inline-start:3.4375rem;-webkit-padding-end:3.4375rem;padding-inline-end:3.4375rem;padding-top:0.375rem;padding-bottom:0.375rem;background-position:left 8px center;height:auto;font-size:1rem;font-weight:400;line-height:30px}[dir=rtl].sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic,[dir=rtl] .sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{background-position:right 8px center}[dir=rtl].sc-ion-searchbar-ionic .searchbar-input.sc-ion-searchbar-ionic{background-position:right 8px center}@supports selector(:dir(rtl)){.searchbar-input.sc-ion-searchbar-ionic:dir(rtl){background-position:right 8px center}}.searchbar-clear-button.sc-ion-searchbar-ionic{top:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:absolute;height:100%;border:0;background-color:transparent}.searchbar-clear-button.sc-ion-searchbar-ionic{inset-inline-end:13px}.searchbar-clear-button.ion-activated.sc-ion-searchbar-ionic{background-color:transparent}.searchbar-clear-icon.sc-ion-searchbar-ionic{width:1.375rem;height:100%}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic{display:block}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic,.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{display:block}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic+.searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic+.searchbar-search-icon.sc-ion-searchbar-ionic{display:none}ion-toolbar.sc-ion-searchbar-ionic-h,ion-toolbar .sc-ion-searchbar-ionic-h{-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:3px;padding-bottom:3px}";
19
16
  const IonSearchbarIonicStyle0 = ionicSearchbarMdCss;
20
17
 
@@ -401,20 +398,13 @@ const Searchbar = class {
401
398
  * @returns {string} The icon to use for the clear icon.
402
399
  */
403
400
  get searchbarClearIcon() {
404
- // Return the icon if it is explicitly set
405
- if (this.clearIcon) {
406
- return this.clearIcon;
407
- }
408
- // Determine the theme and map to default icons
409
401
  const theme = ionicGlobal.getIonTheme(this);
410
- const defaultIcons = {
411
- ios: index$1.closeCircle,
412
- ionic: backspaceSvg,
413
- md: index$1.closeSharp,
414
- };
415
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
416
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
417
- // Return the configured searchbar clear icon or the default icon
402
+ const icon = this.clearIcon;
403
+ const defaultIcon = theme === 'ios' ? index$1.closeCircle : index$1.closeSharp;
404
+ if (icon !== undefined) {
405
+ // Icon is set on the component.
406
+ return icon;
407
+ }
418
408
  return ionicGlobal.config.get('searchbarClearIcon', defaultIcon);
419
409
  }
420
410
  /**
@@ -426,20 +416,13 @@ const Searchbar = class {
426
416
  * @returns {string} The icon to use for the search icon.
427
417
  */
428
418
  get searchbarSearchIcon() {
429
- // Return the icon if it is explicitly set
430
- if (this.searchIcon) {
431
- return this.searchIcon;
432
- }
433
- // Determine the theme and map to default icons
434
419
  const theme = ionicGlobal.getIonTheme(this);
435
- const defaultIcons = {
436
- ios: index$1.searchOutline,
437
- ionic: ghostDuotone.ghostDuotoneSvg,
438
- md: index$1.searchSharp,
439
- };
440
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
441
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
442
- // Return the configured searchbar search icon or the default icon
420
+ const icon = this.searchIcon;
421
+ const defaultIcon = theme === 'ios' ? index$1.searchOutline : index$1.searchSharp;
422
+ if (icon !== undefined) {
423
+ // Icon is set on the component.
424
+ return icon;
425
+ }
443
426
  return ionicGlobal.config.get('searchbarSearchIcon', defaultIcon);
444
427
  }
445
428
  render() {
@@ -455,8 +438,8 @@ const Searchbar = class {
455
438
  * icon in sync.
456
439
  */
457
440
  const searchbarCancelIcon = (_a = this.cancelButtonIcon) !== null && _a !== void 0 ? _a : ionicGlobal.config.get('searchbarCancelIcon', ionicGlobal.config.get('backButtonIcon', index$1.arrowBackSharp));
458
- const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '1325b5d3cd50fde86f2d5631d9d7dcd53c656cc3', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme$1 === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '05b21511f6f0a8f13b6bdb52e4197b550e3a224c', "aria-hidden": "true" }, theme$1 === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
459
- return (index.h(index.Host, { key: '8c83e95c9331195f271ee3878b56331cc55b246d', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
441
+ const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '0f2eba25249738e27c3034c7eec7115923750f81', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme$1 === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '6681fbb58ef02f92921f323a72811fc9944a8bc5', "aria-hidden": "true" }, theme$1 === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
442
+ return (index.h(index.Host, { key: 'a3096793c67003c9877e82c84f1a3322f0f7dd43', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
460
443
  [theme$1]: true,
461
444
  'searchbar-animated': animated,
462
445
  'searchbar-disabled': this.disabled,
@@ -466,14 +449,14 @@ const Searchbar = class {
466
449
  'searchbar-has-focus': this.focused,
467
450
  'searchbar-should-show-clear': this.shouldShowClearButton(),
468
451
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
469
- }) }, index.h("div", { key: 'af3619276aff948d14b4db312b558b191efdab75', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: '8e00bddb2c1e7a51548d7887161c375ed3a064d9', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), theme$1 === 'md' && cancelButton, index.h("ion-icon", { key: '7823dc3661a5ddc45c84f801e74b12d5b85dee1b', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '02a1492e69abe727e795590648590d2af2249907', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
452
+ }) }, index.h("div", { key: '1a7b5e5c5b0b833f09b338695277c6b5cafc2821', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: '83d441c6380d96768da82a67c695ecc04ed3f8d1', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), theme$1 === 'md' && cancelButton, index.h("ion-icon", { key: '5505461cd3fef4bcd758cbe8e1c36afa2e0c207b', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '9b8c98830670a64abb5b40f8889a1acc7bc87651', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
470
453
  /**
471
454
  * This prevents mobile browsers from
472
455
  * blurring the input when the clear
473
456
  * button is activated.
474
457
  */
475
458
  ev.preventDefault();
476
- }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '6eccaa09b92b263d825cc0cd1918168a8bcfc151', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme$1 === 'ios' && cancelButton));
459
+ }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: 'f729feadcdbe5bf4511358d2cc8eb531c353982f', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme$1 === 'ios' && cancelButton));
477
460
  }
478
461
  get el() { return index.getElement(this); }
479
462
  static get watchers() { return {
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import ghostDuotone from "@phosphor-icons/core/assets/duotone/ghost-duotone.svg";
5
4
  import { Host, h } from "@stencil/core";
6
5
  import { inheritAriaAttributes } from "../../utils/helpers";
7
6
  import { createColorClasses, hostContext, openURL } from "../../utils/theme";
@@ -42,21 +41,17 @@ export class BackButton {
42
41
  }
43
42
  }
44
43
  get backButtonIcon() {
45
- // Return the icon if it is explicitly set
46
- if (this.icon) {
47
- return this.icon;
44
+ const icon = this.icon;
45
+ if (icon != null) {
46
+ // Icon is set on the component or by the config.
47
+ return icon;
48
48
  }
49
- // Determine the theme and map to default icons
50
- const theme = getIonTheme(this);
51
- const defaultIcons = {
52
- ios: chevronBack,
53
- ionic: ghostDuotone,
54
- md: arrowBackSharp,
55
- };
56
- // Get the default icon based on the theme, falling back to 'md' icon if necessary
57
- const defaultIcon = defaultIcons[theme] || defaultIcons.md;
58
- // Return the configured back button icon or the default icon
59
- return config.get('backButtonIcon', defaultIcon);
49
+ if (getIonTheme(this) === 'ios') {
50
+ // default ios back button icon
51
+ return config.get('backButtonIcon', chevronBack);
52
+ }
53
+ // default md back button icon
54
+ return config.get('backButtonIcon', arrowBackSharp);
60
55
  }
61
56
  get backButtonText() {
62
57
  const defaultBackButtonText = getIonTheme(this) === 'ios' ? 'Back' : null;
@@ -78,7 +73,7 @@ export class BackButton {
78
73
  const showBackButton = defaultHref !== undefined;
79
74
  const theme = getIonTheme(this);
80
75
  const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
81
- return (h(Host, { key: '2312557fad91c04bc77bc79feb55dc83e7820429', onClick: this.onClick, class: createColorClasses(color, {
76
+ return (h(Host, { key: '2a5ed71efffb6cad9e0d2182cfa77f291a6e044b', onClick: this.onClick, class: createColorClasses(color, {
82
77
  [theme]: true,
83
78
  button: true, // ion-buttons target .button
84
79
  'back-button-disabled': disabled,
@@ -88,7 +83,7 @@ export class BackButton {
88
83
  'ion-activatable': true,
89
84
  'ion-focusable': true,
90
85
  'show-back-button': showBackButton,
91
- }) }, h("button", { key: '309ba8ef79ac364a065a69aa9df9980b0acc9ce0', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: 'c1aabce609fd6a6d4474bd2a76a011c461b5f5f8', class: "button-inner" }, backButtonIcon && (h("ion-icon", { key: 'f372b3d13faaa5c2e2f5b1a6c4468c708176cf27', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { key: '4cfa2579dbb36b85cfd30a17ab2c93fdeef621dc', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), theme === 'md' && h("ion-ripple-effect", { key: '1a18479d6c3130cf19188f1422639f953724c913', type: this.rippleType }))));
86
+ }) }, h("button", { key: 'e380bfec2ce8c6bf8da3029183a2533d15c67393', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: '7e9092d5ef0761488d573ded9bf5fee893400c7d', class: "button-inner" }, backButtonIcon && (h("ion-icon", { key: '35e43b83a2776f2339700850f2b28ccb81dbc8bf', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { key: '8a448be4ee9074d973ab1eafab3e423f86a0cb0d', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), theme === 'md' && h("ion-ripple-effect", { key: '9ed811f7cb7fb1111b1242a6156582acceea4b98', type: this.rippleType }))));
92
87
  }
93
88
  static get is() { return "ion-back-button"; }
94
89
  static get encapsulation() { return "shadow"; }
@@ -4,6 +4,32 @@
4
4
  * @param pixels - Value in pixels to be converted (i.e. px)
5
5
  * @param context (optional) - Baseline value
6
6
  */
7
+ /**
8
+ * This is an auto-generated file, please do not change it directly.
9
+ * Ionic Design System
10
+ */
11
+ /**
12
+ * A heuristic that applies CSS to tablet
13
+ * viewports.
14
+ *
15
+ * Usage:
16
+ * @include tablet-viewport() {
17
+ * :host {
18
+ * background-color: green;
19
+ * }
20
+ * }
21
+ */
22
+ /**
23
+ * A heuristic that applies CSS to mobile
24
+ * viewports (i.e. phones, not tablets).
25
+ *
26
+ * Usage:
27
+ * @include mobile-viewport() {
28
+ * :host {
29
+ * background-color: blue;
30
+ * }
31
+ * }
32
+ */
7
33
  /**
8
34
  * Convert a font size to a dynamic font size.
9
35
  * Fonts that participate in Dynamic Type should use
@@ -37,49 +63,18 @@
37
63
  * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
38
64
  * convert to a unit other than $baselineUnit.
39
65
  */
40
- /**
41
- * A heuristic that applies CSS to tablet
42
- * viewports.
43
- *
44
- * Usage:
45
- * @include tablet-viewport() {
46
- * :host {
47
- * background-color: green;
48
- * }
49
- * }
50
- */
51
- /**
52
- * A heuristic that applies CSS to mobile
53
- * viewports (i.e. phones, not tablets).
54
- *
55
- * Usage:
56
- * @include mobile-viewport() {
57
- * :host {
58
- * background-color: blue;
59
- * }
60
- * }
61
- */
62
66
  :host {
63
- /**
64
- * @prop --size: Size of the checkbox icon
65
- *
66
- * @prop --checkbox-background: Background of the checkbox icon
67
- * @prop --checkbox-background-checked: Background of the checkbox icon when checked
68
- *
69
- * @prop --border-color: Border color of the checkbox icon
70
- * @prop --border-radius: Border radius of the checkbox icon
71
- * @prop --border-width: Border width of the checkbox icon
72
- * @prop --border-style: Border style of the checkbox icon
73
- * @prop --border-color-checked: Border color of the checkbox icon when checked
74
- *
75
- * @prop --transition: Transition of the checkbox icon
76
- *
77
- * @prop --checkmark-color: Color of the checkbox checkmark when checked
78
- * @prop --checkmark-width: Stroke width of the checkbox checkmark
79
- */
80
- --checkbox-background-checked: var(--ion-color-primary, #0054e9);
81
- --border-color-checked: var(--ion-color-primary, #0054e9);
82
- --checkmark-color: var(--ion-color-primary-contrast, #fff);
67
+ --border-width: var(--ionic-border-size-025, 1px);
68
+ --border-style: var(--ionic-border-style-solid, solid);
69
+ --border-color: var(--ionic-color-neutral-800, #626262);
70
+ --checkmark-width: 3;
71
+ --focus-ring-color: var(--ionic-state-focus-1, #9ec4fd);
72
+ --focus-ring-width: var(--ionic-border-size-050, 2px);
73
+ --focus-ring-offset: var(--ionic-space-050, 2px);
74
+ --size: var(--ionic-scale-600, 24px);
75
+ --checkbox-background-checked: var(--ionic-color-primary-base, #105cef);
76
+ --border-color-checked: var(--ionic-color-primary-base, #105cef);
77
+ --checkmark-color: var(--ionic-color-base-white, #ffffff);
83
78
  --transition: none;
84
79
  display: inline-block;
85
80
  position: relative;
@@ -87,6 +82,21 @@
87
82
  user-select: none;
88
83
  z-index: 2;
89
84
  }
85
+ :host::after {
86
+ right: 0;
87
+ left: 0;
88
+ top: 50%;
89
+ position: absolute;
90
+ height: 100%;
91
+ min-height: var(--ionic-scale-1200, 48px);
92
+ transform: translateY(-50%);
93
+ content: "";
94
+ cursor: pointer;
95
+ z-index: 1;
96
+ }
97
+ :host .native-wrapper {
98
+ position: relative;
99
+ }
90
100
 
91
101
  :host(.in-item) {
92
102
  flex: 1 1 0;
@@ -106,12 +116,6 @@
106
116
  width: auto;
107
117
  }
108
118
 
109
- :host(.ion-color) {
110
- --checkbox-background-checked: var(--ion-color-base);
111
- --border-color-checked: var(--ion-color-base);
112
- --checkmark-color: var(--ion-color-contrast);
113
- }
114
-
115
119
  .checkbox-wrapper {
116
120
  display: flex;
117
121
  flex-grow: 1;
@@ -127,17 +131,17 @@
127
131
  }
128
132
 
129
133
  :host(.in-item) .label-text-wrapper {
130
- margin-top: 10px;
131
- margin-bottom: 10px;
134
+ margin-top: var(--ionic-space-250, 10px);
135
+ margin-bottom: var(--ionic-space-250, 10px);
132
136
  }
133
137
 
134
138
  :host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper {
135
- margin-top: 10px;
136
- margin-bottom: 16px;
139
+ margin-top: var(--ionic-space-250, 10px);
140
+ margin-bottom: var(--ionic-space-400, 16px);
137
141
  }
138
142
 
139
143
  :host(.in-item.checkbox-label-placement-stacked) .native-wrapper {
140
- margin-bottom: 10px;
144
+ margin-bottom: var(--ionic-space-250, 10px);
141
145
  }
142
146
 
143
147
  /**
@@ -229,8 +233,8 @@ input {
229
233
  */
230
234
  -webkit-margin-start: 0;
231
235
  margin-inline-start: 0;
232
- -webkit-margin-end: 16px;
233
- margin-inline-end: 16px;
236
+ -webkit-margin-end: var(--ionic-space-400, 16px);
237
+ margin-inline-end: var(--ionic-space-400, 16px);
234
238
  }
235
239
 
236
240
  /**
@@ -247,8 +251,8 @@ input {
247
251
  * when the label sits at the end.
248
252
  */
249
253
  :host(.checkbox-label-placement-end) .label-text-wrapper {
250
- -webkit-margin-start: 16px;
251
- margin-inline-start: 16px;
254
+ -webkit-margin-start: var(--ionic-space-400, 16px);
255
+ margin-inline-start: var(--ionic-space-400, 16px);
252
256
  -webkit-margin-end: 0;
253
257
  margin-inline-end: 0;
254
258
  }
@@ -261,8 +265,8 @@ input {
261
265
  */
262
266
  -webkit-margin-start: 0;
263
267
  margin-inline-start: 0;
264
- -webkit-margin-end: 16px;
265
- margin-inline-end: 16px;
268
+ -webkit-margin-end: var(--ionic-space-400, 16px);
269
+ margin-inline-end: var(--ionic-space-400, 16px);
266
270
  }
267
271
 
268
272
  /**
@@ -292,38 +296,16 @@ input {
292
296
  */
293
297
  margin-left: 0;
294
298
  margin-right: 0;
295
- margin-bottom: 16px;
299
+ margin-bottom: var(--ionic-space-400, 16px);
296
300
  /**
297
301
  * Label text should not extend
298
302
  * beyond the bounds of the checkbox.
299
303
  */
300
- max-width: calc(100% / 0.75);
301
- }
302
-
303
- :host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper {
304
- transform-origin: left top;
305
- }
306
- :host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper, :host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper {
307
- transform-origin: right top;
304
+ max-width: 133.3333333333%;
308
305
  }
309
306
 
310
- @supports selector(:dir(rtl)) {
311
- :host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper {
312
- transform-origin: right top;
313
- }
314
- }
315
-
316
- :host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper {
317
- transform-origin: center top;
318
- }
319
- :host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper, :host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper {
320
- transform-origin: calc(100% - center) top;
321
- }
322
-
323
- @supports selector(:dir(rtl)) {
324
- :host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper {
325
- transform-origin: calc(100% - center) top;
326
- }
307
+ :host(.checkbox-size-small) {
308
+ --size: var(--ionic-scale-400, 16px);
327
309
  }
328
310
 
329
311
  :host(.checkbox-checked) .checkbox-icon,
@@ -337,162 +319,73 @@ input {
337
319
  opacity: 1;
338
320
  }
339
321
 
322
+ :host(.ion-invalid) {
323
+ --focus-ring-color: var(--ionic-state-focus-2, #ffafaf);
324
+ }
325
+ :host(.ion-invalid) .checkbox-icon {
326
+ border-color: var(--ionic-color-danger-800, #bf2222);
327
+ }
328
+
340
329
  :host(.checkbox-disabled) {
341
330
  pointer-events: none;
342
331
  }
343
332
 
344
- /**
345
- * Convert a pixels given value into rem
346
- *
347
- * @param pixels - Value in pixels to be converted (i.e. px)
348
- * @param context (optional) - Baseline value
349
- */
350
- /**
351
- * Convert a font size to a dynamic font size.
352
- * Fonts that participate in Dynamic Type should use
353
- * dynamic font sizes.
354
- * @param size - The initial font size including the unit (i.e. px or pt)
355
- * @param unit (optional) - The unit to convert to. Use this if you want to
356
- * convert to a unit other than $baselineUnit.
357
- */
358
- /**
359
- * Convert a font size to a dynamic font size but impose
360
- * a maximum font size.
361
- * @param size - The initial font size including the unit (i.e. px or pt)
362
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
363
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
364
- * convert to a unit other than $baselineUnit.
365
- */
366
- /**
367
- * Convert a font size to a dynamic font size but impose
368
- * a minimum font size.
369
- * @param size - The initial font size including the unit (i.e. px or pt)
370
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
371
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
372
- * convert to a unit other than $baselineUnit.
373
- */
374
- /**
375
- * Convert a font size to a dynamic font size but impose
376
- * maximum and minimum font sizes.
377
- * @param size - The initial font size including the unit (i.e. px or pt)
378
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
379
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
380
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
381
- * convert to a unit other than $baselineUnit.
382
- */
383
- /**
384
- * A heuristic that applies CSS to tablet
385
- * viewports.
386
- *
387
- * Usage:
388
- * @include tablet-viewport() {
389
- * :host {
390
- * background-color: green;
391
- * }
392
- * }
393
- */
394
- /**
395
- * A heuristic that applies CSS to mobile
396
- * viewports (i.e. phones, not tablets).
397
- *
398
- * Usage:
399
- * @include mobile-viewport() {
400
- * :host {
401
- * background-color: blue;
402
- * }
403
- * }
404
- */
405
- /* Rectangular */
406
- :host {
407
- --border-radius: calc(var(--size) / 4 - 2px);
408
- --border-width: 1px;
409
- --border-style: solid;
410
- --border-color: var(--ion-color-step-400, var(--ion-background-color-step-400, #999999));
411
- --checkmark-width: 3;
412
- --focus-ring-color: #9ec4fd;
413
- --focus-ring-width: 2px;
414
- --focus-ring-offset: 2px;
415
- --size: 24px;
416
- }
417
- :host::after {
333
+ :host(.checkbox-disabled) .native-wrapper:after {
418
334
  right: 0;
419
335
  left: 0;
420
- top: 50%;
336
+ top: 0;
337
+ bottom: 0;
421
338
  position: absolute;
422
- height: 100%;
423
- min-height: 48px;
424
- transform: translateY(-50%);
339
+ background-color: var(--ionic-state-disabled, rgba(255, 255, 255, 0.6));
425
340
  content: "";
426
- cursor: pointer;
427
- z-index: 1;
428
- }
429
- :host .native-wrapper {
430
- position: relative;
431
- }
432
-
433
- :host(.checkbox-size-small) {
434
- --size: 16px;
435
- }
436
-
437
- :host(.ion-invalid) {
438
- --focus-ring-color: #ffafaf;
439
- }
440
- :host(.ion-invalid) .checkbox-icon {
441
- border-color: #f72c2c;
442
- }
443
-
444
- :host(.checkbox-disabled.checkbox-indeterminate) .checkbox-icon {
445
- /* TODO(FW-6183): Use design token variables */
446
- border-width: 0;
447
- background-color: var(--ion-color-step-600, var(--ion-background-color-step-600, #666666));
341
+ pointer-events: none;
448
342
  }
449
343
 
450
344
  :host(.checkbox-disabled) .checkbox-icon {
451
- /* TODO(FW-6183): Use design token variables */
452
- border-color: #c9c9c9;
453
- background-color: #f5f5f5;
345
+ border-color: var(--ionic-color-neutral-800, #626262);
346
+ background-color: var(--ionic-state-disabled, rgba(255, 255, 255, 0.6));
454
347
  }
455
348
 
456
349
  :host(.checkbox-disabled.checkbox-checked) .checkbox-icon {
457
- border-width: 0;
458
- background-color: var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));
350
+ border-width: var(--ionic-border-size-0, 0px);
351
+ background-color: var(--ionic-color-primary-base, #105cef);
459
352
  }
460
353
 
461
354
  @media (any-hover: hover) {
462
355
  :host(:hover) .checkbox-icon {
463
- /* TODO(FW-6183): Use design token variables */
464
- background-color: #ececec;
356
+ background-color: var(--ionic-color-neutral-100, #f1f1f1);
465
357
  }
466
358
  :host(:hover.checkbox-checked) .checkbox-icon,
467
359
  :host(:hover.checkbox-indeterminate) .checkbox-icon {
468
- /* TODO(FW-6183): Use design token variables */
469
- background-color: #1061da;
360
+ background-color: var(--ionic-color-primary-800, #0f54da);
470
361
  }
471
362
  }
472
363
  :host(.ion-focused:not(.checkbox-disabled)) .checkbox-icon {
473
- outline: var(--focus-ring-width) solid var(--focus-ring-color);
364
+ outline: var(--focus-ring-width) var(--ionic-border-style-solid, solid) var(--focus-ring-color);
474
365
  outline-offset: var(--focus-ring-offset);
475
366
  }
476
367
 
477
368
  :host(.ion-activated) .checkbox-icon {
478
- /* TODO(FW-6183): Use design token variables */
479
- background-color: #e3e3e3;
369
+ background-color: var(--ionic-color-neutral-200, #e7e7e7);
480
370
  }
481
371
 
482
372
  :host(.ion-activated.checkbox-checked) .checkbox-icon,
483
373
  :host(.ion-activated.checkbox-indeterminate) .checkbox-icon {
484
- /* TODO(FW-6183): Use design token variables */
485
- background-color: #105ed1;
374
+ background-color: var(--ionic-color-primary-900, #0d4bc3);
486
375
  }
487
376
 
488
377
  :host(.checkbox-shape-soft) {
489
- --border-radius: calc(var(--size) / 4 - 2px);
378
+ --border-radius: var(--ionic-border-radius-100, 4px);
379
+ }
380
+
381
+ :host(.checkbox-size-small.checkbox-shape-soft) {
382
+ --border-radius: var(--ionic-border-radius-050, 2px);
490
383
  }
491
384
 
492
385
  :host(.checkbox-shape-rectangular) {
493
- --border-radius: 0;
386
+ --border-radius: var(--ionic-border-radius-0, 0px);
494
387
  }
495
388
 
496
389
  .checkbox-wrapper {
497
- min-height: 48px;
390
+ min-height: var(--ionic-scale-1200, 48px);
498
391
  }
@@ -569,7 +569,7 @@ export class Input {
569
569
  "mutable": false,
570
570
  "complexType": {
571
571
  "original": "AutocompleteTypes",
572
- "resolved": "\"name\" | \"email\" | \"country\" | \"on\" | \"off\" | \"tel\" | \"url\" | \"honorific-prefix\" | \"given-name\" | \"additional-name\" | \"family-name\" | \"honorific-suffix\" | \"nickname\" | \"username\" | \"new-password\" | \"current-password\" | \"one-time-code\" | \"organization-title\" | \"organization\" | \"street-address\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"sex\" | \"tel-country-code\" | \"tel-national\" | \"tel-area-code\" | \"tel-local\" | \"tel-extension\" | \"impp\" | \"photo\"",
572
+ "resolved": "\"name\" | \"email\" | \"tel\" | \"url\" | \"on\" | \"off\" | \"honorific-prefix\" | \"given-name\" | \"additional-name\" | \"family-name\" | \"honorific-suffix\" | \"nickname\" | \"username\" | \"new-password\" | \"current-password\" | \"one-time-code\" | \"organization-title\" | \"organization\" | \"street-address\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"sex\" | \"tel-country-code\" | \"tel-national\" | \"tel-area-code\" | \"tel-local\" | \"tel-extension\" | \"impp\" | \"photo\"",
573
573
  "references": {
574
574
  "AutocompleteTypes": {
575
575
  "location": "import",
@@ -66,6 +66,7 @@
66
66
  :host {
67
67
  /**
68
68
  * @prop --background: Background of the item
69
+ * @prop --background-activated: Background of the item when pressed. Note: setting this will interfere with the Material Design ripple.
69
70
  *
70
71
  * @prop --border-color: Color of the item border
71
72
  * @prop --border-style: Style of the item border
@@ -80,6 +81,7 @@
80
81
  *
81
82
  */
82
83
  --background: var(--ionic-color-base-white, #ffffff);
84
+ --background-activated: var(--ionic-color-neutral-200, #e7e7e7);
83
85
  --border-color: var(--ionic-color-neutral-300, #cfcfcf);
84
86
  --border-style: var(--ionic-border-style-solid, solid);
85
87
  --border-width: var(--ionic-border-size-025, 1px);
@@ -134,4 +136,34 @@
134
136
  flex: 1;
135
137
  overflow: inherit;
136
138
  box-sizing: border-box;
139
+ }
140
+
141
+ :host(.item-disabled) {
142
+ cursor: default;
143
+ pointer-events: none;
144
+ }
145
+ :host(.item-disabled)::after {
146
+ right: 0;
147
+ left: 0;
148
+ top: 0;
149
+ bottom: 0;
150
+ position: absolute;
151
+ background: var(--ionic-state-disabled, rgba(255, 255, 255, 0.6));
152
+ content: "";
153
+ }
154
+
155
+ :host(.ion-activated) .item-native {
156
+ background: var(--background-activated);
157
+ }
158
+
159
+ :host(.ion-focused) .item-native::after {
160
+ right: 0;
161
+ left: 0;
162
+ top: 0;
163
+ bottom: 0;
164
+ position: absolute;
165
+ border-width: var(--ionic-border-size-050, 2px);
166
+ border-style: var(--ionic-border-style-solid, solid);
167
+ border-color: var(--ionic-state-focus-1, #9ec4fd);
168
+ content: "";
137
169
  }
@@ -6,7 +6,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  /**
7
7
  * This behavior does not vary across directions
8
8
  */
9
- configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
9
+ configs({ modes: ['ionic-md', 'md', 'ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
10
10
  test.describe(title('item: disabled state'), () => {
11
11
  test('should not have visual regressions', async ({ page }) => {
12
12
  await page.goto(`/src/components/item/test/disabled`, config);