@tirth_jasoliya/ui 1.0.5 → 1.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 (308) hide show
  1. package/dist/components/core/error.cjs +3 -0
  2. package/dist/components/core/error.cjs.map +1 -0
  3. package/dist/components/core/error.d.cts +5 -0
  4. package/dist/components/core/error.d.ts +5 -0
  5. package/dist/components/core/error.js +3 -0
  6. package/dist/components/core/error.js.map +1 -0
  7. package/dist/components/core/event-success.cjs +3 -0
  8. package/dist/components/core/event-success.cjs.map +1 -0
  9. package/dist/components/core/event-success.d.cts +5 -0
  10. package/dist/components/core/event-success.d.ts +5 -0
  11. package/dist/components/core/event-success.js +3 -0
  12. package/dist/components/core/event-success.js.map +1 -0
  13. package/dist/components/core/index.cjs +3 -0
  14. package/dist/components/core/index.cjs.map +1 -0
  15. package/dist/components/core/index.d.cts +7 -0
  16. package/dist/components/core/index.d.ts +7 -0
  17. package/dist/components/core/index.js +3 -0
  18. package/dist/components/core/index.js.map +1 -0
  19. package/dist/components/core/loader.cjs +3 -0
  20. package/dist/components/core/loader.cjs.map +1 -0
  21. package/dist/components/core/loader.d.cts +5 -0
  22. package/dist/components/core/loader.d.ts +5 -0
  23. package/dist/components/core/loader.js +3 -0
  24. package/dist/components/core/loader.js.map +1 -0
  25. package/dist/components/core/notfound.cjs +3 -0
  26. package/dist/components/core/notfound.cjs.map +1 -0
  27. package/dist/components/core/notfound.d.cts +5 -0
  28. package/dist/components/core/notfound.d.ts +5 -0
  29. package/dist/components/core/notfound.js +3 -0
  30. package/dist/components/core/notfound.js.map +1 -0
  31. package/dist/components/core/offline-content.cjs +3 -0
  32. package/dist/components/core/offline-content.cjs.map +1 -0
  33. package/dist/components/core/offline-content.d.cts +5 -0
  34. package/dist/components/core/offline-content.d.ts +5 -0
  35. package/dist/components/core/offline-content.js +3 -0
  36. package/dist/components/core/offline-content.js.map +1 -0
  37. package/dist/components/core/unauthorized.cjs +3 -0
  38. package/dist/components/core/unauthorized.cjs.map +1 -0
  39. package/dist/components/core/unauthorized.d.cts +5 -0
  40. package/dist/components/core/unauthorized.d.ts +5 -0
  41. package/dist/components/core/unauthorized.js +3 -0
  42. package/dist/components/core/unauthorized.js.map +1 -0
  43. package/dist/components/data/data-table/data-table-action-bar.cjs +3 -0
  44. package/dist/components/data/data-table/data-table-action-bar.cjs.map +1 -0
  45. package/dist/components/data/data-table/data-table-action-bar.d.cts +26 -0
  46. package/dist/components/data/data-table/data-table-action-bar.d.ts +26 -0
  47. package/dist/components/data/data-table/data-table-action-bar.js +3 -0
  48. package/dist/components/data/data-table/data-table-action-bar.js.map +1 -0
  49. package/dist/components/data/data-table/data-table-column-header.cjs +3 -0
  50. package/dist/components/data/data-table/data-table-column-header.cjs.map +1 -0
  51. package/dist/components/data/data-table/data-table-column-header.d.cts +11 -0
  52. package/dist/components/data/data-table/data-table-column-header.d.ts +11 -0
  53. package/dist/components/data/data-table/data-table-column-header.js +3 -0
  54. package/dist/components/data/data-table/data-table-column-header.js.map +1 -0
  55. package/dist/components/data/data-table/data-table-faceted-filter.cjs +3 -0
  56. package/dist/components/data/data-table/data-table-faceted-filter.cjs.map +1 -0
  57. package/dist/components/data/data-table/data-table-faceted-filter.d.cts +18 -0
  58. package/dist/components/data/data-table/data-table-faceted-filter.d.ts +18 -0
  59. package/dist/components/data/data-table/data-table-faceted-filter.js +3 -0
  60. package/dist/components/data/data-table/data-table-faceted-filter.js.map +1 -0
  61. package/dist/components/data/data-table/data-table-pagination.cjs +3 -0
  62. package/dist/components/data/data-table/data-table-pagination.cjs.map +1 -0
  63. package/dist/components/data/data-table/data-table-pagination.d.cts +12 -0
  64. package/dist/components/data/data-table/data-table-pagination.d.ts +12 -0
  65. package/dist/components/data/data-table/data-table-pagination.js +3 -0
  66. package/dist/components/data/data-table/data-table-pagination.js.map +1 -0
  67. package/dist/components/data/data-table/data-table-toolbar.cjs +3 -0
  68. package/dist/components/data/data-table/data-table-toolbar.cjs.map +1 -0
  69. package/dist/components/data/data-table/data-table-toolbar.d.cts +23 -0
  70. package/dist/components/data/data-table/data-table-toolbar.d.ts +23 -0
  71. package/dist/components/data/data-table/data-table-toolbar.js +3 -0
  72. package/dist/components/data/data-table/data-table-toolbar.js.map +1 -0
  73. package/dist/components/data/data-table/data-table-types.cjs +3 -0
  74. package/dist/components/data/data-table/data-table-types.cjs.map +1 -0
  75. package/dist/components/data/data-table/data-table-types.d.cts +69 -0
  76. package/dist/components/data/data-table/data-table-types.d.ts +69 -0
  77. package/dist/components/data/data-table/data-table-types.js +2 -0
  78. package/dist/components/data/data-table/data-table-types.js.map +1 -0
  79. package/dist/components/data/data-table/data-table-view-options.cjs +3 -0
  80. package/dist/components/data/data-table/data-table-view-options.cjs.map +1 -0
  81. package/dist/components/data/data-table/data-table-view-options.d.cts +9 -0
  82. package/dist/components/data/data-table/data-table-view-options.d.ts +9 -0
  83. package/dist/components/data/data-table/data-table-view-options.js +3 -0
  84. package/dist/components/data/data-table/data-table-view-options.js.map +1 -0
  85. package/dist/components/data/data-table/data-table.cjs +3 -0
  86. package/dist/components/data/data-table/data-table.cjs.map +1 -0
  87. package/dist/components/data/data-table/data-table.d.cts +8 -0
  88. package/dist/components/data/data-table/data-table.d.ts +8 -0
  89. package/dist/components/data/data-table/data-table.js +3 -0
  90. package/dist/components/data/data-table/data-table.js.map +1 -0
  91. package/dist/components/data/data-table/index.cjs +3 -0
  92. package/dist/components/data/data-table/index.cjs.map +1 -0
  93. package/dist/components/data/data-table/index.d.cts +16 -0
  94. package/dist/components/data/data-table/index.d.ts +16 -0
  95. package/dist/components/data/data-table/index.js +3 -0
  96. package/dist/components/data/data-table/index.js.map +1 -0
  97. package/dist/components/data/data-template/data-template-action-bar.cjs +3 -0
  98. package/dist/components/data/data-template/data-template-action-bar.cjs.map +1 -0
  99. package/dist/components/data/data-template/data-template-action-bar.d.cts +14 -0
  100. package/dist/components/data/data-template/data-template-action-bar.d.ts +14 -0
  101. package/dist/components/data/data-template/data-template-action-bar.js +3 -0
  102. package/dist/components/data/data-template/data-template-action-bar.js.map +1 -0
  103. package/dist/components/data/data-template/data-template-pagination.cjs +3 -0
  104. package/dist/components/data/data-template/data-template-pagination.cjs.map +1 -0
  105. package/dist/components/data/data-template/data-template-pagination.d.cts +17 -0
  106. package/dist/components/data/data-template/data-template-pagination.d.ts +17 -0
  107. package/dist/components/data/data-template/data-template-pagination.js +3 -0
  108. package/dist/components/data/data-template/data-template-pagination.js.map +1 -0
  109. package/dist/components/data/data-template/data-template-toolbar.cjs +3 -0
  110. package/dist/components/data/data-template/data-template-toolbar.cjs.map +1 -0
  111. package/dist/components/data/data-template/data-template-toolbar.d.cts +27 -0
  112. package/dist/components/data/data-template/data-template-toolbar.d.ts +27 -0
  113. package/dist/components/data/data-template/data-template-toolbar.js +3 -0
  114. package/dist/components/data/data-template/data-template-toolbar.js.map +1 -0
  115. package/dist/components/data/data-template/data-template-types.cjs +3 -0
  116. package/dist/components/data/data-template/data-template-types.cjs.map +1 -0
  117. package/dist/components/data/data-template/data-template-types.d.cts +107 -0
  118. package/dist/components/data/data-template/data-template-types.d.ts +107 -0
  119. package/dist/components/data/data-template/data-template-types.js +2 -0
  120. package/dist/components/data/data-template/data-template-types.js.map +1 -0
  121. package/dist/components/data/data-template/data-template.cjs +3 -0
  122. package/dist/components/data/data-template/data-template.cjs.map +1 -0
  123. package/dist/components/data/data-template/data-template.d.cts +8 -0
  124. package/dist/components/data/data-template/data-template.d.ts +8 -0
  125. package/dist/components/data/data-template/data-template.js +3 -0
  126. package/dist/components/data/data-template/data-template.js.map +1 -0
  127. package/dist/components/data/data-template/index.cjs +3 -0
  128. package/dist/components/data/data-template/index.cjs.map +1 -0
  129. package/dist/components/data/data-template/index.d.cts +8 -0
  130. package/dist/components/data/data-template/index.d.ts +8 -0
  131. package/dist/components/data/data-template/index.js +3 -0
  132. package/dist/components/data/data-template/index.js.map +1 -0
  133. package/dist/components/general.cjs +3 -0
  134. package/dist/components/general.cjs.map +1 -0
  135. package/dist/components/general.d.cts +51 -0
  136. package/dist/components/general.d.ts +51 -0
  137. package/dist/components/general.js +3 -0
  138. package/dist/components/general.js.map +1 -0
  139. package/dist/components/layouts/app-container.cjs +3 -0
  140. package/dist/components/layouts/app-container.cjs.map +1 -0
  141. package/dist/components/layouts/app-container.d.cts +13 -0
  142. package/dist/components/layouts/app-container.d.ts +13 -0
  143. package/dist/components/layouts/app-container.js +3 -0
  144. package/dist/components/layouts/app-container.js.map +1 -0
  145. package/dist/components/layouts/app-content.cjs +3 -0
  146. package/dist/components/layouts/app-content.cjs.map +1 -0
  147. package/dist/components/layouts/app-content.d.cts +45 -0
  148. package/dist/components/layouts/app-content.d.ts +45 -0
  149. package/dist/components/layouts/app-content.js +3 -0
  150. package/dist/components/layouts/app-content.js.map +1 -0
  151. package/dist/components/layouts/app-footer.cjs +3 -0
  152. package/dist/components/layouts/app-footer.cjs.map +1 -0
  153. package/dist/components/layouts/app-footer.d.cts +18 -0
  154. package/dist/components/layouts/app-footer.d.ts +18 -0
  155. package/dist/components/layouts/app-footer.js +3 -0
  156. package/dist/components/layouts/app-footer.js.map +1 -0
  157. package/dist/components/layouts/app-header.cjs +3 -0
  158. package/dist/components/layouts/app-header.cjs.map +1 -0
  159. package/dist/components/layouts/app-header.d.cts +19 -0
  160. package/dist/components/layouts/app-header.d.ts +19 -0
  161. package/dist/components/layouts/app-header.js +3 -0
  162. package/dist/components/layouts/app-header.js.map +1 -0
  163. package/dist/components/layouts/factories.cjs +3 -0
  164. package/dist/components/layouts/factories.cjs.map +1 -0
  165. package/dist/components/layouts/factories.d.cts +18 -0
  166. package/dist/components/layouts/factories.d.ts +18 -0
  167. package/dist/components/layouts/factories.js +3 -0
  168. package/dist/components/layouts/factories.js.map +1 -0
  169. package/dist/components/layouts/index.cjs +3 -0
  170. package/dist/components/layouts/index.cjs.map +1 -0
  171. package/dist/components/layouts/index.d.cts +8 -0
  172. package/dist/components/layouts/index.d.ts +8 -0
  173. package/dist/components/layouts/index.js +3 -0
  174. package/dist/components/layouts/index.js.map +1 -0
  175. package/dist/components/ui/badge.cjs +3 -0
  176. package/dist/components/ui/badge.cjs.map +1 -0
  177. package/dist/components/ui/badge.d.cts +13 -0
  178. package/dist/components/ui/badge.d.ts +13 -0
  179. package/dist/components/ui/badge.js +3 -0
  180. package/dist/components/ui/badge.js.map +1 -0
  181. package/dist/components/ui/button.cjs +3 -0
  182. package/dist/components/ui/button.cjs.map +1 -0
  183. package/dist/components/ui/button.d.cts +14 -0
  184. package/dist/components/ui/button.d.ts +14 -0
  185. package/dist/components/ui/button.js +3 -0
  186. package/dist/components/ui/button.js.map +1 -0
  187. package/dist/components/ui/card.cjs +3 -0
  188. package/dist/components/ui/card.cjs.map +1 -0
  189. package/dist/components/ui/card.d.cts +12 -0
  190. package/dist/components/ui/card.d.ts +12 -0
  191. package/dist/components/ui/card.js +3 -0
  192. package/dist/components/ui/card.js.map +1 -0
  193. package/dist/components/ui/checkbox.cjs +3 -0
  194. package/dist/components/ui/checkbox.cjs.map +1 -0
  195. package/dist/components/ui/checkbox.d.cts +7 -0
  196. package/dist/components/ui/checkbox.d.ts +7 -0
  197. package/dist/components/ui/checkbox.js +3 -0
  198. package/dist/components/ui/checkbox.js.map +1 -0
  199. package/dist/components/ui/command.cjs +3 -0
  200. package/dist/components/ui/command.cjs.map +1 -0
  201. package/dist/components/ui/command.d.cts +20 -0
  202. package/dist/components/ui/command.d.ts +20 -0
  203. package/dist/components/ui/command.js +3 -0
  204. package/dist/components/ui/command.js.map +1 -0
  205. package/dist/components/ui/dialog.cjs +3 -0
  206. package/dist/components/ui/dialog.cjs.map +1 -0
  207. package/dist/components/ui/dialog.d.cts +16 -0
  208. package/dist/components/ui/dialog.d.ts +16 -0
  209. package/dist/components/ui/dialog.js +3 -0
  210. package/dist/components/ui/dialog.js.map +1 -0
  211. package/dist/components/ui/dropdown-menu.cjs +3 -0
  212. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  213. package/dist/components/ui/dropdown-menu.d.cts +28 -0
  214. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  215. package/dist/components/ui/dropdown-menu.js +3 -0
  216. package/dist/components/ui/dropdown-menu.js.map +1 -0
  217. package/dist/components/ui/input.cjs +3 -0
  218. package/dist/components/ui/input.cjs.map +1 -0
  219. package/dist/components/ui/input.d.cts +6 -0
  220. package/dist/components/ui/input.d.ts +6 -0
  221. package/dist/components/ui/input.js +3 -0
  222. package/dist/components/ui/input.js.map +1 -0
  223. package/dist/components/ui/popover.cjs +3 -0
  224. package/dist/components/ui/popover.cjs.map +1 -0
  225. package/dist/components/ui/popover.d.cts +10 -0
  226. package/dist/components/ui/popover.d.ts +10 -0
  227. package/dist/components/ui/popover.js +3 -0
  228. package/dist/components/ui/popover.js.map +1 -0
  229. package/dist/components/ui/select.cjs +3 -0
  230. package/dist/components/ui/select.cjs.map +1 -0
  231. package/dist/components/ui/select.d.cts +18 -0
  232. package/dist/components/ui/select.d.ts +18 -0
  233. package/dist/components/ui/select.js +3 -0
  234. package/dist/components/ui/select.js.map +1 -0
  235. package/dist/components/ui/separator.cjs +3 -0
  236. package/dist/components/ui/separator.cjs.map +1 -0
  237. package/dist/components/ui/separator.d.cts +7 -0
  238. package/dist/components/ui/separator.d.ts +7 -0
  239. package/dist/components/ui/separator.js +3 -0
  240. package/dist/components/ui/separator.js.map +1 -0
  241. package/dist/components/ui/sheet.cjs +3 -0
  242. package/dist/components/ui/sheet.cjs.map +1 -0
  243. package/dist/components/ui/sheet.d.cts +18 -0
  244. package/dist/components/ui/sheet.d.ts +18 -0
  245. package/dist/components/ui/sheet.js +3 -0
  246. package/dist/components/ui/sheet.js.map +1 -0
  247. package/dist/components/ui/table.cjs +3 -0
  248. package/dist/components/ui/table.cjs.map +1 -0
  249. package/dist/components/ui/table.d.cts +13 -0
  250. package/dist/components/ui/table.d.ts +13 -0
  251. package/dist/components/ui/table.js +3 -0
  252. package/dist/components/ui/table.js.map +1 -0
  253. package/dist/components/ui/toggle.cjs +3 -0
  254. package/dist/components/ui/toggle.cjs.map +1 -0
  255. package/dist/components/ui/toggle.d.cts +16 -0
  256. package/dist/components/ui/toggle.d.ts +16 -0
  257. package/dist/components/ui/toggle.js +3 -0
  258. package/dist/components/ui/toggle.js.map +1 -0
  259. package/dist/components/ui/tooltip.cjs +3 -0
  260. package/dist/components/ui/tooltip.cjs.map +1 -0
  261. package/dist/components/ui/tooltip.d.cts +10 -0
  262. package/dist/components/ui/tooltip.d.ts +10 -0
  263. package/dist/components/ui/tooltip.js +3 -0
  264. package/dist/components/ui/tooltip.js.map +1 -0
  265. package/dist/context/app-meta/context.cjs +3 -0
  266. package/dist/context/app-meta/context.cjs.map +1 -0
  267. package/dist/context/app-meta/context.d.cts +18 -0
  268. package/dist/context/app-meta/context.d.ts +18 -0
  269. package/dist/context/app-meta/context.js +3 -0
  270. package/dist/context/app-meta/context.js.map +1 -0
  271. package/dist/context/app-meta/hooks.cjs +3 -0
  272. package/dist/context/app-meta/hooks.cjs.map +1 -0
  273. package/dist/context/app-meta/hooks.d.cts +10 -0
  274. package/dist/context/app-meta/hooks.d.ts +10 -0
  275. package/dist/context/app-meta/hooks.js +3 -0
  276. package/dist/context/app-meta/hooks.js.map +1 -0
  277. package/dist/context/app-meta/index.cjs +3 -0
  278. package/dist/context/app-meta/index.cjs.map +1 -0
  279. package/dist/context/app-meta/index.d.cts +5 -0
  280. package/dist/context/app-meta/index.d.ts +5 -0
  281. package/dist/context/app-meta/index.js +3 -0
  282. package/dist/context/app-meta/index.js.map +1 -0
  283. package/dist/context/app-meta/types.cjs +3 -0
  284. package/dist/context/app-meta/types.cjs.map +1 -0
  285. package/dist/context/app-meta/types.d.cts +48 -0
  286. package/dist/context/app-meta/types.d.ts +48 -0
  287. package/dist/context/app-meta/types.js +2 -0
  288. package/dist/context/app-meta/types.js.map +1 -0
  289. package/dist/context/index.cjs +3 -0
  290. package/dist/context/index.cjs.map +1 -0
  291. package/dist/context/index.d.cts +5 -0
  292. package/dist/context/index.d.ts +5 -0
  293. package/dist/context/index.js +3 -0
  294. package/dist/context/index.js.map +1 -0
  295. package/dist/index.cjs +2 -3490
  296. package/dist/index.cjs.map +1 -1
  297. package/dist/index.d.cts +29 -410
  298. package/dist/index.d.ts +29 -410
  299. package/dist/index.js +2 -3442
  300. package/dist/index.js.map +1 -1
  301. package/dist/lib/utils.cjs +3 -0
  302. package/dist/lib/utils.cjs.map +1 -0
  303. package/dist/lib/utils.d.cts +5 -0
  304. package/dist/lib/utils.d.ts +5 -0
  305. package/dist/lib/utils.js +3 -0
  306. package/dist/lib/utils.js.map +1 -0
  307. package/dist/styles.css +2 -0
  308. package/package.json +72 -44
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":";yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAEA,IAAAI,EAAmC,iBAuB5B,SAASF,EAA8C,CAC5D,gBAAAG,CACF,EAEG,CACD,SAASC,EAAgBC,EAA0B,CACjD,GAAM,CAAE,QAAAC,EAAS,UAAAC,CAAU,EAAIJ,EAAgB,EAEzCK,KAAa,WAAQ,IAAM,CAC/B,GAAKH,EAAQ,WACb,MAAO,CACL,GAAGA,EAAQ,WACX,QAASA,EAAQ,WAAW,OAC9B,CACF,EAAG,CAACA,EAAQ,YAAY,QAASA,EAAQ,YAAY,KAAMA,EAAQ,YAAY,SAAS,SAAS,CAAC,CAAC,EAE7FI,KAAW,WAAQ,IAAMJ,EAAQ,SAAU,CAAC,KAAK,UAAUA,EAAQ,QAAQ,CAAC,CAAC,EAE7EK,KAAgB,WAAQ,KAAO,CACnC,GAAGL,EACH,WAAAG,EACA,SAAAC,CACF,GAAI,CACFJ,EAAQ,MACRA,EAAQ,YACRA,EAAQ,YACRA,EAAQ,eACRA,EAAQ,iBACRA,EAAQ,WACRA,EAAQ,OACRG,EACAC,CACF,CAAC,KAED,aAAU,KACRH,EAAQI,CAAa,EACd,IAAMH,EAAU,GACtB,CAACG,EAAeJ,EAASC,CAAS,CAAC,CACxC,CAEA,MAAO,CAAE,gBAAAH,CAAgB,CAC3B","names":["hooks_exports","__export","createPageTemplateHook","__toCommonJS","import_react","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
@@ -0,0 +1,10 @@
1
+ import { AppMetaContextType, AppMeta } from './types.cjs';
2
+ import 'react';
3
+
4
+ declare function createPageTemplateHook<TRoute extends string>({ useTypedAppMeta, }: {
5
+ useTypedAppMeta: () => AppMetaContextType<TRoute>;
6
+ }): {
7
+ usePageTemplate: (options: AppMeta<TRoute>) => void;
8
+ };
9
+
10
+ export { createPageTemplateHook };
@@ -0,0 +1,10 @@
1
+ import { AppMetaContextType, AppMeta } from './types.js';
2
+ import 'react';
3
+
4
+ declare function createPageTemplateHook<TRoute extends string>({ useTypedAppMeta, }: {
5
+ useTypedAppMeta: () => AppMetaContextType<TRoute>;
6
+ }): {
7
+ usePageTemplate: (options: AppMeta<TRoute>) => void;
8
+ };
9
+
10
+ export { createPageTemplateHook };
@@ -0,0 +1,3 @@
1
+ "use client"
2
+ import{useEffect as p,useMemo as t}from"react";function d({useTypedAppMeta:A}){function i(e){let{setMeta:a,resetMeta:c}=A(),r=t(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),n=t(()=>e.metadata,[JSON.stringify(e.metadata)]),u=t(()=>({...e,backAction:r,metadata:n}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,r,n]);p(()=>(a(u),()=>c()),[u,a,c])}return{usePageTemplate:i}}export{d as createPageTemplateHook};
3
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":";AAEA,OAAS,aAAAA,EAAW,WAAAC,MAAe,QAuB5B,SAASC,EAA8C,CAC5D,gBAAAC,CACF,EAEG,CACD,SAASC,EAAgBC,EAA0B,CACjD,GAAM,CAAE,QAAAC,EAAS,UAAAC,CAAU,EAAIJ,EAAgB,EAEzCK,EAAaP,EAAQ,IAAM,CAC/B,GAAKI,EAAQ,WACb,MAAO,CACL,GAAGA,EAAQ,WACX,QAASA,EAAQ,WAAW,OAC9B,CACF,EAAG,CAACA,EAAQ,YAAY,QAASA,EAAQ,YAAY,KAAMA,EAAQ,YAAY,SAAS,SAAS,CAAC,CAAC,EAE7FI,EAAWR,EAAQ,IAAMI,EAAQ,SAAU,CAAC,KAAK,UAAUA,EAAQ,QAAQ,CAAC,CAAC,EAE7EK,EAAgBT,EAAQ,KAAO,CACnC,GAAGI,EACH,WAAAG,EACA,SAAAC,CACF,GAAI,CACFJ,EAAQ,MACRA,EAAQ,YACRA,EAAQ,YACRA,EAAQ,eACRA,EAAQ,iBACRA,EAAQ,WACRA,EAAQ,OACRG,EACAC,CACF,CAAC,EAEDT,EAAU,KACRM,EAAQI,CAAa,EACd,IAAMH,EAAU,GACtB,CAACG,EAAeJ,EAASC,CAAS,CAAC,CACxC,CAEA,MAAO,CAAE,gBAAAH,CAAgB,CAC3B","names":["useEffect","useMemo","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
@@ -0,0 +1,3 @@
1
+ "use client"
2
+ "use strict";var A=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var e in n)A(t,e,{get:n[e],enumerable:!0})},h=(t,n,e,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of x(n))!C.call(t,r)&&r!==e&&A(t,r,{get:()=>n[r],enumerable:!(p=l(n,r))||p.enumerable});return t};var k=t=>h(A({},"__esModule",{value:!0}),t);var O={};g(O,{AppMetaProvider:()=>P,createPageTemplateHook:()=>N,createTypedAppMetaContext:()=>S,useAppMeta:()=>R});module.exports=k(O);var a=require("react"),M=require("react/jsx-runtime"),f=(0,a.createContext)(void 0),P=({children:t})=>{let[n,e]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),p=(0,a.useCallback)(o=>{e(c=>Object.keys(o).some(s=>JSON.stringify(c[s])!==JSON.stringify(o[s]))?{...c,...o}:c)},[]),r=(0,a.useCallback)(()=>{e(o=>o.title===""&&o.description===""&&(o.breadcrumbs?.length??0)===0?o:{title:"",description:"",breadcrumbs:[]})},[]),i=(0,a.useMemo)(()=>({meta:n,setMeta:p,resetMeta:r}),[n,p,r]);return(0,M.jsx)(f.Provider,{value:i,children:t})},R=()=>{let t=(0,a.useContext)(f);if(!t)throw new Error("useAppMeta must be used within an AppMetaProvider");return t};function S(){let t=(0,a.createContext)(void 0);return{TypedAppMetaProvider:({children:p})=>{let[r,i]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),o=(0,a.useCallback)(s=>{i(d=>Object.keys(s).some(y=>{let b=d[y],T=s[y];return JSON.stringify(b)!==JSON.stringify(T)})?{...d,...s}:d)},[]),c=(0,a.useCallback)(()=>{i(s=>s.title===""&&s.description===""&&(s.breadcrumbs?.length??0)===0?s:{title:"",description:"",breadcrumbs:[]})},[]),m=(0,a.useMemo)(()=>({meta:r,setMeta:o,resetMeta:c}),[r,o,c]);return(0,M.jsx)(t.Provider,{value:m,children:p})},useTypedAppMeta:()=>{let p=(0,a.useContext)(t);if(!p)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return p},TypedAppMetaContext:t}}var u=require("react");function N({useTypedAppMeta:t}){function n(e){let{setMeta:p,resetMeta:r}=t(),i=(0,u.useMemo)(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),o=(0,u.useMemo)(()=>e.metadata,[JSON.stringify(e.metadata)]),c=(0,u.useMemo)(()=>({...e,backAction:i,metadata:o}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,i,o]);(0,u.useEffect)(()=>(p(c),()=>r()),[c,p,r])}return{usePageTemplate:n}}0&&(module.exports={AppMetaProvider,createPageTemplateHook,createTypedAppMetaContext,useAppMeta});
3
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/app-meta/index.ts","../../../src/context/app-meta/context.tsx","../../../src/context/app-meta/hooks.ts"],"sourcesContent":["export * from './context.jsx';\r\nexport * from './hooks.js';\r\nexport type { AppMeta, BreadcrumbItem } from './types.js';","import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["app_meta_exports","__export","AppMetaProvider","createPageTemplateHook","createTypedAppMetaContext","useAppMeta","__toCommonJS","import_react","import_jsx_runtime","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","import_react","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
@@ -0,0 +1,5 @@
1
+ export { AppMetaProvider, createTypedAppMetaContext, useAppMeta } from './context.cjs';
2
+ export { createPageTemplateHook } from './hooks.cjs';
3
+ export { AppMeta, BreadcrumbItem } from './types.cjs';
4
+ import 'react';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,5 @@
1
+ export { AppMetaProvider, createTypedAppMetaContext, useAppMeta } from './context.js';
2
+ export { createPageTemplateHook } from './hooks.js';
3
+ export { AppMeta, BreadcrumbItem } from './types.js';
4
+ import 'react';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,3 @@
1
+ "use client"
2
+ import{createContext as m,useContext as y,useState as f,useCallback as i,useMemo as b}from"react";import{jsx as l}from"react/jsx-runtime";var T=m(void 0),P=({children:n})=>{let[c,e]=f({title:"",description:"",breadcrumbs:[]}),r=i(t=>{e(o=>Object.keys(t).some(a=>JSON.stringify(o[a])!==JSON.stringify(t[a]))?{...o,...t}:o)},[]),p=i(()=>{e(t=>t.title===""&&t.description===""&&(t.breadcrumbs?.length??0)===0?t:{title:"",description:"",breadcrumbs:[]})},[]),s=b(()=>({meta:c,setMeta:r,resetMeta:p}),[c,r,p]);return l(T.Provider,{value:s,children:n})},R=()=>{let n=y(T);if(!n)throw new Error("useAppMeta must be used within an AppMetaProvider");return n};function S(){let n=m(void 0);return{TypedAppMetaProvider:({children:r})=>{let[p,s]=f({title:"",description:"",breadcrumbs:[]}),t=i(a=>{s(u=>Object.keys(a).some(M=>{let x=u[M],C=a[M];return JSON.stringify(x)!==JSON.stringify(C)})?{...u,...a}:u)},[]),o=i(()=>{s(a=>a.title===""&&a.description===""&&(a.breadcrumbs?.length??0)===0?a:{title:"",description:"",breadcrumbs:[]})},[]),A=b(()=>({meta:p,setMeta:t,resetMeta:o}),[p,t,o]);return l(n.Provider,{value:A,children:r})},useTypedAppMeta:()=>{let r=y(n);if(!r)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return r},TypedAppMetaContext:n}}import{useEffect as g,useMemo as d}from"react";function J({useTypedAppMeta:n}){function c(e){let{setMeta:r,resetMeta:p}=n(),s=d(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),t=d(()=>e.metadata,[JSON.stringify(e.metadata)]),o=d(()=>({...e,backAction:s,metadata:t}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,s,t]);g(()=>(r(o),()=>p()),[o,r,p])}return{usePageTemplate:c}}export{P as AppMetaProvider,J as createPageTemplateHook,S as createTypedAppMetaContext,R as useAppMeta};
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/app-meta/context.tsx","../../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["createContext","useContext","useState","useCallback","useMemo","jsx","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","useEffect","useMemo","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
@@ -0,0 +1,3 @@
1
+ "use client"
2
+ "use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of s(e))!c.call(t,o)&&o!==n&&i(t,o,{get:()=>e[o],enumerable:!(a=r(e,o))||a.enumerable});return t};var p=t=>d(i({},"__esModule",{value:!0}),t);var u={};module.exports=p(u);
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/app-meta/types.ts"],"sourcesContent":["import type { ReactNode } from 'react';\r\n\r\nexport type BreadcrumbItem<TRoute extends string = string> = {\r\n label: string;\r\n href?: TRoute;\r\n};\r\n\r\nexport type AppMeta<TRoute extends string = string> = {\r\n title: ReactNode;\r\n description?: string;\r\n breadcrumbs?: BreadcrumbItem<TRoute>[];\r\n primaryActions?: ReactNode;\r\n secondaryActions?: ReactNode;\r\n backAction?: {\r\n content?: ReactNode;\r\n onClick?: () => void;\r\n href?: TRoute;\r\n };\r\n pagination?: {\r\n hasNext: boolean;\r\n hasPrevious: boolean;\r\n onNext?: () => void;\r\n onPrevious?: () => void;\r\n nextLabel?: string;\r\n previousLabel?: string;\r\n };\r\n tabs?: {\r\n id: string;\r\n content: ReactNode;\r\n onClick?: () => void;\r\n href?: TRoute;\r\n isActive?: boolean;\r\n }[];\r\n metadata?: {\r\n label: string;\r\n value: ReactNode;\r\n }[];\r\n status?: {\r\n color: 'success' | 'warning' | 'critical' | 'info' | 'default';\r\n content: ReactNode;\r\n };\r\n};\r\n\r\nexport type AppMetaContextType<TRoute extends string = string> = {\r\n meta: AppMeta<TRoute>;\r\n setMeta: (meta: Partial<AppMeta<TRoute>>) => void;\r\n resetMeta: () => void;\r\n};"],"mappings":";+WAAA,IAAAA,EAAA,kBAAAC,EAAAD","names":["types_exports","__toCommonJS"]}
@@ -0,0 +1,48 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ type BreadcrumbItem<TRoute extends string = string> = {
4
+ label: string;
5
+ href?: TRoute;
6
+ };
7
+ type AppMeta<TRoute extends string = string> = {
8
+ title: ReactNode;
9
+ description?: string;
10
+ breadcrumbs?: BreadcrumbItem<TRoute>[];
11
+ primaryActions?: ReactNode;
12
+ secondaryActions?: ReactNode;
13
+ backAction?: {
14
+ content?: ReactNode;
15
+ onClick?: () => void;
16
+ href?: TRoute;
17
+ };
18
+ pagination?: {
19
+ hasNext: boolean;
20
+ hasPrevious: boolean;
21
+ onNext?: () => void;
22
+ onPrevious?: () => void;
23
+ nextLabel?: string;
24
+ previousLabel?: string;
25
+ };
26
+ tabs?: {
27
+ id: string;
28
+ content: ReactNode;
29
+ onClick?: () => void;
30
+ href?: TRoute;
31
+ isActive?: boolean;
32
+ }[];
33
+ metadata?: {
34
+ label: string;
35
+ value: ReactNode;
36
+ }[];
37
+ status?: {
38
+ color: 'success' | 'warning' | 'critical' | 'info' | 'default';
39
+ content: ReactNode;
40
+ };
41
+ };
42
+ type AppMetaContextType<TRoute extends string = string> = {
43
+ meta: AppMeta<TRoute>;
44
+ setMeta: (meta: Partial<AppMeta<TRoute>>) => void;
45
+ resetMeta: () => void;
46
+ };
47
+
48
+ export type { AppMeta, AppMetaContextType, BreadcrumbItem };
@@ -0,0 +1,48 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ type BreadcrumbItem<TRoute extends string = string> = {
4
+ label: string;
5
+ href?: TRoute;
6
+ };
7
+ type AppMeta<TRoute extends string = string> = {
8
+ title: ReactNode;
9
+ description?: string;
10
+ breadcrumbs?: BreadcrumbItem<TRoute>[];
11
+ primaryActions?: ReactNode;
12
+ secondaryActions?: ReactNode;
13
+ backAction?: {
14
+ content?: ReactNode;
15
+ onClick?: () => void;
16
+ href?: TRoute;
17
+ };
18
+ pagination?: {
19
+ hasNext: boolean;
20
+ hasPrevious: boolean;
21
+ onNext?: () => void;
22
+ onPrevious?: () => void;
23
+ nextLabel?: string;
24
+ previousLabel?: string;
25
+ };
26
+ tabs?: {
27
+ id: string;
28
+ content: ReactNode;
29
+ onClick?: () => void;
30
+ href?: TRoute;
31
+ isActive?: boolean;
32
+ }[];
33
+ metadata?: {
34
+ label: string;
35
+ value: ReactNode;
36
+ }[];
37
+ status?: {
38
+ color: 'success' | 'warning' | 'critical' | 'info' | 'default';
39
+ content: ReactNode;
40
+ };
41
+ };
42
+ type AppMetaContextType<TRoute extends string = string> = {
43
+ meta: AppMeta<TRoute>;
44
+ setMeta: (meta: Partial<AppMeta<TRoute>>) => void;
45
+ resetMeta: () => void;
46
+ };
47
+
48
+ export type { AppMeta, AppMetaContextType, BreadcrumbItem };
@@ -0,0 +1,2 @@
1
+ "use client"
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ "use client"
2
+ "use strict";var A=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var e in n)A(t,e,{get:n[e],enumerable:!0})},h=(t,n,e,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of l(n))!C.call(t,r)&&r!==e&&A(t,r,{get:()=>n[r],enumerable:!(p=x(n,r))||p.enumerable});return t};var k=t=>h(A({},"__esModule",{value:!0}),t);var O={};g(O,{AppMetaProvider:()=>P,createPageTemplateHook:()=>N,createTypedAppMetaContext:()=>S,useAppMeta:()=>R});module.exports=k(O);var a=require("react"),M=require("react/jsx-runtime"),f=(0,a.createContext)(void 0),P=({children:t})=>{let[n,e]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),p=(0,a.useCallback)(o=>{e(c=>Object.keys(o).some(s=>JSON.stringify(c[s])!==JSON.stringify(o[s]))?{...c,...o}:c)},[]),r=(0,a.useCallback)(()=>{e(o=>o.title===""&&o.description===""&&(o.breadcrumbs?.length??0)===0?o:{title:"",description:"",breadcrumbs:[]})},[]),i=(0,a.useMemo)(()=>({meta:n,setMeta:p,resetMeta:r}),[n,p,r]);return(0,M.jsx)(f.Provider,{value:i,children:t})},R=()=>{let t=(0,a.useContext)(f);if(!t)throw new Error("useAppMeta must be used within an AppMetaProvider");return t};function S(){let t=(0,a.createContext)(void 0);return{TypedAppMetaProvider:({children:p})=>{let[r,i]=(0,a.useState)({title:"",description:"",breadcrumbs:[]}),o=(0,a.useCallback)(s=>{i(d=>Object.keys(s).some(y=>{let b=d[y],T=s[y];return JSON.stringify(b)!==JSON.stringify(T)})?{...d,...s}:d)},[]),c=(0,a.useCallback)(()=>{i(s=>s.title===""&&s.description===""&&(s.breadcrumbs?.length??0)===0?s:{title:"",description:"",breadcrumbs:[]})},[]),m=(0,a.useMemo)(()=>({meta:r,setMeta:o,resetMeta:c}),[r,o,c]);return(0,M.jsx)(t.Provider,{value:m,children:p})},useTypedAppMeta:()=>{let p=(0,a.useContext)(t);if(!p)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return p},TypedAppMetaContext:t}}var u=require("react");function N({useTypedAppMeta:t}){function n(e){let{setMeta:p,resetMeta:r}=t(),i=(0,u.useMemo)(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),o=(0,u.useMemo)(()=>e.metadata,[JSON.stringify(e.metadata)]),c=(0,u.useMemo)(()=>({...e,backAction:i,metadata:o}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,i,o]);(0,u.useEffect)(()=>(p(c),()=>r()),[c,p,r])}return{usePageTemplate:n}}0&&(module.exports={AppMetaProvider,createPageTemplateHook,createTypedAppMetaContext,useAppMeta});
3
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/index.ts","../../src/context/app-meta/context.tsx","../../src/context/app-meta/hooks.ts"],"sourcesContent":["export * from './app-meta/index.js';","import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["context_exports","__export","AppMetaProvider","createPageTemplateHook","createTypedAppMetaContext","useAppMeta","__toCommonJS","import_react","import_jsx_runtime","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","import_react","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}
@@ -0,0 +1,5 @@
1
+ export { AppMetaProvider, createTypedAppMetaContext, useAppMeta } from './app-meta/context.cjs';
2
+ export { createPageTemplateHook } from './app-meta/hooks.cjs';
3
+ export { AppMeta, BreadcrumbItem } from './app-meta/types.cjs';
4
+ import 'react';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,5 @@
1
+ export { AppMetaProvider, createTypedAppMetaContext, useAppMeta } from './app-meta/context.js';
2
+ export { createPageTemplateHook } from './app-meta/hooks.js';
3
+ export { AppMeta, BreadcrumbItem } from './app-meta/types.js';
4
+ import 'react';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,3 @@
1
+ "use client"
2
+ import{createContext as m,useContext as y,useState as f,useCallback as i,useMemo as b}from"react";import{jsx as x}from"react/jsx-runtime";var T=m(void 0),P=({children:n})=>{let[c,e]=f({title:"",description:"",breadcrumbs:[]}),r=i(t=>{e(o=>Object.keys(t).some(a=>JSON.stringify(o[a])!==JSON.stringify(t[a]))?{...o,...t}:o)},[]),p=i(()=>{e(t=>t.title===""&&t.description===""&&(t.breadcrumbs?.length??0)===0?t:{title:"",description:"",breadcrumbs:[]})},[]),s=b(()=>({meta:c,setMeta:r,resetMeta:p}),[c,r,p]);return x(T.Provider,{value:s,children:n})},R=()=>{let n=y(T);if(!n)throw new Error("useAppMeta must be used within an AppMetaProvider");return n};function S(){let n=m(void 0);return{TypedAppMetaProvider:({children:r})=>{let[p,s]=f({title:"",description:"",breadcrumbs:[]}),t=i(a=>{s(u=>Object.keys(a).some(M=>{let l=u[M],C=a[M];return JSON.stringify(l)!==JSON.stringify(C)})?{...u,...a}:u)},[]),o=i(()=>{s(a=>a.title===""&&a.description===""&&(a.breadcrumbs?.length??0)===0?a:{title:"",description:"",breadcrumbs:[]})},[]),A=b(()=>({meta:p,setMeta:t,resetMeta:o}),[p,t,o]);return x(n.Provider,{value:A,children:r})},useTypedAppMeta:()=>{let r=y(n);if(!r)throw new Error("useTypedAppMeta must be used within a TypedAppMetaProvider");return r},TypedAppMetaContext:n}}import{useEffect as g,useMemo as d}from"react";function J({useTypedAppMeta:n}){function c(e){let{setMeta:r,resetMeta:p}=n(),s=d(()=>{if(e.backAction)return{...e.backAction,onClick:e.backAction.onClick}},[e.backAction?.content,e.backAction?.href,e.backAction?.onClick?.toString()]),t=d(()=>e.metadata,[JSON.stringify(e.metadata)]),o=d(()=>({...e,backAction:s,metadata:t}),[e.title,e.description,e.breadcrumbs,e.primaryActions,e.secondaryActions,e.pagination,e.status,s,t]);g(()=>(r(o),()=>p()),[o,r,p])}return{usePageTemplate:c}}export{P as AppMetaProvider,J as createPageTemplateHook,S as createTypedAppMetaContext,R as useAppMeta};
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/app-meta/context.tsx","../../src/context/app-meta/hooks.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode, useState, useCallback, useMemo } from 'react';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\n\r\nconst AppMetaContext = createContext<AppMetaContextType | undefined>(undefined);\r\n\r\nconst AppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(\r\n key => JSON.stringify(prev[key as keyof AppMeta]) !== JSON.stringify(partialMeta[key as keyof AppMeta])\r\n );\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <AppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </AppMetaContext.Provider>\r\n );\r\n};\r\n\r\nconst useAppMeta = () => {\r\n const context = useContext(AppMetaContext);\r\n if (!context) {\r\n throw new Error('useAppMeta must be used within an AppMetaProvider');\r\n }\r\n return context;\r\n};\r\n\r\nfunction createTypedAppMetaContext<TRoute extends string>() {\r\n const TypedAppMetaContext = createContext<AppMetaContextType<TRoute> | undefined>(undefined);\r\n\r\n const TypedAppMetaProvider = ({ children }: { children: ReactNode }) => {\r\n const [meta, setMetaState] = useState<AppMeta<TRoute>>({\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n });\r\n\r\n const setMeta = useCallback((partialMeta: Partial<AppMeta<TRoute>>) => {\r\n setMetaState(prev => {\r\n const hasChanges = Object.keys(partialMeta).some(key => {\r\n const prevValue = prev[key as keyof AppMeta<TRoute>];\r\n const newValue = partialMeta[key as keyof AppMeta<TRoute>];\r\n return JSON.stringify(prevValue) !== JSON.stringify(newValue);\r\n });\r\n return hasChanges ? { ...prev, ...partialMeta } : prev;\r\n });\r\n }, []);\r\n\r\n const resetMeta = useCallback(() => {\r\n setMetaState(prev => (\r\n prev.title === '' &&\r\n prev.description === '' &&\r\n (prev.breadcrumbs?.length ?? 0) === 0\r\n ? prev\r\n : {\r\n title: '',\r\n description: '',\r\n breadcrumbs: [],\r\n }\r\n ));\r\n }, []);\r\n\r\n const contextValue = useMemo(() => ({\r\n meta,\r\n setMeta,\r\n resetMeta\r\n }), [meta, setMeta, resetMeta]);\r\n\r\n return (\r\n <TypedAppMetaContext.Provider value={contextValue}>\r\n {children}\r\n </TypedAppMetaContext.Provider>\r\n );\r\n };\r\n\r\n const useTypedAppMeta = () => {\r\n const context = useContext(TypedAppMetaContext);\r\n if (!context) {\r\n throw new Error('useTypedAppMeta must be used within a TypedAppMetaProvider');\r\n }\r\n return context;\r\n };\r\n\r\n return { TypedAppMetaProvider, useTypedAppMeta, TypedAppMetaContext };\r\n}\r\n\r\nexport {\r\n AppMetaProvider,\r\n useAppMeta,\r\n createTypedAppMetaContext\r\n};","import { createTypedAppMetaContext, useAppMeta } from './context.jsx';\r\nimport type { AppMeta, AppMetaContextType } from './types.js';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\n// export function usePageTemplate(options: AppMeta) {\r\n// const { setMeta, resetMeta } = useAppMeta();\r\n\r\n// const memoizedOptions = useMemo(() => options, [\r\n// options.title,\r\n// options.description,\r\n// options.breadcrumbs,\r\n// options.primaryActions,\r\n// options.secondaryActions,\r\n// options.backAction,\r\n// options.pagination,\r\n// options.metadata,\r\n// options.status,\r\n// ]);\r\n\r\n// useEffect(() => {\r\n// setMeta(memoizedOptions);\r\n// return () => resetMeta();\r\n// }, [memoizedOptions, setMeta, resetMeta]);\r\n// }\r\n\r\nexport function createPageTemplateHook<TRoute extends string>({\r\n useTypedAppMeta,\r\n}: {\r\n useTypedAppMeta: () => AppMetaContextType<TRoute>;\r\n}) {\r\n function usePageTemplate(options: AppMeta<TRoute>) {\r\n const { setMeta, resetMeta } = useTypedAppMeta();\r\n\r\n const backAction = useMemo(() => {\r\n if (!options.backAction) return undefined;\r\n return {\r\n ...options.backAction,\r\n onClick: options.backAction.onClick\r\n };\r\n }, [options.backAction?.content, options.backAction?.href, options.backAction?.onClick?.toString()]);\r\n\r\n const metadata = useMemo(() => options.metadata, [JSON.stringify(options.metadata)]);\r\n\r\n const stableOptions = useMemo(() => ({\r\n ...options,\r\n backAction,\r\n metadata\r\n }), [\r\n options.title,\r\n options.description,\r\n options.breadcrumbs,\r\n options.primaryActions,\r\n options.secondaryActions,\r\n options.pagination,\r\n options.status,\r\n backAction,\r\n metadata\r\n ]);\r\n\r\n useEffect(() => {\r\n setMeta(stableOptions);\r\n return () => resetMeta();\r\n }, [stableOptions, setMeta, resetMeta]);\r\n }\r\n\r\n return { usePageTemplate };\r\n}"],"mappings":"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","names":["createContext","useContext","useState","useCallback","useMemo","jsx","AppMetaContext","AppMetaProvider","children","meta","setMetaState","setMeta","partialMeta","prev","key","resetMeta","contextValue","useAppMeta","context","createTypedAppMetaContext","TypedAppMetaContext","prevValue","newValue","useEffect","useMemo","createPageTemplateHook","useTypedAppMeta","usePageTemplate","options","setMeta","resetMeta","backAction","metadata","stableOptions"]}