voyager-ionic-core 8.3.3 → 8.4.0

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 (520) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +7 -5
  3. package/components/backdrop.js +1 -1
  4. package/components/button.js +2 -2
  5. package/components/buttons.js +2 -2
  6. package/components/checkbox.js +7 -5
  7. package/components/content.js +446 -0
  8. package/components/header.js +356 -0
  9. package/components/index4.js +2 -2
  10. package/components/ion-app.js +1 -1
  11. package/components/ion-avatar.js +1 -1
  12. package/components/ion-back-button.js +2 -2
  13. package/components/ion-badge.js +2 -2
  14. package/components/ion-breadcrumb.js +4 -4
  15. package/components/ion-breadcrumbs.js +2 -2
  16. package/components/ion-card-content.js +1 -1
  17. package/components/ion-card-header.js +2 -2
  18. package/components/ion-card-subtitle.js +2 -2
  19. package/components/ion-card-title.js +2 -2
  20. package/components/ion-card.js +1 -1
  21. package/components/ion-chip.js +2 -2
  22. package/components/ion-col.js +2 -2
  23. package/components/ion-content.js +1 -441
  24. package/components/ion-datetime-button.js +2 -2
  25. package/components/ion-datetime.js +2 -2
  26. package/components/ion-fab-button.js +2 -2
  27. package/components/ion-fab-list.js +2 -2
  28. package/components/ion-fab.js +2 -2
  29. package/components/ion-footer.js +2 -2
  30. package/components/ion-grid.js +2 -2
  31. package/components/ion-header.js +1 -351
  32. package/components/ion-img.js +1 -1
  33. package/components/ion-infinite-scroll-content.js +2 -2
  34. package/components/ion-infinite-scroll.js +1 -1
  35. package/components/ion-input-password-toggle.js +3 -3
  36. package/components/ion-input.js +20 -5
  37. package/components/ion-item-divider.js +2 -2
  38. package/components/ion-item-group.js +1 -1
  39. package/components/ion-item-option.js +2 -2
  40. package/components/ion-item-options.js +1 -1
  41. package/components/ion-item-sliding.js +1 -1
  42. package/components/ion-loading.js +2 -2
  43. package/components/ion-menu-button.js +2 -2
  44. package/components/ion-menu-toggle.js +2 -2
  45. package/components/ion-menu.js +19 -19
  46. package/components/ion-modal.js +1 -1737
  47. package/components/ion-nav-link.js +1 -1
  48. package/components/ion-nav.js +1 -1
  49. package/components/ion-note.js +2 -2
  50. package/components/ion-picker-legacy.js +2 -2
  51. package/components/ion-progress-bar.js +1 -1
  52. package/components/ion-range.js +3 -3
  53. package/components/ion-refresher-content.js +1 -1
  54. package/components/ion-refresher.js +1 -1
  55. package/components/ion-reorder-group.js +1 -1
  56. package/components/ion-reorder.js +1 -1
  57. package/components/ion-router-link.js +2 -2
  58. package/components/ion-router-outlet.js +1 -1
  59. package/components/ion-row.js +1 -1
  60. package/components/ion-searchbar.js +4 -4
  61. package/components/ion-segment-button.js +24 -5
  62. package/components/ion-segment-content.d.ts +11 -0
  63. package/components/ion-segment-content.js +37 -0
  64. package/components/ion-segment-view.d.ts +11 -0
  65. package/components/ion-segment-view.js +140 -0
  66. package/components/ion-segment.js +110 -15
  67. package/components/ion-select-modal.d.ts +11 -0
  68. package/components/ion-select-modal.js +9 -0
  69. package/components/ion-select-option.js +1 -1
  70. package/components/ion-select.js +114 -41
  71. package/components/ion-skeleton-text.js +2 -2
  72. package/components/ion-split-pane.js +2 -2
  73. package/components/ion-tab-bar.js +2 -2
  74. package/components/ion-tab-button.js +2 -2
  75. package/components/ion-tab.js +2 -2
  76. package/components/ion-tabs.js +1 -1
  77. package/components/ion-text.js +2 -2
  78. package/components/ion-textarea.js +19 -4
  79. package/components/ion-thumbnail.js +1 -1
  80. package/components/ion-title.js +1 -70
  81. package/components/ion-toast.js +2 -2
  82. package/components/ion-toggle.js +3 -3
  83. package/components/ion-toolbar.js +1 -88
  84. package/components/label.js +2 -2
  85. package/components/list-header.js +2 -2
  86. package/components/list.js +1 -1
  87. package/components/modal.js +1742 -0
  88. package/components/overlays.js +62 -7
  89. package/components/picker-column-option.js +2 -2
  90. package/components/picker-column.js +3 -3
  91. package/components/picker-column2.js +2 -2
  92. package/components/picker.js +2 -2
  93. package/components/popover.js +2 -2
  94. package/components/radio-group.js +5 -3
  95. package/components/radio.js +7 -5
  96. package/components/ripple-effect.js +1 -1
  97. package/components/select-modal.js +197 -0
  98. package/components/select-popover.js +1 -1
  99. package/components/spinner.js +1 -1
  100. package/components/title.js +75 -0
  101. package/components/toolbar.js +93 -0
  102. package/dist/cjs/{index-9cd00dc3.js → index-8e789962.js} +2 -2
  103. package/dist/cjs/index.cjs.js +2 -2
  104. package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
  105. package/dist/cjs/ion-alert.cjs.entry.js +8 -6
  106. package/dist/cjs/ion-app_8.cjs.entry.js +15 -15
  107. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  108. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  110. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +6 -6
  111. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  112. package/dist/cjs/ion-card_5.cjs.entry.js +8 -8
  113. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -4
  114. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  115. package/dist/cjs/ion-col_3.cjs.entry.js +5 -5
  116. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  117. package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
  118. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  119. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  120. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  121. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  122. package/dist/cjs/ion-input.cjs.entry.js +20 -5
  123. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  124. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  125. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  126. package/dist/cjs/ion-menu_3.cjs.entry.js +24 -24
  127. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  128. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  129. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  130. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  131. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  132. package/dist/cjs/ion-popover.cjs.entry.js +3 -3
  133. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  134. package/dist/cjs/ion-radio_2.cjs.entry.js +12 -8
  135. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  136. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  137. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  138. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  139. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  140. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  141. package/dist/cjs/ion-segment-content.cjs.entry.js +23 -0
  142. package/dist/cjs/ion-segment-view.cjs.entry.js +122 -0
  143. package/dist/cjs/ion-segment_2.cjs.entry.js +132 -19
  144. package/dist/cjs/ion-select-modal.cjs.entry.js +111 -0
  145. package/dist/cjs/ion-select_3.cjs.entry.js +40 -15
  146. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  147. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  148. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  149. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  150. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  151. package/dist/cjs/ion-textarea.cjs.entry.js +19 -4
  152. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  153. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  154. package/dist/cjs/ionic.cjs.js +1 -1
  155. package/dist/cjs/loader.cjs.js +1 -1
  156. package/dist/cjs/{overlays-0123d7d4.js → overlays-ba0f6986.js} +62 -7
  157. package/dist/collection/collection-manifest.json +3 -0
  158. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  159. package/dist/collection/components/alert/alert.js +7 -5
  160. package/dist/collection/components/app/app.js +1 -1
  161. package/dist/collection/components/avatar/avatar.js +1 -1
  162. package/dist/collection/components/back-button/back-button.js +2 -2
  163. package/dist/collection/components/backdrop/backdrop.js +1 -1
  164. package/dist/collection/components/badge/badge.js +2 -2
  165. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  166. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  167. package/dist/collection/components/button/button.js +2 -2
  168. package/dist/collection/components/buttons/buttons.js +2 -2
  169. package/dist/collection/components/card/card.js +1 -1
  170. package/dist/collection/components/card-content/card-content.js +1 -1
  171. package/dist/collection/components/card-header/card-header.js +2 -2
  172. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  173. package/dist/collection/components/card-title/card-title.js +2 -2
  174. package/dist/collection/components/checkbox/checkbox.js +29 -4
  175. package/dist/collection/components/chip/chip.js +2 -2
  176. package/dist/collection/components/col/col.js +2 -2
  177. package/dist/collection/components/content/content.js +3 -3
  178. package/dist/collection/components/datetime/datetime.js +2 -2
  179. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  180. package/dist/collection/components/fab/fab.js +2 -2
  181. package/dist/collection/components/fab-button/fab-button.js +2 -2
  182. package/dist/collection/components/fab-list/fab-list.js +2 -2
  183. package/dist/collection/components/footer/footer.js +2 -2
  184. package/dist/collection/components/grid/grid.js +2 -2
  185. package/dist/collection/components/header/header.js +2 -2
  186. package/dist/collection/components/img/img.js +1 -1
  187. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  188. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  189. package/dist/collection/components/input/input.js +20 -5
  190. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  191. package/dist/collection/components/item-divider/item-divider.js +2 -2
  192. package/dist/collection/components/item-group/item-group.js +1 -1
  193. package/dist/collection/components/item-option/item-option.js +2 -2
  194. package/dist/collection/components/item-options/item-options.js +1 -1
  195. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  196. package/dist/collection/components/label/label.js +2 -2
  197. package/dist/collection/components/list/list.js +1 -1
  198. package/dist/collection/components/list-header/list-header.js +2 -2
  199. package/dist/collection/components/loading/loading.js +2 -2
  200. package/dist/collection/components/menu/menu.js +47 -27
  201. package/dist/collection/components/menu-button/menu-button.js +2 -2
  202. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  203. package/dist/collection/components/modal/modal.js +4 -4
  204. package/dist/collection/components/nav/nav.js +1 -1
  205. package/dist/collection/components/nav-link/nav-link.js +1 -1
  206. package/dist/collection/components/note/note.js +2 -2
  207. package/dist/collection/components/picker/picker.js +2 -2
  208. package/dist/collection/components/picker-column/picker-column.js +3 -3
  209. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  210. package/dist/collection/components/picker-legacy/picker.js +2 -2
  211. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  212. package/dist/collection/components/popover/popover.js +2 -2
  213. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  214. package/dist/collection/components/radio/radio.js +9 -7
  215. package/dist/collection/components/radio-group/radio-group.js +5 -3
  216. package/dist/collection/components/range/range.js +3 -3
  217. package/dist/collection/components/refresher/refresher.js +1 -1
  218. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  219. package/dist/collection/components/reorder/reorder.js +1 -1
  220. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  221. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  222. package/dist/collection/components/router-link/router-link.js +2 -2
  223. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  224. package/dist/collection/components/row/row.js +1 -1
  225. package/dist/collection/components/searchbar/searchbar.js +4 -4
  226. package/dist/collection/components/segment/segment.js +115 -14
  227. package/dist/collection/components/segment-button/segment-button.js +40 -5
  228. package/dist/collection/components/segment-content/segment-content.css +6 -0
  229. package/dist/collection/components/segment-content/segment-content.js +21 -0
  230. package/dist/collection/components/segment-view/segment-view-interface.js +1 -0
  231. package/dist/collection/components/segment-view/segment-view.ios.css +83 -0
  232. package/dist/collection/components/segment-view/segment-view.js +227 -0
  233. package/dist/collection/components/segment-view/segment-view.md.css +83 -0
  234. package/dist/collection/components/select/select.js +61 -16
  235. package/dist/collection/components/select-modal/select-modal-interface.js +1 -0
  236. package/dist/collection/components/select-modal/select-modal.ios.css +3 -0
  237. package/dist/collection/components/select-modal/select-modal.js +159 -0
  238. package/dist/collection/components/select-modal/select-modal.md.css +110 -0
  239. package/dist/collection/components/select-modal/test/fixtures.js +48 -0
  240. package/dist/collection/components/select-option/select-option.js +1 -1
  241. package/dist/collection/components/select-popover/select-popover.js +1 -1
  242. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  243. package/dist/collection/components/spinner/spinner.js +1 -1
  244. package/dist/collection/components/split-pane/split-pane.js +2 -2
  245. package/dist/collection/components/tab/tab.js +2 -2
  246. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  247. package/dist/collection/components/tab-button/tab-button.js +2 -2
  248. package/dist/collection/components/tabs/tabs.js +1 -1
  249. package/dist/collection/components/text/text.js +2 -2
  250. package/dist/collection/components/textarea/textarea.js +19 -4
  251. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  252. package/dist/collection/components/title/title.js +2 -2
  253. package/dist/collection/components/toast/toast.js +2 -2
  254. package/dist/collection/components/toggle/toggle.js +3 -3
  255. package/dist/collection/components/toolbar/toolbar.js +2 -2
  256. package/dist/collection/utils/menu-controller/index.js +2 -2
  257. package/dist/collection/utils/overlays.js +62 -7
  258. package/dist/docs.json +426 -29
  259. package/dist/esm/{index-fe1782b1.js → index-24b48b06.js} +2 -2
  260. package/dist/esm/index.js +2 -2
  261. package/dist/esm/ion-action-sheet.entry.js +3 -3
  262. package/dist/esm/ion-alert.entry.js +8 -6
  263. package/dist/esm/ion-app_8.entry.js +15 -15
  264. package/dist/esm/ion-avatar_3.entry.js +4 -4
  265. package/dist/esm/ion-back-button.entry.js +2 -2
  266. package/dist/esm/ion-backdrop.entry.js +1 -1
  267. package/dist/esm/ion-breadcrumb_2.entry.js +6 -6
  268. package/dist/esm/ion-button_2.entry.js +2 -2
  269. package/dist/esm/ion-card_5.entry.js +8 -8
  270. package/dist/esm/ion-checkbox.entry.js +5 -4
  271. package/dist/esm/ion-chip.entry.js +2 -2
  272. package/dist/esm/ion-col_3.entry.js +5 -5
  273. package/dist/esm/ion-datetime-button.entry.js +2 -2
  274. package/dist/esm/ion-datetime_3.entry.js +7 -7
  275. package/dist/esm/ion-fab_3.entry.js +6 -6
  276. package/dist/esm/ion-img.entry.js +1 -1
  277. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  278. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  279. package/dist/esm/ion-input.entry.js +20 -5
  280. package/dist/esm/ion-item-option_3.entry.js +4 -4
  281. package/dist/esm/ion-item_8.entry.js +12 -12
  282. package/dist/esm/ion-loading.entry.js +3 -3
  283. package/dist/esm/ion-menu_3.entry.js +24 -24
  284. package/dist/esm/ion-modal.entry.js +5 -5
  285. package/dist/esm/ion-nav_2.entry.js +2 -2
  286. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  287. package/dist/esm/ion-picker-column.entry.js +3 -3
  288. package/dist/esm/ion-picker.entry.js +2 -2
  289. package/dist/esm/ion-popover.entry.js +3 -3
  290. package/dist/esm/ion-progress-bar.entry.js +1 -1
  291. package/dist/esm/ion-radio_2.entry.js +12 -8
  292. package/dist/esm/ion-range.entry.js +3 -3
  293. package/dist/esm/ion-refresher_2.entry.js +2 -2
  294. package/dist/esm/ion-reorder_2.entry.js +2 -2
  295. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  296. package/dist/esm/ion-route_4.entry.js +2 -2
  297. package/dist/esm/ion-searchbar.entry.js +4 -4
  298. package/dist/esm/ion-segment-content.entry.js +19 -0
  299. package/dist/esm/ion-segment-view.entry.js +118 -0
  300. package/dist/esm/ion-segment_2.entry.js +132 -19
  301. package/dist/esm/ion-select-modal.entry.js +107 -0
  302. package/dist/esm/ion-select_3.entry.js +40 -15
  303. package/dist/esm/ion-spinner.entry.js +1 -1
  304. package/dist/esm/ion-split-pane.entry.js +2 -2
  305. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  306. package/dist/esm/ion-tab_2.entry.js +3 -3
  307. package/dist/esm/ion-text.entry.js +2 -2
  308. package/dist/esm/ion-textarea.entry.js +19 -4
  309. package/dist/esm/ion-toast.entry.js +3 -3
  310. package/dist/esm/ion-toggle.entry.js +3 -3
  311. package/dist/esm/ionic.js +1 -1
  312. package/dist/esm/loader.js +1 -1
  313. package/dist/esm/{overlays-9c75ec54.js → overlays-ae10d43d.js} +62 -7
  314. package/dist/esm-es5/{index-fe1782b1.js → index-24b48b06.js} +1 -1
  315. package/dist/esm-es5/index.js +1 -1
  316. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  317. package/dist/esm-es5/ion-alert.entry.js +1 -1
  318. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  319. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  320. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  321. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  322. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  323. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  324. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  325. package/dist/esm-es5/ion-checkbox.entry.js +2 -2
  326. package/dist/esm-es5/ion-chip.entry.js +1 -1
  327. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  328. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  329. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  330. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  331. package/dist/esm-es5/ion-img.entry.js +1 -1
  332. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  333. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  334. package/dist/esm-es5/ion-input.entry.js +1 -1
  335. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  336. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  337. package/dist/esm-es5/ion-loading.entry.js +1 -1
  338. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  339. package/dist/esm-es5/ion-modal.entry.js +1 -1
  340. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  341. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  342. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  343. package/dist/esm-es5/ion-picker.entry.js +1 -1
  344. package/dist/esm-es5/ion-popover.entry.js +1 -1
  345. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  346. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  347. package/dist/esm-es5/ion-range.entry.js +1 -1
  348. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  349. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  350. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  351. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  352. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  353. package/dist/esm-es5/ion-segment-content.entry.js +4 -0
  354. package/dist/esm-es5/ion-segment-view.entry.js +4 -0
  355. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  356. package/dist/esm-es5/ion-select-modal.entry.js +4 -0
  357. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  358. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  359. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  360. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  361. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  362. package/dist/esm-es5/ion-text.entry.js +1 -1
  363. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  364. package/dist/esm-es5/ion-toast.entry.js +1 -1
  365. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  366. package/dist/esm-es5/ionic.js +1 -1
  367. package/dist/esm-es5/loader.js +1 -1
  368. package/dist/esm-es5/overlays-ae10d43d.js +4 -0
  369. package/dist/html.html-data.json +65 -2
  370. package/dist/ionic/index.esm.js +1 -1
  371. package/dist/ionic/ionic.esm.js +1 -1
  372. package/dist/ionic/{p-313ccc01.system.entry.js → p-01186920.system.entry.js} +1 -1
  373. package/dist/ionic/{p-ecb57d24.system.entry.js → p-0161caf9.system.entry.js} +1 -1
  374. package/dist/ionic/p-0437ace4.system.entry.js +4 -0
  375. package/dist/ionic/p-04fc24ee.system.js +4 -0
  376. package/dist/ionic/{p-e3e1e3de.entry.js → p-081a4ce4.entry.js} +1 -1
  377. package/dist/ionic/p-09cf2394.entry.js +4 -0
  378. package/dist/ionic/p-14be4015.entry.js +4 -0
  379. package/dist/ionic/p-15e76dd1.entry.js +4 -0
  380. package/dist/ionic/{p-003eecb9.entry.js → p-16188af7.entry.js} +1 -1
  381. package/dist/ionic/p-16799667.system.entry.js +4 -0
  382. package/dist/ionic/p-16bfb979.system.entry.js +4 -0
  383. package/dist/ionic/{p-b54fc1ae.entry.js → p-19ec4f42.entry.js} +1 -1
  384. package/dist/ionic/p-1b7605a7.system.entry.js +4 -0
  385. package/dist/ionic/p-1c1b8e1f.entry.js +4 -0
  386. package/dist/ionic/{p-8b6232a6.system.entry.js → p-1e010627.system.entry.js} +2 -2
  387. package/dist/ionic/{p-f50ae0d5.system.entry.js → p-1e41f2aa.system.entry.js} +1 -1
  388. package/dist/ionic/{p-cdb11938.system.entry.js → p-1e67b266.system.entry.js} +1 -1
  389. package/dist/ionic/{p-bd25d639.system.entry.js → p-1ebd1e27.system.entry.js} +1 -1
  390. package/dist/ionic/{p-836d39d4.system.entry.js → p-2172893e.system.entry.js} +1 -1
  391. package/dist/ionic/{p-4a0a4204.system.entry.js → p-2507278c.system.entry.js} +1 -1
  392. package/dist/ionic/{p-75c0dc65.system.entry.js → p-2799c6d3.system.entry.js} +1 -1
  393. package/dist/ionic/{p-a879ecb7.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
  394. package/dist/ionic/{p-293ed6ac.system.entry.js → p-2b838f86.system.entry.js} +1 -1
  395. package/dist/ionic/{p-4a82bd1c.system.entry.js → p-2e46590d.system.entry.js} +1 -1
  396. package/dist/ionic/p-2fc0dafe.entry.js +4 -0
  397. package/dist/ionic/p-322c5fb4.system.js +2 -2
  398. package/dist/ionic/p-33a8a71b.entry.js +4 -0
  399. package/dist/ionic/{p-4b0fedb7.system.entry.js → p-37cb43bd.system.entry.js} +1 -1
  400. package/dist/ionic/{p-ad9b5007.system.entry.js → p-3b419d79.system.entry.js} +1 -1
  401. package/dist/ionic/p-424eb140.system.entry.js +4 -0
  402. package/dist/ionic/{p-b7657e8d.entry.js → p-4439fc2a.entry.js} +1 -1
  403. package/dist/ionic/{p-ed6962d3.system.entry.js → p-4561cd09.system.entry.js} +1 -1
  404. package/dist/ionic/{p-c34659b9.entry.js → p-45693d7e.entry.js} +1 -1
  405. package/dist/ionic/p-49a0e74c.entry.js +4 -0
  406. package/dist/ionic/{p-9fef1364.entry.js → p-4a274c89.entry.js} +1 -1
  407. package/dist/ionic/{p-d57661a1.entry.js → p-4b000207.entry.js} +1 -1
  408. package/dist/ionic/{p-fd0cb4ef.entry.js → p-4ec778aa.entry.js} +1 -1
  409. package/dist/ionic/{p-f559ac5b.entry.js → p-51796b2d.entry.js} +1 -1
  410. package/dist/ionic/{p-9ece8dcf.entry.js → p-52d7a191.entry.js} +1 -1
  411. package/dist/ionic/{p-8ed31163.system.entry.js → p-5393e8bb.system.entry.js} +1 -1
  412. package/dist/ionic/{p-ce705aac.system.entry.js → p-567de071.system.entry.js} +1 -1
  413. package/dist/ionic/{p-95823c62.system.entry.js → p-5823babc.system.entry.js} +2 -2
  414. package/dist/ionic/{p-baffaf8d.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
  415. package/dist/ionic/{p-521eca2e.entry.js → p-5ab1b709.entry.js} +1 -1
  416. package/dist/ionic/{p-cff5585e.system.entry.js → p-5b5c1505.system.entry.js} +1 -1
  417. package/dist/ionic/{p-8d44cf1f.entry.js → p-5b932840.entry.js} +1 -1
  418. package/dist/ionic/{p-9cc3bcc5.system.entry.js → p-5bd39e5e.system.entry.js} +2 -2
  419. package/dist/ionic/p-5c831f49.js +4 -0
  420. package/dist/ionic/{p-5800e441.entry.js → p-5f79d8c5.entry.js} +1 -1
  421. package/dist/ionic/{p-772dacba.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
  422. package/dist/ionic/{p-233e6c93.entry.js → p-62af944c.entry.js} +1 -1
  423. package/dist/ionic/{p-00b01a55.system.entry.js → p-63b0abde.system.entry.js} +1 -1
  424. package/dist/ionic/p-6734db42.system.entry.js +4 -0
  425. package/dist/ionic/p-69666e8a.system.entry.js +4 -0
  426. package/dist/ionic/{p-5e842258.entry.js → p-6d32975a.entry.js} +1 -1
  427. package/dist/ionic/p-73dc4950.entry.js +4 -0
  428. package/dist/ionic/{p-fcd71204.system.entry.js → p-7458862e.system.entry.js} +1 -1
  429. package/dist/ionic/{p-a3711608.system.entry.js → p-797eeea8.system.entry.js} +1 -1
  430. package/dist/ionic/{p-f8c8b9ba.entry.js → p-7b9a2b23.entry.js} +1 -1
  431. package/dist/ionic/{p-6817cf42.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
  432. package/dist/ionic/{p-22c020db.system.entry.js → p-857ca696.system.entry.js} +1 -1
  433. package/dist/ionic/{p-a4d51b8d.system.js → p-8f05ba3b.system.js} +1 -1
  434. package/dist/ionic/p-908d6080.entry.js +4 -0
  435. package/dist/ionic/{p-af999a31.entry.js → p-937a7e21.entry.js} +1 -1
  436. package/dist/ionic/{p-4c8fceb0.entry.js → p-95775830.entry.js} +1 -1
  437. package/dist/ionic/{p-973f0b15.system.entry.js → p-98231c01.system.entry.js} +1 -1
  438. package/dist/ionic/{p-25928b83.system.entry.js → p-985a7e17.system.entry.js} +1 -1
  439. package/dist/ionic/{p-e3a5da9d.entry.js → p-98ff6b32.entry.js} +1 -1
  440. package/dist/ionic/p-9910f786.entry.js +4 -0
  441. package/dist/ionic/{p-6e85e450.entry.js → p-9df2c6fb.entry.js} +1 -1
  442. package/dist/ionic/{p-7251fed5.entry.js → p-9ee1e8a6.entry.js} +1 -1
  443. package/dist/ionic/{p-da263d8e.entry.js → p-9fa07aec.entry.js} +1 -1
  444. package/dist/ionic/{p-a41699db.entry.js → p-a1051806.entry.js} +1 -1
  445. package/dist/ionic/p-a1b9a163.entry.js +4 -0
  446. package/dist/ionic/p-a34b4d94.entry.js +4 -0
  447. package/dist/ionic/{p-8836d0eb.system.entry.js → p-a49378bb.system.entry.js} +1 -1
  448. package/dist/ionic/{p-6b8893dd.entry.js → p-a61cba41.entry.js} +1 -1
  449. package/dist/ionic/p-adbc4bdf.entry.js +4 -0
  450. package/dist/ionic/{p-49bc6544.entry.js → p-afecb188.entry.js} +1 -1
  451. package/dist/ionic/{p-755b27f0.system.entry.js → p-b335ffed.system.entry.js} +1 -1
  452. package/dist/ionic/{p-e3f13b08.js → p-b82d4cab.js} +1 -1
  453. package/dist/ionic/{p-68c4df55.entry.js → p-b9d7015f.entry.js} +1 -1
  454. package/dist/ionic/{p-7243df6f.entry.js → p-bb0db172.entry.js} +1 -1
  455. package/dist/ionic/{p-df83e308.system.entry.js → p-bc36ad98.system.entry.js} +1 -1
  456. package/dist/ionic/{p-773d118d.entry.js → p-bdad26e3.entry.js} +1 -1
  457. package/dist/ionic/p-c29f8157.system.entry.js +4 -0
  458. package/dist/ionic/p-c2b74d92.system.entry.js +4 -0
  459. package/dist/ionic/{p-176b372f.entry.js → p-c41ac815.entry.js} +1 -1
  460. package/dist/ionic/{p-5417b9bb.entry.js → p-c9f3a539.entry.js} +1 -1
  461. package/dist/ionic/{p-2ea1ca4f.system.entry.js → p-ca065903.system.entry.js} +1 -1
  462. package/dist/ionic/{p-2ca6eac2.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
  463. package/dist/ionic/{p-3c968c7f.system.entry.js → p-d18ab582.system.entry.js} +2 -2
  464. package/dist/ionic/{p-92d7a3d1.entry.js → p-d7aa6b00.entry.js} +1 -1
  465. package/dist/ionic/{p-21cfd4de.entry.js → p-da074ff7.entry.js} +1 -1
  466. package/dist/ionic/{p-5e66bcf2.entry.js → p-db0c8e7d.entry.js} +1 -1
  467. package/dist/ionic/{p-89a0a446.entry.js → p-de930745.entry.js} +1 -1
  468. package/dist/ionic/p-e2252ad6.entry.js +4 -0
  469. package/dist/ionic/{p-960803fc.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
  470. package/dist/ionic/p-e563a35c.entry.js +4 -0
  471. package/dist/ionic/{p-7740e32c.system.js → p-e7ed4a7f.system.js} +1 -1
  472. package/dist/ionic/{p-0373d924.system.entry.js → p-ebf042e0.system.entry.js} +1 -1
  473. package/dist/ionic/{p-9b6c6302.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
  474. package/dist/ionic/p-f10b70a1.entry.js +4 -0
  475. package/dist/ionic/{p-01503bbd.system.entry.js → p-f3102647.system.entry.js} +1 -1
  476. package/dist/ionic/{p-6562e0a9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
  477. package/dist/ionic/{p-b0180ce1.system.entry.js → p-ffd131f9.system.entry.js} +1 -1
  478. package/dist/types/components/checkbox/checkbox.d.ts +2 -1
  479. package/dist/types/components/input/input.d.ts +3 -0
  480. package/dist/types/components/menu/menu-interface.d.ts +5 -2
  481. package/dist/types/components/menu/menu.d.ts +6 -6
  482. package/dist/types/components/radio/radio.d.ts +1 -1
  483. package/dist/types/components/segment/segment.d.ts +21 -1
  484. package/dist/types/components/segment-button/segment-button.d.ts +4 -0
  485. package/dist/types/components/segment-content/segment-content.d.ts +4 -0
  486. package/dist/types/components/segment-view/segment-view-interface.d.ts +4 -0
  487. package/dist/types/components/segment-view/segment-view.d.ts +55 -0
  488. package/dist/types/components/select/select-interface.d.ts +1 -1
  489. package/dist/types/components/select/select.d.ts +5 -4
  490. package/dist/types/components/select-modal/select-modal-interface.d.ts +10 -0
  491. package/dist/types/components/select-modal/select-modal.d.ts +16 -0
  492. package/dist/types/components/select-modal/test/fixtures.d.ts +16 -0
  493. package/dist/types/components/textarea/textarea.d.ts +3 -0
  494. package/dist/types/components.d.ts +103 -13
  495. package/dist/types/utils/overlays-interface.d.ts +1 -1
  496. package/hydrate/index.js +708 -225
  497. package/hydrate/index.mjs +708 -225
  498. package/package.json +1 -1
  499. package/dist/esm-es5/overlays-9c75ec54.js +0 -4
  500. package/dist/ionic/p-0fa0c92b.entry.js +0 -4
  501. package/dist/ionic/p-100b83fd.system.entry.js +0 -4
  502. package/dist/ionic/p-2200e26b.entry.js +0 -4
  503. package/dist/ionic/p-2b7c93b4.entry.js +0 -4
  504. package/dist/ionic/p-2c4bdd9d.entry.js +0 -4
  505. package/dist/ionic/p-44d1539c.system.entry.js +0 -4
  506. package/dist/ionic/p-53854390.entry.js +0 -4
  507. package/dist/ionic/p-72ffd137.system.entry.js +0 -4
  508. package/dist/ionic/p-82ab7ccb.entry.js +0 -4
  509. package/dist/ionic/p-9172535c.entry.js +0 -4
  510. package/dist/ionic/p-93f37ceb.system.entry.js +0 -4
  511. package/dist/ionic/p-98871496.system.js +0 -4
  512. package/dist/ionic/p-9c23044d.entry.js +0 -4
  513. package/dist/ionic/p-a0c88dc2.system.entry.js +0 -4
  514. package/dist/ionic/p-a440397c.js +0 -4
  515. package/dist/ionic/p-a72fb8a1.system.entry.js +0 -4
  516. package/dist/ionic/p-ab8a2ff1.entry.js +0 -4
  517. package/dist/ionic/p-b4c950f8.entry.js +0 -4
  518. package/dist/ionic/p-bfa2e81c.entry.js +0 -4
  519. package/dist/ionic/p-d77e12ca.entry.js +0 -4
  520. package/dist/ionic/p-f88ebc36.entry.js +0 -4
@@ -21,6 +21,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
21
21
  this.ionChange = createEvent(this, "ionChange", 7);
22
22
  this.ionSelect = createEvent(this, "ionSelect", 7);
23
23
  this.ionStyle = createEvent(this, "ionStyle", 7);
24
+ this.segmentViewEl = null;
24
25
  this.onClick = (ev) => {
25
26
  const current = ev.target;
26
27
  const previous = this.checked;
@@ -35,7 +36,13 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
35
36
  if (current !== previous) {
36
37
  this.emitValueChange();
37
38
  }
38
- if (this.scrollable || !this.swipeGesture) {
39
+ if (this.segmentViewEl) {
40
+ this.updateSegmentView();
41
+ if (this.scrollable && previous) {
42
+ this.checkButton(previous, current);
43
+ }
44
+ }
45
+ else if (this.scrollable || !this.swipeGesture) {
39
46
  if (previous) {
40
47
  this.checkButton(previous, current);
41
48
  }
@@ -91,19 +98,49 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
91
98
  swipeGestureChanged() {
92
99
  this.gestureChanged();
93
100
  }
94
- valueChanged(value) {
101
+ valueChanged(value, oldValue) {
102
+ // Force a value to exist if we're using a segment view
103
+ if (this.segmentViewEl && value === undefined) {
104
+ this.value = this.getButtons()[0].value;
105
+ return;
106
+ }
107
+ if (oldValue !== undefined && value !== undefined) {
108
+ const buttons = this.getButtons();
109
+ const previous = buttons.find((button) => button.value === oldValue);
110
+ const current = buttons.find((button) => button.value === value);
111
+ if (previous && current) {
112
+ if (!this.segmentViewEl) {
113
+ this.checkButton(previous, current);
114
+ }
115
+ else if (this.triggerScrollOnValueChange !== false) {
116
+ this.updateSegmentView();
117
+ }
118
+ }
119
+ }
120
+ else if (value !== undefined && oldValue === undefined && this.segmentViewEl) {
121
+ this.updateSegmentView();
122
+ }
95
123
  /**
96
124
  * `ionSelect` is emitted every time the value changes (internal or external changes).
97
125
  * Used by `ion-segment-button` to determine if the button should be checked.
98
126
  */
99
127
  this.ionSelect.emit({ value });
100
- this.scrollActiveButtonIntoView();
128
+ // The scroll listener should handle scrolling the active button into view as needed
129
+ if (!this.segmentViewEl) {
130
+ this.scrollActiveButtonIntoView();
131
+ }
132
+ this.triggerScrollOnValueChange = undefined;
101
133
  }
102
134
  disabledChanged() {
103
135
  this.gestureChanged();
104
- const buttons = this.getButtons();
105
- for (const button of buttons) {
106
- button.disabled = this.disabled;
136
+ if (!this.segmentViewEl) {
137
+ const buttons = this.getButtons();
138
+ for (const button of buttons) {
139
+ button.disabled = this.disabled;
140
+ }
141
+ }
142
+ else {
143
+ this.segmentViewEl.disabled = this.disabled;
107
144
  }
108
145
  }
109
146
  gestureChanged() {
@@ -113,6 +150,10 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
113
150
  }
114
151
  connectedCallback() {
115
152
  this.emitStyle();
153
+ this.segmentViewEl = this.getSegmentView();
154
+ }
155
+ disconnectedCallback() {
156
+ this.segmentViewEl = null;
116
157
  }
117
158
  componentWillLoad() {
118
159
  this.emitStyle();
@@ -146,6 +187,9 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
146
187
  if (this.disabled) {
147
188
  this.disabledChanged();
148
189
  }
190
+ // Update segment view based on the initial value,
191
+ // but do not animate the scroll
192
+ this.updateSegmentView(false);
149
193
  }
150
194
  onStart(detail) {
151
195
  this.valueBeforeGesture = this.value;
@@ -162,6 +206,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
162
206
  if (value !== undefined) {
163
207
  if (this.valueBeforeGesture !== value) {
164
208
  this.emitValueChange();
209
+ this.updateSegmentView();
165
210
  }
166
211
  }
167
212
  this.valueBeforeGesture = undefined;
@@ -189,12 +234,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
189
234
  setActivated(activated) {
190
235
  const buttons = this.getButtons();
191
236
  buttons.forEach((button) => {
192
- if (activated) {
193
- button.classList.add('segment-button-activated');
194
- }
195
- else {
196
- button.classList.remove('segment-button-activated');
197
- }
237
+ button.classList.toggle('segment-button-activated', activated);
198
238
  });
199
239
  this.activated = activated;
200
240
  }
@@ -245,6 +285,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
245
285
  currentIndicator.classList.add('segment-button-indicator-animated');
246
286
  // Remove the transform to slide the indicator back to the button clicked
247
287
  currentIndicator.style.setProperty('transform', '');
288
+ this.scrollActiveButtonIntoView(true);
248
289
  });
249
290
  this.value = current.value;
250
291
  this.setCheckedClasses();
@@ -260,6 +301,60 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
260
301
  buttons[next].classList.add('segment-button-after-checked');
261
302
  }
262
303
  }
304
+ getSegmentView() {
305
+ const buttons = this.getButtons();
306
+ // Get the first button with a contentId
307
+ const firstContentId = buttons.find((button) => button.contentId);
308
+ // Get the segment content with an id matching the button's contentId
309
+ const segmentContent = document.querySelector(`ion-segment-content[id="${firstContentId === null || firstContentId === void 0 ? void 0 : firstContentId.contentId}"]`);
310
+ // Return the segment view for that matching segment content
311
+ return segmentContent === null || segmentContent === void 0 ? void 0 : segmentContent.closest('ion-segment-view');
312
+ }
313
+ handleSegmentViewScroll(ev) {
314
+ const { scrollRatio, isManualScroll } = ev.detail;
315
+ if (!isManualScroll) {
316
+ return;
317
+ }
318
+ const dispatchedFrom = ev.target;
319
+ const segmentViewEl = this.segmentViewEl;
320
+ const segmentEl = this.el;
321
+ // Only update the indicator if the event was dispatched from the correct segment view
322
+ if (ev.composedPath().includes(segmentViewEl) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(segmentEl))) {
323
+ const buttons = this.getButtons();
324
+ // If no buttons are found or there is no value set then do nothing
325
+ if (!buttons.length)
326
+ return;
327
+ const index = buttons.findIndex((button) => button.value === this.value);
328
+ const current = buttons[index];
329
+ const nextIndex = Math.round(scrollRatio * (buttons.length - 1));
330
+ if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) {
331
+ this.lastNextIndex = nextIndex;
332
+ this.triggerScrollOnValueChange = false;
333
+ this.checkButton(current, buttons[nextIndex]);
334
+ this.emitValueChange();
335
+ }
336
+ }
337
+ }
338
+ /**
339
+ * Finds the related segment view and sets its current content
340
+ * based on the selected segment button. This method
341
+ * should be called on initial load of the segment,
342
+ * after the gesture is completed (if dragging between segments)
343
+ * and when a segment button is clicked directly.
344
+ */
345
+ updateSegmentView(smoothScroll = true) {
346
+ const buttons = this.getButtons();
347
+ const button = buttons.find((btn) => btn.value === this.value);
348
+ // If the button does not have a contentId then there is
349
+ // no associated segment view to update
350
+ if (!(button === null || button === void 0 ? void 0 : button.contentId)) {
351
+ return;
352
+ }
353
+ const segmentView = this.segmentViewEl;
354
+ if (segmentView) {
355
+ segmentView.setContent(button.contentId, smoothScroll);
356
+ }
357
+ }
263
358
  scrollActiveButtonIntoView(smoothScroll = true) {
264
359
  const { scrollable, value, el } = this;
265
360
  if (scrollable) {
@@ -442,14 +537,14 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
442
537
  }
443
538
  render() {
444
539
  const mode = getIonMode(this);
445
- return (h(Host, { key: 'f1f7103b4c298e037df850ac809a1a7c6e9987a7', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
540
+ return (h(Host, { key: '66bd7a565ba73540b3bbe56dd23b95e59bcef9bc', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
446
541
  [mode]: true,
447
542
  'in-toolbar': hostContext('ion-toolbar', this.el),
448
543
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
449
544
  'segment-activated': this.activated,
450
545
  'segment-disabled': this.disabled,
451
546
  'segment-scrollable': this.scrollable,
452
- }) }, h("slot", { key: '6efdb318b13da8d21687084aa0761728fdf12579', onSlotchange: this.onSlottedItemsChange })));
547
+ }) }, h("slot", { key: '782c521b1a33729b8eab1c4b879bc3f2ff48ae1b', onSlotchange: this.onSlottedItemsChange })));
453
548
  }
454
549
  get el() { return this; }
455
550
  static get watchers() { return {
@@ -470,7 +565,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
470
565
  "value": [1032],
471
566
  "selectOnFocus": [4, "select-on-focus"],
472
567
  "activated": [32]
473
- }, [[0, "keydown", "onKeyDown"]], {
568
+ }, [[16, "ionSegmentViewScroll", "handleSegmentViewScroll"], [0, "keydown", "onKeyDown"]], {
474
569
  "color": ["colorChanged"],
475
570
  "swipeGesture": ["swipeGestureChanged"],
476
571
  "value": ["valueChanged"],
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../dist/types/components";
2
+
3
+ interface IonSelectModal extends Components.IonSelectModal, HTMLElement {}
4
+ export const IonSelectModal: {
5
+ prototype: IonSelectModal;
6
+ new (): IonSelectModal;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { S as SelectModal, d as defineCustomElement$1 } from './select-modal.js';
5
+
6
+ const IonSelectModal = SelectModal;
7
+ const defineCustomElement = defineCustomElement$1;
8
+
9
+ export { IonSelectModal, defineCustomElement };
@@ -17,7 +17,7 @@ const SelectOption = /*@__PURE__*/ proxyCustomElement(class SelectOption extends
17
17
  this.value = undefined;
18
18
  }
19
19
  render() {
20
- return h(Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: getIonMode(this) });
20
+ return h(Host, { key: '2e6fa159464f04f6d8720f960141f67918bc7534', role: "option", id: this.inputId, class: getIonMode(this) });
21
21
  }
22
22
  get el() { return this; }
23
23
  static get style() { return IonSelectOptionStyle0; }
@@ -3,27 +3,35 @@
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host, forceUpdate } from '@stencil/core/internal/client';
5
5
  import { c as createNotchController } from './notch-controller.js';
6
- import { i as isOptionSelected, c as compareOptions, d as defineCustomElement$5 } from './radio.js';
6
+ import { i as isOptionSelected, c as compareOptions, d as defineCustomElement$8 } from './radio.js';
7
7
  import { d as inheritAttributes, f as focusVisibleElement, e as renderHiddenInput } from './helpers.js';
8
- import { c as popoverController, b as actionSheetController, a as alertController } from './overlays.js';
8
+ import { c as popoverController, b as actionSheetController, a as alertController, m as modalController } from './overlays.js';
9
9
  import { i as isRTL } from './dir.js';
10
10
  import { h as hostContext, c as createColorClasses } from './theme.js';
11
11
  import { w as watchForOptions } from './watch-options.js';
12
12
  import { v as chevronExpand, h as caretDownSharp } from './index7.js';
13
13
  import { b as getIonMode } from './ionic-global.js';
14
- import { d as defineCustomElement$f } from './action-sheet.js';
15
- import { d as defineCustomElement$e } from './alert.js';
16
- import { d as defineCustomElement$d } from './backdrop.js';
17
- import { d as defineCustomElement$c } from './checkbox.js';
18
- import { d as defineCustomElement$b } from './icon.js';
19
- import { d as defineCustomElement$a } from './item.js';
20
- import { d as defineCustomElement$9 } from './label.js';
21
- import { d as defineCustomElement$8 } from './list.js';
22
- import { d as defineCustomElement$7 } from './list-header.js';
23
- import { d as defineCustomElement$6 } from './popover.js';
24
- import { d as defineCustomElement$4 } from './radio-group.js';
25
- import { d as defineCustomElement$3 } from './ripple-effect.js';
26
- import { d as defineCustomElement$2 } from './select-popover.js';
14
+ import { d as defineCustomElement$n } from './action-sheet.js';
15
+ import { d as defineCustomElement$m } from './alert.js';
16
+ import { d as defineCustomElement$l } from './backdrop.js';
17
+ import { d as defineCustomElement$k } from './button.js';
18
+ import { d as defineCustomElement$j } from './buttons.js';
19
+ import { d as defineCustomElement$i } from './checkbox.js';
20
+ import { d as defineCustomElement$h } from './content.js';
21
+ import { d as defineCustomElement$g } from './header.js';
22
+ import { d as defineCustomElement$f } from './icon.js';
23
+ import { d as defineCustomElement$e } from './item.js';
24
+ import { d as defineCustomElement$d } from './label.js';
25
+ import { d as defineCustomElement$c } from './list.js';
26
+ import { d as defineCustomElement$b } from './list-header.js';
27
+ import { d as defineCustomElement$a } from './modal.js';
28
+ import { d as defineCustomElement$9 } from './popover.js';
29
+ import { d as defineCustomElement$7 } from './radio-group.js';
30
+ import { d as defineCustomElement$6 } from './ripple-effect.js';
31
+ import { d as defineCustomElement$5 } from './select-modal.js';
32
+ import { d as defineCustomElement$4 } from './select-popover.js';
33
+ import { d as defineCustomElement$3 } from './title.js';
34
+ import { d as defineCustomElement$2 } from './toolbar.js';
27
35
 
28
36
  const selectIosCss = ":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}";
29
37
  const IonSelectIosStyle0 = selectIosCss;
@@ -176,13 +184,12 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
176
184
  this.setFocus();
177
185
  });
178
186
  await overlay.present();
179
- // focus selected option for popovers
180
- if (this.interface === 'popover') {
181
- const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
187
+ // focus selected option for popovers and modals
188
+ if (this.interface === 'popover' || this.interface === 'modal') {
189
+ const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
182
190
  if (indexOfSelected > -1) {
183
191
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
184
192
  if (selectedItem) {
185
- focusVisibleElement(selectedItem);
186
193
  /**
187
194
  * Browsers such as Firefox do not
188
195
  * correctly delegate focus when manually
@@ -196,8 +203,11 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
196
203
  */
197
204
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
198
205
  if (interactiveEl) {
199
- interactiveEl.focus();
206
+ // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
207
+ // and removing `ion-focused` style
208
+ interactiveEl.setFocus();
200
209
  }
210
+ focusVisibleElement(selectedItem);
201
211
  }
202
212
  }
203
213
  else {
@@ -206,11 +216,14 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
206
216
  */
207
217
  const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
208
218
  if (firstEnabledOption) {
209
- focusVisibleElement(firstEnabledOption.closest('ion-item'));
210
219
  /**
211
220
  * Focus the option for the same reason as we do above.
221
+ *
222
+ * Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
223
+ * and removing `ion-focused` style
212
224
  */
213
- firstEnabledOption.focus();
225
+ firstEnabledOption.setFocus();
226
+ focusVisibleElement(firstEnabledOption.closest('ion-item'));
214
227
  }
215
228
  }
216
229
  }
@@ -232,6 +245,9 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
232
245
  if (selectInterface === 'popover') {
233
246
  return this.openPopover(ev);
234
247
  }
248
+ if (selectInterface === 'modal') {
249
+ return this.openModal();
250
+ }
235
251
  return this.openAlert();
236
252
  }
237
253
  updateOverlayOptions() {
@@ -248,7 +264,13 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
248
264
  case 'popover':
249
265
  const popover = overlay.querySelector('ion-select-popover');
250
266
  if (popover) {
251
- popover.options = this.createPopoverOptions(childOpts, value);
267
+ popover.options = this.createOverlaySelectOptions(childOpts, value);
268
+ }
269
+ break;
270
+ case 'modal':
271
+ const modal = overlay.querySelector('ion-select-modal');
272
+ if (modal) {
273
+ modal.options = this.createOverlaySelectOptions(childOpts, value);
252
274
  }
253
275
  break;
254
276
  case 'alert':
@@ -303,7 +325,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
303
325
  });
304
326
  return alertInputs;
305
327
  }
306
- createPopoverOptions(data, selectValue) {
328
+ createOverlaySelectOptions(data, selectValue) {
307
329
  const popoverOptions = data.map((option) => {
308
330
  const value = getOptionValue(option);
309
331
  // Remove hydrated before copying over classes
@@ -363,7 +385,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
363
385
  message: interfaceOptions.message,
364
386
  multiple,
365
387
  value,
366
- options: this.createPopoverOptions(this.childOpts, value),
388
+ options: this.createOverlaySelectOptions(this.childOpts, value),
367
389
  } });
368
390
  return popoverController.create(popoverOpts);
369
391
  }
@@ -398,6 +420,17 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
398
420
  ] });
