@elurjs/ionic 2.0.7

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 (382) hide show
  1. package/CHANGELOG.md +272 -0
  2. package/MIGRATION.md +221 -0
  3. package/README.md +695 -0
  4. package/dist/lib/IonRouterOutlet.d.ts +134 -0
  5. package/dist/lib/__tests__/IonRouterOutlet.test.d.ts +1 -0
  6. package/dist/lib/__tests__/bundles.test.d.ts +1 -0
  7. package/dist/lib/__tests__/cache-policy.test.d.ts +1 -0
  8. package/dist/lib/__tests__/capacitor.test.d.ts +1 -0
  9. package/dist/lib/__tests__/components.test.d.ts +1 -0
  10. package/dist/lib/__tests__/lifecycle.test.d.ts +1 -0
  11. package/dist/lib/__tests__/mocks/ionic.d.ts +61 -0
  12. package/dist/lib/__tests__/navigation.test.d.ts +1 -0
  13. package/dist/lib/__tests__/overlays.test.d.ts +1 -0
  14. package/dist/lib/__tests__/page-state.test.d.ts +1 -0
  15. package/dist/lib/__tests__/phase0-bugs.test.d.ts +1 -0
  16. package/dist/lib/__tests__/setup.d.ts +1 -0
  17. package/dist/lib/__tests__/setup.test.d.ts +1 -0
  18. package/dist/lib/__tests__/tabs.test.d.ts +1 -0
  19. package/dist/lib/__tests__/vite-plugin.test.d.ts +1 -0
  20. package/dist/lib/bundles/all.cjs +2 -0
  21. package/dist/lib/bundles/all.cjs.map +1 -0
  22. package/dist/lib/bundles/all.d.ts +16 -0
  23. package/dist/lib/bundles/all.js +21 -0
  24. package/dist/lib/bundles/all.js.map +1 -0
  25. package/dist/lib/bundles/buttons.cjs +2 -0
  26. package/dist/lib/bundles/buttons.cjs.map +1 -0
  27. package/dist/lib/bundles/buttons.d.ts +7 -0
  28. package/dist/lib/bundles/buttons.js +17 -0
  29. package/dist/lib/bundles/buttons.js.map +1 -0
  30. package/dist/lib/bundles/feedback.cjs +2 -0
  31. package/dist/lib/bundles/feedback.cjs.map +1 -0
  32. package/dist/lib/bundles/feedback.d.ts +8 -0
  33. package/dist/lib/bundles/feedback.js +19 -0
  34. package/dist/lib/bundles/feedback.js.map +1 -0
  35. package/dist/lib/bundles/forms.cjs +2 -0
  36. package/dist/lib/bundles/forms.cjs.map +1 -0
  37. package/dist/lib/bundles/forms.d.ts +11 -0
  38. package/dist/lib/bundles/forms.js +47 -0
  39. package/dist/lib/bundles/forms.js.map +1 -0
  40. package/dist/lib/bundles/layout.cjs +2 -0
  41. package/dist/lib/bundles/layout.cjs.map +1 -0
  42. package/dist/lib/bundles/layout.d.ts +9 -0
  43. package/dist/lib/bundles/layout.js +33 -0
  44. package/dist/lib/bundles/layout.js.map +1 -0
  45. package/dist/lib/bundles/lists.cjs +2 -0
  46. package/dist/lib/bundles/lists.cjs.map +1 -0
  47. package/dist/lib/bundles/lists.d.ts +15 -0
  48. package/dist/lib/bundles/lists.js +65 -0
  49. package/dist/lib/bundles/lists.js.map +1 -0
  50. package/dist/lib/bundles/navigation.cjs +2 -0
  51. package/dist/lib/bundles/navigation.cjs.map +1 -0
  52. package/dist/lib/bundles/navigation.d.ts +9 -0
  53. package/dist/lib/bundles/navigation.js +29 -0
  54. package/dist/lib/bundles/navigation.js.map +1 -0
  55. package/dist/lib/bundles/overlays.cjs +2 -0
  56. package/dist/lib/bundles/overlays.cjs.map +1 -0
  57. package/dist/lib/bundles/overlays.d.ts +9 -0
  58. package/dist/lib/bundles/overlays.js +25 -0
  59. package/dist/lib/bundles/overlays.js.map +1 -0
  60. package/dist/lib/capacitor.cjs +2 -0
  61. package/dist/lib/capacitor.cjs.map +1 -0
  62. package/dist/lib/capacitor.d.ts +217 -0
  63. package/dist/lib/capacitor.js +223 -0
  64. package/dist/lib/capacitor.js.map +1 -0
  65. package/dist/lib/components/accordion-group.cjs +1 -0
  66. package/dist/lib/components/accordion-group.d.ts +11 -0
  67. package/dist/lib/components/accordion-group.js +2 -0
  68. package/dist/lib/components/accordion.cjs +1 -0
  69. package/dist/lib/components/accordion.d.ts +11 -0
  70. package/dist/lib/components/accordion.js +2 -0
  71. package/dist/lib/components/action-sheet.cjs +1 -0
  72. package/dist/lib/components/action-sheet.d.ts +11 -0
  73. package/dist/lib/components/action-sheet.js +2 -0
  74. package/dist/lib/components/alert.cjs +1 -0
  75. package/dist/lib/components/alert.d.ts +11 -0
  76. package/dist/lib/components/alert.js +2 -0
  77. package/dist/lib/components/avatar.cjs +1 -0
  78. package/dist/lib/components/avatar.d.ts +11 -0
  79. package/dist/lib/components/avatar.js +2 -0
  80. package/dist/lib/components/backdrop.cjs +1 -0
  81. package/dist/lib/components/backdrop.d.ts +11 -0
  82. package/dist/lib/components/backdrop.js +2 -0
  83. package/dist/lib/components/badge.cjs +1 -0
  84. package/dist/lib/components/badge.d.ts +11 -0
  85. package/dist/lib/components/badge.js +2 -0
  86. package/dist/lib/components/breadcrumb.cjs +1 -0
  87. package/dist/lib/components/breadcrumb.d.ts +11 -0
  88. package/dist/lib/components/breadcrumb.js +2 -0
  89. package/dist/lib/components/breadcrumbs.cjs +1 -0
  90. package/dist/lib/components/breadcrumbs.d.ts +11 -0
  91. package/dist/lib/components/breadcrumbs.js +2 -0
  92. package/dist/lib/components/button.cjs +1 -0
  93. package/dist/lib/components/button.d.ts +11 -0
  94. package/dist/lib/components/button.js +2 -0
  95. package/dist/lib/components/buttons.cjs +1 -0
  96. package/dist/lib/components/buttons.d.ts +11 -0
  97. package/dist/lib/components/buttons.js +2 -0
  98. package/dist/lib/components/card-content.cjs +1 -0
  99. package/dist/lib/components/card-content.d.ts +11 -0
  100. package/dist/lib/components/card-content.js +2 -0
  101. package/dist/lib/components/card-header.cjs +1 -0
  102. package/dist/lib/components/card-header.d.ts +11 -0
  103. package/dist/lib/components/card-header.js +2 -0
  104. package/dist/lib/components/card-subtitle.cjs +1 -0
  105. package/dist/lib/components/card-subtitle.d.ts +11 -0
  106. package/dist/lib/components/card-subtitle.js +2 -0
  107. package/dist/lib/components/card-title.cjs +1 -0
  108. package/dist/lib/components/card-title.d.ts +11 -0
  109. package/dist/lib/components/card-title.js +2 -0
  110. package/dist/lib/components/card.cjs +1 -0
  111. package/dist/lib/components/card.d.ts +11 -0
  112. package/dist/lib/components/card.js +2 -0
  113. package/dist/lib/components/checkbox.cjs +1 -0
  114. package/dist/lib/components/checkbox.d.ts +11 -0
  115. package/dist/lib/components/checkbox.js +2 -0
  116. package/dist/lib/components/chip.cjs +1 -0
  117. package/dist/lib/components/chip.d.ts +11 -0
  118. package/dist/lib/components/chip.js +2 -0
  119. package/dist/lib/components/col.cjs +1 -0
  120. package/dist/lib/components/col.d.ts +11 -0
  121. package/dist/lib/components/col.js +2 -0
  122. package/dist/lib/components/content.cjs +1 -0
  123. package/dist/lib/components/content.d.ts +11 -0
  124. package/dist/lib/components/content.js +2 -0
  125. package/dist/lib/components/datetime-button.cjs +1 -0
  126. package/dist/lib/components/datetime-button.d.ts +11 -0
  127. package/dist/lib/components/datetime-button.js +2 -0
  128. package/dist/lib/components/datetime.cjs +1 -0
  129. package/dist/lib/components/datetime.d.ts +11 -0
  130. package/dist/lib/components/datetime.js +2 -0
  131. package/dist/lib/components/fab-button.cjs +1 -0
  132. package/dist/lib/components/fab-button.d.ts +11 -0
  133. package/dist/lib/components/fab-button.js +2 -0
  134. package/dist/lib/components/fab-list.cjs +1 -0
  135. package/dist/lib/components/fab-list.d.ts +11 -0
  136. package/dist/lib/components/fab-list.js +2 -0
  137. package/dist/lib/components/fab.cjs +1 -0
  138. package/dist/lib/components/fab.d.ts +11 -0
  139. package/dist/lib/components/fab.js +2 -0
  140. package/dist/lib/components/footer.cjs +1 -0
  141. package/dist/lib/components/footer.d.ts +11 -0
  142. package/dist/lib/components/footer.js +2 -0
  143. package/dist/lib/components/grid.cjs +1 -0
  144. package/dist/lib/components/grid.d.ts +11 -0
  145. package/dist/lib/components/grid.js +2 -0
  146. package/dist/lib/components/header.cjs +1 -0
  147. package/dist/lib/components/header.d.ts +11 -0
  148. package/dist/lib/components/header.js +2 -0
  149. package/dist/lib/components/img.cjs +1 -0
  150. package/dist/lib/components/img.d.ts +11 -0
  151. package/dist/lib/components/img.js +2 -0
  152. package/dist/lib/components/infinite-scroll-content.cjs +1 -0
  153. package/dist/lib/components/infinite-scroll-content.d.ts +11 -0
  154. package/dist/lib/components/infinite-scroll-content.js +2 -0
  155. package/dist/lib/components/infinite-scroll.cjs +1 -0
  156. package/dist/lib/components/infinite-scroll.d.ts +11 -0
  157. package/dist/lib/components/infinite-scroll.js +2 -0
  158. package/dist/lib/components/input-otp.cjs +1 -0
  159. package/dist/lib/components/input-otp.d.ts +11 -0
  160. package/dist/lib/components/input-otp.js +2 -0
  161. package/dist/lib/components/input-password-toggle.cjs +1 -0
  162. package/dist/lib/components/input-password-toggle.d.ts +11 -0
  163. package/dist/lib/components/input-password-toggle.js +2 -0
  164. package/dist/lib/components/input.cjs +1 -0
  165. package/dist/lib/components/input.d.ts +11 -0
  166. package/dist/lib/components/input.js +2 -0
  167. package/dist/lib/components/item-divider.cjs +1 -0
  168. package/dist/lib/components/item-divider.d.ts +11 -0
  169. package/dist/lib/components/item-divider.js +2 -0
  170. package/dist/lib/components/item-group.cjs +1 -0
  171. package/dist/lib/components/item-group.d.ts +11 -0
  172. package/dist/lib/components/item-group.js +2 -0
  173. package/dist/lib/components/item-option.cjs +1 -0
  174. package/dist/lib/components/item-option.d.ts +11 -0
  175. package/dist/lib/components/item-option.js +2 -0
  176. package/dist/lib/components/item-options.cjs +1 -0
  177. package/dist/lib/components/item-options.d.ts +11 -0
  178. package/dist/lib/components/item-options.js +2 -0
  179. package/dist/lib/components/item-sliding.cjs +1 -0
  180. package/dist/lib/components/item-sliding.d.ts +11 -0
  181. package/dist/lib/components/item-sliding.js +2 -0
  182. package/dist/lib/components/item.cjs +1 -0
  183. package/dist/lib/components/item.d.ts +11 -0
  184. package/dist/lib/components/item.js +2 -0
  185. package/dist/lib/components/label.cjs +1 -0
  186. package/dist/lib/components/label.d.ts +11 -0
  187. package/dist/lib/components/label.js +2 -0
  188. package/dist/lib/components/list-header.cjs +1 -0
  189. package/dist/lib/components/list-header.d.ts +11 -0
  190. package/dist/lib/components/list-header.js +2 -0
  191. package/dist/lib/components/list.cjs +1 -0
  192. package/dist/lib/components/list.d.ts +11 -0
  193. package/dist/lib/components/list.js +2 -0
  194. package/dist/lib/components/loading.cjs +1 -0
  195. package/dist/lib/components/loading.d.ts +11 -0
  196. package/dist/lib/components/loading.js +2 -0
  197. package/dist/lib/components/manifest.cjs +2 -0
  198. package/dist/lib/components/manifest.cjs.map +1 -0
  199. package/dist/lib/components/manifest.d.ts +43 -0
  200. package/dist/lib/components/manifest.js +647 -0
  201. package/dist/lib/components/manifest.js.map +1 -0
  202. package/dist/lib/components/menu-button.cjs +1 -0
  203. package/dist/lib/components/menu-button.d.ts +11 -0
  204. package/dist/lib/components/menu-button.js +2 -0
  205. package/dist/lib/components/menu-toggle.cjs +1 -0
  206. package/dist/lib/components/menu-toggle.d.ts +11 -0
  207. package/dist/lib/components/menu-toggle.js +2 -0
  208. package/dist/lib/components/menu.cjs +1 -0
  209. package/dist/lib/components/menu.d.ts +11 -0
  210. package/dist/lib/components/menu.js +2 -0
  211. package/dist/lib/components/modal.cjs +1 -0
  212. package/dist/lib/components/modal.d.ts +11 -0
  213. package/dist/lib/components/modal.js +2 -0
  214. package/dist/lib/components/nav-link.cjs +1 -0
  215. package/dist/lib/components/nav-link.d.ts +11 -0
  216. package/dist/lib/components/nav-link.js +2 -0
  217. package/dist/lib/components/nav.cjs +1 -0
  218. package/dist/lib/components/nav.d.ts +11 -0
  219. package/dist/lib/components/nav.js +2 -0
  220. package/dist/lib/components/note.cjs +1 -0
  221. package/dist/lib/components/note.d.ts +11 -0
  222. package/dist/lib/components/note.js +2 -0
  223. package/dist/lib/components/picker-column-option.cjs +1 -0
  224. package/dist/lib/components/picker-column-option.d.ts +11 -0
  225. package/dist/lib/components/picker-column-option.js +2 -0
  226. package/dist/lib/components/picker-column.cjs +1 -0
  227. package/dist/lib/components/picker-column.d.ts +11 -0
  228. package/dist/lib/components/picker-column.js +2 -0
  229. package/dist/lib/components/picker.cjs +1 -0
  230. package/dist/lib/components/picker.d.ts +11 -0
  231. package/dist/lib/components/picker.js +2 -0
  232. package/dist/lib/components/popover.cjs +1 -0
  233. package/dist/lib/components/popover.d.ts +11 -0
  234. package/dist/lib/components/popover.js +2 -0
  235. package/dist/lib/components/progress-bar.cjs +1 -0
  236. package/dist/lib/components/progress-bar.d.ts +11 -0
  237. package/dist/lib/components/progress-bar.js +2 -0
  238. package/dist/lib/components/radio-group.cjs +1 -0
  239. package/dist/lib/components/radio-group.d.ts +11 -0
  240. package/dist/lib/components/radio-group.js +2 -0
  241. package/dist/lib/components/radio.cjs +1 -0
  242. package/dist/lib/components/radio.d.ts +11 -0
  243. package/dist/lib/components/radio.js +2 -0
  244. package/dist/lib/components/range.cjs +1 -0
  245. package/dist/lib/components/range.d.ts +11 -0
  246. package/dist/lib/components/range.js +2 -0
  247. package/dist/lib/components/refresher-content.cjs +1 -0
  248. package/dist/lib/components/refresher-content.d.ts +11 -0
  249. package/dist/lib/components/refresher-content.js +2 -0
  250. package/dist/lib/components/refresher.cjs +1 -0
  251. package/dist/lib/components/refresher.d.ts +11 -0
  252. package/dist/lib/components/refresher.js +2 -0
  253. package/dist/lib/components/reorder-group.cjs +1 -0
  254. package/dist/lib/components/reorder-group.d.ts +11 -0
  255. package/dist/lib/components/reorder-group.js +2 -0
  256. package/dist/lib/components/reorder.cjs +1 -0
  257. package/dist/lib/components/reorder.d.ts +11 -0
  258. package/dist/lib/components/reorder.js +2 -0
  259. package/dist/lib/components/ripple-effect.cjs +1 -0
  260. package/dist/lib/components/ripple-effect.d.ts +11 -0
  261. package/dist/lib/components/ripple-effect.js +2 -0
  262. package/dist/lib/components/router-link.cjs +1 -0
  263. package/dist/lib/components/router-link.d.ts +11 -0
  264. package/dist/lib/components/router-link.js +2 -0
  265. package/dist/lib/components/row.cjs +1 -0
  266. package/dist/lib/components/row.d.ts +11 -0
  267. package/dist/lib/components/row.js +2 -0
  268. package/dist/lib/components/searchbar.cjs +1 -0
  269. package/dist/lib/components/searchbar.d.ts +11 -0
  270. package/dist/lib/components/searchbar.js +2 -0
  271. package/dist/lib/components/segment-button.cjs +1 -0
  272. package/dist/lib/components/segment-button.d.ts +11 -0
  273. package/dist/lib/components/segment-button.js +2 -0
  274. package/dist/lib/components/segment-content.cjs +1 -0
  275. package/dist/lib/components/segment-content.d.ts +11 -0
  276. package/dist/lib/components/segment-content.js +2 -0
  277. package/dist/lib/components/segment-view.cjs +1 -0
  278. package/dist/lib/components/segment-view.d.ts +11 -0
  279. package/dist/lib/components/segment-view.js +2 -0
  280. package/dist/lib/components/segment.cjs +1 -0
  281. package/dist/lib/components/segment.d.ts +11 -0
  282. package/dist/lib/components/segment.js +2 -0
  283. package/dist/lib/components/select-modal.cjs +1 -0
  284. package/dist/lib/components/select-modal.d.ts +11 -0
  285. package/dist/lib/components/select-modal.js +2 -0
  286. package/dist/lib/components/select-option.cjs +1 -0
  287. package/dist/lib/components/select-option.d.ts +11 -0
  288. package/dist/lib/components/select-option.js +2 -0
  289. package/dist/lib/components/select-popover.cjs +1 -0
  290. package/dist/lib/components/select-popover.d.ts +11 -0
  291. package/dist/lib/components/select-popover.js +2 -0
  292. package/dist/lib/components/select.cjs +1 -0
  293. package/dist/lib/components/select.d.ts +11 -0
  294. package/dist/lib/components/select.js +2 -0
  295. package/dist/lib/components/skeleton-text.cjs +1 -0
  296. package/dist/lib/components/skeleton-text.d.ts +11 -0
  297. package/dist/lib/components/skeleton-text.js +2 -0
  298. package/dist/lib/components/spinner.cjs +1 -0
  299. package/dist/lib/components/spinner.d.ts +11 -0
  300. package/dist/lib/components/spinner.js +2 -0
  301. package/dist/lib/components/split-pane.cjs +1 -0
  302. package/dist/lib/components/split-pane.d.ts +11 -0
  303. package/dist/lib/components/split-pane.js +2 -0
  304. package/dist/lib/components/tab-bar.cjs +1 -0
  305. package/dist/lib/components/tab-bar.d.ts +11 -0
  306. package/dist/lib/components/tab-bar.js +2 -0
  307. package/dist/lib/components/tab-button.cjs +1 -0
  308. package/dist/lib/components/tab-button.d.ts +11 -0
  309. package/dist/lib/components/tab-button.js +2 -0
  310. package/dist/lib/components/tab.cjs +1 -0
  311. package/dist/lib/components/tab.d.ts +11 -0
  312. package/dist/lib/components/tab.js +2 -0
  313. package/dist/lib/components/tabs.cjs +1 -0
  314. package/dist/lib/components/tabs.d.ts +11 -0
  315. package/dist/lib/components/tabs.js +2 -0
  316. package/dist/lib/components/text.cjs +1 -0
  317. package/dist/lib/components/text.d.ts +11 -0
  318. package/dist/lib/components/text.js +2 -0
  319. package/dist/lib/components/textarea.cjs +1 -0
  320. package/dist/lib/components/textarea.d.ts +11 -0
  321. package/dist/lib/components/textarea.js +2 -0
  322. package/dist/lib/components/thumbnail.cjs +1 -0
  323. package/dist/lib/components/thumbnail.d.ts +11 -0
  324. package/dist/lib/components/thumbnail.js +2 -0
  325. package/dist/lib/components/title.cjs +1 -0
  326. package/dist/lib/components/title.d.ts +11 -0
  327. package/dist/lib/components/title.js +2 -0
  328. package/dist/lib/components/toast.cjs +1 -0
  329. package/dist/lib/components/toast.d.ts +11 -0
  330. package/dist/lib/components/toast.js +2 -0
  331. package/dist/lib/components/toggle.cjs +1 -0
  332. package/dist/lib/components/toggle.d.ts +11 -0
  333. package/dist/lib/components/toggle.js +2 -0
  334. package/dist/lib/components/toolbar.cjs +1 -0
  335. package/dist/lib/components/toolbar.d.ts +11 -0
  336. package/dist/lib/components/toolbar.js +2 -0
  337. package/dist/lib/components.cjs +1 -0
  338. package/dist/lib/components.d.ts +110 -0
  339. package/dist/lib/components.js +94 -0
  340. package/dist/lib/definitions-DZ-6I7Fj.js +282 -0
  341. package/dist/lib/definitions-DZ-6I7Fj.js.map +1 -0
  342. package/dist/lib/definitions-Lm2GaF-Z.cjs +2 -0
  343. package/dist/lib/definitions-Lm2GaF-Z.cjs.map +1 -0
  344. package/dist/lib/elur-ionic.cjs +1 -0
  345. package/dist/lib/elur-ionic.cjs.map +1 -0
  346. package/dist/lib/elur-ionic.js +1 -0
  347. package/dist/lib/elur-ionic.js.map +1 -0
  348. package/dist/lib/index.d.ts +47 -0
  349. package/dist/lib/lifecycle.d.ts +62 -0
  350. package/dist/lib/navigation.cjs +2 -0
  351. package/dist/lib/navigation.cjs.map +1 -0
  352. package/dist/lib/navigation.d.ts +214 -0
  353. package/dist/lib/navigation.js +193 -0
  354. package/dist/lib/navigation.js.map +1 -0
  355. package/dist/lib/overlays.cjs +2 -0
  356. package/dist/lib/overlays.cjs.map +1 -0
  357. package/dist/lib/overlays.d.ts +400 -0
  358. package/dist/lib/overlays.js +161 -0
  359. package/dist/lib/overlays.js.map +1 -0
  360. package/dist/lib/page-state.cjs +2 -0
  361. package/dist/lib/page-state.cjs.map +1 -0
  362. package/dist/lib/page-state.d.ts +160 -0
  363. package/dist/lib/page-state.js +91 -0
  364. package/dist/lib/page-state.js.map +1 -0
  365. package/dist/lib/setup.d.ts +105 -0
  366. package/dist/lib/tabs-ByPLrzax.cjs +50 -0
  367. package/dist/lib/tabs-ByPLrzax.cjs.map +1 -0
  368. package/dist/lib/tabs-DjD1_PTM.js +178 -0
  369. package/dist/lib/tabs-DjD1_PTM.js.map +1 -0
  370. package/dist/lib/tabs.cjs +1 -0
  371. package/dist/lib/tabs.d.ts +83 -0
  372. package/dist/lib/tabs.js +2 -0
  373. package/dist/lib/vite-plugin.cjs +39 -0
  374. package/dist/lib/vite-plugin.cjs.map +1 -0
  375. package/dist/lib/vite-plugin.d.ts +61 -0
  376. package/dist/lib/vite-plugin.js +26703 -0
  377. package/dist/lib/vite-plugin.js.map +1 -0
  378. package/dist/lib/web-C-maW8Tl.cjs +2 -0
  379. package/dist/lib/web-C-maW8Tl.cjs.map +1 -0
  380. package/dist/lib/web-jkqBWgLD.js +56 -0
  381. package/dist/lib/web-jkqBWgLD.js.map +1 -0
  382. package/package.json +204 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,272 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [2.0.7]
