@ionic/core 8.2.3-dev.11721064272.19e3ddfd → 8.2.3-dev.11721225504.1476a6ac

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 (175) hide show
  1. package/components/ion-avatar.js +3 -3
  2. package/components/ion-badge.js +3 -3
  3. package/components/ion-input.js +1 -1
  4. package/components/ion-segment.js +3 -11
  5. package/components/ion-select-option.js +1 -1
  6. package/components/ion-select.js +2 -2
  7. package/components/ion-skeleton-text.js +2 -2
  8. package/components/ion-split-pane.js +2 -2
  9. package/components/ion-tab-bar.js +2 -2
  10. package/components/ion-tab-button.js +2 -2
  11. package/components/ion-tab.js +2 -2
  12. package/components/ion-tabs.js +1 -1
  13. package/components/ion-text.js +2 -2
  14. package/components/ion-textarea.js +2 -2
  15. package/components/ion-thumbnail.js +2 -2
  16. package/components/ion-title.js +2 -2
  17. package/components/ion-toast.js +2 -2
  18. package/components/ion-toggle.js +3 -3
  19. package/components/ion-toolbar.js +2 -2
  20. package/components/item.js +3 -3
  21. package/components/select-popover.js +2 -2
  22. package/components/spinner.js +33 -6
  23. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  24. package/dist/cjs/ion-avatar_3.cjs.entry.js +8 -8
  25. package/dist/cjs/ion-input.cjs.entry.js +1 -1
  26. package/dist/cjs/ion-item_8.cjs.entry.js +5 -5
  27. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -11
  28. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  29. package/dist/cjs/ion-spinner.cjs.entry.js +30 -4
  30. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  32. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  37. package/dist/cjs/ionic.cjs.js +1 -1
  38. package/dist/cjs/loader.cjs.js +1 -1
  39. package/dist/collection/collection-manifest.json +0 -2
  40. package/dist/collection/components/avatar/avatar.ionic.css +17 -1
  41. package/dist/collection/components/avatar/avatar.js +5 -5
  42. package/dist/collection/components/avatar/test/shape/avatar.e2e.js +7 -0
  43. package/dist/collection/components/avatar/test/size/avatar.e2e.js +27 -0
  44. package/dist/collection/components/badge/badge.ionic.css +32 -37
  45. package/dist/collection/components/badge/badge.ios.css +94 -3
  46. package/dist/collection/components/badge/badge.md.css +94 -3
  47. package/dist/collection/components/button/test/outline/button.e2e.js +1 -2
  48. package/dist/collection/components/input/input.ionic.css +2 -1
  49. package/dist/collection/components/item/item.ionic.css +359 -65
  50. package/dist/collection/components/item/item.ios.css +94 -67
  51. package/dist/collection/components/item/item.md.css +94 -67
  52. package/dist/collection/components/segment/segment.js +3 -11
  53. package/dist/collection/components/select/select.js +2 -2
  54. package/dist/collection/components/select-option/select-option.js +1 -1
  55. package/dist/collection/components/select-popover/select-popover.js +2 -2
  56. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  57. package/dist/collection/components/spinner/spinner.common.css +199 -0
  58. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +55 -0
  59. package/dist/collection/components/spinner/spinner.js +40 -3
  60. package/dist/collection/components/spinner/test/size/spinner.e2e.js +47 -0
  61. package/dist/collection/components/split-pane/split-pane.js +2 -2
  62. package/dist/collection/components/tab/tab.js +2 -2
  63. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  64. package/dist/collection/components/tab-button/tab-button.js +2 -2
  65. package/dist/collection/components/tabs/tabs.js +1 -1
  66. package/dist/collection/components/text/text.js +2 -2
  67. package/dist/collection/components/textarea/textarea.js +2 -2
  68. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  69. package/dist/collection/components/title/title.js +2 -2
  70. package/dist/collection/components/toast/toast.js +2 -2
  71. package/dist/collection/components/toggle/toggle.js +3 -3
  72. package/dist/collection/components/toolbar/toolbar.js +2 -2
  73. package/dist/docs.json +190 -48
  74. package/dist/esm/ion-app_8.entry.js +4 -4
  75. package/dist/esm/ion-avatar_3.entry.js +8 -8
  76. package/dist/esm/ion-input.entry.js +1 -1
  77. package/dist/esm/ion-item_8.entry.js +5 -5
  78. package/dist/esm/ion-segment_2.entry.js +3 -11
  79. package/dist/esm/ion-select_3.entry.js +5 -5
  80. package/dist/esm/ion-spinner.entry.js +30 -4
  81. package/dist/esm/ion-split-pane.entry.js +2 -2
  82. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  83. package/dist/esm/ion-tab_2.entry.js +3 -3
  84. package/dist/esm/ion-text.entry.js +2 -2
  85. package/dist/esm/ion-textarea.entry.js +2 -2
  86. package/dist/esm/ion-toast.entry.js +2 -2
  87. package/dist/esm/ion-toggle.entry.js +3 -3
  88. package/dist/esm/ionic.js +1 -1
  89. package/dist/esm/loader.js +1 -1
  90. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  91. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  92. package/dist/esm-es5/ion-input.entry.js +1 -1
  93. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  94. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  95. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  96. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  97. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  98. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  99. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  100. package/dist/esm-es5/ion-text.entry.js +1 -1
  101. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  102. package/dist/esm-es5/ion-toast.entry.js +1 -1
  103. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  104. package/dist/esm-es5/ionic.js +1 -1
  105. package/dist/esm-es5/loader.js +1 -1
  106. package/dist/html.html-data.json +25 -29
  107. package/dist/ionic/ionic.esm.js +1 -1
  108. package/dist/ionic/{p-29f4100d.entry.js → p-01ae1aa0.entry.js} +1 -1
  109. package/dist/ionic/p-1be0295f.entry.js +4 -0
  110. package/dist/ionic/p-201d8768.system.entry.js +4 -0
  111. package/dist/ionic/{p-062c1cb9.system.entry.js → p-223bc7dd.system.entry.js} +1 -1
  112. package/dist/ionic/{p-0595a36c.system.entry.js → p-24592a4d.system.entry.js} +1 -1
  113. package/dist/ionic/{p-2aa6a169.entry.js → p-28649e61.entry.js} +1 -1
  114. package/dist/ionic/{p-385a361b.entry.js → p-39a39279.entry.js} +1 -1
  115. package/dist/ionic/p-3ce954c7.entry.js +4 -0
  116. package/dist/ionic/p-40c14f53.system.entry.js +4 -0
  117. package/dist/ionic/{p-cd6d4c1d.entry.js → p-4346453b.entry.js} +1 -1
  118. package/dist/ionic/{p-1be0ed0e.system.entry.js → p-45ca3acb.system.entry.js} +2 -2
  119. package/dist/ionic/p-4b9c6418.system.entry.js +4 -0
  120. package/dist/ionic/p-563a8d3b.entry.js +4 -0
  121. package/dist/ionic/{p-b67ed806.system.entry.js → p-56c72f65.system.entry.js} +1 -1
  122. package/dist/ionic/{p-da668343.system.entry.js → p-7ab9c88c.system.entry.js} +1 -1
  123. package/dist/ionic/p-7b590e46.system.js +1 -1
  124. package/dist/ionic/{p-c0dace15.system.entry.js → p-7dad531c.system.entry.js} +1 -1
  125. package/dist/ionic/p-85ca50a9.system.entry.js +4 -0
  126. package/dist/ionic/p-8ac5efa9.entry.js +4 -0
  127. package/dist/ionic/p-a0b51978.system.entry.js +4 -0
  128. package/dist/ionic/p-a6bb62ea.entry.js +4 -0
  129. package/dist/ionic/p-ae79f1e2.entry.js +4 -0
  130. package/dist/ionic/{p-aaf1b71f.entry.js → p-b374abe2.entry.js} +1 -1
  131. package/dist/ionic/{p-61f51286.system.entry.js → p-b5cc6e57.system.entry.js} +1 -1
  132. package/dist/ionic/p-bbefc52b.system.entry.js +4 -0
  133. package/dist/ionic/{p-adb54d5b.entry.js → p-c23822f8.entry.js} +1 -1
  134. package/dist/ionic/{p-14ae725a.entry.js → p-d2a580db.entry.js} +1 -1
  135. package/dist/ionic/p-dc8a3888.entry.js +4 -0
  136. package/dist/ionic/{p-5cc8fa7f.system.entry.js → p-f84ea1e9.system.entry.js} +1 -1
  137. package/dist/types/components/avatar/avatar.d.ts +7 -4
  138. package/dist/types/components/segment/segment.d.ts +1 -1
  139. package/dist/types/components/spinner/spinner.d.ts +11 -0
  140. package/dist/types/components.d.ts +12 -30
  141. package/hydrate/index.js +77 -151
  142. package/package.json +1 -1
  143. package/components/ion-segment-content.d.ts +0 -11
  144. package/components/ion-segment-content.js +0 -38
  145. package/components/ion-segment-view.d.ts +0 -11
  146. package/components/ion-segment-view.js +0 -86
  147. package/dist/cjs/ion-segment-content.cjs.entry.js +0 -24
  148. package/dist/cjs/ion-segment-view.cjs.entry.js +0 -72
  149. package/dist/collection/components/segment-content/segment-content.css +0 -5
  150. package/dist/collection/components/segment-content/segment-content.js +0 -22
  151. package/dist/collection/components/segment-view/segment-view.css +0 -15
  152. package/dist/collection/components/segment-view/segment-view.js +0 -81
  153. package/dist/esm/ion-segment-content.entry.js +0 -20
  154. package/dist/esm/ion-segment-view.entry.js +0 -68
  155. package/dist/esm-es5/ion-segment-content.entry.js +0 -4
  156. package/dist/esm-es5/ion-segment-view.entry.js +0 -4
  157. package/dist/ionic/p-07b804ba.entry.js +0 -4
  158. package/dist/ionic/p-405559bd.entry.js +0 -4
  159. package/dist/ionic/p-5839776e.entry.js +0 -4
  160. package/dist/ionic/p-660cf6f3.system.entry.js +0 -4
  161. package/dist/ionic/p-6ced0cc0.entry.js +0 -4
  162. package/dist/ionic/p-6d4534cb.system.entry.js +0 -4
  163. package/dist/ionic/p-72944d53.system.entry.js +0 -4
  164. package/dist/ionic/p-7813dead.system.entry.js +0 -4
  165. package/dist/ionic/p-833593dd.entry.js +0 -4
  166. package/dist/ionic/p-8ef82205.entry.js +0 -4
  167. package/dist/ionic/p-9316e014.system.entry.js +0 -4
  168. package/dist/ionic/p-a2830649.system.entry.js +0 -4
  169. package/dist/ionic/p-aa246404.entry.js +0 -4
  170. package/dist/ionic/p-aa97948b.entry.js +0 -4
  171. package/dist/ionic/p-c6e43624.entry.js +0 -4
  172. package/dist/ionic/p-f1eb1152.system.entry.js +0 -4
  173. package/dist/ionic/p-f8a16486.system.entry.js +0 -4
  174. package/dist/types/components/segment-content/segment-content.d.ts +0 -5
  175. package/dist/types/components/segment-view/segment-view.d.ts +0 -13