399
421
  return alertController.create(alertOpts);
400
422
  }
423
+ openModal() {
424
+ const { multiple, value, interfaceOptions } = this;
425
+ const mode = getIonMode(this);
426
+ const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
427
+ header: interfaceOptions.header,
428
+ multiple,
429
+ value,
430
+ options: this.createOverlaySelectOptions(this.childOpts, value),
431
+ } });
432
+ return modalController.create(modalOpts);
433
+ }
401
434
  /**
402
435
  * Close the select interface.
403
436
  */
@@ -605,7 +638,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
605
638
  * TODO(FW-5592): Remove hasStartEndSlots condition
606
639
  */
607
640
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
608
- return (h(Host, { key: '73c571c1f8468e1c3f4fe02fbbb33ba9cbc8e989', onClick: this.onClick, class: createColorClasses(this.color, {
641
+ return (h(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses(this.color, {
609
642
  [mode]: true,
610
643
  'in-item': inItem,
611
644
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -621,7 +654,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
621
654
  [`select-justify-${justify}`]: justifyEnabled,
622
655
  [`select-shape-${shape}`]: shape !== undefined,
623
656
  [`select-label-placement-${labelPlacement}`]: true,
624
- }) }, h("label", { key: '2b08538cba0b9f747541d57ac18fb6a1ea658878', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '33f54373bcb02c72a9d0af2efffebc27ee2c69fe', class: "select-wrapper-inner" }, h("slot", { key: 'd1c93aec99dc1cd6410f93309cef615fe04b541b', name: "start" }), h("div", { key: '493d1a3cad9565516f855bef75685b020785ffd3', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '353a3ee5635f8a8f3be411efd6caef6c2ad74a89', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'fd5f85555db02affe954f9f4f2876ac8fe676234', class: "select-highlight" }))));
657
+ }) }, h("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, h("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), h("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
625
658
  }
626
659
  get el() { return this; }
627
660
  static get watchers() { return {
@@ -701,7 +734,7 @@ function defineCustomElement$1() {
701
734
  if (typeof customElements === "undefined") {
702
735
  return;
703
736
  }
704
- const components = ["ion-select", "ion-action-sheet", "ion-alert", "ion-backdrop", "ion-checkbox", "ion-icon", "ion-item", "ion-label", "ion-list", "ion-list-header", "ion-popover", "ion-radio", "ion-radio-group", "ion-ripple-effect", "ion-select-popover"];
737
+ const components = ["ion-select", "ion-action-sheet", "ion-alert", "ion-backdrop", "ion-button", "ion-buttons", "ion-checkbox", "ion-content", "ion-header", "ion-icon", "ion-item", "ion-label", "ion-list", "ion-list-header", "ion-modal", "ion-popover", "ion-radio", "ion-radio-group", "ion-ripple-effect", "ion-select-modal", "ion-select-popover", "ion-title", "ion-toolbar"];
705
738
  components.forEach(tagName => { switch (tagName) {
706
739
  case "ion-select":
707
740
  if (!customElements.get(tagName)) {
@@ -710,70 +743,110 @@ function defineCustomElement$1() {
710
743
  break;
711
744
  case "ion-action-sheet":
712
745
  if (!customElements.get(tagName)) {
713
- defineCustomElement$f();
746
+ defineCustomElement$n();
714
747
  }
715
748
  break;
716
749
  case "ion-alert":
717
750
  if (!customElements.get(tagName)) {
718
- defineCustomElement$e();
751
+ defineCustomElement$m();
719
752
  }
720
753
  break;
721
754
  case "ion-backdrop":
722
755
  if (!customElements.get(tagName)) {
723
- defineCustomElement$d();
756
+ defineCustomElement$l();
757
+ }
758
+ break;
759
+ case "ion-button":
760
+ if (!customElements.get(tagName)) {
761
+ defineCustomElement$k();
762
+ }
763
+ break;
764
+ case "ion-buttons":
765
+ if (!customElements.get(tagName)) {
766
+ defineCustomElement$j();
724
767
  }
725
768
  break;
726
769
  case "ion-checkbox":
727
770
  if (!customElements.get(tagName)) {
728
- defineCustomElement$c();
771
+ defineCustomElement$i();
772
+ }
773
+ break;
774
+ case "ion-content":
775
+ if (!customElements.get(tagName)) {
776
+ defineCustomElement$h();
777
+ }
778
+ break;
779
+ case "ion-header":
780
+ if (!customElements.get(tagName)) {
781
+ defineCustomElement$g();
729
782
  }
730
783
  break;
731
784
  case "ion-icon":
732
785
  if (!customElements.get(tagName)) {
733
- defineCustomElement$b();
786
+ defineCustomElement$f();
734
787
  }
735
788
  break;
736
789
  case "ion-item":
737
790
  if (!customElements.get(tagName)) {
738
- defineCustomElement$a();
791
+ defineCustomElement$e();
739
792
  }
740
793
  break;
741
794
  case "ion-label":
742
795
  if (!customElements.get(tagName)) {
743
- defineCustomElement$9();
796
+ defineCustomElement$d();
744
797
  }
745
798
  break;
746
799
  case "ion-list":
747
800
  if (!customElements.get(tagName)) {
748
- defineCustomElement$8();
801
+ defineCustomElement$c();
749
802
  }
750
803
  break;
751
804
  case "ion-list-header":
752
805
  if (!customElements.get(tagName)) {
753
- defineCustomElement$7();
806
+ defineCustomElement$b();
807
+ }
808
+ break;
809
+ case "ion-modal":
810
+ if (!customElements.get(tagName)) {
811
+ defineCustomElement$a();
754
812
  }
755
813
  break;
756
814
  case "ion-popover":
757
815
  if (!customElements.get(tagName)) {
758
- defineCustomElement$6();
816
+ defineCustomElement$9();
759
817
  }
760
818
  break;
761
819
  case "ion-radio":
762
820
  if (!customElements.get(tagName)) {
763
- defineCustomElement$5();
821
+ defineCustomElement$8();
764
822
  }
765
823
  break;
766
824
  case "ion-radio-group":
767
825
  if (!customElements.get(tagName)) {
768
- defineCustomElement$4();
826
+ defineCustomElement$7();
769
827
  }
770
828
  break;
771
829
  case "ion-ripple-effect":
772
830
  if (!customElements.get(tagName)) {
773
- defineCustomElement$3();
831
+ defineCustomElement$6();
832
+ }
833
+ break;
834
+ case "ion-select-modal":
835
+ if (!customElements.get(tagName)) {
836
+ defineCustomElement$5();
774
837
  }
775
838
  break;
776
839
  case "ion-select-popover":
840
+ if (!customElements.get(tagName)) {
841
+ defineCustomElement$4();
842
+ }
843
+ break;
844
+ case "ion-title":
845
+ if (!customElements.get(tagName)) {
846
+ defineCustomElement$3();
847
+ }
848
+ break;
849
+ case "ion-toolbar":
777
850
  if (!customElements.get(tagName)) {
778
851
  defineCustomElement$2();
779
852
  }
@@ -32,11 +32,11 @@ const SkeletonText = /*@__PURE__*/ proxyCustomElement(class SkeletonText extends
32
32
  const animated = this.animated && config.getBoolean('animated', true);
33
33
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
34
34
  const mode = getIonMode(this);
35
- return (h(Host, { key: '1a3e78e9a6f740d609d1f0b7a16cb6eff4a2d617', class: {
35
+ return (h(Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
36
36
  [mode]: true,
37
37
  'skeleton-text-animated': animated,
38
38
  'in-media': inMedia,
39
- } }, h("span", { key: 'be3eabe196ec6e8ec19857375ba30f4c8aa58e7f' }, "\u00A0")));
39
+ } }, h("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
40
40
  }
41
41
  get el() { return this; }
42
42
  static get style() { return IonSkeletonTextStyle0; }
@@ -129,12 +129,12 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
129
129
  }
130
130
  render() {
131
131
  const mode = getIonMode(this);
132
- return (h(Host, { key: 'd54c356cd4bff7e55325160882dea8249f47f388', class: {
132
+ return (h(Host, { key: '1ca0b0299d03605bb358112ca56cbafbe58f00f5', class: {
133
133
  [mode]: true,
134
134
  // Used internally for styling
135
135
  [`split-pane-${mode}`]: true,
136
136
  'split-pane-visible': this.visible,
137
- } }, h("slot", { key: 'af62690d0fd686cfbd29d888c79eda9001f13e2f' })));
137
+ } }, h("slot", { key: 'abe231361727ae7fc63edd592a4490caac1909fb' })));
138
138
  }
139
139
  get el() { return this; }
140
140
  static get watchers() { return {
@@ -60,11 +60,11 @@ const TabBar = /*@__PURE__*/ proxyCustomElement(class TabBar extends HTMLElement
60
60
  const { color, translucent, keyboardVisible } = this;
61
61
  const mode = getIonMode(this);
62
62
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
63
- return (h(Host, { key: '3a8595dd83f89e8319471a7a7f9f64b2565b384c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
63
+ return (h(Host, { key: 'a87fd2ea5df053705a37ea7ffec043e75c4a9907', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
64
64
  [mode]: true,
65
65
  'tab-bar-translucent': translucent,
66
66
  'tab-bar-hidden': shouldHide,
67
- }) }, h("slot", { key: '8b65eceb922f6abfa15f41046261586fb94b981f' })));
67
+ }) }, h("slot", { key: '81a6223299b6cab29d7ddced590e9152e2b3ded0' })));
68
68
  }
69
69
  get el() { return this; }
70
70
  static get watchers() { return {
@@ -76,7 +76,7 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
76
76
  rel,
77
77
  target,
78
78
  };
79
- return (h(Host, { key: '4b528ce31f67e10ad849e0c99bd034bba675c227', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
79
+ return (h(Host, { key: '5976c45943ea7ea8e7c1a85fc9996de421439f08', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
80
80
  [mode]: true,
81
81
  'tab-selected': selected,
82
82
  'tab-disabled': disabled,
@@ -88,7 +88,7 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
88
88
  'ion-activatable': true,
89
89
  'ion-selectable': true,
90
90
  'ion-focusable': true,
91
- } }, h("a", Object.assign({ key: '0da8784b1b243ffaaaf04dd7adb55d6881ed0c08' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '2c628e8f1ebc129f84876c01530468cb97d8bf3a', class: "button-inner" }, h("slot", { key: '8052a171d197a7de1a7eb12b091c35f73ae1ee21' })), mode === 'md' && h("ion-ripple-effect", { key: '4186bdb5ed045ec16f495a14fa30ac864c576227', type: "unbounded" }))));
91
+ } }, h("a", Object.assign({ key: '1db09d861b67ff292018fb4b0dc7b85bd4677eb8' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '4381eafcb27e8c7bb0d86d4f115ceb0caf03b9b4', class: "button-inner" }, h("slot", { key: '1981135f6fbb88376c1bd923c55c70fe8b5c5159' })), mode === 'md' && h("ion-ripple-effect", { key: '0509bc7155d055d1ed710600e9cf4df135881491', type: "unbounded" }))));
92
92
  }
93
93
  get el() { return this; }
94
94
  static get style() { return {