9
+
10
+ ### Added
11
+
12
+ - **Nix.js framework delegate for overlays** — `createPopover()` and
13
+ `createModal()` now automatically inject a Nix.js `FrameworkDelegate`
14
+ when `component` is a function (e.g. `() => html\`...\``). This fixes
15
+ the `"framework delegate is missing"` error that occurred when passing
16
+ Nix.js templates as overlay content. The delegate uses `mount()` to
17
+ render the template inside the overlay and `unmount()` on dismiss.
18
+ - **Vite plugin warnings for unlisted icons** — when the plugin detects
19
+ `name="icon-name"` on `<ion-icon>` in templates and the icon is not in
20
+ `allowIcons`, it now emits a warning listing the icons and the file.
21
+ This complements the existing tag warnings and helps catch missing
22
+ icon registrations caused by lazy-loaded pages.
23
+
24
+ ### Fixed
25
+
26
+ - **Tab IDs no longer have leading hyphens** — `_normalizePath("/search")`
27
+ produced `-search` (with a leading `-`) because the leading `/` was
28
+ replaced with `-`. Now `/search` → `search`, `/profile` → `profile`,
29
+ and `/` → `root`. This fixes the `[ion-tabs] Tab with id: "undefined"
30
+ does not exist` error that occurred on tab clicks.
31
+ - **Tab bar now renders at the bottom** — `ion-tabs` defaults to
32
+ `display: block` with no explicit height, which collapsed the layout
33
+ because `ion-router-outlet` is `position: absolute`. A small CSS
34
+ snippet is now injected by `createTabsLayout()` to force `ion-tabs`
35
+ into a flexbox column layout where the outlet fills the available
36
+ space and the tab bar sits at the bottom.
37
+ - **Tab click no longer triggers Ionic's internal `select()`** — the
38
+ `@click` handler on `ion-tab-button` now uses Nix.js event modifiers
39
+ (`@click.prevent.stop`) to prevent Ionic's internal tab selection
40
+ (which looks for `<ion-tab>` children we don't have). Navigation is
41
+ driven entirely by the Nix.js router.
42
+ - **Invalid `import { foo as "string" }` syntax in generated module** —
43
+ the Vite plugin was generating `import { alertCircleOutline as
44
+ "alert-circle-outline" } from "ionicons/icons"` which is not valid
45
+ JavaScript (alias must be an identifier, not a string). Now generates
46
+ `import { alertCircleOutline } from "ionicons/icons"` and maps
47
+ kebab-case names in the `registerIonicons({ ... })` call instead.
48
+
49
+ ---
50
+
51
+ ## [2.0.6]
52
+
53
+ ### Added
54
+
55
+ - **Vite plugin warnings for unlisted tags** — when the plugin detects
56
+ `<ion-*>` tags in templates that are not in `allowTags`, it now emits a
57
+ warning listing the tags and the file. This helps catch missing
58
+ registrations caused by lazy-loaded pages (the virtual module is served
59
+ before all page files are scanned).
60
+ - **"New tags discovered after registration" warning** — if tags are found
61
+ after the registration module was already served, the plugin warns that
62
+ they were NOT included and the user should add them to `allowTags`.
63
+
64
+ ---
65
+
66
+ ## [2.0.5]
67
+
68
+ ### Added
69
+
70
+ - **`cssVars` option in `BottomTabBarOptions`** — set CSS custom properties
71
+ on `ion-tab-bar` for theming (`--background`, `--color-selected`, etc.).
72
+ - **`layout` option in `BottomTabBarOptions`** — configurable tab button
73
+ layout: `icon-top` (default), `icon-start`, `icon-end`, `icon-bottom`,
74
+ `icon-hide`, `label-hide`.
75
+ - **`badge` + `badgeColor` in `BottomTabItem`** — renders `<ion-badge>` inside
76
+ tab buttons for notification counts.
77
+ - **`TabButtonLayout` type exported** for consumer type-safety.
78
+ - **`ion-buttons` registered as core component** in `initializeNixIonic()`.
79
+
80
+ ### Fixed
81
+
82
+ - **Tab button `selected` property now set via JS (not attribute)** — Stencil
83
+ boolean `@Prop` cannot be set via HTML attributes with Nix.js (`selected=""`
84
+ is falsy in Stencil's coercion). `createBottomTabBar` now uses a `ref` +
85
+ `effect` + `nextTick` to set `(btn as any).selected = isActive` directly on
86
+ each `ion-tab-button` after DOM mount and on every route change. This
87
+ triggers Stencil re-renders, applying internal classes (`tab-has-icon`,
88
+ `tab-selected`, `tab-layout-icon-top`) correctly — fixing the icon resize
89
+ and label layout shift.
90
+ - **Tab button class no longer overwritten** — removed `class=${...}` binding
91
+ on `ion-tab-button` that was clobbering Stencil's internal host classes
92
+ (`md`, `tab-has-icon`, `tab-layout-icon-top`, `hydrated`, etc.). Stencil
93
+ manages these classes; external class binding destroyed them on route
94
+ change, causing icon resize and label shift.
95
+ - **Initial load sync** — on first render, `tabBarRef.el` is null (template
96
+ hasn't mounted). Added `nextTick` retry so `selected` is set after the DOM
97
+ is ready.
98
+ - **`IonBackButton` now wrapped in `<ion-buttons slot="start">`** — without
99
+ this wrapper, `ion-back-button` had no flex constraints and could expand
100
+ to fill the toolbar width.
101
+ - **`createPicker` now uses `pickerController`** — Ionic 8's `ion-picker` is
102
+ a wheel-style component without `columns`/`buttons`/`isOpen`. The legacy
103
+ picker (with columns/buttons API) is accessed via `pickerController`, which
104
+ creates `<ion-picker-legacy>` internally. `createPicker` now lazily
105
+ registers `ion-picker-legacy`, `ion-picker-legacy-column`, and
106
+ `ion-backdrop` via dynamic import (preserving tree-shaking).
107
+ - **Removed unused `createInlineOverlayHandle`** — dead code after picker
108
+ migration to controller pattern.
109
+
110
+ ### E2E verified
111
+
112
+ - 7 Playwright tests pass: tab bar positioning, `selected` property, icon
113
+ size stability (0px diff on tab switch), internal Stencil classes,
114
+ click switching.
115
+
116
+ ---
117
+
118
+ ## [2.0.4]
119
+
120
+ ### Fixed
121
+
122
+ - **Tab button icon resize / text layout shift**: `ion-tab-button` uses a
123
+ `selected` property (not just a CSS class) to trigger internal Stencil
124
+ re-renders. Without `selected=true`, the component never re-renders, so
125
+ `hasIcon`/`hasLabel` getters (which query the DOM for `ion-icon`/
126
+ `ion-label`) are never re-evaluated. This caused the icon to render at
127
+ the wrong size and the label to shift position. `createBottomTabBar` now
128
+ sets `.selected` reactively based on the active route, in addition to
129
+ the CSS class for backwards compatibility.
130
+ - **Tab button `layout` property**: explicitly set `layout="icon-top"` on
131
+ each `ion-tab-button` to ensure the correct layout class
132
+ (`tab-layout-icon-top`) is applied immediately, preventing layout shifts
133
+ when the component re-renders.
134
+
135
+ ---
136
+
137
+ ## [2.0.3]
138
+
139
+ ### Fixed
140
+
141
+ - **`createTabsLayout` now accepts `IonRouterOutlet`**: `IonRouterOutlet`
142
+ extends `NixComponent`, not `NixTemplate`. `createTabsLayout` now accepts
143
+ both `NixTemplate | NixComponent` and calls `render()` on the component
144
+ to get the template.
145
+
146
+ ---
147
+
148
+ ## [2.0.2]
149
+
150
+ ### Fixed
151
+
152
+ - **Tab bar layout**: `ion-tab-bar` without `ion-tabs` wrapper had no CSS
153
+ positioning — it appeared at the top of the flex flow, behind
154
+ `ion-router-outlet` (which is `position:absolute; inset:0`). Added
155
+ `createTabsLayout(outlet, tabBar)` which wraps both in `<ion-tabs>`,
156
+ providing the correct CSS layout context (flex column, `tabs-inner`
157
+ with `flex:1`, `<slot name="bottom">` for the tab bar).
158
+ - **Tab bar icons**: `createBottomTabBar` uses dynamic `name=${() => tab.icon}`
159
+ expressions which the Vite plugin cannot detect. Added `icons` option to
160
+ `BottomTabBarOptions` — pass icon SVG data and `createBottomTabBar` calls
161
+ `addIcons()` internally.
162
+
163
+ ### Added
164
+
165
+ - **`createTabsLayout(outlet, tabBar)`**: wraps an `IonRouterOutlet` and tab
166
+ bar in `<ion-tabs>`, providing the correct CSS layout context. This is the
167
+ recommended way to use tabs with `IonRouterOutlet`.
168
+ - **`BottomTabBarOptions.icons`**: `IconDefinitionMap` for registering tab
169
+ bar icons that can't be auto-detected by the Vite plugin.
170
+
171
+ ---
172
+
173
+ ## [2.0.1]
174
+
175
+ ### Fixed
176
+
177
+ - **Vite plugin: core tags no longer generate invalid imports** —
178
+ `ion-app`, `ion-router-outlet`, `ion-back-button`, and `ion-icon` are
179
+ registered by `initializeNixIonic()` and do not have individual
180
+ component subpaths. The plugin now skips these tags instead of
181
+ generating imports to `@deijose/nix-ionic/components/app` (which
182
+ doesn't exist).
183
+
184
+ ### Tests
185
+
186
+ - 236 unit tests (was 235) — added test for core-tag skipping.
187
+
188
+ ---
189
+
190
+ ## [2.0.0]
191
+
192
+ Major rewrite focused on tree-shakeable components, reactive overlays, cache
193
+ policies, optional Capacitor, and leak-free lifecycle.
194
+
195
+ ### Breaking changes
196
+
197
+ - `setupNixIonic()` no longer registers all components by default. Use
198
+ `initializeNixIonic()` + `registerIonicComponents()` or the Vite plugin.
199
+ - `unpkg@latest` asset URL removed. Uses `setAssetPath` — you control assets.
200
+ - Overlay factories renamed from React-style `use*` to Nix.js `create*` pattern:
201
+ `createToast()`, `createAlert()`, `createLoading()`, `createActionSheet()`,
202
+ `createPopover()`, `createModal()`.
203
+ - Single router authority — no more competing Ionic/Nix routers.
204
+ - `createPicker()` reimplemented for Ionic 8 inline `isOpen` pattern (no longer
205
+ uses `pickerController.create()` which hangs in Ionic 8).
206
+
207
+ ### Added
208
+
209
+ - **Tree-shakeable components**: per-component subpath imports
210
+ (`@deijose/nix-ionic/components/button`) + bundle subpaths
211
+ (`@deijose/nix-ionic/bundles/layout`).
212
+ - **Vite plugin** `nixIonic()`: auto-detects `<ion-*>` tags in `html```
213
+ templates and generates registration imports.
214
+ - **Reactive overlays**: signal-based `create*` controllers with `presented`
215
+ and `result` signals, latest-wins semantics, stale-result protection.
216
+ - **Cache policies**: LRU/FIFO max eviction, TTL expiry, per-route overrides,
217
+ per-tab cache isolation.
218
+ - **Page-state persistence**: opt-in serializable state across navigation.
219
+ - **NavigationManager + StackManager**: reactive `canGoBack`, single authority.
220
+ - **Optional Capacitor**: `@deijose/nix-ionic/capacitor` subpath with zero web
221
+ bundle cost. StatusBar, SplashScreen, Keyboard, Haptics, and App plugin
222
+ wrappers with graceful web degradation (no-op on web).
223
+ - **Nix.js delegate** for modal/popover overlays: mounts NixTemplate/NixComponent
224
+ inside Ionic overlays.
225
+ - **Bundle measurement script** (`npm run measure-bundles`): validates
226
+ tree-shaking with 4 fixtures (minimal, partial, full, capacitor-only).
227
+ Minimal fixture = 11.3% of full bundle (gzip), capacitor-only = 604 bytes.
228
+
229
+ ### Fixed
230
+
231
+ - **Hash-mode navigation race**: transition race condition fixed — rapid
232
+ navigations queue as pending instead of being silently dropped.
233
+ `_isTransitioning` check moved before `cacheKey` early return.
234
+ - **Cached page visibility**: `ion-page-hidden` and inline `display` state
235
+ removed before and after `commit()` to prevent stale hidden state with
236
+ reduced-motion/zero-duration transitions.
237
+ - **Ionic 8 picker**: `createPicker()` reimplemented with `createInlineOverlayHandle()`
238
+ using the `isOpen` property pattern (controller-based `pickerController.create()`
239
+ hangs in Ionic 8).
240
+
241
+ ### Tests
242
+
243
+ - 235 unit tests (13 files)
244
+ - 56 E2E tests with real `@ionic/core` (no mocks):
245
+ - 19 application E2E (navigation, lifecycle, overlays, back button)
246
+ - 24 contract tests (custom elements, commit, lifecycle, overlays, properties,
247
+ events, network isolation)
248
+ - 13 accessibility/leak tests (ARIA roles, shadow DOM, focus management,
249
+ repeated navigation, overlay disposal, listener cleanup)
250
+
251
+ ### Documentation
252
+
253
+ - [MIGRATION.md](./MIGRATION.md) — full 1.x → 2.0 migration guide
254
+ - Architecture document: `docs/arquitecturas/ARCHITECTURA_TECNICA_NIX_JS_IONIC.md`
255
+ (in the monorepo `docs/` directory)
256
+ - README "Limitations" section: iOS swipe-back documented as unsupported
257
+
258
+ ### Migration
259
+
260
+ See [MIGRATION.md](./MIGRATION.md) for the full 1.x → 2.0 migration guide.
261
+
262
+ ---
263
+
264
+ ## [1.4.14]
265
+
266
+ Previous release — basic Ionic lifecycle & router bridge.
267
+
268
+ - `setupNixIonic()` registered all components from `unpkg@latest`
269
+ - React-style `use*` overlay factories
270
+ - No cache policies
271
+ - No Vite plugin
272
+ - No Capacitor support
package/MIGRATION.md ADDED
@@ -0,0 +1,221 @@
1
+ # Migration guide: 1.x → 2.0
2
+
3
+ This guide covers breaking changes, deprecations, and new features when upgrading from `@elurjs/ionic` 1.x to 2.0.
4
+
5
+ ## Summary
6
+
7
+ 2.0 is a major rewrite focused on:
8
+
9
+ - **Tree-shakeable components** — import only what you use, auto-detected by Vite plugin
10
+ - **Reactive overlays** — `create*` pattern controllers with signal-based state
11
+ - **Cache policies** — LRU/FIFO max eviction, TTL expiry, per-route overrides
12
+ - **Page-state persistence** — opt-in serializable state across navigation
13
+ - **Optional Capacitor** — zero web bundle cost, isolated subpath
14
+ - **Single router** — no more competing Ionic/Elur routers
15
+ - **Leak-free lifecycle** — proper cleanup of effects, watchers, timers, overlays
16
+
17
+ ## Breaking changes
18
+
19
+ ### 1. `setupElurIonic()` no longer registers all components
20
+
21
+ **Before (1.x):**
22
+ ```ts
23
+ setupElurIonic(); // registers everything including unpkg@latest assets
24
+ ```
25
+
26
+ **After (2.0):**
27
+ ```ts
28
+ import { initializeElurIonic, registerIonicComponents } from "@elurjs/ionic";
29
+ import { defineIonButton } from "@elurjs/ionic/components/button";
30
+
31
+ initializeElurIonic();
32
+ registerIonicComponents(defineIonButton);
33
+ ```
34
+
35
+ **Migration:** Use the compatibility facade or the Vite plugin:
36
+
37
+ ```ts
38
+ // Option A: compatibility facade (registers everything)
39
+ import { setupElurIonic } from "@elurjs/ionic";
40
+ import { allComponents } from "@elurjs/ionic/bundles/all";
41
+ setupElurIonic({ components: allComponents });
42
+
43
+ // Option B: Vite plugin (auto-detects from html`` templates)
44
+ import { elurIonic } from "@elurjs/ionic/vite-plugin";
45
+ // vite.config.ts: plugins: [elurIonic()]
46
+ // app entry: import "virtual:elur-ionic/registration";
47
+ ```
48
+
49
+ ### 2. `unpkg@latest` asset URL removed
50
+
51
+ **Before:** Ionic/Ionicons assets loaded from `unpkg.com@latest` by default.
52
+ **After:** Uses official `setAssetPath` — you control where assets are served from.
53
+
54
+ **Migration:** If you relied on the CDN, configure it explicitly:
55
+
56
+ ```ts
57
+ initializeElurIonic({
58
+ // assets are resolved relative to your bundle by default
59
+ // for CDN: setAssetPath("https://unpkg.com/@ionic/core@8/dist/")
60
+ });
61
+ ```
62
+
63
+ ### 3. `@ionic/core` and `ionicons` are now peer dependencies
64
+
65
+ **Before:** Bundled with `@elurjs/ionic`.
66
+ **After:** You install them directly — ensures version compatibility.
67
+
68
+ ```bash
69
+ npm install @ionic/core ionicons
70
+ ```
71
+
72
+ ### 4. Overlay API renamed from `use*` to `create*`
73
+
74
+ **Before (never released, but if you used the initial overlay API):**
75
+ ```ts
76
+ const toast = useToast(); // React-style naming
77
+ ```
78
+
79
+ **After (2.0):**
80
+ ```ts
81
+ const toast = createToast(); // Elur create* pattern
82
+ ```
83
+
84
+ | Old | New |
85
+ |---|---|
86
+ | `useToast()` | `createToast()` |
87
+ | `useAlert()` | `createAlert()` |
88
+ | `useLoading()` | `createLoading()` |
89
+ | `useActionSheet()` | `createActionSheet()` |
90
+ | `usePopover()` | `createPopover()` |
91
+ | `useModal()` | `createModal()` |
92
+
93
+ > **Note**: `createPicker()` was also added in 2.0, but it uses the Ionic 8
94
+ > inline `isOpen` pattern instead of `pickerController.create()` (which hangs
95
+ > in Ionic 8). The API is the same `OverlayHandle` as other overlays.
96
+
97
+ ### 5. `Signal.set()` removed
98
+
99
+ Elur signals use `.value` for both reads and writes:
100
+
101
+ ```ts
102
+ // Correct
103
+ sig.value = newValue;
104
+ sig.value; // read
105
+
106
+ // Wrong (never existed in Elur, but was incorrectly used in early overlay code)
107
+ sig.set(newValue);
108
+ ```
109
+
110
+ ### 6. `onCleanup` not exported from Elur
111
+
112
+ Elur uses `effect()` return value or `ElurComponent.onUnmount()` for cleanup:
113
+
114
+ ```ts
115
+ // Correct — effect returns a dispose function
116
+ const dispose = effect(() => { /* ... */ });
117
+ dispose(); // cleanup
118
+
119
+ // Correct — class component lifecycle
120
+ class MyPage extends IonPage {
121
+ override onUnmount() {
122
+ // cleanup here
123
+ }
124
+ }
125
+ ```
126
+
127
+ ## New features in 2.0
128
+
129
+ ### Cache policies
130
+
131
+ ```ts
132
+ new IonRouterOutlet(routes, {
133
+ cachePolicy: { max: 10, ttl: 60000, strategy: "lru" },
134
+ });
135
+
136
+ // Per-route override
137
+ { path: "/volatile", cache: { ttl: 5000 }, component: ... }
138
+ { path: "/transient", cache: false, component: ... }
139
+ ```
140
+
141
+ ### Reactive overlays
142
+
143
+ ```ts
144
+ const modal = createModalController();
145
+ await modal.present({
146
+ component: () => html`<ion-content><h1>Mounted by Elur!</h1></ion-content>`,
147
+ });
148
+ // modal.presented.value → true (reactive)
149
+ // modal.result.value → dismiss detail (reactive)
150
+ ```
151
+
152
+ ### Page-state persistence
153
+
154
+ ```ts
155
+ const state = createPageState("search", {
156
+ query: searchSignal,
157
+ results: resultsSignal,
158
+ }, { storage: "local" });
159
+
160
+ state.restore(); // on page enter
161
+ state.save(); // on page leave
162
+ ```
163
+
164
+ ### Capacitor integration
165
+
166
+ ```ts
167
+ import { createCapacitorApp } from "@elurjs/ionic/capacitor";
168
+
169
+ const app = createCapacitorApp({
170
+ statusBar: { style: "dark" },
171
+ splashScreen: { fadeOutDuration: 200 },
172
+ backButton: { defaultHref: "/" },
173
+ });
174
+ await app.ready();
175
+ ```
176
+
177
+ ### Vite plugin
178
+
179
+ ```ts
180
+ // vite.config.ts
181
+ import { elurIonic } from "@elurjs/ionic/vite-plugin";
182
+ export default defineConfig({ plugins: [elurIonic()] });
183
+
184
+ // app entry
185
+ import "virtual:elur-ionic/registration";
186
+ ```
187
+
188
+ ### Direct component subpaths
189
+
190
+ ```ts
191
+ import { defineIonButton } from "@elurjs/ionic/components/button";
192
+ import { defineIonCard } from "@elurjs/ionic/components/card";
193
+ ```
194
+
195
+ ## Deprecations
196
+
197
+ | Deprecated | Replacement | Notes |
198
+ |---|---|---|
199
+ | `setupElurIonic()` | `initializeElurIonic()` + `registerIonicComponents()` | Facade kept for migration |
200
+ | `allComponents` | Vite plugin or explicit imports | Kept for migration only |
201
+ | `components` export | `components/*` subpaths | Use direct subpath imports |
202
+
203
+ ## Bug fixes in 2.0
204
+
205
+ 1. **`cache:false` cleanup leak** — uncached pages now run lifecycle/effect cleanup before DOM removal
206
+ 2. **Active cache invalidation** — invalidating the active page no longer disposes live reactivity
207
+ 3. **Lifecycle watcher disposal** — `watch()` disposers are now retained and released on cleanup
208
+ 4. **Subclass `onInit()` without `super()`** — lifecycle wiring no longer depends on `super.onInit()`
209
+ 5. **Guard double-execution** — guards run exactly once, not twice
210
+ 6. **`PageContext.query`** — query parameters now available in page context
211
+ 7. **Wildcard route fallback** — `*` routes now work as fallback
212
+ 8. **Duplicate route diagnostics** — warns on duplicate paths
213
+ 9. **Pending navigation preservation** — navigation intent (direction, animation) preserved across deferred transitions
214
+ 10. **Query-only navigation** — same path with different query now triggers a transition; cache keys include query
215
+
216
+ ## Test counts
217
+
218
+ | Version | Tests | Description |
219
+ |---|---|---|
220
+ | 1.x | ~63 | Basic routing, lifecycle, setup |
221
+ | 2.0 | 187 | + cache policies, overlays, delegate, page-state, capacitor, vite-plugin |