@ionic/core 8.8.19-dev.11786730389.1a1927bf → 8.8.19-dev.11786735826.1fad7c0a

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 (289) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-alert.js +1 -1
  3. package/components/ion-back-button.js +1 -1
  4. package/components/ion-button.js +1 -1
  5. package/components/ion-card.js +1 -1
  6. package/components/ion-chip.js +1 -1
  7. package/components/ion-datetime-button.js +1 -1
  8. package/components/ion-datetime.js +1 -1
  9. package/components/ion-fab-button.js +1 -1
  10. package/components/ion-infinite-scroll-content.js +1 -1
  11. package/components/ion-input-otp.js +1 -1
  12. package/components/ion-input-password-toggle.js +1 -1
  13. package/components/ion-input.js +1 -1
  14. package/components/ion-item-divider.js +1 -1
  15. package/components/ion-item-group.js +1 -1
  16. package/components/ion-item-option.js +1 -1
  17. package/components/ion-item-options.js +1 -1
  18. package/components/ion-item-sliding.js +1 -1
  19. package/components/ion-item.js +1 -1
  20. package/components/ion-label.js +1 -1
  21. package/components/ion-list-header.js +1 -1
  22. package/components/ion-list.js +1 -1
  23. package/components/ion-loading.js +1 -1
  24. package/components/ion-menu-button.js +1 -1
  25. package/components/ion-menu-toggle.js +1 -1
  26. package/components/ion-menu.js +1 -1
  27. package/components/ion-modal.js +1 -1
  28. package/components/ion-nav-link.js +1 -1
  29. package/components/ion-nav.js +1 -1
  30. package/components/ion-note.js +1 -1
  31. package/components/ion-picker-column-option.js +1 -1
  32. package/components/ion-popover.js +1 -1
  33. package/components/ion-progress-bar.js +1 -1
  34. package/components/ion-radio-group.js +1 -1
  35. package/components/ion-radio.js +1 -1
  36. package/components/ion-range.js +1 -1
  37. package/components/ion-refresher-content.js +1 -1
  38. package/components/ion-refresher.js +1 -1
  39. package/components/ion-reorder-group.js +1 -1
  40. package/components/ion-reorder.js +1 -1
  41. package/components/ion-ripple-effect.js +1 -1
  42. package/components/ion-router-link.js +1 -1
  43. package/components/ion-router-outlet.js +1 -1
  44. package/components/ion-row.js +1 -1
  45. package/components/ion-searchbar.js +1 -1
  46. package/components/ion-segment-button.js +1 -1
  47. package/components/ion-segment-content.js +1 -1
  48. package/components/ion-segment-view.js +1 -1
  49. package/components/ion-segment.js +1 -1
  50. package/components/ion-select-modal.js +1 -1
  51. package/components/ion-select-option.js +1 -1
  52. package/components/ion-select-popover.js +1 -1
  53. package/components/ion-select.js +1 -1
  54. package/components/ion-skeleton-text.js +1 -1
  55. package/components/ion-spinner.js +1 -1
  56. package/components/ion-split-pane.js +1 -1
  57. package/components/ion-tab-bar.js +1 -1
  58. package/components/ion-tab-button.js +1 -1
  59. package/components/ion-tab.js +1 -1
  60. package/components/ion-tabs.js +1 -1
  61. package/components/ion-text.js +1 -1
  62. package/components/ion-textarea.js +1 -1
  63. package/components/ion-thumbnail.js +1 -1
  64. package/components/ion-title.js +1 -1
  65. package/components/ion-toast.js +1 -1
  66. package/components/ion-toggle.js +1 -1
  67. package/components/ion-toolbar.js +1 -1
  68. package/components/{p-C1O9GEug.js → p--m5cCjbK.js} +1 -1
  69. package/components/{p-CfnGxjv-.js → p-B4uHHhPK.js} +1 -1
  70. package/components/{p-BxUIQcD9.js → p-BOvLNVKq.js} +1 -1
  71. package/components/{p-D_XD0pVT.js → p-BWBigMsI.js} +1 -1
  72. package/components/{p-xOjr4bwc.js → p-BZ4-QTes.js} +1 -1
  73. package/components/{p-tYCT3JGl.js → p-BjluhQMI.js} +1 -1
  74. package/components/{p-ClFYbgND.js → p-BlsIikdZ.js} +1 -1
  75. package/components/{p-Obm7si-x.js → p-Blug1Vxu.js} +1 -1
  76. package/components/{p-DTY4otpr.js → p-C91npEel.js} +1 -1
  77. package/components/{p-CVnwvOBD.js → p-CVb3x_r3.js} +1 -1
  78. package/components/{p-B6dUPQXq.js → p-CWLrHG8Y.js} +1 -1
  79. package/components/{p-0Pyit076.js → p-CfnNZz_d.js} +1 -1
  80. package/components/{p-DyePCNGr.js → p-DKrhJJV0.js} +1 -1
  81. package/components/p-DSzSbVP2.js +4 -0
  82. package/components/{p-BsVxQGUT.js → p-DgZOZQjJ.js} +1 -1
  83. package/components/{p-BO4sUqUv.js → p-Dmd2xqCe.js} +1 -1
  84. package/components/{p-83oP9gzn.js → p-GG5GhznE.js} +1 -1
  85. package/components/{p-Bc4wROfM.js → p-UQSiXX2Z.js} +1 -1
  86. package/components/{p-Dm7h4Nyv.js → p-qT1szVjw.js} +1 -1
  87. package/components/p-ypuYdSDB.js +4 -0
  88. package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
  89. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  90. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  92. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  93. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  94. package/dist/cjs/ion-input.cjs.entry.js +42 -56
  95. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  96. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  97. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  99. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  100. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  104. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  106. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  109. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  112. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  114. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  115. package/dist/cjs/ion-select_3.cjs.entry.js +41 -59
  116. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  117. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  118. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  119. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  121. package/dist/cjs/ion-textarea.cjs.entry.js +44 -55
  122. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  123. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  124. package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +397 -0
  125. package/dist/collection/components/input/input.ios.css +56 -24
  126. package/dist/collection/components/input/input.js +36 -51
  127. package/dist/collection/components/input/input.md.css +78 -41
  128. package/dist/collection/components/input-otp/input-otp.js +3 -3
  129. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  130. package/dist/collection/components/item-divider/item-divider.js +2 -2
  131. package/dist/collection/components/item-group/item-group.js +1 -1
  132. package/dist/collection/components/item-option/item-option.js +2 -2
  133. package/dist/collection/components/item-options/item-options.js +1 -1
  134. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  135. package/dist/collection/components/label/label.js +2 -2
  136. package/dist/collection/components/list/list.js +1 -1
  137. package/dist/collection/components/list-header/list-header.js +2 -2
  138. package/dist/collection/components/loading/loading.js +2 -2
  139. package/dist/collection/components/menu/menu.js +2 -2
  140. package/dist/collection/components/menu-button/menu-button.js +2 -2
  141. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  142. package/dist/collection/components/modal/modal.js +4 -4
  143. package/dist/collection/components/nav/nav.js +1 -1
  144. package/dist/collection/components/nav-link/nav-link.js +1 -1
  145. package/dist/collection/components/note/note.js +2 -2
  146. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  147. package/dist/collection/components/popover/popover.js +2 -2
  148. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  149. package/dist/collection/components/radio/radio.js +3 -3
  150. package/dist/collection/components/radio-group/radio-group.js +1 -1
  151. package/dist/collection/components/range/range.js +3 -3
  152. package/dist/collection/components/refresher/refresher.js +1 -1
  153. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  154. package/dist/collection/components/reorder/reorder.js +1 -1
  155. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  156. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  157. package/dist/collection/components/router-link/router-link.js +2 -2
  158. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  159. package/dist/collection/components/row/row.js +1 -1
  160. package/dist/collection/components/searchbar/searchbar.js +4 -4
  161. package/dist/collection/components/segment/segment.js +2 -2
  162. package/dist/collection/components/segment-button/segment-button.js +2 -2
  163. package/dist/collection/components/segment-content/segment-content.js +1 -1
  164. package/dist/collection/components/segment-view/segment-view.js +2 -2
  165. package/dist/collection/components/select/select.ios.css +63 -69
  166. package/dist/collection/components/select/select.js +40 -55
  167. package/dist/collection/components/select/select.md.css +85 -85
  168. package/dist/collection/components/select-modal/select-modal.js +1 -1
  169. package/dist/collection/components/select-option/select-option.js +1 -1
  170. package/dist/collection/components/select-popover/select-popover.js +1 -1
  171. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  172. package/dist/collection/components/spinner/spinner.js +1 -1
  173. package/dist/collection/components/split-pane/split-pane.js +2 -2
  174. package/dist/collection/components/tab/tab.js +2 -2
  175. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  176. package/dist/collection/components/tab-button/tab-button.js +2 -2
  177. package/dist/collection/components/tabs/tabs.js +1 -1
  178. package/dist/collection/components/text/text.js +2 -2
  179. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  180. package/dist/collection/components/textarea/textarea.js +39 -51
  181. package/dist/collection/components/textarea/textarea.md.css +103 -77
  182. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  183. package/dist/collection/components/title/title.js +2 -2
  184. package/dist/collection/components/toast/toast.js +2 -2
  185. package/dist/collection/components/toggle/toggle.js +3 -3
  186. package/dist/collection/components/toolbar/toolbar.js +2 -2
  187. package/dist/collection/utils/forms/index.js +1 -0
  188. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  189. package/dist/docs.json +22 -6
  190. package/dist/esm/input.utils-B1ValN_N.js +33 -0
  191. package/dist/esm/ion-app_8.entry.js +5 -5
  192. package/dist/esm/ion-avatar_3.entry.js +1 -1
  193. package/dist/esm/ion-col_3.entry.js +1 -1
  194. package/dist/esm/ion-input-otp.entry.js +3 -3
  195. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  196. package/dist/esm/ion-input.entry.js +40 -54
  197. package/dist/esm/ion-item-option_3.entry.js +4 -4
  198. package/dist/esm/ion-item_8.entry.js +12 -12
  199. package/dist/esm/ion-loading.entry.js +2 -2
  200. package/dist/esm/ion-menu_3.entry.js +6 -6
  201. package/dist/esm/ion-modal.entry.js +4 -4
  202. package/dist/esm/ion-nav_2.entry.js +2 -2
  203. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  204. package/dist/esm/ion-popover.entry.js +2 -2
  205. package/dist/esm/ion-progress-bar.entry.js +1 -1
  206. package/dist/esm/ion-radio_2.entry.js +4 -4
  207. package/dist/esm/ion-range.entry.js +3 -3
  208. package/dist/esm/ion-refresher_2.entry.js +2 -2
  209. package/dist/esm/ion-reorder_2.entry.js +2 -2
  210. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  211. package/dist/esm/ion-route_4.entry.js +2 -2
  212. package/dist/esm/ion-searchbar.entry.js +4 -4
  213. package/dist/esm/ion-segment-content.entry.js +1 -1
  214. package/dist/esm/ion-segment-view.entry.js +2 -2
  215. package/dist/esm/ion-segment_2.entry.js +4 -4
  216. package/dist/esm/ion-select-modal.entry.js +1 -1
  217. package/dist/esm/ion-select_3.entry.js +40 -58
  218. package/dist/esm/ion-spinner.entry.js +1 -1
  219. package/dist/esm/ion-split-pane.entry.js +2 -2
  220. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  221. package/dist/esm/ion-tab_2.entry.js +3 -3
  222. package/dist/esm/ion-text.entry.js +2 -2
  223. package/dist/esm/ion-textarea.entry.js +43 -54
  224. package/dist/esm/ion-toast.entry.js +2 -2
  225. package/dist/esm/ion-toggle.entry.js +4 -4
  226. package/dist/esm/slot-mutation-controller-u741eD3Z.js +393 -0
  227. package/dist/ionic/ionic.esm.js +1 -1
  228. package/dist/ionic/{p-dbfd2d52.entry.js → p-06533d51.entry.js} +1 -1
  229. package/dist/ionic/{p-a641d428.entry.js → p-141f5b47.entry.js} +1 -1
  230. package/dist/ionic/p-14a5e8f5.entry.js +4 -0
  231. package/dist/ionic/{p-12589d59.entry.js → p-19269e04.entry.js} +1 -1
  232. package/dist/ionic/{p-efef6788.entry.js → p-19abbc33.entry.js} +1 -1
  233. package/dist/ionic/{p-5394e1d4.entry.js → p-4204184c.entry.js} +1 -1
  234. package/dist/ionic/p-4bc3ecdb.entry.js +4 -0
  235. package/dist/ionic/{p-21a7fb2a.entry.js → p-4eed9ca1.entry.js} +1 -1
  236. package/dist/ionic/p-5521dc1f.entry.js +4 -0
  237. package/dist/ionic/p-5c3626de.entry.js +4 -0
  238. package/dist/ionic/{p-374b10cb.entry.js → p-5d3b411c.entry.js} +1 -1
  239. package/dist/ionic/p-60576951.entry.js +4 -0
  240. package/dist/ionic/{p-1d2e53e8.entry.js → p-711a8319.entry.js} +1 -1
  241. package/dist/ionic/{p-48b6835f.entry.js → p-71419a55.entry.js} +1 -1
  242. package/dist/ionic/{p-ba8a598f.entry.js → p-79325ffe.entry.js} +1 -1
  243. package/dist/ionic/p-84a38904.entry.js +4 -0
  244. package/dist/ionic/{p-bf7c1f05.entry.js → p-8f204f1e.entry.js} +1 -1
  245. package/dist/ionic/p-9055e897.entry.js +4 -0
  246. package/dist/ionic/{p-6277efba.entry.js → p-9658e083.entry.js} +1 -1
  247. package/dist/ionic/{p-74f30659.entry.js → p-988baee1.entry.js} +1 -1
  248. package/dist/ionic/p-DAztxQR0.js +4 -0
  249. package/dist/ionic/p-DkUB-ROc.js +4 -0
  250. package/dist/ionic/{p-3835a020.entry.js → p-a71232d6.entry.js} +1 -1
  251. package/dist/ionic/{p-08f1ed1c.entry.js → p-a73d8742.entry.js} +1 -1
  252. package/dist/ionic/{p-8a21bdbd.entry.js → p-a8421d18.entry.js} +1 -1
  253. package/dist/ionic/{p-2ce59395.entry.js → p-a8c2c343.entry.js} +1 -1
  254. package/dist/ionic/{p-c3f65965.entry.js → p-bc2bad5f.entry.js} +1 -1
  255. package/dist/ionic/{p-f622796d.entry.js → p-be08d500.entry.js} +1 -1
  256. package/dist/ionic/p-be9a4f51.entry.js +4 -0
  257. package/dist/ionic/{p-33829e94.entry.js → p-ccc5044d.entry.js} +1 -1
  258. package/dist/ionic/{p-3c5fdd27.entry.js → p-ce32912b.entry.js} +1 -1
  259. package/dist/ionic/p-ded69ceb.entry.js +4 -0
  260. package/dist/ionic/{p-cec87704.entry.js → p-e0c6e31e.entry.js} +1 -1
  261. package/dist/ionic/{p-09b47b7d.entry.js → p-e8c3e08a.entry.js} +1 -1
  262. package/dist/ionic/{p-8f3a1995.entry.js → p-ed5d540d.entry.js} +1 -1
  263. package/dist/ionic/{p-6b286c5c.entry.js → p-f2802440.entry.js} +1 -1
  264. package/dist/ionic/{p-62e71297.entry.js → p-fe1bfbcf.entry.js} +1 -1
  265. package/dist/types/components/input/input.d.ts +11 -5
  266. package/dist/types/components/select/select.d.ts +12 -6
  267. package/dist/types/components/textarea/textarea.d.ts +12 -5
  268. package/dist/types/utils/forms/index.d.ts +1 -0
  269. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  270. package/hydrate/index.js +350 -267
  271. package/hydrate/index.mjs +350 -267
  272. package/package.json +4 -4
  273. package/components/p-DIgGHN7D.js +0 -4
  274. package/components/p-MCJ7HjWe.js +0 -4
  275. package/dist/cjs/input.utils-CP4fzrqk.js +0 -149
  276. package/dist/cjs/notch-controller-BEUpEgb5.js +0 -155
  277. package/dist/esm/input.utils-J6HWocLA.js +0 -146
  278. package/dist/esm/notch-controller-CrUGyHYz.js +0 -153
  279. package/dist/ionic/p-0266b7e1.entry.js +0 -4
  280. package/dist/ionic/p-214e000a.entry.js +0 -4
  281. package/dist/ionic/p-91c6faf1.entry.js +0 -4
  282. package/dist/ionic/p-9b865fe6.entry.js +0 -4
  283. package/dist/ionic/p-BnMQxWON.js +0 -4
  284. package/dist/ionic/p-ac6ef997.entry.js +0 -4
  285. package/dist/ionic/p-b24dc0a1.entry.js +0 -4
  286. package/dist/ionic/p-c8fbe544.entry.js +0 -4
  287. package/dist/ionic/p-cb12f6c3.entry.js +0 -4
  288. package/dist/ionic/p-ede019ef.entry.js +0 -4
  289. package/dist/ionic/p-kJA95YWg.js +0 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.8.19-dev.11786730389.1a1927bf",
