@ionic/core 8.2.3-dev.11718879673.1a3f486b → 8.2.3-dev.11719301373.17616928

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 (100) hide show
  1. package/components/buttons.js +6 -6
  2. package/components/ion-item-option.js +21 -5
  3. package/components/ion-item-options.js +3 -3
  4. package/components/ion-menu-button.js +6 -6
  5. package/components/ion-searchbar.js +8 -8
  6. package/components/ion-tab-bar.js +3 -3
  7. package/components/ion-tab-button.js +1 -1
  8. package/components/ion-title.js +6 -6
  9. package/components/ion-toolbar.js +11 -7
  10. package/components/list.js +22 -3
  11. package/dist/cjs/ion-app_8.cjs.entry.js +21 -18
  12. package/dist/cjs/ion-item-option_3.cjs.entry.js +22 -7
  13. package/dist/cjs/ion-item_8.cjs.entry.js +21 -3
  14. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  15. package/dist/cjs/ion-searchbar.cjs.entry.js +8 -8
  16. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  17. package/dist/cjs/ionic.cjs.js +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/collection/components/buttons/buttons.ionic.css +101 -0
  20. package/dist/collection/components/buttons/buttons.ios.css +37 -3
  21. package/dist/collection/components/buttons/buttons.js +4 -4
  22. package/dist/collection/components/buttons/buttons.md.css +37 -3
  23. package/dist/collection/components/item-option/item-option.ionic.css +325 -0
  24. package/dist/collection/components/item-option/item-option.js +36 -4
  25. package/dist/collection/components/item-options/item-options.ionic.css +260 -0
  26. package/dist/collection/components/item-options/item-options.js +3 -3
  27. package/dist/collection/components/item-sliding/test/icons/item-sliding.e2e.js +1 -1
  28. package/dist/collection/components/item-sliding/test/shapes/item-sliding.e2e.js +28 -0
  29. package/dist/collection/components/list/list.ionic.css +174 -0
  30. package/dist/collection/components/list/list.js +38 -3
  31. package/dist/collection/components/list/list.md.css +2 -2
  32. package/dist/collection/components/list/test/shape/list.e2e.js +204 -0
  33. package/dist/collection/components/menu-button/menu-button.ionic.css +240 -0
  34. package/dist/collection/components/menu-button/menu-button.ios.css +32 -10
  35. package/dist/collection/components/menu-button/menu-button.js +4 -4
  36. package/dist/collection/components/menu-button/menu-button.md.css +32 -10
  37. package/dist/collection/components/searchbar/searchbar.ionic.css +269 -0
  38. package/dist/collection/components/searchbar/searchbar.ios.css +42 -16
  39. package/dist/collection/components/searchbar/searchbar.js +6 -6
  40. package/dist/collection/components/searchbar/searchbar.md.css +42 -16
  41. package/dist/collection/components/tab-bar/tab-bar.ionic.css +94 -57
  42. package/dist/collection/components/tab-bar/tab-bar.ios.css +46 -43
  43. package/dist/collection/components/tab-bar/tab-bar.md.css +46 -43
  44. package/dist/collection/components/tab-button/tab-button.ionic.css +2 -2
  45. package/dist/collection/components/title/test/theme-ionic/title.e2e.js +14 -0
  46. package/dist/collection/components/title/title.ionic.css +155 -0
  47. package/dist/collection/components/title/title.ios.css +26 -4
  48. package/dist/collection/components/title/title.js +4 -4
  49. package/dist/collection/components/title/title.md.css +26 -4
  50. package/dist/collection/components/toolbar/toolbar.ionic.css +233 -0
  51. package/dist/collection/components/toolbar/toolbar.ios.css +82 -51
  52. package/dist/collection/components/toolbar/toolbar.js +25 -4
  53. package/dist/collection/components/toolbar/toolbar.md.css +82 -51
  54. package/dist/docs.json +89 -1
  55. package/dist/esm/ion-app_8.entry.js +21 -18
  56. package/dist/esm/ion-item-option_3.entry.js +22 -7
  57. package/dist/esm/ion-item_8.entry.js +21 -3
  58. package/dist/esm/ion-menu_3.entry.js +6 -6
  59. package/dist/esm/ion-searchbar.entry.js +8 -8
  60. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  61. package/dist/esm/ionic.js +1 -1
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  64. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  65. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  66. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  67. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  68. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  69. package/dist/esm-es5/ionic.js +1 -1
  70. package/dist/esm-es5/loader.js +1 -1
  71. package/dist/html.html-data.json +34 -0
  72. package/dist/ionic/ionic.esm.js +1 -1
  73. package/dist/ionic/p-12a0de44.system.entry.js +4 -0
  74. package/dist/ionic/p-214631b2.system.entry.js +4 -0
  75. package/dist/ionic/p-224ad51a.entry.js +4 -0
  76. package/dist/ionic/{p-12c07c03.system.entry.js → p-663d8429.system.entry.js} +1 -1
  77. package/dist/ionic/p-7141dfca.entry.js +4 -0
  78. package/dist/ionic/p-7b590e46.system.js +1 -1
  79. package/dist/ionic/p-8052f3ad.entry.js +4 -0
  80. package/dist/ionic/p-82297db9.system.entry.js +4 -0
  81. package/dist/ionic/{p-89efe86f.entry.js → p-9a52a085.entry.js} +1 -1
  82. package/dist/ionic/p-b14d56c8.system.entry.js +4 -0
  83. package/dist/ionic/{p-59cd0dd7.system.entry.js → p-c2eece5e.system.entry.js} +1 -1
  84. package/dist/ionic/p-cd9a7c32.entry.js +4 -0
  85. package/dist/ionic/p-d718695f.entry.js +4 -0
  86. package/dist/types/components/item-option/item-option.d.ts +9 -0
  87. package/dist/types/components/list/list.d.ts +13 -0
  88. package/dist/types/components/toolbar/toolbar.d.ts +5 -0
  89. package/dist/types/components.d.ts +24 -0
  90. package/hydrate/index.js +88 -49
  91. package/package.json +1 -1
  92. package/dist/ionic/p-0116d120.entry.js +0 -4
  93. package/dist/ionic/p-24d2aea3.entry.js +0 -4
  94. package/dist/ionic/p-2fdc82b4.entry.js +0 -4
  95. package/dist/ionic/p-350462f9.system.entry.js +0 -4
  96. package/dist/ionic/p-37e801db.entry.js +0 -4
  97. package/dist/ionic/p-cdc9a11c.system.entry.js +0 -4
  98. package/dist/ionic/p-d5fc7d63.entry.js +0 -4
  99. package/dist/ionic/p-ea8c8541.system.entry.js +0 -4
  100. package/dist/ionic/p-fc0922fa.system.entry.js +0 -4
