@elurjs/ionic 1.6.1

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