@ionic/core 7.5.8-dev.11701806358.1ca1b519 → 7.5.8-dev.11701894917.1c1465bd

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 (196) hide show
  1. package/components/data.js +1 -1
  2. package/components/ion-datetime.js +30 -39
  3. package/components/ion-picker-column-internal.d.ts +11 -0
  4. package/components/ion-picker-column-internal.js +9 -0
  5. package/components/ion-picker-column.js +2 -2
  6. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  7. package/components/ion-picker-internal.js +9 -0
  8. package/components/ion-picker.js +309 -1
  9. package/components/overlays.js +3 -6
  10. package/components/picker-column-internal.js +390 -0
  11. package/components/picker-column.js +317 -363
  12. package/components/{picker.js → picker-internal.js} +16 -16
  13. package/dist/cjs/{data-e7526b58.js → data-36b9094e.js} +1 -1
  14. package/dist/cjs/index.cjs.js +1 -1
  15. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  16. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  17. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  18. package/dist/cjs/ion-datetime_3.cjs.entry.js +35 -29
  19. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  20. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  21. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  22. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +72 -105
  23. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +13 -13
  24. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  26. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  27. package/dist/cjs/ionic.cjs.js +1 -1
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/cjs/{overlays-e8e05b0e.js → overlays-2c6b1072.js} +3 -6
  30. package/dist/collection/collection-manifest.json +6 -7
  31. package/dist/collection/components/datetime/datetime.ios.css +13 -0
  32. package/dist/collection/components/datetime/datetime.js +16 -19
  33. package/dist/collection/components/datetime/datetime.md.css +13 -0
  34. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  35. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  36. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  37. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  38. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
  39. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  40. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  41. package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
  42. package/dist/collection/components/datetime/utils/data.js +1 -1
  43. package/dist/collection/components/picker/picker.ios.css +205 -100
  44. package/dist/collection/components/picker/picker.js +743 -461
  45. package/dist/collection/components/picker/picker.md.css +194 -98
  46. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
  47. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  48. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  49. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  50. package/dist/collection/components/picker-column/picker-column.ios.css +160 -120
  51. package/dist/collection/components/picker-column/picker-column.js +329 -514
  52. package/dist/collection/components/picker-column/picker-column.md.css +107 -134
  53. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  54. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  55. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  56. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  57. package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
  58. package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
  59. package/dist/collection/components/{picker-legacy-column/picker-column.md.css → picker-column-internal/picker-column-internal.md.css} +63 -113
  60. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
  61. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
  62. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  63. package/dist/collection/components/picker-internal/picker-internal.js +544 -0
  64. package/dist/collection/components/{picker-legacy-column/picker-column.ios.css → picker-internal/picker-internal.md.css} +101 -98
  65. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  66. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  67. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +22 -23
  68. package/dist/collection/utils/overlays.js +3 -6
  69. package/dist/docs.json +23 -487
  70. package/dist/esm/{data-4b9508c9.js → data-f5c75b4e.js} +1 -1
  71. package/dist/esm/index.js +1 -1
  72. package/dist/esm/ion-action-sheet.entry.js +1 -1
  73. package/dist/esm/ion-alert.entry.js +1 -1
  74. package/dist/esm/ion-datetime-button.entry.js +1 -1
  75. package/dist/esm/ion-datetime_3.entry.js +34 -28
  76. package/dist/esm/ion-loading.entry.js +1 -1
  77. package/dist/esm/ion-menu_3.entry.js +1 -1
  78. package/dist/esm/ion-modal.entry.js +1 -1
  79. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +72 -105
  80. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +13 -13
  81. package/dist/esm/ion-popover.entry.js +1 -1
  82. package/dist/esm/ion-select_3.entry.js +1 -1
  83. package/dist/esm/ion-toast.entry.js +1 -1
  84. package/dist/esm/ionic.js +1 -1
  85. package/dist/esm/loader.js +1 -1
  86. package/dist/esm/{overlays-fbc5cab5.js → overlays-d23ea6e1.js} +3 -6
  87. package/dist/esm-es5/index.js +1 -1
  88. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  89. package/dist/esm-es5/ion-alert.entry.js +1 -1
  90. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  91. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  92. package/dist/esm-es5/ion-loading.entry.js +1 -1
  93. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  94. package/dist/esm-es5/ion-modal.entry.js +1 -1
  95. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  96. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  97. package/dist/esm-es5/ion-popover.entry.js +1 -1
  98. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  99. package/dist/esm-es5/ion-toast.entry.js +1 -1
  100. package/dist/esm-es5/ionic.js +1 -1
  101. package/dist/esm-es5/loader.js +1 -1
  102. package/dist/esm-es5/overlays-d23ea6e1.js +4 -0
  103. package/dist/html.html-data.json +1 -152
  104. package/dist/ionic/index.esm.js +1 -1
  105. package/dist/ionic/ionic.esm.js +1 -1
  106. package/dist/ionic/{p-846ee227.entry.js → p-1e57bd24.entry.js} +1 -1
  107. package/dist/ionic/{p-26798a7b.system.entry.js → p-1f620cd4.system.entry.js} +1 -1
  108. package/dist/ionic/{p-5d42b6b4.entry.js → p-27ea6f4e.entry.js} +1 -1
  109. package/dist/ionic/{p-6b7c55cd.entry.js → p-2dc43d20.entry.js} +1 -1
  110. package/dist/ionic/{p-4a36430f.system.entry.js → p-2f2293da.system.entry.js} +1 -1
  111. package/dist/ionic/{p-21c3515a.entry.js → p-2f300cca.entry.js} +1 -1
  112. package/dist/ionic/{p-8017aad2.system.entry.js → p-39a335b6.system.entry.js} +1 -1
  113. package/dist/ionic/{p-4a081ea9.entry.js → p-3b568d18.entry.js} +1 -1
  114. package/dist/ionic/{p-c18de88a.system.entry.js → p-3e3d06a6.system.entry.js} +1 -1
  115. package/dist/ionic/{p-96dbbac1.system.entry.js → p-4df97e3c.system.entry.js} +1 -1
  116. package/dist/ionic/p-60502e3f.system.entry.js +4 -0
  117. package/dist/ionic/{p-563c41f0.system.entry.js → p-60b386c9.system.entry.js} +1 -1
  118. package/dist/ionic/p-67da080d.entry.js +4 -0
  119. package/dist/ionic/p-73ea8f82.system.entry.js +4 -0
  120. package/dist/ionic/p-80fa068e.entry.js +4 -0
  121. package/dist/ionic/{p-a8baa23e.entry.js → p-8780cc2a.entry.js} +1 -1
  122. package/dist/ionic/{p-f910cc73.system.entry.js → p-9eec42cc.system.entry.js} +1 -1
  123. package/dist/ionic/p-ab11130c.system.js +4 -0
  124. package/dist/ionic/p-af16fe62.entry.js +4 -0
  125. package/dist/ionic/{p-73aa7604.entry.js → p-af19a573.entry.js} +1 -1
  126. package/dist/ionic/p-c14f8ac8.js +4 -0
  127. package/dist/ionic/p-cce9f61a.system.entry.js +4 -0
  128. package/dist/ionic/{p-b133e9b4.entry.js → p-ddb30596.entry.js} +1 -1
  129. package/dist/ionic/{p-27bcbbc7.system.entry.js → p-e1e5afe1.system.entry.js} +1 -1
  130. package/dist/ionic/p-e3584231.system.js +1 -1
  131. package/dist/ionic/{p-fbf3a689.system.entry.js → p-e3ad9607.system.entry.js} +1 -1
  132. package/dist/ionic/{p-73190c5f.entry.js → p-f78efbd1.entry.js} +1 -1
  133. package/dist/ionic/{p-54dfc9b5.system.js → p-fff7a57e.system.js} +1 -1
  134. package/dist/types/components/datetime/utils/data.d.ts +2 -2
  135. package/dist/types/components/picker/picker.d.ts +131 -74
  136. package/dist/types/components/picker-column/picker-column.d.ts +39 -105
  137. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  138. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  139. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  140. package/dist/types/components.d.ts +122 -163
  141. package/dist/types/interface.d.ts +1 -1
  142. package/dist/types/utils/config.d.ts +2 -2
  143. package/dist/types/utils/overlays.d.ts +2 -5
  144. package/hydrate/index.js +1151 -1287
  145. package/package.json +1 -1
  146. package/components/ion-picker-column-option.d.ts +0 -11
  147. package/components/ion-picker-column-option.js +0 -9
  148. package/components/ion-picker-legacy-column.d.ts +0 -11
  149. package/components/ion-picker-legacy-column.js +0 -9
  150. package/components/ion-picker-legacy.js +0 -309
  151. package/components/picker-column-option.js +0 -122
  152. package/components/picker-column2.js +0 -379
  153. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
  154. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -113
  155. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
  156. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
  157. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
  158. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  159. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
  160. package/dist/collection/components/picker-legacy/picker.ios.css +0 -367
  161. package/dist/collection/components/picker-legacy/picker.js +0 -817
  162. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  163. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  164. package/dist/esm/ion-picker-column-option.entry.js +0 -100
  165. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  166. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  167. package/dist/esm-es5/ion-picker.entry.js +0 -4
  168. package/dist/esm-es5/overlays-fbc5cab5.js +0 -4
  169. package/dist/ionic/p-23672c82.system.entry.js +0 -4
  170. package/dist/ionic/p-8fa6583d.system.js +0 -4
  171. package/dist/ionic/p-9282b16f.entry.js +0 -4
  172. package/dist/ionic/p-9ba90516.system.entry.js +0 -4
  173. package/dist/ionic/p-afcf4620.entry.js +0 -4
  174. package/dist/ionic/p-c2910c78.entry.js +0 -4
  175. package/dist/ionic/p-c8f0a036.entry.js +0 -4
  176. package/dist/ionic/p-ca8938f4.js +0 -4
  177. package/dist/ionic/p-ca9d1792.system.entry.js +0 -4
  178. package/dist/ionic/p-ffd5dba4.system.entry.js +0 -4
  179. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  180. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
  181. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  182. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  183. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  184. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  185. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  186. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  187. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  188. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  189. /package/dist/esm-es5/{data-4b9508c9.js → data-f5c75b4e.js} +0 -0
  190. /package/dist/ionic/{p-368f5215.js → p-2aea8b1e.js} +0 -0
  191. /package/dist/ionic/{p-f58981c2.system.js → p-82e3d633.system.js} +0 -0
  192. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  193. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  194. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  195. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
  196. /package/dist/types/components/{picker-column/picker-column-interfaces.d.ts → picker-column-internal/picker-column-internal-interfaces.d.ts} +0 -0