@@ -59,6 +59,28 @@
59
59
  * }
60
60
  * }
61
61
  */
62
+ /**
63
+ * A heuristic that applies CSS to tablet
64
+ * viewports.
65
+ *
66
+ * Usage:
67
+ * @include tablet-viewport() {
68
+ * :host {
69
+ * background-color: green;
70
+ * }
71
+ * }
72
+ */
73
+ /**
74
+ * A heuristic that applies CSS to mobile
75
+ * viewports (i.e. phones, not tablets).
76
+ *
77
+ * Usage:
78
+ * @include mobile-viewport() {
79
+ * :host {
80
+ * background-color: blue;
81
+ * }
82
+ * }
83
+ */
62
84
  :host {
63
85
  /**
64
86
  * @prop --background: Background of the searchbar input
@@ -76,7 +98,7 @@
76
98
  --placeholder-color: initial;
77
99
  --placeholder-font-style: initial;
78
100
  --placeholder-font-weight: initial;
79
- --placeholder-opacity: var(--ion-placeholder-opacity, 0.6);
101
+ --placeholder-opacity: 0.5;
80
102
  -moz-osx-font-smoothing: grayscale;
81
103
  -webkit-font-smoothing: antialiased;
82
104
  display: flex;
@@ -84,24 +106,9 @@
84
106
  align-items: center;
85
107
  width: 100%;
86
108
  color: var(--color);
87
- font-family: var(--ion-font-family, inherit);
88
109
  box-sizing: border-box;
89
110
  }
90
111
 
91
- :host(.ion-color) {
92
- color: var(--ion-color-contrast);
93
- }
94
-
95
- :host(.ion-color) .searchbar-input {
96
- background: var(--ion-color-base);
97
- }
98
-
99
- :host(.ion-color) .searchbar-clear-button,
100
- :host(.ion-color) .searchbar-cancel-button,
101
- :host(.ion-color) .searchbar-search-icon {
102
- color: inherit;
103
- }
104
-
105
112
  .searchbar-search-icon {
106
113
  color: var(--icon-color);
107
114
  pointer-events: none;
@@ -203,6 +210,25 @@
203
210
  display: block;
204
211
  }
205
212
 
213
+ :host {
214
+ --placeholder-opacity: var(--ion-placeholder-opacity, 0.6);
215
+ font-family: var(--ion-font-family, inherit);
216
+ }
217
+
218
+ :host(.ion-color) {
219
+ color: var(--ion-color-contrast);
220
+ }
221
+
222
+ :host(.ion-color) .searchbar-input {
223
+ background: var(--ion-color-base);
224
+ }
225
+
226
+ :host(.ion-color) .searchbar-clear-button,
227
+ :host(.ion-color) .searchbar-cancel-button,
228
+ :host(.ion-color) .searchbar-search-icon {
229
+ color: inherit;
230
+ }
231
+
206
232
  :host(.searchbar-disabled) {
207
233
  cursor: default;
208
234
  opacity: 0.4;
@@ -421,8 +421,8 @@ export class Searchbar {
421
421
  * icon in sync.
422
422
  */
423
423
  const searchbarCancelIcon = (_a = this.cancelButtonIcon) !== null && _a !== void 0 ? _a : config.get('searchbarCancelIcon', config.get('backButtonIcon', arrowBackSharp));
424
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '0f2eba25249738e27c3034c7eec7115923750f81', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '6681fbb58ef02f92921f323a72811fc9944a8bc5', "aria-hidden": "true" }, theme === 'md' ? (h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
425
- return (h(Host, { key: 'a3096793c67003c9877e82c84f1a3322f0f7dd43', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
424
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '48861dba9f544739202e134ad984a06df37411fa', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '04433af176306e9cae044a90433382c980bacd89', "aria-hidden": "true" }, theme === 'md' ? (h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
425
+ return (h(Host, { key: 'a84f110e531e04fcad2a7643fdb50d79e94b7c51', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
426
426
  [theme]: true,
427
427
  'searchbar-animated': animated,
428
428
  'searchbar-disabled': this.disabled,
@@ -432,14 +432,14 @@ export class Searchbar {
432
432
  'searchbar-has-focus': this.focused,
433
433
  'searchbar-should-show-clear': this.shouldShowClearButton(),
434
434
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
435
- }) }, h("div", { key: '1a7b5e5c5b0b833f09b338695277c6b5cafc2821', class: "searchbar-input-container" }, 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 === 'md' && cancelButton, h("ion-icon", { key: '5505461cd3fef4bcd758cbe8e1c36afa2e0c207b', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '9b8c98830670a64abb5b40f8889a1acc7bc87651', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
435
+ }) }, h("div", { key: 'a5f04dfb5f89cfa81521234439c85c3b15a051c1', class: "searchbar-input-container" }, h("input", Object.assign({ key: '0dcb88c659f846e3188b1964839d8a433c9885e2', "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 === 'md' && cancelButton, h("ion-icon", { key: '46e3fdeadadbe6733671aba130907b76a147d74a', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'b020615f7cf03cfea759a884abb6a96cc85df231', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
436
436
  /**
437
437
  * This prevents mobile browsers from
438
438
  * blurring the input when the clear
439
439
  * button is activated.
440
440
  */
441
441
  ev.preventDefault();
442
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'f729feadcdbe5bf4511358d2cc8eb531c353982f', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme === 'ios' && cancelButton));
442
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '02c603fb06def9f5cd7badb3036f8cb1781c33ba', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme === 'ios' && cancelButton));
443
443
  }
444
444
  static get is() { return "ion-searchbar"; }
445
445
  static get encapsulation() { return "scoped"; }
@@ -447,14 +447,14 @@ export class Searchbar {
447
447
  return {
448
448
  "ios": ["searchbar.ios.scss"],
449
449
  "md": ["searchbar.md.scss"],
450
- "ionic": ["searchbar.md.scss"]
450
+ "ionic": ["searchbar.ionic.scss"]
451
451
  };
452
452
  }
453
453
  static get styleUrls() {
454
454
  return {
455
455
  "ios": ["searchbar.ios.css"],
456
456
  "md": ["searchbar.md.css"],
457
- "ionic": ["searchbar.md.css"]
457
+ "ionic": ["searchbar.ionic.css"]
458
458
  };
459
459
  }
460
460
  static get properties() {
@@ -59,6 +59,28 @@
59
59
  * }
60
60
  * }
61
61
  */
62
+ /**
63
+ * A heuristic that applies CSS to tablet
64
+ * viewports.
65
+ *
66
+ * Usage:
67
+ * @include tablet-viewport() {
68
+ * :host {
69
+ * background-color: green;
70
+ * }
71
+ * }
72
+ */
73
+ /**
74
+ * A heuristic that applies CSS to mobile
75
+ * viewports (i.e. phones, not tablets).
76
+ *
77
+ * Usage:
78
+ * @include mobile-viewport() {
79
+ * :host {
80
+ * background-color: blue;
81
+ * }
82
+ * }
83
+ */
62
84
  :host {
63
85
  /**
64
86
  * @prop --background: Background of the searchbar input
@@ -76,7 +98,7 @@
76
98
  --placeholder-color: initial;
77
99
  --placeholder-font-style: initial;
78
100
  --placeholder-font-weight: initial;
79
- --placeholder-opacity: var(--ion-placeholder-opacity, 0.6);
101
+ --placeholder-opacity: 0.5;
80
102
  -moz-osx-font-smoothing: grayscale;
81
103
  -webkit-font-smoothing: antialiased;
82
104
  display: flex;
@@ -84,24 +106,9 @@
84
106
  align-items: center;
85
107
  width: 100%;
86
108
  color: var(--color);
87
- font-family: var(--ion-font-family, inherit);
88
109
  box-sizing: border-box;
89
110
  }
90
111
 
91
- :host(.ion-color) {
92
- color: var(--ion-color-contrast);
93
- }
94
-
95
- :host(.ion-color) .searchbar-input {
96
- background: var(--ion-color-base);
97
- }
98
-
99
- :host(.ion-color) .searchbar-clear-button,
100
- :host(.ion-color) .searchbar-cancel-button,
101
- :host(.ion-color) .searchbar-search-icon {
102
- color: inherit;
103
- }
104
-
105
112
  .searchbar-search-icon {
106
113
  color: var(--icon-color);
107
114
  pointer-events: none;
@@ -203,6 +210,25 @@
203
210
  display: block;
204
211
  }
205
212
 
213
+ :host {
214
+ --placeholder-opacity: var(--ion-placeholder-opacity, 0.6);
215
+ font-family: var(--ion-font-family, inherit);
216
+ }
217
+
218
+ :host(.ion-color) {
219
+ color: var(--ion-color-contrast);
220
+ }
221
+
222
+ :host(.ion-color) .searchbar-input {
223
+ background: var(--ion-color-base);
224
+ }
225
+
226
+ :host(.ion-color) .searchbar-clear-button,
227
+ :host(.ion-color) .searchbar-cancel-button,
228
+ :host(.ion-color) .searchbar-search-icon {
229
+ color: inherit;
230
+ }
231
+
206
232
  :host(.searchbar-disabled) {
207
233
  cursor: default;
208
234
  opacity: 0.4;
@@ -9,10 +9,26 @@
9
9
  * Ionic Design System
10
10
  */
11
11
  /**
12
- * Convert a pixels given value into rem
13
- *
14
- * @param pixels - Value in pixels to be converted (i.e. px)
15
- * @param context (optional) - Baseline value
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
+ * }
16
32
  */
17
33
  /**
18
34
  * Convert a font size to a dynamic font size.
@@ -47,28 +63,6 @@
47
63
  * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
48
64
  * convert to a unit other than $baselineUnit.
49
65
  */
50
- /**
51
- * A heuristic that applies CSS to tablet
52
- * viewports.
53
- *
54
- * Usage:
55
- * @include tablet-viewport() {
56
- * :host {
57
- * background-color: green;
58
- * }
59
- * }
60
- */
61
- /**
62
- * A heuristic that applies CSS to mobile
63
- * viewports (i.e. phones, not tablets).
64
- *
65
- * Usage:
66
- * @include mobile-viewport() {
67
- * :host {
68
- * background-color: blue;
69
- * }
70
- * }
71
- */
72
66
  :host {
73
67
  /**
74
68
  * @prop --background: Background of the tab bar
@@ -90,30 +84,10 @@
90
84
  text-align: center;
91
85
  contain: strict;
92
86
  user-select: none;
93
- z-index: 10;
94
87
  /* stylelint-disable-next-line declaration-no-important */
95
88
  box-sizing: content-box !important;
96
89
  }
97
90
 
98
- :host(.ion-color) ::slotted(ion-tab-button) {
99
- --background-focused: var(--ion-color-shade);
100
- --color-selected: var(--ion-color-contrast);
101
- }
102
-
103
- :host(.ion-color) ::slotted(.tab-selected) {
104
- color: var(--ion-color-contrast);
105
- }
106
-
107
- :host(.ion-color),
108
- :host(.ion-color) ::slotted(ion-tab-button) {
109
- color: rgba(var(--ion-color-contrast-rgb), 0.7);
110
- }
111
-
112
- :host(.ion-color),
113
- :host(.ion-color) ::slotted(ion-tab-button) {
114
- background: var(--ion-color-base);
115
- }
116
-
117
91
  :host(.ion-color) ::slotted(ion-tab-button.ion-focused),
118
92
  :host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused) {
119
93
  background: var(--background-focused);
@@ -145,19 +119,82 @@
145
119
  * This is an auto-generated file, please do not change it directly.
146
120
  * Ionic Design System
147
121
  */
122
+ /**
123
+ * A heuristic that applies CSS to tablet
124
+ * viewports.
125
+ *
126
+ * Usage:
127
+ * @include tablet-viewport() {
128
+ * :host {
129
+ * background-color: green;
130
+ * }
131
+ * }
132
+ */
133
+ /**
134
+ * A heuristic that applies CSS to mobile
135
+ * viewports (i.e. phones, not tablets).
136
+ *
137
+ * Usage:
138
+ * @include mobile-viewport() {
139
+ * :host {
140
+ * background-color: blue;
141
+ * }
142
+ * }
143
+ */
144
+ /**
145
+ * Convert a font size to a dynamic font size.
146
+ * Fonts that participate in Dynamic Type should use
147
+ * dynamic font sizes.
148
+ * @param size - The initial font size including the unit (i.e. px or pt)
149
+ * @param unit (optional) - The unit to convert to. Use this if you want to
150
+ * convert to a unit other than $baselineUnit.
151
+ */
152
+ /**
153
+ * Convert a font size to a dynamic font size but impose
154
+ * a maximum font size.
155
+ * @param size - The initial font size including the unit (i.e. px or pt)
156
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
157
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
158
+ * convert to a unit other than $baselineUnit.
159
+ */
160
+ /**
161
+ * Convert a font size to a dynamic font size but impose
162
+ * a minimum font size.
163
+ * @param size - The initial font size including the unit (i.e. px or pt)
164
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
165
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
166
+ * convert to a unit other than $baselineUnit.
167
+ */
168
+ /**
169
+ * Convert a font size to a dynamic font size but impose
170
+ * maximum and minimum font sizes.
171
+ * @param size - The initial font size including the unit (i.e. px or pt)
172
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
173
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
174
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
175
+ * convert to a unit other than $baselineUnit.
176
+ */
148
177
  :host {
149
178
  --background: var(--ion-tab-bar-background, var(--ionic-color-base-white, #ffffff));
150
179
  --background-activated: var(--ion-tab-bar-background-activated, #ececec);
151
180
  --background-focused: var(--ion-tab-bar-background-focused, transparent);
152
- --color: var(--ion-tab-bar-color, var(--ionic-color-neutral-500, #a2a2a2));
153
- --color-selected: var(--ion-tab-bar-color-selected, var(--ionic-color-primary-400, #b5c0f7));
154
- -webkit-padding-start: 16px;
155
- padding-inline-start: 16px;
156
- -webkit-padding-end: 16px;
157
- padding-inline-end: 16px;
158
- padding-top: 4px;
159
- padding-bottom: 4px;
160
- height: 52px;
161
- gap: 12px;
162
- box-shadow: var(--ionic-elevation-200, 0px 8px 25px 0px rgba(0, 0, 0, 0.08), 0px 1px 5px 0px rgba(0, 0, 0, 0.05));
181
+ --color: var(--ion-tab-bar-color, var(--ionic-color-neutral-800, #626262));
182
+ --color-selected: var(--ion-tab-bar-color-selected, var(--ionic-color-primary-base, #105cef));
183
+ /**
184
+ * Tab bar has a box sizing of content-box to ensure the padding
185
+ * is not included in the height. This is important for the
186
+ * component to adjust to the safe area bottom.
187
+ *
188
+ * In order for the height to be calculated correctly, the padding
189
+ * top and bottom must be excluded from the height calculation.
190
+ */
191
+ min-height: calc(var(--ionic-scale-1400, 56px) - var(--ionic-space-100, 4px) * 2);
192
+ padding-top: calc(var(--ionic-space-100, 4px) + var(--ion-safe-area-top, 0));
193
+ padding-bottom: calc(var(--ionic-space-100, 4px) + var(--ion-safe-area-bottom, 0));
194
+ /* stylelint-disable */
195
+ padding-right: calc(var(--ionic-space-400, 16px) + var(--ion-safe-area-right, 0));
196
+ padding-left: calc(var(--ionic-space-400, 16px) + var(--ion-safe-area-left, 0));
197
+ /* stylelint-enable */
198
+ gap: var(--ionic-space-300, 12px);
199
+ z-index: 10;
163
200
  }
@@ -1,3 +1,49 @@
1
+ :host {
2
+ /**
3
+ * @prop --background: Background of the tab bar
4
+ * @prop --border: Border of the tab bar
5
+ * @prop --color: Color of the tab bar
6
+ */
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ width: auto;
11
+ /* stylelint-disable */
12
+ padding-right: var(--ion-safe-area-right);
13
+ padding-bottom: var(--ion-safe-area-bottom, 0);
14
+ padding-left: var(--ion-safe-area-left);
15
+ /* stylelint-enable */
16
+ border-top: var(--border);
17
+ background: var(--background);
18
+ color: var(--color);
19
+ text-align: center;
20
+ contain: strict;
21
+ user-select: none;
22
+ /* stylelint-disable-next-line declaration-no-important */
23
+ box-sizing: content-box !important;
24
+ }
25
+
26
+ :host(.ion-color) ::slotted(ion-tab-button.ion-focused),
27
+ :host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused) {
28
+ background: var(--background-focused);
29
+ }
30
+
31
+ :host(.tab-bar-translucent) ::slotted(ion-tab-button) {
32
+ background: transparent;
33
+ }
34
+
35
+ :host([slot=top]) {
36
+ padding-top: var(--ion-safe-area-top, 0);
37
+ padding-bottom: 0;
38
+ border-top: 0;
39
+ border-bottom: var(--border);
40
+ }
41
+
42
+ :host(.tab-bar-hidden) {
43
+ /* stylelint-disable-next-line declaration-no-important */
44
+ display: none !important;
45
+ }
46
+
1
47
  /**
2
48
  * Convert a pixels given value into rem
3
49
  *
@@ -60,29 +106,7 @@
60
106
  * }
61
107
  */
62
108
  :host {
63
- /**
64
- * @prop --background: Background of the tab bar
65
- * @prop --border: Border of the tab bar
66
- * @prop --color: Color of the tab bar
67
- */
68
- display: flex;
69
- align-items: center;
70
- justify-content: center;
71
- width: auto;
72
- /* stylelint-disable */
73
- padding-right: var(--ion-safe-area-right);
74
- padding-bottom: var(--ion-safe-area-bottom, 0);
75
- padding-left: var(--ion-safe-area-left);
76
- /* stylelint-enable */
77
- border-top: var(--border);
78
- background: var(--background);
79
- color: var(--color);
80
- text-align: center;
81
- contain: strict;
82
- user-select: none;
83
109
  z-index: 10;
84
- /* stylelint-disable-next-line declaration-no-important */
85
- box-sizing: content-box !important;
86
110
  }
87
111
 
88
112
  :host(.ion-color) ::slotted(ion-tab-button) {
@@ -104,27 +128,6 @@
104
128
  background: var(--ion-color-base);
105
129
  }
106
130
 
107
- :host(.ion-color) ::slotted(ion-tab-button.ion-focused),
108
- :host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused) {
109
- background: var(--background-focused);
110
- }
111
-
112
- :host(.tab-bar-translucent) ::slotted(ion-tab-button) {
113
- background: transparent;
114
- }
115
-
116
- :host([slot=top]) {
117
- padding-top: var(--ion-safe-area-top, 0);
118
- padding-bottom: 0;
119
- border-top: 0;
120
- border-bottom: var(--border);
121
- }
122
-
123
- :host(.tab-bar-hidden) {
124
- /* stylelint-disable-next-line declaration-no-important */
125
- display: none !important;
126
- }
127
-
128
131
  /**
129
132
  * Convert a pixels given value into rem
130
133
  *
@@ -1,3 +1,49 @@
1
+ :host {
2
+ /**
3
+ * @prop --background: Background of the tab bar
4
+ * @prop --border: Border of the tab bar
5
+ * @prop --color: Color of the tab bar
6
+ */
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ width: auto;
11
+ /* stylelint-disable */
12
+ padding-right: var(--ion-safe-area-right);
13
+ padding-bottom: var(--ion-safe-area-bottom, 0);
14
+ padding-left: var(--ion-safe-area-left);
15
+ /* stylelint-enable */
16
+ border-top: var(--border);
17
+ background: var(--background);
18
+ color: var(--color);
19
+ text-align: center;
20
+ contain: strict;
21
+ user-select: none;
22
+ /* stylelint-disable-next-line declaration-no-important */
23
+ box-sizing: content-box !important;
24
+ }
25
+
26
+ :host(.ion-color) ::slotted(ion-tab-button.ion-focused),
27
+ :host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused) {
28
+ background: var(--background-focused);
29
+ }
30
+
31
+ :host(.tab-bar-translucent) ::slotted(ion-tab-button) {
32
+ background: transparent;
33
+ }
34
+
35
+ :host([slot=top]) {
36
+ padding-top: var(--ion-safe-area-top, 0);
37
+ padding-bottom: 0;
38
+ border-top: 0;
39
+ border-bottom: var(--border);
40
+ }
41
+
42
+ :host(.tab-bar-hidden) {
43
+ /* stylelint-disable-next-line declaration-no-important */
44
+ display: none !important;
45
+ }
46
+
1
47
  /**
2
48
  * Convert a pixels given value into rem
3
49
  *
@@ -60,29 +106,7 @@
60
106
  * }
61
107
  */
62
108
  :host {
63
- /**
64
- * @prop --background: Background of the tab bar
65
- * @prop --border: Border of the tab bar
66
- * @prop --color: Color of the tab bar
67
- */
68
- display: flex;
69
- align-items: center;
70
- justify-content: center;
71
- width: auto;
72
- /* stylelint-disable */
73
- padding-right: var(--ion-safe-area-right);
74
- padding-bottom: var(--ion-safe-area-bottom, 0);
75
- padding-left: var(--ion-safe-area-left);
76
- /* stylelint-enable */
77
- border-top: var(--border);
78
- background: var(--background);
79
- color: var(--color);
80
- text-align: center;
81
- contain: strict;
82
- user-select: none;
83
109
  z-index: 10;
84
- /* stylelint-disable-next-line declaration-no-important */
85
- box-sizing: content-box !important;
86
110
  }
87
111
 
88
112
  :host(.ion-color) ::slotted(ion-tab-button) {
@@ -104,27 +128,6 @@
104
128
  background: var(--ion-color-base);
105
129
  }
106
130
 
107
- :host(.ion-color) ::slotted(ion-tab-button.ion-focused),
108
- :host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused) {
109
- background: var(--background-focused);
110
- }
111
-
112
- :host(.tab-bar-translucent) ::slotted(ion-tab-button) {
113
- background: transparent;
114
- }
115
-
116
- :host([slot=top]) {
117
- padding-top: var(--ion-safe-area-top, 0);
118
- padding-bottom: 0;
119
- border-top: 0;
120
- border-bottom: var(--border);
121
- }
122
-
123
- :host(.tab-bar-hidden) {
124
- /* stylelint-disable-next-line declaration-no-important */
125
- display: none !important;
126
- }
127
-
128
131
  /**
129
132
  * Convert a pixels given value into rem
130
133
  *
@@ -242,8 +242,8 @@ ion-ripple-effect {
242
242
  }
243
243
 
244
244
  :host {
245
- --focus-ring-color: #9ec4fd;
246
- --focus-ring-width: 2px;
245
+ --focus-ring-color: var(--ionic-state-focus-1, #9ec4fd);
246
+ --focus-ring-width: var(--ionic-border-radius-050, 2px);
247
247
  border-radius: var(--ionic-border-radius-200, 8px);
248
248
  }
249
249
 
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs({ modes: ['ionic-md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('title: basic'), () => {
8
+ test('should not have visual regressions', async ({ page }) => {
9
+ await page.goto('/src/components/title/test/theme-ionic', config);
10
+ const wrapper = page.locator('#header-wrapper');
11
+ await expect(wrapper).toHaveScreenshot(screenshot(`title-basic`));
12
+ });
13
+ });
14
+ });