@ionic/core 8.2.3-dev.11723022900.1196a7bf → 8.2.3-dev.11724345963.10ca6051

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 (139) hide show
  1. package/components/button.js +7 -6
  2. package/components/ion-card-content.js +5 -5
  3. package/components/ion-card-header.js +4 -4
  4. package/components/ion-card-subtitle.js +4 -4
  5. package/components/ion-card.js +3 -3
  6. package/components/ion-textarea.js +20 -7
  7. package/components/ion-thumbnail.js +2 -2
  8. package/components/ion-title.js +2 -2
  9. package/components/ion-toast.js +2 -2
  10. package/components/ion-toggle.js +3 -3
  11. package/components/ion-toolbar.js +2 -2
  12. package/components/item.js +11 -4
  13. package/components/ripple-effect.js +15 -5
  14. package/components/spinner.js +4 -5
  15. package/css/core.css +1 -1
  16. package/css/core.css.map +1 -1
  17. package/css/ionic/bundle.ionic.css +1 -1
  18. package/css/ionic/bundle.ionic.css.map +1 -1
  19. package/css/ionic/core.ionic.css +1 -1
  20. package/css/ionic/core.ionic.css.map +1 -1
  21. package/css/ionic.bundle.css +1 -1
  22. package/css/ionic.bundle.css.map +1 -1
  23. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  24. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-button_2.cjs.entry.js +6 -5
  26. package/dist/cjs/ion-card_5.cjs.entry.js +16 -16
  27. package/dist/cjs/ion-item_8.cjs.entry.js +11 -4
  28. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -4
  29. package/dist/cjs/ion-spinner.cjs.entry.js +3 -4
  30. package/dist/cjs/ion-textarea.cjs.entry.js +19 -7
  31. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  33. package/dist/cjs/ionic.cjs.js +1 -1
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/collection/components/button/button.ionic.css +346 -211
  36. package/dist/collection/components/button/button.ios.css +87 -20
  37. package/dist/collection/components/button/button.js +4 -3
  38. package/dist/collection/components/button/button.md.css +87 -20
  39. package/dist/collection/components/button/test/basic/button.e2e.js +3 -3
  40. package/dist/collection/components/button/test/clear/button.e2e.js +1 -1
  41. package/dist/collection/components/button/test/outline/button.e2e.js +1 -1
  42. package/dist/collection/components/card/card.ionic.css +61 -10
  43. package/dist/collection/components/card/card.ios.css +37 -12
  44. package/dist/collection/components/card/card.md.css +37 -12
  45. package/dist/collection/components/card-content/card-content.ionic.css +92 -0
  46. package/dist/collection/components/card-content/card-content.ios.css +4 -1
  47. package/dist/collection/components/card-content/card-content.js +3 -3
  48. package/dist/collection/components/card-content/card-content.md.css +4 -1
  49. package/dist/collection/components/card-header/card-header.ionic.css +89 -0
  50. package/dist/collection/components/card-header/card-header.ios.css +15 -15
  51. package/dist/collection/components/card-header/card-header.js +4 -4
  52. package/dist/collection/components/card-header/card-header.md.css +15 -15
  53. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +148 -0
  54. package/dist/collection/components/card-subtitle/card-subtitle.js +4 -4
  55. package/dist/collection/components/card-title/card-title.ios.css +61 -0
  56. package/dist/collection/components/card-title/card-title.md.css +61 -0
  57. package/dist/collection/components/item/item.ionic.css +12 -0
  58. package/dist/collection/components/item/item.js +10 -3
  59. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +154 -0
  60. package/dist/collection/components/ripple-effect/ripple-effect.js +7 -3
  61. package/dist/collection/components/spinner/spinner.js +4 -5
  62. package/dist/collection/components/textarea/test/size/textarea.e2e.js +123 -0
  63. package/dist/collection/components/textarea/textarea.ionic.css +790 -0
  64. package/dist/collection/components/textarea/textarea.ios.css +175 -95
  65. package/dist/collection/components/textarea/textarea.js +35 -5
  66. package/dist/collection/components/textarea/textarea.md.css +175 -95
  67. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  68. package/dist/collection/components/title/title.js +2 -2
  69. package/dist/collection/components/toast/toast.js +2 -2
  70. package/dist/collection/components/toggle/toggle.js +3 -3
  71. package/dist/collection/components/toolbar/toolbar.js +2 -2
  72. package/dist/docs.json +191 -1
  73. package/dist/esm/ion-app_8.entry.js +4 -4
  74. package/dist/esm/ion-avatar_3.entry.js +2 -2
  75. package/dist/esm/ion-button_2.entry.js +7 -6
  76. package/dist/esm/ion-card_5.entry.js +16 -16
  77. package/dist/esm/ion-item_8.entry.js +11 -4
  78. package/dist/esm/ion-ripple-effect.entry.js +14 -4
  79. package/dist/esm/ion-spinner.entry.js +4 -5
  80. package/dist/esm/ion-textarea.entry.js +19 -7
  81. package/dist/esm/ion-toast.entry.js +2 -2
  82. package/dist/esm/ion-toggle.entry.js +3 -3
  83. package/dist/esm/ionic.js +1 -1
  84. package/dist/esm/loader.js +1 -1
  85. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  86. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  87. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  88. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  89. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  90. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  91. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  92. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  93. package/dist/esm-es5/ion-toast.entry.js +1 -1
  94. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  95. package/dist/esm-es5/ionic.js +1 -1
  96. package/dist/esm-es5/loader.js +1 -1
  97. package/dist/html.html-data.json +15 -0
  98. package/dist/ionic/ionic.esm.js +1 -1
  99. package/dist/ionic/p-13405b29.entry.js +4 -0
  100. package/dist/ionic/p-1ee206ac.entry.js +4 -0
  101. package/dist/ionic/p-22952d7a.system.entry.js +4 -0
  102. package/dist/ionic/{p-7dad531c.system.entry.js → p-31692628.system.entry.js} +1 -1
  103. package/dist/ionic/{p-b4b44bf9.system.entry.js → p-35fde411.system.entry.js} +1 -1
  104. package/dist/ionic/{p-7ab9c88c.system.entry.js → p-3a2eb448.system.entry.js} +1 -1
  105. package/dist/ionic/p-4f053633.system.entry.js +4 -0
  106. package/dist/ionic/p-6691825a.system.entry.js +4 -0
  107. package/dist/ionic/{p-39a39279.entry.js → p-6e7d4537.entry.js} +1 -1
  108. package/dist/ionic/p-7a1b640f.entry.js +4 -0
  109. package/dist/ionic/p-7b590e46.system.js +1 -1
  110. package/dist/ionic/p-8b09c4cb.system.entry.js +4 -0
  111. package/dist/ionic/p-91b33f25.entry.js +4 -0
  112. package/dist/ionic/{p-f84ea1e9.system.entry.js → p-984e02c3.system.entry.js} +1 -1
  113. package/dist/ionic/p-a0e155e1.system.entry.js +4 -0
  114. package/dist/ionic/p-a814eee1.entry.js +4 -0
  115. package/dist/ionic/{p-c11fdca2.entry.js → p-a971dec3.entry.js} +1 -1
  116. package/dist/ionic/p-c1bb715a.entry.js +4 -0
  117. package/dist/ionic/p-d3c9617d.system.entry.js +4 -0
  118. package/dist/ionic/p-d45fd591.entry.js +4 -0
  119. package/dist/ionic/p-f1aa5723.entry.js +4 -0
  120. package/dist/types/components/item/item.d.ts +5 -0
  121. package/dist/types/components/textarea/textarea.d.ts +6 -0
  122. package/dist/types/components.d.ts +8 -0
  123. package/hydrate/index.js +82 -52
  124. package/package.json +1 -1
  125. package/dist/ionic/p-01ae1aa0.entry.js +0 -4
  126. package/dist/ionic/p-128f0f15.system.entry.js +0 -4
  127. package/dist/ionic/p-1be0295f.entry.js +0 -4
  128. package/dist/ionic/p-41c9fb60.entry.js +0 -4
  129. package/dist/ionic/p-42452dc9.entry.js +0 -4
  130. package/dist/ionic/p-4346453b.entry.js +0 -4
  131. package/dist/ionic/p-4d6c2031.system.entry.js +0 -4
  132. package/dist/ionic/p-4fdbf0ef.entry.js +0 -4
  133. package/dist/ionic/p-56c72f65.system.entry.js +0 -4
  134. package/dist/ionic/p-7459eeb7.system.entry.js +0 -4
  135. package/dist/ionic/p-8ac5efa9.entry.js +0 -4
  136. package/dist/ionic/p-b1938594.entry.js +0 -4
  137. package/dist/ionic/p-bbefc52b.system.entry.js +0 -4
  138. package/dist/ionic/p-d774e194.system.entry.js +0 -4
  139. /package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +0 -0