@@ -1,42 +1,3 @@
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
1
  /**
41
2
  * A heuristic that applies CSS to tablet
42
3
  * viewports.
@@ -130,23 +91,12 @@
130
91
  justify-content: space-between;
131
92
  outline: none;
132
93
  color: var(--color);
133
- font-family: var(--ion-font-family, inherit);
134
94
  text-align: initial;
135
95
  text-decoration: none;
136
96
  overflow: hidden;
137
97
  box-sizing: border-box;
138
98
  }
139
99
 
140
- :host(.ion-color) .item-native {
141
- background: var(--ion-color-base);
142
- color: var(--ion-color-contrast);
143
- }
144
-
145
- :host(.ion-color) .item-native,
146
- :host(.ion-color) .item-inner {
147
- border-color: var(--ion-color-shade);
148
- }
149
-
150
100
  :host(.ion-activated) .item-native {
151
101
  color: var(--color-activated);
152
102
  }
@@ -155,10 +105,6 @@
155
105
  opacity: var(--background-activated-opacity);
156
106
  }
157
107
 
158
- :host(.ion-color.ion-activated) .item-native {
159
- color: var(--ion-color-contrast);
160
- }
161
-
162
108
  :host(.ion-focused) .item-native {
163
109
  color: var(--color-focused);
164
110
  }
@@ -167,13 +113,6 @@
167
113
  opacity: var(--background-focused-opacity);
168
114
  }
169
115
 
170
- :host(.ion-color.ion-focused) .item-native {
171
- color: var(--ion-color-contrast);
172
- }
173
- :host(.ion-color.ion-focused) .item-native::after {
174
- background: var(--ion-color-contrast);
175
- }
176
-
177
116
  @media (any-hover: hover) {
178
117
  :host(.ion-activatable:not(.ion-focused):hover) .item-native {
179
118
  color: var(--color-hover);
@@ -182,12 +121,6 @@
182
121
  background: var(--background-hover);
183
122
  opacity: var(--background-hover-opacity);
184
123
  }
185
- :host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native {
186
- color: var(--ion-color-contrast);
187
- }
188
- :host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native::after {
189
- background: var(--ion-color-contrast);
190
- }
191
124
  }
192
125
  :host(.item-control-needs-pointer-cursor) {
193
126
  cursor: pointer;
@@ -412,6 +345,100 @@ ion-ripple-effect {
412
345
  color: var(--ripple-color);
413
346
  }
414
347
 
348
+ /**
349
+ * Convert a pixels given value into rem
350
+ *
351
+ * @param pixels - Value in pixels to be converted (i.e. px)
352
+ * @param context (optional) - Baseline value
353
+ */
354
+ /**
355
+ * Convert a font size to a dynamic font size.
356
+ * Fonts that participate in Dynamic Type should use
357
+ * dynamic font sizes.
358
+ * @param size - The initial font size including the unit (i.e. px or pt)
359
+ * @param unit (optional) - The unit to convert to. Use this if you want to
360
+ * convert to a unit other than $baselineUnit.
361
+ */
362
+ /**
363
+ * Convert a font size to a dynamic font size but impose
364
+ * a maximum font size.
365
+ * @param size - The initial font size including the unit (i.e. px or pt)
366
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
367
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
368
+ * convert to a unit other than $baselineUnit.
369
+ */
370
+ /**
371
+ * Convert a font size to a dynamic font size but impose
372
+ * a minimum font size.
373
+ * @param size - The initial font size including the unit (i.e. px or pt)
374
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
375
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
376
+ * convert to a unit other than $baselineUnit.
377
+ */
378
+ /**
379
+ * Convert a font size to a dynamic font size but impose
380
+ * maximum and minimum font sizes.
381
+ * @param size - The initial font size including the unit (i.e. px or pt)
382
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
383
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
384
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
385
+ * convert to a unit other than $baselineUnit.
386
+ */
387
+ /**
388
+ * A heuristic that applies CSS to tablet
389
+ * viewports.
390
+ *
391
+ * Usage:
392
+ * @include tablet-viewport() {
393
+ * :host {
394
+ * background-color: green;
395
+ * }
396
+ * }
397
+ */
398
+ /**
399
+ * A heuristic that applies CSS to mobile
400
+ * viewports (i.e. phones, not tablets).
401
+ *
402
+ * Usage:
403
+ * @include mobile-viewport() {
404
+ * :host {
405
+ * background-color: blue;
406
+ * }
407
+ * }
408
+ */
409
+ :host {
410
+ font-family: var(--ion-font-family, inherit);
411
+ }
412
+
413
+ :host(.ion-color) .item-native {
414
+ background: var(--ion-color-base);
415
+ color: var(--ion-color-contrast);
416
+ }
417
+
418
+ :host(.ion-color) .item-native,
419
+ :host(.ion-color) .item-inner {
420
+ border-color: var(--ion-color-shade);
421
+ }
422
+
423
+ :host(.ion-color.ion-activated) .item-native {
424
+ color: var(--ion-color-contrast);
425
+ }
426
+
427
+ :host(.ion-color.ion-focused) .item-native {
428
+ color: var(--ion-color-contrast);
429
+ }
430
+ :host(.ion-color.ion-focused) .item-native::after {
431
+ background: var(--ion-color-contrast);
432
+ }
433
+
434
+ @media (any-hover: hover) {
435
+ :host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native {
436
+ color: var(--ion-color-contrast);
437
+ }
438
+ :host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native::after {
439
+ background: var(--ion-color-contrast);
440
+ }
441
+ }
415
442
  /**
416
443
  * Convert a pixels given value into rem
417
444
  *
@@ -82,15 +82,7 @@ export class Segment {
82
82
  swipeGestureChanged() {
83
83
  this.gestureChanged();
84
84
  }
85
- valueChanged(value, oldValue) {
86
- if (oldValue !== undefined && value !== undefined) {
87
- const buttons = this.getButtons();
88
- const previous = buttons.find((button) => button.value === oldValue);
89
- const current = buttons.find((button) => button.value === value);
90
- if (previous && current) {
91
- this.checkButton(previous, current);
92
- }
93
- }
85
+ valueChanged(value) {
94
86
  /**
95
87
  * `ionSelect` is emitted every time the value changes (internal or external changes).
96
88
  * Used by `ion-segment-button` to determine if the button should be checked.
@@ -430,14 +422,14 @@ export class Segment {
430
422
  }
431
423
  render() {
432
424
  const theme = getIonTheme(this);
433
- return (h(Host, { key: 'fa333a638e291c771155cc8205a89022799b2f35', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
425
+ return (h(Host, { key: '8ebad474914841f288bad5076063c04eb8697c1f', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
434
426
  [theme]: true,
435
427
  'in-toolbar': hostContext('ion-toolbar', this.el),
436
428
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
437
429
  'segment-activated': this.activated,
438
430
  'segment-disabled': this.disabled,
439
431
  'segment-scrollable': this.scrollable,
440
- }) }, h("slot", { key: '245eb99eee33b71a7cc4f33fedfd52ede284a21c', onSlotchange: this.onSlottedItemsChange })));
432
+ }) }, h("slot", { key: '7c80d6ab541998f3edf0ae12254c6412103000a0', onSlotchange: this.onSlottedItemsChange })));
441
433
  }
442
434
  static get is() { return "ion-segment"; }
443
435
  static get encapsulation() { return "shadow"; }
@@ -669,7 +669,7 @@ export class Select {
669
669
  * TODO(FW-5592): Remove hasStartEndSlots condition
670
670
  */