3
+ "version": "8.8.19-dev.11786735826.1fad7c0a",
4
4
  "description": "Base components for Ionic",
5
5
  "engines": {
6
6
  "node": ">= 16"
@@ -83,10 +83,10 @@
83
83
  "@playwright/test": "^1.62.1",
84
84
  "@rollup/plugin-node-resolve": "^8.4.0",
85
85
  "@rollup/plugin-virtual": "^2.0.3",
86
- "@stencil/angular-output-target": "^1.3.2",
87
- "@stencil/react-output-target": "^1.5.2",
86
+ "@stencil/angular-output-target": "^1.4.1",
87
+ "@stencil/react-output-target": "^1.6.2",
88
88
  "@stencil/sass": "^3.0.9",
89
- "@stencil/vue-output-target": "0.13.1",
89
+ "@stencil/vue-output-target": "0.14.1",
90
90
  "@types/jest": "^29.5.6",
91
91
  "@types/node": "^24.13.3",
92
92
  "@typescript-eslint/eslint-plugin": "^8.0.0",
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{w as o}from"./p-ZjP4CjeZ.js";import{b as t}from"./p-BpG8kBfD.js";const r=(r,e,i)=>{let n;const s=()=>void 0!==e()&&void 0===r.label&&null!==i(),d=()=>{const t=e();if(void 0===t)return;if(!s())return void t.style.removeProperty("width");const c=i().scrollWidth;if(0===c&&null===t.offsetParent&&void 0!==o&&"IntersectionObserver"in o){if(void 0!==n)return;const o=n=new IntersectionObserver((t=>{1===t[0].intersectionRatio&&(d(),o.disconnect(),n=void 0)}),{threshold:.01,root:r});o.observe(t)}else t.style.setProperty("width",.75*c+"px")};return{calculateNotchWidth:()=>{s()&&t((()=>{d()}))},destroy:()=>{n&&(n.disconnect(),n=void 0)}}};export{r as c}
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{w as o}from"./p-ZjP4CjeZ.js";import{b as r}from"./p-BpG8kBfD.js";import{j as t}from"./p-C9BGR5fy.js";const e=(t,e,i)=>{let n,s;if(void 0!==o&&"MutationObserver"in o){const o=Array.isArray(e)?e:[e];n=new MutationObserver((t=>{for(const e of t)for(const t of e.addedNodes)if(t.nodeType===Node.ELEMENT_NODE&&o.includes(t.slot))return i(),void r((()=>f(t)))})),n.observe(t,{childList:!0,subtree:!0})}const f=o=>{s&&(s.disconnect(),s=void 0),s=new MutationObserver((o=>{i();for(const r of o)for(const o of r.removedNodes)o.nodeType===Node.ELEMENT_NODE&&o.slot===e&&c()})),s.observe(o.parentElement??o,{subtree:!0,childList:!0})},c=()=>{s&&(s.disconnect(),s=void 0)};return{destroy:()=>{n&&(n.disconnect(),n=void 0),c()}}},i=(o,r,e)=>{const i=null==o?0:o.toString().length,s=n(i,r);if(void 0===e)return s;try{return e(i,r)}catch(o){return t("[ion-input] - Exception in provided `counterFormatter`:",o),s}},n=(o,r)=>`${o} / ${r}`;export{e as c,i as g}
@@ -1,149 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- 'use strict';
5
-
6
- var index = require('./index-DkNv4J_i.js');
7
- var helpers = require('./helpers-CaLhEmTE.js');
8
- var index$1 = require('./index-uvry__L4.js');
9
-
10
- /**
11
- * Used to update a scoped component that uses emulated slots. This fires when
12
- * content is passed into the slot or when the content inside of a slot changes.
13
- * This is not needed for components using native slots in the Shadow DOM.
14
- * @internal
15
- * @param el The host element to observe
16
- * @param slotName mutationCallback will fire when nodes on these slot(s) change
17
- * @param mutationCallback The callback to fire whenever the slotted content changes
18
- */
19
- const createSlotMutationController = (el, slotName, mutationCallback) => {
20
- let hostMutationObserver;
21
- let slottedContentMutationObserver;
22
- if (index.win !== undefined && 'MutationObserver' in index.win) {
23
- const slots = Array.isArray(slotName) ? slotName : [slotName];
24
- hostMutationObserver = new MutationObserver((entries) => {
25
- for (const entry of entries) {
26
- for (const node of entry.addedNodes) {
27
- /**
28
- * Check to see if the added node
29
- * is our slotted content.
30
- */
31
- if (node.nodeType === Node.ELEMENT_NODE && slots.includes(node.slot)) {
32
- /**
33
- * If so, we want to watch the slotted
34
- * content itself for changes. This lets us
35
- * detect when content inside of the slot changes.
36
- */
37
- mutationCallback();
38
- /**
39
- * Adding the listener in an raf
40
- * waits until Stencil moves the slotted element
41
- * into the correct place in the event that
42
- * slotted content is being added.
43
- */
44
- helpers.raf(() => watchForSlotChange(node));
45
- return;
46
- }
47
- }
48
- }
49
- });
50
- hostMutationObserver.observe(el, {
51
- childList: true,
52
- /**
53
- * This fixes an issue with the `ion-input` and
54
- * `ion-textarea` not re-rendering in some cases
55
- * when using the label slot functionality.
56
- *
57
- * HTML element patches in Stencil that are enabled
58
- * by the `experimentalSlotFixes` flag in Stencil v4
59
- * result in DOM manipulations that won't trigger
60
- * the current mutation observer configuration and
61
- * callback.
62
- */
63
- subtree: true,
64
- });
65
- }
66
- /**
67
- * Listen for changes inside of the slotted content.
68
- * We can listen for subtree changes here to be
69
- * informed of text within the slotted content
70
- * changing. Doing this on the host is possible
71
- * but it is much more expensive to do because
72
- * it also listens for changes to the internals
73
- * of the component.
74
- */
75
- const watchForSlotChange = (slottedEl) => {
76
- if (slottedContentMutationObserver) {
77
- slottedContentMutationObserver.disconnect();
78
- slottedContentMutationObserver = undefined;
79
- }
80
- slottedContentMutationObserver = new MutationObserver((entries) => {
81
- mutationCallback();
82
- for (const entry of entries) {
83
- for (const node of entry.removedNodes) {
84
- /**
85
- * If the element was removed then we
86
- * need to destroy the MutationObserver
87
- * so the element can be garbage collected.
88
- */
89
- if (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) {
90
- destroySlottedContentObserver();
91
- }
92
- }
93
- }
94
- });
95
- /**
96
- * Listen for changes inside of the element
97
- * as well as anything deep in the tree.
98
- * We listen on the parentElement so that we can
99
- * detect when slotted element itself is removed.
100
- */
101
- slottedContentMutationObserver.observe(slottedEl.parentElement ?? slottedEl, { subtree: true, childList: true });
102
- };
103
- const destroy = () => {
104
- if (hostMutationObserver) {
105
- hostMutationObserver.disconnect();
106
- hostMutationObserver = undefined;
107
- }
108
- destroySlottedContentObserver();
109
- };
110
- const destroySlottedContentObserver = () => {
111
- if (slottedContentMutationObserver) {
112
- slottedContentMutationObserver.disconnect();
113
- slottedContentMutationObserver = undefined;
114
- }
115
- };
116
- return {
117
- destroy,
118
- };
119
- };
120
-
121
- const getCounterText = (value, maxLength, counterFormatter) => {
122
- const valueLength = value == null ? 0 : value.toString().length;
123
- const defaultCounterText = defaultCounterFormatter(valueLength, maxLength);
124
- /**
125
- * If developers did not pass a custom formatter,
126
- * use the default one.
127
- */
128
- if (counterFormatter === undefined) {
129
- return defaultCounterText;
130
- }
131
- /**
132
- * Otherwise, try to use the custom formatter
133
- * and fallback to the default formatter if
134
- * there was an error.
135
- */
136
- try {
137
- return counterFormatter(valueLength, maxLength);
138
- }
139
- catch (e) {
140
- index$1.printIonError('[ion-input] - Exception in provided `counterFormatter`:', e);
141
- return defaultCounterText;
142
- }
143
- };
144
- const defaultCounterFormatter = (length, maxlength) => {
145
- return `${length} / ${maxlength}`;
146
- };
147
-
148
- exports.createSlotMutationController = createSlotMutationController;
149
- exports.getCounterText = getCounterText;
@@ -1,155 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- 'use strict';
5
-
6
- var index = require('./index-DkNv4J_i.js');
7
- var helpers = require('./helpers-CaLhEmTE.js');
8
-
9
- /**
10
- * A utility to calculate the size of an outline notch
11
- * width relative to the content passed. This is used in
12
- * components such as `ion-select` with `fill="outline"`
13
- * where we need to pass slotted HTML content. This is not
14
- * needed when rendering plaintext content because we can
15
- * render the plaintext again hidden with `opacity: 0` inside
16
- * of the notch. As a result we can rely on the intrinsic size
17
- * of the element to correctly compute the notch width. We
18
- * cannot do this with slotted content because we cannot project
19
- * it into 2 places at once.
20
- *
21
- * @internal
22
- * @param el: The host element
23
- * @param getNotchSpacerEl: A function that returns a reference to the notch spacer element inside of the component template.
24
- * @param getLabelSlot: A function that returns a reference to the slotted content.
25
- */
26
- const createNotchController = (el, getNotchSpacerEl, getLabelSlot) => {
27
- let notchVisibilityIO;
28
- const needsExplicitNotchWidth = () => {
29
- const notchSpacerEl = getNotchSpacerEl();
30
- if (
31
- /**
32
- * If the notch is not being used
33
- * then we do not need to set the notch width.
34
- */
35
- notchSpacerEl === undefined ||
36
- /**
37
- * If either the label property is being
38
- * used or the label slot is not defined,
39
- * then we do not need to estimate the notch width.
40
- */
41
- el.label !== undefined ||
42
- getLabelSlot() === null) {
43
- return false;
44
- }
45
- return true;
46
- };
47
- const calculateNotchWidth = () => {
48
- if (needsExplicitNotchWidth()) {
49
- /**
50
- * Run this the frame after
51
- * the browser has re-painted the host element.
52
- * Otherwise, the label element may have a width
53
- * of 0 and the IntersectionObserver will be used.
54
- */
55
- helpers.raf(() => {
56
- setNotchWidth();
57
- });
58
- }
59
- };
60
- /**
61
- * When using a label prop we can render
62
- * the label value inside of the notch and
63
- * let the browser calculate the size of the notch.
64
- * However, we cannot render the label slot in multiple
65
- * places so we need to manually calculate the notch dimension
66
- * based on the size of the slotted content.
67
- *
68
- * This function should only be used to set the notch width
69
- * on slotted label content. The notch width for label prop
70
- * content is automatically calculated based on the
71
- * intrinsic size of the label text.
72
- */
73
- const setNotchWidth = () => {
74
- const notchSpacerEl = getNotchSpacerEl();
75
- if (notchSpacerEl === undefined) {
76
- return;
77
- }
78
- if (!needsExplicitNotchWidth()) {
79
- notchSpacerEl.style.removeProperty('width');
80
- return;
81
- }
82
- const width = getLabelSlot().scrollWidth;
83
- if (
84
- /**
85
- * If the computed width of the label is 0
86
- * and notchSpacerEl's offsetParent is null
87
- * then that means the element is hidden.
88
- * As a result, we need to wait for the element
89
- * to become visible before setting the notch width.
90
- *
91
- * We do not check el.offsetParent because
92
- * that can be null if the host element has
93
- * position: fixed applied to it.
94
- * notchSpacerEl does not have position: fixed.
95
- */
96
- width === 0 &&
97
- notchSpacerEl.offsetParent === null &&
98
- index.win !== undefined &&
99
- 'IntersectionObserver' in index.win) {
100
- /**
101
- * If there is an IO already attached
102
- * then that will update the notch
103
- * once the element becomes visible.
104
- * As a result, there is no need to create
105
- * another one.
106
- */
107
- if (notchVisibilityIO !== undefined) {
108
- return;
109
- }
110
- const io = (notchVisibilityIO = new IntersectionObserver((ev) => {
111
- /**
112
- * If the element is visible then we
113
- * can try setting the notch width again.
114
- */
115
- if (ev[0].intersectionRatio === 1) {
116
- setNotchWidth();
117
- io.disconnect();
118
- notchVisibilityIO = undefined;
119
- }
120
- },
121
- /**
122
- * Set the root to be the host element
123
- * This causes the IO callback
124
- * to be fired in WebKit as soon as the element
125
- * is visible. If we used the default root value
126
- * then WebKit would only fire the IO callback
127
- * after any animations (such as a modal transition)
128
- * finished, and there would potentially be a flicker.
129
- */
130
- { threshold: 0.01, root: el }));
131
- io.observe(notchSpacerEl);
132
- return;
133
- }
134
- /**
135
- * If the element is visible then we can set the notch width.
136
- * The notch is only visible when the label is scaled,
137
- * which is why we multiply the width by 0.75 as this is
138
- * the same amount the label element is scaled by in the host CSS.
139
- * (See $form-control-label-stacked-scale in ionic.globals.scss).
140
- */
141
- notchSpacerEl.style.setProperty('width', `${width * 0.75}px`);
142
- };
143
- const destroy = () => {
144
- if (notchVisibilityIO) {
145
- notchVisibilityIO.disconnect();
146
- notchVisibilityIO = undefined;
147
- }
148
- };
149
- return {
150
- calculateNotchWidth,
151
- destroy,
152
- };
153
- };
154
-
155
- exports.createNotchController = createNotchController;
@@ -1,146 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { w as win } from './index-ZjP4CjeZ.js';
5
- import { r as raf } from './helpers-DexiPLIC.js';
6
- import { j as printIonError } from './index-ChhhtsGZ.js';
7
-
8
- /**
9
- * Used to update a scoped component that uses emulated slots. This fires when
10
- * content is passed into the slot or when the content inside of a slot changes.
11
- * This is not needed for components using native slots in the Shadow DOM.
12
- * @internal
13
- * @param el The host element to observe
14
- * @param slotName mutationCallback will fire when nodes on these slot(s) change
15
- * @param mutationCallback The callback to fire whenever the slotted content changes
16
- */
17
- const createSlotMutationController = (el, slotName, mutationCallback) => {
18
- let hostMutationObserver;
19
- let slottedContentMutationObserver;
20
- if (win !== undefined && 'MutationObserver' in win) {
21
- const slots = Array.isArray(slotName) ? slotName : [slotName];
22
- hostMutationObserver = new MutationObserver((entries) => {
23
- for (const entry of entries) {
24
- for (const node of entry.addedNodes) {
25
- /**
26
- * Check to see if the added node
27
- * is our slotted content.
28
- */
29
- if (node.nodeType === Node.ELEMENT_NODE && slots.includes(node.slot)) {
30
- /**
31
- * If so, we want to watch the slotted
32
- * content itself for changes. This lets us
33
- * detect when content inside of the slot changes.
34
- */
35
- mutationCallback();
36
- /**
37
- * Adding the listener in an raf
38
- * waits until Stencil moves the slotted element
39
- * into the correct place in the event that
40
- * slotted content is being added.
41
- */
42
- raf(() => watchForSlotChange(node));
43
- return;
44
- }
45
- }
46
- }
47
- });
48
- hostMutationObserver.observe(el, {
49
- childList: true,
50
- /**
51
- * This fixes an issue with the `ion-input` and
52
- * `ion-textarea` not re-rendering in some cases
53
- * when using the label slot functionality.
54
- *
55
- * HTML element patches in Stencil that are enabled
56
- * by the `experimentalSlotFixes` flag in Stencil v4
57
- * result in DOM manipulations that won't trigger
58
- * the current mutation observer configuration and
59
- * callback.
60
- */
61
- subtree: true,
62
- });
63
- }
64
- /**
65
- * Listen for changes inside of the slotted content.
66
- * We can listen for subtree changes here to be
67
- * informed of text within the slotted content
68
- * changing. Doing this on the host is possible
69
- * but it is much more expensive to do because
70
- * it also listens for changes to the internals
71
- * of the component.
72
- */
73
- const watchForSlotChange = (slottedEl) => {
74
- if (slottedContentMutationObserver) {
75
- slottedContentMutationObserver.disconnect();
76
- slottedContentMutationObserver = undefined;
77
- }
78
- slottedContentMutationObserver = new MutationObserver((entries) => {
79
- mutationCallback();
80
- for (const entry of entries) {
81
- for (const node of entry.removedNodes) {
82
- /**
83
- * If the element was removed then we
84
- * need to destroy the MutationObserver
85
- * so the element can be garbage collected.
86
- */
87
- if (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) {
88
- destroySlottedContentObserver();
89
- }
90
- }
91
- }
92
- });
93
- /**
94
- * Listen for changes inside of the element
95
- * as well as anything deep in the tree.
96
- * We listen on the parentElement so that we can
97
- * detect when slotted element itself is removed.
98
- */
99
- slottedContentMutationObserver.observe(slottedEl.parentElement ?? slottedEl, { subtree: true, childList: true });
100
- };
101
- const destroy = () => {
102
- if (hostMutationObserver) {
103
- hostMutationObserver.disconnect();
104
- hostMutationObserver = undefined;
105
- }
106
- destroySlottedContentObserver();
107
- };
108
- const destroySlottedContentObserver = () => {
109
- if (slottedContentMutationObserver) {
110
- slottedContentMutationObserver.disconnect();
111
- slottedContentMutationObserver = undefined;
112
- }
113
- };
114
- return {
115
- destroy,
116
- };
117
- };
118
-
119
- const getCounterText = (value, maxLength, counterFormatter) => {
120
- const valueLength = value == null ? 0 : value.toString().length;
121
- const defaultCounterText = defaultCounterFormatter(valueLength, maxLength);
122
- /**
123
- * If developers did not pass a custom formatter,
124
- * use the default one.
125
- */
126
- if (counterFormatter === undefined) {
127
- return defaultCounterText;
128
- }
129
- /**
130
- * Otherwise, try to use the custom formatter
131
- * and fallback to the default formatter if
132
- * there was an error.
133
- */
134
- try {
135
- return counterFormatter(valueLength, maxLength);
136
- }
137
- catch (e) {
138
- printIonError('[ion-input] - Exception in provided `counterFormatter`:', e);
139
- return defaultCounterText;
140
- }
141
- };
142
- const defaultCounterFormatter = (length, maxlength) => {
143
- return `${length} / ${maxlength}`;
144
- };
145
-
146
- export { createSlotMutationController as c, getCounterText as g };
@@ -1,153 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { w as win } from './index-ZjP4CjeZ.js';
5
- import { r as raf } from './helpers-DexiPLIC.js';
6
-
7
- /**
8
- * A utility to calculate the size of an outline notch
9
- * width relative to the content passed. This is used in
10
- * components such as `ion-select` with `fill="outline"`
11
- * where we need to pass slotted HTML content. This is not
12
- * needed when rendering plaintext content because we can
13
- * render the plaintext again hidden with `opacity: 0` inside
14
- * of the notch. As a result we can rely on the intrinsic size
15
- * of the element to correctly compute the notch width. We
16
- * cannot do this with slotted content because we cannot project
17
- * it into 2 places at once.
18
- *
19
- * @internal
20
- * @param el: The host element
21
- * @param getNotchSpacerEl: A function that returns a reference to the notch spacer element inside of the component template.
22
- * @param getLabelSlot: A function that returns a reference to the slotted content.
23
- */
24
- const createNotchController = (el, getNotchSpacerEl, getLabelSlot) => {
25
- let notchVisibilityIO;
26
- const needsExplicitNotchWidth = () => {
27
- const notchSpacerEl = getNotchSpacerEl();
28
- if (
29
- /**
30
- * If the notch is not being used
31
- * then we do not need to set the notch width.
32
- */
33
- notchSpacerEl === undefined ||
34
- /**
35
- * If either the label property is being
36
- * used or the label slot is not defined,
37
- * then we do not need to estimate the notch width.
38
- */
39
- el.label !== undefined ||
40
- getLabelSlot() === null) {
41
- return false;
42
- }
43
- return true;
44
- };
45
- const calculateNotchWidth = () => {
46
- if (needsExplicitNotchWidth()) {
47
- /**
48
- * Run this the frame after
49
- * the browser has re-painted the host element.
50
- * Otherwise, the label element may have a width
51
- * of 0 and the IntersectionObserver will be used.
52
- */
53
- raf(() => {
54
- setNotchWidth();
55
- });
56
- }
57
- };
58
- /**
59
- * When using a label prop we can render
60
- * the label value inside of the notch and
61
- * let the browser calculate the size of the notch.
62
- * However, we cannot render the label slot in multiple
63
- * places so we need to manually calculate the notch dimension
64
- * based on the size of the slotted content.
65
- *
66
- * This function should only be used to set the notch width
67
- * on slotted label content. The notch width for label prop
68
- * content is automatically calculated based on the
69
- * intrinsic size of the label text.
70
- */
71
- const setNotchWidth = () => {
72
- const notchSpacerEl = getNotchSpacerEl();
73
- if (notchSpacerEl === undefined) {
74
- return;
75
- }
76
- if (!needsExplicitNotchWidth()) {
77
- notchSpacerEl.style.removeProperty('width');
78
- return;
79
- }
80
- const width = getLabelSlot().scrollWidth;
81
- if (
82
- /**
83
- * If the computed width of the label is 0
84
- * and notchSpacerEl's offsetParent is null
85
- * then that means the element is hidden.
86
- * As a result, we need to wait for the element
87
- * to become visible before setting the notch width.
88
- *
89
- * We do not check el.offsetParent because
90
- * that can be null if the host element has
91
- * position: fixed applied to it.
92
- * notchSpacerEl does not have position: fixed.
93
- */
94
- width === 0 &&
95
- notchSpacerEl.offsetParent === null &&
96
- win !== undefined &&
97
- 'IntersectionObserver' in win) {
98
- /**
99
- * If there is an IO already attached
100
- * then that will update the notch
101
- * once the element becomes visible.
102
- * As a result, there is no need to create
103
- * another one.
104
- */
105
- if (notchVisibilityIO !== undefined) {
106
- return;
107
- }
108
- const io = (notchVisibilityIO = new IntersectionObserver((ev) => {
109
- /**
110
- * If the element is visible then we
111
- * can try setting the notch width again.
112
- */
113
- if (ev[0].intersectionRatio === 1) {
114
- setNotchWidth();
115
- io.disconnect();
116
- notchVisibilityIO = undefined;
117
- }
118
- },
119
- /**
120
- * Set the root to be the host element
121
- * This causes the IO callback
122
- * to be fired in WebKit as soon as the element
123
- * is visible. If we used the default root value
124
- * then WebKit would only fire the IO callback
125
- * after any animations (such as a modal transition)
126
- * finished, and there would potentially be a flicker.
127
- */
128
- { threshold: 0.01, root: el }));
129
- io.observe(notchSpacerEl);
130
- return;
131
- }
132
- /**
133
- * If the element is visible then we can set the notch width.
134
- * The notch is only visible when the label is scaled,
135
- * which is why we multiply the width by 0.75 as this is
136
- * the same amount the label element is scaled by in the host CSS.
137
- * (See $form-control-label-stacked-scale in ionic.globals.scss).
138
- */
139
- notchSpacerEl.style.setProperty('width', `${width * 0.75}px`);
140
- };
141
- const destroy = () => {
142
- if (notchVisibilityIO) {
143
- notchVisibilityIO.disconnect();
144
- notchVisibilityIO = undefined;
145
- }
146
- };
147
- return {
148
- calculateNotchWidth,
149
- destroy,
150
- };
151
- };
152
-
153
- export { createNotchController as c };