@@ -1,3 +1,64 @@
1
+ /**
2
+ * Convert a pixels given value into rem
3
+ *
4
+ * @param pixels - Value in pixels to be converted (i.e. px)
5
+ * @param context (optional) - Baseline value
6
+ */
7
+ /**
8
+ * Convert a font size to a dynamic font size.
9
+ * Fonts that participate in Dynamic Type should use
10
+ * dynamic font sizes.
11
+ * @param size - The initial font size including the unit (i.e. px or pt)
12
+ * @param unit (optional) - The unit to convert to. Use this if you want to
13
+ * convert to a unit other than $baselineUnit.
14
+ */
15
+ /**
16
+ * Convert a font size to a dynamic font size but impose
17
+ * a maximum font size.
18
+ * @param size - The initial font size including the unit (i.e. px or pt)
19
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
20
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
21
+ * convert to a unit other than $baselineUnit.
22
+ */
23
+ /**
24
+ * Convert a font size to a dynamic font size but impose
25
+ * a minimum font size.
26
+ * @param size - The initial font size including the unit (i.e. px or pt)
27
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
28
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
29
+ * convert to a unit other than $baselineUnit.
30
+ */
31
+ /**
32
+ * Convert a font size to a dynamic font size but impose
33
+ * maximum and minimum font sizes.
34
+ * @param size - The initial font size including the unit (i.e. px or pt)
35
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
36
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
37
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
38
+ * convert to a unit other than $baselineUnit.
39
+ */
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
+ */
1
62
  /**
2
63
  * Convert a pixels given value into rem
3
64
  *
@@ -103,7 +164,6 @@
103
164
  display: inline-block;
104
165
  width: auto;
105
166
  color: var(--color);
106
- font-family: var(--ion-font-family, inherit);
107
167
  text-align: center;
108
168
  text-decoration: none;
109
169
  white-space: normal;
@@ -240,28 +300,9 @@
240
300
  }
241
301
 
242
302
  ::slotted(ion-icon) {
243
- font-size: 1.35em;
244
303
  pointer-events: none;
245
304
  }
246
305
 
247
- ::slotted(ion-icon[slot=start]) {
248
- -webkit-margin-start: -0.3em;
249
- margin-inline-start: -0.3em;
250
- -webkit-margin-end: 0.3em;
251
- margin-inline-end: 0.3em;
252
- margin-top: 0;
253
- margin-bottom: 0;
254
- }
255
-
256
- ::slotted(ion-icon[slot=end]) {
257
- -webkit-margin-start: 0.3em;
258
- margin-inline-start: 0.3em;
259
- -webkit-margin-end: -0.2em;
260
- margin-inline-end: -0.2em;
261
- margin-top: 0;
262
- margin-bottom: 0;
263
- }
264
-
265
306
  ion-ripple-effect {
266
307
  color: var(--ripple-color);
267
308
  }
@@ -332,6 +373,32 @@ ion-ripple-effect {
332
373
  color: var(--ion-toolbar-background, var(--color));
333
374
  }
334
375
 
376
+ :host {
377
+ font-family: var(--ion-font-family, inherit);
378
+ }
379
+
380
+ ::slotted(ion-icon) {
381
+ font-size: 1.35em;
382
+ }
383
+
384
+ ::slotted(ion-icon[slot=start]) {
385
+ -webkit-margin-start: -0.3em;
386
+ margin-inline-start: -0.3em;
387
+ -webkit-margin-end: 0.3em;
388
+ margin-inline-end: 0.3em;
389
+ margin-top: 0;
390
+ margin-bottom: 0;
391
+ }
392
+
393
+ ::slotted(ion-icon[slot=end]) {
394
+ -webkit-margin-start: 0.3em;
395
+ margin-inline-start: 0.3em;
396
+ -webkit-margin-end: -0.2em;
397
+ margin-inline-end: -0.2em;
398
+ margin-top: 0;
399
+ margin-bottom: 0;
400
+ }
401
+
335
402
  /**
336
403
  * Convert a pixels given value into rem
337
404
  *
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { inheritAriaAttributes, hasShadowDom } from "../../utils/helpers";
6
6
  import { printIonWarning } from "../../utils/logging/index";
7
7
  import { createColorClasses, hostContext, openURL } from "../../utils/theme";
8
- import { getIonTheme } from "../../global/ionic-global";
8
+ import { getIonTheme, getIonMode } from "../../global/ionic-global";
9
9
  /**
10
10
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
11
11
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -209,6 +209,7 @@ export class Button {
209
209
  render() {
210
210
  const { buttonType, type, disabled, rel, target, href, color, expand, hasIconOnly, strong, inheritedAttributes } = this;
211
211
  const theme = getIonTheme(this);
212
+ const mode = getIonMode(this);
212
213
  const size = this.getSize();
213
214
  const shape = this.getShape();
214
215
  const TagType = href === undefined ? 'button' : 'a';
@@ -238,7 +239,7 @@ export class Button {
238
239
  {
239
240
  type !== 'button' && this.renderHiddenButton();
240
241
  }
241
- return (h(Host, { key: 'b541bf4e31842abbd28c63c34601703e857342f7', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
242
+ return (h(Host, { key: 'ab53a2de1a5ed8d54fac1b6260e92d01a4b5fe4a', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
242
243
  [theme]: true,
243
244
  [buttonType]: true,
244
245
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -253,7 +254,7 @@ export class Button {
253
254
  'button-disabled': disabled,
254
255
  'ion-activatable': true,
255
256
  'ion-focusable': true,
256
- }) }, h(TagType, Object.assign({ key: '946f186bc9b59ce166597352c5a5477e5b8f1497' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: 'e7fae7d9bc649553d03fe5093daeb4be4fe05ee2', class: "button-inner" }, h("slot", { key: 'f84b4ffcde1addfe15e98435c81917cab03160a9', name: "icon-only", onSlotchange: this.slotChanged }), h("slot", { key: 'df052bae97c139a43844f4ed870f6c943575eeda', name: "start" }), h("slot", { key: '08a0582eaa49c55586d168fa03b3d62d6954f7f5' }), h("slot", { key: 'ecaf2227e61fa5094174f13f0c2b671cd5c69557', name: "end" })), theme === 'md' && h("ion-ripple-effect", { key: 'd46220de6ffd3a0fc73299766cf619276b1cdea9', type: this.rippleType }))));
257
+ }) }, h(TagType, Object.assign({ key: 'cdecf090ea518104bb093d62edcd108fa84727b6' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: 'db73f177db1ddea7f202ef6f2c6b07d41f812f04', class: "button-inner" }, h("slot", { key: '8ec45f3a34de9494972ee1753750664ef51af5f6', name: "icon-only", onSlotchange: this.slotChanged }), h("slot", { key: '313ec292c9fcea510cedb8683050145f561492b2', name: "start" }), h("slot", { key: 'e4b977f187f4308dbdb883b676c65e65e46b16eb' }), h("slot", { key: '12a14e528c13c84648a3be528275eb84d19b7d61', name: "end" })), mode === 'md' && h("ion-ripple-effect", { key: 'a7d45433eb402f3edde9830867f65bbe824c0a62', type: this.rippleType }))));
257
258
  }
258
259
  static get is() { return "ion-button"; }
259
260
  static get encapsulation() { return "shadow"; }
@@ -1,3 +1,64 @@
1
+ /**
2
+ * Convert a pixels given value into rem
3
+ *
4
+ * @param pixels - Value in pixels to be converted (i.e. px)
5
+ * @param context (optional) - Baseline value
6
+ */
7
+ /**
8
+ * Convert a font size to a dynamic font size.
9
+ * Fonts that participate in Dynamic Type should use
10
+ * dynamic font sizes.
11
+ * @param size - The initial font size including the unit (i.e. px or pt)
12
+ * @param unit (optional) - The unit to convert to. Use this if you want to
13
+ * convert to a unit other than $baselineUnit.
14
+ */
15
+ /**
16
+ * Convert a font size to a dynamic font size but impose
17
+ * a maximum font size.
18
+ * @param size - The initial font size including the unit (i.e. px or pt)
19
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
20
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
21
+ * convert to a unit other than $baselineUnit.
22
+ */
23
+ /**
24
+ * Convert a font size to a dynamic font size but impose
25
+ * a minimum font size.
26
+ * @param size - The initial font size including the unit (i.e. px or pt)
27
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
28
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
29
+ * convert to a unit other than $baselineUnit.
30
+ */
31
+ /**
32
+ * Convert a font size to a dynamic font size but impose
33
+ * maximum and minimum font sizes.
34
+ * @param size - The initial font size including the unit (i.e. px or pt)
35
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
36
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
37
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
38
+ * convert to a unit other than $baselineUnit.
39
+ */
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
+ */
1
62
  /**
2
63
  * Convert a pixels given value into rem
3
64
  *
@@ -103,7 +164,6 @@
103
164
  display: inline-block;
104
165
  width: auto;
105
166
  color: var(--color);
106
- font-family: var(--ion-font-family, inherit);
107
167
  text-align: center;
108
168
  text-decoration: none;
109
169
  white-space: normal;
@@ -240,28 +300,9 @@
240
300
  }
241
301
 
242
302
  ::slotted(ion-icon) {
243
- font-size: 1.35em;
244
303
  pointer-events: none;
245
304
  }
246
305
 
247
- ::slotted(ion-icon[slot=start]) {
248
- -webkit-margin-start: -0.3em;
249
- margin-inline-start: -0.3em;
250
- -webkit-margin-end: 0.3em;
251
- margin-inline-end: 0.3em;
252
- margin-top: 0;
253
- margin-bottom: 0;
254
- }
255
-
256
- ::slotted(ion-icon[slot=end]) {
257
- -webkit-margin-start: 0.3em;
258
- margin-inline-start: 0.3em;
259
- -webkit-margin-end: -0.2em;
260
- margin-inline-end: -0.2em;
261
- margin-top: 0;
262
- margin-bottom: 0;
263
- }
264
-
265
306
  ion-ripple-effect {
266
307
  color: var(--ripple-color);
267
308
  }
@@ -332,6 +373,32 @@ ion-ripple-effect {
332
373
  color: var(--ion-toolbar-background, var(--color));
333
374
  }
334
375
 
376
+ :host {
377
+ font-family: var(--ion-font-family, inherit);
378
+ }
379
+
380
+ ::slotted(ion-icon) {
381
+ font-size: 1.35em;
382
+ }
383
+
384
+ ::slotted(ion-icon[slot=start]) {
385
+ -webkit-margin-start: -0.3em;
386
+ margin-inline-start: -0.3em;
387
+ -webkit-margin-end: 0.3em;
388
+ margin-inline-end: 0.3em;
389
+ margin-top: 0;
390
+ margin-bottom: 0;
391
+ }
392
+
393
+ ::slotted(ion-icon[slot=end]) {
394
+ -webkit-margin-start: 0.3em;
395
+ margin-inline-start: 0.3em;
396
+ -webkit-margin-end: -0.2em;
397
+ margin-inline-end: -0.2em;
398
+ margin-top: 0;
399
+ margin-bottom: 0;
400
+ }
401
+
335
402
  /**
336
403
  * Convert a pixels given value into rem
337
404
  *
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { expect } from "@playwright/test";
5
5
  import { configs, test } from "../../../../utils/test/playwright/index";
6
- configs().forEach(({ config, screenshot, title }) => {
6
+ configs({ modes: ['ios', 'md', 'ionic-md', 'ionic-ios'] }).forEach(({ config, screenshot, title }) => {
7
7
  test.describe(title('button: basic'), () => {
8
8
  test('should not have visual regressions', async ({ page }) => {
9
9
  await page.goto(`/src/components/button/test/basic`, config);
@@ -31,9 +31,9 @@ configs({ directions: ['ltr'], modes: ['md'] }).forEach(({ config, title }) => {
31
31
  });
32
32
  });
33
33
  /**
34
- * Ripple effect is only available in MD mode.
34
+ * Ripple effect is only available in MD and Ionic mode.
35
35
  */