671
671
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
672
- return (h(Host, { key: '63114b245835e18e63ab6b791713e1c34c2a91d3', onClick: this.onClick, class: createColorClasses(this.color, {
672
+ return (h(Host, { key: '50a843952ba75a266cb2690e3bac68c7bbb8ba95', onClick: this.onClick, class: createColorClasses(this.color, {
673
673
  [theme]: true,
674
674
  'in-item': inItem,
675
675
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -685,7 +685,7 @@ export class Select {
685
685
  [`select-justify-${justify}`]: justifyEnabled,
686
686
  [`select-shape-${shape}`]: shape !== undefined,
687
687
  [`select-label-placement-${labelPlacement}`]: true,
688
- }) }, h("label", { key: 'dd7f90e38fd21cb0ce2cb26c588ff1318a3b4e03', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '946a1f025be4a63e1b7f9243d1e089e204f7e2c4', class: "select-wrapper-inner" }, h("slot", { key: '4ab1ffe6511e37ec148768edd41ba26ca59dc0a2', name: "start" }), h("div", { key: 'bc949b66207c31b4f412e1a0480c779bdb20ab99', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '3ce8d8bdf08ba900ae12f4ed51bcc693e9eb5f7c', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'ad3f883b723354327602b93208913dcfae218e2f', class: "select-highlight" }))));
688
+ }) }, h("label", { key: '617e8b1ee3636c35e8262748028c5c9b53349ab8', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '0b5a7126bcb30203986c5a0ed9f2f41f25501ace', class: "select-wrapper-inner" }, h("slot", { key: '0e35013e26f58f04f7eb9228cb270991e5b755ae', name: "start" }), h("div", { key: 'cf131b61e7907f63a1ce32dd931a9753ae290807', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0adb8f7cdd610dfe67e1a363180e99322f5a6343', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'd9d2954141a517296483c22eac4b143c4096e1c5', class: "select-highlight" }))));
689
689
  }
690
690
  static get is() { return "ion-select"; }
691
691
  static get encapsulation() { return "shadow"; }
@@ -15,7 +15,7 @@ export class SelectOption {
15
15
  }
16
16
  render() {
17
17
  const theme = getIonTheme(this);
18
- return (h(Host, { key: '9c119de67b396ed5a1cd5efa40034a1b10313f1b', class: {
18
+ return (h(Host, { key: '1a977b2d7953ecbddf216c5b68d47104dda07bce', class: {
19
19
  [theme]: true,
20
20
  }, role: "option", id: this.inputId }));
21
21
  }
@@ -106,9 +106,9 @@ export class SelectPopover {
106
106
  const { header, message, options, subHeader } = this;
107
107
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
108
108
  const theme = getIonTheme(this);
109
- return (h(Host, { key: '499511498ca8be82086bb06e2b27ce33bffc1ddb', class: {
109
+ return (h(Host, { key: '6ac9472c819c6631cd64ad8810256dd03fde120b', class: {
110
110
  [theme]: true,
111
- } }, h("ion-list", { key: '278f6bc1feeede9f02728971f322aa63f806321e' }, header !== undefined && h("ion-list-header", { key: 'ae4b4d8d73b7d353ac11e26dab35d001b7bfd2bf' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '79e6641ab2dbbd08811ddcf8f346b0f18e3f0454' }, h("ion-label", { key: '53788eacd7384c4f24c727cd9312da3a57ccc67b', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: '0f028877e1fb89b66c22f5963bc57257d34f653d' }, subHeader), message !== undefined && h("p", { key: 'ff3b24d1bddacf963d9e1c287e65b71c97bb95b9' }, message)))), this.renderOptions(options))));
111
+ } }, h("ion-list", { key: 'b485896c38c080bc42f92e962440cd3b8308e728' }, header !== undefined && h("ion-list-header", { key: '6a1df70265a4b9feec9521d5f946994345456925' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'c4ecbcaa2c56c1cb900e039cbfe36c2fae03f2ac' }, h("ion-label", { key: 'e310d3445c6abfffb4ff00a1aec97dd09c94e1d3', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: '9a6ffdfd9df8aea92290caf317d855b262ac8998' }, subHeader), message !== undefined && h("p", { key: 'b5ca3c716d69e6a2c013df3fa3436b92953c4296' }, message)))), this.renderOptions(options))));
112
112
  }
113
113
  static get is() { return "ion-select-popover"; }
114
114
  static get encapsulation() { return "scoped"; }
@@ -29,11 +29,11 @@ export class SkeletonText {
29
29
  const animated = this.animated && config.getBoolean('animated', true);
30
30
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
31
31
  const theme = getIonTheme(this);
32
- return (h(Host, { key: 'f788545e591fdd0d1b3b61ad5e97b02d2d7e46f4', class: {
32
+ return (h(Host, { key: '20170a23455836848210459749d9ba6a6eaaff53', class: {
33
33
  [theme]: true,
34
34
  'skeleton-text-animated': animated,
35
35
  'in-media': inMedia,
36
- } }, h("span", { key: '4f62ad7f8851d4111c60e7f7b28edcbb7067125c' }, "\u00A0")));
36
+ } }, h("span", { key: '96a9a18da286285abb647e7b69a4832cbe59b3b8' }, "\u00A0")));
37
37
  }
38
38
  static get is() { return "ion-skeleton-text"; }
39
39
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,199 @@
1
+ /**
2
+ * A heuristic that applies CSS to tablet
3
+ * viewports.
4
+ *
5
+ * Usage:
6
+ * @include tablet-viewport() {
7
+ * :host {
8
+ * background-color: green;
9
+ * }
10
+ * }
11
+ */
12
+ /**
13
+ * A heuristic that applies CSS to mobile
14
+ * viewports (i.e. phones, not tablets).
15
+ *
16
+ * Usage:
17
+ * @include mobile-viewport() {
18
+ * :host {
19
+ * background-color: blue;
20
+ * }
21
+ * }
22
+ */
23
+ :host {
24
+ /**
25
+ * @prop --color: Color of the spinner
26
+ */
27
+ display: inline-block;
28
+ position: relative;
29
+ width: 28px;
30
+ height: 28px;
31
+ color: var(--color);
32
+ user-select: none;
33
+ }
34
+
35
+ :host(.ion-color) {
36
+ color: var(--ion-color-base);
37
+ }
38
+
39
+ svg {
40
+ transform-origin: center;
41
+ position: absolute;
42
+ /**
43
+ * Do not use @include position
44
+ * as the alignment of the elements with
45
+ * a spinner should not be RTL aware.
46
+ */
47
+ top: 0;
48
+ /* stylelint-disable-next-line property-disallowed-list */
49
+ left: 0;
50
+ width: 100%;
51
+ height: 100%;
52
+ transform: translateZ(0);
53
+ }
54
+ :host-context([dir=rtl]) svg {
55
+ transform-origin: calc(100% - center);
56
+ }
57
+
58
+ [dir=rtl] svg {
59
+ transform-origin: calc(100% - center);
60
+ }
61
+
62
+ @supports selector(:dir(rtl)) {
63
+ svg:dir(rtl) {
64
+ transform-origin: calc(100% - center);
65
+ }
66
+ }
67
+
68
+ :host(.spinner-lines) line,
69
+ :host(.spinner-lines-small) line {
70
+ stroke-width: 7px;
71
+ }
72
+
73
+ :host(.spinner-lines-sharp) line,
74
+ :host(.spinner-lines-sharp-small) line {
75
+ stroke-width: 4px;
76
+ }
77
+
78
+ :host(.spinner-lines) line,
79
+ :host(.spinner-lines-small) line,
80
+ :host(.spinner-lines-sharp) line,
81
+ :host(.spinner-lines-sharp-small) line {
82
+ stroke-linecap: round;
83
+ stroke: currentColor;
84
+ }
85
+
86
+ :host(.spinner-lines) svg,
87
+ :host(.spinner-lines-small) svg,
88
+ :host(.spinner-lines-sharp) svg,
89
+ :host(.spinner-lines-sharp-small) svg {
90
+ animation: spinner-fade-out 1s linear infinite;
91
+ }
92
+
93
+ :host(.spinner-bubbles) svg {
94
+ animation: spinner-scale-out 1s linear infinite;
95
+ fill: currentColor;
96
+ }
97
+
98
+ :host(.spinner-circles) svg {
99
+ animation: spinner-fade-out 1s linear infinite;
100
+ fill: currentColor;
101
+ }
102
+
103
+ :host(.spinner-crescent) circle {
104
+ fill: transparent;
105
+ stroke-width: 4px;
106
+ stroke-dasharray: 128px;
107
+ stroke-dashoffset: 82px;
108
+ stroke: currentColor;
109
+ }
110
+
111
+ :host(.spinner-crescent) svg {
112
+ animation: spinner-rotate 1s linear infinite;
113
+ }
114
+
115
+ :host(.spinner-dots) circle {
116
+ stroke-width: 0;
117
+ fill: currentColor;
118
+ }
119
+
120
+ :host(.spinner-dots) svg {
121
+ animation: spinner-dots 1s linear infinite;
122
+ }
123
+
124
+ :host(.spinner-circular) svg {
125
+ animation: spinner-circular linear infinite;
126
+ }
127
+
128
+ :host(.spinner-circular) circle {
129
+ animation: spinner-circular-inner ease-in-out infinite;
130
+ stroke: currentColor;
131
+ stroke-dasharray: 80px, 200px;
132
+ stroke-dashoffset: 0px;
133
+ stroke-width: 5.6;
134
+ fill: none;
135
+ }
136
+
137
+ :host(.spinner-paused),
138
+ :host(.spinner-paused) svg,
139
+ :host(.spinner-paused) circle {
140
+ animation-play-state: paused;
141
+ }
142
+
143
+ @keyframes spinner-fade-out {
144
+ 0% {
145
+ opacity: 1;
146
+ }
147
+ 100% {
148
+ opacity: 0;
149
+ }
150
+ }
151
+ @keyframes spinner-scale-out {
152
+ 0% {
153
+ transform: scale(1, 1);
154
+ }
155
+ 100% {
156
+ transform: scale(0, 0);
157
+ }
158
+ }
159
+ @keyframes spinner-rotate {
160
+ 0% {
161
+ transform: rotate(0deg);
162
+ }
163
+ 100% {
164
+ transform: rotate(360deg);
165
+ }
166
+ }
167
+ @keyframes spinner-dots {
168
+ 0% {
169
+ transform: scale(1, 1);
170
+ opacity: 0.9;
171
+ }
172
+ 50% {
173
+ transform: scale(0.4, 0.4);
174
+ opacity: 0.3;
175
+ }
176
+ 100% {
177
+ transform: scale(1, 1);
178
+ opacity: 0.9;
179
+ }
180
+ }
181
+ @keyframes spinner-circular {
182
+ 100% {
183
+ transform: rotate(360deg);
184
+ }
185
+ }
186
+ @keyframes spinner-circular-inner {
187
+ 0% {
188
+ stroke-dasharray: 1px, 200px;
189
+ stroke-dashoffset: 0px;
190
+ }
191
+ 50% {
192
+ stroke-dasharray: 100px, 200px;
193
+ stroke-dashoffset: -15px;
194
+ }
195
+ 100% {
196
+ stroke-dasharray: 100px, 200px;
197
+ stroke-dashoffset: -125px;
198
+ }
199
+ }
@@ -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
@@ -235,4 +261,33 @@ svg {
235
261
  stroke-dasharray: 100px, 200px;
236
262
  stroke-dashoffset: -125px;
237
263
  }
264
+ }
265
+ /* Extra Small */
266
+ :host(.spinner-xsmall) {
267
+ width: var(--ionic-scale-600, 24px);
268
+ height: var(--ionic-scale-600, 24px);
269
+ }
270
+
271
+ /* Small */
272
+ :host(.spinner-small) {
273
+ width: var(--ionic-scale-800, 32px);
274
+ height: var(--ionic-scale-800, 32px);
275
+ }
276
+
277
+ /* Medium */
278
+ :host(.spinner-medium) {
279
+ width: var(--ionic-scale-1000, 40px);
280
+ height: var(--ionic-scale-1000, 40px);
281
+ }
282
+
283
+ /* Large */
284
+ :host(.spinner-large) {
285
+ width: var(--ionic-scale-1200, 48px);
286
+ height: var(--ionic-scale-1200, 48px);
287
+ }
288
+
289
+ /* Extra Large */
290
+ :host(.spinner-xlarge) {
291
+ width: var(--ionic-scale-1400, 56px);
292
+ height: var(--ionic-scale-1400, 56px);
238
293
  }
@@ -16,7 +16,9 @@ export class Spinner {
16
16
  this.duration = undefined;
17
17
  this.name = undefined;
18
18
  this.paused = false;
19
+ this.size = undefined;
19
20
  }
21
+ // TODO(ROU-10920): Switch `theme` to `mode`.
20
22
  getName() {
21
23
  const spinnerName = this.name || config.get('spinner');
22
24
  const theme = getIonTheme(this);
@@ -25,11 +27,24 @@ export class Spinner {
25
27
  }
26
28
  return theme === 'ios' ? 'lines' : 'circular';
27
29
  }
30
+ getSize() {
31
+ const theme = getIonTheme(this);
32
+ const { size } = this;
33
+ // TODO(ROU-10912): Remove theme check when sizes are defined for all themes.
34
+ if (theme !== 'ionic') {
35
+ return undefined;
36
+ }
37
+ if (size === undefined) {
38
+ return 'xsmall';
39
+ }
40
+ return size;
41
+ }
28
42
  render() {
29
43
  var _a;
30
44
  const self = this;
31
45
  const theme = getIonTheme(self);
32
46
  const spinnerName = self.getName();
47
+ const size = this.getSize();
33
48
  const spinner = (_a = SPINNERS[spinnerName]) !== null && _a !== void 0 ? _a : SPINNERS['lines'];
34
49
  const duration = typeof self.duration === 'number' && self.duration > 10 ? self.duration : spinner.dur;
35
50
  const svgs = [];
@@ -43,22 +58,27 @@ export class Spinner {
43
58
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
44
59
  }
45
60
  }
46
- return (h(Host, { key: '5cb7fe35a97d06ec56f83facd294847b51cbc7af', class: createColorClasses(self.color, {
61
+ return (h(Host, { key: '6cac09975f1088551e71b1c60033d3571438f374', class: createColorClasses(self.color, {
47
62
  [theme]: true,
48
63
  [`spinner-${spinnerName}`]: true,
49
64
  'spinner-paused': self.paused || config.getBoolean('_testing'),
65
+ [`spinner-${size}`]: size !== undefined,
50
66
  }), role: "progressbar", style: spinner.elmDuration ? { animationDuration: duration + 'ms' } : {} }, svgs));
51
67
  }
52
68
  static get is() { return "ion-spinner"; }
53
69
  static get encapsulation() { return "shadow"; }
54
70
  static get originalStyleUrls() {
55
71
  return {
56
- "$": ["spinner.scss"]
72
+ "ios": ["spinner.common.scss"],
73
+ "md": ["spinner.common.scss"],
74
+ "ionic": ["spinner.ionic.scss"]
57
75
  };
58
76
  }
59
77
  static get styleUrls() {
60
78
  return {
61
- "$": ["spinner.css"]
79
+ "ios": ["spinner.common.css"],
80
+ "md": ["spinner.common.css"],
81
+ "ionic": ["spinner.ionic.css"]
62
82
  };
63
83
  }
64
84
  static get properties() {
@@ -143,6 +163,23 @@ export class Spinner {
143
163
  "attribute": "paused",
144
164
  "reflect": false,
145
165
  "defaultValue": "false"
166
+ },
167
+ "size": {
168
+ "type": "string",
169
+ "mutable": false,
170
+ "complexType": {
171
+ "original": "'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'",
172
+ "resolved": "\"large\" | \"medium\" | \"small\" | \"xlarge\" | \"xsmall\" | undefined",
173
+ "references": {}
174
+ },
175
+ "required": false,
176
+ "optional": true,
177
+ "docs": {
178
+ "tags": [],
179
+ "text": "Set to `\"xsmall\"` for the smallest size.\nSet to `\"small\"` for a smaller size.\nSet to `\"medium\"` for a medium size.\nSet to `\"large\"` for a large size.\nSet to `\"xlarge\"` for the largest size.\n\nDefaults to `\"xsmall\"` for the `ionic` theme, undefined for all other themes."
180
+ },
181
+ "attribute": "size",
182
+ "reflect": false
146
183
  }
147
184
  };
148
185
  }