@@ -53,112 +53,174 @@
53
53
  * }
54
54
  * }
55
55
  */
56
- :host {
56
+ .picker-col {
57
57
  display: flex;
58
- align-items: center;
58
+ position: relative;
59
+ flex: 1;
59
60
  justify-content: center;
61
+ height: 100%;
62
+ box-sizing: content-box;
63
+ contain: content;
64
+ }
65
+
66
+ .picker-opts {
67
+ position: relative;
68
+ flex: 1;
60
69
  max-width: 100%;
61
- height: 200px;
62
- font-size: 22px;
70
+ }
71
+
72
+ .picker-opt {
73
+ top: 0;
74
+ display: block;
75
+ position: absolute;
76
+ width: 100%;
77
+ border: 0;
63
78
  text-align: center;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ contain: strict;
82
+ overflow: hidden;
83
+ will-change: transform;
84
+ }
85
+ @supports (inset-inline-start: 0) {
86
+ .picker-opt {
87
+ inset-inline-start: 0;
88
+ }
89
+ }
90
+ @supports not (inset-inline-start: 0) {
91
+ .picker-opt {
92
+ left: 0;
93
+ }
94
+ :host-context([dir=rtl]) .picker-opt {
95
+ left: unset;
96
+ right: unset;
97
+ right: 0;
98
+ }
99
+ [dir=rtl] .picker-opt {
100
+ left: unset;
101
+ right: unset;
102
+ right: 0;
103
+ }
104
+ @supports selector(:dir(rtl)) {
105
+ .picker-opt:dir(rtl) {
106
+ left: unset;
107
+ right: unset;
108
+ right: 0;
109
+ }
110
+ }
64
111
  }
65
112
 
66
- .picker-opts {
67
- /**
68
- * This padding must be set here and not on the
69
- * host to ensure that the focus highlight on the
70
- * column is not overly narrow.
71
- */
72
- -webkit-padding-start: 16px;
73
- padding-inline-start: 16px;
74
- -webkit-padding-end: 16px;
75
- padding-inline-end: 16px;
76
- padding-top: 0px;
77
- padding-bottom: 0px;
78
- /**
79
- * When using reactive data, such as in datetime's
80
- * wheel picker, there may be layout shifts between
81
- * individual columns in a picker as the columns
82
- * shrink to fit the widest item in the column.
83
- * Setting a minimum width avoids this layout shifting.
84
- *
85
- * Note that we need this min-width set on the same
86
- * element as the vertical padding (i.e. not on the
87
- * host).
88
- */
89
- min-width: 26px;
90
- max-height: 200px;
91
- outline: none;
92
- /**
93
- * Added so that text-align can be set on the host
94
- * from external components. For example, datetime
95
- * changes the alignment of specific columns in its
96
- * wheel pickers.
97
- */
98
- text-align: inherit;
99
- scroll-snap-type: y mandatory;
100
- /**
101
- * Need to explicitly set overflow-x: hidden
102
- * for older implementations of scroll snapping.
103
- */
104
- overflow-x: hidden;
105
- overflow-y: scroll;
106
- scrollbar-width: none;
113
+ .picker-opt.picker-opt-disabled {
114
+ pointer-events: none;
107
115
  }
108
116
 
109
- /**
110
- * Hide scrollbars on Chrome and Safari
111
- */
112
- .picker-opts::-webkit-scrollbar {
113
- display: none;
117
+ .picker-opt-disabled {
118
+ opacity: 0;
114
119
  }
115
120
 
116
- ::slotted(ion-picker-column-option) {
117
- display: block;
118
- scroll-snap-align: center;
121
+ .picker-opts-left {
122
+ justify-content: flex-start;
119
123
  }
120
124
 
121
- .picker-item-empty,
122
- :host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled) {
123
- scroll-snap-align: none;
125
+ .picker-opts-right {
126
+ justify-content: flex-end;
124
127
  }
125
128
 
126
- ::slotted([slot=prefix]), ::slotted([slot=suffix]) {
127
- max-width: 200px;
128
- text-overflow: ellipsis;
129
+ .picker-opt:active, .picker-opt:focus {
130
+ outline: none;
131
+ }
132
+
133
+ .picker-prefix {
134
+ position: relative;
135
+ flex: 1;
136
+ text-align: end;
129
137
  white-space: nowrap;
130
- overflow: hidden;
131
138
  }
132
139
 
133
- ::slotted([slot=prefix]) {
134
- /**
135
- * This is added in addition to the column's own padding so that there is white
136
- * space between the slot and the column's focus highlight.
137
- */
138
- -webkit-padding-start: 16px;
139
- padding-inline-start: 16px;
140
- -webkit-padding-end: 16px;
141
- padding-inline-end: 16px;
142
- padding-top: 0;
143
- padding-bottom: 0;
144
- justify-content: end;
140
+ .picker-suffix {
141
+ position: relative;
142
+ flex: 1;
143
+ text-align: start;
144
+ white-space: nowrap;
145
145
  }
146
146
 
147
- ::slotted([slot=suffix]) {
148
- /**
149
- * This is added in addition to the column's own padding so that there is white
150
- * space between the slot and the column's focus highlight.
151
- */
152
- -webkit-padding-start: 16px;
153
- padding-inline-start: 16px;
154
- -webkit-padding-end: 16px;
155
- padding-inline-end: 16px;
147
+ /**
148
+ * Convert a font size to a dynamic font size.
149
+ * Fonts that participate in Dynamic Type should use
150
+ * dynamic font sizes.
151
+ * @param size - The initial font size including the unit (i.e. px or pt)
152
+ * @param unit (optional) - The unit to convert to. Use this if you want to
153
+ * convert to a unit other than $baselineUnit.
154
+ */
155
+ /**
156
+ * Convert a font size to a dynamic font size but impose
157
+ * a maximum font size.
158
+ * @param size - The initial font size including the unit (i.e. px or pt)
159
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
160
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
161
+ * convert to a unit other than $baselineUnit.
162
+ */
163
+ /**
164
+ * Convert a font size to a dynamic font size but impose
165
+ * a minimum font size.
166
+ * @param size - The initial font size including the unit (i.e. px or pt)
167
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
168
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
169
+ * convert to a unit other than $baselineUnit.
170
+ */
171
+ /**
172
+ * Convert a font size to a dynamic font size but impose
173
+ * maximum and minimum font sizes.
174
+ * @param size - The initial font size including the unit (i.e. px or pt)
175
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
176
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
177
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
178
+ * convert to a unit other than $baselineUnit.
179
+ */
180
+ /**
181
+ * A heuristic that applies CSS to tablet
182
+ * viewports.
183
+ *
184
+ * Usage:
185
+ * @include tablet-viewport() {
186
+ * :host {
187
+ * background-color: green;
188
+ * }
189
+ * }
190
+ */
191
+ /**
192
+ * A heuristic that applies CSS to mobile
193
+ * viewports (i.e. phones, not tablets).
194
+ *
195
+ * Usage:
196
+ * @include mobile-viewport() {
197
+ * :host {
198
+ * background-color: blue;
199
+ * }
200
+ * }
201
+ */
202
+ .picker-col {
203
+ -webkit-padding-start: 4px;
204
+ padding-inline-start: 4px;
205
+ -webkit-padding-end: 4px;
206
+ padding-inline-end: 4px;
156
207
  padding-top: 0;
157
208
  padding-bottom: 0;
158
- justify-content: start;
209
+ transform-style: preserve-3d;
210
+ }
211
+
212
+ .picker-prefix,
213
+ .picker-suffix,
214
+ .picker-opts {
215
+ top: 77px;
216
+ transform-style: preserve-3d;
217
+ color: inherit;
218
+ font-size: 20px;
219
+ line-height: 42px;
220
+ pointer-events: none;
159
221
  }
160
222
 
161
- :host .picker-item {
223
+ .picker-opt {
162
224
  padding-left: 0;
163
225
  padding-right: 0;
164
226
  padding-top: 0;
@@ -167,49 +229,27 @@
167
229
  margin-right: 0;
168
230
  margin-top: 0;
169
231
  margin-bottom: 0;
170
- display: block;
171
- width: 100%;
172
- height: 34px;
173
- border: 0px;
174
- outline: none;
232
+ transform-origin: center center;
233
+ height: 46px;
234
+ transform-style: preserve-3d;
235
+ transition-timing-function: ease-out;
175
236
  background: transparent;
176
237
  color: inherit;
177
- font-family: var(--ion-font-family, inherit);
178
- font-size: inherit;
179
- line-height: 34px;
180
- text-align: inherit;
181
- text-overflow: ellipsis;
182
- white-space: nowrap;
183
- cursor: pointer;
184
- overflow: hidden;
185
- scroll-snap-align: center;
186
- }
187
-
188
- :host .picker-item-empty,
189
- :host .picker-item[disabled] {
190
- cursor: default;
191
- }
192
-
193
- :host .picker-item-empty,
194
- :host(:not([disabled])) .picker-item[disabled] {
195
- scroll-snap-align: none;
238
+ font-size: 20px;
239
+ line-height: 42px;
240
+ backface-visibility: hidden;
241
+ pointer-events: auto;
196
242
  }
197
-
198
- :host([disabled]) {
199
- overflow-y: hidden;
200
- }
201
-
202
- :host .picker-item[disabled] {
203
- opacity: 0.4;
243
+ :host-context([dir=rtl]) .picker-opt {
244
+ transform-origin: calc(100% - center) center;
204
245
  }
205
246
 
206
- :host(.picker-column-active) .picker-item.picker-item-active {
207
- color: var(--ion-color-base);
247
+ [dir=rtl] .picker-opt {
248
+ transform-origin: calc(100% - center) center;
208
249
  }
209
250
 
210
- @media (any-hover: hover) {
211
- :host(:focus) .picker-opts {
212
- outline: none;
213
- background: rgba(var(--ion-color-base-rgb), 0.2);
251
+ @supports selector(:dir(rtl)) {
252
+ .picker-opt:dir(rtl) {
253
+ transform-origin: calc(100% - center) center;
214
254
  }
215
255
  }