36
- configs({ modes: ['md'] }).forEach(({ config, screenshot, title }) => {
36
+ configs({ modes: ['md', 'ionic-md'] }).forEach(({ config, screenshot, title }) => {
37
37
  test.describe(title('button: ripple effect'), () => {
38
38
  test('should not have visual regressions', async ({ page }) => {
39
39
  await page.goto(`/src/components/button/test/basic?ionic:_testing=false`, config);
@@ -6,7 +6,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  /**
7
7
  * Fill="clear" does not render differently based on the direction.
8
8
  */
9
- configs({ directions: ['ltr'], modes: ['ios', 'md', 'ionic-md'] }).forEach(({ title, config, screenshot }) => {
9
+ configs({ directions: ['ltr'], modes: ['ios', 'md', 'ionic-md', 'ionic-ios'] }).forEach(({ title, config, screenshot }) => {
10
10
  test.describe(title('button: fill: clear'), () => {
11
11
  test('should not have visual regressions', async ({ page }) => {
12
12
  await page.goto(`/src/components/button/test/clear`, config);
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { expect } from "@playwright/test";
5
5
  import { configs, test } from "../../../../utils/test/playwright/index";
6
- configs({ modes: ['ios', 'md', 'ionic-md'] }).forEach(({ title, screenshot, config }) => {
6
+ configs({ modes: ['ios', 'md', 'ionic-md', 'ionic-ios'] }).forEach(({ title, screenshot, config }) => {
7
7
  test.describe(title('button: outline'), () => {
8
8
  test('should not have visual regressions', async ({ page }) => {
9
9
  await page.goto(`/src/components/button/test/outline`, config);
@@ -63,24 +63,75 @@
63
63
  * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
64
64
  * convert to a unit other than $baselineUnit.
65
65
  */
66
+ /**
67
+ * A heuristic that applies CSS to tablet
68
+ * viewports.
69
+ *
70
+ * Usage:
71
+ * @include tablet-viewport() {
72
+ * :host {
73
+ * background-color: green;
74
+ * }
75
+ * }
76
+ */
77
+ /**
78
+ * A heuristic that applies CSS to mobile
79
+ * viewports (i.e. phones, not tablets).
80
+ *
81
+ * Usage:
82
+ * @include mobile-viewport() {
83
+ * :host {
84
+ * background-color: blue;
85
+ * }
86
+ * }
87
+ */
66
88
  :host {
67
- --background: var(--ionic-color-base-white, #ffffff);
68
- --border-radius: var(--ionic-border-radius-100, 4px);
69
- -webkit-padding-start: var(--ionic-space-400, 16px);
70
- padding-inline-start: var(--ionic-space-400, 16px);
71
- -webkit-padding-end: var(--ionic-space-400, 16px);
72
- padding-inline-end: var(--ionic-space-400, 16px);
73
- padding-top: var(--ionic-space-400, 16px);
74
- padding-bottom: var(--ionic-space-400, 16px);
89
+ /**
90
+ * @prop --background: Background of the card
91
+ * @prop --color: Color of the card
92
+ * @prop --border-radius: Border radius of the card
93
+ */
94
+ --ion-safe-area-left: 0px;
95
+ --ion-safe-area-right: 0px;
75
96
  border-radius: var(--border-radius);
97
+ -moz-osx-font-smoothing: grayscale;
98
+ -webkit-font-smoothing: antialiased;
76
99
  display: block;
77
- border: var(--ionic-border-size-025, 1px) solid var(--ionic-color-neutral-500, #a2a2a2);
100
+ position: relative;
78
101
  background: var(--background);
79
102
  color: var(--color);
103
+ contain: content;
104
+ overflow: hidden;
105
+ }
106
+
107
+ :host(.ion-color) {
108
+ background: current-color(base);
109
+ color: current-color(contrast);
110
+ }
111
+
112
+ button,
113
+ a {
114
+ cursor: pointer;
115
+ user-select: none;
116
+ -webkit-user-drag: none;
80
117
  }
81
118
 
82
- :host(.card-round) {
119
+ ion-ripple-effect {
120
+ color: var(--ripple-color);
121
+ }
122
+
123
+ :host {
124
+ --background: var(--ionic-color-base-white, #ffffff);
83
125
  --border-radius: var(--ionic-border-radius-400, 16px);
126
+ --color: var(--ionic-color-neutral-1200, #242424);
127
+ }
128
+
129
+ ::slotted(img) {
130
+ display: block;
131
+ }
132
+
133
+ :host(.card-soft) {
134
+ --border-radius: var(--ionic-border-radius-200, 8px);
84
135
  }
85
136
 
86
137
  :host(.card-rectangular) {
@@ -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 card
@@ -74,7 +96,6 @@
74
96
  position: relative;
75
97
  background: var(--background);
76
98
  color: var(--color);
77
- font-family: var(--ion-font-family, inherit);
78
99
  contain: content;
79
100
  overflow: hidden;
80
101
  }
@@ -84,6 +105,21 @@
84
105
  color: var(--ion-color-contrast);
85
106
  }
86
107
 
108
+ button,
109
+ a {
110
+ cursor: pointer;
111
+ user-select: none;
112
+ -webkit-user-drag: none;
113
+ }
114
+
115
+ ion-ripple-effect {
116
+ color: var(--ripple-color);
117
+ }
118
+
119
+ :host {
120
+ font-family: var(--ion-font-family, inherit);
121
+ }
122
+
87
123
  :host(.card-disabled) {
88
124
  cursor: default;
89
125
  opacity: 0.3;
@@ -126,17 +162,6 @@
126
162
  border: 0;
127
163
  }
128
164
 
129
- button,
130
- a {
131
- cursor: pointer;
132
- user-select: none;
133
- -webkit-user-drag: none;
134
- }
135
-
136
- ion-ripple-effect {
137
- color: var(--ripple-color);
138
- }
139
-
140
165
  /**
141
166
  * Convert a pixels given value into rem
142
167
  *
@@ -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 card
@@ -74,7 +96,6 @@
74
96
  position: relative;
75
97
  background: var(--background);
76
98
  color: var(--color);
77
- font-family: var(--ion-font-family, inherit);
78
99
  contain: content;
79
100
  overflow: hidden;
80
101
  }
@@ -84,6 +105,21 @@
84
105
  color: var(--ion-color-contrast);
85
106
  }
86
107
 
108
+ button,
109
+ a {
110
+ cursor: pointer;
111
+ user-select: none;
112
+ -webkit-user-drag: none;
113
+ }
114
+
115
+ ion-ripple-effect {
116
+ color: var(--ripple-color);
117
+ }
118
+
119
+ :host {
120
+ font-family: var(--ion-font-family, inherit);
121
+ }
122
+
87
123
  :host(.card-disabled) {
88
124
  cursor: default;
89
125
  opacity: 0.3;
@@ -126,17 +162,6 @@
126
162
  border: 0;
127
163
  }
128
164
 
129
- button,
130
- a {
131
- cursor: pointer;
132
- user-select: none;
133
- -webkit-user-drag: none;
134
- }
135
-
136
- ion-ripple-effect {
137
- color: var(--ripple-color);
138
- }
139
-
140
165
  /**
141
166
  * Convert a pixels given value into rem
142
167
  *
@@ -0,0 +1,92 @@
1
+ ion-card-content {
2
+ position: relative;
3
+ }
4
+
5
+ /**
6
+ * Convert a pixels given value into rem
7
+ *
8
+ * @param pixels - Value in pixels to be converted (i.e. px)
9
+ * @param context (optional) - Baseline value
10
+ */
11
+ /**
12
+ * This is an auto-generated file, please do not change it directly.
13
+ * Ionic Design System
14
+ */
15
+ /**
16
+ * A heuristic that applies CSS to tablet
17
+ * viewports.
18
+ *
19
+ * Usage:
20
+ * @include tablet-viewport() {
21
+ * :host {
22
+ * background-color: green;
23
+ * }
24
+ * }
25
+ */
26
+ /**
27
+ * A heuristic that applies CSS to mobile
28
+ * viewports (i.e. phones, not tablets).
29
+ *
30
+ * Usage:
31
+ * @include mobile-viewport() {
32
+ * :host {
33
+ * background-color: blue;
34
+ * }
35
+ * }
36
+ */
37
+ /**
38
+ * Convert a font size to a dynamic font size.
39
+ * Fonts that participate in Dynamic Type should use
40
+ * dynamic font sizes.
41
+ * @param size - The initial font size including the unit (i.e. px or pt)
42
+ * @param unit (optional) - The unit to convert to. Use this if you want to
43
+ * convert to a unit other than $baselineUnit.
44
+ */
45
+ /**
46
+ * Convert a font size to a dynamic font size but impose
47
+ * a maximum font size.
48
+ * @param size - The initial font size including the unit (i.e. px or pt)
49
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
50
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
51
+ * convert to a unit other than $baselineUnit.
52
+ */
53
+ /**
54
+ * Convert a font size to a dynamic font size but impose
55
+ * a minimum font size.
56
+ * @param size - The initial font size including the unit (i.e. px or pt)
57
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
58
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
59
+ * convert to a unit other than $baselineUnit.
60
+ */
61
+ /**
62
+ * Convert a font size to a dynamic font size but impose
63
+ * maximum and minimum font sizes.
64
+ * @param size - The initial font size including the unit (i.e. px or pt)
65
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
66
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
67
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
68
+ * convert to a unit other than $baselineUnit.
69
+ */
70
+ .card-content-ionic {
71
+ -webkit-padding-start: var(--ionic-space-400, 16px);
72
+ padding-inline-start: var(--ionic-space-400, 16px);
73
+ -webkit-padding-end: var(--ionic-space-400, 16px);
74
+ padding-inline-end: var(--ionic-space-400, 16px);
75
+ padding-top: var(--ionic-space-400, 16px);
76
+ padding-bottom: var(--ionic-space-400, 16px);
77
+ display: flex;
78
+ flex-direction: column;
79
+ font-size: var(--ionic-font-size-350, 0.875rem);
80
+ line-height: var(--ionic-line-height-600, 24px);
81
+ gap: var(--ionic-space-200, 8px);
82
+ }
83
+ .card-content-ionic img {
84
+ margin-left: 0;
85
+ margin-right: 0;
86
+ margin-top: var(--ionic-space-200, 8px);
87
+ margin-bottom: var(--ionic-space-200, 8px);
88
+ }
89
+
90
+ ion-card-header + .card-content-ionic {
91
+ padding-top: 0;
92
+ }
@@ -1,3 +1,7 @@
1
+ ion-card-content {
2
+ position: relative;
3
+ }
4
+
1
5
  /**
2
6
  * Convert a pixels given value into rem
3
7
  *
@@ -61,7 +65,6 @@
61
65
  */
62
66
  ion-card-content {
63
67
  display: block;
64
- position: relative;
65
68
  }
66
69
 
67
70
  /**